@charset "UTF-8";
/*
 * WooCommerce — 商品詳細・商品一覧・カート・決済
 *
 * JIN:R は WooCommerce を考慮していないため、WooCommerce 標準テンプレートの
 * クラスに対して直接書く。DOM は実サイトで確認済み:
 *   #primary.content-area > #main.site-main > div.product
 *     > .woocommerce-product-gallery.images
 *     > .summary.entry-summary
 *     > （子テーマの縦積みセクション）
 *     > section.related.products
 *
 * 出典: handoff/商品詳細-レイアウト仕様書.md
 */

/* ============================================================
 * 0. ページ枠
 * WooCommerce は JIN:R の #mainContent を通らず全幅で出るので、
 * ここで本文幅に収める。
 * ============================================================ */

.woocommerce #primary.content-area,
.woocommerce-page #primary.content-area {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--w-content) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter) var(--pad-white);
}

/* JIN:R の記事装飾が乗らないようにする */
.woocommerce .site-main,
.woocommerce-page .site-main {
	background: none;
	box-shadow: none;
	border-radius: 0;
}

/* パンくず */
.slb-breadcrumb {
	margin: 24px 0 28px;
	font-size: 12px;
	color: var(--c-muted);
}
.slb-breadcrumb a {
	color: var(--c-muted);
	text-decoration: none;
}
.slb-breadcrumb a:hover { color: var(--c-accent); }
.slb-bc-sep { margin: 0 8px; color: var(--c-line); }

/* WooCommerce の通知 */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--c-accent);
	border-radius: var(--r-panel);
	background: var(--c-cream);
	font-size: 14px;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--c-accent); }

/* ============================================================
 * 1. 商品詳細 — 上段（ギャラリー ＋ サマリー）
 * ============================================================ */

.single-product div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
}
/* 縦積みセクションと関連商品は全幅に */
.single-product div.product > .slb-pd-sec,
.single-product div.product > .related,
.single-product div.product > .woocommerce-tabs {
	grid-column: 1 / -1;
}

/* ギャラリー */
.single-product .woocommerce-product-gallery {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}
.single-product .woocommerce-product-gallery__wrapper {
	margin: 0;
}
.single-product .woocommerce-product-gallery img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--r-card);
	background: var(--c-photo);
}
/* サムネイル */
.single-product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}
.single-product .flex-control-thumbs li { margin: 0; }
.single-product .flex-control-thumbs img {
	border-radius: var(--r-panel);
	cursor: pointer;
	opacity: .55;
	transition: opacity var(--dur-hover) var(--ease);
}
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover { opacity: 1; }

/* サマリー */
.single-product .summary.entry-summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}

/* カテゴリチップ・バッジ */
.slb-pd-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
}
.slb-cat-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: var(--r-pill);
	background: var(--c-cream);
	color: var(--c-muted) !important;
	font-size: 12px;
	font-weight: 500;
	text-decoration: none !important;
	border-bottom: none !important;
}
.slb-cat-chip:hover { background: var(--c-accent-soft); color: var(--c-accent) !important; }

/* 商品名 */
.single-product .product_title {
	margin: 0 0 12px !important;
	padding: 0 !important;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .04em;
	border: none !important;
	background: none !important;
}
.single-product .product_title::before,
.single-product .product_title::after { display: none !important; }

/* 簡単な説明 */
.single-product .woocommerce-product-details__short-description {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 1.95;
	color: var(--c-muted);
}
.single-product .woocommerce-product-details__short-description p { margin: 0; }

/* 価格 */
.single-product .summary .price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0 0 6px !important;
	color: var(--c-text);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.3;
}
.single-product .summary .price .woocommerce-Price-currencySymbol {
	font-size: 22px;
	margin-right: 2px;
}
.single-product .summary .price .woocommerce-price-suffix {
	font-size: 13px;
	font-weight: 400;
	color: var(--c-muted);
}
.single-product .summary .price del { opacity: .5; font-size: 20px; }
.single-product .summary .price ins { text-decoration: none; }

/* 送料メモ */
.slb-pd-shipping {
	margin: 0 0 22px;
	font-size: 12px;
	color: var(--c-muted);
}

/* 属性リスト */
.slb-pd-attrs {
	margin: 0 0 24px;
	border-top: 1px solid var(--c-line);
}
.slb-pd-attrs > div {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 16px;
	align-items: center;
	padding: 14px 2px;
	border-bottom: 1px solid var(--c-line);
}
.slb-pd-attrs dt {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
}
.slb-pd-attrs dd {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 14px;
}

