/* ==========================================================================
   Breakthety theme stylesheet
   Colors are emitted as CSS variables by functions.php (wp_add_inline_style);
   the :root block below is the static fallback used before that runs and on
   first paint. Hex values match src/index.css HSL tokens (see inc/theme-colors.php).
   ========================================================================== */

:root {
	--color-background: #000000;
	--color-foreground: #ffffff;
	--color-primary: #dfac2a;
	--color-primary-foreground: #0a0a0a;
	--color-gold-soft: #e8c773;
	--color-surface: #121212;
	--color-surface-alt: #1a1a1a;
	--color-surface-dark: #0a0a0a;
	--color-surface-contact: #0d0d0d;
	--color-border: #2e2e2e;
	--color-price: #dcb656;
	--color-muted-foreground: #b3b3b3;
	/* Structural tokens (fixed — not in Customizer); from src/index.css */
	--color-footer-background: #080808;
	--color-division-panel: #0f0f0f;
	--logo-height: 48px;
	--footer-logo-height: 64px;

	--font-body: 'Sora', system-ui, -apple-system, sans-serif;
	--font-label: 'Sora', system-ui, sans-serif;
	--font-hero: 'Oswald', 'Arial Narrow', system-ui, sans-serif;
	--font-display: 'Oswald', 'Arial Narrow', system-ui, sans-serif;

	--radius: 0.5rem;
	--btn-radius: 2px;
	--btn-height: 52px;
	--btn-padding: 16px 30px;
	--btn-font-size: 0.875rem;
	--btn-font-size-compact: 0.75rem;
	--btn-font-weight: 600;
	--btn-letter-spacing: 0.18em;
	--btn-text-transform: uppercase;
	--btn-icon-padding: 0;

	--shadow-soft: 0 4px 24px rgba(0, 0, 0, 0.6);
	--shadow-elevated: 0 26px 70px -22px rgba(0, 0, 0, 0.9);
	--shadow-gold: 0 14px 40px -14px rgba(223, 172, 42, 0.35);
	--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
	--gradient-berry: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 78%, white 18%) 0%, color-mix(in srgb, var(--color-primary) 82%, black 22%) 100%);
	--gradient-cocoa: linear-gradient(135deg, color-mix(in srgb, var(--color-surface) 100%, white 8%) 0%, var(--color-background) 100%);
	--header-height: 96px;
	--checkout-max-width: 1280px;
	--checkout-gap: 2rem;
}

/* ==========================================================================
   Reset / base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: clip; }
html { scroll-behavior: smooth; scroll-padding-top: var(--site-scroll-padding, 6rem); }
section[id] { scroll-margin-top: var(--site-scroll-padding, 6rem); }
body {
	margin: 0;
	background-color: var(--color-background);
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; display: block; }
img:not(.cover-img):not(.hero-bg-img):not(.theme-division-img):not(.theme-product-card__image-wrapper img):not(.theme-story-img-main):not(.theme-story-img-small):not(.theme-gallery-img):not(.theme-standard-image img):not(.site-logo-img):not(.theme-product-main-img):not(.theme-product-thumb-img):not(.theme-related-card__img) {
	max-width: 100%;
	height: auto;
}
.cover-img, .hero-bg-img, .theme-division-img, .theme-product-card__image-wrapper img,
.theme-gallery-img, .theme-standard-image img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
}
/* .theme-story-img-main is in-flow (aspect 4/5) — do not treat as absolute cover */
a { color: inherit; text-decoration: none; cursor: pointer; }
button { font-family: inherit; cursor: pointer; background: none; border: none; }
a.doce-btn, .doce-btn, .site-logo-link, .theme-voices-dot, .theme-voices-arrow,
.theme-faq-question, .theme-cart-btn, .theme-mobile-toggle, .theme-back-to-top,
.theme-modal-close, [role="button"], summary { cursor: pointer; }
ul { margin: 0; padding: 0; list-style: none; }
p { margin: 0 0 1em; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1.06;
	color: var(--color-foreground);
	text-transform: uppercase;
	text-wrap: balance;
	margin: 0;
}
h1 span, h2 span, h3 span, h4 span, h5 span, h6 span,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
h1 em, h2 em, h3 em, h4 em, h5 em, h6 em,
h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h6 strong {
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	font-family: inherit;
	font-weight: inherit;
}
p, li, blockquote, figcaption, dd, summary { text-wrap: pretty; }
.font-display {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1.06;
	text-transform: uppercase;
}
.font-hero {
	font-family: var(--font-hero);
	font-weight: 700;
	letter-spacing: 0.005em;
	line-height: 0.98;
	text-transform: uppercase;
}
.cs-label {
	font-family: var(--font-label);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 0.875rem;
	line-height: 1.3;
	display: inline-block;
}
.cs-display {
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.04;
	text-transform: uppercase;
}
p, span, a, li, label, input, textarea, select, small, time { font-size: max(0.875rem, 14px); }

::selection { background: color-mix(in srgb, var(--color-primary) 30%, transparent); color: var(--color-foreground); }

.container-wide { width: 100%; max-width: 80rem; margin: 0 auto; padding-inline: 1.25rem; }
@media (min-width: 640px) { .container-wide { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .container-wide { padding-inline: 2.5rem; } }

.theme-section { position: relative; padding-block: 5rem; }
@media (min-width: 768px) { .theme-section { padding-block: 7rem; } }
.theme-section-relative,
.relative { position: relative; }
.theme-shrink-0 { flex-shrink: 0; }
.theme-mt-6 { margin-top: 1.5rem; }
.theme-mt-8 { margin-top: 2rem; }

.cs-section-blush { background-color: color-mix(in srgb, var(--color-background) 96%, white 4%); color: var(--color-foreground); }
.cs-section-cream { background-color: var(--color-surface); color: var(--color-foreground); }
.cs-section-cream-alt { background-color: var(--color-surface-alt); color: var(--color-foreground); }
.cs-section-dark { background-color: var(--color-background); color: var(--color-foreground); }
.cs-section-nude { background-color: var(--color-surface-contact); color: var(--color-foreground); }

.texture-linen { position: relative; }
.texture-linen::before {
	content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0.6;
	background-image:
		repeating-linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 60%, transparent) 0 1px, transparent 1px 3px),
		repeating-linear-gradient(0deg, color-mix(in srgb, var(--color-primary) 60%, transparent) 0 1px, transparent 1px 3px);
	opacity: 0.028;
}
.texture-marble { position: relative; }
.texture-marble::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background-image:
		radial-gradient(ellipse at 15% 20%, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, transparent 48%),
		radial-gradient(ellipse at 85% 72%, color-mix(in srgb, var(--color-primary) 7%, transparent) 0%, transparent 52%);
}

.bt-gold-text {
	background: linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 80%, white 20%) 0%, var(--color-primary) 48%, color-mix(in srgb, var(--color-primary) 70%, black 30%) 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-gold { color: var(--color-primary); }
.bt-hairline { border-top: 1px solid color-mix(in srgb, var(--color-primary) 28%, transparent); }

/* ==========================================================================
   Section headings — scoped per section, NOT one global clamp (Section 2.2.5)
   ========================================================================== */
.section-heading { margin: 1.5rem 0 1rem; font-size: 2.25rem; line-height: 1.06; text-wrap: balance; font-weight: 600; }
@media (min-width: 768px) { .section-heading { font-size: 3.75rem; } }
.divisions-heading, .services-heading, .standard-heading { font-size: 2.25rem; }
@media (min-width: 768px) { .divisions-heading, .services-heading, .standard-heading { font-size: 3.75rem; } }
.shop-heading, .story-heading, .founder-heading, .gallery-heading, .voices-heading { font-size: 2.25rem; }
@media (min-width: 768px) { .shop-heading, .story-heading, .founder-heading, .gallery-heading, .voices-heading { font-size: 3.75rem; } }
.story-heading { margin: 1.5rem 0 1.5rem; } /* Lovable: mt-6 mb-6 */
.faq-heading { font-size: 2.25rem; }
@media (min-width: 768px) { .faq-heading { font-size: 3rem; } }
.contact-heading { font-size: 1.875rem; }
@media (min-width: 768px) { .contact-heading { font-size: 3rem; } }

.theme-section-head { margin-bottom: 3rem; }
.theme-section-head--max2xl { max-width: 42rem; }
.theme-section-head--split { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
.theme-section-head--split > * { min-width: 0; max-width: 100%; }
@media (min-width: 768px) { .theme-section-head--split { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.theme-section-subheading { color: var(--color-muted-foreground); font-size: 1rem; line-height: 1.625; margin-top: 1rem; }
@media (min-width: 768px) { .theme-section-subheading { font-size: 1.125rem; } }
.theme-section-subheading--dark { color: color-mix(in srgb, var(--color-foreground) 72%, transparent); }
.theme-section-bg-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.25; pointer-events: none; }
.theme-section-bg-image--soft { opacity: 0.2; }
.theme-standard-section .theme-section-bg-image { opacity: 0.3; }

/* ==========================================================================
   Eyebrow pill
   ========================================================================== */
.doce-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 7px 16px; border-radius: 999px;
	background: color-mix(in srgb, white 4%, transparent);
	border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
	color: var(--color-primary);
	font-family: var(--font-label); font-weight: 600; text-transform: uppercase;
	letter-spacing: 0.18em; font-size: 0.875rem;
	transition: all 320ms var(--transition-smooth);
}
.doce-eyebrow:hover { background: color-mix(in srgb, var(--color-primary) 12%, transparent); transform: translateY(-1px); }
.theme-icon { width: 1em; height: 1em; }
.doce-eyebrow .theme-icon { width: 14px; height: 14px; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.doce-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: var(--btn-padding); border-radius: var(--btn-radius);
	font-family: var(--font-label); font-weight: var(--btn-font-weight); font-size: var(--btn-font-size);
	letter-spacing: var(--btn-letter-spacing); text-transform: var(--btn-text-transform);
	cursor: pointer; position: relative; overflow: hidden; border: none;
	transition: transform 320ms var(--transition-smooth), box-shadow 320ms var(--transition-smooth), background-color 320ms, color 320ms;
}
.doce-btn::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,0.3) 50%, transparent 80%);
	transform: translateX(-120%); transition: transform 750ms var(--transition-smooth);
}
.doce-btn:hover::after { transform: translateX(120%); }
.doce-btn-primary { background: var(--gradient-berry); color: var(--color-primary-foreground); box-shadow: var(--shadow-gold); }
.doce-btn-primary:hover { transform: translateY(-3px); box-shadow: 0 20px 44px -14px color-mix(in srgb, var(--color-primary) 50%, transparent); }
.doce-btn-choc { background: var(--color-foreground); color: var(--color-primary-foreground); }
.doce-btn-choc:hover { transform: translateY(-3px); background: var(--color-primary); box-shadow: var(--shadow-gold); }
.doce-btn-ghost { background: transparent; color: var(--color-foreground); border: 1px solid color-mix(in srgb, white 35%, transparent); }
.doce-btn-ghost:hover { transform: translateY(-3px); background: transparent; color: var(--color-primary); border-color: var(--color-primary); }
.doce-btn-cream { background: transparent; color: var(--color-primary); border: 1px solid color-mix(in srgb, var(--color-primary) 55%, transparent); }
.doce-btn-cream:hover { transform: translateY(-3px); background: color-mix(in srgb, var(--color-primary) 12%, transparent); box-shadow: var(--shadow-gold); }
/* Hash/anchor links outside the header nav keep normal casing */
a.theme-anchor-link:not(.theme-mobile-nav-link) { text-transform: none; }

