/* --------------------------------------------------------------------------
   cj-cart — beat stock co-selling + theme_customize utilities
   Loaded once from layout after theme_customize.css.
   Typography: family ← customize --font-family-text-body; metrics/sizes ← theme.
   -------------------------------------------------------------------------- */

#co-selling-product-view.cj-cart[data-cj-cart-ux] {
	--vitamin: #f8b848;
	--vitamin-deep: #e8a030;
	--dark-ink: #1a1a1a;
	--accent-red: #b54a3a;
	--gold-bg: #fcfbf8;
	--muted-ink: #4a4a4a;
	--line-gray: #e2ded7;
	--course-border: #ddd6cb;
	--shadow-soft: 0 2px 8px rgba(26, 26, 26, 0.08);
	--shadow-cta: 0 3px 12px rgba(232, 160, 48, 0.28);
	--shadow-cta-hover: 0 4px 14px rgba(232, 160, 48, 0.32);
	--shadow-cta-active: 0 1px 6px rgba(232, 160, 48, 0.2);
	/* Family from customize 文字体裁 (--font-family-text-*); theme owns metrics (palt/kern/etc.) */
	--cj-font-sans: var(--font-family-text-body, "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif);
	box-sizing: border-box;
	width: 100%;
	margin: 10px 0;
	color: var(--dark-ink);
	font-family: var(--cj-font-sans);
	font-kerning: normal;
	font-optical-sizing: auto;
	font-feature-settings: "palt" 1, "kern" 1;
	text-spacing-trim: trim-both;
	-webkit-font-smoothing: antialiased;
	position: relative;
}

#co-selling-product-view.cj-cart *,
#co-selling-product-view.cj-cart *::before,
#co-selling-product-view.cj-cart *::after {
	box-sizing: border-box;
}

/* sr-only legend (do not inherit u-text--btn white) */
#co-selling-product-view.cj-cart .cj-cart__legend {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	color: transparent !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

/* Kill stock float tabs (bundle: width 33.3% / float / height 52px) */
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav.cj-cart__tabs,
#co-selling-product-view.cj-cart ul.cj-cart__tabs {
	display: flex !important;
	flex-direction: column !important;
	float: none !important;
	gap: 12px !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100% !important;
	color: var(--dark-ink) !important;
}

#co-selling-product-view.cj-cart .c-product_info__co_selling__nav.cj-cart__tabs::before,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav.cj-cart__tabs::after {
	content: none !important;
	display: none !important;
}

#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.cj-cart__tab,
#co-selling-product-view.cj-cart li.cj-cart__tab {
	display: block !important;
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	text-align: left !important;
	position: relative !important;
	background: transparent !important;
}

#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list + li {
	border-left: 0 !important;
}

#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list a.cj-cart__tab-link,
#co-selling-product-view.cj-cart a.cj-cart__tab-link {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	line-height: normal !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 2px solid var(--course-border) !important;
	border-radius: 4px !important;
	background: #fff !important;
	color: var(--dark-ink) !important;
	text-decoration: none !important;
	font-size: inherit !important;
	text-align: left !important;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}

#co-selling-product-view.cj-cart .c-product_info__co_selling__nav .active a.cj-cart__tab-link,
#co-selling-product-view.cj-cart li.cj-cart__tab.active a.cj-cart__tab-link {
	color: var(--dark-ink) !important;
	background: var(--gold-bg) !important;
	border-color: var(--dark-ink) !important;
	box-shadow: var(--shadow-soft);
}

#co-selling-product-view.cj-cart .cj-cart__badge-gold {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.35em;
	width: 100%;
	padding: 5px 8px;
	background: #9a9488;
	color: #fff !important;
	font-size: 0.75rem !important;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.04em;
	line-height: 1.3 !important;
}

#co-selling-product-view.cj-cart .cj-cart__badge-gold::before {
	content: "✓";
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1;
	flex-shrink: 0;
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__badge-gold,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__badge-gold {
	background: var(--dark-ink);
}

#co-selling-product-view.cj-cart .cj-cart__tab-body {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	padding: 12px 16px 14px;
}

#co-selling-product-view.cj-cart .cj-cart__radio {
	position: relative;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	margin-top: 0;
	border: 2px solid #ccc;
	border-radius: 50%;
	background: #fff;
}

#co-selling-product-view.cj-cart .cj-cart__radio::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--dark-ink);
	transform: translate(-50%, -50%) scale(0);
	transition: transform 0.22s cubic-bezier(0.34, 1.25, 0.64, 1);
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__radio,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__radio {
	border-color: var(--dark-ink);
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__radio::after,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__radio::after {
	transform: translate(-50%, -50%) scale(1);
}

@media (prefers-reduced-motion: reduce) {
	#co-selling-product-view.cj-cart .cj-cart__radio::after {
		transition: none;
	}
}

#co-selling-product-view.cj-cart .cj-cart__option-main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

#co-selling-product-view.cj-cart .cj-cart__option-top {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 6px;
	width: 100%;
}

#co-selling-product-view.cj-cart .cj-cart__option-title {
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: #555 !important;
	white-space: nowrap;
	flex-shrink: 0;
}

#co-selling-product-view.cj-cart .cj-cart__option-ship {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	flex-shrink: 1;
	min-width: 0;
}

#co-selling-product-view.cj-cart .cj-cart__option-badges {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	flex-shrink: 0;
	min-width: 0;
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__option-title,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__option-title {
	color: var(--dark-ink) !important;
}

#co-selling-product-view.cj-cart .cj-cart__off-badge {
	display: inline-block;
	padding: 1px 5px;
	border-radius: 2px;
	background: var(--accent-red);
	color: #fff !important;
	font-size: 0.75rem !important;
	font-weight: 700;
	line-height: 1.35;
	white-space: nowrap;
}

#co-selling-product-view.cj-cart .cj-cart__ship-chip {
	font-size: 0.75rem !important;
	font-weight: 600;
	color: #444 !important;
	border: 1px solid #b8b0a4;
	padding: 1px 5px;
	border-radius: 2px;
	line-height: 1.35;
	white-space: nowrap;
}

#co-selling-product-view.cj-cart .cj-cart__ship-chip.is-fee {
	color: #555 !important;
	border-color: #c5c0b8;
	font-weight: 600;
}

#co-selling-product-view.cj-cart .cj-cart__ship-rule-hint {
	margin: 4px 0 0 !important;
	padding: 0 !important;
	font-size: 0.6875rem !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	color: var(--muted-ink, #777) !important;
	text-align: right;
	width: 100%;
	white-space: nowrap;
}

#co-selling-product-view.cj-cart .cj-cart__option-content {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}

#co-selling-product-view.cj-cart .cj-cart__benefits {
	list-style: none !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column;
	gap: 9px;
	text-align: left;
	float: none !important;
	width: 100% !important;
	color: inherit !important;
}

#co-selling-product-view.cj-cart .cj-cart__benefits li {
	display: flex !important;
	align-items: baseline;
	gap: 7px;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	color: #555 !important;
	line-height: 1.5 !important;
	letter-spacing: 0.02em;
	background: transparent !important;
	height: auto !important;
}

#co-selling-product-view.cj-cart .cj-cart__benefits li::before {
	content: "✓";
	flex-shrink: 0;
	color: #666;
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1;
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__benefits li,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__benefits li {
	color: var(--dark-ink) !important;
}

