/* ============================================================
   Vexolite 1.4.7 — ヘッダー常時 2 段（全幅統一）/ フッター内ナビ / 信頼栏中央寄せ
   親テーマ(Storefront)のcompiled CSSより後に読ませるため別ファイル化。
   ============================================================ */
:root {
	/* コンテン幅: 1140px 固定はワイド画面で「細い帯が浮いている」ように見える
	   （2026-10-02 運営指摘「左右空白太多」）。1400px 上限＋ビューポート連動にする。 */
	--vx-wrap: min(1400px, calc(100% - 2.5rem));
	--vx-pad: clamp(1rem, 3vw, 2.25rem);
	/* 2 段分の高さ（上段 約2.6rem + 下段ナビ 約2.1rem + 余白） */
	--vx-header-h: 6.6rem;
	--vx-header-h-sm: 4.9rem;
}

/* 幅の統一: 親テーマの .col-full / .wrapper を 1 値に揃える */
#masthead .col-full,
#content > .col-full,
#colophon .col-full,
.site-footer .col-full,
.col-full,
.wrapper {
	max-width: var(--vx-wrap) !important;
	padding-left: var(--vx-pad) !important;
	padding-right: var(--vx-pad) !important;
	box-sizing: border-box !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* -------------------------------------------------- ホームはセクションを全幅へ */
/* .col-full(.1140〜1400) の内側で sections を枠っていたため、配色バンドが
   画面端まで伸びず「両側の余白が大きく版式が変」に見えた（2026-10-02 運営指摘）。
   ホーム（front-page.php の main.vx-home）だけ外側の限制を外し、
   中央寄せと余白は section 内の .wrapper に一手間任せにする。
   → バンドは viewport 幅、本文は --vx-wrap 幅でヘッダー／フッターと揃う。 */
body.home #content > .col-full {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* .site-main 以外（WooCommerce のお知らせ箱など）が画面端に張り付かない保険 */
body.home #content > .col-full > :not(.vx-home) { padding-inline: var(--vx-pad); }

/* -------------------------------------------------- sticky header */
/* スクロールしても常に最上部に残す（デスクトップ/モバイル共通）。
   注意: Storefront が body{overflow-x:hidden} を出す（fixed ヘッダー用）。
   hidden はベンダによって sticky を止めることがあるので、
   横スクロール抑制を html の clip（スクロールコンテナを作らない）へ移し替え、
   body は visible に戻して sticky を確実に通す。 */
html { overflow-x: clip; }
body { overflow-x: visible; }
/* sticky は「最近のスクロール子孫」が親にあると効かなくなる。祖先に
   overflow/contain を入れない（プラグインが足してもここで戻す）。 */
#page,
.site,
.site-content,
.site-main { overflow: visible !important; contain: none !important; }
#masthead {
	position: sticky;
	position: -webkit-sticky;
	top: 0;
	z-index: 999;
	/* ドロップダウン（サブメニュー／ミニカゴ）をヘッダー直下に置くための基準値。
	   .is-stuck（詰め状態）では header 高さも縮むので跟随させる。 */
	--vx-panel-top: var(--vx-header-h);
	background: rgba(250, 246, 240, .93);
	-webkit-backdrop-filter: saturate(1.1) blur(8px);
	backdrop-filter: saturate(1.1) blur(8px);
	border-bottom: 1px solid rgba(227, 214, 196, .7);
	transition: box-shadow .2s ease, border-color .2s ease;
}
/* 管理バー分だけ下げる（storefront_header_styles の inline style は空なので効かない）。 */
body.admin-bar #masthead { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar #masthead { top: 46px; }
}
/* JS がスクロール量に応じて .is-stuck を付ける（header.js）。 */
#masthead.is-stuck {
	box-shadow: 0 .3rem 1.1rem rgba(59, 47, 36, .10);
	border-bottom-color: #e3d6c4;
	/* ヘッダーが縮んだ分、パネルの起点も縮める（固定値だと中身に隙間が浮く）。
	   ≤768px 段では #masthead 側で var を再定義するので、こちらも自動的に追随する。 */
	--vx-panel-top: var(--vx-header-h-sm);
}
#masthead.is-stuck .vx-header { min-height: var(--vx-header-h-sm); }
#masthead.is-stuck .vx-slogan { opacity: 0; visibility: hidden; height: 0; margin: 0; }
#masthead.is-stuck .site-title { font-size: 1.32rem !important; }
#masthead.is-stuck .custom-logo { max-height: 34px; }
/* 追従時はナビも詰める（高さを減らすだけ。横並びは崩さない） */
#masthead.is-stuck .main-navigation ul.primary-navigation > li > a {
	padding: .34rem .78rem !important;
	font-size: .88rem;
}
#masthead.is-stuck .vx-util { height: 2.1rem; }
/* 追従ナビにアンカー見出しが隠れないようにする（#vx-about 等のジャンプ）。 */
html { scroll-padding-top: calc(var(--vx-header-h) + 1rem); }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
	.vx-header,
	.vx-slogan,
	.site-title,
	.custom-logo { transition: min-height .18s ease, opacity .18s ease, font-size .18s ease, max-height .18s ease, margin .18s ease; }
}

/* -------------------------------------------------- header: 常時 2 段（デスクトップ＝モバイル同一形） */
/* 2026-10-02 運営確定形:
     上段 = 左にブランド＋スローガン / 右に 検索・お気に入り・アカウント・カゴ
     下段 = ホームページ｜カテゴリー▾｜Vexolite について を横 1 行
   1.4.6 まで 1161px 以上だけ「ブランド／ナビ／ユーティリティ」の 1 段組みで、
   狭い幅のみ 2 段だったため、画面ごとに形が変わって見えた（運営「web と mobile
   端の協調統一」）。下段を専有行に固定すればナビは折り返しの必要がなく、
   ハンバーガーも不要になる（ボタンを残すと「押すと導線が消える」＝指示と逆）。
   中央列を minmax(0,1fr) にすると ナビ（nowrap）が列幅を超えて UTILS と
   重なるため、ナビは行を占有させ、左列だけ伸縮（min-width:0）にする。 */