/* ==========================================================================
   Nav underline
   ========================================================================== */
.alta-nav-link { position: relative; display: inline-block; padding-bottom: 3px; transition: color 280ms ease; cursor: pointer; }
.alta-nav-link::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; border-radius: 2px;
	background: var(--color-primary); transform: scaleX(0); transform-origin: right center;
	transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}
.alta-nav-link:hover::after, .alta-nav-link:focus-visible::after { transform: scaleX(1); transform-origin: left center; }
.alta-nav-link:hover { color: var(--color-primary); }

/* ==========================================================================
   Cards
   ========================================================================== */
.doce-card {
	background: var(--color-surface); border-radius: var(--radius);
	border: 1px solid var(--color-border); box-shadow: var(--shadow-soft);
	overflow: hidden;
	transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 500ms var(--transition-smooth), border-color 400ms;
}
.doce-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-elevated); border-color: color-mix(in srgb, var(--color-primary) 50%, transparent); }

/* ==========================================================================
   Animations & scroll reveal (Section 2.1)
   ========================================================================== */
.animate-fade-in { animation: fadeIn 0.6s var(--transition-smooth) forwards; }
.animate-slide-up { animation: slideUp 0.5s var(--transition-smooth) forwards; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.cs-hover-lift { transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 500ms ease; will-change: transform; }
.cs-hover-lift:hover { transform: translateY(-6px); box-shadow: var(--shadow-elevated); }
.cs-card-hover-aggressive { position: relative; z-index: 1; transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 500ms ease; will-change: transform; }
.cs-card-hover-aggressive:hover { z-index: 10; transform: translateY(-8px); box-shadow: var(--shadow-elevated); }

[data-reveal], [data-reveal-child] {
	opacity: 0; transform: translateY(26px);
	transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1), transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-revealed, [data-reveal-child].is-revealed { opacity: 1; transform: translateY(0); }
/* Customizer preview fallback — never leave content hidden in the editor (Section 2.1.5) */
body.is-customizer [data-reveal], body.is-customizer [data-reveal-child],
body.is-customizer .reveal-item { opacity: 1 !important; transform: none !important; }

.reveal-item { opacity: 0; transform: translateY(22px); transition: opacity 800ms cubic-bezier(0.22, 1, 0.36, 1), transform 800ms cubic-bezier(0.22, 1, 0.36, 1); }
.reveal-item.is-revealed { opacity: 1; transform: translateY(0); }

[data-tilt] { transform-style: preserve-3d; transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1); }

@keyframes ken-burns {
	0% { transform: scale(1.02) translate3d(0, 0, 0); }
	50% { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
	100% { transform: scale(1.02) translate3d(0, 0, 0); }
}
.ken-burns { animation: ken-burns 24s ease-in-out infinite; will-change: transform; }

@keyframes alta-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.alta-ticker-viewport {
	position: relative; overflow: hidden;
	background: hsl(0 0% 4%);
	border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
	/* py-2.5 + cs-label 14px/1.3 — matches AnnouncementBar.tsx */
	min-height: calc(0.625rem * 2 + 14px * 1.3);
}
.alta-ticker-track {
	display: flex; align-items: center; width: max-content;
	animation: alta-ticker 48s linear infinite; will-change: transform;
	padding-block: 0.625rem;
}
.alta-ticker-viewport:hover .alta-ticker-track { animation-play-state: paused; }
.theme-ticker-pass { display: flex; align-items: center; gap: 2rem; flex-shrink: 0; padding-right: 2rem; }
.theme-ticker-item { display: flex; align-items: center; gap: 2rem; flex-shrink: 0; }
.theme-ticker-item .cs-label { color: color-mix(in srgb, white 82%, transparent); white-space: nowrap; }
.theme-ticker-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--color-primary); flex-shrink: 0; }

@keyframes doce-float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-14px) rotate(3deg); } }
.doce-float { animation: doce-float 7s ease-in-out infinite; }
.doce-float-slow { animation: doce-float 11s ease-in-out infinite; }

@keyframes icon-bounce { 0% { transform: scale(0.6); opacity: 0; } 60% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); opacity: 1; } }
[data-icon-bounce] { opacity: 0; }
[data-icon-bounce].is-bounced { animation: icon-bounce 620ms cubic-bezier(0.22, 1, 0.36, 1) forwards; animation-delay: var(--icon-bounce-delay, 0ms); }
body.is-customizer [data-icon-bounce] { opacity: 1 !important; animation: none !important; }

.parallax-bg { transform: translate3d(0, var(--parallax-y, 0px), 0); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

@media (prefers-reduced-motion: reduce) {
	[data-reveal], [data-reveal-child], .reveal-item { opacity: 1 !important; transform: none !important; transition: none !important; }
	[data-icon-bounce] { opacity: 1 !important; animation: none !important; }
	.cs-hover-lift, .cs-hover-lift:hover, .cs-card-hover-aggressive, .cs-card-hover-aggressive:hover, .doce-card, .doce-card:hover { transition: none !important; transform: none !important; }
	.ken-burns, .alta-ticker-track, .doce-float, .doce-float-slow { animation: none !important; }
	[data-tilt] { transform: none !important; }
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: sticky; top: 0; left: 0; right: 0; z-index: 50; width: 100%;
	backdrop-filter: blur(12px);
	background-color: rgba(0, 0, 0, 0.88);
	border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
	transition: box-shadow 500ms ease;
}
.site-header.is-scrolled { box-shadow: var(--shadow-soft); }
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}
.site-nav {
	position: relative; display: flex; align-items: center; justify-content: space-between;
	gap: 0.75rem; /* gap-3 — Lovable nav */
	height: 4.5rem; flex-wrap: nowrap; min-width: 0;
}
@media (min-width: 768px) { .site-nav { height: 6rem; } } /* md:h-24 */
.site-nav-links { display: none; flex: 1; min-width: 0; align-items: center; justify-content: center; gap: 1rem; padding-inline: 1rem; }
@media (min-width: 1280px) { .site-nav-links { display: flex; } }
@media (min-width: 1536px) { .theme-nav-list { gap: 1.5rem; } }
.theme-nav-list { display: flex; align-items: center; gap: 1rem; flex-wrap: nowrap; justify-content: center; min-width: 0; }
.site-logo-link { display: flex; align-items: center; flex-shrink: 0; min-width: 0; max-width: none; }
/* Header lockup — matches Lovable h-9 / md:h-12 (36px / 48px); scoped so WooCommerce pages cannot inherit fluid img sizing */
.site-header .site-logo-img {
	height: calc(var(--logo-height) * 0.75);
	width: auto;
	max-width: none;
	max-height: calc(var(--logo-height) * 0.75);
	object-fit: contain;
	display: block;
	flex-shrink: 0;
	transition: transform 500ms;
}
@media (min-width: 768px) {
	.site-header .site-logo-img {
		height: var(--logo-height);
		max-height: var(--logo-height);
	}
}
.site-logo-link:hover .site-logo-img { transform: scale(1.05); }
.site-header .site-logo-text {
	line-height: 1;
	font-family: var(--font-hero);
	text-transform: uppercase;
	color: var(--color-foreground);
	font-size: 1rem;
}
@media (min-width: 768px) {
	.site-header .site-logo-text {
		line-height: var(--logo-height);
		font-size: 1.25rem;
	}
}
/* Same lockup rules on shop, cart, checkout, PDP, and other inner pages (body.theme-no-hero) */
body.theme-no-hero .site-header .site-logo-img,
body.woocommerce-page .site-header .site-logo-img,
body.single-product .site-header .site-logo-img,
body.woocommerce-cart .site-header .site-logo-img,
body.woocommerce-checkout .site-header .site-logo-img,
body.woocommerce-account .site-header .site-logo-img {
	height: calc(var(--logo-height) * 0.75);
	width: auto;
	max-width: none;
	max-height: calc(var(--logo-height) * 0.75);
	object-fit: contain;
}
@media (min-width: 768px) {
	body.theme-no-hero .site-header .site-logo-img,
	body.woocommerce-page .site-header .site-logo-img,
	body.single-product .site-header .site-logo-img,
	body.woocommerce-cart .site-header .site-logo-img,
	body.woocommerce-checkout .site-header .site-logo-img,
	body.woocommerce-account .site-header .site-logo-img {
		height: var(--logo-height);
		max-height: var(--logo-height);
	}
}
.theme-nav-list .alta-nav-link, .theme-nav-list a { white-space: nowrap; font-family: var(--font-label); font-weight: 500; font-size: 0.875rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-foreground); }
.site-nav-actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; } /* gap-2 */
.theme-header-cta { display: none; padding: 0.75rem 1.5rem !important; font-size: 0.875rem !important; }
@media (min-width: 768px) { .theme-header-cta { display: inline-flex; } }
.theme-cart-btn,
.theme-mobile-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem; /* w-11 */
	height: 2.75rem;
	border-radius: 2px; /* rounded-sm */
	color: var(--color-foreground);
}
.theme-cart-btn {
	transition: all 300ms;
}
.theme-cart-btn:hover { background: rgba(255,255,255,0.1); transform: translateY(-2px); }
.theme-cart-btn .theme-icon,
.theme-mobile-toggle .theme-icon { width: 20px; height: 20px; }
.theme-cart-count {
	position: absolute; top: 0; right: 0; min-width: 19px; height: 19px; padding: 0 4px;
	border-radius: 999px; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center;
	background: var(--color-primary); color: var(--color-primary-foreground); font-family: var(--font-label);
}
.theme-cart-count:empty { display: none; }
.theme-mobile-toggle {
	transition: all 200ms ease; /* Lovable toggle: duration-200 */
}
.theme-mobile-toggle:hover { background: rgba(255,255,255,0.1); }
@media (min-width: 1280px) { .theme-mobile-toggle { display: none; } } /* xl:hidden */
.theme-mobile-toggle .icon-close { display: none; }
.theme-mobile-toggle[aria-expanded="true"] .icon-open { display: none; }
.theme-mobile-toggle[aria-expanded="true"] .icon-close { display: inline; }
.site-header .container-wide { overflow-x: clip; }