/* 辛さドット */
.slb-spice-dots {
	display: inline-flex;
	gap: 5px;
}
.slb-spice-dots i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--c-line);
}
.slb-spice-dots i.is-on {
	background: var(--c-accent);
	box-shadow: none;
}
.slb-spice-text {
	font-size: 12px;
	color: var(--c-muted);
}

/* カートフォーム */
.single-product form.cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
	margin: 0 0 12px !important;
}
.single-product form.cart .variations { width: 100%; }

/* 数量ステッパー */
.single-product .quantity.slb-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--c-line);
	border-radius: var(--r-pill);
	overflow: hidden;
	background: var(--c-white);
	flex: 0 0 auto;
}
.slb-qty-btn {
	width: 42px;
	height: var(--h-btn-primary);
	border: none;
	background: transparent;
	color: var(--c-text);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	transition: color var(--dur-hover) var(--ease);
}
.slb-qty-btn:hover { color: var(--c-accent); }
.single-product .quantity.slb-qty input.qty {
	width: 46px;
	height: var(--h-btn-primary);
	padding: 0;
	border: none;
	background: transparent;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	-moz-appearance: textfield;
	appearance: textfield;
}
.single-product .quantity.slb-qty input.qty::-webkit-outer-spin-button,
.single-product .quantity.slb-qty input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.single-product .quantity .screen-reader-text { display: none; }

/* カートに入れるボタン */
.single-product .single_add_to_cart_button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--h-btn-primary);
	padding: 0 32px;
	border: none;
	border-radius: var(--r-pill);
	background: var(--c-accent);
	color: var(--c-white);
	font-family: var(--f-ja);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .08em;
	box-shadow: var(--shadow-btn);
	transition: background-color var(--dur-hover) var(--ease), transform var(--dur-hover) var(--ease);
}
.single-product .single_add_to_cart_button { flex: 1; }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.single-product .single_add_to_cart_button:hover {
	background: var(--c-accent-hover);
	color: var(--c-white);
	transform: translateY(-2px);
}
.single-product .single_add_to_cart_button.disabled {
	opacity: .45;
	box-shadow: none;
	transform: none;
}

/* 汎用ボタン（アウトライン） */
.woocommerce a.button:not(.alt),
.woocommerce button.button:not(.alt),
.woocommerce input.button:not(.alt) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--h-btn-secondary);
	padding: 0 28px;
	border-radius: var(--r-pill);
	background: var(--c-white);
	color: var(--c-accent);
	box-shadow: inset 0 0 0 1.5px var(--c-accent);
	font-size: 15px;
	font-weight: 700;
	transition: background-color var(--dur-hover) var(--ease);
}
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):hover {
	background: var(--c-accent-soft);
	color: var(--c-accent);
}

/* 配送メモ */
.slb-pd-delivery {
	margin: 0;
	font-size: 12px;
	color: var(--c-muted);
}

/* ============================================================
 * 2. 商品詳細 — 縦積みセクション
 * ============================================================ */

.slb-pd-sec {
	margin-top: var(--pad-white);
	position: relative;
}

/* 見出しブロック（TOP と同じ） */
.slb-sec-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	margin-bottom: 48px;
	text-align: center;
}
.slb-sec-chip {
	display: inline-block;
	font-family: var(--f-en);
	font-size: var(--fs-chip);
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1;
	padding: var(--pad-chip);
	border-radius: var(--r-pill);
	background: var(--c-accent-soft);
	color: var(--c-accent);
	text-transform: uppercase;
}
.band-cream-inner .slb-sec-chip { background: var(--c-white); }
.slb-sec-title {
	position: relative;
	margin: 0 !important;
	padding: 0 0 calc(16px + var(--swash-h)) !important;
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: .06em;
	border: none !important;
	background: none !important;
}
.slb-sec-title::before { display: none !important; }
.slb-sec-title::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: var(--swash-w);
	height: var(--swash-h);
	background: url(../img/h2-swash.svg) no-repeat center / contain;
	border: none;
}

/* 生成り背景のセクション（画面端まで） */
.band-cream-inner {
	background: var(--c-cream) url(../img/dots.svg) repeat;
	padding: var(--pad-white) var(--gutter);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
}
.band-cream-inner > * {
	max-width: var(--w-content);
	margin-left: auto;
	margin-right: auto;
}

/* 商品説明 */
.slb-pd-desc-body {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 48px;
	align-items: start;
}
.slb-pd-desc-visual img,
.slb-pd-desc-visual .ph {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--r-card);
}
.slb-pd-lead {
	margin: 0 0 28px;
	font-size: 16px;
	line-height: 2.1;
}
.slb-pd-lead p { margin: 0; }
.slb-pd-points {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 24px;
}
.slb-pd-points li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
}
.slb-pd-points h3 {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-size: 17px;
	font-weight: 700;
	border: none !important;
	background: none !important;
}
.slb-pd-points h3::before,
.slb-pd-points h3::after { display: none !important; }
.slb-pd-points p {
	margin: 0;
	font-size: 14px;
	line-height: 2;
	color: var(--c-muted);
}