.vx-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"brand utils"
		"nav   nav";
	align-items: center;
	column-gap: 1rem;
	row-gap: .2rem;
	min-height: var(--vx-header-h);
	padding-block: .45rem;
}
.site-branding {
	grid-area: brand;
	margin: 0 !important;
	float: none !important;
	min-width: 0;
	/* P0（2026-10-29 実測）: 親 Storefront は ≤768px で
	   `.site-branding { width: calc(100% - 120px) }`（フロート時代の
	   「右に 120px 空ける」計算）を当てる。うちは 2 段 grid の brand 列なので
	   その幅だと 390px 端末で 39.6px・360px で 9.6px まで潰れ、ロゴが 1 文字ずつ
	   縦積みになってヘッダーが 207px / 363px に伸びていた。
	   → 列幅は grid（minmax(0,1fr)）に決めさせる。!important は、後読みの
	   プラグイン CSS が同じ形の width を再注入しても崩れないための保険。 */
	width: auto !important;
	position: relative; /* ← .vx-brand-search をこのセルに重ねるための基準 */
}
.vx-utils { grid-area: utils; }
#masthead #site-navigation { grid-area: nav; }
.site-title { margin: 0 !important; font-size: 1.55rem !important; line-height: 1.15 !important; }
.vx-slogan {
	margin: .1rem 0 0 !important;
	font-size: .74rem !important;
	letter-spacing: .09em;
	line-height: 1.4;
}
.custom-logo { max-height: 46px; width: auto; }

.vx-menu-toggle {
	display: none;
	margin-left: auto;
	background: transparent;
	border: 1px solid #e3d6c4;
	border-radius: 999px;
	color: var(--vx-ink);
	font-family: var(--vx-font-display);
	font-weight: 700;
	font-size: .82rem;
	padding: .42rem 1rem;
	cursor: pointer;
}
.vx-menu-toggle:hover { border-color: var(--vx-primary); color: var(--vx-primary); }

/* -------------------------------------------------- main nav + dropdown */
#masthead #site-navigation {
	flex: 1 1 auto;
	display: block !important;
	width: auto !important;
	float: none !important;
}
.main-navigation ul.primary-navigation {
	display: flex;
	/* 折り返し禁止: ここで折れると「ホームページ／カテゴリー／Vexolite について」が
	   縦積みに見え、運営指摘（横排展示）そのままの原因になる。狭い幅は
	   ラベルを畳んで吸収する（下の 769〜1024px 段）。 */
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	gap: .15rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.main-navigation ul.primary-navigation > li { position: relative; flex: 0 0 auto; }
.main-navigation ul.primary-navigation > li > a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .55rem .95rem !important;
	border-radius: 999px;
	font-family: var(--vx-font-display);
	font-size: .93rem;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--vx-ink);
	line-height: 1.35;
	white-space: nowrap;
	transition: background .15s ease, color .15s ease, padding .15s ease, font-size .15s ease;
}
.main-navigation ul.primary-navigation > li > a::after { content: none; }
.main-navigation ul.primary-navigation > li > a:hover,
.main-navigation ul.primary-navigation > li > a:focus-visible {
	background: rgba(192, 91, 33, .09);
	color: var(--vx-primary-deep);
}
.main-navigation ul.primary-navigation > li.current-menu-item > a,
.main-navigation ul.primary-navigation > li.current-menu-ancestor > a {
	background: var(--vx-mint-pale);
	color: var(--vx-primary-deep);
}
/* P0（2026-10-29 実測）: 矢印 ▾ の居場所を空ける padding-right は、下の
   `.main-navigation ul.primary-navigation > li > a`（padding 一括指定, (0,2,3)）と
   詳細度が同じ「以下」だと負けて効かない。実測では 390px で 6.4px、1440px で
   15.2px しか空かず、グリフが文字に 7.5px / 3.5px 重なっていた。
   `ul.primary-navigation` を挟んで (0,3,3) に上げ、各幅の padding 上書きに勝たせる。
   追従時は #masthead.is-stuck 側の padding が (1,2,3) なので、同詳細度の
   追従用ルールも別に用意する（各ブレークポイントの値で上書き）。 */
.main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.7rem !important; }
#masthead.is-stuck .main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.7rem !important; }
.vx-sub-toggle {
	position: absolute;
	right: .2rem;
	top: 50%;
	transform: translateY(-50%);
	/* 2026-10-29 実測: 旧 padding .35rem では 21.1×22.4px で WCAG 2.2 AA の
	   ターゲットサイズ 24×24 を割っていた。絶対配置なので 24px に広げても
	   ナビの行高・折り返しは変わらない（右端は据え置き、グリフは中央寄せ）。 */
	width: 24px;
	height: 24px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: var(--vx-ink-soft);
	font-size: .7rem;
	line-height: 1;
	cursor: pointer;
}
.main-navigation .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	min-width: 15.5rem;
	margin: 0;
	padding: .45rem 0;
	list-style: none;
	background: var(--vx-card);
	border: 1px solid #efe2d0;
	border-radius: 0 0 var(--vx-radius-sm) var(--vx-radius-sm);
	box-shadow: var(--vx-shadow-hover);
	opacity: 0;
	visibility: hidden;
	/* ミニカゴと同じ罠: visibility:hidden でも箱は残るので、閉じている状態で
	   ヘッダー直下の内容のクリックを奪う。開いたときだけ受けさせる。 */
	pointer-events: none;
	transform: translateY(.35rem);
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.main-navigation li:hover > .sub-menu,
.main-navigation li:focus-within > .sub-menu,
.main-navigation li.vx-sub-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}
.main-navigation .sub-menu a {
	display: block;
	padding: .6rem 1.1rem !important;
	font-size: .88rem;
	color: var(--vx-ink);
	border-left: 3px solid transparent;
}
.main-navigation .sub-menu a:hover {
	background: var(--vx-accent);
	border-left-color: var(--vx-primary);
	color: var(--vx-primary-deep);
}

/* -------------------------------------------------- utility icons */
/* 検索・お気に入り・アカウント・カゴを同一形状のピル（アイコン+横書きラベル）に統一する。 */
.vx-utils { display: flex; align-items: center; gap: .1rem; flex: 0 0 auto; }
.vx-util,
#masthead .vx-cart > li > a.cart-contents {
	position: relative;
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: .35rem;
	height: 2.35rem;
	padding: 0 .8rem !important;
	border-radius: 999px;
	color: var(--vx-ink) !important;
	font-family: var(--vx-font-display);
	font-size: .76rem !important;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1 !important;
	white-space: nowrap;
	text-decoration: none !important;
	background: transparent !important;
	border: 1px solid transparent !important;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease, height .18s ease;
}
#masthead.is-stuck .vx-util,
#masthead.is-stuck .vx-cart > li > a.cart-contents { height: 2.1rem; }
.vx-util:hover,
.vx-util:focus-visible,
#masthead .vx-cart > li > a.cart-contents:hover,
#masthead .vx-cart > li > a.cart-contents:focus-visible {
	color: var(--vx-primary) !important;
	background: var(--vx-accent) !important;
	border-color: #efdfc9 !important;
}
.vx-util .vx-ico,
#masthead .vx-cart .vx-ico { display: block; width: 19px; height: 19px; flex: 0 0 auto; }
.vx-util-count {
	position: absolute;
	top: -.25rem;
	right: -.1rem;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 .25rem;
	border-radius: 999px;
	background: var(--vx-primary);
	color: #fff;
	font-size: .64rem;
	font-weight: 700;
	line-height: 1.15rem;
	text-align: center;
	box-sizing: border-box;
}
/* P1-1（2026-10-29 実測）: カートが空のとき PHP は is-zero の空バッジを出す。
   ここを `.vx-util-count.is-zero { display:none }`（(0,2,0)）で隠していたが、
   WooCommerce の `.site-header-cart .cart-contents span { display:inline }`
   （`@media (min-width:768px)` 内, (0,2,1)）に負け、デスクトップだけ
   18×18 のオレンジ点が残っていた。#site-header-cart を足して (1,2,0) に上げる。 */