/* Mobile menu panel — mirrors Lovable Header.tsx (xl:hidden py-4 -mx-5 sm:-mx-6) */
.theme-mobile-menu {
	display: none;
	padding-block: 1rem;
	background-color: hsl(0 0% 4%);
	border-top: 1px solid hsl(0 0% 18%);
	margin-inline: -1.25rem;
	padding-inline: 1.25rem;
}
@media (min-width: 640px) {
	.theme-mobile-menu {
		margin-inline: -1.5rem;
		padding-inline: 1.5rem;
	}
}
@media (min-width: 1280px) {
	.theme-mobile-menu,
	.theme-mobile-menu.is-open {
		display: none !important;
	}
}
.theme-mobile-menu.is-open {
	display: block;
	animation: fadeIn 0.6s var(--transition-smooth) forwards;
}
.theme-mobile-menu-inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.25rem;
	width: 100%;
	min-width: 0;
}
.theme-mobile-menu-inner .theme-mobile-nav-link {
	align-self: flex-start;
	display: inline-block;
	max-width: 100%;
	text-align: left;
	padding: 0.75rem 0.25rem;
	font-family: var(--font-label);
	font-weight: 500;
	font-size: 14px;
	line-height: 1.3;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-foreground);
	transition: color 280ms ease;
}
.theme-mobile-menu-inner .theme-mobile-nav-link::after {
	display: none;
}
.theme-mobile-menu-inner .theme-mobile-nav-link:hover,
.theme-mobile-menu-inner .theme-mobile-nav-link:focus-visible {
	color: var(--color-primary);
}
.theme-mobile-menu-inner .theme-mobile-cta {
	margin-top: 0.75rem;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	font-size: 14px;
}

/* ==========================================================================
   Hero
   ========================================================================== */
.theme-hero-section { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; }
.theme-hero-bg { position: absolute; inset: 0; overflow: hidden; z-index: 0; background: var(--color-background); }
.theme-hero-still, .theme-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 700ms; }
.theme-hero-video { opacity: 0; }
.theme-hero-video.is-ready { opacity: 1; }
.theme-hero-video.is-ready ~ .theme-hero-still,
.theme-hero-still.is-hidden { opacity: 0; }
.theme-hero-scrim { position: absolute; inset: 0; pointer-events: none; }
.theme-hero-scrim-1 { z-index: 2; background: linear-gradient(180deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.45) 45%, rgba(0,0,0,0.92) 100%); }
.theme-hero-scrim-2 { z-index: 3; background: radial-gradient(ellipse at 78% 30%, color-mix(in srgb, var(--color-primary) 22%, transparent) 0%, transparent 58%), radial-gradient(ellipse at 12% 80%, color-mix(in srgb, var(--color-primary) 12%, transparent) 0%, transparent 55%); }
.theme-hero-mark { position: absolute; right: 5%; top: 14%; width: 8rem; opacity: 0.3; z-index: 4; pointer-events: none; display: none; }
@media (min-width: 640px) { .theme-hero-mark { display: block; } }
@media (min-width: 768px) { .theme-hero-mark { width: 13rem; } }
.theme-hero-content { position: relative; z-index: 5; padding-block: 4rem; }
@media (min-width: 768px) { .theme-hero-content { padding-block: 5rem; } }
.theme-hero-max { max-width: 48rem; }
.theme-hero-badge {
	display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 2px;
	background-color: rgba(255,255,255,0.05); color: var(--color-primary);
	border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
}
.theme-hero-title { font-size: 3rem; margin: 1.5rem 0 1.25rem; color: var(--color-foreground); max-width: 100%; overflow-wrap: break-word; }
@media (min-width: 640px) { .theme-hero-title { font-size: 4.4rem; } }
@media (min-width: 1024px) { .theme-hero-title { font-size: 6rem; } }
.theme-hero-subtitle { max-width: 36rem; font-size: 1rem; line-height: 1.625; color: rgba(255,255,255,0.78); }
@media (min-width: 768px) { .theme-hero-subtitle { font-size: 1.125rem; } }
.theme-hero-ctas { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2rem; }
@media (min-width: 640px) { .theme-hero-ctas { flex-direction: row; } }
.theme-hero-flags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 2rem; margin-top: 2.5rem; }
.theme-hero-flag { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: rgba(255,255,255,0.7); }
.theme-hero-flag-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--color-primary); }

/* ==========================================================================
   Divisions
   ========================================================================== */
.theme-divisions-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .theme-divisions-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .theme-divisions-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.theme-division-card {
	position: relative; display: block; overflow: hidden; border-radius: var(--radius);
	aspect-ratio: 4 / 5; background-color: var(--color-division-panel); border: 1px solid var(--color-border);
}
.theme-division-img { opacity: 0.7; transition: all 1200ms; }
.theme-division-card:hover .theme-division-img { transform: scale(1.07); opacity: 0.9; }
.theme-division-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 25%, rgba(0,0,0,0.92) 100%); }
.theme-division-body { position: absolute; inset-inline: 0; bottom: 0; padding: 1.5rem; z-index: 2; }
.theme-division-icon {
	display: inline-flex; width: 2.75rem; height: 2.75rem; border-radius: 2px; align-items: center; justify-content: center;
	margin-bottom: 1rem; transition: transform 500ms;
	background: color-mix(in srgb, var(--color-primary) 14%, transparent); color: var(--color-primary);
	border: 1px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
}
.theme-division-icon .theme-icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }
.theme-division-card:hover .theme-division-icon { transform: translateY(-4px); }
.theme-division-title { font-size: 1.5rem; color: var(--color-foreground); }
.theme-division-copy { font-size: 0.875rem; line-height: 1.625; margin-top: 0.4rem; color: rgba(255,255,255,0.72); }
.theme-division-line { position: absolute; top: 1.25rem; right: 1.25rem; height: 1px; width: 2.5rem; background: var(--color-primary); transform: scaleX(0); transform-origin: right; transition: transform 500ms; z-index: 2; }
.theme-division-card:hover .theme-division-line { transform: scaleX(1); }

/* ==========================================================================
   Product cards & grids (shared across homepage / shop / related — Section 31.13)
   ========================================================================== */
.theme-product-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; } /* gap-6 */
@media (min-width: 768px) { .theme-product-grid { gap: 2rem; } } /* md:gap-8 */
@media (min-width: 640px) { .theme-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.theme-product-grid.theme-featured-products { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.theme-product-card-wrap { display: flex; flex-direction: column; height: 100%; }
.theme-product-card {
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: var(--color-surface); border-radius: var(--radius); border: 1px solid var(--color-border);
	box-shadow: var(--shadow-soft); overflow: hidden;
	transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 500ms var(--transition-smooth), border-color 400ms;
}
.theme-product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-elevated); border-color: color-mix(in srgb, var(--color-primary) 50%, transparent); }
.theme-product-card__image-wrapper { position: relative; aspect-ratio: 4 / 5; width: 100%; overflow: hidden; background: var(--color-border); }
.theme-product-card__image-link {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
	color: inherit;
}
.theme-product-card__image-link img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms ease-out; }
.theme-product-card:hover .theme-product-card__image-link img { transform: scale(1.07); }
.theme-product-card__badges { position: absolute; top: 0.875rem; left: 0.875rem; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; pointer-events: none; }
.theme-product-badge {
	font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.875rem;
	padding: 0.375rem 0.875rem; border-radius: 999px; display: inline-flex; align-items: center; gap: 0.375rem;
	background: var(--color-surface); color: var(--color-primary);
}
.theme-product-badge .theme-icon { width: 12px; height: 12px; }
.theme-product-badge--outline { border: 1px solid var(--color-primary); background: rgba(0,0,0,0.55); }
.theme-product-stock { position: absolute; bottom: 0.875rem; right: 0.875rem; z-index: 3; }
.theme-product-stock--out { background: rgba(0,0,0,0.7); color: var(--color-foreground); padding: 0.375rem 0.875rem; border-radius: 999px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; }
.theme-product-card__quick-add {
	position: absolute; bottom: 0.875rem; right: 0.875rem; z-index: 4;
	width: 3rem; height: 3rem; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--gradient-berry); color: var(--color-surface);
	border: none; padding: 0; cursor: pointer;
	opacity: 0; transform: translateY(8px);
	transition: all 400ms;
}
.theme-product-card:hover .theme-product-card__quick-add { opacity: 1; transform: translateY(0); }
.theme-product-card__quick-add:hover { transform: scale(1.1); }
.theme-product-card__quick-add .theme-icon { width: 1.25rem; height: 1.25rem; pointer-events: none; }
.theme-product-card__info { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.25rem; flex: 1; }
.theme-product-card__info-main { min-width: 0; }
.theme-product-card__title { font-family: var(--font-display); font-weight: 600; font-size: 1.1875rem; line-height: 1.375; color: var(--color-foreground); margin: 0; }
.theme-product-card__title-link { color: inherit; text-decoration: none; }
.theme-product-card__title-link:hover { color: var(--color-primary); }
@media (min-width: 768px) { .theme-product-card__title { font-size: 1.3125rem; } }
.theme-product-card__excerpt { margin-top: 0.375rem; font-size: 0.875rem; line-height: 1.625; color: var(--color-muted-foreground); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.theme-product-card__price { font-family: var(--font-display); font-weight: 600; font-size: 1.3125rem; flex-shrink: 0; color: var(--color-price); font-variant-numeric: tabular-nums; }
.theme-product-card__price .amount, .theme-product-card__price bdi { font-family: inherit; }
.theme-empty-note { color: var(--color-muted-foreground); text-align: center; padding-block: 3rem; }

/* ==========================================================================
   Story / Manifesto
   ========================================================================== */
.theme-story-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 3rem; /* gap-12 */
	align-items: center;
	min-width: 0;
}
@media (min-width: 1024px) {
	.theme-story-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 4rem; /* lg:gap-16 */
	}
}
.theme-story-media { position: relative; min-width: 0; }
@media (min-width: 1024px) { .theme-story-media { grid-column: span 6; } }
.theme-story-media-inner {
	position: relative;
	overflow: visible;
	min-width: 0;
}
.theme-story-img-main {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	border-radius: var(--radius);
	box-shadow: var(--shadow-elevated);
	object-fit: cover;
}
.theme-story-img-small {
	display: none;
	position: absolute;
	bottom: -2.5rem; /* -bottom-10 */
	right: -1.5rem; /* -right-6 */
	width: 50%;
	aspect-ratio: 1 / 1;
	border-radius: var(--radius);
	box-shadow: var(--shadow-elevated);
	object-fit: cover;
	border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
}
@media (min-width: 640px) { .theme-story-img-small { display: block; } }
.theme-story-badge {
	display: none;
	position: absolute;
	top: -1.5rem; /* -top-6 */
	left: -1rem; /* -left-4 */
	padding-block: 1rem; /* py-4 */
	padding-inline: 1.25rem; /* px-5 */
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	background-color: hsl(0 0% 4%);
	border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
}
@media (min-width: 640px) { .theme-story-badge { display: block; } }
.theme-story-badge p { margin: 0; }
.theme-story-badge-number {
	font-family: var(--font-display);
	font-size: 1.875rem; /* text-3xl */
	line-height: 1.04;
	font-weight: 600;
}
.theme-story-badge-label {
	font-size: 14px;
	line-height: 1.3;
	color: var(--color-muted-foreground);
}
.theme-story-copy { min-width: 0; }
@media (min-width: 1024px) { .theme-story-copy { grid-column: span 6; padding-left: 1.5rem; } }
.theme-story-paragraphs { display: flex; flex-direction: column; gap: 1.25rem; color: var(--color-muted-foreground); font-size: 1rem; line-height: 1.625; max-width: 36rem; margin-top: 1.5rem; }
.theme-story-quote { font-size: 1.25rem; line-height: 1.375; color: var(--color-foreground); }
@media (min-width: 768px) { .theme-story-quote { font-size: 1.5rem; } }