/* おすすめの食べ方 */
.slb-pd-howto-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.slb-pd-howto-item { text-align: center; }
.slb-pd-howto-item .ph-circle,
.slb-pd-howto-img img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	box-shadow: var(--shadow);
}
.slb-pd-howto-item h3 {
	margin: 20px 0 0 !important;
	padding: 0 !important;
	font-size: 17px;
	font-weight: 700;
	border: none !important;
	background: none !important;
}
.slb-pd-howto-item h3::before,
.slb-pd-howto-item h3::after { display: none !important; }
.slb-pd-howto-item p {
	margin: 6px 0 0;
	font-size: 13px;
	color: var(--c-muted);
}
.slb-pd-howto .center { margin-top: 36px; text-align: center; }

/* お客様の声 */
.slb-pd-voice-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
}
.slb-pd-voice .voice-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}
.slb-pd-voice .voice-body { flex: 1; min-width: 0; }
.slb-pd-voice .voice-bubble {
	position: relative;
	background: var(--c-white);
	border-radius: var(--r-panel);
	padding: 20px 22px;
	font-size: 14px;
	line-height: 2;
	box-shadow: var(--shadow);
}
.slb-pd-voice .voice-bubble::before {
	content: '';
	position: absolute;
	left: -9px;
	top: 20px;
	border: 6px solid transparent;
	border-right: 9px solid var(--c-white);
	border-left: 0;
}
.slb-pd-voice .voice-meta {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--c-muted);
}

/* ============================================================
 * 3. 商品一覧・関連商品（共通カード）
 * ============================================================ */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	width: auto !important;
	margin: 0 !important;
	padding: 14px 14px 22px;
	background: var(--c-cream);
	border-radius: var(--r-card);
	text-align: left;
	transition: transform var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease);
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow-hover);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	text-decoration: none !important;
	border-bottom: none !important;
	color: inherit !important;
}
.woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	margin: 0 0 10px !important;
	border-radius: var(--r-pill) var(--r-pill) 20px 20px;
	background: var(--c-photo);
	box-shadow: none;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-text);
}
.slb-loop-tagline {
	margin: 6px 0 0;
	font-size: 12px;
	line-height: 1.7;
	color: var(--c-muted);
}
.woocommerce ul.products li.product .price {
	margin: 12px 0 0 !important;
	color: var(--c-text);
	font-size: 18px;
	font-weight: 700;
}
.woocommerce ul.products li.product .price .woocommerce-Price-currencySymbol { font-size: 14px; }
.woocommerce ul.products li.product .price .woocommerce-price-suffix {
	font-size: 11px;
	font-weight: 400;
	color: var(--c-muted);
}
.slb-loop-more {
	position: absolute;
	right: 18px;
	bottom: 22px;
	font-size: 13px;
	font-weight: 700;
	color: var(--c-accent);
}
.slb-loop-badge {
	position: absolute;
	top: 22px;
	left: 22px;
	z-index: 1;
}
.woocommerce ul.products li.product .star-rating { display: none; }

/* 関連商品 */
.single-product .related.products {
	margin-top: var(--pad-white);
}
.single-product .related.products > h2 {
	margin: 0 0 40px !important;
	padding: 0 !important;
	font-size: var(--fs-h2);
	font-weight: 700;
	text-align: center;
	letter-spacing: .06em;
	border: none !important;
	background: none !important;
}
.single-product .related.products > h2::before,
.single-product .related.products > h2::after { display: none !important; }

/* ショップページ見出し */
.woocommerce .woocommerce-products-header__title,
.woocommerce .page-title {
	margin: 8px 0 40px !important;
	padding: 0 !important;
	font-size: var(--fs-h2);
	font-weight: 700;
	text-align: center;
	letter-spacing: .06em;
	border: none !important;
	background: none !important;
}

/* ページネーション */
.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 14px;
	font-weight: 700;
	color: var(--c-text);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--c-accent);
	color: var(--c-white);
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--c-accent-soft);
	color: var(--c-accent);
}

/* ============================================================
 * 4. カート・決済・マイアカウント（最低限の整え）
 * ============================================================ */