#site-header-cart .vx-util-count.is-zero { display: none; }
.cart-contents .woocommerce-Price-amount { display: none; }

/* カート: ul/li 構造を flex 行に揃える。2 つ目の li（ミニカゴ）はレイアウトに
   参加させず、絶対配置のドロップダウン置き場としてだけ使う（以前は block の
   li が縦に積もってアイコン列の高さがずれていた）。 */
#site-header-cart {
	display: flex;
	align-items: center;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	position: relative;
	background: transparent !important;
}
#site-header-cart > li { display: flex !important; align-items: center; float: none !important; margin: 0 !important; padding: 0 !important; }
#site-header-cart > li:nth-child(2) {
	position: absolute;
	right: 0;
	top: calc(100% + .45rem);
	width: 21rem;
	max-width: min(21rem, calc(100vw - 1.75rem));
	z-index: 1001;
	display: block !important;
	/* visibility:hidden でもレイアウトは残るので、この li が画面中央の
	   見えない板になって下の内容のタップを奪う。li 自体は常に素通しにし、
	   カードが開いたときだけ pointer-events を戻す。 */
	pointer-events: none;
}
/* カゴのアイコンを 1 本に揃える。
   2026-10-02 運営「购物车（カゴ）に logo が 2 つ出る」の実原因（推測ではなく CSS 実測）:
   Storefront が `.site-header-cart .cart-contents::after` に Font Awesome の
   カート（content:"\f07a"; font-family:"Font Awesome 5 Free"; float:right）を
   描画していた。こちらは ::before だけ消していて ::after が残っていたため、
   左に自前 SVG・右に FA カート、という二重表示になっていた。
   親より指定が強い（ID 込み）ので !important 付きで両方止める。 */
#site-header-cart a.cart-contents::before,
#site-header-cart a.cart-contents::after,
#site-header-cart .vx-util-count::before,
#site-header-cart .vx-util-count::after {
	content: none !important;
	display: none !important;
}
#site-header-cart a.cart-contents .count { display: none !important; }

/* -------------------------------------------------- ミニカゴのパネル */
/* 2026-10-02 運営「お買い物カゴを表示 した後の表示効果と美観。浮動？下段中央？」」。
   採用: カゴピルの真下に“浮く”カード（広幅は右端揃え＝ピルに沿う、狭幅は行の下に全幅中央）。
   理由: ヘッダー右端が起点なので、広幅で中央寄せすると画面外にはみ出す。
   10 点入っても破綻しないよう max-height + 内側スクロール、
   閉じたらフォーカス順から外れるよう visibility:hidden（display:none は不可視だが
   transition が効かない）。タッチ端末は header.js が .vx-cart-open を付ける。 */
#site-header-cart .widget_shopping_cart {
	width: 100%;
	margin: 0;
	padding: 1rem 1.05rem 1.15rem;
	background: #fff;
	border: 1px solid #ead9c4;
	border-radius: var(--vx-radius);
	box-shadow: 0 .9rem 2.2rem rgba(59, 47, 36, .18);
	box-sizing: border-box;
	max-height: min(64vh, 30rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	opacity: 0;
	visibility: hidden;
	transform: translateY(.35rem);
	pointer-events: none;
	transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
#site-header-cart:hover .widget_shopping_cart,
#site-header-cart:focus-within .widget_shopping_cart,
#masthead.vx-cart-open #site-header-cart .widget_shopping_cart {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}
/* 見出し（プラグインの title= は空なので出ないが、出た場合に備えて整える） */
#site-header-cart .widget_shopping_cart > .widgettitle,
#site-header-cart .widget_shopping_cart > h2,
#site-header-cart .widget_shopping_cart > h3 {
	margin: 0 0 .6rem;
	font-family: var(--vx-font-display);
	font-size: .86rem;
	letter-spacing: .06em;
	color: var(--vx-primary-deep);
}
#site-header-cart .product_list_widget {
	list-style: none;
	margin: 0;
	padding: 0;
}
/* 実 markup（fragments 側で確認）: li の子は
     <a class="remove remove_from_cart_button">・<a>（サムネ＋商品名）</a>・<span class="quantity">
   ＝画像と商品名が 1 つの <a> に入っている。だから 2 列 grid にすると
   「1 列目＝削除×、2 列目＝画像+名前」にずれる（1.4.7 で修正）。
   WooCommerce 本体と同じ「画像 float + 本文まわり込み」に戻し、× だけ絶対配置で右上に置く。 */
#site-header-cart .product_list_widget li {
	position: relative;
	padding: .65rem 1.6rem .65rem 0;
	border-bottom: 1px solid #f3e9dc;
	font-size: .82rem;
	line-height: 1.5;
}
#site-header-cart .product_list_widget li::after { content: ""; display: table; clear: both; }
#site-header-cart .product_list_widget li img {
	float: left;
	width: 2.6rem;
	height: 2.6rem;
	object-fit: cover;
	border-radius: .5rem;
	margin: 0 .7rem 0 0;
	background: var(--vx-cream);
}
#site-header-cart .product_list_widget li a { color: var(--vx-ink); text-decoration: none; }
#site-header-cart .product_list_widget li a:hover { color: var(--vx-primary); }
#site-header-cart .product_list_widget .quantity {
	display: block;
	overflow: hidden;            /* float の右側に積まれる（画像の下に潜り込まない） */
	color: var(--vx-ink-soft);
	font-size: .76rem;
	margin-top: .35rem;
}
#site-header-cart .product_list_widget li a.remove,
#site-header-cart .product_list_widget li .remove_item {
	position: absolute;
	top: .45rem;
	right: .05rem;
	float: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.6rem;
	height: 1.6rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--vx-ink-soft) !important;
	font-size: 1rem;
	line-height: 1;
	text-decoration: none;
}
#site-header-cart .product_list_widget li a.remove:hover,
#site-header-cart .product_list_widget li .remove_item:hover { color: var(--vx-primary-deep) !important; background: var(--vx-mint-pale); }
#site-header-cart .woocommerce-mini-cart__total {
	margin: .75rem 0 0;
	padding: .6rem 0 0;
	border-top: 1px solid #ead9c4;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .6rem;
	font-size: .86rem;
	font-weight: 700;
	color: var(--vx-ink);
}
#site-header-cart .woocommerce-mini-cart__total .woocommerce-Price-amount { font-size: 1.02rem; color: var(--vx-primary-deep); }
#site-header-cart .woocommerce-mini-cart__empty-message {
	margin: .1rem 0 .2rem;
	font-size: .84rem;
	color: var(--vx-ink-soft);
	line-height: 1.7;
}
/* 送料無料ラインまでの案内（inc/shipping.php の
   vexolite_mini_cart_shipping_note() が hooks の
   woocommerce_widget_shopping_cart_before_buttons から出す。数字は送料計算と同一の option） */