/* ==========================================================================
   Standard / Principles
   ========================================================================== */
.theme-standard-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .theme-standard-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; } }
.theme-standard-left { min-width: 0; }
@media (min-width: 1024px) { .theme-standard-left { grid-column: span 5; } }
.theme-standard-images { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; margin-top: 2.5rem; }
.theme-standard-image { position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 1/1; }
.theme-standard-image--offset { margin-top: 2rem; }
.theme-principles-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; min-width: 0; }
@media (min-width: 640px) { .theme-principles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .theme-principles-grid { grid-column: span 7; } }
.theme-principle-card { padding: 1.75rem; border-radius: var(--radius); background: rgba(255,255,255,0.04); border: 1px solid var(--color-border); transition: transform 500ms; }
.theme-principle-card:hover { transform: translateY(-8px); }
.theme-principle-icon { display: inline-flex; width: 3rem; height: 3rem; border-radius: 2px; align-items: center; justify-content: center; margin-bottom: 1.25rem; background: var(--gradient-berry); color: var(--color-primary-foreground); transition: transform 500ms; }
.theme-principle-icon .theme-icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; } /* Lovable w-5 h-5 */
.theme-principle-card:hover .theme-principle-icon { transform: scale(1.05); }
.theme-principle-title { font-size: 1.5rem; margin-bottom: 0.5rem; }
.theme-principle-copy { font-size: 0.875rem; line-height: 1.625; color: rgba(255,255,255,0.7); }

/* ==========================================================================
   Services
   ========================================================================== */
.theme-services-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .theme-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.theme-service-card { display: flex; gap: 1.25rem; padding: 1.75rem; border-radius: var(--radius); background: var(--color-surface); border: 1px solid var(--color-border); transition: transform 500ms; }
.theme-service-card:hover { transform: translateY(-6px); }
.theme-service-icon { display: inline-flex; width: 3rem; height: 3rem; flex-shrink: 0; border-radius: 2px; align-items: center; justify-content: center; background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary); border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent); }
.theme-service-icon .theme-icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }
.theme-service-body { min-width: 0; }
.theme-service-title { font-size: 1.5rem; margin-bottom: 0.5rem; }
.theme-service-copy { font-size: 0.875rem; line-height: 1.625; color: var(--color-muted-foreground); }
.theme-services-cta { margin-top: 2.5rem; }

/* ==========================================================================
   Founder
   ========================================================================== */
.theme-founder-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .theme-founder-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 5rem; } }
.theme-founder-media { position: relative; order: 1; }
@media (min-width: 1024px) { .theme-founder-media { grid-column: span 5; } }
.theme-founder-photo-wrap { position: relative; overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow-elevated); border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent); }
.theme-founder-photo { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: top; transform: scale(1.05); }
.theme-founder-badge {
	position: absolute;
	bottom: -1.5rem; /* -bottom-6 */
	right: -0.5rem; /* -right-2 */
	padding-block: 1rem; /* py-4 */
	padding-inline: 1.5rem; /* px-6 */
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	background-color: hsl(0 0% 4%);
	border: 1px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
}
@media (min-width: 640px) { .theme-founder-badge { right: 1.5rem; } } /* sm:right-6 */
.theme-founder-badge p { margin: 0; }
.theme-founder-badge-name {
	font-family: var(--font-display);
	font-size: 1.25rem; /* text-xl */
	line-height: 1.25;
	font-weight: 600;
	color: var(--color-foreground);
}
.theme-founder-badge-title {
	font-size: 14px;
	line-height: 1.3;
	color: var(--color-primary);
}
.theme-founder-copy { order: 2; min-width: 0; }
@media (min-width: 1024px) { .theme-founder-copy { grid-column: span 7; } }
.theme-founder-paragraphs { display: flex; flex-direction: column; gap: 1.25rem; color: var(--color-muted-foreground); font-size: 1rem; line-height: 1.625; max-width: 42rem; margin-top: 1.5rem; }
.theme-founder-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem; /* gap-4 */
	margin-top: 2.25rem; /* mt-9 */
	max-width: 32rem; /* max-w-lg */
	width: 100%;
}
.theme-founder-stat {
	padding: 1rem; /* p-4 */
	border-radius: var(--radius);
	background-color: hsl(0 0% 4%);
	border: 1px solid hsl(0 0% 18%); /* nude — Lovable stat cards */
}
.theme-founder-stat p { margin: 0; }
.theme-founder-stat-n {
	font-family: var(--font-display);
	font-size: 1.5rem; /* text-2xl */
	line-height: 1.06;
	font-weight: 600;
}
@media (min-width: 768px) { .theme-founder-stat-n { font-size: 1.875rem; } } /* md:text-3xl */
.theme-founder-stat-l { font-size: 14px; line-height: 1.3; color: var(--color-muted-foreground); margin-top: 0.25rem; } /* mt-1 */
.theme-founder-ctas { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2.25rem; }
@media (min-width: 640px) { .theme-founder-ctas { flex-direction: row; } }

/* ==========================================================================
   Gallery
   ========================================================================== */
.theme-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (min-width: 768px) { .theme-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.theme-gallery-item { position: relative; display: block; aspect-ratio: 1/1; overflow: hidden; border-radius: var(--radius); background: var(--color-surface); border: 1px solid var(--color-border); }
.theme-gallery-img { opacity: 0.8; transition: all 1200ms; }
.theme-gallery-item:hover .theme-gallery-img { transform: scale(1.1); opacity: 1; }
.theme-gallery-label {
	position: absolute; inset-inline: 0; bottom: 0; padding: 1rem; opacity: 0; transform: translateY(8px);
	transition: all 400ms; color: var(--color-primary);
	background: linear-gradient(180deg, transparent, rgba(0,0,0,0.85));
}
.theme-gallery-item:hover .theme-gallery-label { opacity: 1; transform: translateY(0); }

/* ==========================================================================
   Studio notes / testimonials carousel
   ========================================================================== */
.theme-voices-card-wrap { position: relative; }
.theme-voices-card { position: relative; overflow: hidden; border-radius: var(--radius); padding: 2rem; background: var(--color-surface); border: 1px solid var(--color-border); box-shadow: var(--shadow-soft); }
@media (min-width: 768px) { .theme-voices-card { padding: 3.5rem; } }
.theme-voices-quote-icon { position: absolute; top: -0.5rem; right: 1.5rem; width: 6rem; height: 6rem; opacity: 0.1; color: var(--color-primary); }
.theme-voices-stars { display: flex; gap: 0.25rem; margin-bottom: 1.25rem; color: var(--color-primary); }
.theme-voices-stars .theme-icon { width: 16px; height: 16px; }
.theme-voice-slide { display: none; animation: fadeIn 0.6s var(--transition-smooth); }
.theme-voice-slide.is-active { display: block; }
.theme-voice-quote { font-size: 1.25rem; line-height: 1.375; max-width: 48rem; }
@media (min-width: 768px) { .theme-voice-quote { font-size: 1.875rem; } }
.theme-voice-attribution { display: flex; align-items: center; gap: 0.75rem; margin-top: 1.75rem; }
.theme-voice-avatar { width: 2.75rem; height: 2.75rem; border-radius: 2px; display: flex; align-items: center; justify-content: center; font-size: 1.125rem; background: var(--gradient-berry); color: var(--color-primary-foreground); }
.theme-voice-name { font-size: 1.125rem; }
.theme-voice-occasion { font-size: 14px; color: var(--color-muted-foreground); }
.theme-voices-controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 2.25rem; }
.theme-voices-arrow { width: 2.75rem; height: 2.75rem; border-radius: 2px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--color-border); color: var(--color-foreground); transition: transform 300ms; }
.theme-voices-arrow:hover { transform: translateY(-2px); }
.theme-voices-dots { display: flex; align-items: center; gap: 0.5rem; margin-left: 0.75rem; }
.theme-voices-dot { height: 8px; width: 8px; border-radius: 999px; background: var(--color-border); transition: all 400ms; }
.theme-voices-dot.is-active { width: 28px; background: var(--color-primary); }

/* ==========================================================================
   FAQ
   ========================================================================== */
.theme-faq-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 1024px) { .theme-faq-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; } }
.theme-faq-left { min-width: 0; }
@media (min-width: 1024px) { .theme-faq-left { grid-column: span 4; } }
.theme-faq-list { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; }
@media (min-width: 1024px) { .theme-faq-list { grid-column: span 8; } }
.theme-faq-item { border-radius: var(--radius); overflow: hidden; transition: all 400ms; background: var(--color-surface-dark); border: 1px solid var(--color-border); }
.theme-faq-item.is-open { background: var(--color-surface-alt); border-color: color-mix(in srgb, var(--color-primary) 45%, transparent); }
.theme-faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; padding: 1.25rem 1.5rem; color: var(--color-foreground); }
.theme-faq-question:hover span { color: var(--color-primary); }
.theme-faq-chevron { flex-shrink: 0; transition: transform 400ms; color: var(--color-primary); }
.theme-faq-item.is-open .theme-faq-chevron { transform: rotate(180deg); }
.theme-faq-answer { max-height: 0; overflow: hidden; transition: max-height 400ms ease; }
.theme-faq-question span {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.375;
}
@media (min-width: 768px) {
	.theme-faq-question span { font-size: 1.25rem; }
}
.theme-faq-answer p { padding: 0 1.5rem 1.5rem; margin: -0.25rem 0 0; font-size: 0.9375rem; line-height: 1.625; color: var(--color-muted-foreground); }
.theme-faq-item.is-open .theme-faq-answer { max-height: 600px; }

/* ==========================================================================
   Contact
   ========================================================================== */
