.woocommerce .woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce nav.woocommerce-pagination {
	font-family: var(--ei-ui-font);
}

.ei-shop-shell {
	background:
		radial-gradient(circle at 78% 8%, rgba(216, 167, 67, 0.12), transparent 28%),
		radial-gradient(circle at 14% 24%, rgba(139, 92, 246, 0.12), transparent 30%);
}

.ei-woocommerce-wrapper {
	position: relative;
}

.woocommerce .woocommerce-breadcrumb {
	color: var(--ei-muted);
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--ei-link);
}

.ei-wc-breadcrumb {
	margin-bottom: 16px;
}

.ei-wc-breadcrumb__divider {
	display: inline-flex;
	margin-inline: 8px;
	color: rgba(216, 167, 67, 0.58);
}

.woocommerce .term-description {
	max-width: 720px;
	color: var(--ei-muted);
}

.ei-wc-loop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 22px 0 18px;
	padding: 12px 14px;
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: var(--ei-radius);
	background: rgba(14, 13, 28, 0.82);
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	float: none;
	margin: 0;
	color: var(--ei-muted);
}

.woocommerce .woocommerce-ordering select {
	min-height: 40px;
	padding: 8px 36px 8px 12px;
	border: 1px solid rgba(216, 167, 67, 0.36);
	border-radius: var(--ei-radius);
	background: #0b0915;
	color: var(--ei-text);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 22px 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0 0 16px;
	overflow: hidden;
	/* Column layout so the price/button anchor to the card bottom: titles wrap to
	   one or two lines, and without this the buttons sit at different heights. */
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(216, 167, 67, 0.48);
	border-radius: var(--ei-radius);
	background:
		linear-gradient(180deg, rgba(17, 16, 31, 0.84), rgba(8, 7, 18, 0.96)),
		radial-gradient(circle at 50% 0, rgba(216, 167, 67, 0.12), transparent 36%);
	box-shadow: 0 14px var(--ei-shadow-strength) rgba(0, 0, 0, 0.2);
	text-align: center;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	border-color: rgba(240, 191, 88, 0.82);
	box-shadow: 0 18px calc(var(--ei-shadow-strength) + 10px) rgba(0, 0, 0, 0.28), 0 0 26px rgba(216, 167, 67, 0.12);
	transform: translateY(-2px);
}

.ei-wc-product-visual {
	display: grid;
	place-items: center;
	min-height: 210px;
	padding: 14px;
	background: radial-gradient(circle at 50% 48%, rgba(216, 167, 67, 0.2), transparent 44%);
}

.woocommerce ul.products li.product a img {
	width: 100%;
	height: 210px;
	margin: 0;
	object-fit: cover;
	border-radius: calc(var(--ei-radius) - 2px);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 12px 14px 4px;
	color: #f2d69b;
	font-family: var(--ei-heading-font);
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1.2;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--ei-primary);
	font-family: var(--ei-ui-font);
	font-weight: 800;
}

.woocommerce .star-rating,
.woocommerce p.stars a {
	color: var(--ei-primary);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit,
.woocommerce #payment #place_order {
	border: 1px solid var(--ei-primary);
	border-radius: var(--ei-radius);
	background: linear-gradient(180deg, #f2d175, var(--ei-primary) 58%, #9d6e23);
	color: #120c07;
	font-family: var(--ei-ui-font);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #payment #place_order:hover {
	background: var(--ei-primary);
	color: #120c07;
}

/* The loop link wraps image + title + price; let it absorb the spare height so a
   one-line title never lifts the price above its two-line neighbours. */
.woocommerce ul.products li.product > a.woocommerce-loop-product__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
}

.woocommerce ul.products li.product .price {
	margin-top: auto;
	padding-top: 4px;
}

.woocommerce ul.products li.product .button {
	margin-top: 10px;
	/* Flex children stretch by default; keep the pill its natural width. */
	align-self: center;
}

.woocommerce ul.products li.product .added_to_cart {
	display: inline-flex;
	align-self: center;
	margin-left: 8px;
	font-family: var(--ei-ui-font);
	font-size: 0.76rem;
	font-weight: 800;
	text-transform: uppercase;
}

.woocommerce span.onsale,
.ei-sale-badge {
	min-width: auto;
	min-height: auto;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--ei-danger);
	color: #fff;
	font-family: var(--ei-ui-font);
	font-size: 0.7rem;
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(420px, 0.95fr) minmax(360px, 1.05fr);
	gap: 34px;
	align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
	float: none !important;
	width: auto !important;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce div.product .woocommerce-tabs,
.woocommerce .related.products,
.woocommerce .upsells.products {
	padding: 22px;
	border: 1px solid rgba(216, 167, 67, 0.42);
	border-radius: var(--ei-radius);
	background: rgba(17, 16, 31, 0.78);
}

