/**
 * YOLOAME 購入ボックス（PDP Buy Box）
 * 参考: yoloame-product-page-v20.3.html の .pdp-buybox
 * すべて .ym-buybox 配下にスコープし、テーマ/Elementor との衝突を防ぐ。
 */

 .ym-buybox {
	--ym-bg: #FBFAF6;
	--ym-surface: #FFFFFF;
	--ym-surface-2: #F5F2EA;
	--ym-text-1: #1F1E1B;
	--ym-text-2: #5A5650;
	--ym-text-3: #8C8780;
	--ym-border: #E8E2D5;
	--ym-border-strong: #CFC8B8;
	--ym-accent: #2B5F4F;
	--ym-accent-soft: #EAF2EE;
	--ym-accent-dark: #1F4538;
	--ym-yoloame: #B8893F;
	--ym-yoloame-soft: #FAF1DE;
	--ym-yoloame-border: #E5C896;
	--ym-sale: #C4564A;
	--ym-serif: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	--ym-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;

	font-family: var(--ym-sans);
	color: var(--ym-text-1);
	font-size: 14px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
}

.ym-buybox *,
.ym-buybox *::before,
.ym-buybox *::after {
	box-sizing: border-box;
}

/* ===== Title ===== */
.ym-buybox .pdp-h1 {
	font-family: var(--ym-serif);
	font-size: 24px;
	line-height: 1.45;
	font-weight: 600;
	margin: 0 0 8px;
	color: var(--ym-text-1);
}

/* ===== Meta row ===== */
.ym-buybox .pdp-meta-row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 12px;
	color: var(--ym-text-3);
	margin-bottom: 16px;
}
.ym-buybox .pdp-meta-row .ip-tag {
	background: var(--ym-accent-soft);
	color: var(--ym-accent);
	padding: 3px 10px;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.05em;
}
.ym-buybox .pdp-meta-row .yoloame-tag {
	background: var(--ym-yoloame-soft);
	color: var(--ym-yoloame);
	border: 1px solid var(--ym-yoloame-border);
	padding: 3px 10px;
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.05em;
}
.ym-buybox .pdp-meta-row .sku {
	color: var(--ym-text-3);
}

/* ===== Catch copy ===== */
.ym-buybox .pdp-catch {
	font-size: 13px;
	line-height: 1.85;
	color: var(--ym-text-2);
	padding: 14px 0;
	border-top: 1px solid var(--ym-border);
	border-bottom: 1px solid var(--ym-border);
	margin: 0 0 18px;
}