/* Contact panel reveal: opacity only — transform breaks absolute inset-0 layers inside .theme-contact-media */
.theme-contact-panel[data-reveal] {
	opacity: 0;
	transform: none;
	transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1);
}
.theme-contact-panel[data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

.theme-contact-panel {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow-elevated);
	border: 1px solid hsl(0 0% 18%);
}
@media (min-width: 1024px) {
	.theme-contact-panel { flex-direction: row; }
}
.theme-contact-media,
.theme-contact-form-wrap {
	min-width: 0;
}
@media (min-width: 1024px) {
	.theme-contact-media,
	.theme-contact-form-wrap { flex: 1 1 50%; }
}
/* Lovable: relative min-h-[320px] lg:min-h-full */
.theme-contact-media {
	position: relative;
	min-height: 20rem;
	overflow: hidden;
	isolation: isolate;
}
@media (min-width: 1024px) {
	.theme-contact-media { min-height: 100%; align-self: stretch; }
}
.theme-contact-media-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.theme-contact-media-scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(160deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.9) 100%);
	pointer-events: none;
}
.theme-contact-media-body {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 2rem;
}
@media (min-width: 768px) { .theme-contact-media-body { padding: 2.5rem; } }
.theme-contact-mark {
	position: relative;
	width: 4rem; /* w-16 */
	height: auto;
	max-width: 4rem;
	margin-bottom: 1.25rem; /* mb-5 */
	opacity: 0.9;
	flex-shrink: 0;
	object-fit: contain;
}
.theme-contact-media-quote {
	margin: 0;
	font-size: 1.5rem; /* text-2xl */
	line-height: 1.06;
	color: var(--color-foreground);
}
@media (min-width: 768px) { .theme-contact-media-quote { font-size: 1.875rem; } } /* md:text-3xl */
.theme-contact-form-wrap {
	padding: 2rem;
	background-color: hsl(0 0% 7%);
}
@media (min-width: 768px) { .theme-contact-form-wrap { padding: 3rem; } }
@media (min-width: 1024px) { .theme-contact-form-wrap { padding: 3.5rem; } } /* lg:p-14 = 3.5rem */
.theme-contact-info-list { display: flex; flex-direction: column; gap: 0.75rem; margin: 2rem 0; }
.theme-contact-info-item { display: flex; align-items: center; gap: 1rem; padding: 0.75rem; border-radius: var(--radius); transition: background-color 200ms; }
.theme-contact-info-item:hover { background: var(--color-surface-alt); }
.theme-contact-info-icon { width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: 2px; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--color-primary) 12%, transparent); color: var(--color-primary); border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent); }
.theme-contact-info-text { min-width: 0; display: block; }
.theme-contact-info-label { display: block; color: var(--color-muted-foreground); }
.theme-contact-info-value { display: block; font-size: 0.9375rem; color: var(--color-foreground); }
.theme-contact-submit-btn { width: 100%; }
@media (min-width: 640px) { .theme-contact-submit-btn { width: auto; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { position: relative; overflow: hidden; background-color: var(--color-footer-background); color: var(--color-foreground); border-top: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent); }
.site-footer-mark { position: absolute; right: -2.5rem; bottom: -2.5rem; width: 16rem; opacity: 0.08; pointer-events: none; }
@media (min-width: 768px) { .site-footer-mark { width: 24rem; } }
.site-footer-inner { position: relative; padding-block: 4rem 2rem; }
@media (min-width: 1024px) { .site-footer-inner { padding-block: 6rem 2.5rem; } }
.site-footer-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 768px) { .site-footer-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3.5rem; } }
.site-footer-brand { grid-column: span 12; }
@media (min-width: 768px) { .site-footer-brand { grid-column: span 5; } }
/* Footer lockup — matches Lovable h-14 / md:h-16 (56px / 64px) */
.site-footer-brand .site-logo-img {
	height: calc(var(--footer-logo-height) * 0.875);
	width: auto;
	max-width: none;
	max-height: calc(var(--footer-logo-height) * 0.875);
	object-fit: contain;
	display: block;
	transition: transform 500ms;
}
@media (min-width: 768px) {
	.site-footer-brand .site-logo-img {
		height: var(--footer-logo-height);
		max-height: var(--footer-logo-height);
	}
}
.site-footer-brand .site-logo-link:hover .site-logo-img { transform: scale(1.05); }
.site-footer-brand .site-logo-text {
	line-height: 1.1;
	font-family: var(--font-hero);
	text-transform: uppercase;
	color: var(--color-foreground);
	font-size: 1.125rem;
}
@media (min-width: 768px) {
	.site-footer-brand .site-logo-text {
		line-height: var(--footer-logo-height);
		font-size: 1.25rem;
	}
}
.site-footer-tagline { max-width: 28rem; font-size: 0.9375rem; line-height: 1.625; color: var(--color-muted-foreground); margin-top: 1.5rem; }
.site-footer-motto { margin-top: 1.25rem; font-size: 0.875rem; color: var(--color-primary); }
.site-footer-links, .site-footer-divisions { grid-column: span 12; }
@media (min-width: 768px) { .site-footer-links { grid-column: span 3; } .site-footer-divisions { grid-column: span 4; } }
.site-footer-links h3, .site-footer-divisions h3 { margin-bottom: 1.25rem; color: var(--color-primary); }
.site-footer-links ul { display: flex; flex-direction: column; gap: 0.75rem; }
.site-footer-links a { font-size: 0.875rem; text-align: left; color: var(--color-muted-foreground); }
.theme-footer-division-list { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: 0.875rem; color: var(--color-muted-foreground); }
@media (max-width: 767px) {
	.theme-footer-division-list { padding-right: 0.75rem; box-sizing: border-box; }
}
.theme-footer-cta { margin-top: 1.75rem; padding: 0.75rem 1.5rem !important; }
.site-footer-bottom { margin-top: 3.5rem; padding-top: 1.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; border-top: 1px solid var(--color-border); }
@media (min-width: 640px) { .site-footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; } }
.site-footer-bottom p { font-size: 0.875rem; color: var(--color-muted-foreground); margin: 0; }
.site-footer-bottom a { text-decoration: underline; text-underline-offset: 4px; }
.site-footer-bottom a:hover { color: var(--color-primary); }
.theme-footer-founder { display: inline-flex; align-items: center; gap: 0.375rem; }

.theme-back-to-top {
	position: fixed; bottom: 2rem; right: 2rem; z-index: 50; width: 2.75rem; height: 2.75rem; border-radius: 999px;
	display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-gold);
	background: var(--gradient-berry); color: var(--color-surface);
	opacity: 0; pointer-events: none; transition: all 300ms;
}
@media (min-width: 768px) { .theme-back-to-top { width: 3rem; height: 3rem; } }
.theme-back-to-top.is-visible { opacity: 1; pointer-events: auto; }
.theme-back-to-top:hover { transform: scale(1.1) translateY(-4px); }

/* ==========================================================================
   Cart drawer & overlay
   ========================================================================== */
#theme-cart-overlay { position: fixed; inset: 0; z-index: 55; background: rgba(20,10,4,0.45); backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity 300ms; }
body.cart-open #theme-cart-overlay { opacity: 1; pointer-events: auto; }
#theme-cart-drawer {
	position: fixed; right: 0; top: 0; height: 100%; width: 100%; max-width: 28rem; z-index: 56;
	display: flex; flex-direction: column; background: var(--color-surface); box-shadow: var(--shadow-elevated);
	transform: translateX(100%); transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
}
body.cart-open #theme-cart-drawer { transform: translateX(0); }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }
.theme-cart-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid var(--color-border); }
.theme-cart-drawer-head h2 { font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; line-height: 1.06; text-transform: uppercase; }
.theme-cart-close { width: 2.5rem; height: 2.5rem; border-radius: 999px; display: flex; align-items: center; justify-content: center; transition: all 300ms; color: var(--color-foreground); }
.theme-cart-close:hover { background: rgba(255,255,255,0.08); transform: rotate(90deg); }
.theme-cart-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; text-align: center; }
.theme-cart-empty-icon { width: 5rem; height: 5rem; border-radius: 999px; display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; background: var(--color-surface-alt); color: var(--color-primary); }
.theme-cart-empty-icon .theme-icon { width: 2rem; height: 2rem; }
.theme-cart-empty p { color: var(--color-muted-foreground); margin-bottom: 1.5rem; }
.theme-cart-items { flex: 1; overflow: auto; padding: 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.theme-cart-item { display: flex; gap: 1rem; padding: 0.75rem; border-radius: 1rem; transition: background-color 200ms; }
.theme-cart-item:hover { background: var(--color-surface-alt); }
.theme-cart-item-img { width: 5rem; height: 6rem; flex-shrink: 0; border-radius: 0.75rem; overflow: hidden; background: var(--color-border); }
.theme-cart-item-img img { width: 100%; height: 100%; object-fit: cover; }
.theme-cart-item-body { flex: 1; min-width: 0; }
.theme-cart-item-title { display: block; font-family: var(--font-display); font-size: 0.9375rem; line-height: 1.375; color: var(--color-foreground); }
.theme-cart-item-title:hover { color: var(--color-primary); }
.theme-cart-item-price { font-size: 0.875rem; font-weight: 600; margin: 0.25rem 0 0; color: var(--color-price); }
.theme-cart-qty-value { font-size: 0.875rem; width: 1.5rem; text-align: center; font-variant-numeric: tabular-nums; }
.theme-cart-item-variation { font-size: 0.75rem; color: var(--color-muted-foreground); margin: 0.125rem 0 0; }
.theme-cart-item-controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; }
.theme-cart-qty-btn { width: 1.75rem; height: 1.75rem; border-radius: 999px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--color-border); color: var(--color-foreground); }
.theme-cart-qty-btn:hover { background: var(--color-surface-alt); }
.theme-cart-remove { margin-left: auto; font-size: 0.875rem; color: var(--color-muted-foreground); }
.theme-cart-remove:hover { color: var(--color-price); }
.theme-cart-drawer-footer { padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; border-top: 1px solid var(--color-border); }
.theme-cart-subtotal-row { display: flex; justify-content: space-between; align-items: baseline; }
.theme-cart-subtotal-value { font-family: var(--font-display); font-weight: 600; font-size: 1.875rem; color: var(--color-price); }
.theme-cart-checkout-btn { width: 100%; }
.theme-cart-empty-btn { display: flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; padding: 0.5rem; font-size: 14px; color: var(--color-muted-foreground); }
.theme-cart-empty-btn:hover { color: var(--color-price); }

/* ==========================================================================
   Contact modal
   ========================================================================== */
