/**
 * Stardust 2.0 — bespoke effects + WooCommerce styling.
 *
 * Loaded on the front end and inside the editor canvas. All design tokens
 * (colors, fonts, spacing, radius) come from theme.json as CSS custom
 * properties (--wp--preset--*). This file only adds the cosmic/street-luxe
 * effects that cannot be expressed in theme.json and tunes WooCommerce blocks.
 */

/* ===========================================================================
   0. Base polish
   ======================================================================== */
html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

::selection {
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--wp--preset--color--soft-white); }
::-webkit-scrollbar-thumb {
	background: var(--wp--preset--color--ink);
	border-radius: 8px;
	border: 2px solid var(--wp--preset--color--soft-white);
}
::-webkit-scrollbar-thumb:hover { background: var(--wp--preset--color--neon-pink); }

/* Generic helpers reused across patterns */
.sd-eyebrow {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.sd-tracked {
	font-family: var(--wp--preset--font-family--accent);
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.sd-rounded-2xl { border-radius: var(--wp--custom--radius-2xl) !important; }
.sd-rounded-xl { border-radius: var(--wp--custom--radius-xl) !important; }
.sd-overflow-hidden { overflow: hidden; }

/* ===========================================================================
   1. Spray vignettes (soft glowy blobs)
   These are painted as decorative pseudo-layers on section wrappers so that
   pattern markup stays clean. Apply .sd-section + a modifier (sd-hero, etc.).
   ======================================================================== */
.sd-section { position: relative; }
.sd-section > * { position: relative; z-index: 1; }

.spray-pink,
.is-style-spray-pink {
	background: radial-gradient(circle at center, rgba(255, 45, 161, 0.85) 0%, rgba(255, 45, 161, 0.35) 35%, transparent 65%);
	filter: blur(22px);
}
.spray-blue,
.is-style-spray-blue {
	background: radial-gradient(circle at center, rgba(0, 229, 255, 0.75) 0%, rgba(0, 229, 255, 0.3) 35%, transparent 65%);
	filter: blur(22px);
}
.spray-green,
.is-style-spray-green {
	background: radial-gradient(circle at center, rgba(57, 255, 20, 0.75) 0%, rgba(57, 255, 20, 0.3) 35%, transparent 65%);
	filter: blur(22px);
}

/* ===========================================================================
   2. Halftone dot pattern + grain
   ======================================================================== */
.halftone,
.is-style-halftone {
	background-image: radial-gradient(rgba(13, 13, 13, 0.15) 1px, transparent 1.5px);
	background-size: 8px 8px;
}
.halftone-pink {
	background-image: radial-gradient(rgba(255, 45, 161, 0.35) 1px, transparent 1.5px);
	background-size: 8px 8px;
}

.grain,
.is-style-grain { position: relative; }
.grain::after,
.is-style-grain::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0.04;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ===========================================================================
   3. Stroke underline accent (skewed pink highlight under a word/heading)
   ======================================================================== */
.stroke-under,
.is-style-stroke-under {
	position: relative;
	display: inline-block;
}
.stroke-under::after,
.is-style-stroke-under::after {
	content: "";
	position: absolute;
	left: -4%;
	right: -4%;
	bottom: 0.08em;
	height: 0.32em;
	background: rgba(255, 45, 161, 0.9);
	z-index: -1;
	transform: skewX(-8deg);
}

/* Chrome text gradient (for accents over dark backgrounds) */
.text-chrome {
	background: linear-gradient(180deg, #f2f2f2 0%, #a6a6a6 45%, #d9d9d9 55%, #8c8c8c 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* ===========================================================================
   4. Animations: marquee, slow-spin, twinkle, fade-up, press-scale
   ======================================================================== */
@keyframes sd-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@keyframes sd-slow-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}
@keyframes sd-twinkle {
	0%, 100% { opacity: 0.3; transform: scale(0.8); }
	50% { opacity: 1; transform: scale(1.1); }
}
@keyframes sd-fade-up {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}

.animate-slow-spin { animation: sd-slow-spin 40s linear infinite; }
.animate-twinkle { animation: sd-twinkle 3s ease-in-out infinite; }

.press-scale { transition: transform 0.15s ease, box-shadow 0.25s ease; }
.press-scale:active { transform: scale(0.97); }

@media (prefers-reduced-motion: reduce) {
	.animate-slow-spin,
	.animate-twinkle,
	.sd-marquee__track { animation: none !important; }
}

/* ===========================================================================
   5. Announcement bar (marquee + dismiss)
   ======================================================================== */
.sd-announcement {
	position: relative;
	background: var(--wp--preset--color--ink);
	color: #fff;
	overflow: hidden;
}
.sd-announcement[hidden] { display: none; }
.sd-marquee { overflow: hidden; }
.sd-marquee__track {
	display: flex;
	flex-wrap: nowrap;
	gap: 2.5rem;
	width: max-content;
	padding: 0.65rem 3rem 0.65rem 0;
	white-space: nowrap;
	animation: sd-marquee 35s linear infinite;
}
.sd-marquee__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.sd-marquee__item .sd-star { color: var(--wp--preset--color--neon-pink); }
.sd-announcement__close {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 1.75rem;
	height: 1.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	cursor: pointer;
	transition: background 0.2s ease;
}
.sd-announcement__close:hover { background: rgba(255, 255, 255, 0.24); }

/* ===========================================================================
   6. Header (sticky, blur)
   ======================================================================== */
/* WP renders the header template part as <header class="wp-block-template-part">
   wrapping .sd-header. That wrapper is exactly as tall as the header, so a
   sticky .sd-header has ZERO travel inside it and silently never sticks.
   display:contents removes the wrapper's box, making .sd-header stick against
   the full-height .wp-site-blocks. (The announcement bar, in the same part,
   keeps scrolling away as designed.) */
header.wp-block-template-part { display: contents; }

.sd-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
/* The blur creates a containing block, which would trap the position:fixed
   mobile nav overlay inside the header. Only apply it on desktop (no overlay
   there) so the overlay can cover the full viewport on mobile. */
@media (min-width: 783px) {
	.sd-header {
		background: rgba(255, 255, 255, 0.9);
		-webkit-backdrop-filter: blur(16px);
		backdrop-filter: blur(16px);
	}
}
/* Logged-in: WP's fixed admin bar owns the top 32px (46px on tablet) of the
   viewport — without this offset the sticky header slides UNDER it and reads
   as "not sticky". Below 600px the admin bar is position:absolute (scrolls
   away with the page), so the header goes back to top:0. */
body.admin-bar .sd-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) {
	body.admin-bar .sd-header { top: 0; }
}
.sd-header .wp-block-navigation a:hover { color: var(--wp--preset--color--neon-pink); }

/* ---- Mobile nav: full-screen overlay menu (brand-styled) ---------------- */
.sd-header .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--ink);
	padding: 0.35rem;
}
.sd-header .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open {
	z-index: 99999;
	background: var(--wp--preset--color--base, #fff);
	padding: clamp(1.5rem, 6vw, 3rem);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 2.5rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	max-width: none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--ink);
	top: 1.25rem;
	right: 1.25rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	display: block;
	width: 100%;
	padding: 1rem 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 8vw, 2.5rem);
	line-height: 1.1;
	color: var(--wp--preset--color--ink);
	text-transform: uppercase;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a:hover {
	color: var(--wp--preset--color--neon-pink);
}

/* One consistent, balanced control for EVERY header action icon
   (search, account, wishlist, mini-cart): a 40x40 box with an 18px glyph,
   the same transparent->soft-white hover, vertically centred. */
.sd-icon-btn,
.sd-header .wp-block-search__button,
.sd-header .wc-block-mini-cart__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	min-width: 2.5rem;
	flex: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--wp--custom--radius);
	background: transparent;
	color: var(--wp--preset--color--ink);
	line-height: 0;
	cursor: pointer;
	transition: color 0.2s ease, background 0.2s ease;
}
.sd-icon-btn:hover,
.sd-icon-btn:focus-visible,
.sd-header .wp-block-search__button:hover,
.sd-header .wc-block-mini-cart__button:hover {
	color: var(--wp--preset--color--neon-pink);
	background: var(--wp--preset--color--soft-white);
}
/* ONE icon family for all four header actions, copied from the React
   prototype: lucide glyphs, 16px box (h-4 w-4), stroke-width 2, inside the
   40x40 ghost button.
   - Account + wishlist: inline lucide SVGs from the companion. The CSS also
     force-normalizes their size + stroke so even a stale companion version
     can't render a different weight.
   - Search (core block) + cart (Woo mini-cart): their foreign SVGs are HIDDEN
     and the icon is drawn as a ::before on the button via mask. A pseudo-
     element can't be touched by React re-renders or the blocks' own svg
     attributes — strictly more robust than masking the svg node itself. */
.sd-icon-btn svg {
	width: 16px;
	height: 16px;
	display: block;
}
.sd-header .sd-icon-btn svg :is(path, circle, rect, line, polyline) { stroke-width: 2; }
.sd-header .wp-block-search__button svg,
.sd-header .wc-block-mini-cart__button svg {
	display: none !important;
}
.sd-header .wp-block-search__button::before,
.sd-header .wc-block-mini-cart__button::before {
	content: "";
	display: block;
	flex: none;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--sd-icon-mask) center / 16px 16px no-repeat;
	mask: var(--sd-icon-mask) center / 16px 16px no-repeat;
}
/* lucide "shopping-bag" */
.sd-header .wc-block-mini-cart__button {
	--sd-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z'/%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M16 10a4 4 0 0 1-8 0'/%3E%3C/svg%3E");
}
/* lucide "search" */
.sd-header .wp-block-search__button {
	--sd-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
}
.sd-header .wp-block-search__inside-wrapper { border: 0; margin: 0; }

/* Icon-only mini-cart: hide the running total, render the count as a
   small corner bubble like the original cart button. */
.sd-header .wc-block-mini-cart__amount { display: none; }
.sd-header .wc-block-mini-cart__quantity-badge { line-height: 0; }
.sd-header .wc-block-mini-cart__badge {
	position: absolute;
	top: 0.15rem;
	right: 0.15rem;
	min-width: 1rem;
	height: 1rem;
	padding: 0 0.25rem;
	border-radius: 999px;
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1rem;
	text-align: center;
}

/* ===========================================================================
   7. Buttons — extend theme.json element styles with brand variants
   ======================================================================== */
.wp-block-button.is-style-stardust-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
}
.wp-block-button.is-style-stardust-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	color: #fff;
}
.wp-block-button.is-style-stardust-ink .wp-block-button__link {
	background: var(--wp--preset--color--ink);
	color: #fff;
}
.wp-block-button.is-style-stardust-ink .wp-block-button__link:hover {
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
}

/* ===========================================================================
   8. Cosmic cards (generic) + decorative section glows
   ======================================================================== */
.is-style-stardust-card {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--base);
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.is-style-stardust-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--lg);
	border-color: rgba(13, 13, 13, 0.3);
}

/* Hero glow stack */
.sd-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(40% 30% at 78% 28%, rgba(255, 45, 161, 0.18), transparent 70%),
		radial-gradient(30% 24% at 22% 78%, rgba(0, 229, 255, 0.14), transparent 70%);
}
.sd-hero__visual {
	position: relative;
	border-radius: 2.5rem;
	overflow: hidden;
	background: linear-gradient(135deg, var(--wp--preset--color--soft-white), var(--wp--preset--color--base), var(--wp--preset--color--soft-white));
	border: 1px solid var(--wp--preset--color--border);
	min-height: 420px;
}
.sd-hero__visual::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background:
		radial-gradient(50% 36% at 50% 22%, rgba(255, 45, 161, 0.55), transparent 70%),
		radial-gradient(30% 24% at 80% 78%, rgba(0, 229, 255, 0.4), transparent 70%),
		radial-gradient(26% 22% at 20% 76%, rgba(57, 255, 20, 0.32), transparent 70%);
	filter: blur(6px);
}
.sd-hero__visual::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(13, 13, 13, 0.12) 1px, transparent 1.5px);
	background-size: 8px 8px;
	-webkit-mask-image: radial-gradient(circle at 85% 90%, #000 0%, transparent 45%);
	mask-image: radial-gradient(circle at 85% 90%, #000 0%, transparent 45%);
	pointer-events: none;
}
.sd-hero__visual .wp-block-image,
.sd-hero__visual figure { position: relative; z-index: 2; margin: 0; }

/* Reviews section sits on ink with soft glows (homepage wall only) */
.sd-reviews.has-ink-background-color::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(28% 40% at 5% 20%, rgba(255, 45, 161, 0.22), transparent 70%),
		radial-gradient(30% 42% at 95% 85%, rgba(0, 229, 255, 0.18), transparent 70%);
}
.sd-reviews .sd-review-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius-2xl);
	border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Made-to-stand-out band */
