/*
Theme Name: Storefront Oasis Child
Theme URI: https://135chaya.com/web/
Description: Storefront 用子テーマ。Oasis (LA-Studio) デモサイトのデザインを実測値ベースで再現したテーマです。Questrial + Raleway、アクセント #6EBE9D、1200px コンテナ、ダークヘッダー、全幅ヒーロースライダー、タブ付き商品グリッド、フィーチャード商品、プロモバナー、4+1カラムフッターを含みます。親テーマ Storefront が必須です。
Author: Oasis Replication Team
Author URI: https://135chaya.com/web/
Template: storefront
Version: 4.2.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: storefront-oasis-child
Tags: e-commerce, woocommerce, two-columns, custom-colors, custom-header, custom-menu
*/

/* ==========================================================================
   0. デザイントークン（参考サイト実測値）
   ========================================================================== */
:root {
	--o-accent:        #6ebe9d; /* rgb(110,190,157) */
	--o-accent-dark:   #5aab8a;
	--o-accent-light:  #b5e9d4; /* rgb(181,233,212) */
	--o-dark:          #2b2c30; /* rgb(43,44,48)   ヘッダー / 見出し強調 */
	--o-darker:        #1c1d1f; /* rgb(28,29,31) */
	--o-black:         #000000;
	--o-text:          #727883; /* rgb(114,120,131) 本文 */
	--o-text-2:        #696c75; /* rgb(105,108,117) フッター本文 */
	--o-muted:         #a9aebd; /* rgb(169,174,189) 補足 / 旧価格 */
	--o-line:          #e5e7eb; /* rgb(229,231,235) */
	--o-line-2:        #dddddd;
	--o-soft:          #fbfbfb; /* rgb(251,251,251) フッター背景 */
	--o-white:         #ffffff;

	--o-font-head: 'Questrial', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
	--o-font-body: 'Raleway', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
	--o-font-hero: 'Roboto', 'Raleway', 'Noto Sans JP', sans-serif;
	--o-font-hero-2: 'Poppins', 'Questrial', 'Noto Sans JP', sans-serif;

	--o-container: 1200px;
	--o-gutter: 15px;
	--o-header-h: 100px;
	--o-section-y: 100px;
}

/* ==========================================================================
   1. リセット & ベース
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; }

/* 親テーマ側の指定に依存しないよう、子テーマでも border-box を明示する */
*,
*::before,
*::after { box-sizing: border-box; }

body,
body.woocommerce,
.woocommerce-page {
	background-color: var(--o-white);
	color: var(--o-text);
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	font-weight: 400;
	letter-spacing: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4 {
	font-family: var(--o-font-head);
	color: var(--o-black);
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	margin: 0 0 .6em;
}

h1 { font-size: 42px; line-height: 1.2; }
h2 { font-size: 30px; line-height: 36px; font-weight: 600; }
h3 { font-size: 20px; line-height: 1.25; }
h4 { font-size: 16px; line-height: 1.2; }
h5 { font-size: 14px; line-height: 1.2; }
h6 { font-size: 13px; line-height: 1.2; }

p { margin: 0 0 1.5em; }

a {
	color: var(--o-black);
	text-decoration: none;
	transition: color .25s ease, background-color .25s ease, border-color .25s ease, opacity .25s ease;
}
a:hover, a:focus { color: var(--o-accent); text-decoration: none; }

img { max-width: 100%; height: auto; }

ul, ol { margin: 0 0 1.5em 1.2em; }

/* Storefront のコンテナ幅を 1200px に */
.col-full,
.storefront-full-width-content .col-full,
.site-footer .col-full,
.site-header .col-full {
	max-width: var(--o-container);
	width: 100%;
	margin: 0 auto;
	padding: 0 var(--o-gutter);
	box-sizing: border-box;
}
.col-full::after { content: ""; display: table; clear: both; }

/* フロントページは全幅（ヒーロー / プロモを全幅で出すため） */
body.oasis-front #content.site-content > .col-full {
	max-width: 100%;
	width: 100%;
	padding: 0;
}
body.oasis-front #content.site-content { padding: 0; margin: 0; }
body.oasis-front .oasis-content,
body.oasis-front .oasis-content .site-main { width: 100%; float: none; margin: 0; padding: 0; }

/* Storefront のページタイトル帯・サイドバーを初期化 */
.site-content { padding: 0; }
.storefront-breadcrumb { margin: 0; padding: 18px 0; background: transparent; }
.storefront-breadcrumb .col-full { padding: 0 var(--o-gutter); }
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a { font-size: 12px; color: var(--o-muted); }
.woocommerce-breadcrumb a:hover { color: var(--o-accent); }

/* ==========================================================================
   2. 共通ボタン
   ========================================================================== */
.o-btn,
.o-btn:visited {
	display: inline-block;
	font-family: var(--o-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: normal;
	text-transform: none;
	padding: 13px 19px;
	min-width: 170px;
	text-align: center;
	border: 1px solid var(--o-black);
	background: transparent;
	color: var(--o-black);
	border-radius: 0;
	cursor: pointer;
}
.o-btn:hover,
.o-btn:focus {
	background: var(--o-black);
	border-color: var(--o-black);
	color: var(--o-white);
}

.o-btn--light,
.o-btn--light:visited {
	border-color: rgba(255, 255, 255, .3);
	color: var(--o-white);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 1px;
	padding: 15px 45px;
	min-width: 0;
	font-family: var(--o-font-hero);
}
.o-btn--light:hover,
.o-btn--light:focus {
	background: var(--o-white);
	border-color: var(--o-white);
	color: var(--o-black);
}

.o-btn--accent,
.o-btn--accent:visited {
	background: var(--o-accent);
	border-color: var(--o-accent);
	color: var(--o-white);
}
.o-btn--accent:hover,
.o-btn--accent:focus {
	background: var(--o-dark);
	border-color: var(--o-dark);
	color: var(--o-white);
}

/* WooCommerce ボタンを Oasis 仕様に */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
	text-transform: uppercase;
	letter-spacing: .5px;
	border-radius: 0;
	background: var(--o-dark);
	color: var(--o-white);
	padding: 14px 28px;
	border: 1px solid var(--o-dark);
	text-shadow: none;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--o-accent);
	border-color: var(--o-accent);
	color: var(--o-white);
}

/* フォーム */
input[type="text"], input[type="email"], input[type="password"],
input[type="search"], input[type="tel"], input[type="url"],
input[type="number"], textarea, select {
	font-family: var(--o-font-body);
	font-size: 13px;
	color: var(--o-text);
	background: var(--o-white);
	border: 1px solid var(--o-line);
	border-radius: 0;
	padding: 12px 14px;
	box-shadow: none;
}
input:focus, textarea:focus, select:focus {
	border-color: var(--o-accent);
	outline: none;
	box-shadow: none;
}

/* ==========================================================================
   3. ヘッダー（ダークバー / 高さ100px）
   ========================================================================== */
/* 親テーマ Storefront は
   `.home.page:not(.page-template-template-homepage) .site-header` や
   `.no-wc-breadcrumb .site-header` に margin-bottom: 4.2358em (≒59px) を当てており、
   詳細度が高いため通常の指定では勝てない。ヘッダー直下の白い余白の原因になるので
   !important で打ち消す。 */
.site-header {
	background-color: var(--o-dark) !important;
	border: 0;
	padding: 0;
	margin: 0 !important;
	position: relative;
	z-index: 500;
}
.site-header .col-full { padding: 0 var(--o-gutter); }

.o-header {
	display: flex;
	align-items: center;
	height: var(--o-header-h);
	gap: 0;
}
/* 親テーマが .col-full を出さない場合のフォールバック（自前でセンタリング） */
.site-header > .o-header,
.site-header > .col-full > .o-header {
	max-width: var(--o-container);
	width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
}
.site-header > .o-header { padding: 0 var(--o-gutter); }
/* 二重 .col-full による余分な padding を打ち消す */
.site-header .col-full .col-full { padding: 0; max-width: 100%; }

/* ロゴ */
.o-header__branding {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}
.o-header__branding .site-title,
.o-header__branding .o-logo-text {
	font-family: var(--o-font-head);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 6px;
	text-transform: uppercase;
	margin: 0;
	padding: 0;
	color: var(--o-white);
	white-space: nowrap;
}
/* 長いサイト名（日本語など）はヘッダーに収まるよう自動で詰める */
.o-header__branding .o-logo-text--long { font-size: 16px; letter-spacing: 1.5px; }
.o-header__branding a { color: var(--o-white); }
.o-header__branding a:hover { color: var(--o-accent); }
.o-header__branding img,
.o-header__branding .custom-logo {
	max-height: 30px;
	width: auto;
	display: block;
}
.o-header__branding .site-description { display: none; }

/* 検索 */
.o-header__search {
	flex: 0 1 260px;
	margin-left: 50px;
	padding: 25px 0;
	position: relative;
}
.o-header__search form {
	display: flex;
	align-items: center;
	margin: 0;
	position: relative;
}
.o-header__search .o-search-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	color: var(--o-white);
	opacity: .85;
}
.o-header__search .o-search-icon svg { display: block; width: 16px; height: 16px; }
.o-header__search input[type="search"],
.o-header__search input.search-field {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .3px;
	padding: 4px 0 4px 12px;
	width: 100%;
	height: auto;
	line-height: 20px;
}
.o-header__search input[type="search"]::placeholder { color: rgba(255, 255, 255, .55); }
.o-header__search input[type="search"]:focus { border: 0; box-shadow: none; }
.o-header__search button[type="submit"] { display: none; }

/* ナビゲーション */
.o-header__nav {
	flex: 1 1 auto;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
.o-header__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}
.o-header__nav ul li { position: relative; margin: 0; }
.o-header__nav ul li a {
	display: block;
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 500;
	line-height: 30px;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-white);
	padding: 7px 20px;
	white-space: nowrap;
}
.o-header__nav ul li a:hover,
.o-header__nav ul li.current-menu-item > a,
.o-header__nav ul li.current_page_item > a,
.o-header__nav ul li.current-menu-parent > a,
.o-header__nav ul li.current-menu-ancestor > a { color: var(--o-accent); }

/* ドロップダウン */
.o-header__nav ul ul {
	display: block;
	position: absolute;
	top: 100%;
	left: 10px;
	min-width: 210px;
	background: var(--o-white);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
	padding: 10px 0;
	flex-direction: column;
	align-items: stretch;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s;
	z-index: 600;
}
.o-header__nav ul li:hover > ul,
.o-header__nav ul li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.o-header__nav ul ul li a {
	color: var(--o-text);
	text-transform: none;
	letter-spacing: 0;
	font-size: 13px;
	line-height: 20px;
	padding: 8px 20px;
}
.o-header__nav ul ul li a:hover { color: var(--o-accent); }
.o-header__nav ul ul ul { top: 0; left: 100%; }

/* カート */
.o-header__cart {
	flex: 0 0 auto;
	margin-left: 22px;
	position: relative;
}
.o-header__cart > a {
	display: flex;
	align-items: center;
	position: relative;
	color: var(--o-white);
	padding: 6px 0 6px 6px;
}
.o-header__cart > a:hover { color: var(--o-accent); }
.o-header__cart svg { width: 20px; height: 20px; display: block; }
/* 参考サイト実測: 11px / 背景 #2b2c30 / 角丸なし / padding 0 4px */
.o-header__cart .o-cart-count {
	position: absolute;
	top: -6px;
	right: -11px;
	min-width: 14px;
	height: 16px;
	padding: 0 4px;
	border-radius: 0;
	background: var(--o-dark);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 11px;
	font-weight: 400;
	line-height: 16px;
	text-align: center;
	box-sizing: border-box;
}