.theme-modal-overlay { position: fixed; inset: 0; z-index: 65; background: rgba(0,0,0,0.8); opacity: 0; pointer-events: none; transition: opacity 250ms; }
body.contact-open .theme-modal-overlay { opacity: 1; pointer-events: auto; }
.theme-contact-modal {
	position: fixed; left: 50%; top: 50%; z-index: 66; width: calc(100% - 2rem); max-width: 32rem; max-height: 90vh; overflow-y: auto;
	transform: translate(-50%, -48%) scale(0.96); opacity: 0; pointer-events: none;
	background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 1.75rem; padding: 1.75rem;
	box-shadow: var(--shadow-elevated); transition: opacity 250ms, transform 250ms;
}
body.contact-open .theme-contact-modal { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
@media (min-width: 640px) { .theme-contact-modal { padding: 2rem; } }
.theme-modal-close { position: absolute; right: 1.25rem; top: 1.25rem; opacity: 0.7; color: var(--color-foreground); }
.theme-modal-close:hover { opacity: 1; }
.theme-contact-modal-body h2 { font-size: 1.875rem; line-height: 1.06; margin-bottom: 0.5rem; }
.theme-contact-modal-desc { color: var(--color-muted-foreground); font-size: 0.875rem; margin-bottom: 1.5rem; }
.theme-contact-form { display: flex; flex-direction: column; gap: 1rem; }
.theme-form-row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .theme-form-row { grid-template-columns: repeat(2, 1fr); } }
.theme-field label {
	display: block;
	font-family: var(--font-label);
	font-weight: 600;
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin-bottom: 0.375rem;
	color: var(--color-foreground);
}
.theme-field input, .theme-field textarea {
	width: 100%; padding: 0.75rem 1rem; border-radius: 1rem; font-size: 0.875rem; font-family: var(--font-body);
	color: var(--color-foreground); background: var(--color-surface-alt); border: 1px solid var(--color-border);
}
.theme-field textarea { resize: none; }
.theme-field input:focus, .theme-field textarea:focus { outline: none; box-shadow: 0 0 0 2px var(--color-primary); }
.theme-form-actions { display: flex; justify-content: flex-end; }
.theme-form-status { min-height: 1.25rem; font-size: 14px; }
.theme-form-status[data-state="error"] { color: #e5484d; }
.theme-form-status[data-state="sending"] { color: var(--color-muted-foreground); }
.theme-contact-success { text-align: center; padding-block: 2rem; }
.theme-contact-success-icon { display: inline-flex; width: 4rem; height: 4rem; align-items: center; justify-content: center; margin: 0 auto 1rem; border-radius: 2px; background: var(--gradient-berry); color: var(--color-surface); }
.theme-contact-success h3 { font-size: 1.5rem; margin-bottom: 0.5rem; }
.theme-contact-success p { font-size: 14px; color: var(--color-muted-foreground); }

/* ==========================================================================
   Single product
   ========================================================================== */
body.theme-no-hero main.site-main.theme-single-product-main,
body.theme-no-hero .site-main.single-product-main {
	padding-top: 6rem !important;
	padding-bottom: 6rem;
}
@media (min-width: 768px) {
	body.theme-no-hero main.site-main.theme-single-product-main,
	body.theme-no-hero .site-main.single-product-main {
		padding-top: 7rem !important;
	}
}
.theme-single-product-main { padding-block: 0; }
.theme-product-breadcrumb { padding-block: 1.5rem; font-size: 0.875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-muted-foreground); font-family: var(--font-label); font-weight: 500; }
.theme-product-breadcrumb a:hover { color: var(--color-primary); }
.theme-breadcrumb-sep { margin: 0 0.5rem; opacity: 0.5; }
.theme-breadcrumb-current { color: var(--color-foreground); }
.theme-product-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding-top: 0.5rem; min-width: 0; }
@media (min-width: 1024px) { .theme-product-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; } }
.theme-product-gallery { min-width: 0; max-width: 100%; }
@media (min-width: 1024px) { .theme-product-gallery { grid-column: span 7; } }
.theme-product-main-img-btn { display: block; width: 100%; aspect-ratio: 4/5; overflow: hidden; border-radius: 2rem; box-shadow: var(--shadow-elevated); background: var(--color-border); position: relative; cursor: zoom-in; border: 1px solid var(--color-border); }
.theme-product-main-img { width: 100%; height: 100%; object-fit: cover; display: block; position: static !important; transition: transform 700ms; }
.theme-product-main-img-btn:hover .theme-product-main-img { transform: scale(1.05); }
.theme-product-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; position: static !important; }
.theme-product-thumbnails { margin-top: 1rem; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; flex-wrap: wrap; max-width: 100%; }
.theme-product-thumb { position: relative; aspect-ratio: 1/1; overflow: hidden; border-radius: 0.75rem; transition: all 300ms; background: var(--color-border); border: 1px solid var(--color-border); }
.theme-product-thumb:hover { transform: translateY(-4px); }
.theme-product-thumb.is-active { border: 2px solid var(--color-primary); }
.theme-product-info { min-width: 0; max-width: 100%; }
@media (min-width: 1024px) { .theme-product-info { grid-column: span 5; position: sticky; top: 7rem; align-self: start; } }
.theme-product-title { font-size: 1.875rem; line-height: 1.02; margin: 1.25rem 0; font-family: var(--font-display); font-weight: 600; text-transform: uppercase; }
@media (min-width: 768px) { .theme-product-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .theme-product-title { font-size: 3.1rem; } }
.theme-product-price-row { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 1.5rem; }
.theme-product-price { font-family: var(--font-display); font-weight: 600; font-size: 2.25rem; color: var(--color-price); }
.theme-product-price-plain { background: none; -webkit-text-fill-color: initial; }
.theme-product-price .amount { color: var(--color-price); background: none; -webkit-text-fill-color: initial; }
.theme-product-currency { font-size: 14px; color: var(--color-muted-foreground); }
.theme-product-stock-flag { display: inline-flex; margin-bottom: 1.5rem; padding: 0.5rem 1rem; border-radius: 2px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--color-price); border: 1px solid color-mix(in srgb, var(--color-primary) 45%, transparent); }
.theme-product-description { color: var(--color-muted-foreground); line-height: 1.625; margin-bottom: 2rem; font-size: 1rem; overflow-wrap: break-word; word-break: break-word; }
.theme-quantity-label { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-muted-foreground); margin-bottom: 0.75rem; font-family: var(--font-label); font-weight: 600; }
.theme-quantity-wrapper { display: inline-flex; align-items: center; border-radius: 999px; background: var(--color-surface-alt); border: 1px solid var(--color-border); }
.theme-qty-minus, .theme-qty-plus { padding: 0.75rem 1rem; transition: background-color 200ms; color: var(--color-foreground); }
.theme-qty-minus:hover, .theme-qty-plus:hover { background: color-mix(in srgb, var(--color-background) 96%, white 4%); }
.theme-qty-value { min-width: 3rem; padding: 0.75rem 1.25rem; text-align: center; font-variant-numeric: tabular-nums; font-size: 1rem; color: var(--color-foreground); }
.theme-qty-input-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.theme-qty-input { -moz-appearance: textfield; appearance: textfield; width: 3rem; text-align: center; background: transparent; border: none; color: var(--color-foreground); font-variant-numeric: tabular-nums; font-size: 1rem; padding: 0.75rem 0; }
.theme-qty-input::-webkit-outer-spin-button, .theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.theme-shipping-note { display: flex; align-items: center; gap: 0.625rem; font-size: 14px; border-radius: var(--radius); padding: 0.75rem 1rem; margin-top: 1.25rem; background: var(--color-surface-alt); color: var(--color-muted-foreground); }
.theme-product-details { margin-top: 2.5rem; border-top: 1px solid var(--color-border); }
.theme-details-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; padding-block: 1.25rem; text-align: left; color: var(--color-foreground); }
.theme-details-toggle:hover span { color: var(--color-primary); }
.theme-details-chevron { transition: transform 300ms; }
.theme-details-toggle[aria-expanded="true"] .theme-details-chevron { transform: rotate(180deg); }
.theme-details-content { padding-bottom: 1.5rem; overflow-wrap: break-word; word-break: break-word; }
.theme-details-content ul { display: flex; flex-direction: column; gap: 0.75rem; }
.theme-details-content li { font-size: 15px; color: var(--color-muted-foreground); padding-left: 1.25rem; position: relative; }
.theme-details-content li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; border-radius: 999px; background: var(--color-primary); }
.theme-related-head .section-heading { font-size: 1.875rem; }
@media (min-width: 768px) { .theme-related-head .section-heading { font-size: 3rem; } }

.theme-related-products { padding-block: 5rem 0; border-top: 1px solid var(--color-border); margin-top: 2rem; }
.theme-related-head { margin-bottom: 2.5rem; }
.theme-related-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .theme-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .theme-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.theme-related-card { display: flex; flex-direction: column; gap: 0.75rem; text-decoration: none; color: inherit; min-width: 0; }
.theme-related-card__media { display: block; aspect-ratio: 4/5; overflow: hidden; border-radius: 1rem; background: var(--color-border); border: 1px solid var(--color-border); }
.theme-related-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms; }
.theme-related-card:hover .theme-related-card__img { transform: scale(1.03); }
.theme-related-card__cat { display: block; }
.theme-related-card__title { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; line-height: 1.15; text-transform: uppercase; }
.theme-related-card__price { font-family: var(--font-display); font-size: 1.125rem; color: var(--color-price); }

.theme-product-purchase { margin-bottom: 0; }
.theme-product-cta-row { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .theme-product-cta-row { flex-direction: row; align-items: stretch; } }
.theme-product-cta-row .single_add_to_cart_button,
.theme-product-cta-row .theme-btn-primary { flex: 1 1 auto; }
.theme-product-ask-btn { flex: 1 1 auto; justify-content: center; }
.theme-variation-attrs { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 1.5rem; }
.single-product [data-attribute-group] { position: relative; }
.theme-variation-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.25rem; }
.theme-variation-pill,
.theme-attr-pill {
	padding: 0.5rem 1rem;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background: var(--color-surface-alt);
	color: var(--color-foreground);
	font-size: 14px;
	font-family: var(--font-label);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: border-color 200ms, background-color 200ms, color 200ms;
}
.single-product .theme-variation-pill:not(.is-selected) {
	color: #fff;
}
.theme-variation-pill:hover:not(:disabled),
.theme-attr-pill:hover { border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-border)); }
.theme-variation-pill.is-selected,
.theme-attr-pill.is-active {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface-alt));
	color: var(--color-foreground);
}
.theme-variation-pill:disabled { opacity: 0.45; cursor: not-allowed; }
.single-product .theme-variable-product-form .theme-attr-select-hidden,
.single-product .theme-attr-select-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.theme-cart-item-meta {
	list-style: none;
	margin: 0.25rem 0 0;
	padding: 0;
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}
.theme-cart-item-meta li { margin: 0; }
.theme-cart-meta-label { text-transform: capitalize; }

/* Hide default WC chrome on PDP */
.single-product .woocommerce-product-gallery,
.single-product .product_meta,
.single-product .woocommerce-tabs,
.single-product .woocommerce-breadcrumb,
.single-product .reset_variations { display: none !important; }
.single-product .single_variation .woocommerce-variation-price,
.single-product .single_variation .woocommerce-variation-availability { display: none !important; }

/* Variable product attribute table */
.single-product .variations.shop_attributes tbody,
.single-product .variations tbody tr,
.single-product .variations tbody td { display: block; width: 100%; }
.single-product .variations tbody td.label { padding-bottom: 0.25rem; }
.single-product .variations tbody td.value { padding-top: 0; }
.theme-attr-select-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.single-product .theme-product-layout { min-width: 0; }
.single-product .theme-product-gallery, .single-product .theme-product-info { min-width: 0; max-width: 100%; }
.single-product .theme-product-thumbnails { flex-wrap: wrap; max-width: 100%; }
.single-product .theme-product-purchase .theme-qty-block { margin-bottom: 1.5rem; }
.single-product .single_add_to_cart_button { flex: 1 1 auto; min-width: 160px; }
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-variation-description,
.single-product .posted_in { overflow-wrap: break-word; word-break: break-word; }

/* Lightbox */
.theme-lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,0.94); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.theme-lightbox[hidden] { display: none; }
.theme-lightbox img { max-width: 100%; max-height: 90vh; object-fit: contain; border-radius: 1rem; }
.theme-lightbox-close { position: absolute; top: 1rem; right: 1rem; width: 2.75rem; height: 2.75rem; border-radius: 999px; background: color-mix(in srgb, var(--color-foreground) 10%, transparent); color: var(--color-foreground); display: flex; align-items: center; justify-content: center; }
.theme-lightbox-close:hover { background: rgba(255,255,255,0.25); }