.woocommerce table.shop_table {
	border-radius: var(--r-panel);
	border-color: var(--c-line);
	font-size: 14px;
}
.woocommerce table.shop_table th { background: var(--c-cream); }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	font-size: 20px;
	font-weight: 700;
	border: none !important;
	background: none !important;
	padding: 0 !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	border: 1px solid var(--c-line);
	border-radius: var(--r-input);
	padding: 12px 14px;
	font-size: 14px;
	background: var(--c-white);
	height: auto;
}
.woocommerce form .form-row label { font-size: 13px; font-weight: 700; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; }

/* ============================================================
 * 5. SP 追尾カートバー
 * ============================================================ */

.slb-sticky-cart { display: none; }

@media (max-width: 781px) {
	.slb-sticky-cart {
		display: flex;
		align-items: center;
		gap: 12px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 900;
		padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
		background: rgba(255, 255, 255, .96);
		backdrop-filter: blur(8px);
		-webkit-backdrop-filter: blur(8px);
		border-top: 1px solid var(--c-line);
		transform: translateY(0);
		transition: transform var(--dur-hover) var(--ease), opacity var(--dur-hover) var(--ease);
	}
	.slb-sticky-cart.is-hidden {
		transform: translateY(110%);
		opacity: 0;
		pointer-events: none;
	}
	.slb-sticky-cart[hidden] { display: none; }
	.slb-sticky-cart-info {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 2px;
	}
	.slb-sticky-cart-name {
		font-size: 11px;
		color: var(--c-muted);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.slb-sticky-cart-price {
		font-size: 17px;
		font-weight: 700;
		line-height: 1.2;
	}
	.slb-sticky-cart-price .woocommerce-Price-currencySymbol { font-size: 13px; }
	.slb-sticky-cart-price .woocommerce-price-suffix {
		font-size: 10px;
		font-weight: 400;
		color: var(--c-muted);
	}
	.slb-sticky-cart-btn {
		flex: 0 0 auto;
		height: 48px;
		padding: 0 24px;
		border: none;
		border-radius: var(--r-pill);
		background: var(--c-accent);
		color: var(--c-white);
		font-family: var(--f-ja);
		font-size: 14px;
		font-weight: 700;
		letter-spacing: .06em;
		cursor: pointer;
		box-shadow: var(--shadow-btn);
	}
	.slb-sticky-cart-btn:hover { background: var(--c-accent-hover); }

	/* 追尾バーのぶんフッターに余白 */
	.slb-product #commonFooter { padding-bottom: 84px; }
}

/* ============================================================
 * 6. SP レイアウト
 * ============================================================ */

@media (max-width: 781px) {
	.woocommerce #primary.content-area,
	.woocommerce-page #primary.content-area {
		padding-bottom: var(--pad-white);
	}

	.single-product div.product {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.slb-breadcrumb { margin: 16px 0 20px; font-size: 11px; }

	.single-product .product_title { font-size: 22px; }
	.single-product .summary .price { font-size: 26px; }
	.single-product .summary .price .woocommerce-Price-currencySymbol { font-size: 18px; }

	.slb-pd-attrs > div { grid-template-columns: 92px 1fr; gap: 10px; padding: 12px 2px; }
	.slb-pd-attrs dt { font-size: 12px; }
	.slb-pd-attrs dd { font-size: 13px; }

	.single-product form.cart { gap: 8px; }
	.slb-qty-btn { width: 34px; height: var(--h-btn-primary); }
	.single-product .quantity.slb-qty input.qty { width: 34px; height: var(--h-btn-primary); }
	.single-product .single_add_to_cart_button { padding: 0 16px; font-size: 15px; }

	.slb-sec-head { margin-bottom: 32px; gap: 14px; }

	.band-cream-inner { padding: var(--pad-white) var(--gutter); }

	.slb-pd-desc-body { grid-template-columns: 1fr; gap: 24px; }
	.slb-pd-lead { font-size: 15px; line-height: 2; margin-bottom: 22px; }
	.slb-pd-points { gap: 18px; }
	.slb-pd-points h3 { font-size: 16px; }

	.slb-pd-howto-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
	.slb-pd-howto-item h3 { margin-top: 12px !important; font-size: 14px; }
	.slb-pd-howto-item p { font-size: 11px; }

	.slb-pd-voice-grid { grid-template-columns: 1fr; gap: 18px; }
	.slb-pd-voice .voice-bubble { padding: 16px 18px; border-radius: 18px; }

	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
	.woocommerce ul.products li.product { padding: 10px 10px 16px; border-radius: 20px; }
	.woocommerce ul.products li.product img { border-radius: var(--r-pill) var(--r-pill) 16px 16px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 14px; }
	.woocommerce ul.products li.product .price { font-size: 15px; }
	.slb-loop-more { right: 14px; bottom: 16px; font-size: 0; }
	.slb-loop-more::after { content: '→'; font-size: 14px; }
	.slb-loop-badge { top: 16px; left: 16px; }

	.single-product .related.products > h2 { margin-bottom: 28px !important; }
}

/* ============================================================
 * 7. JIN:R のサイドバー・不要要素
 * WooCommerce のページは JIN:R のサイドバーを出さない（1カラム）
 * ============================================================ */

.woocommerce #secondary,
.woocommerce-page #secondary,
.woocommerce .widget-area,
.woocommerce-page .widget-area,
.woocommerce #mainSideBar,
.woocommerce-page #mainSideBar {
	display: none !important;
}