/* モバイル トグル */
.o-header__toggle {
	display: none;
	background: transparent;
	border: 0;
	padding: 8px;
	margin-left: 14px;
	cursor: pointer;
	color: var(--o-white);
}
.o-header__toggle span {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
	margin: 4px 0;
	transition: transform .25s ease, opacity .25s ease;
}
.o-header.is-open .o-header__toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.o-header.is-open .o-header__toggle span:nth-child(2) { opacity: 0; }
.o-header.is-open .o-header__toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* スティッキー（スクロール時にヘッダーを固定） */
body.o-sticky-on .site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	box-shadow: 0 2px 18px rgba(0, 0, 0, .18);
	animation: oSlideDown .3s ease both;
}
@keyframes oSlideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
body.o-sticky-on .o-header { height: 72px; }
/* 固定化でレイアウトが跳ねないように本文側を押し下げ */
body.o-sticky-on.o-sticky-pad { padding-top: var(--o-header-h); }

/* Storefront 既定ヘッダー要素を隠す */
.site-header .storefront-skip-link,
.site-header .site-header-cart:not(.o-keep),
.site-header .storefront-handheld-footer-bar { display: none; }
.storefront-handheld-footer-bar { display: none !important; }

/* ==========================================================================
   4. ヒーロースライダー
   ========================================================================== */
/* 参考サイト実測: 高さ 868px（ワイド画面でも一定）、全幅 */
.o-hero {
	position: relative;
	width: 100%;
	height: clamp(420px, 60vw, 868px);
	overflow: hidden;
	background-color: #33363b;
}
.o-hero__track { position: absolute; inset: 0; }
.o-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .9s ease, visibility .9s;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	background-color: #33363b;
	background-image: linear-gradient(135deg, #3a3d42 0%, #23262a 60%, #171a1d 100%);
}
.o-hero__slide.is-active { opacity: 1; visibility: visible; z-index: 2; }
.o-hero__slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .12);
}
.o-hero__inner {
	position: relative;
	z-index: 3;
	height: 100%;
	max-width: var(--o-container);
	margin: 0 auto;
	/* スライド画像の上下左右中央にテキストとボタンを配置する */
	padding: 0 var(--o-gutter);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
}
.o-hero__eyebrow {
	font-family: var(--o-font-hero);
	font-size: 18px;
	font-weight: 400;
	line-height: 22px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--o-white);
	margin: 0;
}
.o-hero__title {
	font-family: var(--o-font-hero-2);
	font-size: 72px;
	line-height: 72px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--o-white);
	margin: 22px 0 0;
	max-width: 980px;
}
.o-hero__actions { margin-top: 38px; }

/* 矢印: 70x70 の円 / rgba(0,0,0,.1) — 参考サイト実測 */
.o-hero__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	border: 0;
	background: rgba(0, 0, 0, .1);
	color: var(--o-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .25s ease;
}
.o-hero__arrow:hover { background: rgba(0, 0, 0, .35); }
.o-hero__arrow--prev { left: 40px; }
.o-hero__arrow--next { right: 40px; }
.o-hero__arrow svg { width: 20px; height: 20px; display: block; }

/* ==========================================================================
   5. 特徴ボックス（3列 + CALL US）— ヒーローに重なる
   ========================================================================== */
/* ヒーローに 110px 重なる / カード高さ 215px / 4×300px — 参考サイト実測 */
.o-features { position: relative; z-index: 20; background: transparent; margin-bottom: 86px; }
.o-features__inner {
	max-width: var(--o-container);
	margin: -110px auto 0;
	padding: 0 var(--o-gutter);
	display: flex;
	align-items: stretch;
	box-sizing: border-box;
}
.o-features__group {
	flex: 3 1 0;
	display: flex;
	background: var(--o-white);
}
.o-feature {
	flex: 1 1 0;
	padding: 0 20px 0 55px;
	box-sizing: border-box;
	min-height: 215px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.o-features__group .o-feature + .o-feature { border-left: 1px solid var(--o-line); }
.o-feature__num {
	font-family: var(--o-font-body);
	font-size: 30px;
	font-weight: 700;
	line-height: 30px;
	color: var(--o-muted);
	margin: 0 0 5px;
}
.o-feature__title {
	font-family: var(--o-font-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: normal;
	text-transform: uppercase;
	color: var(--o-dark);
	margin: 0;
}
.o-feature__sub {
	font-family: var(--o-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	color: var(--o-muted);
	margin: 0;
}

/* CALL US */
.o-feature--call {
	flex: 1 1 0;
	background: var(--o-accent);
	padding: 30px 40px 40px;
	min-height: 215px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	border-left: 0;
}
.o-feature--call .o-call__title {
	font-family: var(--o-font-body);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.15;
	text-transform: uppercase;
	color: var(--o-white);
	margin: 0 0 4px;
}
.o-feature--call .o-call__tel {
	font-family: var(--o-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 30px;
	color: var(--o-white);
	margin: 0 0 15px;
	display: block;
}
.o-feature--call .o-call__tel:hover { color: var(--o-dark); }
.o-feature--call .o-call__hours {
	font-family: var(--o-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 22px;
	color: rgba(255, 255, 255, .85);
	margin: 0;
}

/* ==========================================================================
   6. セクション共通（見出し + タブ）
   ========================================================================== */
.o-section { padding: var(--o-section-y) 0; }
.o-section--tight { padding: 70px 0; }
.o-section__inner {
	max-width: var(--o-container);
	margin: 0 auto;
	padding: 0 var(--o-gutter);
	box-sizing: border-box;
}
.o-section__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 45px;
}
.o-section__title {
	font-family: var(--o-font-head);
	font-size: 30px;
	font-weight: 600;
	line-height: 36px;
	letter-spacing: normal;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0;
}

/* タブ */
.o-tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.o-tab {
	position: relative;
	background: transparent;
	border: 0;
	padding: 0 0 10px;
	margin: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	color: var(--o-text);
	cursor: pointer;
}
.o-tab:hover { color: var(--o-accent); }
.o-tab.is-active { color: var(--o-accent); }
.o-tab.is-active::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 2px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid var(--o-accent);
}

.o-panel { display: none; }
.o-panel.is-active { display: block; animation: oFade .45s ease both; }
@keyframes oFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   7. 商品グリッド
   ========================================================================== */
.o-products {
	list-style: none;
	margin: 0 -15px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}
.o-products > li,
.o-product {
	list-style: none;
	width: 33.3333%;
	padding: 0 15px 40px;
	margin: 0;
	box-sizing: border-box;
	text-align: center;
}
.o-products--4 > li { width: 25%; }

.o-product__media {
	position: relative;
	overflow: hidden;
	background: var(--o-white);
}
.o-product__media::before { content: ""; display: block; padding-top: 100%; }
.o-product__media > a {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.o-product__media img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	transition: transform .6s ease, opacity .4s ease;
}
.o-product:hover .o-product__media img { transform: scale(1.05); }

.o-product__badge,
.o-products span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
	background: var(--o-accent);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 12px;
	padding: 5px 10px;
	border-radius: 0;
	min-height: 0;
	min-width: 0;
	margin: 0;
	text-transform: none;
}

/* ホバー時のアクションアイコン */
.o-product__actions {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .3s ease, transform .3s ease;
}
.o-product:hover .o-product__actions { opacity: 1; transform: none; }
.o-product__actions a,
.o-product__actions button {
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 0;
	background: var(--o-white);
	color: var(--o-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 3px 14px rgba(0, 0, 0, .1);
	padding: 0;
	min-width: 0;
	cursor: pointer;
	font-size: 0;
}
.o-product__actions a:hover,
.o-product__actions button:hover { background: var(--o-accent); color: var(--o-white); }
.o-wish.is-active { color: var(--o-accent); }
.o-wish.is-active svg { fill: currentColor; }
.o-product__actions .o-wish.is-active { background: var(--o-accent); color: var(--o-white); }
.o-product__actions a.added { background: var(--o-accent); color: var(--o-white); }
.o-product__actions .added_to_cart { display: none !important; }
.o-featured__actions .added_to_cart { display: none !important; }
.o-product__actions svg { width: 16px; height: 16px; display: block; }

.o-product__name,
.o-product__name a {
	font-family: var(--o-font-head);
	font-size: 14px;
	font-weight: 400;
	line-height: 16.8px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--o-black);
	margin: 25px 0 8px;
	display: block;
}
.o-product__name a:hover { color: var(--o-accent); }

.o-product__price,
.o-product__price .amount,
.o-product__price .woocommerce-Price-amount {
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 500;
	line-height: 12px;
	color: var(--o-black);
}
.o-product__price del,
.o-product__price del .amount {
	color: var(--o-muted);
	text-decoration: line-through;
	margin-right: 6px;
	font-weight: 400;
}
.o-product__price ins,
.o-product__price ins .amount {
	text-decoration: none;
	color: var(--o-black);
	font-weight: 500;
}

.o-empty {
	width: 100%;
	padding: 40px 0;
	text-align: center;
	color: var(--o-muted);
	font-size: 14px;
}

/* ==========================================================================
   8. フィーチャード商品（Limited Time Offer）
   ========================================================================== */
.o-featured__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
}
/* 527 / 1170 = 45.04%、カラム間 116px = 9.92% — 参考サイト実測 */
.o-featured__media {
	width: 45.04%;
	box-sizing: border-box;
}
.o-featured__body {
	width: 45.04%;
	margin-left: 9.92%;
	box-sizing: border-box;
}
.o-featured__imagewrap {
	position: relative;
	background: #f5f5f5;
	overflow: hidden;
}
/* 527 x 658 (= 124.86%) — 参考サイト実測 */
.o-featured__imagewrap::before { content: ""; display: block; padding-top: 124.86%; }
.o-featured__imagewrap > a {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.o-featured__imagewrap img {
	max-width: 86%;
	max-height: 86%;
	width: auto;
	object-fit: contain;
}
.o-featured__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 3;
	background: var(--o-accent);
	color: var(--o-white);
	font-size: 12px;
	line-height: 12px;
	padding: 5px 10px;
}
.o-featured__eyebrow {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 300;
	line-height: 27px;
	color: var(--o-accent);
	margin: 0;
}
.o-featured__title {
	font-family: var(--o-font-head);
	font-size: 36px;
	font-weight: 400;
	line-height: 43.2px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--o-black);
	margin: 15px 0 35px;
}
.o-featured__title a { color: var(--o-black); }
.o-featured__title a:hover { color: var(--o-accent); }
.o-featured__price {
	font-family: var(--o-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	color: var(--o-black);
	margin: 0 0 26px;
}
.o-featured__price del, .o-featured__price del .amount { color: var(--o-muted); margin-right: 8px; }
.o-featured__price ins, .o-featured__price ins .amount { text-decoration: none; color: var(--o-black); }
.o-featured__excerpt {
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text);
	margin: 0 0 32px;
	max-width: 520px;
}
.o-featured__actions {
	display: flex;
	align-items: center;
	gap: 0;
}
.o-featured__icon {
	width: 40px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	color: var(--o-dark);
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
	box-shadow: none;
	cursor: pointer;
}
.o-featured__icon:hover { color: var(--o-accent); }
.o-featured__icon svg { width: 17px; height: 17px; display: block; }
.o-featured__atc {
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--o-black);
	background: transparent;
	border: 0;
	padding: 0 20px 0 0;
	margin-left: 22px;
	position: relative;
	cursor: pointer;
}
.o-featured__atc::before {
	content: "";
	position: absolute;
	left: -22px;
	top: 50%;
	width: 1px;
	height: 18px;
	background: var(--o-line);
	transform: translateY(-50%);
}
.o-featured__atc:hover { color: var(--o-accent); }