.woocommerce div.product div.summary {
	position: sticky;
	top: 96px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images .woocommerce-product-gallery__image a {
	display: block;
	width: 100%;
}

.woocommerce div.product div.images img {
	display: block;
	width: 100%;
	border: 1px solid rgba(216, 167, 67, 0.44);
	border-radius: var(--ei-radius);
	background: var(--ei-card);
}

.woocommerce div.product .product_title {
	color: #f4d38c;
	font-family: var(--ei-heading-font);
	font-size: clamp(2rem, 4vw, 3.4rem);
	font-weight: 500;
	line-height: 1.06;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid rgba(216, 167, 67, 0.22);
}

.woocommerce .quantity .qty {
	min-height: 40px;
	border: 1px solid rgba(216, 167, 67, 0.42);
	border-radius: var(--ei-radius);
	background: rgba(255, 255, 255, 0.05);
	color: var(--ei-text);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: #ead8b6;
}

.woocommerce div.product .product_meta {
	display: grid;
	gap: 5px;
	margin-top: 18px;
	color: var(--ei-muted);
	font-family: var(--ei-ui-font);
	font-size: 0.8rem;
}

.ei-wc-energy-note {
	display: grid;
	gap: 9px;
	margin: 18px 0;
}

.ei-wc-energy-note span {
	display: flex;
	align-items: center;
	gap: 9px;
	color: #f3d38b;
	font-family: var(--ei-ui-font);
	font-size: 0.82rem;
	font-weight: 700;
	text-transform: uppercase;
}

.ei-wc-energy-note svg {
	width: 21px;
	height: 21px;
	color: var(--ei-primary);
}

.ei-wc-assurance {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 24px 0;
}

.ei-wc-assurance div {
	padding: 18px;
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: var(--ei-radius);
	background: rgba(14, 13, 28, 0.82);
}

.ei-wc-assurance svg {
	width: 34px;
	height: 34px;
	color: var(--ei-primary);
}

.ei-wc-assurance h2 {
	margin: 10px 0 5px;
	color: #f3d38b;
	font-family: var(--ei-heading-font);
	font-size: 1.08rem;
	font-weight: 500;
}

.ei-wc-assurance p {
	margin: 0;
	color: var(--ei-muted);
}

.woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 18px;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: var(--ei-radius);
	background: rgba(255, 255, 255, 0.04);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: rgba(216, 167, 67, 0.16);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--ei-text);
	font-family: var(--ei-ui-font);
	font-size: 0.78rem;
	text-transform: uppercase;
}

.woocommerce-tabs,
.woocommerce-cart-form,
.cart-collaterals,
.woocommerce-checkout-review-order,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	padding: 22px;
	border: 1px solid rgba(216, 167, 67, 0.42);
	border-radius: var(--ei-radius);
	background: rgba(17, 16, 31, 0.78);
}

.woocommerce table.shop_table {
	border-color: rgba(216, 167, 67, 0.32);
	border-radius: var(--ei-radius);
	color: var(--ei-text);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border-color: rgba(216, 167, 67, 0.2);
}

.woocommerce table.shop_table th {
	color: #f3d38b;
	font-family: var(--ei-ui-font);
	font-size: 0.78rem;
	text-transform: uppercase;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	padding: 11px 12px;
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: var(--ei-radius);
	background: rgba(255, 255, 255, 0.05);
	color: var(--ei-text);
}

.select2-container--default .select2-selection--single {
	height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--ei-text);
	line-height: 22px;
}

.select2-dropdown {
	border-color: rgba(216, 167, 67, 0.36);
	background: #0b0915;
	color: var(--ei-text);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--ei-primary);
	background: rgba(17, 16, 31, 0.94);
	color: var(--ei-text);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--ei-primary);
}

.woocommerce-error::before {
	color: var(--ei-danger);
}

.woocommerce-checkout .col2-set,
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr);
	gap: 22px;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	float: none;
	width: auto;
}

.woocommerce-checkout-review-order {
	align-self: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 10px 12px;
	border: 1px solid rgba(216, 167, 67, 0.28);
	border-radius: var(--ei-radius);
	background: rgba(255, 255, 255, 0.035);
	font-family: var(--ei-ui-font);
	font-size: 0.78rem;
	font-weight: 800;
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: rgba(216, 167, 67, 0.16);
	color: #fff0bb;
}

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
	padding: 20px;
	border: 1px solid rgba(216, 167, 67, 0.42);
	border-radius: var(--ei-radius);
	background: rgba(17, 16, 31, 0.78);
}

.woocommerce .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.woocommerce .woocommerce-Address {
	padding: 18px;
	border: 1px solid rgba(216, 167, 67, 0.32);
	border-radius: var(--ei-radius);
	background: rgba(255, 255, 255, 0.035);
}

@media (max-width: 992px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce div.product,
	.woocommerce-checkout .col2-set,
	.woocommerce-account .woocommerce,
	.ei-wc-assurance {
		grid-template-columns: 1fr;
	}

	.woocommerce div.product div.summary {
		position: static;
	}
}

@media (max-width: 576px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.ei-wc-loop-toolbar,
	.woocommerce div.product form.cart {
		display: grid;
	}

	.woocommerce .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.woocommerce button.button.alt,
	.woocommerce a.button.alt,
	.woocommerce input.button.alt,
	.woocommerce #respond input#submit,
	.woocommerce #payment #place_order {
		width: 100%;
		justify-content: center;
		text-align: center;
	}
}

/* ============================================================
   Single product — re-tuned 2026-07-24 (客户: 紫色加金色，之前整块金底太突兀).
   Purple is now the ground everywhere — hero, buying panel, story panels all
   sit on the same dark-violet texture — and gold is reserved for the accents
   that matter: price, the buy button, frames, hairlines and the banner badge.
   One continuous surface instead of a purple page with a gold slab in it.
   ============================================================ */