#site-header-cart .vx-mini-cart-note {
	margin: .7rem 0 0;
	padding: .5rem .65rem;
	background: var(--vx-cream);
	border: 1px dashed #e0cbb0;
	border-radius: var(--vx-radius-sm);
	font-size: .78rem;
	line-height: 1.6;
	font-weight: 600;
	color: var(--vx-primary-deep);
}
/* 2 ボタン（カゴを見る／ご購入手続きへ）を同列で揃える */
#site-header-cart .widget_shopping_cart .buttons {
	display: flex;
	gap: .5rem;
	margin: .85rem 0 0;
}
#site-header-cart .widget_shopping_cart .buttons a {
	flex: 1 1 0;
	min-width: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: .55rem .6rem !important;
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.35;
	text-align: center;
	text-decoration: none !important;
	margin: 0 !important;
}
#site-header-cart .widget_shopping_cart .buttons a.button { background: var(--vx-mint-pale) !important; color: var(--vx-primary-deep) !important; border: 1px solid var(--vx-mint) !important; }
#site-header-cart .widget_shopping_cart .buttons a.checkout { background: var(--vx-primary) !important; color: #fff !important; border: 1px solid var(--vx-primary) !important; }
#site-header-cart .widget_shopping_cart .buttons a.button:hover { background: #d7e6de !important; }
#site-header-cart .widget_shopping_cart .buttons a.checkout:hover { background: var(--vx-primary-deep) !important; }
/* Woo は markup 上「ご購入手続きへ」を先に出す。 reads 順番（中を見る→進む）に揃える */
#site-header-cart .widget_shopping_cart .buttons a.checkout { order: 2; }
#site-header-cart .widget_shopping_cart .buttons a.wc-forward:not(.checkout) { order: 1; }
/* 追加直後のバッジをひと呼吸だけ目立たせる（何が起きたか分かるフィードバック） */
@keyframes vx-pop { 0% { transform: scale(1); } 40% { transform: scale(1.28); } 100% { transform: scale(1); } }
#masthead .vx-util-count.vx-pop { animation: vx-pop .42s ease; }

/* -------------------------------------------------- search: ブランド欄がそのまま入力欄になる */
/* 2026-10-02 運営「検索を押したら logo 部分を拓宽して入力口にしたい。下にもう
   一行の出力口は要らない。モバイルも協調させる」。
   => 以前の下段パネル（.vx-search-panel）は廃止。同じグリッドセル
      （.site-branding = brand 列）に absolute で重ねるので、
      開いてもヘッダーの高さは 1 ピクセルも動かない（行が伸びると
      下段ナビが跳ねて「2 段固定」の指示が崩れる）。
      幅は brand 列 いっぱい＝ロゴ欄のそのままの広がりになる。 */
.vx-brand-search {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	/* 閉じる × は ≤600px でだけ出す（それ以上は右端の検索トグルがそのまま閉じる）。
	   display:flex は × を入力欄の横に並べるため。 */
	display: flex;
	align-items: center;
	gap: .35rem;
}
.vx-brand-search[hidden] { display: none; }
.vx-branding-face { transition: opacity .16s ease; }
#masthead.vx-search-open .vx-branding-face { opacity: 0; pointer-events: none; visibility: hidden; }
.vx-brand-search form.woocommerce-product-search {
	display: flex;
	align-items: center;
	gap: .4rem;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}
.vx-brand-search .vx-search-ico {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	margin-left: .7rem;
	color: var(--vx-ink-soft);
}
.vx-brand-search .vx-search-ico .vx-ico { width: 18px; height: 18px; }
.vx-brand-search input.search-field {
	flex: 1 1 auto;
	min-width: 0;
	height: 2.75rem;
	padding: 0 .6rem;
	border: 1.5px solid var(--vx-mint);
	border-radius: 999px;
	background: #fff;
	color: var(--vx-ink);
	font-family: inherit;
	font-size: .95rem;
	line-height: 1.4;
}
.vx-brand-search input.search-field:focus {
	border-color: var(--vx-primary);
	box-shadow: 0 0 0 3px rgba(157, 69, 21, .18);
}
.vx-brand-search input.search-field:focus-visible {
	outline: 3px solid var(--vx-ink);
	outline-offset: 1px;
}
.vx-brand-search .vx-search-go {
	flex: 0 0 auto;
	height: 2.75rem;
	margin-right: .1rem;
	padding: 0 1.15rem;
	border: 0;
	border-radius: 999px;
	background: var(--vx-primary);
	color: #fff;
	font-family: var(--vx-font-display);
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .04em;
	cursor: pointer;
}
.vx-brand-search .vx-search-go:hover { background: var(--vx-primary-deep); }
.vx-brand-search .vx-search-close {
	display: none; /* ≤600px で表示（下の media query） */
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1.5px solid var(--vx-mint);
	border-radius: 999px;
	background: #fff;
	color: var(--vx-ink);
	cursor: pointer;
}
.vx-brand-search .vx-search-close:hover { border-color: var(--vx-primary); color: var(--vx-primary); }
.vx-brand-search .vx-search-close:focus-visible { outline: 3px solid var(--vx-ink); outline-offset: 1px; }
.vx-brand-search .vx-search-close .vx-ico { width: 18px; height: 18px; }
/* 狭幅でラベルを残すと入力欄の列が潰れる → 開いている間だけアイコンのみに畳む。
   名前は screen-reader 側で保持しているので、視覚だけ畳む（display:none は不可）。 */
@media (max-width: 900px) {
	#masthead.vx-search-open .vx-util .vx-util-label {
		position: absolute !important;
		width: 1px; height: 1px;
		padding: 0; margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
	#masthead.vx-search-open .vx-util,
	#masthead.vx-search-open #site-header-cart > li > a.cart-contents { padding: 0 .45rem !important; }
}
@media (max-width: 560px) {
	.vx-brand-search .vx-search-go { padding: 0 .7rem; font-size: .78rem; }
	.vx-brand-search .vx-search-ico { display: none; }
	.vx-brand-search input.search-field { border-radius: .9rem; }
}