/* ==========================================================================
   8.5 固定ページ本文 / 記事本文の基本タイポグラフィ
   ========================================================================== */
.o-richtext, .entry-content {
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text);
}
.o-richtext h2, .entry-content h2 { font-size: 30px; line-height: 36px; font-weight: 600; margin: 48px 0 18px; }
.o-richtext h3, .entry-content h3 { font-size: 22px; line-height: 1.35; margin: 36px 0 14px; }
.o-richtext h4, .entry-content h4 { font-size: 16px; line-height: 1.4; margin: 28px 0 12px; }
.o-richtext > *:first-child, .entry-content > *:first-child { margin-top: 0; }
.o-richtext a, .entry-content a { color: var(--o-accent); }
.o-richtext a:hover, .entry-content a:hover { color: var(--o-dark); }
.o-richtext ul, .o-richtext ol,
.entry-content ul, .entry-content ol { margin: 0 0 1.5em 1.4em; }
.o-richtext blockquote, .entry-content blockquote {
	margin: 28px 0;
	padding: 4px 0 4px 22px;
	border-left: 2px solid var(--o-accent);
	color: var(--o-dark);
}
.o-richtext table, .entry-content table { width: 100%; border-collapse: collapse; font-size: 13px; }
.o-richtext th, .o-richtext td,
.entry-content th, .entry-content td { border: 1px solid var(--o-line); padding: 10px 12px; text-align: left; }
.o-richtext th, .entry-content th { background: var(--o-soft); color: var(--o-dark); font-weight: 600; }

/* ==========================================================================
   9. プロモバナー
   ========================================================================== */
.o-promo {
	position: relative;
	background-color: #efece7;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	padding: 70px 0 160px;
	text-align: center;
}
.o-promo__inner {
	position: relative;
	z-index: 2;
	max-width: var(--o-container);
	margin: 0 auto;
	padding: 0 var(--o-gutter);
	box-sizing: border-box;
}
.o-promo__title {
	font-family: var(--o-font-head);
	font-size: 60px;
	font-weight: 700;
	line-height: 70px;
	letter-spacing: normal;
	text-transform: uppercase;
	color: var(--o-accent);
	margin: 15px 0 5px;
}
.o-promo__sub {
	font-family: var(--o-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 30px;
	color: var(--o-dark);
	margin: 0 0 28px;
}

/* ==========================================================================
   10. フッター
   ========================================================================== */
/* 親テーマ Storefront は storefront_footer を .col-full で囲むため、
   下部の濃色バーを全幅にできるようラッパーの幅制限を解除する（無い場合も無害）。 */
.site-footer > .col-full {
	max-width: 100%;
	width: 100%;
	padding: 0;
}

.site-footer {
	background-color: var(--o-soft) !important;
	color: var(--o-text-2);
	padding: 0;
	margin: 0;
	font-size: 14px;
	border: 0;
}
.o-footer__widgets {
	max-width: var(--o-container);
	margin: 0 auto;
	padding: 58px var(--o-gutter) 48px;
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
}
/* 参考サイト実測: 12カラムグリッドで 2 / 2 / 2 / 3 / 3 */
.o-footer__col {
	flex: 0 0 16.6666%;
	max-width: 16.6666%;
	padding-right: 20px;
	box-sizing: border-box;
}
.o-footer__col:nth-child(4),
.o-footer__col:nth-child(5) { flex-basis: 25%; max-width: 25%; }
.o-footer__col:last-child { padding-right: 0; }
.o-footer__title {
	font-family: var(--o-font-head);
	font-size: 14px;
	font-weight: 600;
	line-height: 16.8px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--o-dark);
	margin: 0 0 22px;
}
.o-footer__list { list-style: none; margin: 0; padding: 0; }
.o-footer__list li { margin: 0 0 8px; }
.o-footer__list a,
.site-footer a {
	font-family: var(--o-font-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
	color: var(--o-text-2);
}
.o-footer__list a:hover, .site-footer a:hover { color: var(--o-accent); }

.o-footer__label {
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	text-transform: uppercase;
	color: var(--o-dark);
	margin: 0 0 2px;
	display: block;
	letter-spacing: .3px;
}
.o-footer__text {
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text-2);
	margin: 0 0 18px;
}
.o-footer__text:last-child { margin-bottom: 0; }

.o-social { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.o-social a {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--o-dark);
	color: var(--o-white);
	display: flex;
	align-items: center;
	justify-content: center;
}
.o-social a:hover { background: var(--o-accent); color: var(--o-white); }
.o-social svg { width: 14px; height: 14px; display: block; fill: currentColor; }

.o-footer__bottom {
	background: var(--o-dark);
	color: var(--o-text-2);
	font-size: 12px;
	line-height: 20px;
}
.o-footer__bottom-inner {
	max-width: var(--o-container);
	margin: 0 auto;
	padding: 15px var(--o-gutter);
	min-height: 51px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box;
}
.o-footer__pay { display: flex; align-items: center; gap: 6px; }
.o-footer__pay span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 20px;
	padding: 0 6px;
	border-radius: 2px;
	background: var(--o-white);
	color: #1a1f36;
	font-family: var(--o-font-body);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: .3px;
	text-transform: uppercase;
	white-space: nowrap;
}
.o-footer__pay span.is-visa   { background: #1a1f71; color: #fff; }
.o-footer__pay span.is-mc     { background: #eb001b; color: #fff; }
.o-footer__pay span.is-disc   { background: #f68121; color: #fff; }
.o-footer__pay span.is-pp     { background: #003087; color: #fff; }
.o-footer__pay span.is-amex   { background: #2671b9; color: #fff; }
.o-footer__copy { color: var(--o-text-2); font-size: 12px; margin: 0; text-align: right; }
.o-footer__copy a { color: var(--o-text-2); font-size: 12px; }

/* Storefront 既定フッターを隠す */
.site-footer .footer-widgets:not(.o-keep),
.site-footer .site-info:not(.o-keep) { display: none; }

/* ==========================================================================
   11. WooCommerce 一覧 / 商品詳細
   ========================================================================== */
.woocommerce .page-title,
.woocommerce-products-header__title {
	font-family: var(--o-font-head);
	font-size: 30px;
	font-weight: 600;
	line-height: 36px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 8px;
}
.woocommerce-products-header { padding-top: 56px; }

/* 一覧は Oasis と同じ3カラム。親テーマ (.columns-N) より詳細度が高い指定が
   必要なため、グリッド確定プロパティのみ !important を使用。 */
.woocommerce ul.products,
.woocommerce-page ul.products {
	margin: 0 -15px !important;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: 33.3333% !important;
	margin: 0 !important;
	padding: 0 15px 45px !important;
	float: none !important;
	clear: none !important;
	list-style: none;
	box-sizing: border-box;
	text-align: center;
}
/* 画像を正方形に揃え、商品名・価格の位置が商品ごとにずれないようにする */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	margin: 0 auto;
	box-shadow: none;
	transition: transform .6s ease;
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3 {
	font-family: var(--o-font-head);
	font-size: 14px;
	font-weight: 400;
	line-height: 16.8px;
	text-transform: none;
	color: var(--o-black);
	padding: 0;
	margin: 25px 0 8px;
}
.woocommerce ul.products li.product .price {
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 500;
	line-height: 12px;
	color: var(--o-black);
	margin: 0 0 12px;
	display: block;
}
.woocommerce ul.products li.product .price del { color: var(--o-muted); font-weight: 400; }
.woocommerce ul.products li.product .price ins { color: var(--o-black); text-decoration: none; font-weight: 500; }
/* 一覧の「カートに入れる」は控えめなアウトラインボタンに */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	display: inline-block;
	width: auto;
	height: 40px;
	line-height: 38px;
	padding: 0 22px;
	margin: 14px 0 0;
	background: transparent;
	border: 1px solid var(--o-line);
	color: var(--o-dark);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .8px;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
	background: var(--o-dark);
	border-color: var(--o-dark);
	color: var(--o-white);
}
.woocommerce ul.products li.product .added_to_cart {
	display: block;
	margin-top: 8px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--o-accent);
}
/* セールバッジは必ず絶対配置に（親テーマ CSS の読み込み順に依存しないよう明示） */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { position: relative; }
/* バッジは商品画像の左上に乗せたいので、画像を含むリンクを基準にする */
.woocommerce ul.products li.product > a,
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
	position: relative;
	display: block;
}
.woocommerce span.onsale {
	position: absolute;
	background: var(--o-accent);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 400;
	line-height: 12px;
	padding: 5px 10px;
	border-radius: 0;
	min-height: 0;
	min-width: 0;
	top: 12px;
	left: 12px;
	right: auto;
	margin: 0;
}
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before { color: var(--o-accent); }

/* ==========================================================================
   11.5 商品詳細ページ（1カラム / 画像:情報 = 5:5）
   ========================================================================== */

/* --- 1カラム化: サイドバー領域を消して本文を全幅に --- */
body.oasis-single-product #secondary,
body.oasis-single-product .widget-area { display: none !important; }
body.oasis-single-product #primary,
body.oasis-single-product .content-area {
	width: 100% !important;
	max-width: 100%;
	float: none !important;
	margin: 0 !important;
}
body.oasis-single-product .site-content { padding-top: 0; }
body.oasis-single-product .storefront-breadcrumb { display: none; }

/* --- ページヘッダー（商品名 + パンくず） --- */
.o-pagehead { width: 100%; background: var(--o-white); }
.o-pagehead__inner {
	max-width: var(--o-container);
	margin: 0 auto;
	padding: 70px var(--o-gutter);
	box-sizing: border-box;
}
.o-pagehead__title {
	font-family: var(--o-font-head);
	font-size: 30px;
	font-weight: 700;
	line-height: 36px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--o-black);
	margin: 0 0 15px;
}
.o-pagehead .o-pagehead__crumb,
.o-pagehead .o-pagehead__crumb .woocommerce-breadcrumb,
.o-pagehead .o-pagehead__crumb .woocommerce-breadcrumb a {
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text);
	margin: 0;
	padding: 0;
}
.o-pagehead__crumb a { color: var(--o-text); }
.o-pagehead__crumb a:hover { color: var(--o-accent); }
.o-pagehead__crumb .o-crumb-sep {
	display: inline-block;
	margin: 0 10px;
	color: var(--o-muted);
}

/* --- 商品本体: 画像 5 : 情報 5 --- */
/* 横幅は親テーマの .col-full (1200px) が担うので、ここでは重ねて指定しない */
.woocommerce div.product,
.woocommerce-page div.product {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0 0 20px;
	box-sizing: border-box;
}