body.single-product {
	--wc-gold-ink: #24140b;
	--wc-gold-ink-soft: #4a2f18;
	--wc-gold-line: rgba(36, 20, 11, 0.34);
	--wc-purple-line: rgba(216, 167, 67, 0.32);
	--wc-purple-text: #f6e7c8;
	--wc-purple-title: #f4ddaa;
	--wc-gold-panel: url("../images/intention-bracelets/shared/gold-panel.jpg?v=20260721");
	--wc-hero-bg: url("../images/product/product-hero-bg.jpg?v=20260721");
	--wc-purple-panel: url("../images/product/purple-panel-bg.jpg?v=20260721");
}

body.single-product .ei-site-main {
	background:
		radial-gradient(circle at 18% 8%, rgba(157, 97, 209, 0.14), transparent 32%),
		linear-gradient(180deg, #1a0722 0%, #16071d 46%, #0d0413 100%);
}

/* ---------- Hero: deep purple, gold type ---------- */
body.single-product .ei-page-hero {
	padding: 86px 0 70px;
	border-bottom: 1px solid var(--wc-purple-line);
	background:
		linear-gradient(90deg, rgba(16, 5, 22, 0.92) 0%, rgba(16, 5, 22, 0.6) 55%, rgba(16, 5, 22, 0.34) 100%),
		var(--wc-hero-bg) center / cover no-repeat,
		#16071d;
}

body.single-product .ei-page-hero::before {
	opacity: 0.32;
}

body.single-product .ei-page-hero .ei-kicker {
	color: #d8a743;
	letter-spacing: 0.16em;
}

body.single-product .ei-page-hero h1 {
	max-width: 22ch;
	color: var(--wc-purple-title);
}

/* A gold hairline under the title ties the hero to the gold panel below. */
body.single-product .ei-page-hero h1::after {
	display: block;
	width: 92px;
	height: 2px;
	margin-top: 22px;
	background: linear-gradient(90deg, #d8a743, rgba(216, 167, 67, 0));
	content: "";
}

body.single-product .ei-page-hero p {
	max-width: 56ch;
	color: var(--wc-purple-text);
}

/* ---------- Buying panel: the same purple texture as the story panels ---------- */
body.single-product.woocommerce div.product {
	padding: 36px clamp(20px, 3vw, 44px);
	border: 1px solid var(--wc-purple-line);
	border-radius: var(--ei-radius);
	color: var(--wc-purple-text);
	background-color: #1b0824;
	background-image: linear-gradient(rgba(20, 7, 27, 0.78), rgba(20, 7, 27, 0.78)), var(--wc-purple-panel);
	background-position: center;
	background-size: cover;
	align-items: stretch;
	/* Spacing has exactly one source; child margins stacked on the grid's row-gap
	   previously gave 90/66/81px between blocks. */
	row-gap: 34px;
}

body.single-product.woocommerce div.product > * {
	margin-block: 0;
}

/* The hero already carries the product name. */
body.single-product.woocommerce div.product .summary > .product_title {
	display: none;
}

/* Gallery: dark mount, thin gold frame — the photography is shot on dark stone. */
body.single-product.woocommerce div.product div.images {
	padding: 16px;
	background: rgba(22, 10, 5, 0.92);
	border: 1px solid rgba(216, 167, 67, 0.45);
	border-radius: 14px;
	box-shadow: 0 18px 44px rgba(28, 14, 4, 0.32);
}

body.single-product.woocommerce div.product div.images img {
	background: #1c0a26;
	border: 1px solid rgba(216, 167, 67, 0.28);
	border-radius: 10px;
}

/* The photo fills the mount: the columns are stretched equal, and a landscape
   shot would otherwise leave a dead dark band under itself. */
body.single-product.woocommerce div.product div.images {
	display: flex;
	flex-direction: column;
}

body.single-product.woocommerce div.product div.images .flex-viewport {
	flex: 1 1 auto;
	height: auto !important; /* flexslider writes an inline pixel height */
	min-height: 0;
}

body.single-product.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
body.single-product.woocommerce div.product div.images .woocommerce-product-gallery__image,
body.single-product.woocommerce div.product div.images .woocommerce-product-gallery__image > a {
	display: block;
	height: 100%;
}

body.single-product.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Gallery thumbnails: a gold-framed filmstrip under the main photo. */
body.single-product.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
	flex: 1 1 0;
	min-width: 0;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid rgba(216, 167, 67, 0.28);
	border-radius: 8px;
	opacity: 0.5;
	cursor: pointer;
	transition: opacity 0.2s ease, border-color 0.2s ease;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs img:hover {
	opacity: 0.85;
}

body.single-product.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: rgba(216, 167, 67, 0.8);
}

/* Custom Studio products embed the bead configurator in the summary column —
   a 2300px-tall summary next to a small banner made the two-column grid absurd.
   Stack instead: banner strip on top, purchase card with the configurator below. */
body.single-product.woocommerce div.product.product_cat-custom-studio {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

body.single-product.woocommerce div.product.product_cat-custom-studio div.images,
body.single-product.woocommerce div.product.product_cat-custom-studio div.summary {
	/* The base section forces `width: auto !important` on these two. */
	width: min(100%, 920px) !important;
	margin-inline: auto;
}

body.single-product.woocommerce div.product.product_cat-custom-studio div.images .woocommerce-product-gallery__image img {
	height: auto;
	object-fit: contain;
}

/* ---------- Purchase card: a slightly lifted purple surface, gold-framed ---------- */
body.single-product.woocommerce div.product div.summary {
	position: static;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
	padding: 32px clamp(22px, 2.2vw, 34px);
	background: linear-gradient(180deg, rgba(53, 22, 68, 0.66), rgba(34, 12, 44, 0.55));
	border: 1px solid rgba(216, 167, 67, 0.4);
	border-radius: 14px;
	box-shadow: inset 0 1px 0 rgba(244, 221, 170, 0.12);
}

body.single-product.woocommerce div.product .summary p,
body.single-product.woocommerce div.product .summary li,
body.single-product.woocommerce div.product .product_meta,
body.single-product.woocommerce div.product .product_meta a {
	color: var(--wc-purple-text);
}

body.single-product.woocommerce div.product p.price,
body.single-product.woocommerce div.product .summary .price,
body.single-product.woocommerce div.product .summary .price .amount {
	color: #f0c56e;
	font-family: var(--ei-heading-font);
	font-size: 3rem;
	font-weight: 600;
	line-height: 1;
}

/* Gold rule under the price, echoing the hero's. */
body.single-product.woocommerce div.product .summary .price::after {
	display: block;
	width: 64px;
	height: 2px;
	margin-top: 18px;
	background: linear-gradient(90deg, #d8a743, rgba(216, 167, 67, 0));
	content: "";
}

body.single-product .woocommerce-product-details__short-description {
	max-width: 44ch;
	font-size: 1.08rem;
	line-height: 1.65;
}

body.single-product .ei-wc-energy-note {
	padding: 16px 0;
	background: none;
	border-block: 1px solid var(--wc-purple-line);
	border-radius: 0;
}

body.single-product .ei-wc-energy-note,
body.single-product .ei-wc-energy-note * {
	color: var(--wc-purple-title);
}

/* Buy row: quantity + a full-width GOLD button — on the purple page the one
   gold-filled control is the decision point. The spec fieldset rendered before
   the button takes its own full row above them. */
body.single-product.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
}

body.single-product.woocommerce div.product form.cart .ei-size-field {
	flex: 1 1 100%;
}

body.single-product.woocommerce div.product form.cart .quantity input {
	width: 74px;
	height: 100%;
	min-height: 52px;
	color: var(--wc-purple-title);
	background: rgba(12, 4, 18, 0.6);
	border: 1px solid var(--wc-purple-line);
	border-radius: 8px;
	font-size: 1rem;
}

body.single-product.woocommerce div.product form.cart .button,
body.single-product.woocommerce div.product .single_add_to_cart_button {
	flex: 1 1 auto;
	min-height: 52px;
	color: #210f07;
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	border: 1px solid rgba(255, 232, 166, 0.42);
	border-radius: 8px;
	box-shadow: inset 0 1px 0 rgba(255, 246, 206, 0.35);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

body.single-product.woocommerce div.product form.cart .button:hover,
body.single-product.woocommerce div.product .single_add_to_cart_button:hover {
	background: linear-gradient(180deg, #f7d68b, #c08434);
}

body.single-product.woocommerce div.product .product_meta {
	padding-top: 14px;
	border-top: 1px solid var(--wc-purple-line);
	font-size: 0.82rem;
}

/* ---------- Spec row (规格): wrist size on every bracelet page ---------- */
body.single-product .ei-size-field {
	margin: 0;
	padding: 0;
	border: 0;
}

body.single-product .ei-size-field legend {
	margin-bottom: 10px;
	color: var(--wc-purple-title);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

body.single-product .ei-size-field__options {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

body.single-product .ei-size-field__option input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

body.single-product .ei-size-field__option span {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 92px;
	padding: 9px 16px;
	color: var(--wc-purple-text);
	background: rgba(12, 4, 18, 0.55);
	border: 1px solid var(--wc-purple-line);
	border-radius: 10px;
	font-size: 0.85rem;
	cursor: pointer;
	transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

body.single-product .ei-size-field__option span strong {
	color: var(--wc-purple-title);
	font-size: 1.06rem;
	line-height: 1.1;
}

body.single-product .ei-size-field__option input:checked + span {
	background: rgba(216, 167, 67, 0.18);
	border-color: #d8a743;
	box-shadow: 0 0 0 1px #d8a743;
}

body.single-product .ei-size-field__option input:focus-visible + span {
	outline: 2px solid #d8a743;
	outline-offset: 2px;
}

/* ---------- Assurance strip ---------- */
body.single-product .ei-wc-assurance {
	padding-top: 26px;
	border-top: 1px solid var(--wc-purple-line);
	background: none;
}

body.single-product .ei-wc-assurance > div {
	padding: 0 24px;
	background: none;
	border: 0;
	border-right: 1px solid var(--wc-purple-line);
}

body.single-product .ei-wc-assurance > div:last-child {
	border-right: 0;
}

body.single-product .ei-wc-assurance,
body.single-product .ei-wc-assurance * {
	color: var(--wc-purple-title);
}

/* ---------- Purple story panels: description / reviews / related ---------- */
/* The buying panel already carries the purple texture, so the story panels
   inside it are quiet darker surfaces — texture-on-texture read as nested
   boxes. */
body.single-product.woocommerce div.product .woocommerce-tabs,
body.single-product.woocommerce .related.products,
body.single-product.woocommerce .upsells.products {
	padding: 32px clamp(20px, 3vw, 38px) 36px;
	border: 1px solid rgba(216, 167, 67, 0.22);
	border-radius: var(--ei-radius);
	color: var(--wc-purple-text);
	background: rgba(12, 4, 18, 0.55);
}

body.single-product.woocommerce .related.products,
body.single-product.woocommerce .upsells.products {
	grid-column: 1 / -1;
}

/* Gold banner headings — the same badge the Herbal pages use. */
body.single-product.woocommerce .related.products > h2,
body.single-product.woocommerce .upsells.products > h2 {
	display: table;
	margin: 0 auto 26px;
	padding: 9px 66px;
	color: #210f07;
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	border: 1px solid rgba(255, 232, 166, 0.42);
	border-radius: 7px;
	box-shadow: inset 0 1px 0 rgba(255, 246, 206, 0.35);
	font-size: 1.25rem;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs {
	margin-bottom: 22px;
	border-bottom: 1px solid var(--wc-purple-line);
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: #cfb783;
	letter-spacing: 0.1em;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: none;
	border-bottom: 2px solid #d8a743;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wc-purple-title);
}

body.single-product.woocommerce div.product .woocommerce-Tabs-panel,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel h2,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel h3,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel li,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel strong,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel label {
	color: var(--wc-purple-title);
}

body.single-product.woocommerce div.product .woocommerce-Tabs-panel p {
	max-width: 70ch;
	color: var(--wc-purple-text);
	font-size: 1.06rem;
	line-height: 1.75;
}

/* Rich description typography: gold-tick detail lists under an h3. */
body.single-product.woocommerce div.product .woocommerce-Tabs-panel h3 {
	margin: 26px 0 12px;
	font-size: 1.12rem;
	letter-spacing: 0.05em;
}

body.single-product.woocommerce div.product #tab-description ul {
	max-width: 70ch;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.single-product.woocommerce div.product #tab-description ul li {
	position: relative;
	margin-bottom: 9px;
	padding-left: 22px;
	color: var(--wc-purple-text);
	font-size: 1rem;
	line-height: 1.6;
}

body.single-product.woocommerce div.product #tab-description ul li::before {
	position: absolute;
	top: 0.62em;
	left: 0;
	width: 9px;
	height: 2px;
	background: #d8a743;
	content: "";
}

body.single-product.woocommerce .related.products li.product,
body.single-product.woocommerce .upsells.products li.product {
	background: rgba(12, 4, 18, 0.72);
	border-color: rgba(216, 167, 67, 0.3);
}

/* ---------- Review form ---------- */
/* Comments left, form right — a single stacked column left the right 60% of the
   purple panel empty and pushed the page 500px longer. */
body.single-product .woocommerce-tabs .woocommerce-Reviews {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 12px 52px;
}

body.single-product .woocommerce-tabs .woocommerce-Reviews #review_form_wrapper {
	padding-left: 52px;
	border-left: 1px solid var(--wc-purple-line);
}

body.single-product .woocommerce-tabs #respond .comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: 2px;
}

body.single-product .woocommerce-tabs #respond .comment-form-cookies-consent input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	/* .comment-form input sets width:100% with padding — without the box-sizing and
	   padding resets a 17px box renders 30px wide. */
	box-sizing: border-box;
	width: 17px;
	min-width: 17px;
	height: 17px;
	padding: 0;
	margin-right: 8px;
	vertical-align: -3px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(216, 167, 67, 0.55);
	border-radius: 4px;
	cursor: pointer;
}

body.single-product .woocommerce-tabs #respond .comment-form-cookies-consent input[type="checkbox"]:checked {
	background: #d8a743;
	border-color: #d8a743;
}

body.single-product .woocommerce-tabs #respond .comment-form-cookies-consent input[type="checkbox"]:checked::after {
	display: block;
	margin: -2px 0 0 4px;
	color: #1b0824;
	font-size: 13px;
	font-weight: 700;
	line-height: 17px;
	content: "\2713";
}

@media (max-width: 900px) {
	body.single-product .ei-page-hero {
		padding: 56px 0 44px;
	}

	body.single-product .ei-wc-assurance > div {
		padding: 0 0 16px;
		border-right: 0;
		border-bottom: 1px solid var(--wc-purple-line);
	}

	body.single-product.woocommerce div.product form.cart {
		flex-wrap: wrap;
	}

	body.single-product .woocommerce-tabs .woocommerce-Reviews {
		grid-template-columns: minmax(0, 1fr);
	}

	body.single-product .woocommerce-tabs .woocommerce-Reviews #review_form_wrapper {
		padding-left: 0;
		border-left: 0;
		padding-top: 26px;
		border-top: 1px solid var(--wc-purple-line);
	}

}