/* ===== Price ===== */
.ym-buybox .pdp-price-row {
	display: flex;
	align-items: baseline;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.ym-buybox .pdp-price-old {
	font-size: 13px;
	color: var(--ym-text-3);
	text-decoration: line-through;
}
.ym-buybox .pdp-price-now {
	font-family: var(--ym-serif);
	font-size: 28px;
	font-weight: 600;
	color: var(--ym-text-1);
}
.ym-buybox .pdp-price-now .woocommerce-Price-amount { font-size: inherit; }
/* 万一 price_html 混入时，避免与 .pdp-price-old 重复划线价 */
.ym-buybox .pdp-price-now del,
.ym-buybox .pdp-price-now .screen-reader-text {
	display: none !important;
}
.ym-buybox .pdp-price-now ins {
	text-decoration: none;
}
.ym-buybox .pdp-price-tax { font-size: 16px; color: var(--ym-text-3); }
.ym-buybox .pdp-price-discount {
	display: inline-block;
	background: var(--ym-sale);
	color: #fff;
	font-size: 10px;
	padding: 2px 8px;
	letter-spacing: 0.05em;
}
.ym-buybox .pdp-sale-note {
	font-size: 11px;
	color: var(--ym-text-3);
	margin-bottom: 18px;
}
.ym-buybox .pdp-sale-note .savings-amount { color: var(--ym-sale); font-weight: 600; }
.ym-buybox .pdp-sale-note .woocommerce-Price-amount { color: inherit; font-weight: inherit; }
.ym-buybox .ym-hidden { display: none !important; }
.ym-buybox-variable .pdp-price-now .price .from,
.ym-buybox-variable .pdp-price-now .price .to {
	font-size: inherit;
}

/* ===== Fulfillment badge ===== */
.ym-buybox .fulfillment-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	border-left: 3px solid var(--ym-accent);
	background: var(--ym-accent-soft);
	margin-bottom: 18px;
	font-size: 13px;
	width: 100%;
}
.ym-buybox .fulfillment-badge .dot { font-size: 18px; color: var(--ym-accent); }
.ym-buybox .fulfillment-badge .ftype { font-weight: 600; color: var(--ym-accent-dark); }
.ym-buybox .fulfillment-badge .fdays { color: var(--ym-text-2); font-size: 12px; }
.ym-buybox .fulfillment-badge.preorder {
	border-left-color: #C8772E;
	background: #FCF1E5;
}
.ym-buybox .fulfillment-badge.preorder .dot { color: #C8772E; }
.ym-buybox .fulfillment-badge.preorder .ftype { color: #8B4D17; }

/* ===== Variation block (種類) ===== */
.ym-buybox .variation-block { margin-bottom: 18px; }
.ym-buybox .variation-label {
	font-size: 11px;
	letter-spacing: 0.16em;
	font-weight: 600;
	color: var(--ym-text-3);
	margin-bottom: 8px;
	text-transform: uppercase;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
.ym-buybox .variation-label .help-link {
	color: var(--ym-accent);
	font-size: 11px;
	text-decoration: underline;
	letter-spacing: normal;
	text-transform: none;
	font-weight: normal;
}
.ym-buybox .variation-label .help-link:hover {
	color: var(--ym-accent-dark);
}

/* Woodmart サイズガイド：ポップアップのみ、テーマ付属ボタンは非表示 */
.ym-buybox .ym-sizeguide-holder .wd-sizeguide-btn {
	display: none !important;
}

/* 可変商品：属性ブロックごと（サイズ展開 + 種類・カラー等） */
.ym-buybox-variable .ym-variations-wrap {
	margin-bottom: 18px;
}
.ym-buybox-variable .ym-variations-form {
	margin: 0;
}
.ym-buybox-variable .ym-variations-attrs .variation-block {
	margin-bottom: 18px;
}
.ym-buybox-variable .ym-variations-attrs .ym-attr-value {
	padding: 0;
	border: none;
}
.ym-buybox-variable .ym-variations-attrs .wd-swatches-product {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
	gap: 4px;
}
.ym-buybox-variable .ym-variations-attrs select {
	display: none !important;
}
.ym-buybox-variable .ym-variations-attrs .reset_variations {
	display: none;
}
.ym-buybox-variable .ym-variations-attrs .wd-reset-var {
	display: none;
}
.ym-buybox-variable .ym-variation-atc .qty-row {
	margin-top: 14px;
}
.ym-buybox-variable .woocommerce-variation-price {
	display: none;
}
.ym-buybox-variable .woocommerce-variation-availability {
	display: none;
}
/* Woo デフォルト CTA（未置換時・WPC 等の重複出力を隠す） */
.ym-buybox-variable .single_variation_wrap > .woocommerce-variation-add-to-cart:not(.ym-variation-cta),
.ym-buybox-variable .single_variation_wrap > .quantity:not(.ym-variation-atc .quantity) {
	display: none !important;
}
.ym-buybox .ym-attr-kind .variation-options {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.ym-buybox .ym-attr-kind .size-option {
	flex: 1;
	min-width: 80px;
}
.ym-buybox .ym-variation-stock-notice:not(:empty) {
	margin: 8px 0 4px;
	font-size: 13px;
	line-height: 1.5;
	color: #b42318;
}
.ym-buybox .ym-variation-stock-notice .stock {
	margin: 0;
}
.ym-buybox-variable .wd-swatch.wd-disabled {
	pointer-events: none !important;
	cursor: not-allowed !important;
	opacity: 0.42;
}
.ym-buybox-variable .wd-swatch.wd-disabled.wd-active {
	border-color: var(--ym-border, #ddd);
	box-shadow: none;
}
.ym-buybox-variable .ym-variation-cta .single_add_to_cart_button.disabled,
.ym-buybox-variable .ym-variation-cta .wd-buy-now-btn.disabled,
.ym-buybox-variable .ym-variation-cta .btn-buynow.disabled {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}
/* 非サイズ属性（種類・Ver 等）は mock の size-option 風 */
.ym-buybox-variable .ym-attr-option .wd-swatches-product {
	grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
}

.ym-buybox .variation-options { display: flex; gap: 8px; flex-wrap: wrap; }
.ym-buybox .size-option {
	border: 1px solid var(--ym-border);
	background: var(--ym-surface);
	padding: 9px 14px;
	text-align: center;
	font-size: 12px;
	cursor: pointer;
	transition: all 0.15s;
	flex: 1;
}
.ym-buybox .size-option:hover { border-color: var(--ym-accent); }
.ym-buybox .size-option.selected { border: 2px solid var(--ym-text-1); font-weight: 600; }

/* ===== 追加オプション（商品メタ） ===== */
.ym-buybox .addon-selector {
	border-top: 1px solid var(--ym-border);
	border-bottom: 1px solid var(--ym-border);
	padding: 16px 0;
	margin-bottom: 18px;
}
.ym-buybox .addon-selector-label {
	font-size: 11px;
	letter-spacing: 0.16em;
	font-weight: 600;
	color: var(--ym-text-3);
	margin-bottom: 12px;
	text-transform: uppercase;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
.ym-buybox .addon-selector-label .addon-meta {
	font-size: 10px;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--ym-text-3);
	font-weight: 400;
}
.ym-buybox .addon-row {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px dashed var(--ym-border);
	cursor: pointer;
	transition: background 0.12s;
}
.ym-buybox .addon-row:hover {
	background: var(--ym-surface-2);
}
.ym-buybox .addon-input {
	width: 16px;
	height: 16px;
	margin: 0 auto;
	accent-color: var(--ym-yoloame);
	cursor: pointer;
}
.ym-buybox .addon-name {
	font-size: 13px;
	color: var(--ym-text-1);
	font-weight: 500;
}
.ym-buybox .addon-action {
	font-size: 12px;
	color: var(--ym-text-3);
	font-weight: 500;
	white-space: nowrap;
}
.ym-buybox .addon-action.addon-add {
	color: var(--ym-yoloame);
	font-weight: 600;
}
.ym-buybox .addon-bundle {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 12px;
	align-items: center;
	background: var(--ym-yoloame-soft);
	border: 1px solid var(--ym-yoloame-border);
	padding: 12px 14px;
	margin-top: 10px;
	cursor: pointer;
	transition: background 0.12s;
	position: relative;
}
.ym-buybox .addon-bundle:hover {
	background: #fbe9c9;
}
.ym-buybox .addon-bundle.selected {
	background: #f5d89e;
	border-color: var(--ym-yoloame);
	border-width: 2px;
	padding: 11px 13px;
	box-shadow: 0 2px 6px rgba(184, 137, 63, 0.18);
}
.ym-buybox .ym-bundle-badge {
	display: none;
	position: absolute;
	top: -10px;
	right: 12px;
	z-index: 2;
	background: var(--ym-yoloame);
	color: #fff;
	font-size: 10px;
	line-height: 1.3;
	padding: 3px 9px;
	font-weight: 600;
	letter-spacing: 0.05em;
	border-radius: 2px;
	pointer-events: none;
}
.ym-buybox .addon-bundle.selected .ym-bundle-badge {
	display: block;
}
.ym-buybox .addon-bundle-tag {
	font-size: 10px;
	color: var(--ym-yoloame);
	background: #fff;
	padding: 3px 8px;
	border: 1px solid var(--ym-yoloame-border);
	font-weight: 600;
	letter-spacing: 0.04em;
	white-space: nowrap;
}
.ym-buybox .addon-bundle-name {
	font-size: 13px;
	font-weight: 600;
	color: var(--ym-yoloame);
	line-height: 1.4;
}
.ym-buybox .addon-bundle-sub {
	font-size: 10px;
	color: #856027;
	margin-top: 1px;
}
.ym-buybox .addon-bundle-now {
	font-family: var(--ym-serif, Georgia, serif);
	font-size: 16px;
	font-weight: 600;
	color: var(--ym-yoloame);
}
.ym-buybox .addon-bundle-save {
	font-size: 10px;
	color: var(--ym-sale, #b42318);
	font-weight: 600;
	text-align: right;
}
.ym-buybox .addon-selector.bundle-mode .addon-row {
	opacity: 0.65;
}

/* ===== Quantity ===== */
.ym-buybox .qty-row { display: flex; gap: 10px; align-items: stretch; margin-bottom: 14px; }
.ym-buybox .qty-stepper { display: flex; border: 1px solid var(--ym-border-strong); }
.ym-buybox .qty-stepper button {
	background: var(--ym-surface);
	border: none;
	width: 38px;
	font-size: 16px;
	cursor: pointer;
	color: var(--ym-text-2);
}
.ym-buybox .qty-stepper input {
	border: none;
	border-left: 1px solid var(--ym-border-strong);
	border-right: 1px solid var(--ym-border-strong);
	width: 50px;
	text-align: center;
	font-size: 14px;
	-moz-appearance: textfield;
	background: var(--ym-surface);
}
.ym-buybox .qty-stepper input::-webkit-outer-spin-button,
.ym-buybox .qty-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ===== CTA buttons ===== */
.ym-buybox .cta-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-bottom: 14px;
}
.ym-buybox .btn-primary,
.ym-buybox .btn-secondary,
.ym-buybox .btn-buynow {
	padding: 14px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	cursor: pointer;
	font-family: var(--ym-sans);
	line-height: 1.2;
	border-radius: 0;
	transition: background 0.15s, color 0.15s;
}
.ym-buybox .btn-primary {
	background: var(--ym-text-1);
	color: #fff;
	border: none;
}
.ym-buybox .btn-primary:hover { background: var(--ym-accent-dark); }
.ym-buybox .btn-primary[disabled] { background: var(--ym-border-strong); cursor: not-allowed; }
.ym-buybox .btn-secondary {
	background: var(--ym-surface);
	color: var(--ym-text-1);
	border: 1px solid var(--ym-text-1);
}
.ym-buybox .btn-secondary:hover { background: var(--ym-surface-2); }
.ym-buybox .cta-row.has-buy-now .btn-buynow,
.ym-buybox .cta-row.has-buy-now .wd-buy-now-btn {
	grid-column: span 2;
	background: var(--ym-yoloame);
	color: #fff;
	border: none;
}
.ym-buybox .cta-row.has-buy-now .btn-buynow:hover,
.ym-buybox .cta-row.has-buy-now .wd-buy-now-btn:hover {
	background: #9C7332;
}
.ym-buybox .cta-row.has-buy-now .wd-buy-now-btn.disabled {
	background: var(--ym-border-strong);
	cursor: not-allowed;
}

/* ===== Woodmart 原生愿望清单（样式对齐 btn-secondary） ===== */
.ym-buybox .ym-wishlist-slot {
	display: flex;
	min-width: 0;
}
.ym-buybox .ym-wishlist-slot .wd-wishlist-btn {
	width: 100%;
	margin: 0;
}
.ym-buybox .ym-wishlist-slot .wd-wishlist-btn > a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	min-height: 46px;
	padding: 14px;
	background: var(--ym-surface);
	color: var(--ym-text-1);
	border: 1px solid var(--ym-text-1);
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	font-family: var(--ym-sans);
	line-height: 1.2;
	box-sizing: border-box;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ym-buybox .ym-wishlist-slot .wd-wishlist-btn > a:hover {
	background: var(--ym-surface-2);
}
.ym-buybox .ym-wishlist-slot .wd-wishlist-btn > a.added {
	color: var(--ym-sale);
	border-color: var(--ym-sale);
}
.ym-buybox .ym-wishlist-slot .wd-action-text {
	font-size: inherit;
	font-weight: inherit;
}
/* ===== Payments ===== */
.ym-buybox .payments-row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 8px;
	padding-top: 14px;
	border-top: 1px solid var(--ym-border);
	font-size: 11px;
	color: var(--ym-text-3);
}
.ym-buybox .payments-label { margin-right: 6px; }
.ym-buybox .pay-icon {
	background: var(--ym-surface-2);
	border: 1px solid var(--ym-border);
	padding: 3px 8px;
	font-size: 10px;
	color: var(--ym-text-2);
	font-weight: 500;
	letter-spacing: 0.04em;
}

/* ===== WooCommerce price markup tidy ===== */
.ym-buybox .woocommerce-Price-amount { white-space: nowrap; }

/* ===== Responsive ===== */
@media (max-width: 480px) {
	.ym-buybox .pdp-h1 { font-size: 20px; }
	.ym-buybox .pdp-price-now { font-size: 24px; }
}