/* 画像カラム */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.images {
	width: calc(50% - 30px) !important;
	float: none !important;
	margin: 0 !important;
	position: relative;
}
.woocommerce div.product .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image {
	position: relative;
	background: var(--o-white);
}
.woocommerce div.product .woocommerce-product-gallery__image > a,
.woocommerce div.product div.images img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: none;
}
/* サムネイル一覧 */
.woocommerce div.product .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce div.product .flex-control-thumbs li {
	width: calc(25% - 7.5px);
	margin: 0;
	list-style: none;
}
.woocommerce div.product .flex-control-thumbs img {
	opacity: .55;
	transition: opacity .25s ease;
	cursor: pointer;
}
.woocommerce div.product .flex-control-thumbs img.flex-active,
.woocommerce div.product .flex-control-thumbs img:hover { opacity: 1; }

/* セールバッジは画像の左上へ */
.woocommerce div.product > span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	z-index: 3;
}

/* 情報カラム */
.woocommerce div.product .summary,
.woocommerce div.product .entry-summary {
	width: calc(50% - 30px) !important;
	float: none !important;
	margin: 0 !important;
	padding: 0;
}

/* 余白は参考サイト実測: 商品名 15/30 → 価格 0/30 → カテゴリ 8/8 → 説明 → フォーム 30 → シェア 50 */
.woocommerce div.product .product_title {
	font-family: var(--o-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 28.8px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--o-black);
	margin: 15px 0 30px;
	padding: 0;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--o-font-head);
	font-size: 24px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--o-black);
	margin: 0 0 30px;
	display: block;
}
.woocommerce div.product p.price del,
.woocommerce div.product p.price del .amount {
	color: var(--o-muted);
	font-size: 20px;
	margin-right: 10px;
}
.woocommerce div.product p.price ins,
.woocommerce div.product p.price ins .amount {
	text-decoration: none;
	color: var(--o-black);
}

/* カテゴリー */
.o-single__cats {
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text);
	margin: 8px 0;
	padding: 0;
}
.o-single__cats-label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: var(--o-dark);
	margin-right: 8px;
}
.o-single__cats-list a { color: var(--o-accent); }
.o-single__cats-list a:hover { color: var(--o-dark); }

/* 短い説明 */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-text);
	margin: 0;
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* 数量 + カートに入れる */
.woocommerce div.product form.cart {
	display: flex;
	align-items: stretch;
	gap: 20px;
	margin: 30px 0 0;
}
.woocommerce div.product form.cart .quantity {
	flex: 0 0 auto;
	margin: 0;
	float: none;
}
.woocommerce div.product form.cart .quantity .qty,
.woocommerce .quantity input.qty {
	width: 70px;
	height: 50px;
	padding: 5px 10px;
	background: #eeeff2;
	border: 0;
	border-radius: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 30px;
	color: var(--o-text);
	text-align: center;
	box-shadow: none;
	-moz-appearance: textfield;
}
.woocommerce div.product form.cart .quantity .qty:focus { outline: 2px solid var(--o-accent); outline-offset: -2px; }

.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	height: 50px;
	min-height: 50px;
	padding: 0 30px;
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	line-height: 50px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--o-white);
	background: var(--o-black);
	border: 1px solid var(--o-black);
	border-radius: 0;
	text-align: center;
}
/* 参考デザインに合わせてラベルの右に矢印を添える */
.woocommerce div.product form.cart button.single_add_to_cart_button::after,
.woocommerce div.product form.cart .single_add_to_cart_button::after {
	content: "\2192";
	margin-left: 14px;
	font-size: 14px;
	line-height: 1;
	vertical-align: baseline;
}
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--o-accent);
	border-color: var(--o-accent);
	color: var(--o-white);
}
/* バリエーション商品 */
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .variations { margin-bottom: 18px; }
.woocommerce div.product form.cart .variations td { padding: 6px 0; }
.woocommerce div.product form.cart.variations_form .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: stretch;
	gap: 20px;
}

/* シェアボタン */
.o-share {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 50px 0 0;
}
.o-share__btn {
	width: 30px;
	height: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--o-white);
	border-radius: 0;
	transition: opacity .25s ease, transform .25s ease;
}
.o-share__btn:hover { opacity: .82; transform: translateY(-2px); color: var(--o-white); }
.o-share__btn svg { width: 14px; height: 14px; display: block; fill: currentColor; }
.o-share__btn--facebook  { background: #5678bf; }
.o-share__btn--twitter   { background: #1c1d1f; }
.o-share__btn--line      { background: #06c755; }
.o-share__btn--linkedin  { background: #007bb6; }
.o-share__btn--pinterest { background: #c32026; }
.o-share__btn--email     { background: #808080; }

/* --- タブ（中央寄せ・本文は幅780px） --- */
.woocommerce div.product .woocommerce-tabs {
	flex: 0 0 100%;
	width: 100%;
	margin-top: 90px;
	padding-top: 0;
	border-top: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0;
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
	border: 0;
	text-align: center;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 25px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	font-family: var(--o-font-head);
	font-size: 14px;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-text);
	padding: 0 0 8px;
	border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--o-dark); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--o-black);
	border-bottom-color: var(--o-black);
}
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
	max-width: 780px;
	margin: 0 auto 20px;
	padding: 0;
	border: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 30px;
	color: var(--o-text);
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* レビュー */
.woocommerce #reviews #comments h2 {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	color: var(--o-black);
	margin-bottom: 20px;
}
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond textarea { width: 100%; }

/* --- 関連商品（4カラム） --- */
.woocommerce div.product .related,
.woocommerce div.product .up-sells {
	flex: 0 0 100%;
	width: 100%;
	margin-top: 20px;
	padding-top: 60px;
	border-top: 1px solid var(--o-line);
}
.woocommerce div.product .related > h2,
.woocommerce div.product .up-sells > h2 {
	font-family: var(--o-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 28.8px;
	letter-spacing: normal;
	text-transform: uppercase;
	text-align: center;
	color: var(--o-black);
	margin: 0 0 55px;
}
.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .up-sells ul.products li.product {
	width: 25% !important;
	padding-bottom: 10px !important;
}

/* --- レスポンシブ --- */
@media (max-width: 991px) {
	.o-pagehead__inner { padding: 46px var(--o-gutter); }
	.o-pagehead__title { font-size: 24px; line-height: 30px; }

	.woocommerce div.product .woocommerce-product-gallery,
	.woocommerce div.product div.images,
	.woocommerce div.product .summary,
	.woocommerce div.product .entry-summary { width: 100% !important; }
	/* 1カラムでは画像が大きくなりすぎるので上限を設けて中央に */
	.woocommerce div.product .woocommerce-product-gallery,
	.woocommerce div.product div.images {
		max-width: 560px;
		margin: 0 auto !important;
	}
	.woocommerce div.product .summary,
	.woocommerce div.product .entry-summary { margin-top: 34px !important; }

	.woocommerce div.product .woocommerce-tabs { margin-top: 50px; padding-top: 44px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 14px; }
	.woocommerce div.product .related,
	.woocommerce div.product .up-sells { padding-top: 44px; }
	.woocommerce div.product .related > h2,
	.woocommerce div.product .up-sells > h2 { margin-bottom: 36px; }
	.woocommerce div.product .related ul.products li.product,
	.woocommerce div.product .up-sells ul.products li.product { width: 50% !important; }
}

@media (max-width: 575px) {
	.o-pagehead__title { font-size: 21px; line-height: 27px; }
	.woocommerce div.product form.cart,
	.woocommerce div.product form.cart.variations_form .woocommerce-variation-add-to-cart { gap: 12px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 10px 10px; }
	.woocommerce div.product .related ul.products li.product,
	.woocommerce div.product .up-sells ul.products li.product { width: 100% !important; }
}

.woocommerce-message,
.woocommerce-info { border-top-color: var(--o-accent); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--o-accent); }
.woocommerce-error { border-top-color: #b81c23; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	font-family: var(--o-font-body);
	font-size: 13px;
	color: var(--o-text);
	padding: 8px 14px;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--o-accent);
	color: var(--o-white);
}

/* ==========================================================================
   11.6 全ページ共通（1カラム化 / ページヘッダー / 本文の読みやすい幅）
   ========================================================================== */

/* --- サイドバーを出さず本文を全幅に --- */
body.oasis-onecol #secondary,
body.oasis-onecol .widget-area,
body.oasis-onecol .storefront-breadcrumb { display: none !important; }
body.oasis-onecol #primary,
body.oasis-onecol .content-area {
	width: 100% !important;
	max-width: 100%;
	float: none !important;
	margin: 0 !important;
}
body.oasis-onecol #content.site-content { padding: 0; }
/* トップページはセクション側で余白を持つため対象外 */
body.oasis-onecol:not(.oasis-front) #content.site-content > .col-full { padding-bottom: 90px; }

/* ページヘッダーがある場合、本文側の重複タイトルを隠す */
body.oasis-has-pagehead .hentry > .entry-header > .entry-title,
body.oasis-has-pagehead .page .entry-header > .entry-title,
body.oasis-has-pagehead .site-main > header.woocommerce-products-header,
body.oasis-has-pagehead .site-main > header.page-header,
body.oasis-has-pagehead .site-main > .page-header { display: none; }

/* --- 投稿メタ（ページヘッダー内） --- */
.o-pagehead__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 18px;
	font-family: var(--o-font-body);
	font-size: 13px;
	line-height: 22px;
	color: var(--o-muted);
	margin: 0 0 12px;
}
.o-pagehead__meta a { color: var(--o-accent); }
.o-pagehead__meta a:hover { color: var(--o-dark); }
.o-pagehead__cats { position: relative; padding-left: 19px; }
.o-pagehead__cats::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1px;
	height: 12px;
	background: var(--o-line);
	transform: translateY(-50%);
}
.o-pagehead--404 .o-pagehead__title { color: var(--o-dark); }

/* --- 本文の読みやすい幅（商品詳細の説明タブと同じ 780px） --- */
.oasis-onecol .hentry .entry-content,
.oasis-onecol .page-content,
.oasis-onecol .o-richtext {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}
/* カート / レジ / マイアカウント / ショップ は全幅で使うため 780px 制限の対象外 */
body.woocommerce-cart .hentry .entry-content,
body.woocommerce-checkout .hentry .entry-content,
body.woocommerce-account .hentry .entry-content,
body.woocommerce-page .hentry .entry-content,
body.woocommerce-order-received .hentry .entry-content {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
/* ブロックエディタの「幅広(alignwide)」「全幅(alignfull)」は、親テーマの
   storefront-align-wide がコンテナの外側まで広げてしまう（実測で 1305px）。
   全ページで同じ幅にそろえるため、本文カラム(1170px)に収める。 */
body.oasis-onecol .entry-content .alignwide,
body.oasis-onecol .entry-content .alignfull,
body.oasis-onecol .entry-content > .wp-block-woocommerce-cart,
body.oasis-onecol .entry-content > .wp-block-woocommerce-checkout,
body.oasis-onecol .wp-block-woocommerce-cart,
body.oasis-onecol .wp-block-woocommerce-checkout {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* --- セクション見出しの共通形 --- */
.o-blocktitle {
	font-family: var(--o-font-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 28.8px;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--o-black);
	margin: 0 0 30px;
}

/* --- 検索フォーム --- */
.o-searchform {
	display: flex;
	align-items: stretch;
	gap: 0;
	max-width: 520px;
}
.o-searchform__field {
	flex: 1 1 auto;
	height: 50px;
	padding: 5px 16px;
	background: #eeeff2;
	border: 0;
	border-radius: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-dark);
}
.o-searchform__field::placeholder { color: var(--o-muted); }
.o-searchform__submit {
	flex: 0 0 auto;
	height: 50px;
	padding: 0 26px;
	border: 1px solid var(--o-black);
	background: var(--o-black);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
}
.o-searchform__submit:hover { background: var(--o-accent); border-color: var(--o-accent); }

/* ==========================================================================
   11.7 ショップ一覧（並び替え / ページ送り）
   ========================================================================== */
.woocommerce .storefront-sorting,
.woocommerce-page .storefront-sorting {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin: 0 0 34px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--o-line);
}
.woocommerce .storefront-sorting + .products { margin-top: 0 !important; }
.woocommerce .woocommerce-result-count {
	font-family: var(--o-font-body);
	font-size: 13px;
	line-height: 22px;
	color: var(--o-text);
	margin: 0;
	float: none;
}
.woocommerce .woocommerce-ordering { margin: 0; float: none; }
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
	height: 42px;
	padding: 0 34px 0 14px;
	background-color: var(--o-white);
	border: 1px solid var(--o-line);
	border-radius: 0;
	font-family: var(--o-font-body);
	font-size: 13px;
	color: var(--o-dark);
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--o-text) 50%), linear-gradient(135deg, var(--o-text) 50%, transparent 50%);
	background-position: calc(100% - 18px) 19px, calc(100% - 13px) 19px;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}