/* 関連商品が 3 件未満でもカード幅を保つ */
.single-product .related.products ul.products {
	grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 781px) {
	.single-product .related.products ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 商品説明の写真枠（プレースホルダー時） */
.slb-pd-desc-visual .ph {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ============================================================
 * 8. カート・決済（WooCommerce ブロック版）
 * /cart/ と /checkout/ はブロックで描画される。
 * クラスは wc-block-* 系。
 * ============================================================ */

.wc-block-cart,
.wc-block-checkout {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--w-content) + var(--gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--gutter) var(--pad-white);
	font-family: var(--f-ja);
}

/* 見出し */
.wc-block-components-title,
.wc-block-components-checkout-step__title {
	font-family: var(--f-ja) !important;
	font-weight: 700 !important;
	color: var(--c-text) !important;
	border: none !important;
	background: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* 商品名のリンク装飾を外す */
.wc-block-components-product-name {
	color: var(--c-text) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	background: none !important;
	font-weight: 700;
}
.wc-block-components-product-name:hover { color: var(--c-accent) !important; }

/* 商品画像 */
.wc-block-cart-item__image img {
	border-radius: var(--r-panel);
	background: var(--c-photo);
}

/* 区切り線 */
.wc-block-cart-items__header,
.wc-block-cart-items__row,
.wc-block-components-totals-wrapper {
	border-color: var(--c-line) !important;
}

/* 数量ステッパー */
.wc-block-components-quantity-selector {
	border-radius: var(--r-pill) !important;
	border-color: var(--c-line) !important;
}
.wc-block-components-quantity-selector__button {
	color: var(--c-text) !important;
}
.wc-block-components-quantity-selector__button:hover {
	color: var(--c-accent) !important;
}

/* 合計 */
.wc-block-components-totals-item__label { font-size: 14px; }
.wc-block-components-totals-footer-item {
	font-size: 18px;
	font-weight: 700;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--c-text);
}

/* サイドバー（合計欄） */
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
	border-radius: var(--r-card);
}

/* ボタン */
.wc-block-components-button:not(.is-link) {
	border-radius: var(--r-pill) !important;
	background: var(--c-accent) !important;
	color: var(--c-white) !important;
	font-family: var(--f-ja) !important;
	font-weight: 700 !important;
	min-height: var(--h-btn-primary);
	box-shadow: var(--shadow-btn);
	border: none !important;
	transition: background-color var(--dur-hover) var(--ease);
}
.wc-block-components-button:not(.is-link):hover {
	background: var(--c-accent-hover) !important;
}
.wc-block-components-button.is-link {
	color: var(--c-accent) !important;
}

/* 入力欄 */
.wc-block-components-text-input input,
.wc-block-components-country-input select,
.wc-block-components-state-input select,
.wc-block-components-textarea {
	border-radius: var(--r-input) !important;
	border-color: var(--c-line) !important;
	font-family: var(--f-ja) !important;
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus {
	box-shadow: 0 0 0 1px var(--c-accent) !important;
	border-color: var(--c-accent) !important;
}
.wc-block-components-text-input label { color: var(--c-muted) !important; }

/* 通知 */
.wc-block-components-notice-banner {
	border-radius: var(--r-panel) !important;
	font-family: var(--f-ja) !important;
}

/* 決済ステップ */
.wc-block-components-checkout-step {
	border-color: var(--c-line) !important;
}
.wc-block-components-checkout-step__description {
	color: var(--c-muted) !important;
	font-size: 13px;
}

@media (max-width: 781px) {
	.wc-block-cart,
	.wc-block-checkout { padding-bottom: var(--pad-white); }
}

/* カート行のサムネイルリンク（中身は画像）の下線を外す */
.wc-block-cart-item__image a,
.wc-block-cart-item__image a:hover {
	text-decoration: none !important;
	border-bottom: none !important;
}

/* サイドバーの主ボタンは全幅に揃える */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
}