.sd-band {
	position: relative;
	border-radius: var(--wp--custom--radius-2xl);
	overflow: hidden;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
}
.sd-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(26% 60% at 6% 50%, rgba(255, 45, 161, 0.4), transparent 70%),
		radial-gradient(24% 56% at 94% 50%, rgba(0, 229, 255, 0.3), transparent 70%);
}

/* ===========================================================================
   9. Loyalty meter (animated)
   ======================================================================== */
.sd-meter__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 0.5rem;
	gap: 1rem;
}
.sd-meter__track {
	position: relative;
	height: 0.75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	overflow: hidden;
}
.sd-meter__fill {
	position: absolute;
	inset: 0 auto 0 0;
	width: 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--wp--preset--color--neon-pink), var(--wp--preset--color--neon-pink-soft), var(--wp--preset--color--neon-pink));
	box-shadow: 0 0 20px rgba(255, 45, 161, 0.5);
	transition: width 60ms linear;
}
.sd-meter__legend {
	display: flex;
	justify-content: space-between;
	margin-top: 0.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-meter__value { color: var(--wp--preset--color--ink); }

/* Tier cards */
.sd-tier { height: 100%; border-radius: var(--wp--custom--radius-2xl); }
.sd-tier--featured {
	position: relative;
	overflow: hidden;
}

/* ===========================================================================
   10. WooCommerce — product grids, single product, cart, checkout, account
   ======================================================================== */

/* Product grids rendered by Product Collection.
   WooCommerce emits a `columns-N` class but its flex layout CSS does not always
   apply (the list falls back to `is-layout-flow`, stacking full width). So we
   define a real CSS grid ourselves off that class — reliable across versions.
   `!important` on the items beats WooCommerce's higher-specificity width rules. */
.sd-products .wc-block-product-template,
.sd-products .wp-block-woocommerce-product-template,
.sd-products ul.wc-block-grid__products {
	display: grid;
	gap: 1.5rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.sd-products .wc-block-product-template.columns-1 { grid-template-columns: 1fr; }
.sd-products .wc-block-product-template.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sd-products .wc-block-product-template.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sd-products .wc-block-product-template.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sd-products .wc-block-product-template.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sd-products .wc-block-product-template > li,
.sd-products .wp-block-woocommerce-product-template > li {
	width: auto !important;
	max-width: none !important;
	min-width: 0;
	margin: 0 !important;
	float: none !important;
	list-style: none;
}
@media (max-width: 1024px) {
	.sd-products .wc-block-product-template.columns-3,
	.sd-products .wc-block-product-template.columns-4,
	.sd-products .wc-block-product-template.columns-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.sd-products .wc-block-product-template:not(.columns-1) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sd-products .wc-block-components-product-image,
.sd-products .wp-block-woocommerce-product-image,
.sd-products li img {
	border-radius: var(--wp--custom--radius-xl);
}
.sd-products .wc-block-components-product-image {
	position: relative;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	overflow: hidden;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.sd-products .wc-block-components-product-image::before {
	content: "";
	position: absolute;
	inset: 2rem;
	z-index: 0;
	background: radial-gradient(circle at center, rgba(255, 45, 161, 0.4) 0%, rgba(255, 45, 161, 0.15) 35%, transparent 65%);
	filter: blur(20px);
	opacity: 0.7;
	transition: opacity 0.5s ease;
	pointer-events: none;
}
.sd-products .wc-block-components-product-image:hover::before { opacity: 1; }
.sd-products .wc-block-components-product-image img {
	position: relative;
	z-index: 1;
	mix-blend-mode: multiply;
	transition: transform 0.5s ease;
}
.sd-products .wc-block-components-product-image:hover img { transform: scale(1.06); }

.sd-products .wp-block-woocommerce-product-collection .wc-block-product a,
.sd-products .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.375rem;
	line-height: 1.05;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: color 0.2s ease;
}
.sd-products .wc-block-components-product-name:hover { color: var(--wp--preset--color--neon-pink); }
.sd-products .wc-block-grid__product-price,
.sd-products .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}
.sd-products .wc-block-components-product-price del { color: var(--wp--preset--color--muted); font-weight: 400; }

/* Star ratings everywhere */
.wc-block-components-product-rating .wc-block-components-product-rating__stars,
.star-rating span::before,
.wc-block-grid__product-rating .star-rating span::before { color: var(--wp--preset--color--neon-pink); }

/* WooCommerce buttons → brand pink, uppercase tracked */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button,
.wp-element-button,
.wc-block-grid__product .wp-block-button__link {
	background-color: var(--wp--preset--color--neon-pink);
	color: #fff;
	border: 0;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transition: background-color 0.25s ease, transform 0.15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:hover,
.wp-element-button:hover { background-color: var(--wp--preset--color--ink); color: #fff; }
.woocommerce a.button:active,
.wc-block-components-button:active { transform: scale(0.97); }

/* Sale/new badges — brand pink everywhere (single-product gallery uses a bare
   .onsale span that is NOT inside a .woocommerce wrapper, hence the extra selector). */
span.onsale,
.onsale,
.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 0;
	border-radius: 999px;
	min-height: auto;
	min-width: auto;
	line-height: 1;
	padding: 0.4rem 0.7rem;
}
/* Product Collection wraps the sale pill in a full-width block element. Keep
   that wrapper as a bare positioning context so ONLY the pill shows — styling
   it directly painted a full-width pink bar across the top of the card. */
.wp-block-woocommerce-product-sale-badge {
	display: contents;
}

/* Single product layout polish */
.woocommerce div.product .product_title { font-family: var(--wp--preset--font-family--display); line-height: 0.95; }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}
.woocommerce #reviews .comment-form-rating .stars a { color: var(--wp--preset--color--neon-pink); }
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover { color: var(--wp--preset--color--neon-pink); }

/* Quantity + inputs */
.woocommerce .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.wc-block-components-text-input input {
	border-radius: var(--wp--custom--radius);
	border-color: var(--wp--preset--color--border);
}

/* Cart + Checkout block containers */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--wp--preset--font-family--body); }
.wc-block-cart__totals-title,
.wc-block-components-totals-item__label { font-family: var(--wp--preset--font-family--accent); text-transform: uppercase; letter-spacing: 0.12em; }

/* My Account navigation */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	font-family: var(--wp--preset--font-family--accent);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8125rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--wp--preset--color--neon-pink); }

/* ===========================================================================
   11. Footer
   ======================================================================== */
.sd-footer { background: var(--wp--preset--color--ink); color: #fff; }
.sd-footer a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.sd-footer a:hover { color: var(--wp--preset--color--neon-pink); }
.sd-footer .sd-eyebrow { color: rgba(255, 255, 255, 0.6); }
.sd-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #fff;
	transition: background 0.2s ease, border-color 0.2s ease;
}
.sd-social:hover { background: var(--wp--preset--color--neon-pink); border-color: var(--wp--preset--color--neon-pink); }

/* ===========================================================================
   12. Utility: full-bleed decorative star row, FAQ accordion accents
   ======================================================================== */
.sd-faq .wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding: 1.25rem 0;
}
.sd-faq .wp-block-details summary {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	cursor: pointer;
	list-style: none;
}
.sd-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.sd-faq .wp-block-details[open] summary { color: var(--wp--preset--color--neon-pink); }

/* Numbered step badge */
.sd-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
}

/* ===========================================================================
   13. Pattern support classes (used by /patterns and /parts markup)
   ======================================================================== */

/* Trust strip icon chip */
.sd-trust-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--ink);
}

/* Header search + mini-cart icon controls are unified in section 6 above.
   Expanded search field (after clicking the icon) stays on-brand: */
.sd-header .wp-block-search__input {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
}

/* Footer link lists */
.sd-footer-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.sd-footer-list li { margin: 0; }

/* Shared newsletter form (footer + CTA pattern) */
.sd-newsletter__row { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.sd-newsletter__input {
	flex: 1 1 12rem;
	height: 3.5rem;
	border: 0;
	border-radius: var(--wp--custom--radius);
	padding: 0 1rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.875rem;
	color: var(--wp--preset--color--ink);
	background: #fff;
}
.sd-newsletter__btn {
	height: 3.5rem;
	padding: 0 2rem;
	border: 0;
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-size: 0.75rem;
	cursor: pointer;
	transition: background 0.25s ease;
}
.sd-newsletter__btn:hover { background: #fff; color: var(--wp--preset--color--ink); }
.sd-newsletter__fine {
	margin-top: 0.75rem;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
	font-family: var(--wp--preset--font-family--accent);
}

/* Made-to-stand-out crown sits above the band glow */
.sd-band__crown { position: relative; z-index: 1; display: inline-flex; color: var(--wp--preset--color--ink); }

/* Loyalty meter number + tier card bits */
.sd-meter__num { color: var(--wp--preset--color--ink); }
/* Cards must stack vertically (flex COLUMN). Without an explicit direction the
   default row layout shrank each heading to min-width, wrapping "NOVA" one
   letter per line. */
.sd-tier {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
.sd-tier > * { width: 100%; }
.sd-tier__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
}
.sd-tier__icon--dark { border-color: rgba(255, 255, 255, 0.2); }
.sd-tier--featured { position: relative; overflow: hidden; border: 1px solid var(--wp--preset--color--ink); }
.sd-tier--featured::after {
	content: "";
	position: absolute;
	top: -2rem;
	right: -2rem;
	width: 7rem;
	height: 7rem;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(255, 45, 161, 0.4), transparent 70%);
	filter: blur(14px);
	pointer-events: none;
}
.sd-badge-unlocked {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.55rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--neon-pink);
	background: rgba(255, 45, 161, 0.12);
	padding: 0.25rem 0.5rem;
	border-radius: 0.4rem;
}
.sd-badge-current {
	color: #fff;
	background: var(--wp--preset--color--neon-pink);
}
.sd-star-mark { display: inline-flex; }

/* Tier card row (PHP-rendered in the loyalty-banner pattern; supports any
   tier count — 3 brand tiers or the 7oohub plugin's configured ladder). */
.sd-tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 1rem;
}
.sd-tiers .sd-tier { padding: 1.5rem; }
.sd-tiers .sd-tier:hover { transform: translateY(-4px); }
.sd-tier__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.sd-tier__name {
	margin: 1.5rem 0 0;
	font-size: var(--wp--preset--font-size--x-large);
}
.sd-tier--featured .sd-tier__name { color: #fff; }
.sd-tier__threshold {
	margin: 0.25rem 0 0.5rem;
	font-size: 0.7rem;
	color: var(--wp--preset--color--muted);
}
.sd-tier--featured .sd-tier__threshold { color: rgba(255, 255, 255, 0.7); }
.sd-tier__benefits {
	margin: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}
.sd-tier--featured .sd-tier__benefits { color: rgba(255, 255, 255, 0.8); }

/* "Already in the crew?" line under the logged-out banner CTA */
.sd-loyalty-signin {
	margin: 0.9rem 0 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--muted);
}
.sd-loyalty-signin a {
	color: var(--wp--preset--color--neon-pink);
	font-weight: 600;
	text-decoration: none;
}
.sd-loyalty-signin a:hover { text-decoration: underline; }