.woocommerce .term-description,
.woocommerce .taxonomy-description {
	max-width: 780px;
	margin: 0 0 34px;
	font-size: 14px;
	line-height: 26px;
	color: var(--o-text);
}

/* 通知メッセージ */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
	border-top: 0;
	border-left: 3px solid var(--o-accent);
	border-radius: 0;
	padding: 16px 20px;
	margin: 0 0 26px;
	font-family: var(--o-font-body);
	font-size: 14px;
	line-height: 24px;
	color: var(--o-dark);
	list-style: none;
}
.woocommerce .woocommerce-error { border-left-color: #b81c23; }
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before { display: none; }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button {
	margin: 0 0 0 auto;
	height: 40px;
	line-height: 38px;
	padding: 0 20px;
	font-size: 11px;
}
.woocommerce .woocommerce-error li { list-style: none; margin: 0; }

/* チェックボックス / ラジオのアクセント色 */
.oasis-theme input[type="checkbox"],
.oasis-theme input[type="radio"] { accent-color: var(--o-accent); }

/* ページ送り */
.woocommerce nav.woocommerce-pagination,
.oasis-onecol .navigation.posts-navigation,
.oasis-onecol .navigation.pagination {
	margin: 30px 0 0;
	text-align: center;
}
.woocommerce nav.woocommerce-pagination ul,
.oasis-onecol .navigation.pagination .nav-links,
.oasis-onecol .navigation.posts-navigation .nav-links {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.oasis-onecol .navigation.pagination .nav-links a,
.oasis-onecol .navigation.pagination .nav-links span,
.oasis-onecol .navigation.posts-navigation .nav-links a,
.oasis-onecol .navigation.posts-navigation .nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--o-line);
	background: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 13px;
	font-weight: 500;
	color: var(--o-dark);
	border-radius: 0;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.oasis-onecol .navigation.pagination .nav-links a:hover,
.oasis-onecol .navigation.posts-navigation .nav-links a:hover {
	background: var(--o-dark);
	border-color: var(--o-dark);
	color: var(--o-white);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.oasis-onecol .navigation.pagination .nav-links span.current {
	background: var(--o-accent);
	border-color: var(--o-accent);
	color: var(--o-white);
}

/* ==========================================================================
   11.8 テーブル共通（カート / 注文 / マイアカウント）
   ========================================================================== */
.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
	border: 0;
	border-radius: 0;
	border-collapse: collapse;
	width: 100%;
	margin: 0 0 28px;
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-text);
}
.woocommerce table.shop_table th {
	font-family: var(--o-font-head);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--o-dark);
	background: transparent;
	border: 0;
	border-bottom: 2px solid var(--o-dark);
	padding: 0 14px 14px;
	text-align: left;
}
.woocommerce table.shop_table td {
	border: 0;
	border-bottom: 1px solid var(--o-line);
	padding: 22px 14px;
	vertical-align: middle;
}
.woocommerce table.shop_table th:first-child,
.woocommerce table.shop_table td:first-child { padding-left: 0; }
.woocommerce table.shop_table th:last-child,
.woocommerce table.shop_table td:last-child { padding-right: 0; text-align: right; }
.woocommerce table.shop_table tbody tr:last-child td { border-bottom: 1px solid var(--o-line); }

/* ==========================================================================
   11.9 カート
   ========================================================================== */
.woocommerce .cart_item .product-thumbnail img,
.woocommerce table.cart img {
	width: 84px;
	height: 84px;
	object-fit: contain;
	background: #f7f7f8;
	box-shadow: none;
}
.woocommerce table.cart td.product-name a,
.woocommerce table.cart td.product-name {
	font-family: var(--o-font-head);
	font-size: 15px;
	line-height: 1.4;
	color: var(--o-black);
}
.woocommerce table.cart td.product-name a:hover { color: var(--o-accent); }
.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal {
	font-family: var(--o-font-body);
	font-weight: 500;
	color: var(--o-dark);
}
.woocommerce a.remove {
	width: 24px;
	height: 24px;
	line-height: 22px;
	font-size: 18px;
	color: var(--o-muted) !important;
	border: 1px solid var(--o-line);
	border-radius: 50%;
	text-align: center;
}
.woocommerce a.remove:hover {
	background: #b81c23 !important;
	border-color: #b81c23;
	color: var(--o-white) !important;
}

/* 注意: td に display:flex を当てるとテーブルの列幅計算が壊れるため、
   セルは table-cell のまま、中身を inline-flex と float で組む。 */
.woocommerce table.cart td.actions {
	padding: 26px 0 0;
	border-bottom: 0;
	text-align: right !important;
}
.woocommerce table.cart td.actions::after { content: ""; display: table; clear: both; }
.woocommerce table.cart td.actions .coupon {
	display: inline-flex;
	align-items: stretch;
	gap: 10px;
	float: left;
	margin: 0;
	max-width: 100%;
}
.woocommerce table.cart td.actions .coupon label { display: none; }
.woocommerce table.cart td.actions .coupon #coupon_code,
.woocommerce table.cart td.actions .coupon input.input-text {
	flex: 1 1 auto;
	width: 180px;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 5px 16px;
	background: #eeeff2;
	border: 0;
	font-size: 14px;
}
.woocommerce table.cart td.actions .button {
	flex: 0 0 auto;
	height: 48px;
	padding: 0 22px;
	line-height: 48px;
	float: none;
	white-space: nowrap;
}

/* カートは「明細（左） + 合計（右）」の2カラム */
body.woocommerce-cart .entry-content > .woocommerce,
body.woocommerce-cart .site-main > .woocommerce,
body.woocommerce-cart .site-main > .oasis-cart-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 50px;
}
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > .woocommerce-message,
body.woocommerce-cart .woocommerce > .woocommerce-info { flex: 1 1 100%; }
body.woocommerce-cart .woocommerce-cart-form { flex: 1 1 0; min-width: 0; }
body.woocommerce-cart .cart-collaterals { flex: 0 0 340px; width: 340px; margin-top: 0; }

/* 明細テーブルの列幅を固定して、画像や文字が潰れないようにする */
.woocommerce table.cart th.product-remove,
.woocommerce table.cart td.product-remove { width: 34px; padding-left: 0; padding-right: 0; }
.woocommerce table.cart th.product-thumbnail,
.woocommerce table.cart td.product-thumbnail { width: 100px; }
.woocommerce table.cart th.product-price,
.woocommerce table.cart td.product-price { width: 98px; }
.woocommerce table.cart th.product-quantity,
.woocommerce table.cart td.product-quantity { width: 112px; }
.woocommerce table.cart th.product-subtotal,
.woocommerce table.cart td.product-subtotal { width: 104px; }
.woocommerce table.cart td.product-quantity .quantity { margin: 0; }
.woocommerce table.cart td.product-quantity .qty { width: 72px; height: 44px; }

.woocommerce .cart-collaterals { width: 100%; margin-top: 20px; }
.woocommerce .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	max-width: 420px;
	padding: 30px;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
	box-sizing: border-box;
}
.woocommerce .cart-collaterals .cart_totals > h2 {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 20px;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table { margin: 0 0 22px; }
.woocommerce .cart-collaterals .cart_totals table.shop_table th {
	border-bottom: 1px solid var(--o-line);
	padding: 14px 0;
	font-size: 11px;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table td {
	border-bottom: 1px solid var(--o-line);
	padding: 14px 0;
	text-align: right;
	color: var(--o-dark);
}
.woocommerce .cart-collaterals .cart_totals tr.order-total td,
.woocommerce .cart-collaterals .cart_totals tr.order-total th {
	border-bottom: 0;
	font-size: 16px;
	color: var(--o-black);
}
.woocommerce .cart-collaterals .cart_totals .order-total .amount { font-size: 20px; font-weight: 500; }
.woocommerce .wc-proceed-to-checkout { padding: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	height: 52px;
	line-height: 52px;
	padding: 0;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1px;
	text-align: center;
	background: var(--o-black);
	border-color: var(--o-black);
	color: var(--o-white);
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--o-accent);
	border-color: var(--o-accent);
}
.woocommerce .cart-empty,
.woocommerce .return-to-shop { text-align: center; }
.woocommerce .cart-empty { font-size: 16px; color: var(--o-text); margin-bottom: 24px; }

/* ==========================================================================
   11.9b ブロック版カート / レジ（WooCommerce Blocks）
   ---------------------------------------------------------------------------
   WooCommerce の新しいカート・レジページは `wc-block-*` という別マークアップで
   出力されるため、上のショートコード版 CSS は当たらない。こちらで同じ見え方にそろえる。
   ========================================================================== */

/* --- 2カラムの骨格 --- */
.wc-block-components-sidebar-layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 50px;
	width: 100%;
}
.wc-block-components-sidebar-layout .wc-block-components-main {
	flex: 1 1 0;
	min-width: 0;
	width: auto;
	max-width: none;
	padding: 0;
}
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	flex: 0 0 340px;
	width: 340px;
	max-width: 100%;
	padding: 30px;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
	box-sizing: border-box;
}

/* --- 見出し --- */
.wc-block-components-title,
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-order-summary__button-text {
	font-family: var(--o-font-head) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: .5px !important;
	text-transform: uppercase !important;
	color: var(--o-black) !important;
}
.wc-block-cart__totals-title { margin: 0 0 16px !important; }
.wc-block-components-checkout-step__description {
	font-family: var(--o-font-body);
	font-size: 13px;
	line-height: 22px;
	color: var(--o-text);
}
.wc-block-components-checkout-step {
	border: 0;
	padding-bottom: 26px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--o-line);
}
.wc-block-components-checkout-step:last-child { border-bottom: 0; }