/* -------------------------------------------------- footer（ブランド＋リンク群を 1 組に） */
/* ★ 2026-10-02 運営 2 度目の指摘「footer の网站导航はやはり字が見えない」の実因（probe70 実測）。
   1 回目の対策は色の「値」を #a99c8b → #ded3c4 に上げただけで、当たっていなかった。
   読み込み順（live HTML の <link> 順そのもの）:
     2 番 = storefront/style.css   …  .site-footer a:not(.button):not(.components-button){color:#333333}  特異度 0-3-1
     9 番 = vexolite chrome.css    …  .vx-footer-col a{color:#ded3c4}                                    特異度 0-1-1
   → 特異度で Storefront の勝ち。#3b2f24 の背景に #333 の文字＝コントラスト比 **1.03:1**（ほぼ同色）。
     h2 の列見出しも `.site-footer h2{color:#333}`（0-1-1）が `.vx-footer-title`（0-1-0）に勝つ。
   対策: footer 内の <a> と見出しは **`#colophon`（live markup の <footer id="colophon">）を頭につけて**
   1-x-x で統一する。Storefront が同じ土俵に来ても順序で負けない。以後 footer に <a> を足すときも
   この規則の中に入れば色は自動（値を個別に書かない）。
   実測コントラスト（#3b2f24 上で）: #ded3c4 = 8.79:1 / #f0e7db = 10.6:1 / #d6cab9 = 8.02:1 /
   #c3b7a6 = 6.58:1 / hover --vx-sun = 6.28:1。すべて WCAG AA（4.5:1）以上。 */
.site-footer {
	background: #3b2f24;
	color: #e9dfd2;
	margin-top: 4rem;
	padding-block: 0 1.5rem;
	text-align: left;
}
.site-footer .col-full { padding-top: 2.6rem; }

/* ← ここが実際の勝者（1-3-1）。Storefront の 0-3-1 を特異度でも順序でも上回る。 */
#colophon a:not(.button):not(.components-button) {
	color: #ded3c4;
	text-decoration: none;
}
#colophon a:not(.button):not(.components-button):hover,
#colophon a:not(.button):not(.components-button):focus-visible {
	color: var(--vx-sun);
	text-decoration: underline;
}
/* 列見出し（.site-footer h2 の #333 を 1-0-1 で抑える） */
#colophon h1, #colophon h2, #colophon h3,
#colophon h4, #colophon h5, #colophon h6 { color: #fff; }

.vx-footer {
	display: grid;
	grid-template-columns: minmax(0, 21rem) minmax(0, 1fr);
	gap: 1.6rem 3rem;
	align-items: start;
}
.vx-footer-logo { margin: 0; font-family: var(--vx-font-display); font-weight: 900; font-size: 1.6rem; color: #fff; letter-spacing: .06em; }
/* 旧: 語尾の ● を着色する規則。2026-10-02 運営指示で wordmark から ● を外したので規則も消す
   （残すと将来 <span> を入れたときに勝手に金色になる）。 */
.vx-footer-slogan { margin: .3rem 0 .85rem; color: var(--vx-sun); font-size: .8rem; letter-spacing: .14em; }
.vx-footer-brand { max-width: none; margin: 0; }
.vx-footer-text { margin: 0 0 .95rem; font-size: .85rem; line-height: 1.95; color: #d6cab9; }
.vx-footer-contact { margin: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; font-size: .84rem; }
.vx-footer-contact a { display: inline-flex; align-items: center; gap: .4rem; padding-block: .1rem; }
/* 連絡先（mailto の 1 本。Amazon ストアは下の社媒行のロゴに移した 2026-10-04）だけ
   一段明るく（10.6:1）。基底の #ded3c4 でも 8.79:1 と読めるが、ここは「問い合わせの入口」
   なので見出し列より立てる。 */
#colophon .vx-footer-contact a:not(.button):not(.components-button) { color: #f0e7db; }
.vx-footer-contact .vx-ico { width: 17px; height: 17px; }

/* ブロック右側＝站内導線（2026-10-02 運営「品牌介绍の右に站内超链」＋参考画像の版式）。
   列は header のナビと同じ分類から作る（inc/header-footer.php: vexolite_link_groups()）＝
   カテゴリー / ブログ / サポート / 会社情報 の 4 列。auto-fit なので項目が減れば詰まる
   （2026-10-04: カテゴリーから「すべての商品」、会社情報から「Vexolite について」を外した）。 */
.vx-footer-nav { min-width: 0; }

/* 社媒（品牌介绍文の下）。URL が決まる前は is-pending で「押せない」ことを見た目でも出す。 */
.vx-footer-social {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 1.05rem;
	padding: 0;
}
.vx-footer-social li { margin: 0; }
#colophon .vx-footer-social a:not(.button):not(.components-button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid rgba(233, 223, 210, .35);
	border-radius: 50%;
	background: rgba(255, 255, 255, .05);
	color: #f2e9dd;               /* アイコンは currentColor描画なのでここで決まる */
	text-decoration: none;
}
.vx-footer-social .vx-social > span:first-child {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid rgba(233, 223, 210, .35);
	border-radius: 50%;
	background: rgba(255, 255, 255, .05);
	color: #f2e9dd;
}
.vx-footer-social .vx-ico { width: 19px; height: 19px; }
/* 名前の文字を添える項（Amazon）。線画のスマイルだけでは判別が難しいので
   円ではなく pills にして語を出す＝商標のロゴ画像は使わない（手元に無い）。
   .is-word は markup 側で word キーがある項にだけ付く（inc/header-footer.php）。
   ※ #colophon 前提が必須:上の .vx-footer-social a（1-3-1）に width/height を
     負けたまま上書きさせないため（2026-10-02 の footer 見切れと同じ土俵）。 */
#colophon .vx-footer-social .is-word a:not(.button):not(.components-button) {
	width: auto;
	padding: 0 .8rem;
	gap: .35rem;
	border-radius: 999px;
	font-family: var(--vx-font-display);
	font-size: .8rem;
	letter-spacing: 0;
}
.vx-footer-social .vx-social-word { line-height: 1; }
#colophon .vx-footer-social a:not(.button):not(.components-button):hover,
#colophon .vx-footer-social a:not(.button):not(.components-button):focus-visible {
	background: var(--vx-sun);
	border-color: var(--vx-sun);
	color: #3b2f24;
	text-decoration: none;
}
/* 準備中: 実在しないリンクだから、触れない色とカーソルにする（href="#" は作らない） */
.vx-social.is-pending > span:first-child { opacity: .5; cursor: default; }

.vx-footer-cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8.4rem, 1fr));
	gap: 1.4rem 1.6rem;
	margin: 0;
	padding: 0;
}
.vx-footer-col { text-align: left; min-width: 0; }
.vx-footer-title { margin: 0 0 .7rem; font-size: .8rem; font-weight: 700; letter-spacing: .12em; }
.vx-footer-col ul { list-style: none; margin: 0; padding: 0; }
.vx-footer-col li { margin: 0 0 .5rem; }
/* 2026-10-29 実測: 列リンクの実高 20px、mailto 23.5px。inline のままでは
   line-height が効かず文字の実寸しか取らないので、inline-block 化して
   padding-block を足し、24px 以上にする（列間隔 36px → 約 41px）。 */