#co-selling-product-view.cj-cart li.cj-cart__tab.active .cj-cart__benefits li::before,
#co-selling-product-view.cj-cart .c-product_info__co_selling__nav__list.active .cj-cart__benefits li::before {
	color: var(--dark-ink);
}

#co-selling-product-view.cj-cart .cj-cart__benefits li sup {
	font-size: 0.72em;
	font-weight: 700;
	line-height: 1;
	vertical-align: baseline;
	position: relative;
	top: -0.2em;
}

/* Panel chrome */
#co-selling-product-view.cj-cart .c-product_info__co_selling__tab_content {
	position: relative;
	margin: 0 !important;
	padding: 8px 0 16px !important;
	border-bottom: 0 !important;
}

#co-selling-product-view.cj-cart .cj-cart__panel-title {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	font-size: 0 !important;
}

#co-selling-product-view.cj-cart .cj-cart__panel-price {
	display: flex !important;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	gap: 2px;
	min-height: 64px;
	margin: 0 !important;
	padding: 8px 0 4px;
	text-align: right;
}

#co-selling-product-view.cj-cart .cj-cart__strike-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	min-height: 17px;
	margin: 0;
	font-size: 0.8125rem !important;
	line-height: 1 !important;
	color: #666 !important;
}

#co-selling-product-view.cj-cart .cj-cart__strike-line-spacer {
	display: block;
	min-height: 17px;
	height: 17px;
}

#co-selling-product-view.cj-cart .cj-cart__strike-text {
	color: #707070 !important;
	text-decoration: line-through !important;
	text-decoration-color: #707070 !important;
	text-decoration-thickness: 1.5px !important;
	font-size: 0.8125rem !important;
}

#co-selling-product-view.cj-cart .cj-cart__price-off-tag {
	background: var(--accent-red);
	color: #fff !important;
	font-size: 0.6875rem !important;
	font-weight: 700;
	padding: 2px 5px;
	border-radius: 2px;
	line-height: 1;
	text-decoration: none !important;
}

#co-selling-product-view.cj-cart .cj-cart__main-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-end;
	gap: 6px;
	min-height: 40px;
	line-height: 1;
}

#co-selling-product-view.cj-cart .cj-cart__ship-label {
	margin: 0 4px 0 0;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	line-height: 1;
	color: #333 !important;
}

#co-selling-product-view.cj-cart .cj-cart__main-price:has(.cj-cart__price-value.is-accent) .cj-cart__ship-label {
	color: var(--accent-red) !important;
}

#co-selling-product-view.cj-cart .cj-cart__price-value {
	font-size: 2.5rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: -0.02em;
	color: var(--dark-ink) !important;
	font-variant-numeric: tabular-nums;
}

#co-selling-product-view.cj-cart .cj-cart__price-value.is-accent {
	font-size: 2.5rem !important;
	font-weight: 800 !important;
	color: var(--accent-red) !important;
}

#co-selling-product-view.cj-cart .cj-cart__price-unit {
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	color: var(--dark-ink) !important;
}

#co-selling-product-view.cj-cart .cj-cart__price-value.is-accent + .cj-cart__price-unit,
#co-selling-product-view.cj-cart .cj-cart__price-value.is-accent + .cj-cart__price-unit small {
	color: var(--accent-red) !important;
	font-weight: 700 !important;
}

#co-selling-product-view.cj-cart .cj-cart__price-unit small {
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	color: #444 !important;
}

/* Quantity row: keep usable, less chrome */
#co-selling-product-view.cj-cart .c-product_info__co-selling-product__option_types__wrapper_quantity {
	margin: 8px 0 !important;
}

#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-group {
	width: 100% !important;
	margin-top: 10px !important;
	letter-spacing: normal !important;
}

#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-group .co-btn-add-async ~ .co-btn-add {
	display: none !important;
}

/* Beat .u-color__btn--bg / .u-text--btn !important */
#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add,
#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add-wide,
#co-selling-product-view.cj-cart button.cj-cart__cta {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	min-height: 58px !important;
	height: auto !important;
	margin-top: 0 !important;
	padding: 16px 22px !important;
	border: 1px solid var(--vitamin-deep, #e8a030) !important;
	border-radius: 6px 26px 26px 6px !important;
	background: var(--vitamin, #f8b848) !important;
	color: var(--dark-ink, #1a1a1a) !important;
	appearance: none;
	-webkit-appearance: none;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	line-height: 1.2 !important;
	box-shadow: var(--shadow-cta);
	cursor: pointer;
	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		transform 0.15s ease,
		box-shadow 0.18s ease;
}

#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add:hover,
#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add-wide:hover,
#co-selling-product-view.cj-cart button.cj-cart__cta:hover {
	background: #f5ad38 !important;
	border-color: #e09828 !important;
	color: var(--dark-ink) !important;
	box-shadow: var(--shadow-cta-hover);
}

#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add:active,
#co-selling-product-view.cj-cart .c-product_info__co-selling-product__co-btn-add-wide:active,
#co-selling-product-view.cj-cart button.cj-cart__cta:active {
	transform: translateY(1px);
	background: #efaa35 !important;
	box-shadow: var(--shadow-cta-active);
}

#co-selling-product-view.cj-cart .cj-cart__cancel-note {
	margin: 10px 0 0 !important;
	padding-left: 1em;
	text-indent: -1em;
	font-size: 0.6875rem !important;
	font-weight: 500 !important;
	color: var(--muted-ink) !important;
	text-align: left;
	line-height: 1.55 !important;
	position: static !important;
	float: none !important;
}

#co-selling-product-view.cj-cart .cj-cart__fineprint {
	margin: 8px 0 0 !important;
	padding-left: 1em;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	color: var(--muted-ink) !important;
	text-align: left;
	line-height: 1.5 !important;
	position: static !important;
	float: none !important;
}

@media screen and (max-width: 480px) {
	#co-selling-product-view.cj-cart .cj-cart__price-value,
	#co-selling-product-view.cj-cart .cj-cart__price-value.is-accent {
		font-size: 2rem !important;
	}
}

/* --------------------------------------------------------------------------
   Sticky mirror (V12/O10) — Astro-like bar; hide stock floating under multi cart
   -------------------------------------------------------------------------- */