/* ============================================================
   2026-07-24 ② — sizes as real variations + richer gold accents
   (客户: 手机版检查 / 金色元素再多一些 / 尺码作为变体).
   Purple stays the ground; gold moves from hairlines to full accents:
   solid-gold active pills, gold panel frames, gold headings and buttons.
   ============================================================ */

/* --- Variations form: theme pills drive the hidden native select --- */
body.single-product form.cart.ei-has-size-pills table.variations {
	display: none;
}

/* The page already shows the price at the top of the card. */
body.single-product form.cart .woocommerce-variation-price {
	display: none;
}

body.single-product form.cart .single_variation_wrap {
	flex: 1 1 100%;
}

body.single-product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 12px;
	align-items: stretch;
}

body.single-product .ei-size-field__pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 92px;
	padding: 9px 16px;
	color: var(--wc-purple-text);
	background: rgba(12, 4, 18, 0.55);
	border: 1px solid rgba(216, 167, 67, 0.45);
	border-radius: 10px;
	font-size: 0.85rem;
	cursor: pointer;
	transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

body.single-product .ei-size-field__pill strong {
	color: var(--wc-purple-title);
	font-size: 1.06rem;
	line-height: 1.1;
}

/* --- Gold pass: the chosen spec is SOLID gold, matching the buy button --- */
body.single-product .ei-size-field__pill.is-active,
body.single-product .ei-size-field__option input:checked + span {
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	border-color: rgba(255, 232, 166, 0.55);
	box-shadow: inset 0 1px 0 rgba(255, 246, 206, 0.35);
	color: #24140b;
}