.vx-footer-col a { font-size: .87rem; line-height: 1.6; display: inline-block; padding-block: .1rem; }

.vx-footer-notes {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	/* 2026-10-02 運営「3,000 円以上〜© 2026 Vexolite. の部分を居中」:
	   信頼欄と著作権行を中央寄せに変え、各行も内側で中央揃えにする。 */
	justify-content: center;
	gap: .9rem 2.2rem;
	margin: 1.6rem 0 0;
	padding: 1.2rem 0 0;
	border-top: 1px solid rgba(233, 223, 210, .18);
	text-align: center;
}
.vx-footer-notes li {
	display: flex;
	align-items: center;
	gap: .65rem;
	font-size: .8rem;
	line-height: 1.7;
	color: #d6cab9;
	text-align: left;
}
.vx-footer-notes li span { text-align: left; }
.vx-footer-notes .vx-ico { width: 24px; height: 24px; color: var(--vx-sun); flex: 0 0 auto; }

.vx-footer-bottom {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .55rem 1.5rem;
	margin-top: 1.3rem;
	padding-top: 1.1rem;
	border-top: 1px solid rgba(233, 223, 210, .18);
	font-size: .82rem;
	color: #c3b7a6;
	text-align: center;
}
.vx-copyright { margin: 0; }
/* 最下段は著作権行だけ。2026-10-02 に会員操作（アカウント／お気に入り）をここに寄せたが、
   2026-10-04 運営「footer に アカウント・お気に入り が増えている。削除」で markup ごと廃止
   （.vx-footer-util の規則も残さない＝死んだセレクタに色を置いて次の改修で迷うのを防ぐ）。
   法務リンクは「会社情報」列に一本化済み（同じリンクを 2 所に置かない）。 */
.site-footer .storefront-handheld-footer-bar { display: none; }

/* -------------------------------------------------- 商品ギャラリーのサムネイル */
/* 2026-10-29 実測: Storefront はサムネイルを columns の % 幅で出すため、390px で
   27.25×27.25、768px で 29.6、1024px で 40.1 とタップターゲットに足りない
   （1440px は 57.7 で問題なし）。44px 以上を保証しつつ、幅によっては 1 行に
   収まらないので、スマホは横スクロールの短冊、タブレットは折り返しにする。 */
@media (max-width: 600px) {
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
		display: flex;
		flex-wrap: nowrap;
		gap: .5rem;
		margin: .6rem 0 0;
		padding-bottom: .2rem;
		overflow-x: auto;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::before,
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::after { content: none; }
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
		flex: 0 0 44px;
		width: 44px !important;
		height: 44px;
		margin: 0 !important;
		float: none !important;
		clear: none !important;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-radius: .4rem;
	}
}
@media (min-width: 601px) and (max-width: 1200px) {
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
		display: flex;
		flex-wrap: wrap;
		gap: .375rem;
		margin: .7rem 0 0;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::before,
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs::after { content: none; }
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
		flex: 0 0 48px;
		width: 48px !important;
		height: 48px;
		margin: 0 !important;
		float: none !important;
		clear: none !important;
	}
	.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-radius: .4rem;
	}
}

/* -------------------------------------------------- パンくず（モバイル） */
/* 2026-10-29 実測: 390px で 3 行 74.5px、最終行は「脳トレ」だけになっていた。
   現在地の長い商品名を 1 行省略にする（全文は DOM に残るので読み上げは不変）。 */
@media (max-width: 860px) {
	.woocommerce-breadcrumb {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

/* -------------------------------------------------- カゴに追加ボタン */
/* 既定（Storefront）は語尾まで大きく全幅に出すので、短縮ラベル（inc/product-page.php
   の gettext フィルタ）に合わせてピル状に小さく揃える。全幅に広げず中央に寄せる。
   適用は「カゴに追加」系だけに限る（カートページのカゴ更新 / クーポン等には触らない）。 */
.woocommerce a.button.add_to_cart_button,
.woocommerce button.single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: .35rem;
	width: auto;
	min-width: 10.5rem;
	min-height: 2.85rem;
	padding: .6rem 1.6rem !important;
	border-radius: 999px;
	font-family: var(--vx-font-display);
	font-size: .9rem !important;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.3 !important;
	text-align: center;
	text-decoration: none !important;
}
.woocommerce button.single_add_to_cart_button { background: var(--vx-primary) !important; color: #fff !important; }
.woocommerce button.single_add_to_cart_button:hover { background: var(--vx-primary-deep) !important; }
.woocommerce .summary .single_add_to_cart_button { margin-right: .6rem; }

/* -------------------------------------------------- 商品ページ: 数量｜カゴに追加｜お気に入り を 1 列に */
/* 2026-10-02 運営「お気に入りに追加とカゴに追加は同一列の方が美しいか、
   それともハート logo にするか」への回答: 同一列 ＋ ハート付き幽霊ピル。
   （縦に離れていると「2 つの別アクション」に見え、片方が見つからない）
   markup 側は inc/product-page.php の vexolite_wishlist_in_cart_row() で
   form.cart の中に移している。.vx-buy-side は contents にして
   中の a.pwlp_product を直接この列のアイテムにする（プラグインの <br> は消す）。 */
.single-product div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: .6rem .7rem;
	margin: 0 0 .2rem;
}
.single-product div.product form.cart .quantity { float: none; margin: 0; width: auto; }
.single-product div.product form.cart .quantity input.qty {
	width: 4.8rem;
	min-height: 2.85rem;
	text-align: center;
	border: 1px solid #e3d6c4;
	border-radius: 999px;
	background: #fff;
	font-size: .95rem;
}
.single-product div.product form.cart .single_add_to_cart_button { flex: 1 1 10rem; margin: 0; }
.single-product div.product form.cart .vx-buy-side { display: contents; }
.single-product div.product form.cart .vx-buy-side br { display: none; }
/* 追加済み（.already_meg + a.see_wish）も同じ列に収める */
.single-product div.product form.cart .vx-buy-side .already_meg,
.single-product div.product form.cart .vx-buy-side .pr_added {
	display: inline-flex;
	align-items: center;
	min-height: 2.85rem;
	margin: 0;
	font-size: .82rem;
	/* 文字色をプラグインのインライン CSS（.already_meg{color:#9d4515!important}）
	   だけに頼らない。あちらは 2026-10-02 実測で cream ピル上 5.6:1 だから読めるが、
	   プラグイン更新で消えたら白ピル白文字になりうる。自前宣言で確定させる。 */
	color: var(--vx-primary-deep) !important;
	line-height: 1.35;
	text-align: center;
}
.single-product div.product form.cart .vx-buy-side a.see_wish {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	margin: 0;
	padding: 0 1.15rem;
	font-size: .84rem;
}
/* -------------------------------------------------- 商品ループ（カード組み） */
/* Storefront 既定は li.product を float + % 幅で積むため、タイトルやバッジの
   行数が少し違うだけで次の行が段違いに引っかかり、「カゴに追加」ボタンの
   位置がカードごとにバラバラになる（2026-10-02 運営指摘「首页加入购物车按钮
   布局有错」）。CSS Grid に置き換えて 1 行の高さを揃え、ボタンは
   flex-column の末尾に固定する。 */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.4rem;
	margin: 0 0 2rem !important;
	padding: 0 !important;
	clear: both;
}
/* ::before/::after の clearfix 箱が Grid では 1 マス食べて列をずらす */
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.woocommerce ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	clear: none !important;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
/* カード内は link → 本文 → ボタンの順。link を伸ばしてボタンを底辺に揃える。 */
.woocommerce ul.products li.product > .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.woocommerce ul.products li.product .price {
	margin-top: auto;
	margin-bottom: 0;            /* Storefront の 1rem を打ち止め、間隔はボタン側で出す */
}