body:has(#co-selling-product-view.cj-cart) .js-floating-add-cart-button__floating {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.cj-cart-sticky {
	--vitamin: #f8b848;
	--vitamin-deep: #e8a030;
	--dark-ink: #1a1a1a;
	--accent-red: #b54a3a;
	--muted-ink: #4a4a4a;
	--line-gray: #e2ded7;
	--shadow-float: 0 -4px 24px rgba(26, 26, 26, 0.1);
	--shadow-bar: 0 -1px 0 var(--line-gray), 0 -8px 28px rgba(26, 26, 26, 0.08);
	--shadow-cta: 0 3px 12px rgba(232, 160, 48, 0.28);
	--shadow-cta-hover: 0 4px 14px rgba(232, 160, 48, 0.32);
	--shadow-cta-active: 0 1px 6px rgba(232, 160, 48, 0.2);
	--cj-font-sans: var(--font-family-text-body, "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif);
	/* Narrow-width contract (Astro parity): 390px baseline; fluid tokens only — no zoom/scale */
	--cj-sticky-scale: clamp(0.82, calc(100vw / 390px), 1);
	--cj-sticky-pad-x: calc(8px * var(--cj-sticky-scale));
	--cj-sticky-pad-y: calc(8px * var(--cj-sticky-scale));
	--cj-sticky-split-gap: calc(12px * var(--cj-sticky-scale));
	--cj-sticky-trigger-pad-l: calc(12px * var(--cj-sticky-scale));
	--cj-sticky-trigger-pad-r: calc(20px * var(--cj-sticky-scale));
	--cj-sticky-trigger-pad-y: 0;
	--cj-sticky-cta-pad-l: calc(10px * var(--cj-sticky-scale));
	--cj-sticky-cta-pad-r: calc(16px * var(--cj-sticky-scale));
	--cj-sticky-cta-pad-y: calc(7px * var(--cj-sticky-scale));
	--cj-sticky-cta-min-w: calc(7.25rem * var(--cj-sticky-scale));
	--cj-sticky-price-num: calc(1.625rem * var(--cj-sticky-scale));
	--cj-sticky-badge-max: calc(9.5rem * var(--cj-sticky-scale));
	--cj-sticky-radius-l: calc(6px * var(--cj-sticky-scale));
	--cj-sticky-radius-r: calc(22px * var(--cj-sticky-scale));
	/* Safari “iPhone” ≈390–430: reclaim label column (CTA text can exceed min-width) */
	--cj-sticky-phone-cta-max: 38%;
	--cj-sticky-phone-cta-min-w: calc(5.75rem * var(--cj-sticky-scale));
	--cj-sticky-phone-split-gap: calc(6px * var(--cj-sticky-scale));
	--cj-sticky-phone-trigger-pad-r: calc(14px * var(--cj-sticky-scale));
	--cj-sticky-phone-badge-fs: 0.5625rem;
	position: fixed;
	left: 0;
	right: 0;
	bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	z-index: 40;
	padding: 10px 14px 0;
	background: #fff;
	box-shadow: var(--shadow-bar);
	color: var(--dark-ink);
	font-family: var(--cj-font-sans);
	font-kerning: normal;
	font-optical-sizing: auto;
	font-feature-settings: "palt" 1, "kern" 1;
	text-spacing-trim: trim-both;
	-webkit-font-smoothing: antialiased;
	opacity: 0;
	transform: translateY(16px);
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.32s ease,
		transform 0.32s cubic-bezier(0.22, 1, 0.36, 1),
		visibility 0s linear 0.32s;
}

.cj-cart-sticky.is-visible {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
	pointer-events: auto;
	transition:
		opacity 0.28s ease,
		transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
		visibility 0s linear 0s;
}

.cj-cart-sticky__inner {
	/* Nested grid contract:
	   1) inner → [info 1fr | CTA auto]
	   2) picker-split → [meta 1fr | price+chevron auto]
	   3) picker-label → [head | shipping] rows
	   Shell looks via ::before — WebKit clips descendants when radius+bg sit on this box */
	position: relative;
	isolation: isolate;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: stretch;
	gap: 0;
	max-width: min(100%, 536px);
	margin: 0 auto;
	padding: 0 0 0 2px;
	background: transparent;
	border-radius: 0;
	box-shadow: none;
	/* visible: absolute picker panel opens above; desktop media may set hidden for containment */
	overflow: visible;
	width: 100%;
	box-sizing: border-box;
}

.cj-cart-sticky__inner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: #fff;
	border: 1px solid var(--vitamin-deep);
	border-radius: var(--cj-sticky-radius-l) var(--cj-sticky-radius-r)
		var(--cj-sticky-radius-r) var(--cj-sticky-radius-l);
	/* Float only — ring is border (box-shadow rings get clipped by overflow:hidden) */
	box-shadow: var(--shadow-float);
	pointer-events: none;
}

.cj-cart-sticky__picker,
.cj-cart-sticky__courses,
.cj-cart-sticky__regular-summary,
.cj-cart-sticky__cta {
	position: relative;
	z-index: 1;
}

.cj-cart-sticky__picker,
.cj-cart-sticky__courses,
.cj-cart-sticky__regular-summary {
	min-width: 0;
	max-width: 100%;
}

.cj-cart-sticky__picker {
	position: relative;
}

.cj-cart-sticky__picker-trigger,
.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option {
	padding: var(--cj-sticky-trigger-pad-y) var(--cj-sticky-trigger-pad-r)
		var(--cj-sticky-trigger-pad-y) var(--cj-sticky-trigger-pad-l);
	min-height: min-content;
	box-sizing: border-box;
}

.cj-cart-sticky__picker-trigger {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	border: none;
	/* No radius/bg here — WebKit would clip %OFF / promise badges to the curve */
	border-radius: 0;
	background: transparent;
	color: var(--dark-ink);
	text-align: left;
	cursor: pointer;
	transition: box-shadow 0.15s ease;
	overflow: visible;
}

.cj-cart-sticky__picker.is-open .cj-cart-sticky__picker-trigger {
	box-shadow: none;
}