/* Star rows + verified chip (reviews) */
.sd-stars { display: inline-flex; align-items: center; gap: 2px; }
.sd-verified {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neon-pink);
	background: rgba(255, 45, 161, 0.1);
	padding: 0.25rem 0.5rem;
	border-radius: 0.4rem;
}

/* Hero featured-product visual: float the product over the glow */
.sd-hero__visual {
	display: flex;
	align-items: center;
	justify-content: center;
}
.sd-hero__visual .wp-block-woocommerce-product-collection { position: relative; z-index: 2; width: 100%; }
.sd-hero-product .wp-block-woocommerce-product-template { margin: 0; }
.sd-hero-product .wc-block-components-product-image {
	border: 0;
	background: transparent;
}
.sd-hero-product .wc-block-components-product-image::before { display: none; }
.sd-hero-product .wc-block-components-product-image img {
	mix-blend-mode: normal;
	filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.18));
}

/* Featured-categories grid from the [product_categories] shortcode */
.sd-cats ul.products {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
}
.sd-cats ul.products::before,
.sd-cats ul.products::after { display: none; }
.sd-cats ul.products li.product-category {
	list-style: none;
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	text-align: center;
}
.sd-cats ul.products li.product-category a {
	display: block;
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	padding: 1.25rem;
	background: var(--wp--preset--color--soft-white);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.sd-cats ul.products li.product-category a:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--preset--shadow--lg);
	border-color: rgba(13, 13, 13, 0.3);
}
.sd-cats ul.products li.product-category img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	mix-blend-mode: multiply;
	border-radius: var(--wp--custom--radius-xl);
	margin: 0 auto 0.75rem;
}
.sd-cats ul.products li.product-category h2,
.sd-cats ul.products li.product-category .woocommerce-loop-category__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1.05;
	color: var(--wp--preset--color--ink);
}
.sd-cats ul.products li.product-category .count {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--muted);
	background: transparent;
}
@media (max-width: 1024px) {
	.sd-cats ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.sd-cats ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===========================================================================
   14. Border consistency — tame WooCommerce's heavy default borders down to
       a single brand hairline, and rebuild the product tabs as clean
       underline tabs (their default rounded-border tabs read very heavy).
   ======================================================================== */

/* Form controls + selects → one hairline + brand radius */
.woocommerce select,
select.orderby,
.woocommerce-ordering select,
.wp-block-woocommerce-catalog-sorting select,
.woocommerce .quantity .qty,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce input[type="search"],
.woocommerce textarea,
.wc-block-components-text-input input,
.wc-block-components-text-input textarea {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	background-color: #fff;
}

/* Shop toolbar "sorting" select → rounded pill like the React "Featured" menu */
select.orderby,
.woocommerce-ordering select,
.wp-block-woocommerce-catalog-sorting select {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	padding: 0.55rem 2rem 0.55rem 1rem;
	color: var(--wp--preset--color--ink);
	border-radius: 999px;
	height: 2.6rem;
}

/* ===========================================================================
   21. Shop archive — React-style hero card + horizontal pill filters
   ======================================================================== */
.sd-shop-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(2rem, 5vw, 3.5rem);
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
}
.sd-shop-hero__glow {
	position: absolute;
	right: -6%;
	bottom: -40%;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 45, 161, 0.45), transparent 70%);
	pointer-events: none;
	z-index: 0;
}
.sd-shop-hero > * { position: relative; z-index: 1; }
.sd-shop-hero .wp-block-query-title,
.sd-shop-hero .wp-block-post-title { margin: 0; }
.sd-shop-hero__sub { max-width: 30rem; font-size: 0.95rem; line-height: 1.5; }
.sd-shop-hero__sub:empty { display: none; }

.sd-shop-filterbar {
	gap: 1rem;
	padding-bottom: 0.25rem;
}
.sd-shop-pills {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.sd-shop-filterbtn,
.sd-shop-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.sd-shop-pill:hover { text-decoration: none; }
.sd-shop-filterbtn { color: var(--wp--preset--color--muted); cursor: default; }
.sd-shop-filterbtn svg { width: 0.875rem; height: 0.875rem; }
.sd-shop-pill:hover { border-color: var(--wp--preset--color--ink); }
.sd-shop-pill.is-active {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}
.sd-shop-tools {
	display: flex;
	align-items: center;
	gap: 0.85rem;
}
.sd-shop-count {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}
.sd-shop-tools .wp-block-woocommerce-catalog-sorting,
.sd-shop-tools .woocommerce-ordering { margin: 0; }

@media (max-width: 600px) {
	.sd-shop-filterbar { flex-direction: column; align-items: flex-start; }
	.sd-shop-pills { overflow-x: auto; max-width: 100%; flex-wrap: nowrap; }
	.sd-shop-tools { width: 100%; justify-content: space-between; }
}

/* Cart / order tables → hairline grid, no heavy rules */
.woocommerce table.shop_table,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-cart table.cart td.actions,
.woocommerce .cart-collaterals .cart_totals table {
	border-color: var(--wp--preset--color--border) !important;
}

/* Product grid items: ensure no stray default card borders (the image box
   carries the only border). */
.sd-products .wp-block-post,
.sd-products .wc-block-product,
.sd-products li.product,
.sd-products .wc-block-product-template__responsive-wrapper {
	border: 0;
	box-shadow: none;
}

/* ---- Product tabs (rendered by woocommerce/product-details) ----
   Replace the default rounded, multi-border tabs with minimal underline tabs. */
.woocommerce-tabs ul.tabs,
.wp-block-woocommerce-product-details ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 1.75rem;
	margin: 0 0 1.5rem;
	padding: 0 0 0;
	list-style: none;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}
.woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}
.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0 0 0.85rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
	color: var(--wp--preset--color--ink);
	border-bottom-color: var(--wp--preset--color--neon-pink);
}
.woocommerce-tabs .panel,
.woocommerce-Tabs-panel { padding-top: 0.5rem; }

/* Breadcrumbs hairline separators stay subtle */
.wc-block-breadcrumbs,
.woocommerce-breadcrumb { color: var(--wp--preset--color--muted); }

/* Related-products grid uses the same product styling as the collections */
.wp-block-woocommerce-related-products { border: 0; }

/* ===========================================================================
   15. Stardust Companion plugin — wishlist hearts, account dropdown, order
       tracking column, wishlist page. (Behaviour lives in the plugin.)
   ======================================================================== */

/* Wishlist count badge on the header heart */
.sd-wishlist-link { position: relative; }
.sd-count-badge {
	position: absolute;
	top: 0.15rem;
	right: 0.15rem;
	min-width: 1rem;
	height: 1rem;
	padding: 0 0.25rem;
	border-radius: 999px;
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1rem;
	text-align: center;
}
.sd-count-badge[hidden] { display: none; }

/* Wishlist heart injected onto product cards */
.sd-wl-heart {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 5;
	width: 2.25rem;
	height: 2.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
	background: rgba(255, 255, 255, 0.9);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.sd-wl-heart svg { width: 16px; height: 16px; }
.sd-wl-heart:hover { border-color: var(--wp--preset--color--ink); }
.sd-wl-heart:active { transform: scale(0.92); }
.sd-wl-heart.is-active {
	background: var(--wp--preset--color--neon-pink);
	border-color: var(--wp--preset--color--neon-pink);
	color: #fff;
	box-shadow: 0 6px 20px -6px rgba(255, 45, 161, 0.7);
}
.sd-wl-heart.is-active svg { fill: currentColor; }

/* PDP "save to wishlist" */
.sd-wl-pdp-wrap { display: flex; align-items: center; gap: 0.6rem; margin-top: 1rem; }
.sd-wl-heart.sd-wl-pdp { position: static; width: 2.75rem; height: 2.75rem; }
.sd-wl-pdp-label {
	font-family: var(--wp--preset--font-family--accent);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.7rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}

/* Account dropdown */
.sd-account { position: relative; display: inline-flex; }
.sd-account__panel {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	z-index: 50;
	width: 320px;
	max-width: 88vw;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	box-shadow: var(--wp--preset--shadow--lg);
	padding: 1.25rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}
.sd-account.is-open .sd-account__panel { opacity: 1; visibility: visible; transform: none; }
.sd-account__card { padding-bottom: 1rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.sd-account__name { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; line-height: 1; margin: 0.25rem 0 0; }
.sd-account__points { font-family: var(--wp--preset--font-family--accent); font-weight: 700; color: var(--wp--preset--color--neon-pink); margin: 0.4rem 0 0; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.75rem; }
.sd-account__points span { font-size: 1.15rem; }
.sd-account__orders { padding: 1rem 0; border-bottom: 1px solid var(--wp--preset--color--border); display: flex; flex-direction: column; gap: 0.55rem; }
.sd-account__order { display: flex; align-items: center; gap: 0.5rem; text-decoration: none; font-family: var(--wp--preset--font-family--accent); font-size: 0.8rem; }
.sd-account__order-num { color: var(--wp--preset--color--ink); font-weight: 600; }
.sd-account__order-total { margin-left: auto; color: var(--wp--preset--color--ink); font-weight: 700; }
.sd-account__empty { color: var(--wp--preset--color--muted); font-size: 0.8rem; }
.sd-account__links { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem; padding-top: 1rem; }
.sd-account__links a {
	font-family: var(--wp--preset--font-family--accent);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.7rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
	padding: 0.45rem 0.25rem;
}
.sd-account__links a:hover { color: var(--wp--preset--color--neon-pink); }
.sd-account__logout { color: var(--wp--preset--color--muted) !important; }

/* Status pills (account dropdown + anywhere) */
.sd-status { font-family: var(--wp--preset--font-family--accent); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.2rem 0.45rem; border-radius: 0.4rem; white-space: nowrap; }
.sd-status--completed { background: rgba(57, 255, 20, 0.16); color: #1f7a0e; }
.sd-status--processing { background: rgba(0, 229, 255, 0.16); color: #0481a0; }
.sd-status--on-hold { background: rgba(255, 45, 161, 0.12); color: var(--wp--preset--color--neon-pink); }
.sd-status--pending, .sd-status--cancelled, .sd-status--failed, .sd-status--refunded { background: var(--wp--preset--color--soft-white); color: var(--wp--preset--color--muted); }

/* Order tracking column on My Account > Orders */
.sd-track { display: flex; flex-direction: column; gap: 0.15rem; font-family: var(--wp--preset--font-family--accent); }
.sd-track__stage { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--wp--preset--color--neon-pink); }
.sd-track__carrier { font-size: 0.75rem; color: var(--wp--preset--color--ink); }
.sd-track__no { font-size: 0.72rem; color: var(--wp--preset--color--muted); background: var(--wp--preset--color--soft-white); padding: 0.1rem 0.35rem; border-radius: 0.3rem; display: inline-block; width: max-content; }
.sd-track__none { color: var(--wp--preset--color--muted); }

/* Wishlist My Account page */
.sd-wishlist-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 768px) { .sd-wishlist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sd-wl-card { display: flex; flex-direction: column; }
.sd-wl-img { display: block; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--custom--radius-xl); background: var(--wp--preset--color--soft-white); overflow: hidden; }
.sd-wl-img img { width: 100%; height: auto; mix-blend-mode: multiply; }
.sd-wl-title { font-family: var(--wp--preset--font-family--display); font-size: 1.25rem; line-height: 1.05; color: var(--wp--preset--color--ink); text-decoration: none; margin-top: 0.75rem; }
.sd-wl-title:hover { color: var(--wp--preset--color--neon-pink); }
.sd-wl-price { font-family: var(--wp--preset--font-family--accent); font-weight: 700; margin-top: 0.25rem; }
.sd-wl-actions { display: flex; gap: 0.75rem; align-items: center; margin-top: 0.75rem; }
.sd-wl-remove { font-family: var(--wp--preset--font-family--accent); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.7rem; color: var(--wp--preset--color--muted); text-decoration: none; }
.sd-wl-remove:hover { color: var(--wp--preset--color--neon-pink); }
.sd-wl-empty { color: var(--wp--preset--color--muted); }

/* ===========================================================================
   16. Product card refinements
       - Sale badge moves to the TOP-LEFT so it never collides with the
         top-right wishlist heart.
       - Add-to-cart button: compact + right-aligned (not a big centred block).
       - Variant size chips injected onto variable-product cards.
   ======================================================================== */

/* (a) Sale pill -> top-left on grid cards (heart owns the top-right). */
.sd-products .wc-block-components-product-sale-badge,
.sd-products .wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge {
	left: 0.75rem !important;
	right: auto !important;
	top: 0.75rem !important;
}

/* (d) Compact, right-aligned add-to-cart on product-collection cards. */
.sd-products .wc-block-components-product-button {
	display: flex;
	justify-content: flex-end;
	text-align: right;
	margin-top: 0.25rem;
}
.sd-products .wc-block-components-product-button .wp-block-button__link,
.sd-products .wc-block-components-product-button .wc-block-components-product-button__button {
	width: auto;
	max-width: 100%;
	padding: 0.6rem 1.15rem;
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
}

/* (c) Variant chips on cards (injected by the companion for variable products). */
.sd-variants {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0.1rem 0 0.65rem;
}
.sd-variant-chip {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 0.2rem 0.55rem;
	line-height: 1.35;
}

/* ===========================================================================
   17. Product filters sidebar (woocommerce/product-filters block family)
   ======================================================================== */
.wp-block-woocommerce-product-filters h3 { margin: 0 0 0.6rem; }
.wp-block-woocommerce-product-filters .wp-block-woocommerce-product-filter-checkbox-list { font-family: var(--wp--preset--font-family--body); font-size: 0.85rem; }
.wp-block-woocommerce-product-filters .wp-block-woocommerce-product-filter-price-slider { accent-color: var(--wp--preset--color--neon-pink); }
/* The filters block ships a small-screen overlay (a "Filter products" trigger +
   modal with its own close/apply chrome). We render filters inline in a dedicated
   sidebar column, so hide that redundant chrome and keep the controls inline. */
.wp-block-woocommerce-product-filters .wc-block-product-filters__open-overlay,
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay-header { display: none !important; }
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay,
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay-wrapper,
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay-dialog,
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay-content {
	position: static !important;
	inset: auto !important;
	transform: none !important;
	display: block !important;
	width: auto !important;
	max-width: none !important;
	height: auto !important;
	max-height: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	border: 0 !important;
}
.wp-block-woocommerce-product-filters .wc-block-product-filters__overlay-footer { margin-top: 1rem; padding: 0 !important; border: 0 !important; }

/* --- Branded filter styling (matches the Stardust page) --- */
.sd-filters { font-family: var(--wp--preset--font-family--body); }
.sd-filters .wc-block-product-filters__overlay-content { display: flex; flex-direction: column; gap: 1.5rem; }
.sd-filters h3.sd-eyebrow,
.sd-filters .wp-block-heading { margin: 0 0 0.85rem; }

/* Divider between the price group and the availability group. */
.sd-filters .wp-block-woocommerce-product-filter-status {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: 1.5rem;
}

/* Price slider: min/max value fields */
.sd-filters .wc-block-product-filter-price-slider__content { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.85rem; }
.sd-filters .wc-block-product-filter-price-slider__content .text { flex: 1; }
.sd-filters .wc-block-product-filter-price-slider input[type="text"],
.sd-filters .wc-block-product-filter-price-slider .min,
.sd-filters .wc-block-product-filter-price-slider .max {
	width: 100%;
	height: 2.6rem;
	text-align: center;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	background: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--ink);
}

/* Range track + thumbs */
.sd-filters .wc-block-product-filter-price-slider__range { width: 100%; }
.sd-filters input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 4px;
	margin: 0.5rem 0;
	background: var(--wp--preset--color--border);
	border-radius: 999px;
	accent-color: var(--wp--preset--color--neon-pink);
}
.sd-filters input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px var(--wp--preset--color--border);
	cursor: pointer;
}
.sd-filters input[type="range"]::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	border: 2px solid #fff;
	cursor: pointer;
}
.sd-filters .wc-block-product-filter-price-slider__range-bar,
.sd-filters [class*="price-slider__range-bar"] { background: var(--wp--preset--color--neon-pink) !important; }