body.single-product .ei-size-field__pill.is-active strong,
body.single-product .ei-size-field__option input:checked + span strong {
	color: #24140b;
}

/* Panel frames step up from hairline to visible gold. */
body.single-product.woocommerce div.product {
	border-color: rgba(216, 167, 67, 0.42);
}

body.single-product.woocommerce div.product .woocommerce-tabs,
body.single-product.woocommerce .related.products,
body.single-product.woocommerce .upsells.products {
	border-color: rgba(216, 167, 67, 0.38);
}

/* Gold crown line on the purchase card. */
body.single-product.woocommerce div.product div.summary {
	border-color: rgba(216, 167, 67, 0.5);
	border-top: 3px solid #d8a743;
}

body.single-product.woocommerce div.product div.images {
	border-color: rgba(216, 167, 67, 0.6);
}

body.single-product.woocommerce div.product form.cart .quantity input {
	border-color: rgba(216, 167, 67, 0.5);
}

/* Icons and small headings go gold. */
body.single-product .ei-wc-energy-note svg,
body.single-product .ei-wc-assurance svg {
	color: #d8a743;
}

body.single-product .ei-wc-assurance h3,
body.single-product .ei-wc-assurance strong {
	color: #f0c56e;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: #d8a743;
}

body.single-product.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: #f0c56e;
}