.cj-cart-sticky__picker-summary,
.cj-cart-sticky__picker-option {
	display: block !important;
	width: 100% !important;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.cj-cart-sticky__picker-summary {
	flex: 1 1 auto;
	min-width: 0;
}

.cj-cart-sticky__picker-summary[hidden] {
	display: none !important;
}

.cj-cart-sticky__picker-main {
	display: block !important;
	width: 100% !important;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/*
 * Nested grid (2): meta | price
 * More resilient than flex against stock `button`/`span` resets.
 */
.cj-cart-sticky__picker-split {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: var(--cj-sticky-split-gap);
	width: 100% !important;
	min-width: 0;
	max-width: 100%;
	min-height: min-content;
	box-sizing: border-box;
}

/* Nested grid (3): course+%OFF | shipping — grow with content; do not clip badges */
.cj-cart-sticky__picker-label {
	display: grid !important;
	grid-template-rows: auto auto;
	align-content: center;
	justify-items: start;
	row-gap: 2px;
	min-width: 0;
	max-width: 100%;
	min-height: min-content;
	height: auto;
	overflow: visible;
}

.cj-cart-sticky__picker-label-head {
	display: flex !important;
	align-items: center;
	gap: 5px;
	flex-wrap: nowrap;
	min-width: 0;
	max-width: 100%;
	min-height: min-content;
	height: auto;
	overflow: visible;
}

.cj-cart-sticky__picker-label-slot {
	display: flex !important;
	align-items: center;
	min-width: 0;
	max-width: 100%;
	min-height: min-content;
	height: auto;
	/* Keep full shipping badge (border + optical margin) inside the box */
	padding-bottom: 2px;
	overflow: visible;
}

.cj-cart-sticky__layout-placeholder {
	visibility: hidden;
}

.cj-cart-sticky__picker-label .cj-cart-sticky__course-name {
	flex-shrink: 0;
	line-height: 1.2;
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
	/* Parent sticky uses palt — Safari Hiragino becomes wider and forces OFF wrap */
	font-feature-settings: "kern" 1;
	text-spacing-trim: space-all;
}

.cj-cart-sticky__picker-label .cj-cart-sticky__off-badge {
	flex-shrink: 0;
	min-width: auto;
	max-width: none;
	font-size: 0.625rem !important;
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
}

.cj-cart-sticky__picker-label .cj-cart-sticky__once-badge,
.cj-cart-sticky__picker-label .cj-cart-sticky__promise-badge {
	/* Stay in meta column; do not clip own L/R border (Safari) */
	flex-shrink: 1;
	min-width: 0;
	max-width: 100%;
	width: max-content;
	font-size: 0.625rem !important;
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
}

/* Price column — bottom + right of the meta|price grid */
.cj-cart-sticky__picker-price-stack {
	display: grid !important;
	grid-auto-flow: column;
	grid-auto-columns: auto;
	align-items: end;
	justify-content: end;
	justify-items: end;
	column-gap: calc(10px * var(--cj-sticky-scale));
	min-width: 0;
	margin: 0;
	align-self: end;
	justify-self: end;
	position: relative;
	z-index: 1;
}

.cj-cart-sticky__picker-price-grid {
	display: flex !important;
	align-items: flex-end;
	justify-content: flex-end;
	gap: calc(8px * var(--cj-sticky-scale));
	flex-shrink: 0;
	min-width: 0;
}

.cj-cart-sticky__picker-price-main {
	display: flex !important;
	align-items: flex-end;
	flex-shrink: 0;
	gap: 3px;
	line-height: 1;
	white-space: nowrap;
}

.cj-cart-sticky__picker-price-main .cj-cart-sticky__price-num {
	line-height: 1;
	font-size: var(--cj-sticky-price-num) !important;
	transform: none;
}

.cj-cart-sticky__picker-price-main .cj-cart-sticky__price-unit.is-unit-stacked {
	position: relative;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: auto;
	min-width: 1.5rem;
	height: auto;
	margin-left: 0;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	gap: 1px;
}

.cj-cart-sticky__picker-price-main
	.cj-cart-sticky__price-unit.is-unit-stacked
	.cj-cart-sticky__price-tax {
	position: static;
	bottom: auto;
	left: auto;
	transform: none;
	font-size: 0.4375rem !important;
	letter-spacing: -0.04em;
	line-height: 1;
	margin: 0;
	font-weight: 600;
}

.cj-cart-sticky__picker-price-main
	.cj-cart-sticky__price-unit.is-unit-stacked
	.cj-cart-sticky__price-yen {
	font-size: 0.75rem !important;
	line-height: 1;
}

.cj-cart-sticky__picker-chevron {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	flex-shrink: 0;
	width: 5px;
	height: 5px;
	margin: 0;
	border-right: 1.5px solid var(--muted-ink);
	border-bottom: 1.5px solid var(--muted-ink);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	pointer-events: none;
}

.cj-cart-sticky__picker.is-open .cj-cart-sticky__picker-chevron {
	transform: rotate(-135deg);
}

.cj-cart-sticky__picker-panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0 0 0 2px;
	border: 1px solid var(--line-gray);
	border-radius: 0;
	background: #fff;
	box-shadow: var(--shadow-float);
	overflow: hidden;
}

.cj-cart-sticky__picker-panel[hidden] {
	display: none !important;
}

.cj-cart-sticky__picker-option {
	display: block;
	width: 100%;
	padding: 8px 12px;
	border: none;
	border-radius: 0;
	background: #fff;
	color: var(--dark-ink);
	text-align: left;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.cj-cart-sticky__picker-option:not([hidden]) + .cj-cart-sticky__picker-option:not([hidden]) {
	border-top: 1px solid var(--line-gray);
}

.cj-cart-sticky__picker-option[hidden] {
	display: none !important;
}

.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option:hover {
	background: #fcfbf8;
}

.cj-cart-sticky__picker-summary .cj-cart-sticky__price-num,
.cj-cart-sticky__picker-option .cj-cart-sticky__price-num {
	font-size: var(--cj-sticky-price-num);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	color: var(--dark-ink);
}

.cj-cart-sticky__picker-summary .cj-cart-sticky__price-num.is-accent,
.cj-cart-sticky__picker-summary .cj-cart-sticky__price-unit.is-accent,
.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option .cj-cart-sticky__price-num.is-accent,
.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option .cj-cart-sticky__price-unit.is-accent {
	color: var(--accent-red);
}

.cj-cart-sticky__picker-summary .cj-cart-sticky__course-name,
.cj-cart-sticky__picker-option .cj-cart-sticky__course-name {
	font-size: 0.8125rem;
}

.cj-cart-sticky__course-name {
	display: block;
	flex-shrink: 0;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--dark-ink);
}

.cj-cart-sticky__off-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	/* Height from padding — keep ink off the top border */
	padding: 0.34em 0.4em 0.28em;
	border-radius: 2px;
	background: var(--accent-red);
	color: #fff;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1;
	white-space: nowrap;
	/* Do not inherit sticky `palt` / text-spacing-trim (Safari-only visual shift) */
	font-feature-settings: "kern" 1;
	text-spacing-trim: space-all;
}

.cj-cart-sticky__promise-badge,
.cj-cart-sticky__once-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	align-self: flex-start;
	box-sizing: border-box;
	/* Optical: drop in-flow so the parent box grows with the badge */
	margin: 2px 0 0;
	/* Top > bottom: keep glyphs off the top border (JP em-box sits high) */
	padding: 0.36em 0.55em 0.28em;
	border: 1px solid var(--line-gray);
	border-radius: 2px;
	background: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
	white-space: nowrap;
	color: #444;
	font-feature-settings: "kern" 1;
	text-spacing-trim: space-all;
	overflow: visible;
}

.cj-cart-sticky__promise-badge {
	border-color: var(--accent-red);
	color: var(--accent-red);
}

/*
 * Safari/WebKit desktop only: Hiragino ink sits higher.
 * Do NOT apply on mobile — fights the even 2px badge pad / Safari hang fix below.
 */
@supports (-webkit-touch-callout: none) {
	@media screen and (min-width: 768px) {
		.cj-cart-sticky__off-badge,
		.cj-cart-sticky__promise-badge,
		.cj-cart-sticky__once-badge {
			padding-top: 0.44em;
			padding-bottom: 0.24em;
		}
	}
}

.cj-cart-sticky__price-num {
	font-size: var(--cj-sticky-price-num, 1.5rem);
	font-weight: 700;
	letter-spacing: normal;
	white-space: nowrap;
	text-align: right;
	color: var(--dark-ink);
	font-variant-numeric: tabular-nums;
	transform: none;
}

.cj-cart-sticky__price-num.is-accent {
	color: var(--accent-red);
}

.cj-cart-sticky__price-unit {
	font-size: 0.75rem;
	font-weight: 700;
	margin-left: 0.04em;
	color: var(--muted-ink);
	white-space: nowrap;
}

.cj-cart-sticky__price-unit.is-accent {
	color: var(--accent-red);
}

.cj-cart-sticky__price-tax {
	margin-left: 0;
	letter-spacing: -0.02em;
}