/* ==========================================================================
   WooCommerce: add-to-cart button overrides (Section 11.4.1)
   ========================================================================== */
.single_add_to_cart_button.button,
.add_to_cart_button.button,
a.single_add_to_cart_button,
a.add_to_cart_button {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
	border: none !important;
	border-radius: var(--btn-radius) !important;
	min-height: var(--btn-height) !important;
	padding: var(--btn-padding) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-family: var(--font-body) !important;
	font-size: var(--btn-font-size) !important;
	font-weight: var(--btn-font-weight) !important;
	letter-spacing: var(--btn-letter-spacing) !important;
	text-transform: none !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease !important;
}
.single_add_to_cart_button.button:hover,
.add_to_cart_button.button:hover {
	opacity: 0.85 !important;
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
}
.single_add_to_cart_button.button:disabled,
.single_add_to_cart_button.button.disabled,
.add_to_cart_button.button:disabled,
.add_to_cart_button.button.disabled {
	cursor: not-allowed !important;
	opacity: 0.4 !important;
	pointer-events: none !important;
}
.single_add_to_cart_button.button:disabled:hover,
.single_add_to_cart_button.button.disabled:hover,
.add_to_cart_button.button:disabled:hover,
.add_to_cart_button.button.disabled:hover {
	opacity: 0.4 !important;
	background-color: var(--color-primary) !important;
}
/* Card compact quick-add — button or anchor */
.theme-product-card .add_to_cart_button.ajax_add_to_cart,
.theme-product-card button.add_to_cart_button.ajax_add_to_cart {
	min-height: unset !important;
	padding: var(--btn-icon-padding) !important;
	border-radius: 50% !important;
	width: 3rem !important;
	height: 3rem !important;
}
.theme-product-card .add_to_cart_button.ajax_add_to_cart.loading::after,
.single-product .single_add_to_cart_button.loading::after,
.ajax_add_to_cart.loading::after { display: none !important; }
.ajax_add_to_cart.theme-btn-loading { opacity: 0.6 !important; pointer-events: none !important; cursor: wait !important; }

.woocommerce-page a.added_to_cart.wc-forward,
.single-product a.added_to_cart.wc-forward,
body a.added_to_cart.wc-forward { display: none !important; }

/* Notices — scoped visibility, never globally hidden (Section 14.1) */
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }
.woocommerce-message, .woocommerce-error, .woocommerce-info {
	border-radius: var(--radius); padding: 1rem 1.5rem; font-family: var(--font-body);
	background: var(--color-surface); color: var(--color-foreground); border: 1px solid var(--color-border); list-style: none;
}
.woocommerce-error { border-color: #e5484d; color: #ffb4b4; }

/* ==========================================================================
   WooCommerce Checkout Blocks (C–H)
   Dual selectors: body.woocommerce-checkout + .entry-content .wc-block-checkout
   ========================================================================== */

/* C.2 — single header offset; no double padding-top */
body.woocommerce-checkout .theme-checkout-main,
body.woocommerce-checkout .theme-checkout-main.site-main {
	padding-top: 0;
	padding-bottom: 4rem;
}
body.woocommerce-cart .site-main,
body.woocommerce-cart .theme-page-main,
body.woocommerce-account .site-main,
body.woocommerce-account .theme-page-main {
	padding-top: 0;
	padding-bottom: 4rem;
}

.theme-checkout-shell {
	padding-block: 0.5rem 4rem;
	max-width: none;
	width: 100%;
}
body.woocommerce-checkout .theme-checkout-main > .container-wide,
body.woocommerce-checkout .theme-checkout-shell,
body.woocommerce-checkout .theme-checkout-main .entry-content,
.entry-content:has(> .wc-block-checkout),
.entry-content:has(> .wp-block-woocommerce-checkout) {
	max-width: none;
	width: 100%;
	box-sizing: border-box;
}

/* C — checkout header alignment (C.1) */
.theme-checkout-header {
	max-width: var(--checkout-max-width);
	width: 100%;
	margin-inline: auto;
	box-sizing: border-box;
	margin-bottom: 0;
}
.checkout-continue-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-size: 0.875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-family: var(--font-label);
	font-weight: 500;
	color: var(--color-muted-foreground);
	transition: color 200ms;
}
.checkout-continue-link:hover { color: var(--color-primary); }
.theme-checkout-title {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 600;
	text-transform: uppercase;
	font-size: 2.25rem;
	line-height: 1.05;
	color: var(--color-foreground);
}
@media (min-width: 768px) { .theme-checkout-title { font-size: 3.75rem; } }
.theme-checkout-intro {
	margin: 0.75rem 0 0;
	max-width: 42rem;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--color-muted-foreground);
}
@media (min-width: 768px) { .theme-checkout-intro { font-size: 1.125rem; } }

/* C.2 — collapse vertical gap between header and block */
body.woocommerce-checkout .theme-checkout-main .entry-content,
.entry-content:has(.wc-block-checkout) {
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .theme-checkout-main .entry-content > .wc-block-checkout,
body.woocommerce-checkout .theme-checkout-main .entry-content > .wp-block-woocommerce-checkout,
.entry-content > .wc-block-checkout:first-child,
.entry-content > .wp-block-woocommerce-checkout:first-child {
	margin-top: 0;
}

/* D — checkout root width (no compression) */
body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
.entry-content .wc-block-checkout,
.entry-content .wp-block-woocommerce-checkout {
	max-width: var(--checkout-max-width);
	width: 100%;
	margin-inline: auto;
	box-sizing: border-box;
	min-width: 0;
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .wc-block-checkout.alignwide,
.entry-content .wc-block-checkout.alignwide {
	margin-top: 0;
	max-width: var(--checkout-max-width);
}

/* C.2 / G — notices + top spacing on columns */
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-components-main,
.entry-content .wc-block-checkout__main,
.entry-content .wc-block-components-main {
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout,
.entry-content .wc-block-checkout .wc-block-components-sidebar-layout,
.entry-content .wc-block-checkout .wc-block-checkout-sidebar-layout {
	margin-top: 0;
	padding-top: 0;
}

body.woocommerce-checkout .wc-block-checkout > .wc-block-components-notices:empty,
.entry-content .wc-block-checkout > .wc-block-components-notices:empty {
	display: none;
	margin: 0;
	padding: 0;
}
body.woocommerce-checkout .wc-block-components-notices,
.entry-content .wc-block-components-notices {
	max-width: var(--checkout-max-width);
	width: 100%;
	margin-inline: auto;
	box-sizing: border-box;
	margin-top: 0;
	padding-top: 0;
	margin-bottom: var(--checkout-gap);
}

/* E — 2-column grid ONLY on internal sidebar layout wrapper (≥768px) */
@media (min-width: 768px) {
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout,
	.entry-content .wc-block-checkout .wc-block-checkout-sidebar-layout {
		display: grid !important;
		grid-template-columns: 1fr minmax(360px, 400px);
		gap: var(--checkout-gap);
		align-items: start;
		flex-direction: unset;
		flex-wrap: nowrap;
		margin: 0;
	}
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-components-main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-checkout__sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-components-sidebar,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__main,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-main,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__sidebar,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar {
		width: auto !important;
		max-width: 100%;
		min-width: 0;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
	}

	/* Fallback: main + sidebar direct children of checkout root */
	body.woocommerce-checkout .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar),
	.entry-content .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar) {
		display: grid;
		grid-template-columns: 1fr minmax(360px, 400px);
		gap: var(--checkout-gap);
		align-items: start;
	}
	body.woocommerce-checkout .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar) > .wc-block-components-notices,
	.entry-content .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar) > .wc-block-components-notices {
		grid-column: 1 / -1;
	}
	body.woocommerce-checkout .wc-block-components-notice-banner,
	.entry-content .wc-block-components-notice-banner {
		grid-column: 1 / -1;
	}
}