/* --- 商品明細テーブル --- */
.wc-block-cart-items,
.wc-block-cart-items tbody { width: 100%; }
.wc-block-cart-items__header {
	font-family: var(--o-font-head);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--o-dark);
	border-bottom: 2px solid var(--o-dark);
}
.wc-block-cart-items__header th { padding: 0 0 14px; border: 0; text-align: left; }
.wc-block-cart-items__header th.wc-block-cart-items__header-total,
.wc-block-cart-items__row td.wc-block-cart-item__total { text-align: right; }
.wc-block-cart-item__total-price-and-sale-badge-wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}
.wc-block-cart-items__row td {
	border: 0;
	border-bottom: 1px solid var(--o-line);
	padding: 22px 0;
	vertical-align: top;
}
.wc-block-cart-item__image { width: 110px; padding-right: 20px !important; }
.wc-block-cart-item__image img {
	width: 84px;
	height: 84px;
	object-fit: contain;
	background: #f7f7f8;
}
.wc-block-components-product-name {
	font-family: var(--o-font-head) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	color: var(--o-black) !important;
	text-decoration: none !important;
}
.wc-block-components-product-name:hover { color: var(--o-accent) !important; }
.wc-block-components-product-metadata,
.wc-block-components-product-metadata__description {
	font-size: 12px;
	line-height: 20px;
	color: var(--o-muted);
}
.wc-block-components-product-price,
.wc-block-components-formatted-money-amount,
.wc-block-cart-item__total-price-and-sale-badge-wrapper {
	font-family: var(--o-font-body);
	font-weight: 500;
	color: var(--o-dark);
}
.wc-block-components-product-price__value { color: var(--o-dark); }
.wc-block-components-sale-badge {
	background: var(--o-accent);
	color: var(--o-white);
	border-radius: 0;
	font-family: var(--o-font-body);
	font-size: 11px;
	font-weight: 500;
	padding: 3px 8px;
}

/* 数量セレクター（− / 入力 / ＋ を自前のグリッドで配置） */
.wc-block-cart-item__quantity { margin-top: 12px; }
.wc-block-components-quantity-selector {
	display: grid;
	grid-template-columns: 34px 1fr 34px;
	align-items: stretch;
	border: 1px solid var(--o-line);
	border-radius: 0;
	background: #eeeff2;
	width: 112px;
	max-width: 112px;
	margin: 0;
}
.wc-block-components-quantity-selector::after { display: none; }
.wc-block-components-quantity-selector__input {
	grid-column: 2;
	grid-row: 1;
	width: 100%;
	min-width: 0;
	min-height: 38px;
	padding: 0;
	border: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-dark);
	background: transparent;
	text-align: center;
	-moz-appearance: textfield;
}
.wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
.wc-block-components-quantity-selector__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.wc-block-components-quantity-selector__button {
	grid-row: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 0;
	color: var(--o-text);
	font-size: 15px;
	line-height: 1;
	background: transparent;
	border: 0;
	cursor: pointer;
}
.wc-block-components-quantity-selector__button--minus { grid-column: 1; }
.wc-block-components-quantity-selector__button--plus { grid-column: 3; }
.wc-block-components-quantity-selector__button:hover { color: var(--o-accent); }

/* 削除リンク（button 要素の既定装飾を消す） */
.wc-block-cart-item__remove-link {
	display: inline-block;
	margin-top: 10px;
	padding: 0;
	background: transparent !important;
	border: 0;
	border-bottom: 1px solid var(--o-line);
	border-radius: 0;
	font-family: var(--o-font-body) !important;
	font-size: 11px !important;
	font-weight: 500;
	letter-spacing: .4px;
	color: var(--o-muted) !important;
	text-decoration: none !important;
	cursor: pointer;
	min-height: 0;
}
.wc-block-cart-item__remove-link:hover { color: #b81c23 !important; border-bottom-color: #b81c23; }

/* --- 合計エリア --- */
/* ラベルと金額を左右に振り分ける（親テーマ / ブロック CSS に依存しない） */
.wc-block-components-totals-item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-text);
	padding: 13px 0;
	border-bottom: 1px solid var(--o-line);
}
.wc-block-components-totals-item__label { flex: 1 1 auto; }
.wc-block-components-totals-item__value { flex: 0 0 auto; text-align: right; }
.wc-block-components-totals-item__label { color: var(--o-text); }
.wc-block-components-totals-item__value { color: var(--o-dark); font-weight: 500; }
.wc-block-components-totals-footer-item {
	border-bottom: 0;
	border-top: 1px solid var(--o-line);
	font-size: 16px;
	color: var(--o-black);
	padding-top: 16px;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 20px;
	font-weight: 500;
	color: var(--o-black);
}
.wc-block-components-totals-coupon__form .wc-block-components-text-input input,
.wc-block-components-totals-coupon__input input { background: var(--o-white); }

/* --- ボタン --- */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--o-black) !important;
	border: 1px solid var(--o-black) !important;
	border-radius: 0 !important;
	color: var(--o-white) !important;
	font-family: var(--o-font-body) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 1px !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	min-height: 52px;
	height: auto;
	padding: 0 26px;
	box-shadow: none !important;
	cursor: pointer;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--o-accent) !important;
	border-color: var(--o-accent) !important;
	color: var(--o-white) !important;
}
.wc-block-components-button.is-link,
.wc-block-cart__submit-container + .wc-block-components-button.is-link {
	color: var(--o-accent) !important;
	font-family: var(--o-font-body) !important;
	font-size: 13px !important;
	text-decoration: none !important;
}
.wc-block-cart__submit-container { padding: 0; margin-top: 22px; }
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { display: flex; width: 100%; }
.wc-block-components-sidebar .wc-block-components-button.is-link {
	display: inline-block;
	margin-top: 14px;
	text-align: center;
	width: 100%;
}

/* --- 入力欄 --- */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-block-components-combobox-control input,
.wc-block-components-select__container {
	border: 1px solid var(--o-line) !important;
	border-radius: 0 !important;
	background: var(--o-white) !important;
	font-family: var(--o-font-body) !important;
	font-size: 14px !important;
	color: var(--o-dark) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input,
.wc-block-components-textarea { margin-bottom: 16px; }
.wc-block-components-text-input input,
.wc-block-components-textarea { width: 100%; }
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus {
	border-color: var(--o-accent) !important;
	box-shadow: none !important;
}
.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-radio-control__label {
	font-family: var(--o-font-body);
	color: var(--o-text);
}
.wc-block-components-checkbox input[type="checkbox"],
.wc-block-components-radio-control input[type="radio"] { accent-color: var(--o-accent); }

/* --- 通知・パネル --- */
.wc-block-components-notice-banner {
	border-radius: 0;
	border: 1px solid var(--o-line);
	border-left: 3px solid var(--o-accent);
	background: var(--o-soft);
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-dark);
}
.wc-block-components-notice-banner.is-error { border-left-color: #b81c23; }
.wc-block-components-panel__button {
	font-family: var(--o-font-head);
	font-size: 13px;
	font-weight: 700;
	color: var(--o-dark);
}

/* --- カートが空のとき --- */
.wp-block-woocommerce-empty-cart-block { text-align: center; padding: 10px 0 30px; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--o-font-head);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 14px;
}
.wp-block-woocommerce-empty-cart-block .wp-block-heading { text-align: center; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block ul.products { justify-content: center; }

/* --- レスポンシブ --- */
@media (max-width: 991px) {
	.wc-block-components-sidebar-layout { display: block; }
	.wc-block-components-sidebar-layout .wc-block-components-sidebar {
		width: 100%;
		flex: 1 1 100%;
		margin-top: 30px;
	}
}
@media (max-width: 767px) {
	.wc-block-components-sidebar-layout .wc-block-components-sidebar { padding: 22px; }
	.wc-block-cart-item__image { width: 84px; padding-right: 14px !important; }
	.wc-block-cart-item__image img { width: 70px; height: 70px; }
}

/* ==========================================================================
   11.10 チェックアウト（2カラム: 入力 + 注文内容）
   ========================================================================== */
/* 入力（左） + 注文内容（右）。右側は functions 側でラッパーを差し込んでいる。 */
.woocommerce form.checkout.woocommerce-checkout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0 60px;
}
.woocommerce form.checkout #customer_details { flex: 1 1 0; min-width: 0; }
.woocommerce form.checkout .o-checkout__aside {
	flex: 0 0 400px;
	width: 400px;
}
.woocommerce form.checkout .o-checkout__aside #order_review_heading { margin-top: 0; }
/* ラッパーが無い環境でも崩れないよう、素の #order_review にも幅を与える */
.woocommerce form.checkout > #order_review,
.woocommerce form.checkout > #order_review_heading { flex: 1 1 100%; }

.woocommerce form.checkout #customer_details .col2-set,
.woocommerce .col2-set { width: 100%; }
.woocommerce form.checkout #customer_details .col-1,
.woocommerce form.checkout #customer_details .col-2 { float: none; width: 100%; }

.woocommerce form.checkout h3,
.woocommerce #order_review_heading {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 22px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--o-line);
}
.woocommerce form.checkout .woocommerce-additional-fields h3 { margin-top: 34px; }
.woocommerce form.checkout h3#ship-to-different-address {
	border-bottom: 0;
	padding-bottom: 0;
	margin-top: 32px;
	font-size: 14px;
	text-transform: none;
	letter-spacing: 0;
}

.woocommerce form .form-row {
	padding: 0;
	margin: 0 0 18px;
}
.woocommerce form .form-row label {
	display: block;
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--o-dark);
	margin: 0 0 7px;
}
.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 400;
	font-size: 13px;
	color: var(--o-text);
}
.woocommerce form .form-row .required { color: #b81c23; border: 0; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	width: 100%;
	height: 48px;
	padding: 5px 14px;
	background: var(--o-white);
	border: 1px solid var(--o-line);
	border-radius: 0;
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-dark);
	box-shadow: none;
	box-sizing: border-box;
}
.woocommerce form .form-row textarea { height: auto; min-height: 110px; padding: 12px 14px; line-height: 24px; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--o-accent); outline: none; }
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.4; color: var(--o-dark); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: calc(50% - 9px); }
.woocommerce form .form-row-first { float: left; }
.woocommerce form .form-row-last { float: right; }

.woocommerce #order_review {
	padding: 30px;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
	box-sizing: border-box;
}
.woocommerce #order_review table.shop_table { margin: 0 0 6px; }
.woocommerce #order_review table.shop_table th,
.woocommerce #order_review table.shop_table td { padding: 13px 0; }
.woocommerce #order_review table.shop_table th { font-size: 11px; border-bottom: 1px solid var(--o-line); }
.woocommerce #order_review table.shop_table tfoot th { border-bottom: 1px solid var(--o-line); }
.woocommerce #order_review table.shop_table tfoot .order-total th,
.woocommerce #order_review table.shop_table tfoot .order-total td { border-bottom: 0; font-size: 15px; color: var(--o-black); }
.woocommerce #order_review table.shop_table tfoot .order-total .amount { font-size: 20px; font-weight: 500; }