.cj-cart-sticky__cta {
	display: flex !important;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	width: auto;
	min-width: var(--cj-sticky-cta-min-w);
	max-width: none;
	min-height: 0;
	padding: var(--cj-sticky-cta-pad-y) var(--cj-sticky-cta-pad-r)
		var(--cj-sticky-cta-pad-y) var(--cj-sticky-cta-pad-l);
	border: 1px solid var(--vitamin-deep, #e8a030) !important;
	border-radius: 0 var(--cj-sticky-radius-r) var(--cj-sticky-radius-r) 0;
	/* Beat stock `button { background: none }` / customize btn utilities */
	background: var(--vitamin, #f8b848) !important;
	color: var(--dark-ink, #1a1a1a) !important;
	appearance: none;
	-webkit-appearance: none;
	font-size: calc(0.875rem * var(--cj-sticky-scale)) !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: none;
	transition:
		background-color 0.15s ease,
		transform 0.12s ease;
}

.cj-cart-sticky__cta:hover {
	background: #f5ad38 !important;
	border-color: #e09828 !important;
	color: var(--dark-ink, #1a1a1a) !important;
}

.cj-cart-sticky__cta:active {
	transform: translateY(1px);
	background: #efaa35 !important;
}

@media screen and (max-width: 767px) {
	/* Mobile sticky: blank slate — all chrome margin/padding → 0 (rebuild from here) */
	.cj-cart-sticky {
		--cj-sticky-pad-x: 0;
		--cj-sticky-pad-y: 0;
		--cj-sticky-split-gap: 0;
		--cj-sticky-trigger-pad-l: 0;
		--cj-sticky-trigger-pad-r: 0;
		--cj-sticky-trigger-pad-y: 0;
		--cj-sticky-cta-pad-l: 0;
		--cj-sticky-cta-pad-r: 0;
		--cj-sticky-cta-pad-y: 0;
		--cj-sticky-phone-split-gap: 0;
		--cj-sticky-phone-trigger-pad-r: 0;
		margin: 0 8px;
		padding: 0;
		left: 0;
		right: 0;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		background: transparent;
		box-shadow: none;
	}

	.cj-cart-sticky__inner {
		gap: 0;
		align-items: stretch;
		overflow: visible;
		width: 100%;
		max-width: min(100%, 536px);
		margin: 0 auto;
		padding: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.cj-cart-sticky__inner::before {
		border-radius: var(--cj-sticky-radius-l) var(--cj-sticky-radius-r)
			var(--cj-sticky-radius-r) var(--cj-sticky-radius-l);
	}

	.cj-cart-sticky__picker {
		min-width: 0;
		z-index: 2;
		padding: 8px 4px 8px 12px;
		box-sizing: border-box;
	}

	.cj-cart-sticky__picker-trigger {
		position: static;
		margin: 0;
		padding: 0;
		border: none;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.cj-cart-sticky__picker.is-open .cj-cart-sticky__picker-trigger {
		box-shadow: none;
	}

	/* Position vs picker (not trigger) so top:8px is from the left-pane / shell edge */
	.cj-cart-sticky__picker-chevron {
		top: 8px;
		right: 8px;
	}

	.cj-cart-sticky__picker-split {
		column-gap: 0;
	}

	.cj-cart-sticky__picker-label {
		row-gap: 4px;
	}

	.cj-cart-sticky__picker-label-head {
		gap: 0;
	}

	.cj-cart-sticky__picker-label .cj-cart-sticky__course-name {
		margin-right: 4px;
		font-size: 0.875rem;
	}

	.cj-cart-sticky__picker-label-slot {
		margin: 0;
		padding: 0;
	}

	.cj-cart-sticky__picker-price-stack {
		column-gap: 0;
		margin: 0 0 0 4px;
	}

	.cj-cart-sticky__picker-price-grid {
		gap: 0;
	}

	/*
	 * Badges (mobile): Hiragino ink sits high — more top than bottom.
	 * Do not gate with @supports (-webkit-touch-callout) / not — Safari was
	 * getting the Chromium 2px reset and looked unchanged.
	 */
	.cj-cart-sticky__off-badge,
	.cj-cart-sticky__promise-badge,
	.cj-cart-sticky__once-badge {
		margin: 0;
		padding: 3px 2px 1px !important;
		align-items: center;
		line-height: 1;
		vertical-align: top;
		transform: none;
	}

	.cj-cart-sticky__picker-panel {
		left: 0;
		right: auto;
		width: 100%;
		min-width: 100%;
		z-index: 3;
		margin: 0;
		padding: 0;
		border: 1px solid var(--line-gray);
		border-radius: 0;
		background: #fff;
		box-shadow: var(--shadow-float);
		overflow: hidden;
	}

	/* Match closed trigger left-pane chrome (padding / type / badges via shared rules) */
	.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option {
		display: block;
		margin: 0;
		padding: 8px 4px 8px 12px;
		box-sizing: border-box;
		border: none;
		border-radius: 0;
		background: #fff;
		text-align: left;
	}

	.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-option:not([hidden]) + .cj-cart-sticky__picker-option:not([hidden]) {
		border-top: 1px solid var(--line-gray);
	}

	.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-label {
		row-gap: 4px;
	}

	.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-label .cj-cart-sticky__course-name {
		margin-right: 4px;
		font-size: 0.875rem;
	}

	.cj-cart-sticky__picker-panel .cj-cart-sticky__picker-price-stack {
		margin: 0 0 0 4px;
	}

	.cj-cart-sticky__cta {
		display: flex !important;
		align-items: center;
		justify-content: center;
		align-self: stretch;
		min-width: var(--cj-sticky-cta-min-w);
		min-height: 0;
		margin: 0;
		padding: 0;
		border: 1px solid var(--vitamin-deep, #e8a030) !important;
		border-radius: 0 var(--cj-sticky-radius-r) var(--cj-sticky-radius-r) 0;
		background: var(--vitamin, #f8b848) !important;
		color: var(--dark-ink, #1a1a1a) !important;
		box-shadow: none;
		white-space: nowrap;
		font-size: calc(0.875rem * var(--cj-sticky-scale)) !important;
	}

	.cj-cart-sticky__cta:hover,
	.cj-cart-sticky__cta:active {
		box-shadow: none;
		background: #f5ad38 !important;
		color: var(--dark-ink, #1a1a1a) !important;
	}

	.cj-cart-sticky.is-regular-only .cj-cart-sticky__regular-summary {
		margin: 0;
		padding: 8px 4px 8px 12px;
		box-sizing: border-box;
	}
}

/* Safari “iPhone” / ≤430: CTA column cap only (spacing stays blank until rebuilt) */
@media screen and (max-width: 430px) {
	.cj-cart-sticky {
		--cj-sticky-cta-min-w: var(--cj-sticky-phone-cta-min-w);
		--cj-sticky-split-gap: 0;
		--cj-sticky-trigger-pad-r: 0;
	}

	.cj-cart-sticky__inner {
		grid-template-columns: minmax(0, 1fr) minmax(
				var(--cj-sticky-phone-cta-min-w),
				var(--cj-sticky-phone-cta-max)
			);
	}

	.cj-cart-sticky__picker-label .cj-cart-sticky__off-badge,
	.cj-cart-sticky__picker-label .cj-cart-sticky__once-badge,
	.cj-cart-sticky__picker-label .cj-cart-sticky__promise-badge {
		font-size: var(--cj-sticky-phone-badge-fs) !important;
		letter-spacing: 0;
		margin: 0;
		padding: 3px 2px 1px !important;
	}

	.cj-cart-sticky__cta {
		min-width: 0;
		max-width: none;
		width: 100%;
		margin: 0;
		padding: 0;
		font-size: calc(0.75rem * var(--cj-sticky-scale)) !important;
	}
}

/*
 * Chromium even-pad via @supports not (-webkit-touch-callout) removed —
 * that query was resetting Safari back to 2px (looked like “no change”).
 */

/* Desktop radio courses (Astro parity); picker stays mobile-only */
.cj-cart-sticky__courses {
	display: none !important;
}

.cj-cart-sticky__course {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	min-width: 0;
	min-height: 44px;
	padding: 4px 8px 4px 10px;
	border: 0;
	background: transparent;
	color: #666;
	cursor: pointer;
	text-align: left;
	transition: color 0.15s ease;
}

.cj-cart-sticky__course + .cj-cart-sticky__course {
	border-left: 1px solid var(--line-gray);
	padding-left: 14px;
}

.cj-cart-sticky__course.is-active {
	color: var(--dark-ink);
}

.cj-cart-sticky__course:not(.is-active) .cj-cart-sticky__price-num,
.cj-cart-sticky__course:not(.is-active) .cj-cart-sticky__price-unit {
	color: #666;
}

.cj-cart-sticky__course-heading {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
	max-width: 100%;
}

.cj-cart-sticky__radio {
	position: relative;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	border: 2px solid #ccc;
	border-radius: 50%;
	background: #fff;
	transition: border-color 0.15s ease;
}

.cj-cart-sticky__radio::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--dark-ink);
	transform: translate(-50%, -50%) scale(0);
	transition: transform 0.2s cubic-bezier(0.34, 1.25, 0.64, 1);
}

.cj-cart-sticky__course.is-active .cj-cart-sticky__radio {
	border-color: var(--dark-ink);
}

.cj-cart-sticky__course.is-active .cj-cart-sticky__radio::after {
	transform: translate(-50%, -50%) scale(1);
}

.cj-cart-sticky__course-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	min-width: 0;
	margin-left: 26px;
}

.cj-cart-sticky__ship-stack,
.cj-cart-sticky__off-badge--stacked,
.cj-cart-sticky__once-badge--desktop {
	display: none;
}

.cj-cart-sticky__course-price {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	gap: 0;
	min-height: 1.2rem;
	line-height: 1;
}

.cj-cart-sticky__course.is-active .cj-cart-sticky__price-num.is-accent,
.cj-cart-sticky__course.is-active .cj-cart-sticky__price-unit.is-accent {
	color: var(--accent-red);
}

.cj-cart-sticky__course .cj-cart-sticky__price-unit {
	font-size: 0.75rem;
	font-weight: 700;
	margin-left: 0.04em;
	color: var(--muted-ink);
	white-space: nowrap;
}

.cj-cart-sticky__course .cj-cart-sticky__price-unit.is-accent {
	color: var(--accent-red);
}

.cj-cart-sticky__course .cj-cart-sticky__price-tax {
	margin-left: 0;
	letter-spacing: -0.02em;
}

@media screen and (min-width: 768px) {
	.cj-cart-sticky {
		padding: 0 40px;
		background: transparent;
		box-shadow: none;
		bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	}

	.cj-cart-sticky__inner {
		gap: 14px;
		align-items: stretch;
		grid-template-columns: auto minmax(0, 1fr);
		width: 100%;
		max-width: 1200px;
		margin: 0 auto;
		padding: 0 0 0 14px;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		/* visible: keep ::before float shadow; yellow ring is border (not clipped) */
		overflow: visible;
	}

	.cj-cart-sticky__inner::before {
		/* Astro parity: left 8px; right ≈ half of 52px bar (hemisphere). Avoid 999px (starves left). */
		border-radius: 8px 26px 26px 8px;
	}

	.cj-cart-sticky__picker {
		display: none;
	}

	.cj-cart-sticky__courses {
		display: flex !important;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		width: auto;
		max-width: none;
	}

	.cj-cart-sticky__course {
		display: grid;
		grid-template-columns: auto auto;
		align-items: center;
		column-gap: 8px;
		min-height: 0;
		padding: 3px 12px 3px 10px;
	}

	.cj-cart-sticky__course-heading {
		grid-column: 1;
		gap: 10px;
		flex-shrink: 0;
		align-self: center;
	}

	.cj-cart-sticky__course-meta {
		grid-column: 2;
		margin-left: 0;
		flex-shrink: 0;
		flex-direction: row;
		align-items: center;
		gap: 6px;
	}

	.cj-cart-sticky__course-price {
		line-height: 1;
		margin-top: -1px;
	}

	.cj-cart-sticky__off-badge--inline,
	.cj-cart-sticky__promise-badge--mobile,
	.cj-cart-sticky__once-badge--mobile {
		display: none;
	}

	.cj-cart-sticky__ship-stack {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 2px;
		flex-shrink: 0;
		height: 0;
		overflow: visible;
		align-self: center;
	}

	.cj-cart-sticky__off-badge--stacked {
		display: inline-flex;
	}

	.cj-cart-sticky__once-badge--desktop {
		display: inline-flex;
	}

	.cj-cart-sticky__radio {
		width: 22px;
		height: 22px;
	}

	.cj-cart-sticky__radio::after {
		width: 10px;
		height: 10px;
	}

	.cj-cart-sticky__courses .cj-cart-sticky__course-name {
		font-size: 0.9375rem;
		line-height: 1.15;
	}

	.cj-cart-sticky__courses .cj-cart-sticky__price-num {
		font-size: 1.75rem;
	}

	.cj-cart-sticky__courses .cj-cart-sticky__price-unit {
		font-size: 0.8125rem;
	}

	.cj-cart-sticky__courses .cj-cart-sticky__off-badge {
		font-size: 0.6875rem;
	}

	.cj-cart-sticky__courses .cj-cart-sticky__promise-badge,
	.cj-cart-sticky__courses .cj-cart-sticky__once-badge {
		align-self: center;
	}

	.cj-cart-sticky__cta {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		align-self: stretch;
		width: 100%;
		min-width: 0;
		max-width: none;
		min-height: 52px;
		margin: 0;
		padding: 14px 22px;
		border: 1px solid var(--vitamin-deep, #e8a030) !important;
		border-radius: 0 26px 26px 0;
		background: var(--vitamin, #f8b848) !important;
		color: var(--dark-ink, #1a1a1a) !important;
		box-shadow: none;
		white-space: nowrap;
		font-size: 1rem !important;
	}

	.cj-cart-sticky__cta:hover,
	.cj-cart-sticky__cta:active {
		box-shadow: none;
		background: #f5ad38 !important;
		color: var(--dark-ink, #1a1a1a) !important;
	}

	.cj-cart-sticky.is-regular-only .cj-cart-sticky__inner {
		max-width: 720px;
	}
}

body:has(.cj-cart-sticky.is-visible) {
	padding-bottom: 104px;
}

/* --------------------------------------------------------------------------
   Regular-only (都度のみ) — Astro regularOnly chrome on #add-shop-cart-form
   -------------------------------------------------------------------------- */

body:has([data-cj-cart-sticky]) .js-floating-add-cart-button__floating {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

.cj-cart--regular-only[data-cj-regular-only] {
	--vitamin: #f8b848;
	--vitamin-deep: #e8a030;
	--dark-ink: #1a1a1a;
	--accent-red: #b54a3a;
	--gold-bg: #fcfbf8;
	--muted-ink: #4a4a4a;
	--course-border: #ddd6cb;
	--shadow-soft: 0 2px 8px rgba(26, 26, 26, 0.08);
	--shadow-cta: 0 3px 12px rgba(232, 160, 48, 0.28);
	--cj-font-sans: var(--font-family-text-body, "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif);
	color: var(--dark-ink);
	font-family: var(--cj-font-sans);
	font-kerning: normal;
	font-optical-sizing: auto;
	font-feature-settings: "palt" 1, "kern" 1;
	text-spacing-trim: trim-both;
	-webkit-font-smoothing: antialiased;
}

/* #product-description has no margin-bottom; banner <img> sits flush on .cj-cart__regular-only */
.cj-cart--regular-only .cj-cart__regular-only {
	margin: 28px 0 12px;
}

.cj-cart--regular-only .cj-cart__option.is-regular-only {
	display: block;
	padding: 12px 16px;
	border: 2px solid var(--dark-ink);
	border-radius: 4px;
	background: var(--gold-bg);
	box-shadow: var(--shadow-soft);
}

.cj-cart--regular-only .cj-cart__option-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.5rem;
}

.cj-cart--regular-only .cj-cart__option-title {
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: var(--dark-ink) !important;
	white-space: nowrap;
	flex-shrink: 0;
}

.cj-cart--regular-only .cj-cart__option-ship {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	flex-shrink: 1;
	min-width: 0;
}

.cj-cart--regular-only .cj-cart__option-badges {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	flex-shrink: 0;
}

.cj-cart--regular-only .cj-cart__ship-chip {
	font-size: 0.75rem !important;
	font-weight: 600;
	color: #444 !important;
	border: 1px solid #b8b0a4;
	padding: 1px 6px;
	border-radius: 2px;
}

.cj-cart--regular-only .cj-cart__ship-chip.is-fee {
	color: #555 !important;
	border-color: #c5c0b8;
	font-weight: 600;
}

.cj-cart--regular-only .cj-cart__ship-rule-hint {
	margin: 4px 0 0 !important;
	padding: 0 !important;
	font-size: 0.6875rem !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	color: var(--muted-ink, #777) !important;
	text-align: right;
	width: 100%;
	white-space: nowrap;
}

.cj-cart--regular-only .cj-cart__option-content {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1;
}

.cj-cart--regular-only .cj-cart__panel-price {
	display: flex !important;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	gap: 2px;
	min-height: 64px;
	margin: 0 0 8px !important;
	padding: 8px 0 4px;
	text-align: right;
}

.cj-cart--regular-only .cj-cart__strike-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	min-height: 17px;
	margin: 0;
	font-size: 0.8125rem !important;
	line-height: 1 !important;
	color: #666 !important;
}

.cj-cart--regular-only .cj-cart__strike-line-spacer {
	display: block;
	min-height: 17px;
	height: 17px;
}

.cj-cart--regular-only .cj-cart__strike-text {
	color: #707070 !important;
	text-decoration: line-through !important;
	text-decoration-color: #707070 !important;
	text-decoration-thickness: 1.5px !important;
	font-size: 0.8125rem !important;
}

.cj-cart--regular-only .cj-cart__main-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-end;
	gap: 6px;
}

.cj-cart--regular-only .cj-cart__ship-label {
	margin: 0 4px 0 0;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	color: #333 !important;
}

.cj-cart--regular-only .cj-cart__price-value {
	font-size: 2.5rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: var(--dark-ink) !important;
	font-variant-numeric: tabular-nums;
}

.cj-cart--regular-only .cj-cart__price-unit {
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	color: var(--dark-ink) !important;
}

.cj-cart--regular-only .cj-cart__price-unit small {
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	color: #444 !important;
}

.cj-cart--regular-only .cj-cart__sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: 0 !important;
}

.cj-cart--regular-only .js-floating-add-cart-button__fixed .cj-cart__cta,
.cj-cart--regular-only button.cj-cart__cta {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	min-height: 58px !important;
	height: auto !important;
	margin-top: 10px !important;
	padding: 16px 22px !important;
	border: 1px solid var(--vitamin-deep, #e8a030) !important;
	border-radius: 6px 26px 26px 6px !important;
	background: var(--vitamin, #f8b848) !important;
	color: var(--dark-ink, #1a1a1a) !important;
	appearance: none;
	-webkit-appearance: none;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	box-shadow: var(--shadow-cta);
}

.cj-cart--regular-only .js-floating-add-cart-button__fixed .cj-cart__cta:hover,
.cj-cart--regular-only button.cj-cart__cta:hover {
	background: #f5ad38 !important;
	border-color: #e09828 !important;
	color: var(--dark-ink) !important;
}

.cj-cart--regular-only .cj-cart__fineprint {
	margin: 8px 0 0 !important;
	padding-left: 1em;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	color: var(--muted-ink) !important;
	line-height: 1.5 !important;
}

.cj-cart-sticky.is-regular-only .cj-cart-sticky__regular-summary {
	min-width: 0;
	display: flex;
	align-items: center;
	padding: 7px 12px;
	min-height: 52px;
	box-sizing: border-box;
	background: transparent;
	border-radius: 0;
}

.cj-cart-sticky.is-regular-only .cj-cart-sticky__inner {
	align-items: stretch;
}

@media screen and (max-width: 480px) {
	.cj-cart--regular-only .cj-cart__price-value {
		font-size: 2rem !important;
	}
}

/* --------------------------------------------------------------------------
   Bottom in-page cart mirror (Astro repurchase)
   Same p-product_content grid as top (50% img / 40% info); cart = info column width.
   Only difference vs top purchase column: no detail text (name + cart chrome).
   -------------------------------------------------------------------------- */

.cj-cart-bottom {
	--vitamin: #f8b848;
	--vitamin-deep: #e8a030;
	--dark-ink: #1a1a1a;
	--accent-red: #b54a3a;
	--gold-bg: #fcfbf8;
	--muted-ink: #4a4a4a;
	--line-gray: #e2ded7;
	--course-border: #ddd6cb;
	--shadow-soft: 0 2px 8px rgba(26, 26, 26, 0.08);
	--shadow-cta: 0 3px 12px rgba(232, 160, 48, 0.28);
	--shadow-cta-hover: 0 4px 14px rgba(232, 160, 48, 0.32);
	--shadow-cta-active: 0 1px 6px rgba(232, 160, 48, 0.2);
	--cj-font-sans: var(
		--font-family-text-body,
		"游ゴシック体",
		"Yu Gothic",
		YuGothic,
		"ヒラギノ角ゴ Pro",
		"Hiragino Kaku Gothic Pro",
		"メイリオ",
		Meiryo,
		"MS Pゴシック",
		"MS PGothic",
		sans-serif
	);
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 40px 0 56px;
	border-top: 1px solid #ddd;
	background: linear-gradient(180deg, #faf8f4 0%, #fff 48%, #fff 100%);
	color: var(--dark-ink);
	font-family: var(--cj-font-sans);
	font-kerning: normal;
	font-optical-sizing: auto;
	font-feature-settings: "palt" 1, "kern" 1;
	text-spacing-trim: trim-both;
	-webkit-font-smoothing: antialiased;
}

.cj-cart-bottom *,
.cj-cart-bottom *::before,
.cj-cart-bottom *::after {
	box-sizing: border-box;
}

/* Reuse stock .p-product_content__inner (max-width 1200, 50%/40%); center vertically like Astro */
.cj-cart-bottom .p-product_content__inner.cj-cart-bottom__frame {
	align-items: center;
}

.cj-cart-bottom .c-product_img {
	width: 100%;
}

.cj-cart-bottom__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #fff;
}

.cj-cart-bottom .c-product_info__title {
	margin: 0;
}

/* Same column width as top cart — fill the info column */
.cj-cart-bottom__cart {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 18px 0 0;
}

.cj-cart-bottom__legend {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.cj-cart-bottom__options {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 16px;
}

/* Match top #co-selling tab cards */
.cj-cart-bottom__option {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 2px solid var(--course-border);
	border-radius: 4px;
	background: #fff;
	color: var(--dark-ink);
	text-align: left;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
	transition:
		border-color 0.2s ease,
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}

.cj-cart-bottom__option.is-subscription {
	background: #fff;
}

.cj-cart-bottom__option.is-active {
	background: var(--gold-bg);
	border-color: var(--dark-ink);
	box-shadow: var(--shadow-soft);
}

.cj-cart-bottom__option.is-regular-only {
	cursor: default;
	pointer-events: none;
}

.cj-cart-bottom__badge-gold {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35em;
	width: 100%;
	padding: 5px 8px;
	background: #9a9488;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.04em;
	line-height: 1.3;
}

.cj-cart-bottom__badge-gold::before {
	content: "✓";
	font-weight: 700;
	font-size: 0.8125rem;
	line-height: 1;
	flex-shrink: 0;
}

.cj-cart-bottom__option.is-active .cj-cart-bottom__badge-gold {
	background: var(--dark-ink);
}

.cj-cart-bottom__option-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	padding: 12px 16px 14px;
}

.cj-cart-bottom__radio {
	position: relative;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	margin-top: 0;
	border: 2px solid #ccc;
	border-radius: 50%;
	background: #fff;
}

.cj-cart-bottom__radio::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--dark-ink);
	transform: translate(-50%, -50%) scale(0);
	transition: transform 0.22s cubic-bezier(0.34, 1.25, 0.64, 1);
}

.cj-cart-bottom__option.is-active .cj-cart-bottom__radio {
	border-color: var(--dark-ink);
}

.cj-cart-bottom__option.is-active .cj-cart-bottom__radio::after {
	transform: translate(-50%, -50%) scale(1);
}

@media (prefers-reduced-motion: reduce) {
	.cj-cart-bottom__radio::after {
		transition: none;
	}
}

.cj-cart-bottom__option-body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cj-cart-bottom__option-top {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 6px;
	width: 100%;
}

.cj-cart-bottom__option-title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: #555;
	white-space: nowrap;
	flex-shrink: 0;
}

.cj-cart-bottom__option-ship {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	flex-shrink: 1;
	min-width: 0;
}

.cj-cart-bottom__option-badges {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	flex-shrink: 0;
	min-width: 0;
}

.cj-cart-bottom__option.is-active .cj-cart-bottom__option-title {
	color: var(--dark-ink);
}

.cj-cart-bottom__off-badge {
	display: inline-block;
	padding: 1px 5px;
	border-radius: 2px;
	background: var(--accent-red);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.35;
	white-space: nowrap;
}

.cj-cart-bottom__ship-chip {
	font-size: 0.75rem;
	font-weight: 600;
	color: #444;
	border: 1px solid #b8b0a4;
	padding: 1px 5px;
	border-radius: 2px;
	line-height: 1.35;
	white-space: nowrap;
}

.cj-cart-bottom__ship-chip.is-fee {
	color: #555;
	border-color: #c5c0b8;
	font-weight: 600;
}

.cj-cart-bottom__ship-rule-hint {
	margin: 0;
	padding: 0;
	font-size: 0.6875rem;
	font-weight: 500;
	line-height: 1.45;
	color: var(--muted-ink, #777);
	text-align: right;
	width: 100%;
	white-space: nowrap;
}

.cj-cart-bottom__benefits {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
	text-align: left;
	width: 100%;
}

.cj-cart-bottom__benefits li {
	display: flex;
	align-items: baseline;
	gap: 7px;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	font-weight: 700;
	color: #555;
	line-height: 1.5;
	letter-spacing: 0.02em;
}

.cj-cart-bottom__benefits li::before {
	content: "✓";
	flex-shrink: 0;
	color: #666;
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1;
}

.cj-cart-bottom__option.is-active .cj-cart-bottom__benefits li,
.cj-cart-bottom__option.is-active .cj-cart-bottom__benefits li::before {
	color: var(--dark-ink);
}

.cj-cart-bottom__benefits li sup {
	font-size: 0.72em;
	font-weight: 700;
	line-height: 1;
	vertical-align: baseline;
	position: relative;
	top: -0.2em;
}

.cj-cart-bottom__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	gap: 2px;
	min-height: 64px;
	margin: 0 0 10px;
	padding: 8px 0 4px;
	text-align: right;
}

.cj-cart-bottom__price-view[hidden] {
	display: none !important;
}

.cj-cart-bottom__strike-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	min-height: 17px;
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1;
	color: #666;
}

.cj-cart-bottom__strike-line-spacer {
	display: block;
	min-height: 17px;
	height: 17px;
}

.cj-cart-bottom__strike-text {
	color: #707070;
	text-decoration: line-through;
	text-decoration-color: #707070;
	text-decoration-thickness: 1.5px;
	font-size: 0.8125rem;
}

.cj-cart-bottom__price-off-tag {
	background: var(--accent-red);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	padding: 2px 5px;
	border-radius: 2px;
	line-height: 1;
	text-decoration: none;
}

.cj-cart-bottom__main-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-end;
	gap: 6px;
	min-height: 40px;
	line-height: 1;
}

.cj-cart-bottom__ship-label {
	margin: 0 4px 0 0;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	color: #333;
}

.cj-cart-bottom__ship-label--placeholder {
	visibility: hidden;
	pointer-events: none;
}

.cj-cart-bottom__main-price:has(.cj-cart-bottom__price-value.is-accent) .cj-cart-bottom__ship-label {
	color: var(--accent-red);
}

.cj-cart-bottom__price-value {
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	color: var(--dark-ink);
}

.cj-cart-bottom__price-value.is-accent {
	color: var(--accent-red);
}

.cj-cart-bottom__price-unit {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--dark-ink);
}

.cj-cart-bottom__price-value.is-accent + .cj-cart-bottom__price-unit {
	color: var(--accent-red);
}

.cj-cart-bottom__price-unit small {
	font-size: 0.75rem;
	font-weight: 600;
	color: #444;
}

.cj-cart-bottom__price-value.is-accent + .cj-cart-bottom__price-unit small {
	color: var(--accent-red);
}

/* Match top panel vitamin CTA (stadium right) */
.cj-cart-bottom__cta {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 58px;
	margin: 0;
	padding: 16px 22px;
	border: 1px solid var(--vitamin-deep) !important;
	border-radius: 6px 26px 26px 6px !important;
	background: var(--vitamin) !important;
	color: var(--dark-ink) !important;
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: var(--shadow-cta);
	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		transform 0.15s ease,
		box-shadow 0.18s ease;
}

.cj-cart-bottom__cta:hover {
	background: #f5ad38 !important;
	border-color: #e09828 !important;
	box-shadow: var(--shadow-cta-hover);
}

.cj-cart-bottom__cta:active {
	transform: translateY(1px);
	background: #efaa35 !important;
	box-shadow: var(--shadow-cta-active);
}

.cj-cart-bottom__cancel-note {
	margin: 10px 0 0;
	padding-left: 1em;
	text-indent: -1em;
	font-size: 0.6875rem;
	font-weight: 500;
	color: var(--muted-ink);
	text-align: left;
	line-height: 1.55;
}

.cj-cart-bottom__regular .cj-cart-bottom__option {
	margin-bottom: 0;
}

.cj-cart-bottom__regular .cj-cart-bottom__price {
	margin-top: 0;
}

@media screen and (min-width: 720px) {
	.cj-cart-bottom {
		padding: 40px 0 56px;
	}
}

@media screen and (max-width: 719px) {
	.cj-cart-bottom {
		padding: 32px 0 48px;
	}

	.cj-cart-bottom__cart {
		margin-top: 18px;
	}

	.cj-cart-bottom__price-value {
		font-size: 2rem;
	}
}