body.single-product.woocommerce div.product .woocommerce-Tabs-panel h2,
body.single-product.woocommerce div.product .woocommerce-Tabs-panel h3 {
	color: #f0c56e;
}

body.single-product.woocommerce div.product .product_meta a {
	color: #f0c56e;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Star ratings in brand gold. */
body.single-product .star-rating span::before,
body.single-product .comment-form-rating .stars a {
	color: #d8a743;
}

/* Related cards: gold frame, gold price, gold action button. */
body.single-product.woocommerce .related.products li.product,
body.single-product.woocommerce .upsells.products li.product {
	border-color: rgba(216, 167, 67, 0.45);
}

body.single-product.woocommerce .related.products li.product .woocommerce-loop-product__title,
body.single-product.woocommerce .upsells.products li.product .woocommerce-loop-product__title {
	color: #f4ddaa;
}

body.single-product.woocommerce .related.products li.product .price,
body.single-product.woocommerce .related.products li.product .price .amount,
body.single-product.woocommerce .upsells.products li.product .price,
body.single-product.woocommerce .upsells.products li.product .price .amount {
	color: #f0c56e;
}

body.single-product.woocommerce .related.products li.product .button,
body.single-product.woocommerce .upsells.products li.product .button {
	color: #24140b;
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	border: 1px solid rgba(255, 232, 166, 0.42);
	box-shadow: inset 0 1px 0 rgba(255, 246, 206, 0.35);
	font-weight: 700;
}

body.single-product.woocommerce .related.products li.product .button:hover,
body.single-product.woocommerce .upsells.products li.product .button:hover {
	background: linear-gradient(180deg, #f7d68b, #c08434);
}

/* Review form submit matches the buy button. */
body.single-product .woocommerce-tabs #respond .form-submit .submit {
	color: #24140b;
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	border: 1px solid rgba(255, 232, 166, 0.42);
	border-radius: 8px;
	padding: 12px 28px;
	font-weight: 700;
	letter-spacing: 0.08em;
	cursor: pointer;
}

body.single-product .woocommerce-tabs #respond .form-submit .submit:hover {
	background: linear-gradient(180deg, #f7d68b, #c08434);
}

/* The energy-note row above already draws a divider — the base form.cart
   border-top doubled it with a blank band between the two lines. */
body.single-product.woocommerce div.product form.cart {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

/* -------------------------------------------------------------------------
 * v1.1.3 — Coupon flow (block Cart & Checkout)
 *
 * The coupon panel ships with WooCommerce's light block styling, which on this
 * dark theme reads as "nothing is there" — it was not obvious that a code could
 * be entered at all. These rules make the entry point visible and dress the
 * applied-coupon chip, discount row and notices in the site's gold/purple.
 * ---------------------------------------------------------------------- */

.wc-block-components-totals-coupon {
	border: 1px dashed rgba(216, 167, 67, 0.44);
	border-radius: 8px;
	background: rgba(216, 167, 67, 0.06);
}

.wc-block-components-totals-coupon .wc-block-components-panel__button {
	padding: 12px 14px;
	color: var(--ei-primary, #d8a743);
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button:hover {
	color: #f6e7c8;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	fill: currentColor;
}

.wc-block-components-totals-coupon .wc-block-components-panel__content {
	padding: 0 14px 14px;
}

.wc-block-components-totals-coupon__form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: stretch;
}

.wc-block-components-totals-coupon__input {
	flex: 1 1 150px;
	margin: 0;
}

/* WooCommerce's own `.wc-block-components-text-input input[type=text]` rule has
 * the same specificity and loads later, so these need one extra class to win.
 * Padding is deliberately left alone — the block uses a floating label that is
 * positioned against it. */
.wc-block-components-totals-coupon .wc-block-components-totals-coupon__input input[type="text"],
.wc-block-components-totals-coupon .wc-block-components-totals-coupon__input input[type="text"]:focus {
	border: 1px solid rgba(216, 167, 67, 0.4);
	border-radius: 6px;
	background: rgba(9, 6, 16, 0.9);
	color: #f6e7c8;
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.86rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.wc-block-components-totals-coupon .wc-block-components-totals-coupon__input input[type="text"]:focus {
	border-color: var(--ei-primary, #d8a743);
	outline: none;
	box-shadow: 0 0 0 2px rgba(216, 167, 67, 0.24);
}

.wc-block-components-totals-coupon .wc-block-components-totals-coupon__input label {
	color: #cfb783;
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	text-transform: none;
}

.wc-block-components-totals-coupon .wc-block-components-totals-coupon__input.is-active label {
	color: var(--ei-primary, #d8a743);
}

/* "That code does not exist" / "minimum spend" feedback lives inline in the
 * panel, not in a notice banner — WooCommerce paints it #cc1818, which is
 * unreadable on the dark panel. */
.wc-block-components-totals-coupon .wc-block-components-validation-error p,
.wc-block-components-totals-coupon .wc-block-components-validation-error {
	color: #f08fa6;
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.76rem;
}

.wc-block-components-totals-coupon .wc-block-components-validation-error svg {
	fill: #f08fa6;
}

.wc-block-components-totals-coupon__button {
	flex: 0 0 auto;
	padding: 0 22px;
	min-height: 44px;
	border: 0;
	border-radius: 6px;
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	color: #241407;
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wc-block-components-totals-coupon__button:disabled {
	opacity: 0.45;
}

/* Applied coupon chip + discount row. */
.wc-block-components-totals-discount .wc-block-components-totals-item__value {
	color: #7fd6a2;
}

.wc-block-components-totals-discount__coupon-list-item.wc-block-components-chip {
	border: 1px solid rgba(216, 167, 67, 0.5);
	background: rgba(216, 167, 67, 0.14);
	color: #f6e7c8;
}

.wc-block-components-totals-discount__coupon-list-item .wc-block-components-chip__text {
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wc-block-components-totals-discount__coupon-list-item .wc-block-components-chip__remove {
	background: transparent;
	color: var(--ei-primary, #d8a743);
}

.wc-block-components-totals-discount__coupon-list-item .wc-block-components-chip__remove-icon {
	fill: currentColor;
}

/* Feedback notices ("coupon applied", "coupon does not exist"). */
.wc-block-components-notice-banner {
	border-radius: 8px;
	background: #1b0824;
	color: #f6e7c8;
	border-color: rgba(216, 167, 67, 0.5);
}

.wc-block-components-notice-banner > svg {
	fill: var(--ei-primary, #d8a743);
}

.wc-block-components-notice-banner.is-error {
	border-color: rgba(204, 75, 115, 0.7);
}

.wc-block-components-notice-banner.is-error > svg {
	fill: #e0819c;
}

.wc-block-components-notice-banner.is-success > svg {
	fill: #7fd6a2;
}

.wc-block-components-notice-banner .wc-block-components-button__text {
	color: #f6e7c8;
}

/* ---------------------------------------------------------------------------
 * v1.1.4 — Cart cross-sell block grid ("You may be interested in…").
 * The block grid leaves each tile at its image's natural height, so a photo
 * that is 6px shorter pushes that tile's title, price and button out of line
 * with its neighbours. Square the thumbnails and pin the button to the bottom,
 * the same treatment li.product already gets in the shop grid.
 * ------------------------------------------------------------------------- */
.wc-block-grid__products .wc-block-grid__product {
	display: flex;
	flex-direction: column;
}

.wc-block-grid__product-image {
	display: block;
}

.wc-block-grid__product-image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.wc-block-grid__product .wc-block-grid__product-price {
	margin-top: auto;
}

.wc-block-grid__product .wc-block-grid__product-add-to-cart {
	margin-bottom: 0;
}

/* ---------------------------------------------------------------------------
 * v1.1.5 — Block Cart & Checkout: put the funnel back in the site's skin.
 *
 * These two pages were the only surfaces still wearing WooCommerce's stock
 * light styling. Every field painted #fff with #2b2d2f text on the near-black
 * page, and both funnel CTAs ("Proceed to Checkout", "Place Order") fell
 * through to WordPress core's `:root :where(.wp-element-button, …)` default —
 * the flat #32373c grey — because this theme ships no theme.json to override
 * the core global stylesheet. Nothing new is invented below: the field
 * treatment is the same one .woocommerce form .form-row input.input-text
 * already gives the my-account, contact and footer forms, and the button is
 * the coupon/add-to-cart gradient.
 *
 * WooCommerce's block CSS loads after the theme and matches these controls at
 * (0,2,1), so each rule is scoped to a block wrapper class to win on
 * specificity instead of relying on source order.
 * ------------------------------------------------------------------------- */

.wc-block-checkout .wc-block-components-text-input input[type],
.wc-block-checkout input.wc-block-components-address-form__address_2-hidden-input,
.wc-block-checkout .wc-block-components-textarea,
.wc-block-checkout .wc-blocks-components-select__select,
.wc-block-cart .wc-block-components-text-input input[type],
.wc-block-cart .wc-blocks-components-select__select {
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: var(--ei-radius, 8px);
	background: rgba(255, 255, 255, 0.05);
	color: var(--ei-text, #f7ecd5);
}

.wc-block-checkout .wc-block-components-text-input input[type]:focus,
.wc-block-checkout .wc-block-components-textarea:focus,
.wc-block-checkout .wc-blocks-components-select__select:focus,
.wc-block-cart .wc-block-components-text-input input[type]:focus {
	border-color: var(--ei-primary, #d8a743);
	outline: none;
	box-shadow: 0 0 0 2px rgba(216, 167, 67, 0.24);
}

/* Chrome repaints autofilled fields white from the UA sheet, which would undo
 * the rule above the moment a saved address is filled in. The inset shadow is
 * the only way to recolour that layer. */
.wc-block-checkout .wc-block-components-text-input input[type]:-webkit-autofill,
.wc-block-checkout .wc-block-components-text-input input[type]:-webkit-autofill:focus {
	box-shadow: inset 0 0 0 100px #171226;
	-webkit-text-fill-color: var(--ei-text, #f7ecd5);
}

/* The select sits in a wrapper that carries its own white background and the
 * chevron is drawn as a currentColor SVG on the container. */
.wc-block-checkout .wc-blocks-components-select__container,
.wc-block-cart .wc-blocks-components-select__container {
	background: transparent;
	color: var(--ei-text, #f7ecd5);
}

.wc-block-checkout .wc-blocks-components-select__select option {
	background: #0b0915;
	color: var(--ei-text, #f7ecd5);
}

.wc-block-checkout .wc-blocks-components-select__label,
.wc-block-checkout .wc-block-components-text-input label {
	color: var(--ei-muted, #c7ac7a);
}

.wc-block-checkout .wc-block-components-text-input.is-active label {
	color: var(--ei-primary, #d8a743);
}

/* Woo draws this control itself (appearance: none + its own SVG tick), so
 * accent-color has nothing to colour — the box has to be painted directly or
 * it stays a plain white square. */
.wc-block-checkout .wc-block-components-checkbox__input[type="checkbox"] {
	border: 1px solid rgba(216, 167, 67, 0.34);
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.05);
}

.wc-block-checkout .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--ei-primary, #d8a743);
	background: var(--ei-primary, #d8a743);
}

.wc-block-checkout .wc-block-components-checkbox__mark {
	fill: #241407;
}

/* Funnel CTAs — the two buttons the whole shop funnels into. */
.wc-block-cart .wc-block-cart__submit-button,
.wc-block-checkout .wc-block-components-checkout-place-order-button {
	border: 0;
	border-radius: var(--ei-radius, 8px);
	background: linear-gradient(180deg, #f0c56e, #ad7229);
	color: #241407;
	font-family: var(--ei-ui-font, "Inter", sans-serif);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.wc-block-cart .wc-block-cart__submit-button:hover,
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
	background: linear-gradient(180deg, #f7d68b, #c08434);
	color: #241407;
}

.wc-block-checkout .wc-block-components-checkout-place-order-button:disabled {
	opacity: 0.45;
}

/* Product titles: Woo underlines them, every other product title on the site
 * is an unadorned Cinzel gold link. */
.wc-block-cart a.wc-block-components-product-name,
.wc-block-checkout a.wc-block-components-product-name,
.wp-block-woocommerce-empty-cart-block a.wc-block-grid__product-link {
	color: var(--ei-link, #f0bf58);
	font-family: var(--ei-heading-font, "Cinzel", Georgia, serif);
	text-decoration: none;
}

.wc-block-cart a.wc-block-components-product-name:hover,
.wc-block-checkout a.wc-block-components-product-name:hover,
.wp-block-woocommerce-empty-cart-block a.wc-block-grid__product-link:hover {
	color: #f7ecd5;
}

/* The order-summary count badge ships as a white disc with near-white digits,
 * so the quantity was effectively unreadable. */
.wc-block-checkout .wc-block-components-order-summary-item__quantity {
	border: 1px solid rgba(216, 167, 67, 0.5);
	background: #1b0824;
	color: var(--ei-primary, #d8a743);
	box-shadow: none;
}

.wc-block-cart .wc-block-cart-item__remove-link,
.wc-block-checkout .wc-block-components-checkout-return-to-cart-button {
	color: var(--ei-muted, #c7ac7a);
}

.wc-block-cart .wc-block-cart-item__remove-link:hover,
.wc-block-checkout .wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--ei-primary, #d8a743);
}