.woocommerce #payment,
.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
}
.woocommerce #payment ul.payment_methods {
	padding: 18px 0 0;
	border-bottom: 1px solid var(--o-line);
	margin: 0 0 18px;
	list-style: none;
}
.woocommerce #payment ul.payment_methods li { margin: 0 0 10px; list-style: none; }
.woocommerce #payment ul.payment_methods label {
	font-family: var(--o-font-body);
	font-size: 14px;
	color: var(--o-dark);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
}
.woocommerce #payment div.payment_box {
	background: var(--o-white);
	border: 1px solid var(--o-line);
	border-radius: 0;
	font-size: 13px;
	line-height: 22px;
	color: var(--o-text);
	margin: 10px 0 0;
}
.woocommerce #payment div.payment_box::before { display: none; }
.woocommerce #payment .place-order { padding: 0; }
.woocommerce #payment #place_order,
.woocommerce-checkout #payment #place_order {
	width: 100%;
	height: 54px;
	line-height: 54px;
	padding: 0;
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 1px;
	background: var(--o-black);
	border-color: var(--o-black);
	color: var(--o-white);
	float: none;
}
.woocommerce #payment #place_order:hover { background: var(--o-accent); border-color: var(--o-accent); }
.woocommerce-privacy-policy-text { font-size: 12px; line-height: 20px; color: var(--o-muted); }

.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle { margin-bottom: 22px; }
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--o-line);
	border-radius: 0;
	padding: 26px;
	margin: 0 0 26px;
	background: var(--o-white);
}
.woocommerce form.checkout_coupon .form-row-first,
.woocommerce form.checkout_coupon .form-row-last { width: calc(50% - 9px); }

/* ==========================================================================
   11.11 マイアカウント
   ========================================================================== */
/* 1カラムを保つため、アカウントのナビは横並びのタブにする
   （商品詳細ページのタブと同じ表現でそろえる） */
.woocommerce-account .woocommerce { display: block; }
.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 100%;
	float: none;
	margin: 0 0 38px;
	border-bottom: 1px solid var(--o-line);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	margin: 0;
	list-style: none;
	border: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 12px 16px;
	border-bottom: 2px solid transparent;
	font-family: var(--o-font-head);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .4px;
	color: var(--o-text);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { color: var(--o-dark); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--o-black);
	border-bottom-color: var(--o-black);
	background: transparent;
}
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 20px;
}
.woocommerce-account .woocommerce-MyAccount-content legend {
	font-family: var(--o-font-head);
	font-size: 15px;
	font-weight: 700;
	color: var(--o-black);
	padding: 0;
}
.woocommerce-account .woocommerce-MyAccount-content fieldset {
	border: 1px solid var(--o-line);
	padding: 22px;
	margin: 26px 0 0;
}

/* ログイン / 登録 */
.woocommerce #customer_login {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	width: 100%;
}
.woocommerce #customer_login > div,
.woocommerce #customer_login .u-column1,
.woocommerce #customer_login .u-column2 {
	display: flex;
	flex-direction: column;
	flex: 1 1 calc(50% - 20px);
	width: auto;
	float: none;
	min-width: 0;
}
.woocommerce #customer_login form { flex: 1 1 auto; }
.woocommerce #customer_login h2 {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 18px;
}
.woocommerce form.login .button,
.woocommerce form.register .button {
	height: 50px;
	line-height: 50px;
	padding: 0 32px;
	background: var(--o-black);
	border-color: var(--o-black);
}
.woocommerce form.login .button:hover,
.woocommerce form.register .button:hover { background: var(--o-accent); border-color: var(--o-accent); }
.woocommerce-LostPassword { margin: 12px 0 0; font-size: 13px; }
.woocommerce-LostPassword a { color: var(--o-accent); }

/* 注文完了 */
.woocommerce .woocommerce-order {
	max-width: 860px;
	margin: 0 auto;
}
.woocommerce ul.woocommerce-order-overview,
.woocommerce ul.order_details {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0 0 34px;
	padding: 24px;
	list-style: none;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
}
.woocommerce ul.order_details li {
	flex: 1 1 auto;
	border-right: 1px solid var(--o-line);
	padding: 0 20px;
	margin: 0;
	font-family: var(--o-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--o-muted);
	list-style: none;
}
.woocommerce ul.order_details li:first-child { padding-left: 0; }
.woocommerce ul.order_details li:last-child { border-right: 0; padding-right: 0; }
.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 6px;
	font-family: var(--o-font-head);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--o-black);
}

/* ==========================================================================
   11.12 ブログ / 記事 / 固定ページ / 検索 / 404
   ========================================================================== */

/* --- 一覧（カードグリッド） --- */
.oasis-onecol .site-main > article.hentry,
.oasis-onecol .site-main > .type-post { margin: 0; }

body.oasis-onecol.blog:not(.oasis-front) .site-main,
body.oasis-onecol.archive:not(.woocommerce-page) .site-main,
body.oasis-onecol.search-results .site-main {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -15px;
}
body.oasis-onecol.blog:not(.woocommerce-page) .site-main > article,
body.oasis-onecol.archive:not(.woocommerce-page) .site-main > article,
body.oasis-onecol.search-results:not(.woocommerce-page) .site-main > article {
	width: 33.3333%;
	padding: 0 15px 45px;
	margin: 0;
	box-sizing: border-box;
	border: 0;
}
body.oasis-blog-cols-2:not(.woocommerce-page) .site-main > article { width: 50%; }
body.oasis-blog-cols-1:not(.woocommerce-page) .site-main > article { width: 100%; }
/* 記事以外（ページ送りなど）はグリッドの外側いっぱいに置く。
   WooCommerce のアーカイブには適用しない（商品グリッドの幅がずれるため）。 */
body.oasis-onecol.blog:not(.woocommerce-page) .site-main > *:not(article),
body.oasis-onecol.archive:not(.woocommerce-page) .site-main > *:not(article),
body.oasis-onecol.search-results:not(.woocommerce-page) .site-main > *:not(article) {
	width: 100%;
	padding: 0 15px;
	box-sizing: border-box;
}

.oasis-onecol article.hentry .post-thumbnail,
.oasis-onecol article.hentry .entry-thumbnail { display: block; margin: 0 0 20px; overflow: hidden; }
.oasis-onecol article.hentry .post-thumbnail img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .6s ease;
}
.oasis-onecol article.hentry:hover .post-thumbnail img { transform: scale(1.04); }

body.oasis-onecol.blog .site-main > article .entry-title,
body.oasis-onecol.archive .site-main > article .entry-title,
body.oasis-onecol.search-results .site-main > article .entry-title {
	display: block;
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: normal;
	text-transform: none;
	color: var(--o-black);
	margin: 0 0 10px;
}
body.oasis-onecol.blog .site-main > article .entry-title a,
body.oasis-onecol.archive .site-main > article .entry-title a { color: var(--o-black); }
body.oasis-onecol.blog .site-main > article .entry-title a:hover,
body.oasis-onecol.archive .site-main > article .entry-title a:hover { color: var(--o-accent); }

.oasis-onecol .entry-meta,
.oasis-onecol .posted-on,
.oasis-onecol .byline {
	font-family: var(--o-font-body);
	font-size: 12px;
	line-height: 20px;
	color: var(--o-muted);
	margin: 0 0 10px;
}
.oasis-onecol .entry-meta a { color: var(--o-muted); }
.oasis-onecol .entry-meta a:hover { color: var(--o-accent); }

body.oasis-onecol.blog .site-main > article .entry-content,
body.oasis-onecol.archive .site-main > article .entry-content,
body.oasis-onecol.search-results .site-main > article .entry-content {
	max-width: none;
	margin: 0;
	font-size: 13px;
	line-height: 24px;
	color: var(--o-text);
}
.oasis-onecol .more-link {
	display: inline-block;
	margin-top: 12px;
	font-family: var(--o-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--o-dark);
	border-bottom: 1px solid var(--o-line);
	padding-bottom: 3px;
}
.oasis-onecol .more-link:hover { color: var(--o-accent); border-bottom-color: var(--o-accent); }

/* --- 単一記事 / 固定ページ --- */
body.oasis-onecol.single .site-main,
body.oasis-onecol.page .site-main { padding-top: 0; }
body.oasis-onecol.single article.hentry .post-thumbnail,
body.oasis-onecol.page article.hentry .post-thumbnail {
	max-width: 1170px;
	margin: 0 auto 44px;
}
body.oasis-onecol.single article.hentry .post-thumbnail img,
body.oasis-onecol.page article.hentry .post-thumbnail img { aspect-ratio: 16 / 7; }

.oasis-onecol .entry-content h2 { margin-top: 46px; }
.oasis-onecol .entry-content img { height: auto; }
.oasis-onecol .entry-content .wp-caption-text,
.oasis-onecol .entry-content figcaption {
	font-size: 12px;
	color: var(--o-muted);
	text-align: center;
	margin-top: 8px;
}

.oasis-onecol .entry-footer,
.oasis-onecol .tags-links,
.oasis-onecol .cat-links {
	max-width: 780px;
	margin: 34px auto 0;
	padding-top: 22px;
	border-top: 1px solid var(--o-line);
	font-size: 12px;
	color: var(--o-muted);
}
.oasis-onecol .tags-links a {
	display: inline-block;
	margin: 0 6px 6px 0;
	padding: 5px 12px;
	background: var(--o-soft);
	border: 1px solid var(--o-line);
	font-size: 11px;
	color: var(--o-text);
}
.oasis-onecol .tags-links a:hover { background: var(--o-accent); border-color: var(--o-accent); color: var(--o-white); }

.oasis-onecol .post-navigation {
	max-width: 780px;
	margin: 40px auto 0;
	padding-top: 26px;
	border-top: 1px solid var(--o-line);
}
.oasis-onecol .post-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 20px;
}
.oasis-onecol .post-navigation .nav-previous,
.oasis-onecol .post-navigation .nav-next { flex: 1 1 40%; }
.oasis-onecol .post-navigation .nav-next { text-align: right; }
.oasis-onecol .post-navigation a {
	font-family: var(--o-font-head);
	font-size: 14px;
	line-height: 1.45;
	color: var(--o-dark);
}
.oasis-onecol .post-navigation a:hover { color: var(--o-accent); }

/* --- 404 / 検索結果なし --- */
.oasis-onecol .error-404,
.oasis-onecol .no-results {
	max-width: 620px;
	margin: 0 auto;
	padding: 20px 0 40px;
	text-align: center;
}
.oasis-onecol .error-404 .page-title,
.oasis-onecol .no-results .page-title {
	font-family: var(--o-font-head);
	font-size: 22px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--o-black);
	margin: 0 0 14px;
}
.oasis-onecol .error-404 .page-content,
.oasis-onecol .no-results .page-content { max-width: none; }
.oasis-onecol .error-404 .o-searchform,
.oasis-onecol .no-results .o-searchform { margin: 26px auto 0; }

/* ==========================================================================
   11.13 コメント
   ========================================================================== */