/* F — sidebar wrappers transparent; card only on order summary */
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-sidebar,
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block,
.entry-content .wc-block-checkout__sidebar,
.entry-content .wc-block-components-sidebar,
.entry-content .wp-block-woocommerce-checkout-totals-block {
	background: transparent;
	border-radius: 0;
	padding: 0;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
.entry-content .wp-block-woocommerce-checkout-order-summary-block {
	width: 100%;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 1.75rem;
	padding: 1.5rem 2rem;
	box-sizing: border-box;
}
@media (min-width: 768px) {
	body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
	.entry-content .wp-block-woocommerce-checkout-order-summary-block {
		padding: 2rem;
	}
}

/* Order summary line qty badge — number only (not circle background) */
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity span,
.entry-content .wc-block-checkout .wc-block-components-order-summary-item__quantity span {
	color: #000 !important;
	-webkit-text-fill-color: #000;
}

/* H — empty cart at checkout */
body.woocommerce-checkout .wc-block-checkout-empty,
.entry-content .wc-block-checkout-empty {
	margin-inline: auto;
	max-width: 36rem;
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Checkout floating fields — label/input contrast (idle dark / active white) */
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input,
.entry-content .wc-block-checkout .wc-block-components-text-input,
.entry-content .wc-block-checkout .wc-block-components-textarea,
.entry-content .wc-block-checkout .wc-block-components-combobox,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input {
	--checkout-field-bg: var(--color-surface);
	--checkout-field-fg: var(--color-foreground);
	--checkout-label-fg: var(--color-foreground);
	position: relative;
}

body.woocommerce-checkout .wc-block-components-text-input.is-active,
body.woocommerce-checkout .wc-block-components-text-input:focus-within,
body.woocommerce-checkout .wc-block-components-textarea.is-active,
body.woocommerce-checkout .wc-block-components-textarea:focus-within,
body.woocommerce-checkout .wc-block-components-combobox.is-active,
body.woocommerce-checkout .wc-block-components-combobox:focus-within,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within,
.entry-content .wc-block-checkout .wc-block-components-text-input.is-active,
.entry-content .wc-block-checkout .wc-block-components-text-input:focus-within,
.entry-content .wc-block-checkout .wc-block-components-textarea.is-active,
.entry-content .wc-block-checkout .wc-block-components-textarea:focus-within,
.entry-content .wc-block-checkout .wc-block-components-combobox.is-active,
.entry-content .wc-block-checkout .wc-block-components-combobox:focus-within,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within {
	--checkout-field-bg: #fff;
	--checkout-field-fg: #000;
	--checkout-label-fg: #000;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-textarea textarea,
body.woocommerce-checkout .wc-block-components-combobox input,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input input,
.entry-content .wc-block-checkout .wc-block-components-text-input input,
.entry-content .wc-block-checkout .wc-block-components-textarea textarea,
.entry-content .wc-block-checkout .wc-block-components-combobox input,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input input {
	width: 100% !important;
	max-width: none !important;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.375;
	background-color: var(--checkout-field-bg) !important;
	color: var(--checkout-field-fg) !important;
	caret-color: var(--checkout-field-fg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	box-sizing: border-box;
	min-height: 3.125rem;
	padding: 0.875rem 0.75rem 0.5rem !important;
}

/* Floating label: room for shrunk label above typed text (WC Blocks pattern) */
body.woocommerce-checkout .wc-block-components-text-input.is-active input,
body.woocommerce-checkout .wc-block-components-text-input:focus-within input,
body.woocommerce-checkout .wc-block-components-textarea.is-active textarea,
body.woocommerce-checkout .wc-block-components-textarea:focus-within textarea,
body.woocommerce-checkout .wc-block-components-combobox.is-active input,
body.woocommerce-checkout .wc-block-components-combobox:focus-within input,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input,
.entry-content .wc-block-checkout .wc-block-components-text-input.is-active input,
.entry-content .wc-block-checkout .wc-block-components-text-input:focus-within input,
.entry-content .wc-block-checkout .wc-block-components-textarea.is-active textarea,
.entry-content .wc-block-checkout .wc-block-components-textarea:focus-within textarea,
.entry-content .wc-block-checkout .wc-block-components-combobox.is-active input,
.entry-content .wc-block-checkout .wc-block-components-combobox:focus-within input,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input {
	padding: 1.625rem 0.75rem 0.625rem !important;
	min-height: 3.25rem;
}

body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-textarea label,
body.woocommerce-checkout .wc-block-components-combobox label,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input label,
.entry-content .wc-block-checkout .wc-block-components-text-input label,
.entry-content .wc-block-checkout .wc-block-components-textarea label,
.entry-content .wc-block-checkout .wc-block-components-combobox label,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input label {
	color: var(--checkout-label-fg) !important;
	opacity: 1;
	line-height: 1.2;
	pointer-events: none;
}

body.woocommerce-checkout .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-text-input:focus-within label,
body.woocommerce-checkout .wc-block-components-textarea.is-active label,
body.woocommerce-checkout .wc-block-components-textarea:focus-within label,
body.woocommerce-checkout .wc-block-components-combobox.is-active label,
body.woocommerce-checkout .wc-block-components-combobox:focus-within label,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within label,
.entry-content .wc-block-checkout .wc-block-components-text-input.is-active label,
.entry-content .wc-block-checkout .wc-block-components-text-input:focus-within label,
.entry-content .wc-block-checkout .wc-block-components-textarea.is-active label,
.entry-content .wc-block-checkout .wc-block-components-textarea:focus-within label,
.entry-content .wc-block-checkout .wc-block-components-combobox.is-active label,
.entry-content .wc-block-checkout .wc-block-components-combobox:focus-within label,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active label,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within label {
	font-size: 0.75rem;
	position: absolute;
	top: 0.5rem;
	left: 0.75rem;
	right: auto;
	transform: none;
	margin: 0;
}

body.woocommerce-checkout .wc-block-components-text-input:not(.is-active):not(:focus-within) input::placeholder,
body.woocommerce-checkout .wc-block-components-textarea:not(.is-active):not(:focus-within) textarea::placeholder,
body.woocommerce-checkout .wc-block-components-combobox:not(.is-active):not(:focus-within) input::placeholder,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:not(.is-active):not(:focus-within) input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-text-input:not(.is-active):not(:focus-within) input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-textarea:not(.is-active):not(:focus-within) textarea::placeholder,
.entry-content .wc-block-checkout .wc-block-components-combobox:not(.is-active):not(:focus-within) input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:not(.is-active):not(:focus-within) input::placeholder {
	color: var(--color-muted-foreground);
}

body.woocommerce-checkout .wc-block-components-text-input.is-active input::placeholder,
body.woocommerce-checkout .wc-block-components-text-input:focus-within input::placeholder,
body.woocommerce-checkout .wc-block-components-textarea.is-active textarea::placeholder,
body.woocommerce-checkout .wc-block-components-textarea:focus-within textarea::placeholder,
body.woocommerce-checkout .wc-block-components-combobox.is-active input::placeholder,
body.woocommerce-checkout .wc-block-components-combobox:focus-within input::placeholder,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input::placeholder,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-text-input.is-active input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-text-input:focus-within input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-textarea.is-active textarea::placeholder,
.entry-content .wc-block-checkout .wc-block-components-textarea:focus-within textarea::placeholder,
.entry-content .wc-block-checkout .wc-block-components-combobox.is-active input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-combobox:focus-within input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input::placeholder,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input::placeholder {
	color: rgb(0 0 0 / 0.45);
}

body.woocommerce-checkout .wc-block-components-text-input:not(.is-active):not(:focus-within) input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-textarea:not(.is-active):not(:focus-within) textarea:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-combobox:not(.is-active):not(:focus-within) input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:not(.is-active):not(:focus-within) input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-text-input:not(.is-active):not(:focus-within) input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-textarea:not(.is-active):not(:focus-within) textarea:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-combobox:not(.is-active):not(:focus-within) input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:not(.is-active):not(:focus-within) input:-webkit-autofill {
	-webkit-text-fill-color: var(--color-foreground);
	box-shadow: 0 0 0 1000px var(--color-surface) inset;
}

body.woocommerce-checkout .wc-block-components-text-input.is-active input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-text-input:focus-within input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-textarea.is-active textarea:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-textarea:focus-within textarea:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-combobox.is-active input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-combobox:focus-within input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-text-input.is-active input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-text-input:focus-within input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-textarea.is-active textarea:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-textarea:focus-within textarea:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-combobox.is-active input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-combobox:focus-within input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input.is-active input:-webkit-autofill,
.entry-content .wc-block-checkout .wc-block-components-address-form .wc-block-components-text-input:focus-within input:-webkit-autofill {
	-webkit-text-fill-color: #000;
	box-shadow: 0 0 0 1000px #fff inset;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus-visible,
body.woocommerce-checkout .wc-block-components-textarea textarea:focus,
body.woocommerce-checkout .wc-block-components-textarea textarea:focus-visible,
body.woocommerce-checkout .wc-block-components-combobox input:focus,
body.woocommerce-checkout .wc-block-components-combobox input:focus-visible,
.entry-content .wc-block-checkout .wc-block-components-text-input input:focus,
.entry-content .wc-block-checkout .wc-block-components-text-input input:focus-visible,
.entry-content .wc-block-checkout .wc-block-components-textarea textarea:focus,
.entry-content .wc-block-checkout .wc-block-components-textarea textarea:focus-visible,
.entry-content .wc-block-checkout .wc-block-components-combobox input:focus,
.entry-content .wc-block-checkout .wc-block-components-combobox input:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--color-primary);
}

/* Select fields — light chrome; labels always dark (not tied to text-input tokens) */
body.woocommerce-checkout .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-components-select__label,
.entry-content .wc-block-checkout .wc-blocks-components-select__label,
.entry-content .wc-block-checkout .wc-block-components-select__label {
	color: #000 !important;
	opacity: 1;
}

body.woocommerce-checkout .wc-block-components-select select,
.entry-content .wc-block-checkout .wc-block-components-select select {
	width: 100% !important;
	max-width: none !important;
	font-family: var(--font-body);
	color: #000;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: revert;
}

body.woocommerce-checkout .wc-block-components-select select:focus,
body.woocommerce-checkout .wc-block-components-select select:focus-visible,
.entry-content .wc-block-checkout .wc-block-components-select select:focus,
.entry-content .wc-block-checkout .wc-block-components-select select:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--color-primary);
}

/* Place order */
.entry-content .wc-block-checkout .wc-block-components-checkout-place-order-button {
	background: var(--gradient-berry) !important;
	color: var(--color-primary-foreground) !important;
	border-radius: var(--btn-radius) !important;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	border: none !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.entry-content .wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
	opacity: 0.9;
}
body.woocommerce-checkout h2,
body.woocommerce-checkout h3,
.entry-content .wc-block-checkout h2,
.entry-content .wc-block-checkout h3 {
	font-family: var(--font-display);
	text-transform: uppercase;
}

body.woocommerce-cart .theme-page-container,
body.woocommerce-account .theme-page-container { max-width: 80rem; }
body.woocommerce-cart .entry-content,
body.woocommerce-account .entry-content { width: 100%; }

.page-title { font-size: 2.25rem; margin: 2rem 0 1.5rem; }
@media (min-width: 768px) { .page-title { font-size: 3rem; } }

/* Cart / My Account minimal styling */
body.woocommerce-cart table.shop_table, body.woocommerce-account table.shop_table { width: 100%; border-collapse: collapse; }
body.woocommerce-cart table.shop_table th, body.woocommerce-cart table.shop_table td,
body.woocommerce-account table.shop_table th, body.woocommerce-account table.shop_table td {
	padding: 1rem; border-bottom: 1px solid var(--color-border); text-align: left;
}
body.woocommerce-cart .button, body.woocommerce-account .button {
	background: var(--color-primary); color: var(--color-primary-foreground); border-radius: var(--btn-radius);
	padding: 0.75rem 1.5rem; display: inline-flex; text-transform: uppercase; letter-spacing: 0.1em; font-size: 14px;
}

/* ==========================================================================
   Thank you page (Section 22.8)
   ========================================================================== */
body.theme-thankyou-page { overflow-x: clip; }
body.theme-thankyou-page .woocommerce-order,
body.theme-thankyou-page .woocommerce-order-overview,
body.theme-thankyou-page .woocommerce-customer-details,
body.theme-thankyou-page .woocommerce-order-details { margin-bottom: 2rem; }
body.theme-thankyou-page .woocommerce-order-overview {
	display: flex; flex-wrap: wrap; gap: 1.5rem; list-style: none; padding: 1.5rem; border-radius: var(--radius); background: var(--color-surface);
}
body.theme-thankyou-page .woocommerce-order-overview li { font-size: 14px; color: var(--color-muted-foreground); }
body.theme-thankyou-page .woocommerce-order-overview li strong { display: block; color: var(--color-foreground); font-size: 1rem; margin-top: 0.25rem; }
body.theme-thankyou-page .woocommerce-order-details table,
body.theme-thankyou-page .woocommerce-order-details table { width: 100%; table-layout: fixed; border-collapse: collapse; }
body.theme-thankyou-page .woocommerce-order-details th,
body.theme-thankyou-page .woocommerce-order-details td { padding: 0.75rem; border-bottom: 1px solid var(--color-border); }
body.theme-thankyou-page .woocommerce-order-details tfoot th { text-align: left; }
body.theme-thankyou-page .woocommerce-order-details tfoot td { text-align: right; }
body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title { padding: 0 0 1rem 0; font-size: 1.5rem; }
@media (min-width: 768px) {
	body.theme-thankyou-page .woocommerce-customer-details { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
	body.theme-thankyou-page .woocommerce-customer-details address { min-width: 0; }
}

/* ==========================================================================
   Shop archive
   ========================================================================== */
.theme-shop-archive { padding-block: 1rem 5rem; }
.theme-archive-inner { max-width: 80rem; }
.theme-archive-head { max-width: 42rem; margin-bottom: 2.5rem; }