/* Availability checkbox list */
.sd-filters .wc-block-product-filter-checkbox-list__items { display: flex; flex-direction: column; gap: 0.65rem; }
.sd-filters .wc-block-product-filter-checkbox-list__item { margin: 0; }
.sd-filters .wc-block-product-filter-checkbox-list__item label,
.sd-filters .wc-block-product-filter-checkbox-list__label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--ink);
}
.sd-filters .wc-block-product-filter-checkbox-list input[type="checkbox"] {
	width: 1.15rem;
	height: 1.15rem;
	accent-color: var(--wp--preset--color--neon-pink);
}
.sd-filters .wc-block-product-filter-checkbox-list__count { color: var(--wp--preset--color--muted); font-size: 0.75rem; }

/* Apply button → brand pink */
.sd-filters .wc-block-product-filters__apply {
	width: 100%;
	margin-top: 0.5rem;
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	border: 0;
	border-radius: var(--wp--custom--radius);
	padding: 0.85rem 1.25rem;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-size: 0.6875rem;
	cursor: pointer;
	transition: background 0.2s ease;
}
.sd-filters .wc-block-product-filters__apply:hover { background: var(--wp--preset--color--ink) !important; }

/* ===========================================================================
   18. React-prototype parity: product cards + account dropdown
   ======================================================================== */

/* ProductCard.jsx parity --------------------------------------------------- */
.sd-products .wc-block-product,
.sd-products .wp-block-post {
	position: relative;
	display: flex;
	flex-direction: column;
}

.sd-products .wc-block-components-product-image {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	overflow: hidden;
}

.sd-products .wc-block-components-product-image::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 5rem;
	height: 5rem;
	pointer-events: none;
	opacity: 0.4;
	background-image: radial-gradient(rgba(13, 13, 13, 0.15) 1px, transparent 1.5px);
	background-size: 8px 8px;
	z-index: 1;
}

.sd-products .wc-block-components-product-image a,
.sd-products .wc-block-components-product-image img {
	position: relative;
	z-index: 2;
	display: block;
	width: 100%;
	height: 100%;
}

.sd-products .wc-block-components-product-image img {
	/* WooCommerce's product-image block forces object-fit:cover (often inline),
	   and the block box defaults to content-box so padding overflows the frame —
	   together that zooms + off-centers the product. Force a contained, centered
	   fit inside the padded border-box. */
	object-fit: contain !important;
	object-position: center !important;
	box-sizing: border-box !important;
	width: 100% !important;
	height: 100% !important;
	padding: clamp(1.25rem, 8%, 2rem);
	mix-blend-mode: multiply;
	transition: transform 0.5s ease;
}

.sd-products .wc-block-components-product-image:hover img { transform: scale(1.06); }