/* 商品カード（ループ）の中はさらに小さく。カード幅に対して全幅にしない。 */
.woocommerce ul.products li.product a.button.add_to_cart_button {
	display: flex !important;      /* inline-flex だと下地 gap で位置がずれる */
	width: auto;
	min-width: 0;
	margin: .7rem .9rem 0 !important;   /* カード枠に張らず内側に寄せる */
	min-height: 2.4rem;
	padding: .45rem .8rem !important;
	font-size: .8rem !important;
	letter-spacing: .02em;
}
/* AJAX 追加後に出る「カゴを見る」も同じ棚に収める */
.woocommerce ul.products li.product a.button.wc-forward,
.woocommerce ul.products li.product a.added_to_cart.wc-forward {
	display: inline-flex;
	align-self: flex-start;
	margin: .5rem .9rem 0 !important;
	min-height: 2rem;
	padding: .3rem .9rem !important;
	font-size: .76rem !important;
	width: auto !important;
}
/* AJAX 追加中スピナーはピルの中に収める */
.woocommerce a.add_to_cart_button.added_to_cart,
.woocommerce a.add_to_cart_button.wc-loading { opacity: .85; }
/* カゴ・お気に入り系リンク（ミニカゴの 2 ボタンも同形に） */
.woocommerce .widget_shopping_cart .buttons a,
.woocommerce.widget_shopping_cart .buttons a {
	border-radius: 999px;
	padding: .5rem 1rem !important;
	font-size: .8rem !important;
	min-height: 2.4rem;
	letter-spacing: .02em;
}

/* -------------------------------------------------- responsive */
/* ヘッダーの行組み（2026-10-02 運営 第 2 指定制御）:
   「上段 = 品牌+slogan（左）/ 検索・お気に入り・アカウント・カゴ（右）
     下段 = ホームページ｜カテゴリー▾｜Vexolite について」
   を **デスクトップもモバイルも同一構造**にする（運営「web と mobile 端の協調統一」）。
   - 1.4.6 まで 1161px〜 は 1 段、768px 以下はハンバーガーだった。
     → 環境ごとに形が変わり、スクロール時も消える／出るが混在した。
   - 開閉ボタンは廃止（header.php から削除）。ナビは常時 1 行横並び + sticky。
   - 幅が足りない幅では**折り返さず**、文字組み（padding / font-size）だけで吸収する。
     3 項目の最小必要幅 ≈ 22rem（=352px）なので 320px 端末でも横 1 行が通る。 */