.oasis-onecol #comments,
.oasis-onecol .comments-area {
	max-width: 780px;
	margin: 46px auto 0;
	padding-top: 34px;
	border-top: 1px solid var(--o-line);
}
.oasis-onecol .comments-title,
.oasis-onecol #reply-title {
	font-family: var(--o-font-head);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--o-black);
	margin: 0 0 24px;
}
.oasis-onecol .comment-list { list-style: none; margin: 0 0 34px; padding: 0; }
.oasis-onecol .comment-list li { list-style: none; }
.oasis-onecol .comment-list .comment-body {
	padding: 22px 0;
	border-bottom: 1px solid var(--o-line);
}
.oasis-onecol .comment-list .avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	margin-right: 14px;
}
.oasis-onecol .comment-author .fn,
.oasis-onecol .comment-author b {
	font-family: var(--o-font-head);
	font-size: 14px;
	font-weight: 400;
	color: var(--o-black);
}
.oasis-onecol .comment-metadata,
.oasis-onecol .comment-meta .comment-metadata a { font-size: 12px; color: var(--o-muted); }
.oasis-onecol .comment-content { font-size: 14px; line-height: 26px; color: var(--o-text); }
.oasis-onecol .reply a {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--o-dark);
}
.oasis-onecol .reply a:hover { color: var(--o-accent); }
.oasis-onecol .comment-form label {
	display: block;
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .4px;
	text-transform: uppercase;
	color: var(--o-dark);
	margin: 0 0 7px;
}
.oasis-onecol .comment-form input[type="text"],
.oasis-onecol .comment-form input[type="email"],
.oasis-onecol .comment-form input[type="url"],
.oasis-onecol .comment-form textarea {
	width: 100%;
	border: 1px solid var(--o-line);
	background: var(--o-white);
	padding: 12px 14px;
	font-size: 14px;
	box-sizing: border-box;
}
.oasis-onecol .comment-form p { margin-bottom: 18px; }
.oasis-onecol .comment-form .submit,
.oasis-onecol .form-submit input[type="submit"] {
	height: 50px;
	padding: 0 34px;
	background: var(--o-black);
	border: 1px solid var(--o-black);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	border-radius: 0;
	cursor: pointer;
}
.oasis-onecol .form-submit input[type="submit"]:hover { background: var(--o-accent); border-color: var(--o-accent); }

/* ==========================================================================
   11.14 各ページのレスポンシブ
   ========================================================================== */
@media (max-width: 991px) {
	body.oasis-onecol #content.site-content > .col-full { padding-bottom: 60px; }

	.woocommerce form.checkout.woocommerce-checkout { display: block; }
	.woocommerce form.checkout .o-checkout__aside {
		flex: 1 1 100%;
		width: 100%;
		margin-top: 36px;
	}
	.woocommerce form.checkout #order_review_heading { margin-top: 0; }

	.woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; margin: 0 0 28px; }

	/* カートも1カラムに戻す */
	body.woocommerce-cart .entry-content > .woocommerce,
	body.woocommerce-cart .site-main > .woocommerce { display: block; }
	body.woocommerce-cart .cart-collaterals {
		flex: 1 1 100%;
		width: 100%;
		margin-top: 30px;
	}
	.woocommerce .cart-collaterals .cart_totals { max-width: 100%; float: none; }

	body.oasis-onecol.blog:not(.woocommerce-page) .site-main > article,
	body.oasis-onecol.archive:not(.woocommerce-page) .site-main > article,
	body.oasis-onecol.search-results:not(.woocommerce-page) .site-main > article { width: 50%; }
	body.oasis-blog-cols-1:not(.woocommerce-page) .site-main > article { width: 100%; }

	body.oasis-onecol.single article.hentry .post-thumbnail img,
	body.oasis-onecol.page article.hentry .post-thumbnail img { aspect-ratio: 16 / 9; }
}

@media (max-width: 767px) {
	/* スマホではテーブルを行単位のカードに積み替える（親テーマ CSS に依存しない実装） */
	.woocommerce table.shop_table_responsive,
	.woocommerce table.shop_table_responsive tbody { display: block; width: 100%; }
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tbody tr {
		display: block;
		position: relative;
		padding: 18px 0;
		border-bottom: 1px solid var(--o-line);
	}
	.woocommerce table.shop_table_responsive tbody tr:last-child { border-bottom: 0; }
	.woocommerce table.shop_table_responsive tbody tr td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		width: auto !important;
		border: 0;
		padding: 5px 0;
		text-align: right !important;
	}
	.woocommerce table.shop_table_responsive tbody tr td::before {
		content: attr(data-title);
		flex: 0 0 auto;
		font-family: var(--o-font-body);
		font-size: 11px;
		font-weight: 700;
		letter-spacing: .6px;
		text-transform: uppercase;
		color: var(--o-dark);
	}
	/* 画像と削除ボタンはラベル不要 */
	.woocommerce table.shop_table_responsive tbody tr td.product-thumbnail {
		justify-content: flex-start;
		padding-bottom: 10px;
	}
	.woocommerce table.shop_table_responsive tbody tr td.product-thumbnail::before,
	.woocommerce table.shop_table_responsive tbody tr td.product-remove::before { display: none; }
	.woocommerce table.shop_table_responsive tbody tr td.product-remove {
		position: absolute;
		top: 16px;
		right: 0;
		padding: 0;
		justify-content: flex-end;
	}
	.woocommerce table.shop_table_responsive tbody tr td.product-name {
		justify-content: flex-start;
		text-align: left !important;
		font-size: 15px;
		padding-right: 34px;
	}
	.woocommerce table.shop_table_responsive tbody tr td.product-name::before { display: none; }
	.woocommerce table.cart td.product-quantity .qty { width: 84px; }

	/* クーポン / 更新ボタンは縦積み */
	.woocommerce table.cart td.actions {
		display: block;
		text-align: left !important;
		padding-top: 20px;
	}
	.woocommerce table.cart td.actions .coupon {
		display: flex;
		flex-direction: column;
		float: none;
		gap: 10px;
		margin-bottom: 12px;
	}
	.woocommerce table.cart td.actions .coupon #coupon_code,
	.woocommerce table.cart td.actions .coupon input.input-text,
	.woocommerce table.cart td.actions .button { width: 100%; }

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { width: 100%; float: none; }

	.woocommerce #customer_login { display: block; }
	.woocommerce #customer_login > div { margin-bottom: 34px; }

	.woocommerce ul.order_details { flex-direction: column; }
	.woocommerce ul.order_details li {
		border-right: 0;
		border-bottom: 1px solid var(--o-line);
		padding: 12px 0;
	}
	.woocommerce ul.order_details li:last-child { border-bottom: 0; }

	body.oasis-onecol.blog:not(.woocommerce-page) .site-main > article,
	body.oasis-onecol.archive:not(.woocommerce-page) .site-main > article,
	body.oasis-onecol.search-results:not(.woocommerce-page) .site-main > article { width: 100%; }

	.oasis-onecol .post-navigation .nav-links { flex-direction: column; }
	.oasis-onecol .post-navigation .nav-next { text-align: left; }
}

/* ==========================================================================
   12. レスポンシブ
   ========================================================================== */
/* 日本語メニューは英語より横幅を取るため、段階的に詰める */
@media (max-width: 1400px) {
	.o-header__search { flex-basis: 220px; margin-left: 34px; }
	.o-header__nav ul li a { padding: 7px 15px; }
}
@media (max-width: 1280px) {
	.o-header__search { flex-basis: 160px; margin-left: 22px; }
	.o-header__nav ul li a { padding: 7px 11px; }
	.o-header__branding .o-logo-text--long { font-size: 14px; letter-spacing: 1px; }
}

@media (max-width: 1199px) {
	.o-header__search { flex-basis: 150px; margin-left: 20px; }
	.o-header__nav ul li a { padding: 7px 10px; }
	.o-hero__title { font-size: 56px; line-height: 60px; }
	.o-promo__title { font-size: 48px; line-height: 58px; }
	.o-features__inner { margin-top: -80px; }
}

@media (max-width: 1120px) {
	.o-header__search { display: none; }
}

@media (max-width: 991px) {
	:root { --o-section-y: 70px; }
	.o-header__search { display: none; }
	.o-header__toggle { display: block; order: 5; }
	.o-header__nav {
		order: 6;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--o-dark);
		display: none;
		padding: 10px 0 18px;
		box-shadow: 0 18px 30px rgba(0, 0, 0, .18);
	}
	.o-header.is-open .o-header__nav { display: block; }
	.o-header__nav ul { flex-direction: column; align-items: stretch; }
	.o-header__nav ul li a { padding: 11px 20px; line-height: 22px; }
	.o-header__nav ul ul {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: rgba(255, 255, 255, .06);
		padding: 4px 0;
	}
	.o-header__nav ul ul li a { color: rgba(255, 255, 255, .8); padding-left: 36px; }
	.o-header__cart { margin-left: auto; }

	.o-hero { height: 70vw; min-height: 420px; }
	.o-hero__eyebrow { font-size: 14px; letter-spacing: 2px; }
	.o-hero__title { font-size: 40px; line-height: 46px; }
	.o-hero__actions { margin-top: 30px; }

	.o-features__inner { flex-wrap: wrap; margin-top: -60px; }
	.o-features__group { flex: 1 1 100%; flex-wrap: wrap; }
	.o-feature { flex: 1 1 50%; min-height: 0; padding: 26px 28px 30px; }
	.o-features__group .o-feature:nth-child(3) { border-left: 0; border-top: 1px solid var(--o-line); }
	.o-feature--call { flex: 1 1 100%; min-height: 0; padding: 26px 28px 30px; }

	.o-section__head { flex-direction: column; align-items: flex-start; margin-bottom: 30px; }
	.o-tabs { gap: 0 18px; }

	.o-featured__media, .o-featured__body { width: 100%; }
	.o-featured__body { margin-top: 32px; }
	.o-featured__eyebrow { margin-bottom: 16px; }
	.o-featured__title { font-size: 28px; line-height: 34px; }

	.o-promo { padding: 60px 0 90px; }
	.o-promo__title { font-size: 36px; line-height: 44px; }
	.o-promo__sub { font-size: 15px; line-height: 26px; }

	.o-footer__widgets { padding: 44px var(--o-gutter) 34px; }
	.o-footer__col,
	.o-footer__col:nth-child(4),
	.o-footer__col:nth-child(5) { flex: 1 1 45%; min-width: 45%; max-width: 50%; margin-bottom: 30px; }
	.o-footer__bottom-inner { flex-direction: column; text-align: center; }
	.o-footer__copy { text-align: center; }
}

@media (max-width: 767px) {
	.o-products > li, .o-product { width: 50%; }
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product { width: 50% !important; }
	.o-hero__arrow { width: 40px; height: 40px; }
	.o-hero__arrow svg { width: 15px; height: 15px; }
	.o-hero__arrow--prev { left: 10px; }
	.o-hero__arrow--next { right: 10px; }
}

@media (max-width: 575px) {
	.o-header__branding .site-title,
	.o-header__branding .o-logo-text { font-size: 17px; letter-spacing: 3px; }
	.o-hero { height: 125vw; min-height: 440px; max-height: 560px; }
	.o-hero__eyebrow { font-size: 13px; letter-spacing: 1.5px; }
	.o-hero__actions { margin-top: 26px; }
	.o-hero__title { font-size: 30px; line-height: 36px; }
	.o-btn--light { padding: 13px 32px; }
	.o-features__inner { margin-top: -70px; }
	.o-feature { flex: 1 1 100%; }
	.o-features__group .o-feature + .o-feature { border-left: 0; border-top: 1px solid var(--o-line); }
	.o-products > li, .o-product { width: 100%; }
	.woocommerce ul.products li.product,
	.woocommerce-page ul.products li.product { width: 100% !important; }
	.o-footer__col,
	.o-footer__col:nth-child(4),
	.o-footer__col:nth-child(5) { flex: 1 1 100%; min-width: 100%; max-width: 100%; }
	.o-promo__title { font-size: 28px; line-height: 34px; }
}

/* アクセシビリティ */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;
	width: 1px; word-wrap: normal !important;
}
:focus-visible { outline: 2px solid var(--o-accent); outline-offset: 2px; }