/* Use our React-style badge cluster; hide Woo's default sale badge wrapper. */
.sd-products .wp-block-woocommerce-product-sale-badge { display: none !important; }
.sd-card-badges {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 6;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.sd-card-badge {
	display: inline-flex;
	align-items: center;
	border-radius: 0.45rem;
	padding: 0.35rem 0.65rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
}
.sd-card-badge--dark { background: var(--wp--preset--color--ink); color: #fff; }
.sd-card-badge--save { background: var(--wp--preset--color--neon-pink); color: #fff; }

/* Position-only override — NEVER redeclare background/color here: this rule
   ties with .sd-wl-heart.is-active on specificity and sits later in the file,
   so any paint property would clobber the active (pink) state and render a
   white heart on a white circle. */
.sd-products .sd-wl-heart {
	top: 0.75rem;
	right: 0.75rem;
	z-index: 7;
}

.sd-quick-add {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	z-index: 7;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: #fff;
	cursor: pointer;
	opacity: 0;
	transform: translateY(0.5rem);
	transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.2s ease;
}
.sd-products .wc-block-components-product-image .sd-quick-add {
	position: absolute;
	display: inline-flex;
	width: 2.75rem;
	height: 2.75rem;
}
.sd-quick-add:hover { background: var(--wp--preset--color--neon-pink); color: #fff; }
.sd-products .wc-block-components-product-image:hover .sd-quick-add,
.sd-products .wc-block-components-product-image:focus-within .sd-quick-add {
	opacity: 1;
	transform: translateY(0);
}

.sd-card-category {
	margin: 1rem 0 0.25rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-products .wp-block-post-title,
.sd-products .wc-block-components-product-name {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.sd-products .wp-block-post-title a,
.sd-products .wc-block-components-product-name { text-decoration: none; }
.sd-products .wp-block-post-title a:hover,
.sd-products .wc-block-components-product-name:hover { color: var(--wp--preset--color--neon-pink); }

.sd-card-rating {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.35rem;
}
.sd-card-stars {
	display: inline-flex;
	align-items: center;
	gap: 0.125rem;
}
.sd-card-star { fill: var(--wp--preset--color--border); color: var(--wp--preset--color--border); }
.sd-card-star.is-filled { fill: var(--wp--preset--color--neon-pink); color: var(--wp--preset--color--neon-pink); }
.sd-card-review-count {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
}
.sd-products .wc-block-components-product-price {
	margin-top: 0.5rem;
	font-size: 1rem;
}
.sd-products .wc-block-components-product-price del {
	margin-left: 0.35rem;
	font-size: 0.75rem;
}

/* Native Woo button is hidden — we render our own actions (interactive size
   chips + a left-aligned "Add to Cart") and keep the circular + overlay. */
.sd-products .wc-block-components-product-button { display: none !important; }

/* We render our own dynamic price inside the actions (it updates on chip click),
   so hide WooCommerce's static price range on the cards. */
.sd-products .wp-block-woocommerce-product-price,
.sd-products .wc-block-components-product-price { display: none !important; }
.sd-card-actions { margin-top: 0.1rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
/* Chips sit right under the stars — keep that gap tight. */
.sd-card-actions .sd-variants { margin-top: 0; }
.sd-card-price {
	display: block;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
}
.sd-card-price .woocommerce-Price-amount { font-weight: 700; }
.sd-card-price del { margin-left: 0.35rem; font-size: 0.8rem; opacity: 0.5; font-weight: 600; }
.sd-card-price ins { text-decoration: none; }

/* Interactive size chips */
.sd-variants { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.sd-variant-chip {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	background: #fff;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 999px;
	padding: 0.3rem 0.65rem;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.sd-variant-chip:hover { border-color: rgba(13, 13, 13, 0.45); }
.sd-variant-chip.is-active { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }

/* Left-aligned Add to Cart button (kept alongside the + overlay). Pink, with
   extra space above it to separate it from the size chips. */
.sd-card-atc {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.5rem;
	border: 0;
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 0.6875rem;
	padding: 0.7rem 1.25rem;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.12s ease, opacity 0.2s ease;
}
.sd-card-atc:hover { background: var(--wp--preset--color--ink); color: #fff; }
.sd-card-atc:active { transform: scale(0.97); }
.sd-card-atc.is-loading { opacity: 0.6; pointer-events: none; }
.sd-card-atc.is-added { background: var(--wp--preset--color--ink); }

/* AccountMenu.jsx parity --------------------------------------------------- */
.sd-account__panel {
	width: 340px;
	padding: 0;
	overflow: hidden;
	background: #fff;
	border-radius: var(--wp--custom--radius-2xl);
	box-shadow: var(--wp--preset--shadow--lg);
}
.sd-account__card {
	position: relative;
	overflow: hidden;
	padding: 1.25rem;
	background: var(--wp--preset--color--ink);
	color: #fff;
	border: 0;
}
.sd-account__glow {
	position: absolute;
	top: -3rem;
	right: -3rem;
	width: 10rem;
	height: 10rem;
	border-radius: 999px;
	background: radial-gradient(circle, rgba(255, 45, 161, 0.45), transparent 70%);
	filter: blur(22px);
	pointer-events: none;
}
.sd-account__identity {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.sd-account__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	flex: none;
	border-radius: 999px;
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.875rem;
	font-weight: 800;
}
.sd-account__identity-text { flex: 1; min-width: 0; }
.sd-account__name {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	line-height: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sd-account__since,
.sd-account__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}
.sd-account__since { margin-top: 0.25rem; }
.sd-account__tier {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.sd-account__points-row {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
}
.sd-account__points {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0.2rem 0 0;
	color: #fff;
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem;
	line-height: 1;
}
.sd-account__points svg { color: var(--wp--preset--color--neon-pink); }
.sd-account__next { text-align: right; }
.sd-account__next p:last-child {
	margin: 0.2rem 0 0;
	color: var(--wp--preset--color--neon-pink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 1rem;
	font-weight: 800;
}
.sd-account__meter {
	position: relative;
	height: 0.25rem;
	margin-top: 0.75rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.15);
	overflow: hidden;
}
.sd-account__meter span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--wp--preset--color--neon-pink), var(--wp--preset--color--neon-pink-soft), var(--wp--preset--color--neon-pink));
}
.sd-account__orders {
	padding: 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	gap: 0.375rem;
}
.sd-account__orders-heading {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 0.35rem;
	padding: 0 0.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-account__order {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.65rem;
	border-radius: var(--wp--custom--radius-xl);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.sd-account__order:hover { background: var(--wp--preset--color--soft-white); }
.sd-account__order-main { flex: 1; min-width: 0; }
.sd-account__order-top {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.sd-account__order-num {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 800;
}
.sd-account__order-meta {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.6875rem;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sd-account__order-arrow {
	color: var(--wp--preset--color--muted);
	transition: color 0.2s ease, transform 0.2s ease;
}
.sd-account__order:hover .sd-account__order-arrow {
	color: var(--wp--preset--color--neon-pink);
	transform: translateX(0.125rem);
}
.sd-status--out-for-delivery {
	background: rgba(255, 45, 161, 0.1);
	color: var(--wp--preset--color--neon-pink);
	border: 1px solid rgba(255, 45, 161, 0.4);
}
.sd-status--delivered {
	background: var(--wp--preset--color--soft-white);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--border);
}
.sd-account__links {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.75rem;
}
.sd-account__links a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border-radius: var(--wp--custom--radius);
	padding: 0.65rem;
	font-size: 0.6875rem;
	letter-spacing: 0.16em;
}
.sd-account__links a:not(.sd-account__logout) { flex: 1; }
.sd-account__logout {
	flex: none;
	width: 2.25rem;
	height: 2.25rem;
	justify-content: center;
	color: var(--wp--preset--color--muted) !important;
}
.sd-account__links a:hover { background: var(--wp--preset--color--soft-white); }

/* ===========================================================================
   19. React-prototype parity: single product, cart & checkout
   ======================================================================== */

/* Site-wide backstop: clip stray horizontal overflow (the announcement-bar
   marquee track, gallery slider strips, etc.) at the viewport edge. `clip`
   (unlike `hidden`) does NOT create a scroll container, so sticky positioning
   still works and full-bleed `.alignfull` sections — which align to the
   viewport, not beyond it — are unaffected. */
.wp-site-blocks {
	overflow-x: clip;
}

/* Keep the buy box aligned to the top of the gallery; let columns shrink so
   long content never forces page overflow. (Do NOT clip/max-width the alignfull
   sections — that caps their width below the negative-margin breakout and leaves
   uneven padding on one side.) */
.single-product .sd-pdp-grid {
	align-items: start !important;
}
.single-product .sd-pdp-grid > .wp-block-column {
	min-width: 0;
}

/* The big display title must never overflow its column at narrow widths. */
.single-product .sd-pdp-info .wp-block-post-title {
	overflow-wrap: break-word;
	hyphens: auto;
}

/* Match the React PDP: the gallery + buy box sit side-by-side only on large
   screens (≥1024px). Below that they stack full-width, so the title and buy box
   always have room (no cramming/overlap in the 782–1024 tablet range). */
@media (max-width: 1024px) {
	.single-product .sd-pdp-grid {
		flex-direction: column;
		gap: var(--wp--preset--spacing--50, 2rem);
	}
	.single-product .sd-pdp-grid > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100%;
	}
	.single-product .sd-pdp-gallery-col { max-width: 560px; }
}

/* ---- PDP hero: gallery + buy box ---------------------------------------- */
.sd-pdp-hero .woocommerce-breadcrumb,
.sd-pdp-hero .wc-block-breadcrumbs {
	margin-bottom: 1rem !important;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
}

.single-product .woocommerce-product-gallery {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 84px) minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
	max-width: 100%;
	aspect-ratio: auto;
}
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery__wrapper {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs,
.single-product .woocommerce-product-gallery ol.flex-control-nav {
	grid-column: 1;
	grid-row: 1;
	display: flex !important;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
	width: 84px;
	max-width: 84px;
	overflow: visible !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li,
.single-product .woocommerce-product-gallery ol.flex-control-nav li {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs img,
.single-product .woocommerce-product-gallery ol.flex-control-nav img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	border-radius: var(--wp--custom--radius-xl);
	border: 2px solid transparent;
	background: var(--wp--preset--color--soft-white);
	box-sizing: border-box;
}
.single-product .woocommerce-product-gallery .flex-control-thumbs li.flex-active img,
.single-product .woocommerce-product-gallery ol.flex-control-nav li.flex-active img {
	border-color: var(--wp--preset--color--ink);
}
/* Single-image products have no thumbnail strip — collapse to one column so
   there's no empty 84px gutter on the left. */
.single-product .woocommerce-product-gallery:not(:has(.flex-control-thumbs)),
.single-product .woocommerce-product-gallery:not(:has(ol.flex-control-nav)) {
	grid-template-columns: 1fr;
}
.single-product .woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery:not(:has(ol.flex-control-nav)) .woocommerce-product-gallery__wrapper {
	grid-column: 1;
}
.single-product .woocommerce-product-gallery__image {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
}
.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	height: 100%;
	max-height: 100%;
	object-fit: contain;
}

.sd-pdp-gallery-badges {
	position: absolute;
	top: 1rem;
	left: calc(84px + 1.5rem);
	z-index: 3;
	display: flex;
	gap: 0.5rem;
	pointer-events: none;
}
.sd-pdp-coa-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.65rem;
	border-radius: var(--wp--custom--radius-md);
	border: 1px solid var(--wp--preset--color--border);
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.sd-pdp-coa-badge svg { color: var(--wp--preset--color--neon-pink); flex: none; }

.sd-pdp-tagline {
	margin: 0.75rem 0 0 !important;
	font-size: 0.9375rem !important;
	line-height: 1.5;
	max-width: 28rem;
}
.sd-pdp-divider {
	border: 0 !important;
	border-top: 1px solid var(--wp--preset--color--border) !important;
	margin: 1.25rem 0 0 !important;
	width: 100%;
}

.sd-pdp-rating {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	flex-wrap: wrap;
	margin: 1rem 0 0.5rem;
}
.sd-pdp-rating__stars {
	display: inline-flex;
	gap: 0.1rem;
}
.sd-pdp-rating__stars .sd-card-star path { fill: var(--wp--preset--color--border); }
.sd-pdp-rating__stars .sd-card-star.is-filled path { fill: var(--wp--preset--color--neon-pink); }
.sd-pdp-rating__score {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-rating__count {
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.sd-pdp-rating__count:hover { color: var(--wp--preset--color--neon-pink); }

/* ---- Shared brand bits --------------------------------------------------- */
.sd-pdp-category {
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-afterpay {
	margin: 0.35rem 0 0;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
}
.sd-afterpay strong { color: var(--wp--preset--color--ink); background: rgba(57, 255, 20, 0.18); padding: 0.1rem 0.4rem; border-radius: 0.3rem; }
.sd-earn {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin-top: 0.9rem;
	padding: 0.8rem 1rem;
	border-radius: var(--wp--custom--radius-xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
}
.sd-earn__icon { display: inline-flex; color: var(--wp--preset--color--neon-pink); flex: none; }
.sd-earn__text { flex: 1; font-size: 0.85rem; color: var(--wp--preset--color--ink); line-height: 1.45; }
.sd-earn__text strong { font-family: var(--wp--preset--font-family--accent); }
.sd-earn__link {
	flex: none;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--neon-pink);
	text-decoration: none;
}
.sd-earn__link:hover { text-decoration: underline; }

/* The 7oohub Loyalty "Earn N points" label on the PDP — THE earn element on
   product pages (it live-updates per variation/quantity and respects the
   plugin's multipliers + exclusions; the theme's old static .sd-earn strip
   was removed in its favor). Restyled from the plugin's default orange/purple
   pill to the brand card language. Doubled class specificity + targeted
   !important because the plugin ships its own frontend.css for these. */
.oohub-loyalty-product-points.oohub-loyalty-product-points {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0.9rem 0 0;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-left: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	background: var(--wp--preset--color--soft-white) !important;
}
/* Swap the plugin's text "★" for the brand 4-point spark (drawn via mask) */
.oohub-loyalty-product-points .oohub-points-icon {
	flex: none;
	font-size: 0;
	line-height: 0;
	width: 18px;
	height: 18px;
	background-color: var(--wp--preset--color--neon-pink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 0 L13.5 10.5 L24 12 L13.5 13.5 L12 24 L10.5 13.5 L0 12 L10.5 10.5 Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 0 L13.5 10.5 L24 12 L13.5 13.5 L12 24 L10.5 13.5 L0 12 L10.5 10.5 Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.oohub-loyalty-product-points .oohub-points-text {
	font-size: 0.85rem;
	line-height: 1.45;
	font-weight: 500;
	color: var(--wp--preset--color--ink) !important;
}
.oohub-loyalty-product-points .oohub-points-text .oohub-points-value {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
}
.oohub-loyalty-product-points .oohub-multiplier-badge {
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 0.2rem 0.45rem;
	border-radius: 0.4rem;
	animation: none !important;
	box-shadow: none !important;
	flex: none;
}
/* highlight variant: keep the same card, no purple wash */
.oohub-loyalty-product-points.has-multiplier {
	background: var(--wp--preset--color--soft-white) !important;
	border-left-color: var(--wp--preset--color--border) !important;
}
.oohub-loyalty-product-points.has-multiplier .oohub-points-text { color: var(--wp--preset--color--ink) !important; }
/* Cards stay clean — no earn pills in product grids. */
.oohub-loyalty-loop-points.oohub-loyalty-loop-points { display: none !important; }

/* 7oohub redemption panel injected above the block cart/checkout — restyle the
   plugin's dark/orange defaults to the brand card language. */
.oohub-loyalty-block-panel { margin: 0 0 1.5rem; }
.oohub-loyalty-block-panel .oohub-loyalty-redemption-form,
.oohub-loyalty-block-panel .oohub-loyalty-checkout-info {
	background: var(--wp--preset--color--soft-white) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: var(--wp--custom--radius-xl);
	padding: 1rem 1.25rem;
	margin: 0;
}
.oohub-loyalty-block-panel .oohub-loyalty-redemption-form h3 {
	margin: 0 0 0.65rem;
	color: var(--wp--preset--color--ink) !important;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.oohub-loyalty-block-panel .oohub-points-balance .balance-value { color: var(--wp--preset--color--neon-pink) !important; }
.oohub-loyalty-block-panel .oohub-loyalty-checkout-info p { margin: 0; font-size: 0.85rem; color: var(--wp--preset--color--ink); }
.oohub-loyalty-block-panel .oohub-redeem-input { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.oohub-loyalty-block-panel .oohub-redeem-input label {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted) !important;
}
.oohub-loyalty-block-panel .oohub-redeem-input input[type="number"] {
	width: 7rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	background: #fff;
}
.oohub-loyalty-block-panel .oohub-apply-points,
.oohub-loyalty-block-panel .oohub-remove-points {
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	border: 0;
	border-radius: var(--wp--custom--radius);
	padding: 0.55rem 1.1rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}
.oohub-loyalty-block-panel .oohub-remove-points { background: var(--wp--preset--color--ink) !important; }
.oohub-loyalty-block-panel .oohub-redeem-help { margin: 0.6rem 0 0; font-size: 0.75rem; color: var(--wp--preset--color--muted); }
.oohub-loyalty-block-panel .oohub-redemption-message.success { color: #0a7a3d; }
.oohub-loyalty-block-panel .oohub-redemption-message.error { color: #c4314b; }
.oohub-loyalty-block-earn {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin: 0.75rem 0 0;
	padding: 0.8rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	background: var(--wp--preset--color--soft-white);
	font-size: 0.85rem;
	color: var(--wp--preset--color--ink);
}
.oohub-loyalty-block-earn .oohub-points-icon { color: var(--wp--preset--color--neon-pink); }
.oohub-loyalty-block-earn small { margin-left: auto; color: var(--wp--preset--color--muted); }

/* Benefit/trust row (PDP) */
.sd-benefits {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	margin-top: var(--wp--preset--spacing--60, 3rem);
	padding: 2rem;
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
}
.sd-benefit { display: flex; align-items: flex-start; gap: 1rem; }
.sd-benefit__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
	background: #fff;
	color: var(--wp--preset--color--ink);
}
.sd-benefit__text { display: flex; flex-direction: column; gap: 0.15rem; }
.sd-benefit__text strong {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.sd-benefit__text em { font-style: normal; font-size: 0.75rem; color: var(--wp--preset--color--muted); }
@media (max-width: 781px) {
	.sd-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; padding: 1.5rem; }
}

/* ---- Single product: info column ---------------------------------------- */
.single-product .wp-block-post-title { margin: 0; }
.single-product .wc-block-components-product-rating,
.single-product .woocommerce-product-rating { margin: 0.6rem 0; }
.single-product .star-rating span::before,
.single-product .wc-block-components-product-rating__stars span::before { color: var(--wp--preset--color--neon-pink); }
.single-product .star-rating::before { color: var(--wp--preset--color--border); }

.single-product p.price,
.single-product span.price,
.single-product .wp-block-woocommerce-product-price,
.single-product .sd-pdp-price .woocommerce-Price-amount {
	font-family: var(--wp--preset--font-family--display) !important;
	font-size: 2.75rem !important;
	line-height: 1 !important;
	color: var(--wp--preset--color--ink) !important;
}
.single-product .sd-pdp-price .price { margin: 0; }
.single-product p.price del,
.single-product span.price del { font-size: 1.1rem; opacity: 0.5; font-family: var(--wp--preset--font-family--accent); }
.single-product p.price ins { text-decoration: none; }

/* Add-to-cart form: variations, quantity, buttons */
.single-product form.cart { margin-top: 1.25rem; }
.single-product .variations { border: 0; margin-bottom: 1rem; }
.single-product .variations th,
.single-product .variations td { display: block; text-align: left; padding: 0; border: 0; }
/* `tr th.label` (0,3,2) outranks WooCommerce's `.woocommerce table.variations
   tr th` (0,2,3), which injects padding-right:1em + padding-bottom:block-gap
   (~24px) — that hidden padding was the real gap below SIZE / AMOUNT. Zero it
   so the gap to the chips comes purely from margin-bottom, exactly like the
   QUANTITY label. */
.single-product .variations tr th.label {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	padding: 0;
	margin: 0 0 0.65rem; /* match the QUANTITY label-to-control gap */
}
.single-product .variations td.value { margin-bottom: 0.75rem; }
.single-product .variations select { max-width: 320px; }

/* Variant chips (JS-enhanced from the variation <select>) */
.sd-pdp-variants { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.sd-pdp-chip {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	min-width: 6.875rem;
	padding: 0.85rem 1.15rem;
	border-radius: var(--wp--custom--radius);
	border: 2px solid var(--wp--preset--color--border);
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
	text-align: left;
}
.sd-pdp-chip__label {
	font-weight: 700;
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.sd-pdp-chip__price {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}
.sd-pdp-chip.is-active .sd-pdp-chip__price { color: rgba(255, 255, 255, 0.72); }
.sd-pdp-chip:hover { border-color: rgba(13, 13, 13, 0.5); }
.sd-pdp-chip.is-active { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }
.single-product .sd-has-chips select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	clip: rect(0, 0, 0, 0) !important;
	overflow: hidden !important;
	white-space: nowrap !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
.single-product .sd-has-chips .reset_variations { display: none !important; }

/* WooCommerce lays the variation add-to-cart out as a 2-col grid (qty | button).
   Force a single stacked column so quantity sits on its own row above a
   full-width Add to Cart — matching the React buy box. */
.single-product .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	gap: 0.75rem;
	grid-template-columns: none !important;
}
/* All PDP CTAs share one box model so 100%-width buttons render identically. */
.single-product .single_add_to_cart_button,
.single-product .wp-block-button__link.add_to_cart_button,
.single-product .sd-buynow {
	box-sizing: border-box !important;
}
.single-product .quantity {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	margin: 0;
	float: none;
}
.sd-qty-label {
	display: block;
	margin-bottom: 0.65rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--wp--preset--color--ink);
}
.sd-qty {
	display: inline-flex !important;
	align-items: center;
	align-self: flex-start;
	width: max-content !important;
	max-width: 100%;
	flex: 0 0 auto;
	border: 2px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius);
	overflow: hidden;
}
.sd-qty__btn {
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--ink);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}
.sd-qty__btn:hover { background: var(--wp--preset--color--soft-white); }
.sd-qty .qty {
	height: 2.75rem !important;
	width: 3rem !important;
	border: 0 !important;
	border-left: 1px solid var(--wp--preset--color--border) !important;
	border-right: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 0 !important;
	text-align: center;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	-moz-appearance: textfield;
}
.sd-qty .qty::-webkit-outer-spin-button,
.sd-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product .woocommerce-variation-price { display: none !important; }
.single-product .single_add_to_cart_button,
.single-product .wp-block-button__link.add_to_cart_button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 1.05rem 1.5rem;
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	border: 0;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-size: 0.75rem;
	box-shadow: 0 12px 40px -12px rgba(255, 45, 161, 0.6);
	transition: transform 0.15s ease, background 0.2s ease;
}
.single-product .single_add_to_cart_button:hover { background: var(--wp--preset--color--ink) !important; }
.single-product .single_add_to_cart_button:active { transform: scale(0.99); }
.single-product .woocommerce-variation-add-to-cart { margin-top: 0.5rem; }
.single-product .woocommerce-variation-price .price { font-size: 1.75rem !important; margin-bottom: 0.75rem; }

/* "Buy it now" secondary button injected after the add-to-cart button */
.sd-buynow {
	display: block;
	width: 100%;
	margin: 0;
	padding: 1.05rem 1.5rem;
	text-align: center;
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	font-size: 0.75rem;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.sd-buynow:hover { opacity: 0.88; color: #fff; }

/* ---- PDP refinements: compact buy box, no tabs, clean fonts, no Clear ---- */
/* Display price should use Bebas Neue at its native weight (700 faux-bolds it). */
.single-product p.price,
.single-product span.price,
.single-product .wp-block-woocommerce-product-price,
.single-product .woocommerce-variation-price .price { font-weight: 400 !important; }

/* Compact the variable add-to-cart form + remove the "Clear" link. */
.single-product form.cart { margin: 1rem 0 0 !important; }
.single-product .variations { margin: 0 !important; }
.single-product .variations tbody,
.single-product .variations tr { display: block; }
.single-product .variations td.value { margin: 0 !important; padding: 0 !important; }
.single-product .reset_variations { display: none !important; }
.single-product .single_variation_wrap { margin-top: 1.5rem; } /* +~10px breathing room above QUANTITY */
.single-product .woocommerce-variation.single_variation { margin: 0; }
.single-product .woocommerce-variation-price { margin: 0 0 0.85rem; }
.single-product .woocommerce-variation-add-to-cart { margin: 0; }
.single-product .sd-pdp-variants { margin-top: 0; } /* gap comes from the label's margin-bottom, matching QUANTITY */

/* Accordion triggers use the accent font (uppercase), matching the React PDP —
   not the big display face. */
.single-product .sd-faq .wp-block-details summary {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---- PDP reviews wall (React PDPReviews parity) ------------------------- */
.sd-pdp-reviews-wrap { position: relative; }

.sd-pdp-reviews__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 2rem;
}
.sd-pdp-reviews__eyebrow {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-pdp-reviews__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 400;
	line-height: 0.95;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-reviews__accent { color: var(--wp--preset--color--neon-pink); }
.sd-pdp-reviews__write {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	height: 2.75rem;
	padding: 0 1.25rem;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius-md);
	background: transparent;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.sd-pdp-reviews__write:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}
.sd-pdp-reviews__write--solo { margin-top: 1.25rem; }

.sd-pdp-reviews__aggregate {
	display: grid;
	grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
	gap: 2rem 3rem;
	align-items: center;
	margin-bottom: 2.5rem;
	padding-bottom: 2.5rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.sd-pdp-reviews__score { text-align: center; }
@media (min-width: 1024px) {
	.sd-pdp-reviews__score { text-align: left; }
}
.sd-pdp-reviews__score-num {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 8vw, 5rem);
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-reviews__score .sd-pdp-review-stars {
	display: inline-flex;
	gap: 0.15rem;
	margin-top: 0.5rem;
}
.sd-pdp-reviews__score-meta {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.sd-pdp-reviews__bars {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.sd-pdp-reviews__bar {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: left;
}
.sd-pdp-reviews__bar-label {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	width: 2.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-reviews__bar-label svg {
	width: 0.75rem;
	height: 0.75rem;
	fill: var(--wp--preset--color--neon-pink);
}
.sd-pdp-reviews__bar-track {
	flex: 1;
	height: 0.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--soft-white);
	overflow: hidden;
}
.sd-pdp-reviews__bar-fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--wp--preset--color--neon-pink);
	transition: width 0.4s ease;
}
.sd-pdp-reviews__bar-count {
	width: 2rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	text-align: right;
}

.sd-pdp-reviews__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1.5rem;
}
.sd-pdp-reviews__filters {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	max-width: 100%;
}
.sd-pdp-reviews__filter {
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.sd-pdp-reviews__filter:hover { border-color: var(--wp--preset--color--ink); }
.sd-pdp-reviews__filter.is-active {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}
.sd-pdp-reviews__sort {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.sd-pdp-reviews__sort-label {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-pdp-reviews__sort-select {
	min-width: 10.5rem;
	height: 2.5rem;
	padding: 0 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	cursor: pointer;
}

.sd-pdp-reviews__empty {
	padding: 3rem 1.5rem;
	text-align: center;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
}
.sd-pdp-reviews__empty[hidden] { display: none !important; }
.sd-pdp-reviews__empty-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-reviews__empty-copy {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

.sd-pdp-reviews__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media (min-width: 768px) {
	.sd-pdp-reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.sd-pdp-review-card {
	display: flex;
	flex-direction: column;
	padding: 1.25rem 1.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--base);
}
.sd-pdp-review-card.is-hidden,
.sd-pdp-review-card.is-filtered { display: none !important; }

.sd-pdp-review-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}
.sd-pdp-review-stars {
	display: inline-flex;
	gap: 0.1rem;
}
.sd-pdp-review-star path { fill: var(--wp--preset--color--border); }
.sd-pdp-review-star.is-filled path { fill: var(--wp--preset--color--neon-pink); }
.sd-pdp-review-card__date {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}
.sd-pdp-review-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-review-card__body {
	margin: 0.5rem 0 0;
	flex: 1;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}
.sd-pdp-review-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--border);
}
.sd-pdp-review-card__author {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
}
.sd-pdp-review-card__avatar {
	width: 2.25rem;
	height: 2.25rem;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 700;
}
.sd-pdp-review-card__meta { min-width: 0; }
.sd-pdp-review-card__name {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-review-card__verified {
	display: inline-flex;
	color: var(--wp--preset--color--neon-pink);
}
.sd-pdp-review-card__verified svg { display: block; }
.sd-pdp-review-card__city {
	display: block;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-pdp-review-card__helpful {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.sd-pdp-review-card__helpful:hover {
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
}
.sd-pdp-review-card__helpful.is-active {
	border-color: var(--wp--preset--color--neon-pink);
	background: rgba(255, 45, 161, 0.08);
	color: var(--wp--preset--color--neon-pink);
}

.sd-pdp-reviews__loadmore {
	display: flex;
	justify-content: center;
	margin-top: 2rem;
}
.sd-pdp-reviews__loadmore-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	height: 2.75rem;
	padding: 0 1.5rem;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius-md);
	background: transparent;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.sd-pdp-reviews__loadmore-btn:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--base);
}
.sd-pdp-reviews__loadmore[hidden] { display: none !important; }

.sd-pdp-reviews__none {
	padding: 2.5rem;
	text-align: center;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
}
.sd-pdp-reviews__none-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.75rem;
	font-weight: 400;
	color: var(--wp--preset--color--ink);
}
.sd-pdp-reviews__none-copy {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted);
}

@media (max-width: 767px) {
	.sd-pdp-reviews__aggregate {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
	.single-product .woocommerce-product-gallery {
		grid-template-columns: minmax(0, 64px) minmax(0, 1fr);
	}
	.single-product .woocommerce-product-gallery .flex-control-thumbs,
	.single-product .woocommerce-product-gallery ol.flex-control-nav {
		width: 64px;
		max-width: 64px;
	}
	.sd-pdp-gallery-badges { left: calc(64px + 1rem); }
}

/* ---- Review modal ------------------------------------------------------- */
body.sd-modal-open { overflow: hidden; }
.sd-review-modal[hidden] { display: none !important; }
.sd-review-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}
.sd-review-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(13, 13, 13, 0.55);
	backdrop-filter: blur(4px);
}
.sd-review-modal__panel {
	position: relative;
	z-index: 1;
	width: min(100%, 32rem);
	max-height: min(90vh, 40rem);
	overflow-y: auto;
	padding: 1.75rem;
	border-radius: var(--wp--custom--radius-2xl);
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	box-shadow: 0 24px 80px rgba(13, 13, 13, 0.18);
}
.sd-review-modal__close {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	width: 2rem;
	height: 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--soft-white);
	color: var(--wp--preset--color--ink);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}
.sd-review-modal__eyebrow {
	margin: 0 0 0.35rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.sd-review-modal__title {
	margin: 0 0 0.35rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--ink);
}
.sd-review-modal__product,
.sd-review-modal__copy {
	margin: 0 0 1rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
}
.sd-review-modal__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-bottom: 1rem;
}
.sd-review-modal__label {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.sd-review-modal__stars {
	display: inline-flex;
	gap: 0.2rem;
}
.sd-review-modal__star {
	padding: 0.15rem;
	border: 0;
	background: transparent;
	cursor: pointer;
	color: var(--wp--preset--color--border);
}
.sd-review-modal__star svg { display: block; fill: currentColor; }
.sd-review-modal__star.is-active { color: var(--wp--preset--color--neon-pink); }
.sd-review-modal__input,
.sd-review-modal__textarea {
	width: 100%;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-md);
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9rem;
	color: var(--wp--preset--color--ink);
	background: #fff;
	box-sizing: border-box;
}
.sd-review-modal__textarea { resize: vertical; min-height: 6.5rem; }
.sd-review-modal__error {
	margin: 0 0 0.75rem;
	font-size: 0.85rem;
	color: #c0392b;
}
.sd-review-modal__error[hidden],
.sd-review-modal__login[hidden],
.sd-review-modal__form[hidden] { display: none !important; }
.sd-review-modal__submit,
.sd-review-modal__signin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 2.85rem;
	border: 0;
	border-radius: var(--wp--custom--radius-md);
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	text-decoration: none;
}
.sd-review-modal__signin { background: var(--wp--preset--color--ink); }
.sd-review-modal__submit:hover,
.sd-review-modal__signin:hover { opacity: 0.9; color: #fff; }

/* Single product image gallery: clean rounded soft-white frame. The opaque
   background must sit directly behind the image so mix-blend-mode:multiply
   composites the (transparent-PNG) product against soft-white, not the page. */
.single-product .woocommerce-product-gallery {
	margin: 0;
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	overflow: hidden;
	padding: clamp(1.25rem, 4%, 2.5rem);
}
/* Clip the flexslider strip so the off-screen slides never widen the page. */
.single-product .woocommerce-product-gallery .flex-viewport {
	width: 100% !important;
	max-width: 100%;
	overflow: hidden;
}
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product .woocommerce-product-gallery__image a { display: block; background: transparent; }
.single-product .woocommerce-product-gallery__image img {
	mix-blend-mode: multiply;
	border-radius: var(--wp--custom--radius-xl);
}

/* ---- Cart block ---------------------------------------------------------- */
.wc-block-cart .wc-block-cart-items { border: 0; }
.wc-block-cart .wc-block-cart-items__row {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	padding: 1.1rem;
	margin-bottom: 1rem;
	background: #fff;
}
.wc-block-cart .wc-block-cart-items__row td { border: 0; }
.wc-block-cart-item__image img {
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--soft-white);
}
.wc-block-cart .wc-block-cart-item__product-name,
.wc-block-cart .wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

/* Mini-cart drawer: keep product names compact and readable. */
.wc-block-mini-cart__drawer .wc-block-components-product-name,
.wc-block-mini-cart__drawer .wc-block-cart-item__product-name {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
}
.wc-block-mini-cart__drawer .wc-block-components-product-metadata {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
}
.wc-block-mini-cart__drawer .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.85rem;
	font-weight: 700;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	text-transform: uppercase;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__value {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	font-size: 1.1rem;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button {
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button--outlined {
	border-color: var(--wp--preset--color--border);
	color: var(--wp--preset--color--ink);
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button:not(.wc-block-components-button--outlined) {
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	box-shadow: 0 8px 24px -8px rgba(255, 45, 161, 0.5);
}
.wc-block-mini-cart__drawer .wc-block-cart-items__row {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.wc-block-mini-cart__drawer .wc-block-cart-item__image img {
	border-radius: var(--wp--custom--radius);
	width: 56px;
	height: 56px;
	object-fit: cover;
	background: var(--wp--preset--color--soft-white);
}
.wc-block-cart .wc-block-components-product-price__value { font-family: var(--wp--preset--font-family--accent); font-weight: 700; }

/* Dark order-summary sidebar (matches React cart). The sidebar element itself
   carries .wc-block-cart__sidebar, so target it directly (not a descendant). */
.wp-block-woocommerce-cart .wc-block-cart__sidebar {
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-radius: var(--wp--custom--radius-2xl);
	padding: 1.75rem !important;
	border: 0;
}
.wp-block-woocommerce-cart .wc-block-cart__sidebar,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__value,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__totals-title,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-panel__button {
	color: #fff;
}
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__label,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__description {
	color: rgba(255, 255, 255, 0.7);
}
.wp-block-woocommerce-cart .wc-block-cart__sidebar hr,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item,
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-panel { border-color: rgba(255, 255, 255, 0.15); }
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem;
}
/* Coupon input must stay readable (dark text on its own white field). */
.wp-block-woocommerce-cart .wc-block-cart__sidebar .wc-block-components-text-input input {
	color: var(--wp--preset--color--ink);
	background: #fff;
}
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	border-radius: var(--wp--custom--radius) !important;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	box-shadow: 0 12px 40px -12px rgba(255, 45, 161, 0.6);
}

/* ---- Checkout block ------------------------------------------------------ */
.wc-block-checkout__main h2,
.wc-block-components-title {
	font-family: var(--wp--preset--font-family--display) !important;
}
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-checkout .wc-blocks-components-select__container {
	border-radius: var(--wp--custom--radius) !important;
	border-color: var(--wp--preset--color--border) !important;
}
.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	padding: 1.75rem;
}
.wc-block-components-checkout-place-order-button {
	background: var(--wp--preset--color--neon-pink) !important;
	color: #fff !important;
	border-radius: var(--wp--custom--radius) !important;
	font-family: var(--wp--preset--font-family--accent) !important;
	font-weight: 600 !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	box-shadow: 0 12px 40px -12px rgba(255, 45, 161, 0.6);
}

/* ---- Cart/checkout brand chrome (template-injected) --------------------- */
.sd-freeship {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 1.75rem;
	padding: 1rem 1.25rem;
	border-radius: var(--wp--custom--radius-xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	font-size: 0.9rem;
	color: var(--wp--preset--color--ink);
}
.sd-freeship__icon { display: inline-flex; color: var(--wp--preset--color--ink); }
.sd-freeship strong { color: var(--wp--preset--color--neon-pink); }
.sd-trustrow {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin-top: 1.75rem;
}
.sd-trustrow__item {
	padding: 0.9rem;
	text-align: center;
	border-radius: var(--wp--custom--radius-xl);
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.sd-checkout-secure {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
	margin-top: 1.5rem;
	color: var(--wp--preset--color--muted);
}
.sd-checkout-secure__item {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.6875rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* ===========================================================================
   22. Classic (shortcode) cart + checkout — full styling
   ---------------------------------------------------------------------------
   On production stores, [woocommerce_cart] / [woocommerce_checkout] are very
   common (WC < 8 and migrations). Their markup is completely different from
   the new blocks (.woocommerce-cart-form, .cart_totals, .col2-set, etc.) so
   we style them explicitly here to match the block / React design.
   ======================================================================== */

/* ---- Classic CART layout ------------------------------------------------- */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
	gap: 2rem;
	align-items: start;
}
.woocommerce-cart .woocommerce > form.woocommerce-cart-form { grid-column: 1; min-width: 0; }
.woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 2; width: 100%; }
.woocommerce-cart .woocommerce > .cart-empty,
.woocommerce-cart .woocommerce > .return-to-shop,
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-cart .woocommerce-cart-form { width: 100%; }
.woocommerce-cart .woocommerce-cart-form table.shop_table {
	width: 100%;
	border: 0;
	border-collapse: separate;
	border-spacing: 0 0.75rem;
	margin: 0;
}
.woocommerce-cart .woocommerce-cart-form .shop_table thead { display: none; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item {
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td {
	border: 0;
	padding: 1rem 1.1rem;
	vertical-align: middle;
	background: transparent;
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-thumbnail { width: 92px; padding-right: 0; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: var(--wp--preset--color--soft-white);
	border-radius: var(--wp--custom--radius);
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-name a {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-name dl.variation {
	margin: 0.25rem 0 0;
	font-size: 0.78rem;
	color: var(--wp--preset--color--muted);
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-name dl.variation dt,
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-name dl.variation dd { display: inline; margin: 0; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-name dl.variation dt::after { content: ": "; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-price,
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-subtotal {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	font-size: 1rem;
	color: var(--wp--preset--color--ink);
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-quantity .quantity { display: inline-flex; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-quantity .qty {
	width: 64px;
	height: 38px;
	text-align: center;
	border-radius: var(--wp--custom--radius);
	border: 1px solid var(--wp--preset--color--border);
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-remove { width: 36px; padding-left: 0; text-align: right; }
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-remove .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 999px;
	background: var(--wp--preset--color--soft-white);
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none;
	font-size: 1rem;
	transition: background 0.15s, color 0.15s;
}
.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-remove .remove:hover {
	background: var(--wp--preset--color--neon-pink);
	color: #fff !important;
}

/* Cart actions row (coupon + update cart) */
.woocommerce-cart .woocommerce-cart-form .shop_table .actions {
	display: block;
	background: transparent;
}
.woocommerce-cart .woocommerce-cart-form .shop_table .actions::before { content: none; }
.woocommerce-cart .woocommerce-cart-form .shop_table tr.actions td {
	padding: 1rem 0 0;
	background: transparent;
}
.woocommerce-cart .woocommerce-cart-form .coupon {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	flex-wrap: wrap;
}
.woocommerce-cart .woocommerce-cart-form .coupon label { display: none; }
.woocommerce-cart .woocommerce-cart-form .coupon input[type="text"] {
	flex: 1 1 220px;
	min-width: 0;
	height: 44px;
	padding: 0 0.9rem;
	border-radius: var(--wp--custom--radius);
	border: 1px solid var(--wp--preset--color--border);
}
.woocommerce-cart .woocommerce-cart-form button.button {
	height: 44px;
	padding: 0 1.1rem;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.78rem;
	background: var(--wp--preset--color--ink);
	color: #fff;
	border: 0;
}
.woocommerce-cart .woocommerce-cart-form button.button[name="apply_coupon"] {
	background: #fff;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--border);
}
.woocommerce-cart .woocommerce-cart-form button.button:hover { opacity: 0.9; }

/* Cart totals (right sidebar) — dark, branded */
.woocommerce-cart .cart-collaterals { width: 100%; float: none; margin: 0; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart-collaterals .cross-sells { float: none; width: 100%; }
.woocommerce-cart .cart-collaterals .cart_totals {
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-radius: var(--wp--custom--radius-2xl);
	padding: 1.75rem;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	margin: 0 0 1rem;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.woocommerce-cart .cart-collaterals .cart_totals table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	color: #fff;
	margin: 0;
}
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
	border: 0;
	padding: 0.7rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	background: transparent;
	color: #fff;
}
.woocommerce-cart .cart-collaterals .cart_totals table th {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 500;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.75);
	text-align: left;
}
.woocommerce-cart .cart-collaterals .cart_totals table td { text-align: right; font-weight: 600; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total th,
.woocommerce-cart .cart-collaterals .cart_totals .order-total td {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	color: #fff;
	border-bottom: 0;
	padding-top: 1rem;
}
.woocommerce-cart .cart-collaterals .cart_totals .shipping-calculator-button,
.woocommerce-cart .cart-collaterals .cart_totals a {
	color: var(--wp--preset--color--neon-pink);
	text-decoration: none;
}
.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout { padding: 1rem 0 0; margin: 0; }
.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	padding: 0 1.25rem;
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	font-size: 0.85rem;
	box-shadow: 0 12px 32px -10px rgba(255, 45, 161, 0.6);
	text-decoration: none;
}
.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button:hover { opacity: 0.95; }

/* Empty cart message */
.woocommerce-cart .cart-empty {
	background: var(--wp--preset--color--soft-white);
	border-radius: var(--wp--custom--radius-xl);
	padding: 2.5rem;
	text-align: center;
	color: var(--wp--preset--color--muted);
}
.woocommerce-cart .return-to-shop { text-align: center; margin-top: 1rem; }

/* ---- Classic CHECKOUT layout -------------------------------------------- */
.woocommerce-checkout form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr);
	gap: 2rem;
	align-items: start;
}
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; min-width: 0; width: 100%; }
.woocommerce-checkout form.checkout h3#order_review_heading,
.woocommerce-checkout form.checkout #order_review { grid-column: 2; width: 100%; float: none; }
.woocommerce-checkout form.checkout #customer_details .col-1,
.woocommerce-checkout form.checkout #customer_details .col-2 { float: none; width: 100%; margin-bottom: 1.5rem; }
.woocommerce-checkout form.checkout #customer_details > .col2-set { display: block; }

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	padding: 1.5rem;
}
.woocommerce-checkout .woocommerce-billing-fields + .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-shipping-fields + .woocommerce-additional-fields { margin-top: 1.25rem; }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.25rem;
	margin: 0 0 1rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.woocommerce-checkout form .form-row { margin-bottom: 0.85rem; }
.woocommerce-checkout form .form-row label {
	display: block;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.35rem;
}
.woocommerce-checkout form .form-row .input-text,
.woocommerce-checkout form .form-row select,
.woocommerce-checkout form .form-row .select2-selection {
	width: 100%;
	height: 44px;
	padding: 0 0.9rem;
	border-radius: var(--wp--custom--radius);
	border: 1px solid var(--wp--preset--color--border) !important;
	background: #fff;
	font-size: 0.95rem;
}
.woocommerce-checkout form .form-row textarea.input-text { height: auto; min-height: 88px; padding: 0.7rem 0.9rem; }
.woocommerce-checkout .select2-container .select2-selection--single {
	height: 44px !important;
	display: flex;
	align-items: center;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 0; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }

/* Order review sidebar */
.woocommerce-checkout form.checkout h3#order_review_heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.woocommerce-checkout #order_review {
	background: var(--wp--preset--color--ink);
	color: #fff;
	border-radius: var(--wp--custom--radius-2xl);
	padding: 1.75rem;
}
.woocommerce-checkout #order_review table.shop_table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	color: #fff;
	margin: 0;
}
.woocommerce-checkout #order_review table.shop_table thead { display: table-header-group; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	padding: 0.7rem 0;
	background: transparent;
	color: #fff;
}
.woocommerce-checkout #order_review table.shop_table th {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 500;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
}
.woocommerce-checkout #order_review table.shop_table tfoot th { font-size: 0.85rem; }
.woocommerce-checkout #order_review table.shop_table .order-total th,
.woocommerce-checkout #order_review table.shop_table .order-total td {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	border-bottom: 0;
}
.woocommerce-checkout #order_review table.shop_table td { text-align: right; font-weight: 600; }
.woocommerce-checkout #order_review table.shop_table .product-name {
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
	text-align: left;
	color: #fff;
}

/* Payment box */
.woocommerce-checkout #payment {
	background: transparent !important;
	color: #fff;
	margin-top: 1.25rem;
	padding: 0;
	border-radius: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--wp--custom--radius-xl);
	padding: 0.75rem 1rem;
	list-style: none;
	margin: 0 0 1rem;
}
.woocommerce-checkout #payment ul.payment_methods li {
	padding: 0.55rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.woocommerce-checkout #payment ul.payment_methods li:last-child { border-bottom: 0; }
.woocommerce-checkout #payment ul.payment_methods li label {
	color: #fff;
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 600;
}
.woocommerce-checkout #payment div.payment_box {
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.85);
	border-radius: var(--wp--custom--radius);
	padding: 0.85rem 1rem;
	font-size: 0.85rem;
	margin-top: 0.5rem;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: 0; margin: 0; }
.woocommerce-checkout #payment .place-order .terms,
.woocommerce-checkout #payment .place-order .woocommerce-terms-and-conditions-wrapper { color: rgba(255, 255, 255, 0.75); font-size: 0.78rem; margin-bottom: 0.75rem; }
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout button#place_order {
	display: block;
	width: 100%;
	height: 56px;
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
	border: 0;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	font-size: 0.9rem;
	box-shadow: 0 12px 40px -12px rgba(255, 45, 161, 0.6);
	cursor: pointer;
}
.woocommerce-checkout #payment #place_order:hover { opacity: 0.95; }

/* Coupon link + login link at the top */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-coupon-toggle {
	background: var(--wp--preset--color--soft-white);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 3px solid var(--wp--preset--color--neon-pink);
	border-radius: var(--wp--custom--radius);
	padding: 0.85rem 1rem;
	margin-bottom: 1rem;
	color: var(--wp--preset--color--ink);
	font-size: 0.9rem;
}
.woocommerce-checkout .woocommerce-info a,
.woocommerce-checkout .showcoupon,
.woocommerce-checkout .showlogin { color: var(--wp--preset--color--neon-pink); font-weight: 600; }
.woocommerce-checkout .woocommerce-form-login,
.woocommerce-checkout .woocommerce-form-coupon {
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-xl);
	padding: 1.25rem;
	margin-bottom: 1rem;
}

/* ---- Responsive: stack the 2-column layouts on tablet / phone ----------- */
@media (max-width: 900px) {
	.woocommerce-cart .woocommerce,
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
}
@media (max-width: 640px) {
	/* Classic cart table → one card per line item */
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item { display: block; padding: 0.5rem 0.75rem; }
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.4rem 0.25rem;
		text-align: right;
	}
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td::before {
		content: attr(data-title);
		font-family: var(--wp--preset--font-family--accent);
		font-size: 0.68rem;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--wp--preset--color--muted);
	}
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-thumbnail { justify-content: flex-start; padding-right: 0.25rem; }
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-thumbnail::before { display: none; }
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-remove { justify-content: flex-end; }
	.woocommerce-cart .woocommerce-cart-form .shop_table .cart_item td.product-remove::before { display: none; }
	.woocommerce-cart .woocommerce-cart-form .shop_table tr.actions td::before { display: none; }
}

/* ===========================================================================
   30. My Account auth screen (login / register) — branded "Join the Crew"
       treatment for WooCommerce's default #customer_login columns.
   ======================================================================== */

/* Intro pitch above the forms (rendered by the companion via
   woocommerce_before_customer_login_form). */
.sd-auth-intro {
	max-width: 62rem;
	margin: 0 auto 2.5rem;
	text-align: center;
}
.sd-auth-intro__title {
	margin: 0.75rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	line-height: 1;
	text-transform: uppercase;
}
.sd-auth-intro__title span { color: var(--wp--preset--color--neon-pink); }
.sd-auth-intro__benefits {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
	margin-top: 1.5rem;
}
.sd-auth-intro__benefit {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--soft-white);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}
.sd-auth-intro__benefit svg { color: var(--wp--preset--color--neon-pink); flex: none; }

/* The two WooCommerce columns → equal cards (kill the float layout) */
#customer_login {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	max-width: 62rem;
	margin: 0 auto;
}
#customer_login::before,
#customer_login::after { display: none; }
#customer_login .col-1,
#customer_login .col-2 {
	float: none;
	width: 100%;
	max-width: none;
	padding: 2.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius-2xl);
	background: var(--wp--preset--color--base);
}
/* Login-only mode (registration disabled) → single centred card */
#customer_login .col-1:only-child { grid-column: 1 / -1; max-width: 30rem; margin: 0 auto; }