@media (max-width: 1080px) {
	.vx-utils { gap: 0; }
	.vx-util,
	#masthead .vx-cart > li > a.cart-contents { padding: 0 .55rem !important; }
	.main-navigation ul.primary-navigation { gap: 0; }
	.main-navigation ul.primary-navigation > li > a { padding: .45rem .6rem !important; font-size: .86rem; }
	.site-branding .site-title,
	.site-title { font-size: 1.4rem !important; }
}
@media (max-width: 860px) {
	.vx-header { column-gap: .7rem; row-gap: .15rem; padding-block: .35rem; }
	.vx-util,
	#masthead .vx-cart > li > a.cart-contents { font-size: .72rem !important; padding: 0 .42rem !important; gap: .25rem; }
	.vx-util .vx-ico,
	#masthead .vx-cart .vx-ico { width: 17px; height: 17px; }
	.main-navigation ul.primary-navigation > li > a { padding: .4rem .48rem !important; font-size: .8rem; letter-spacing: .02em; }
	.main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.35rem !important; }
	#masthead.is-stuck .main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.35rem !important; }
	.vx-sub-toggle { right: 0; }
	.site-branding .site-title,
	.site-title { font-size: 1.24rem !important; }
	.vx-slogan { font-size: .64rem !important; letter-spacing: .05em; }
}
@media (max-width: 900px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	/* 行組みはデスクトップと同一（上段 brand+utils / 下段ナビ の 2 段 grid）を維持。
	   ここで flex に切り替えるとナビが縦積みになり、
	   運営指示「横排展示＋スクロール時も常時表示」が崩れる（1.4.6 までの不具合）。
	   高さは var を狭めるだけで反映される（.vx-header / .is-stuck / --vx-panel-top 共通）。 */
	#masthead { --vx-header-h: 5.8rem; --vx-header-h-sm: 4.3rem; }
	.main-navigation ul.primary-navigation { justify-content: center; gap: 0; }
	.main-navigation ul.primary-navigation > li > a { min-height: 2.05rem; }

	/* カテゴリー▾ のサブメニュー: li 基準の absolute のままだと右端項目が画面外に
	   張り出す。#masthead は backdrop-filter で fixed 子孫の containing block に
	   なるので、ヘッダー直下の中央パネルとして出す（非対応環境でも top が
	   残りの rem 基準＝同じ位置に来るように var で受ける）。 */
	.main-navigation .sub-menu {
		position: fixed;
		top: calc(var(--vx-panel-top) + .25rem);
		left: 50%;
		right: auto;
		transform: translate(-50%, .35rem);
		width: min(22rem, calc(100vw - 1.6rem));
		min-width: 0;
		max-height: min(56vh, 24rem);
		overflow-y: auto;
		border-radius: var(--vx-radius);
		padding: .5rem;
	}
	.main-navigation li:hover > .sub-menu,
	.main-navigation li:focus-within > .sub-menu,
	.main-navigation li.vx-sub-open > .sub-menu { transform: translate(-50%, 0); }
	.main-navigation .sub-menu a { padding: .55rem .75rem !important; border-left: 0; border-radius: .6rem; }
	.main-navigation .sub-menu a:hover { background: var(--vx-mint-pale); border-left-color: transparent; }

	/* ミニカゴも同じ考え方で「ヘッダーの下、中央寄せカード」 */
	#site-header-cart > li:nth-child(2) {
		position: fixed;
		top: calc(var(--vx-panel-top) + .25rem);
		left: 50%;
		right: auto;
		width: min(23rem, calc(100vw - 1.6rem));
		max-width: none;
		transform: translateX(-50%);
	}

	/* フッター: ブランド段とリンク列を 1 列に積む（幅が足りないため）。
	   列数は 9.5rem を下限に自前で折り返す（375px で 2 列、600px で 3 列）。 */
	.vx-footer { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.vx-footer-contact { flex-direction: row; flex-wrap: wrap; gap: .3rem 1.4rem; }
	.vx-footer-cols { grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 1.2rem 1rem; }
	.woocommerce ul.products,
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce ul.products.columns-5,
	.woocommerce ul.products.columns-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	/* P0（2026-10-29）: 検索を開いたら上段 1 行を入力欄に譲る。
	   brand 列だけだと 390px 端末で約 160px（入力欄 ~100px）しかなく、
	   プレースホルダも判読できない。開いている間だけ utils を隠すと
	   grid の auto 列が 0 になり、パネルがヘッダー幅いっぱいまで広がる。
	   元のトグルも一緒に隠れるので、パネル内の × で閉じる（Esc / 外側クリックも可）。
	   閉じれば utils はそのまま戻る。 */
	#masthead.vx-search-open .vx-utils { display: none; }
	.vx-brand-search .vx-search-close { display: inline-flex; }

	.site-footer { margin-top: 2.5rem; }
	.vx-footer-notes { gap: .8rem 1.4rem; }
	.woocommerce ul.products li.product a.button.add_to_cart_button { margin: .55rem .6rem 0 !important; font-size: .76rem !important; }
	.woocommerce a.button.add_to_cart_button,
	.woocommerce button.single_add_to_cart_button { min-width: 9rem; font-size: .85rem !important; }
	/* 購入 1 列（数量｜カゴに追加｜♡お気に入り）は折り返し可のまま間隔を詰める */
	.single-product div.product form.cart { gap: .5rem; }
	.single-product div.product form.cart .quantity input.qty { width: 4.2rem; min-height: 2.6rem; }
	.single-product div.product form.cart .single_add_to_cart_button { min-height: 2.6rem; font-size: .85rem !important; }
	.woocommerce a.pwlp_product,
	a.pwlp_product { min-height: 2.6rem; padding: 0 .85rem; font-size: .8rem; }
}
@media (max-width: 430px) {
	/* ラベルを畳むのはここだけ。ナビが下段へ移って上段に余裕ができたので、
	   600px 台では「検索／お気に入り／アカウント／カゴ」の文字を出し続ける
	   （2026-10-02 運営の指定は 4 項目を名前付きで並べること）。
	   display:none にするとアクセスブル名称ごと消えるので clip で視覚のみ畳む。 */
	.vx-util,
	#masthead .vx-cart > li > a.cart-contents { width: 2.3rem; padding: 0 !important; justify-content: center; }
	#masthead.is-stuck .vx-util,
	#masthead.is-stuck .vx-cart > li > a.cart-contents { width: 2.1rem; height: 2.1rem; }
	.vx-util-label,
	#masthead .cart-contents .vx-util-label {
		position: absolute !important;
		width: 1px;
		height: 1px;
		margin: 0 !important;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		white-space: nowrap;
	}
	.vx-util-count { top: -.2rem; right: -.25rem; }
	.site-branding .site-title,
	.site-title { font-size: 1.15rem !important; }
	.vx-slogan { font-size: .58rem !important; letter-spacing: .03em; }
	.main-navigation ul.primary-navigation > li > a { font-size: .74rem; padding: .34rem .4rem !important; }
	.main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.15rem !important; }
	#masthead.is-stuck .main-navigation ul.primary-navigation > li.menu-item-has-children > a { padding-right: 1.15rem !important; }
	.vx-sub-toggle { right: -.1rem; }
	/* ナビはこれで 5 項目（ホームページ／カテゴリー／ブロック／サポート／Vexolite について）。
	   .74rem ＋ padding .4rem の見積で合計 ≈397px、430px 画面では実効 ≈382px なので
	   nowrap のままだと末尾が箱から出る。この幅だけ折り返しを許す（2 行目は中央寄せ）。
	   ※ レンダリング実測はできない環境なので、375px での行数確認は運営の目視（#18）に残す。 */
	.main-navigation ul.primary-navigation { flex-wrap: wrap; row-gap: .15rem; }
	/* スクロール追従（.is-stuck）の共通ルールはナビを .88rem / padding .78rem に
	   広げるが、この幅ではそれで 3 行に折れてヘッダーが逆に伸びる
	   （2026-10-29 実測: 320px で 68px → 103px）。詰め状態でも狭幅用の組版を維持。 */
	#masthead.is-stuck .main-navigation ul.primary-navigation > li > a { padding: .3rem .4rem !important; font-size: .74rem; }
}
@media (max-width: 360px) {
	/* 320–360px 級: 上段の 4 つの utility を 2rem 幅に詰め、社名の列を確保する。
	   （1.5.5 の 2.3rem × 4 のままだと 360px で brand 129.6px、
	     320px では 89.6px まで縮み「Vexolit / e」と割れていた） */
	.vx-util,
	#masthead .vx-cart > li > a.cart-contents,
	#masthead.is-stuck .vx-util,
	#masthead.is-stuck .vx-cart > li > a.cart-contents { width: 2rem; }
}
@media (max-width: 340px) {
	/* 社名 27.2px は約 123px 必要。340px 以下では brand 列がそれ未満になり
	   折り返すため、ここだけ見出しを一段下げる（360px では従来サイズのまま）。
	   注意: 親 Storefront は `.site-title a { font-size: 1.7rem }` を直接当てるため、
	   子テーマ側の `.site-title { font-size }` だけでは社名の実寸は変わらない
	   （2026-10-29 CSSOM 実測）。a まで含めて指定する。 */
	.site-branding .site-title,
	.site-title,
	.site-title a { font-size: 1.25rem !important; }
	#masthead.is-stuck .site-title,
	#masthead.is-stuck .site-title a { font-size: 1.15rem !important; }
}

/* -------------------------------------------------- 自動送信対策（蜜罐） */
/* 人には見せない。ただし display:none にすると無視して埋めるボットがいるため、
   画面外へ逃がす方式にする（inc/antibot.php の vexolite_bot_fields() と対）。 */
.vx-bottrap {
	position: absolute !important;
	top: 0 !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none;
}
.vx-bottrap-field { margin: 0 !important; }
.vx-bottrap input { width: auto !important; height: auto !important; }