#customer_login h2 {
	margin: 0 0 1.5rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
#customer_login .woocommerce-form-row { margin: 0 0 1.1rem; }
#customer_login label {
	display: block;
	margin-bottom: 0.35rem;
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
#customer_login .woocommerce-Input,
#customer_login input[type="text"],
#customer_login input[type="email"],
#customer_login input[type="password"] {
	width: 100%;
	padding: 0.7rem 0.9rem;
	font-size: 0.9rem;
}
#customer_login .show-password-input { top: 0.45rem; }

/* Remember-me row */
#customer_login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 0.9rem;
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--ink);
}
#customer_login .woocommerce-form-login__rememberme span { text-transform: none; letter-spacing: 0; }

/* Submit buttons: ink for login, pink for register — both full-width brand pills */
#customer_login button.woocommerce-button {
	display: block;
	width: 100%;
	padding: 0.85rem 1.5rem;
	border: 0;
	border-radius: var(--wp--custom--radius);
	font-family: var(--wp--preset--font-family--accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 0.15s ease, opacity 0.2s ease;
}
#customer_login button.woocommerce-button:hover { opacity: 0.9; transform: translateY(-1px); }
#customer_login .woocommerce-form-login__submit {
	background: var(--wp--preset--color--ink);
	color: #fff;
}
#customer_login .woocommerce-form-register__submit {
	background: var(--wp--preset--color--neon-pink);
	color: #fff;
}

#customer_login .lost_password {
	margin: 0.9rem 0 0;
	font-size: 0.8rem;
}
#customer_login .lost_password a { color: var(--wp--preset--color--neon-pink); font-weight: 600; text-decoration: none; }
#customer_login .lost_password a:hover { text-decoration: underline; }

#customer_login .woocommerce-privacy-policy-text p {
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--wp--preset--color--muted);
}

@media (max-width: 781px) {
	#customer_login { grid-template-columns: 1fr; }
	#customer_login .col-1,
	#customer_login .col-2 { padding: 1.5rem; }
}
