/* =========================================================================
   Atherion Records theme.css
   Design tokens ported 1:1 from the original source design. All colors
   are CSS variables driven by the Customizer (Section 6 / 22.9).
   ========================================================================= */

:root {
	--color-background: #0a090c;
	--color-foreground: #f9f4e7;
	--color-card: #141018;
	--color-primary: #361957;
	--color-primary-foreground: #f9f4e7;
	--color-accent: #cba54d;
	--color-accent-foreground: #0f0c12;
	--color-muted-foreground: #bfb59b;
	--color-border: #29232f;
	--color-rosa: #4f257e;
	--color-teal: #ab8e49;
	--color-lilac: #8959c0;
	--color-marigold: #cba54d;
	--color-destructive: #c94040;

	--font-display: 'Fraunces', serif;
	--font-body: 'Inter', sans-serif;

	--radius: 0.75rem;
	--card-radius: 1rem;
	--shadow-soft: 0 4px 20px -4px rgba(0, 0, 0, 0.55);
	--shadow-elevated: 0 8px 40px -8px rgba(0, 0, 0, 0.7);
	--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);

	--header-height: 80px;
	--logo-height: 64px;
	--logo-height-mobile: 44px;
	--footer-logo-height: 3.5rem;
	--footer-logo-height-md: 5rem;

	--btn-radius: 999px;
	--btn-height: 48px;
	--btn-padding: 0.9rem 1.75rem;
	--btn-font-size: 0.75rem;
	--btn-font-weight: 600;
	--btn-letter-spacing: 0.22em;
	--btn-text-transform: uppercase;
	--btn-icon-padding: 0.6rem;
	--color-button-text: var(--color-primary-foreground);
	--checkout-gap: 2.5rem;
}

@media (min-width: 768px) {
	:root { --header-height: 112px; }
}

/* ------------------------------------------------------------------ */
/* RESET / BASE */
/* ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: clip; }
body {
	margin: 0;
	background-color: var(--color-background);
	color: var(--color-foreground);
	font-family: var(--font-body);
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-weight: inherit;
	font-size: inherit;
	letter-spacing: -0.015em;
	margin: 0;
	line-height: 1.15;
}
p { margin: 0; }
a { color: inherit; text-decoration: none; }
a[href],
button,
[role="button"],
label[for],
select,
summary,
.catstrip-tile,
.faq-tab,
.faq-item__trigger,
.theme-card-link,
.theme-product-card__add,
.theme-product-thumb,
.theme-menu-toggle,
.theme-cart-btn,
[data-contact-modal-trigger],
[data-cart-open],
[data-mobile-menu-toggle],
[data-faq-toggle],
[data-section-anchor],
input[type="submit"],
input[type="button"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"] {
	cursor: pointer;
}
button { font-family: inherit; cursor: pointer; background: none; border: none; color: inherit; }
input, textarea, select { font-family: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }

img:not(.cover-img):not(.hero-video):not(.contact-cta-bg):not(.site-logo-img):not(.site-footer__logo-img):not(.about-seal):not(.theme-product-card-img):not(.theme-cart-item__img) {
	max-width: 100%;
	height: auto;
	display: block;
}
.cover-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.container-wide { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 1024px) { .container-wide { padding: 0 2rem; } }

.theme-no-hero .site-main,
.theme-no-hero .shop-archive-main {
	padding-top: var(--header-height);
	padding-bottom: 4rem;
}

/* WordPress admin bar — keep sticky header and inner pages below the bar */
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
.admin-bar.theme-no-hero .site-main,
.admin-bar.theme-no-hero .shop-archive-main,
body.admin-bar.theme-no-hero .site-main,
body.admin-bar.theme-no-hero .shop-archive-main {
	padding-top: calc(var(--header-height) + 32px);
}
@media screen and (max-width: 782px) {
	.admin-bar.theme-no-hero .site-main,
	.admin-bar.theme-no-hero .shop-archive-main,
	body.admin-bar.theme-no-hero .site-main,
	body.admin-bar.theme-no-hero .shop-archive-main {
		padding-top: calc(var(--header-height) + 46px);
	}
}

/* ------------------------------------------------------------------ */
/* SCROLL REVEAL ANIMATION SYSTEM (Section 2.1) */
/* ------------------------------------------------------------------ */
.reveal-item, .theme-product-card-wrap.reveal-item {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s var(--transition-smooth), transform 0.7s var(--transition-smooth);
}
.reveal-item.is-visible, .theme-product-card-wrap.reveal-item.is-visible {
	opacity: 1;
	transform: translateY(0);
}
body.is-customizer .reveal-item,
body.is-customizer .theme-product-card-wrap.reveal-item {
	opacity: 1 !important;
	transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
	.reveal-item, .theme-product-card-wrap.reveal-item {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes spinClockwise { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
.shimmer-bg {
	background: linear-gradient(
		90deg,
		color-mix(in srgb, var(--color-foreground) 8%, transparent) 0%,
		color-mix(in srgb, var(--color-foreground) 16%, transparent) 50%,
		color-mix(in srgb, var(--color-foreground) 8%, transparent) 100%
	);
	background-size: 200% 100%;
	animation: shimmer 2.2s linear infinite;
}
.animate-fade-in { animation: fadeIn 0.6s var(--transition-smooth) both; }
.animate-slide-up { animation: slideUp 0.6s var(--transition-smooth) both; }
.animate-spin-slow { animation: spinClockwise 8s linear infinite; }

.theme-icon { width: 1em; height: 1em; }

/* ------------------------------------------------------------------ */
/* BUTTONS */
/* ------------------------------------------------------------------ */
.theme-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--btn-radius);
	padding: var(--btn-padding);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--btn-letter-spacing);
	text-transform: var(--btn-text-transform);
	transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
	white-space: nowrap;
}
.theme-btn:hover { transform: translateY(-2px); }
.theme-btn-primary { background-color: var(--color-primary); color: var(--color-primary-foreground); }
.theme-btn-primary:hover { opacity: 0.9; }
.theme-btn-outline { background: transparent; border: 1px solid var(--color-primary); color: var(--color-primary); }
.theme-btn-outline:hover { background-color: var(--color-primary); color: var(--color-primary-foreground); }
.theme-btn-ghost { background: rgba(255,255,255,0.08); color: var(--color-foreground); border: 1px solid rgba(255,255,255,0.15); }
.theme-btn-block { width: 100%; }
.theme-btn-sm { padding: 0.55rem 1rem; font-size: 0.7rem; }
.theme-btn-hero-primary, .theme-btn-hero-outline,
.single-product .single_add_to_cart_button { text-transform: none; }
.theme-btn-hero-primary { background-color: var(--color-accent); color: var(--color-accent-foreground); text-transform: uppercase; }
.theme-btn-hero-outline { border: 1px solid rgba(249,244,231,0.8); color: var(--color-primary-foreground); text-transform: uppercase; }
.theme-btn-hero-outline:hover { background-color: rgba(249,244,231,0.1); }

/* ------------------------------------------------------------------ */
/* HEADER */
/* ------------------------------------------------------------------ */
.site-header {
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	width: 100%;
	background: transparent;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
.site-header.is-solid,
.site-header.is-scrolled,
.site-header.is-menu-open {
	background-color: color-mix(in srgb, var(--color-background) 95%, transparent);
	backdrop-filter: blur(10px);
	box-shadow: var(--shadow-soft);
}
.site-header__inner { border-bottom: 1px solid transparent; }
.site-header.is-solid .site-header__inner,
.site-header.is-scrolled .site-header__inner,
.site-header.is-menu-open .site-header__inner { border-bottom-color: color-mix(in srgb, var(--color-border) 50%, transparent); }
.site-header.is-menu-open .theme-nav-list--mobile a {
	color: color-mix(in srgb, var(--color-foreground) 85%, transparent);
}
.site-header.is-menu-open .theme-nav-list--mobile a:hover { color: var(--color-primary); }
.site-header.is-menu-open .theme-cart-btn {
	border-color: color-mix(in srgb, var(--color-foreground) 30%, transparent);
	color: var(--color-foreground);
}

.site-nav { display: flex; align-items: center; height: 80px; position: relative; }
@media (min-width: 768px) { .site-nav { height: 112px; } }

.site-nav__side { display: none; flex: 1; align-items: center; gap: 2rem; }
.site-nav__side--left { justify-content: flex-end; }
.site-nav__side--right { justify-content: flex-start; }
@media (min-width: 1024px) { .site-nav__side { display: flex; } }

.theme-nav-list { display: flex; align-items: center; gap: 2rem; }
.theme-nav-list a {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: color-mix(in srgb, var(--color-foreground) 85%, transparent);
	transition: color 0.2s ease, transform 0.2s ease;
}
.site-header:not(.is-solid):not(.is-scrolled) .theme-nav-list a { color: color-mix(in srgb, var(--color-primary-foreground) 90%, transparent); }
.theme-nav-list a:hover { color: var(--color-primary); transform: translateY(-2px); }
.site-header:not(.is-solid):not(.is-scrolled) .theme-nav-list a:hover { color: var(--color-primary-foreground); }

.site-logo { display: flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 0 2.5rem; }
@media (min-width: 1024px) { .site-logo { padding: 0 6rem; } }
.site-logo-img { height: var(--logo-height-mobile); width: auto; max-height: var(--logo-height-mobile); object-fit: contain; transition: transform 0.2s ease; filter: drop-shadow(0 4px 10px rgba(0,0,0,0.4)); flex-shrink: 0; }
@media (min-width: 768px) { .site-logo-img { height: var(--logo-height); max-height: var(--logo-height); } }
.site-logo:hover .site-logo-img { transform: scale(1.03); }
.site-logo-text { font-family: var(--font-display); font-size: 1.5rem; color: var(--color-foreground); }

.theme-cart-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--color-foreground) 30%, transparent);
	transition: border-color 0.2s ease, transform 0.2s ease;
}
.site-header:not(.is-solid):not(.is-scrolled) .theme-cart-btn { border-color: color-mix(in srgb, var(--color-primary-foreground) 40%, transparent); color: var(--color-primary-foreground); }
.theme-cart-btn:hover { border-color: var(--color-primary); transform: scale(1.05); }
.theme-cart-icon { width: 1rem; height: 1rem; }
.theme-cart-count {
	position: absolute;
	top: -6px;
	right: -6px;
	font-size: 10px;
	font-weight: 600;
	border-radius: 50%;
	min-width: 18px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
	background-color: var(--color-primary);
	color: var(--color-primary-foreground);
}
.theme-cart-count:empty { display: none; }

.site-nav__mobile-bar { display: flex; align-items: center; justify-content: flex-end; width: auto; gap: 0.75rem; margin-left: auto; flex-shrink: 0; }
@media (max-width: 1023px) {
	.site-nav { justify-content: space-between; width: 100%; }
	.site-logo { padding: 0; justify-content: flex-start; }
}
@media (min-width: 1024px) { .site-nav__mobile-bar { display: none; } }
.theme-menu-toggle { position: relative; width: 2.25rem; height: 2.25rem; display: flex; align-items: center; justify-content: center; }
.theme-menu-icon { position: absolute; width: 1.25rem; height: 1.25rem; transition: opacity 0.15s ease; }
.theme-menu-icon--close { opacity: 0; }
.site-mobile-menu[data-open] ~ .site-nav .theme-menu-icon--open,
.theme-menu-toggle[aria-expanded="true"] .theme-menu-icon--open { opacity: 0; }
.theme-menu-toggle[aria-expanded="true"] .theme-menu-icon--close { opacity: 1; }
.theme-menu-toggle[aria-expanded="false"] .theme-menu-icon--close { opacity: 0; }
.theme-menu-toggle[aria-expanded="false"] .theme-menu-icon--open { opacity: 1; }

.site-mobile-menu { display: none; padding: 1rem 0 1.25rem; border-top: 1px solid var(--color-border); }
.site-mobile-menu.is-open { display: block; animation: fadeIn 0.25s ease both; }
.theme-nav-list--mobile { display: flex; flex-direction: column; gap: 0; }
.theme-nav-list--mobile a { display: block; padding: 0.75rem 0; border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); font-size: 0.95rem; }
.theme-nav-list--mobile li:last-child a { border-bottom: none; padding-bottom: 0; }
@media (min-width: 1024px) { .site-mobile-menu { display: none !important; } }

/* ------------------------------------------------------------------ */
/* HERO */
/* ------------------------------------------------------------------ */
.hero-section { position: relative; height: 100vh; min-height: 620px; overflow: hidden; background: var(--color-background); margin-top: calc(var(--header-height) * -1); }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; background: color-mix(in srgb, var(--color-background) 30%, transparent); }
.hero-content {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding-top: var(--header-height);
}
.hero-eyebrow {
	display: block;
	font-size: 12px;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--color-primary-foreground);
	font-weight: 600;
	margin-bottom: 1.5rem;
	text-shadow: 0 2px 14px rgba(0,0,0,0.55);
}
.hero-title {
	font-family: var(--font-display);
	font-style: italic;
	font-weight: 400;
	color: var(--color-primary-foreground);
	line-height: 0.98;
	letter-spacing: -0.015em;
	text-shadow: 0 6px 28px rgba(0,0,0,0.6);
	font-size: clamp(2.75rem, 8vw, 4.5rem);
}
@media (min-width: 768px) { .hero-title { font-size: 5.5rem; } }
@media (min-width: 1024px) { .hero-title { font-size: 6.5rem; } }
.hero-subtitle { margin-top: 1.5rem; max-width: 36rem; color: var(--color-primary-foreground); font-size: 1rem; text-shadow: 0 3px 16px rgba(0,0,0,0.55); }
@media (min-width: 768px) { .hero-subtitle { font-size: 1.125rem; } }
.hero-ctas { margin-top: 2.5rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
@media (min-width: 640px) { .hero-ctas { flex-direction: row; } }
.hero-cta2 { display: inline-flex; align-items: center; gap: 0.5rem; }

/* ------------------------------------------------------------------ */
/* CATEGORY STRIP */
/* ------------------------------------------------------------------ */
.catstrip-section { padding: 4rem 0 5rem; }
@media (min-width: 768px) { .catstrip-section { padding: 5rem 0 5rem; } }
.catstrip-header { text-align: center; margin-bottom: 2.5rem; }
.catstrip-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-teal); margin-bottom: 0.75rem; }
.catstrip-title { font-size: 1.875rem; font-weight: 400; }
@media (min-width: 768px) { .catstrip-title { font-size: 2.25rem; } }
.catstrip-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; justify-content: center; place-items: center; padding: 1.5rem 0; }
@media (min-width: 768px) { .catstrip-tiles { display: flex; flex-wrap: wrap; gap: 2.5rem; } }
.catstrip-tile { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
.catstrip-tile__icon {
	width: 7rem; height: 7rem; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background-color: var(--color-card);
	padding: 1.5rem;
	transition: transform 0.5s ease, box-shadow 0.5s ease;
	box-shadow: 0 0 0 2px transparent;
}
@media (min-width: 768px) { .catstrip-tile__icon { width: 9rem; height: 9rem; } }
.catstrip-tile:hover .catstrip-tile__icon { transform: scale(1.05); box-shadow: var(--shadow-elevated), 0 0 0 2px color-mix(in srgb, var(--color-accent) 50%, transparent); }
.catstrip-tile__icon svg { width: 100%; height: 100%; color: var(--color-primary); transition: transform 0.7s ease; }
.catstrip-tile:hover .catstrip-tile__icon svg { transform: scale(1.1); }
.catstrip-tile__label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: color-mix(in srgb, var(--color-foreground) 85%, transparent); }
.catstrip-tile.is-active .catstrip-tile__icon { box-shadow: var(--shadow-elevated), 0 0 0 2px var(--color-accent); }

/* ------------------------------------------------------------------ */
/* PRODUCT GRID + CARDS */
/* ------------------------------------------------------------------ */
.theme-product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: stretch; }
@media (min-width: 768px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; } }
@media (min-width: 1024px) { .theme-product-grid { gap: 2.5rem; } }
.theme-product-grid--featured { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 768px) { .theme-product-grid--featured { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.theme-product-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1024px) { .theme-product-grid--related { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.theme-product-card-wrap { display: flex; height: 100%; }
.theme-product-card { position: relative; display: flex; flex-direction: column; height: 100%; width: 100%; }
.theme-product-card > .theme-card-link { position: absolute; inset: 0; z-index: 2; pointer-events: auto; }
.theme-product-card *:not(.theme-card-link) { pointer-events: none; }
.theme-product-card__add,
.theme-product-card .add_to_cart_button { pointer-events: auto; }

.theme-product-card__image-wrapper {
	position: relative;
	aspect-ratio: 1 / 1;
	background-color: var(--color-card);
	border-radius: var(--card-radius);
	overflow: hidden;
	margin-bottom: 1.25rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	box-shadow: none;
}
.theme-product-card__shimmer {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}
.theme-product-card:hover .theme-product-card__image-wrapper { transform: translateY(-4px); box-shadow: var(--shadow-elevated); }
.theme-product-card:hover .theme-product-card-img.is-loaded { transform: scale(1.06); }
.theme-product-card-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	opacity: 0;
	filter: blur(12px);
	transform: scale(1.06);
	transition: opacity 0.7s var(--transition-smooth), transform 0.7s var(--transition-smooth), filter 0.7s var(--transition-smooth);
}
.theme-product-card-img.is-loaded {
	opacity: 1;
	filter: blur(0);
	transform: scale(1);
}

.theme-badge { position: absolute; z-index: 3; top: 1rem; left: 1rem; padding: 0.25rem 0.75rem; border-radius: 6px; font-size: 11px; font-weight: 500; letter-spacing: 0.02em; }
.theme-badge--soldout { top: auto; left: auto; bottom: 1rem; right: 1rem; background-color: var(--color-foreground); color: var(--color-background); }

.theme-product-card__add {
	position: absolute;
	inset-inline: 1rem;
	bottom: 1rem;
	z-index: 3;
	padding: 0.75rem 0;
	border-radius: 999px;
	border: 1px solid var(--color-teal);
	background-color: var(--color-teal);
	color: var(--color-background);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	text-align: center;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.2s ease, color 0.2s ease;
}
.theme-product-card:hover .theme-product-card__add,
.theme-product-card:focus-within .theme-product-card__add { opacity: 1; transform: translateY(0); }
.theme-product-card__add:hover { background-color: var(--color-background); color: var(--color-teal); }
.theme-product-card__add.added { background-color: var(--color-lilac); border-color: var(--color-lilac); color: var(--color-background); }

.theme-product-card__info { flex: 1; display: flex; flex-direction: column; gap: 0.375rem; padding: 0 0.25rem; }
.theme-product-card__category { font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--color-muted-foreground); }
.theme-product-card__category a { color: inherit; }
.theme-product-card__title { font-size: 1rem; font-weight: 500; line-height: 1.3; transition: color 0.3s ease; min-width: 0; }
@media (min-width: 768px) { .theme-product-card__title { font-size: 1.125rem; } }
.theme-product-card:hover .theme-product-card__title { color: var(--color-primary); }
.theme-product-card__vendor { font-size: 12px; font-style: italic; color: color-mix(in srgb, var(--color-foreground) 60%, transparent); }
.theme-product-card__price,
.theme-product-card__price .woocommerce-Price-amount { font-size: 1rem; color: color-mix(in srgb, var(--color-foreground) 85%, transparent); font-weight: 400; }
.theme-product-card__price del { opacity: 0.5; margin-right: 0.35rem; }

/* Add-to-cart WooCommerce style override (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-button-text) !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-button-text) !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 button -- overrides global rules (Section 11.4.1) */
.theme-product-card .add_to_cart_button.ajax_add_to_cart {
	min-height: unset !important;
	padding: 0.75rem 0 !important;
	border-radius: 999px !important;
	background-color: var(--color-teal) !important;
	inset-inline: 1rem;
	bottom: 1rem;
	position: absolute !important;
}
.single-product .single_add_to_cart_button.loading::after,
.ajax_add_to_cart.loading::after { display: none !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; }

/* ------------------------------------------------------------------ */
/* FEATURED / ABOUT */
/* ------------------------------------------------------------------ */
.featured-section, .about-section { padding: 4rem 0; }
@media (min-width: 768px) { .featured-section { padding: 6rem 0; } .about-section { padding: 5rem 0 7rem; } }
.featured-header { text-align: center; margin-bottom: 3.5rem; }
.featured-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 0.75rem; }
.featured-title { font-size: 1.875rem; font-weight: 400; line-height: 1.2; }
@media (min-width: 768px) { .featured-title { font-size: 3rem; } }
.featured-footer { text-align: center; margin-top: 3.5rem; }

.about-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: stretch; }
@media (min-width: 768px) { .about-grid { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.about-image-wrap { position: relative; border-radius: var(--card-radius); overflow: hidden; min-height: 360px; }
@media (min-width: 768px) { .about-image-wrap { min-height: 520px; } }
.about-image-wrap img { transition: transform 1.2s ease; }
.about-image-wrap:hover img { transform: scale(1.05); }
.about-copy { display: flex; flex-direction: column; justify-content: center; }
.about-seal-wrap { margin-bottom: 1.25rem; align-self: flex-start; }
.about-seal { display: block; height: 3rem; width: auto; max-height: 3rem; object-fit: contain; opacity: 0.8; }
.about-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 1.5rem; }
.about-heading { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.2; margin-bottom: 2rem; }
@media (min-width: 768px) { .about-heading { font-size: 2.25rem; } }
@media (min-width: 1024px) { .about-heading { font-size: 2.5rem; } }
.about-heading-em { font-style: italic; }
.about-body { display: flex; flex-direction: column; gap: 1.25rem; color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 1rem; line-height: 1.7; }
@media (min-width: 768px) { .about-body { font-size: 1.125rem; } }
.about-cta { margin-top: 2.5rem; align-self: flex-start; font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase; font-family: var(--font-display); font-weight: 500; }
.theme-link-underline { position: relative; display: inline-block; }
.theme-link-underline::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 0.3s var(--transition-smooth); }
.theme-link-underline:hover::after { transform: scaleX(1); }

/* ------------------------------------------------------------------ */
/* ARTISTS */
/* ------------------------------------------------------------------ */
.artists-section { position: relative; overflow: hidden; background: var(--color-background); min-height: calc(100vh - 5rem); display: flex; flex-direction: column; }
@media (min-width: 768px) { .artists-section { min-height: calc(100vh - 7rem); } }
.artists-watermark { position: absolute; inset-inline: 0; top: 1.5rem; z-index: 0; pointer-events: none; }
@media (min-width: 768px) { .artists-watermark { top: 2.5rem; } }
.artists-watermark span {
	display: block; font-family: var(--font-display); font-weight: 900; font-style: italic; text-transform: uppercase;
	letter-spacing: -0.04em; color: color-mix(in srgb, var(--color-primary) 10%, transparent);
	font-size: 3.75rem; white-space: nowrap; line-height: 1;
}
@media (min-width: 768px) { .artists-watermark span { font-size: 6rem; } }
@media (min-width: 1024px) { .artists-watermark span { font-size: 10rem; } }
.artists-inner { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; padding: 6rem 0 2.5rem; }
@media (min-width: 768px) { .artists-inner { padding: 7rem 0 3.5rem; } }
@media (max-width: 1023px) {
	.artists-section .artists-inner { padding-left: 2rem; padding-right: 2rem; }
}
.artists-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.artists-header__left { padding-left: 1rem; border-left: 4px solid var(--color-accent); }
.artists-eyebrow { display: block; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-accent); font-weight: 600; margin-bottom: 0.5rem; }
.artists-heading { font-size: 1.5rem; font-weight: 700; }
@media (min-width: 768px) { .artists-heading { font-size: 2.25rem; } }
.artists-heading-em { font-style: italic; color: var(--color-accent); }
.artists-header__count { display: none; align-items: center; gap: 0.75rem; font-size: 12px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--color-muted-foreground); }
@media (min-width: 768px) { .artists-header__count { display: flex; } }
.artists-count-current { color: var(--color-foreground); font-weight: 600; }
.artists-count-sep { width: 2.5rem; height: 1px; background: var(--color-border); }

.artists-slides { position: relative; flex: 1; }
.artist-slide { display: none; grid-template-columns: 1fr; gap: 1.5rem; height: 100%; }
.artist-slide.is-active { display: grid; animation: fadeIn 0.5s ease both; }
@media (min-width: 768px) { .artist-slide { grid-template-columns: repeat(2, 1fr); gap: 2rem; } }
.artist-portrait { position: relative; overflow: hidden; background: #000; min-height: 360px; }
@media (min-width: 768px) { .artist-portrait { min-height: 0; } }
.artist-portrait img { filter: grayscale(1); transition: filter 0.7s ease; }
.artist-slide:hover .artist-portrait img { filter: grayscale(0); }
.artist-portrait__role { position: absolute; bottom: 1.25rem; left: 1.25rem; color: color-mix(in srgb, var(--color-primary-foreground) 80%, transparent); font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; }
.artist-copy { background: var(--color-card); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-border) 60%, transparent); padding: 1.5rem; display: flex; flex-direction: column; height: 100%; }
@media (min-width: 768px) { .artist-copy { padding: 2.5rem 3rem; } }
.artist-copy__scroll { flex: 1; overflow-y: auto; padding-right: 0.25rem; }
.artist-greeting { font-family: var(--font-display); font-weight: 700; font-size: 1.75rem; line-height: 1.2; }
@media (min-width: 768px) { .artist-greeting { font-size: 2.5rem; } }
.artist-firstname { color: var(--color-accent); }
.artist-tagline { margin-top: 0.5rem; font-family: var(--font-display); font-style: italic; font-size: 1.125rem; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); }
.artist-bio { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.9rem; color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 0.9rem; line-height: 1.65; max-width: 60ch; }
.artist-categories { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
.artist-category-btn { border: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent); padding: 0.75rem 0.5rem; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600; color: color-mix(in srgb, var(--color-foreground) 80%, transparent); transition: color 0.2s ease, border-color 0.2s ease; }
.artist-category-btn:hover { color: var(--color-accent); border-color: var(--color-accent); }
.artist-socials { margin-top: 1.25rem; display: flex; align-items: center; gap: 0.5rem; }
.artist-social-link { width: 2.5rem; height: 2.5rem; border: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent); color: var(--color-accent); display: flex; align-items: center; justify-content: center; transition: border-color 0.2s ease; }
.artist-social-link:hover { border-color: var(--color-accent); }

.artists-controls { margin-top: 1.75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.artists-dots { display: flex; align-items: center; gap: 0.5rem; }
.artists-dot { height: 6px; width: 20px; border-radius: 999px; background: var(--color-border); transition: all 0.3s ease; }
.artists-dot.is-active { width: 40px; background: var(--color-accent); }
.artists-arrows { display: flex; align-items: center; gap: 0.75rem; }
.artists-arrow { width: 2.75rem; height: 2.75rem; border: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent); color: color-mix(in srgb, var(--color-foreground) 80%, transparent); display: flex; align-items: center; justify-content: center; transition: color 0.2s ease, border-color 0.2s ease; }
.artists-arrow:hover { border-color: var(--color-accent); color: var(--color-accent); }

/* ------------------------------------------------------------------ */
/* MUSIC / RECORD ROOM */
/* ------------------------------------------------------------------ */
.music-section { position: relative; background: var(--color-background); padding: 5rem 0; overflow: hidden; }
@media (min-width: 768px) { .music-section { padding: 7rem 0; } }
.music-header { max-width: 42rem; margin-bottom: 3rem; }
.music-eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 1rem; }
.music-eyebrow-icon { width: 0.875rem; height: 0.875rem; }
.music-heading { font-size: 2.25rem; font-weight: 400; line-height: 1.05; letter-spacing: -0.015em; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .music-heading { font-size: 3rem; } }
@media (min-width: 1024px) { .music-heading { font-size: 3.75rem; } }
.music-title-em { font-style: italic; color: var(--color-accent); }
.music-desc { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 1rem; line-height: 1.65; }
@media (min-width: 768px) { .music-desc { font-size: 1.125rem; } }

.music-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .music-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .music-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }

.release-card { display: flex; flex-direction: column; border-radius: var(--card-radius); border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent); background: color-mix(in srgb, var(--color-card) 80%, transparent); overflow: hidden; transition: transform 0.4s ease, box-shadow 0.5s ease, border-color 0.5s ease; }
.release-card:hover { transform: translateY(-6px); border-color: color-mix(in srgb, var(--color-foreground) 25%, transparent); box-shadow: 0 20px 60px -20px color-mix(in srgb, var(--color-primary) 50%, transparent); }
.release-card__head { padding: 1.25rem 1.25rem 0.25rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.release-artist { font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 0.4rem; }
.release-title { font-size: 1.25rem; line-height: 1.2; transition: color 0.3s ease; }
@media (min-width: 768px) { .release-title { font-size: 1.5rem; } }
.release-card:hover .release-title { color: var(--color-accent); }
.release-year { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--color-foreground) 50%, transparent); padding-top: 0.25rem; flex-shrink: 0; }
.release-embed-wrap { padding: 0 1.25rem 1rem; }
.release-embed-inner {
	position: relative;
	border-radius: 0.75rem;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
	background: color-mix(in srgb, var(--color-background) 60%, transparent);
	min-height: 152px;
}
.release-embed-inner iframe {
	display: block;
	width: 100%;
	height: 152px;
	border: none;
	border-radius: 0;
}
.release-card__footer { margin-top: auto; padding: 0.5rem 1.25rem 1.25rem; }
.release-meta { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: color-mix(in srgb, var(--color-foreground) 60%, transparent); padding-top: 0.75rem; border-top: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent); margin-bottom: 1rem; }
.release-meta .release-price { color: color-mix(in srgb, var(--color-foreground) 85%, transparent); }
.release-actions { display: flex; flex-direction: column; gap: 0.6rem; }
@media (min-width: 480px) { .release-actions { flex-direction: row; } }
.release-actions .theme-btn { flex: 1; }

.music-footer { margin-top: 3rem; text-align: center; }
@media (min-width: 768px) { .music-footer { margin-top: 4rem; } }

/* ------------------------------------------------------------------ */
/* HOW IT WORKS */
/* ------------------------------------------------------------------ */
.how-section { background: var(--color-card); padding: 5rem 0; }
@media (min-width: 768px) { .how-section { padding: 7rem 0; } }
.how-header { text-align: center; max-width: 42rem; margin: 0 auto 3rem; }
.how-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 1rem; font-weight: 600; }
.how-title { font-size: 1.875rem; font-weight: 400; line-height: 1.05; margin-bottom: 1rem; }
@media (min-width: 768px) { .how-title { font-size: 3rem; } }
@media (min-width: 1024px) { .how-title { font-size: 3.75rem; } }
.how-desc { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 1rem; }
@media (min-width: 768px) { .how-desc { font-size: 1.125rem; } }

.how-steps { position: relative; max-width: 64rem; margin: 0 auto; display: flex; flex-direction: column; gap: 3.5rem; }
@media (min-width: 768px) { .how-steps { gap: 5rem; } }
.how-steps::before {
	content: '';
	position: absolute;
	left: 2rem;
	top: 2rem;
	bottom: 2rem;
	border-left: 2px dotted color-mix(in srgb, var(--color-primary) 45%, transparent);
	pointer-events: none;
}
@media (min-width: 768px) {
	.how-steps::before {
		left: 50%;
		transform: translateX(-50%);
	}
}

.how-step { position: relative; }
.how-step__desktop { display: none; }
@media (min-width: 768px) {
	.how-step__desktop {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		gap: 2.5rem;
	}
}
.how-step__mobile { position: relative; padding-left: 5rem; }
@media (min-width: 768px) { .how-step__mobile { display: none; } }

.how-step__col--left { display: flex; justify-content: flex-end; padding-right: 1rem; }
.how-step__col--center { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; }
.how-step__col--right { display: flex; justify-content: flex-start; padding-left: 1rem; }

.how-step__number {
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-primary-foreground);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-elevated), 0 0 0 8px var(--color-card);
	flex-shrink: 0;
}
@media (min-width: 768px) {
	.how-step__number { width: 5rem; height: 5rem; }
}
.how-step__number--mobile {
	position: absolute;
	left: 0;
	top: 0;
	box-shadow: var(--shadow-elevated), 0 0 0 4px var(--color-card);
}
.how-step__number-label { font-size: 9px; letter-spacing: 0.24em; text-transform: uppercase; opacity: 0.8; line-height: 1; margin-bottom: 0.125rem; }
.how-step__number-value { font-family: var(--font-display); font-size: 1.25rem; line-height: 1; }
@media (min-width: 768px) { .how-step__number-value { font-size: 1.5rem; } }

.how-step__image {
	position: relative;
	width: 100%;
	max-width: 24rem;
	aspect-ratio: 4/3;
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: var(--shadow-elevated);
	border: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
}
.how-step__image--mobile { margin-top: 1rem; max-width: none; }
.how-step__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.how-step__copy { max-width: 28rem; width: 100%; }
.how-step__copy--align-end { text-align: right; }
.how-step__mobile .step-title { margin-top: 0; }
.how-step__mobile .step-body { font-size: 0.9375rem; }
.how-step__mobile .step-detail { margin-bottom: 0; }

.step-title { font-size: 1.25rem; line-height: 1.3; margin-bottom: 0.75rem; }
@media (min-width: 768px) { .step-title { font-size: 1.75rem; } }
.step-body { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 0.9375rem; line-height: 1.6; margin-bottom: 1rem; }
@media (min-width: 768px) { .step-body { font-size: 1rem; } }
.step-detail {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--color-primary);
}
.step-detail--start::before {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1px;
	background: var(--color-primary);
	flex-shrink: 0;
}
.step-detail--end::after {
	content: '';
	display: block;
	width: 1.5rem;
	height: 1px;
	background: var(--color-primary);
	flex-shrink: 0;
}

/* ------------------------------------------------------------------ */
/* SHOP */
/* ------------------------------------------------------------------ */
.shop-section { padding: 4rem 0; }
@media (min-width: 768px) { .shop-section { padding: 6rem 0; } }
.shop-header { text-align: center; margin-bottom: 2.5rem; }
.shop-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 0.75rem; }
.shop-title { font-size: 1.875rem; font-weight: 400; margin-bottom: 2rem; }
@media (min-width: 768px) { .shop-title { font-size: 3rem; } }

.shop-search-wrap { position: relative; max-width: 28rem; margin: 0 auto 2rem; }
.shop-search-icon { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1rem; height: 1rem; color: var(--color-muted-foreground); }
.shop-search-input { width: 100%; padding: 0.5rem 0 0.5rem 1.75rem; background: transparent; border: none; border-bottom: 1px solid var(--color-border); font-size: 0.875rem; color: var(--color-foreground); transition: border-color 0.2s ease; }
.shop-search-input:focus { outline: none; border-color: var(--color-foreground); }

.shop-category-pills { display: flex; overflow-x: auto; gap: 0.5rem; margin-bottom: 1rem; padding-bottom: 0.25rem; justify-content: center; flex-wrap: wrap; }
.theme-cat-filter { flex-shrink: 0; padding: 0.5rem 1.25rem; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; border-radius: 999px; border: 1px solid var(--color-border); color: var(--color-foreground); transition: all 0.3s ease; }
.theme-cat-filter:hover { border-color: var(--color-primary); color: var(--color-primary); }
.theme-cat-filter.is-active { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-primary-foreground); }

.shop-price-filter-wrap { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; margin-bottom: 2.5rem; }
.shop-price-filter-toggle { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-muted-foreground); transition: color 0.3s ease; }
.shop-price-filter-toggle:hover { color: var(--color-foreground); }
.shop-price-filter-chevron { transition: transform 0.3s ease; }
.shop-price-filter-wrap[data-open] .shop-price-filter-chevron { transform: rotate(180deg); }
.shop-price-filter-panel { width: 100%; max-width: 22rem; padding-top: 0.5rem; }

.price-range-wrapper { position: relative; height: 1.5rem; }
.range-track-bg, .range-track-fill { position: absolute; height: 4px; top: 50%; transform: translateY(-50%); pointer-events: none; border-radius: 999px; }
.range-track-bg { left: 0; right: 0; background: var(--color-border); }
.range-track-fill { background: var(--color-primary); }
.range-input { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; }
.range-input::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--color-primary-foreground); border: 2px solid var(--color-primary); cursor: pointer; margin-top: -1px; }
.range-input::-moz-range-thumb { pointer-events: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--color-primary-foreground); border: 2px solid var(--color-primary); cursor: pointer; }
.range-input::-webkit-slider-runnable-track { background: transparent; }
.range-input--max { z-index: 3; }
.range-input--min { z-index: 4; }
.price-range-labels { display: flex; justify-content: space-between; margin-top: 0.5rem; font-size: 0.875rem; color: var(--color-muted-foreground); }

.theme-product-grid--shop .theme-product-card-wrap.is-hidden-by-filter { display: none; }

.shop-empty-text { text-align: center; padding: 4rem 0; color: var(--color-muted-foreground); }
.shop-show-more-wrap { text-align: center; margin-top: 3rem; }

/* ------------------------------------------------------------------ */
/* FAQ */
/* ------------------------------------------------------------------ */
.faq-section { background: var(--color-background); padding: 5rem 0; }
@media (min-width: 768px) { .faq-section { padding: 7rem 0; } }
.faq-header { max-width: 40rem; margin: 0 auto 2.5rem; text-align: center; }
@media (min-width: 768px) { .faq-header { margin-bottom: 3.5rem; } }
.faq-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); margin-bottom: 0.75rem; }
.faq-title { font-size: 1.875rem; font-weight: 400; line-height: 1.05; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .faq-title { font-size: 3rem; } }
@media (min-width: 1024px) { .faq-title { font-size: 3.75rem; } }
.faq-subtitle { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 1rem; }
@media (min-width: 768px) { .faq-subtitle { font-size: 1.125rem; } }
.faq-email { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--color-foreground) 30%, transparent); text-underline-offset: 4px; }
.faq-email:hover { text-decoration-color: var(--color-foreground); }

.faq-tabs { display: none; flex-wrap: wrap; justify-content: center; gap: 0.65rem; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .faq-tabs { display: flex; } }
.faq-tab { border-radius: 999px; border: 1px solid; padding: 0.6rem 1.25rem; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; transition: all 0.2s ease; }
.faq-tab:hover { transform: translateY(-2px); }
.faq-tab--rosa { border-color: var(--color-rosa); color: var(--color-foreground); }
.faq-tab--rosa.is-active { background: var(--color-rosa); color: var(--color-foreground); }
.faq-tab--lilac { border-color: var(--color-lilac); color: var(--color-foreground); }
.faq-tab--lilac.is-active { background: var(--color-lilac); color: var(--color-foreground); }
.faq-tab--teal { border-color: var(--color-teal); color: var(--color-teal); }
.faq-tab--teal.is-active { background: var(--color-teal); color: var(--color-background); }
.faq-tab--marigold { border-color: var(--color-marigold); color: var(--color-foreground); }
.faq-tab--marigold.is-active { background: var(--color-marigold); color: var(--color-foreground); }
.faq-tab--nopal { border-color: var(--color-lilac); color: var(--color-lilac); }
.faq-tab--nopal.is-active { background: var(--color-lilac); color: var(--color-background); }

.faq-panels { max-width: 48rem; margin: 0 auto; }
.faq-panel { display: none; }
.faq-panel.is-active { display: block; animation: fadeIn 0.3s ease both; }
@media (min-width: 768px) { .faq-panel { border-top: 1px solid color-mix(in srgb, var(--color-foreground) 15%, transparent); } }
@media (max-width: 767px) { .faq-panel { display: block; margin-bottom: 2.5rem; } }
.faq-panel__mobile-title { display: inline-block; border-radius: 999px; border: 1px solid var(--color-border); padding: 0.6rem 1.25rem; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; margin-bottom: 1rem; }
@media (min-width: 768px) { .faq-panel__mobile-title { display: none; } }
@media (max-width: 767px) { .faq-panel { text-align: center; } .faq-panel .faq-item { border-top: 1px solid color-mix(in srgb, var(--color-foreground) 15%, transparent); } }

.faq-item { border-bottom: 1px solid color-mix(in srgb, var(--color-foreground) 15%, transparent); }
.faq-item__trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.25rem 0; text-align: left; }
@media (min-width: 768px) { .faq-item__trigger { padding: 1.5rem 0; } }
.faq-item__question { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.4; }
@media (min-width: 768px) { .faq-item__question { font-size: 1.25rem; } }
.faq-item__icon { flex-shrink: 0; width: 2.25rem; height: 2.25rem; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--color-foreground) 30%, transparent); display: flex; align-items: center; justify-content: center; transition: transform 0.3s ease; }
.faq-item.is-open .faq-item__icon { transform: rotate(180deg); }
.faq-item__panel { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.faq-item.is-open .faq-item__panel { max-height: 600px; }
.faq-item__panel p { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 0.9375rem; line-height: 1.6; padding-bottom: 1.5rem; padding-right: 2rem; }
@media (min-width: 768px) { .faq-item__panel p { font-size: 1.0625rem; } }

/* ------------------------------------------------------------------ */
/* TESTIMONIALS */
/* ------------------------------------------------------------------ */
.testimonials-section { background: var(--color-card); padding: 5rem 0; }
@media (min-width: 768px) { .testimonials-section { padding: 7rem 0; } }
.testimonials-header { max-width: 40rem; margin: 0 auto 3rem; text-align: center; }
.testimonials-eyebrow { display: block; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); font-weight: 600; margin-bottom: 0.75rem; }
.testimonials-title { font-style: italic; font-size: 1.5rem; font-weight: 400; line-height: 1.05; margin-bottom: 0.75rem; }
@media (min-width: 768px) { .testimonials-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .testimonials-title { font-size: 3rem; } }
.testimonials-subtitle { color: color-mix(in srgb, var(--color-foreground) 70%, transparent); font-size: 0.875rem; }
@media (min-width: 768px) { .testimonials-subtitle { font-size: 1rem; } }

.testimonials-masonry { max-width: 72rem; margin: 0 auto; column-count: 1; column-gap: 1.5rem; }
@media (min-width: 768px) { .testimonials-masonry { column-count: 2; } }
@media (min-width: 1024px) { .testimonials-masonry { column-count: 3; } }
.testimonial-card { display: block; break-inside: avoid; margin-bottom: 1.5rem; border-radius: var(--card-radius); border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); background: color-mix(in srgb, var(--color-background) 40%, transparent); padding: 1.5rem; transition: all 0.5s ease; }
.testimonial-card:hover { border-color: var(--color-border); transform: translateY(-4px); background: color-mix(in srgb, var(--color-background) 60%, transparent); }
.testimonial-title { font-size: 1.125rem; margin-bottom: 0.75rem; line-height: 1.3; }
.testimonial-stars { display: flex; gap: 0.2rem; margin-bottom: 0.75rem; color: var(--color-marigold); }
.testimonial-star { width: 1rem; height: 1rem; fill: currentColor; stroke: none; }
.testimonial-quote { display: block; color: color-mix(in srgb, var(--color-foreground) 75%, transparent); font-size: 0.875rem; line-height: 1.6; }
@media (min-width: 768px) { .testimonial-quote { font-size: 0.9375rem; } }
.testimonial-caption { display: flex; align-items: center; gap: 0.75rem; margin-top: 1.5rem; }
.testimonial-initials { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 30%, transparent), color-mix(in srgb, var(--color-primary) 10%, transparent)); border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); font-size: 0.75rem; color: color-mix(in srgb, var(--color-foreground) 80%, transparent); font-family: var(--font-display); flex-shrink: 0; }
.testimonial-who { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.testimonial-name { font-weight: 600; font-size: 0.875rem; }
.testimonial-role { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in srgb, var(--color-foreground) 50%, transparent); margin-top: 0.15rem; }

/* ------------------------------------------------------------------ */
/* NEWSLETTER */
/* ------------------------------------------------------------------ */
.newsletter-section { padding: 5rem 0; }
@media (min-width: 768px) { .newsletter-section { padding: 6rem 0; } }
.newsletter-card { position: relative; overflow: hidden; border-radius: 1.5rem; background: var(--color-card); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-border) 60%, transparent); padding: 3.5rem 1.5rem; text-align: center; }
@media (min-width: 768px) { .newsletter-card { padding: 5rem 4rem; } }
.newsletter-eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 12px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--color-primary); font-weight: 600; margin-bottom: 1rem; }
.newsletter-title { font-size: 1.875rem; font-weight: 400; line-height: 1.2; margin-bottom: 1rem; }
@media (min-width: 768px) { .newsletter-title { font-size: 3rem; } }
.newsletter-desc { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); max-width: 36rem; margin: 0 auto 2rem; font-size: 1rem; }
@media (min-width: 768px) { .newsletter-desc { font-size: 1.125rem; } }
.newsletter-form { display: flex; flex-direction: column; align-items: stretch; gap: 0.75rem; max-width: 32rem; margin: 0 auto; }
@media (min-width: 640px) { .newsletter-form { flex-direction: row; } }
.newsletter-input { flex: 1; border-radius: 999px; border: 1px solid var(--color-border); background: var(--color-background); padding: 0.9rem 1.25rem; font-size: 0.875rem; color: var(--color-foreground); }
.newsletter-input:focus { outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent); }
.newsletter-success { margin-top: 1rem; font-size: 0.875rem; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); }

/* ------------------------------------------------------------------ */
/* CONTACT CTA */
/* ------------------------------------------------------------------ */
.contact-cta-section { position: relative; min-height: 85vh; width: 100%; display: flex; align-items: center; justify-content: center; padding: 6rem 1rem; overflow: hidden; }
.contact-cta-bg { object-position: center; }
.contact-cta-overlay { position: absolute; inset: 0; background: color-mix(in srgb, var(--color-background) 30%, transparent); }
.contact-cta-panel {
	position: relative; z-index: 1; width: 100%; max-width: 56rem; border-radius: 2rem; overflow: hidden;
	padding: 3.5rem 2rem; text-align: center;
	background: linear-gradient(135deg, color-mix(in srgb, var(--color-background) 96%, transparent) 0%, color-mix(in srgb, var(--color-card) 90%, transparent) 55%, color-mix(in srgb, var(--color-accent) 50%, transparent) 100%);
	box-shadow: 0 30px 80px -20px color-mix(in srgb, var(--color-background) 40%, transparent);
	backdrop-filter: blur(10px);
}
@media (min-width: 768px) { .contact-cta-panel { padding: 5rem 4rem; } }
.contact-quote { font-family: var(--font-display); font-style: italic; color: color-mix(in srgb, var(--color-primary) 80%, transparent); font-size: 1.125rem; margin-bottom: 1rem; }
.contact-title { font-size: 2.25rem; font-weight: 400; line-height: 1.05; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .contact-title { font-size: 3rem; } }
@media (min-width: 1024px) { .contact-title { font-size: 3.75rem; } }
.contact-desc { color: color-mix(in srgb, var(--color-foreground) 75%, transparent); max-width: 36rem; margin: 0 auto 2.5rem; font-size: 1rem; }
@media (min-width: 768px) { .contact-desc { font-size: 1.125rem; } }
.contact-cta-actions { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; margin-bottom: 2.5rem; }
@media (min-width: 640px) { .contact-cta-actions { flex-direction: row; } }
.contact-cta-socials { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.75rem; }
.contact-social-link { width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--color-foreground) 15%, transparent); background: color-mix(in srgb, var(--color-background) 60%, transparent); color: var(--color-accent); display: flex; align-items: center; justify-content: center; transition: transform 0.2s ease, border-color 0.2s ease; }
.contact-social-link .theme-icon { width: 1rem; height: 1rem; flex-shrink: 0; display: block; }
.contact-social-link .theme-icon--brand { width: 0.875rem; height: 0.875rem; }
.contact-social-link:hover { transform: translateY(-2px); border-color: var(--color-accent); }
.contact-social-link.social-facebook:hover { color: #1877F2; }
.contact-social-link.social-twitter:hover { color: var(--color-foreground); }
.contact-social-link.social-instagram:hover { color: #E1306C; }
.contact-social-link.social-patreon:hover { color: #FF424D; }
.contact-social-link.social-youtube:hover { color: #FF0000; }
.contact-social-link.social-tiktok:hover { color: #25F4EE; }

/* ------------------------------------------------------------------ */
/* FOOTER */
/* ------------------------------------------------------------------ */
.site-footer { border-top: 1px solid var(--color-border); background: var(--color-card); }
.site-footer__inner { padding: 4rem 0 2rem; }
@media (min-width: 1024px) { .site-footer__inner { padding: 5rem 0 2.5rem; } }
@media (max-width: 1023px) {
	.site-footer .site-footer__inner { padding-left: 2rem; padding-right: 2rem; }
}
.site-footer__top { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--color-border); }
@media (min-width: 640px) { .site-footer__top { flex-direction: row; align-items: center; justify-content: space-between; } }
.site-footer__logo-img { height: var(--footer-logo-height); width: auto; max-height: var(--footer-logo-height); object-fit: contain; flex-shrink: 0; }
@media (min-width: 768px) { .site-footer__logo-img { height: var(--footer-logo-height-md); max-height: var(--footer-logo-height-md); } }
.site-footer__about { max-width: 36rem; }
@media (min-width: 640px) { .site-footer__about { text-align: right; } }
.footer-tagline { font-size: 0.875rem; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); line-height: 1.6; }
.footer-email-link { display: inline-block; margin-top: 0.75rem; font-size: 0.875rem; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); }
.footer-email-link:hover { color: var(--color-foreground); }

.site-footer__columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
@media (min-width: 768px) { .site-footer__columns { grid-template-columns: repeat(4, 1fr); gap: 3rem; } }
.footer-col__title { font-size: 1.25rem; margin-bottom: 1.25rem; }
.footer-col ul { display: flex; flex-direction: column; gap: 0.75rem; }
.footer-col a { font-size: 0.875rem; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); transition: color 0.2s ease, transform 0.2s ease; display: inline-block; }
.footer-col a:hover { color: var(--color-foreground); transform: translateX(2px); }
.footer-col--connect a.contact-social-link,
.footer-col--connect a.contact-social-link:hover {
	transform: none;
}
.footer-col--connect a.contact-social-link {
	display: flex;
}
.footer-col--connect a.contact-social-link:hover {
	transform: translateY(-2px);
}
.footer-col--connect { grid-column: span 2; }
@media (min-width: 768px) { .footer-col--connect { grid-column: span 1; } }
.footer-col--connect a.footer-connect-email {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	line-height: 1.25;
	color: color-mix(in srgb, var(--color-foreground) 80%, transparent);
	margin-bottom: 1.25rem;
	transition: color 0.2s ease;
}
.footer-col--connect a.footer-connect-email:hover {
	color: var(--color-foreground);
	transform: none;
}
.footer-connect-email__icon {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	display: block;
}
.footer-connect-email__text { display: inline; line-height: 1.25; }
.footer-connect-socials {
	justify-content: flex-start;
	gap: 0.625rem;
	margin-top: 0;
}

.site-footer__bottom { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); display: flex; flex-direction: column; align-items: center; gap: 0.75rem; text-align: center; }
@media (min-width: 640px) { .site-footer__bottom { flex-direction: row; justify-content: space-between; text-align: left; } }
.footer-quote { font-size: 12px; color: var(--color-accent); font-style: italic; letter-spacing: 0.02em; }
.footer-copyright { font-size: 12px; color: var(--color-muted-foreground); letter-spacing: 0.02em; }

/* ------------------------------------------------------------------ */
/* CART DRAWER + OVERLAY (Section 12) */
/* ------------------------------------------------------------------ */
#theme-cart-overlay { position: fixed; inset: 0; z-index: 90; background: color-mix(in srgb, var(--color-foreground) 15%, transparent); opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
body.cart-open #theme-cart-overlay { opacity: 1; pointer-events: auto; }

#theme-cart-drawer {
	position: fixed; top: 0; right: 0; height: 100%; width: 100%; max-width: 26rem; z-index: 91;
	background: var(--color-background); box-shadow: var(--shadow-elevated);
	display: flex; flex-direction: column;
	transform: translateX(100%); transition: transform 0.35s var(--transition-smooth);
}
body.cart-open #theme-cart-drawer { transform: translateX(0); }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }
.theme-cart-drawer__header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid var(--color-border); }
.theme-cart-drawer__header h2 { font-size: 1.125rem; font-weight: 700; }
.theme-cart-drawer__close { padding: 0.25rem; }
.theme-cart-drawer__close:hover { opacity: 0.6; }
.theme-cart-drawer__empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; text-align: center; gap: 1rem; }
.theme-cart-empty-icon { width: 3rem; height: 3rem; color: var(--color-muted-foreground); }
.theme-cart-drawer__items { flex: 1; overflow-y: auto; padding: 1.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.theme-cart-item { display: flex; gap: 1rem; }
.theme-cart-item__image {
	display: block;
	position: relative;
	width: 5rem;
	height: 6rem;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 0.5rem;
	background: var(--color-card);
}
#theme-cart-drawer .theme-cart-item__image img,
.theme-cart-item__image img,
.theme-cart-item__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	display: block;
}
.theme-cart-item__info { flex: 1; min-width: 0; }
.theme-cart-item__name { font-size: 0.875rem; font-weight: 500; display: block; }
.theme-cart-item__price { font-size: 0.875rem; color: var(--color-muted-foreground); margin-top: 0.15rem; }
.theme-cart-item__variation { font-size: 0.75rem; color: var(--color-muted-foreground); margin-top: 0.15rem; }
.theme-cart-item__controls { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.75rem; }
.theme-cart-item__controls button { padding: 0.25rem; border-radius: 4px; transition: background 0.2s ease; }
.theme-cart-item__controls button:hover { background: var(--color-card); }
.theme-cart-item__qty { font-size: 0.875rem; width: 1.5rem; text-align: center; }
.theme-cart-item__remove { margin-left: auto; font-size: 0.8125rem; color: var(--color-muted-foreground); }
.theme-cart-item__remove:hover { color: var(--color-foreground); }
.theme-cart-drawer__footer { padding: 1.5rem; border-top: 1px solid var(--color-border); display: flex; flex-direction: column; gap: 0.9rem; }
.theme-cart-drawer__subtotal { display: flex; justify-content: space-between; font-size: 0.875rem; }
.theme-cart-drawer__note { font-size: 0.8125rem; color: var(--color-muted-foreground); }

/* ------------------------------------------------------------------ */
/* CONTACT MODAL */
/* ------------------------------------------------------------------ */
.theme-modal { position: fixed; inset: 0; z-index: 95; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.theme-modal[hidden] { display: none; }
.theme-modal__overlay { position: absolute; inset: 0; background: color-mix(in srgb, var(--color-background) 55%, transparent); animation: fadeIn 0.25s ease both; }
.theme-modal__panel { position: relative; z-index: 1; width: 100%; max-width: 32rem; max-height: 90vh; overflow-y: auto; background: var(--color-card); border-radius: 1rem; padding: 2rem; box-shadow: var(--shadow-elevated); animation: slideUp 0.3s var(--transition-smooth) both; }
.theme-modal__close { position: absolute; top: 1rem; right: 1rem; padding: 0.4rem; }
.theme-modal__close:hover { opacity: 0.6; }
.theme-modal__title { font-size: 1.5rem; margin-bottom: 0.5rem; }
.theme-modal__desc { color: var(--color-muted-foreground); font-size: 0.9375rem; margin-bottom: 1.25rem; }
.theme-modal__email-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--color-muted-foreground); margin-bottom: 1.5rem; }
.theme-modal__email-row a:hover { color: var(--color-foreground); }
.theme-modal__success { text-align: center; padding: 2rem 0; }
.theme-modal__success[hidden] { display: none; }
.theme-modal__success-icon { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--color-primary); color: var(--color-primary-foreground); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.theme-modal__success-icon svg { width: 1.75rem; height: 1.75rem; }
.theme-modal__success h3 { font-size: 1.25rem; margin-bottom: 0.5rem; }
.theme-modal__form[hidden] { display: none; }
.theme-form-row--two { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 480px) { .theme-form-row--two { grid-template-columns: 1fr 1fr; } }
.theme-form-field { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1rem; }
.theme-form-field label { font-size: 0.875rem; font-weight: 500; }
.theme-form-field input, .theme-form-field select, .theme-form-field textarea {
	width: 100%; padding: 0.6rem 0.75rem; background: var(--color-background); border: 1px solid var(--color-border);
	border-radius: 6px; font-size: 0.9375rem; color: var(--color-foreground); transition: box-shadow 0.2s ease;
}
.theme-form-field input:focus, .theme-form-field select:focus, .theme-form-field textarea:focus { outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent); }
.theme-form-actions { display: flex; justify-content: flex-end; }

/* ------------------------------------------------------------------ */
/* SINGLE PRODUCT (Section 11.13) */
/* ------------------------------------------------------------------ */
.single-product-main {
	padding: 1.5rem 0 6rem;
	background: var(--color-background);
}
@media (min-width: 1024px) {
	.single-product-main { padding-top: 2rem; }
}

.product-breadcrumb {
	padding: 0.75rem 0;
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
}
.product-breadcrumb a { transition: color 0.2s ease; }
.product-breadcrumb a:hover { color: var(--color-foreground); }
.product-breadcrumb__sep { margin: 0 0.5rem; opacity: 0.5; }
.product-breadcrumb__current { color: var(--color-foreground); }

.theme-product-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding: 1rem 0 6rem;
	align-items: start;
	min-width: 0;
}
@media (min-width: 1024px) {
	.theme-product-layout {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 4rem;
	}
}
.theme-product-gallery,
.theme-product-info { min-width: 0; max-width: 100%; }
@media (min-width: 1024px) {
	.theme-product-gallery { grid-column: span 7; }
	.theme-product-info {
		grid-column: span 5;
		padding-left: 1rem;
		position: sticky;
		top: 7rem;
		align-self: start;
	}
}

.theme-product-gallery__mobile { display: block; }
.theme-product-gallery__desktop { display: none; }
@media (min-width: 1024px) {
	.theme-product-gallery__mobile { display: none; }
	.theme-product-gallery__desktop {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
}

.theme-product-gallery__frame {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--color-card);
	overflow: hidden;
}
.theme-product-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.theme-product-thumbnails {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	overflow-x: auto;
	padding-bottom: 0.25rem;
}
.theme-product-thumb {
	position: relative;
	width: 5rem;
	height: 5rem;
	flex-shrink: 0;
	overflow: hidden;
	background: var(--color-card);
	border: none;
	padding: 0;
	cursor: pointer;
}
.theme-product-thumb img { opacity: 0.6; transition: opacity 0.2s ease; }
.theme-product-thumb.is-active img,
.theme-product-thumb:hover img { opacity: 1; }
.theme-product-thumb::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--color-foreground);
	opacity: 0;
	transition: opacity 0.2s ease;
}
.theme-product-thumb.is-active::after { opacity: 1; }

.product-category {
	font-size: 13px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	margin: 0;
}
.product-title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 1.875rem;
	line-height: 1.1;
	margin: 0.75rem 0;
}
@media (min-width: 768px) { .product-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .product-title { font-size: 2.75rem; } }
.product-vendor {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1rem;
	color: var(--color-primary);
	margin: 0 0 1.25rem;
}
.product-price {
	font-size: 1.25rem;
	margin-bottom: 1.5rem;
	font-family: var(--font-body);
}
.product-price .woocommerce-Price-amount { color: var(--color-foreground); }
.product-excerpt {
	color: var(--color-muted-foreground);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 2rem;
	font-family: var(--font-body);
}
.product-stock-status {
	display: inline-block;
	margin-bottom: 1rem;
	padding: 0.35rem 0.9rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-destructive) 15%, transparent);
	color: var(--color-destructive);
	font-size: 0.8125rem;
	font-weight: 500;
}

.theme-product-purchase-form { margin: 0; }
.theme-product-field { margin-bottom: 1rem; }
.theme-product-field__label {
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	margin: 0 0 0.75rem;
	font-weight: 400;
	font-family: var(--font-body);
}

.theme-quantity-wrapper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-border);
	border-radius: 0;
}
.theme-quantity-wrapper button {
	padding: 0.5rem 0.75rem;
	transition: background 0.2s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.theme-quantity-wrapper button:hover { background: var(--color-card); }
.theme-quantity-wrapper .theme-icon { width: 0.875rem; height: 0.875rem; }
.theme-qty-input {
	-moz-appearance: textfield;
	width: 2.75rem;
	min-width: 44px;
	text-align: center;
	background: transparent;
	border: none;
	font-size: 0.875rem;
	color: var(--color-foreground);
	padding: 0.5rem 0;
}
.theme-qty-input::-webkit-outer-spin-button,
.theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.theme-btn-product-cart,
.single-product .single_add_to_cart_button.theme-btn-product-cart,
.single-product form.cart .single_add_to_cart_button.theme-btn-product-cart {
	width: 100%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 1rem 1.5rem !important;
	border-radius: 999px !important;
	background-color: var(--color-foreground) !important;
	color: var(--color-background) !important;
	border: none !important;
	font-size: 0.75rem !important;
	letter-spacing: 0.25em !important;
	text-transform: uppercase !important;
	font-weight: 500 !important;
	font-family: var(--font-body) !important;
	min-height: unset !important;
	margin-top: 0.25rem;
	transition: opacity 0.2s ease, background-color 0.2s ease;
}
.theme-btn-product-cart:hover:not(:disabled):not(.disabled),
.single-product .single_add_to_cart_button.theme-btn-product-cart:hover:not(:disabled):not(.disabled) {
	opacity: 0.9;
	background-color: color-mix(in srgb, var(--color-foreground) 90%, transparent) !important;
	color: var(--color-background) !important;
}
.theme-btn-product-cart:disabled,
.theme-btn-product-cart.disabled,
.single-product .single_add_to_cart_button.theme-btn-product-cart:disabled,
.single-product .single_add_to_cart_button.theme-btn-product-cart.disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.theme-attr-select-hidden { display: none !important; }
.theme-attr-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0; }
.theme-attr-pill {
	padding: 0.5rem 1rem;
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	transition: all 0.2s ease;
	font-family: var(--font-body);
}
.theme-attr-pill:hover { border-color: color-mix(in srgb, var(--color-foreground) 60%, transparent); }
.theme-attr-pill.is-selected {
	background: var(--color-foreground);
	color: var(--color-background);
	border-color: var(--color-foreground);
}

.single-product .variations_form { margin-bottom: 0; }
.single-product .variations.shop_attributes,
.single-product .variations tbody,
.single-product .variations tbody tr,
.single-product .variations tbody td { display: block; width: 100%; border: none; }
.single-product .variations tbody td.label { padding: 0 0 0.75rem; }
.single-product .variations tbody td.value { padding: 0 0 1.5rem; }
.single-product .variations tbody td.label label {
	font-size: 13px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	font-weight: 400;
}
.single-product .single_variation_wrap { margin-top: 0; }
.single-product .woocommerce-variation.single_variation { display: none !important; }
.single-product .woocommerce-variation-add-to-cart { margin: 0; padding: 0; }

.theme-product-accordions { margin-top: 2.5rem; border-top: 1px solid var(--color-border); }
.theme-accordion { border-bottom: 1px solid var(--color-border); }
.theme-accordion--spacer { border-bottom: none; height: 0; padding: 0; margin: 0; }
.theme-accordion__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 0;
	font-size: 13px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	text-align: left;
	font-family: var(--font-body);
}
.theme-accordion__chevron { width: 1rem; height: 1rem; flex-shrink: 0; transition: transform 0.3s ease; }
.theme-accordion.is-open .theme-accordion__chevron { transform: rotate(180deg); }
.theme-accordion__panel { display: none; padding-bottom: 1.5rem; }
.theme-accordion.is-open .theme-accordion__panel { display: block; }
.theme-accordion__panel > p {
	font-size: 0.9375rem;
	line-height: 1.625;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
}
.theme-accordion__panel > p + p { margin-top: 0.75rem; }

.woocommerce-product-details__long-description,
.woocommerce-product-details__short-description {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--color-muted-foreground);
	overflow-wrap: break-word;
	word-break: break-word;
	font-family: var(--font-body);
}
.woocommerce-product-details__long-description p { margin: 0 0 1rem; }
.woocommerce-product-details__short-description { margin-top: 0; }
.woocommerce-product-details__short-description ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.woocommerce-product-details__short-description li {
	position: relative;
	padding-left: 1rem;
	font-size: 0.9375rem;
	color: var(--color-muted-foreground);
}
.woocommerce-product-details__short-description li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--color-foreground);
}

.related-products-section { padding: 5rem 0 0; border-top: 1px solid var(--color-border); }
.related-products__heading { text-align: center; margin-bottom: 3rem; }
.related-heading-pre {
	display: block;
	font-family: var(--font-display);
	font-style: italic;
	font-size: 1rem;
	color: var(--color-muted-foreground);
	margin-bottom: 0.5rem;
}
.related-heading-main {
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 400;
	margin: 0;
}
@media (min-width: 768px) { .related-heading-main { font-size: 2.25rem; } }

.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }

/* ------------------------------------------------------------------ */
/* SHOP ARCHIVE HEADER */
/* ------------------------------------------------------------------ */
.shop-archive-header { text-align: center; padding: 2rem 0 2.5rem; }

/* ------------------------------------------------------------------ */
/* 404 / GENERIC PAGE */
/* ------------------------------------------------------------------ */
.theme-404-main { min-height: 70vh; display: flex; align-items: center; }
.theme-404-content { text-align: center; padding: 4rem 0; }
.theme-404-code { font-size: 4rem; margin-bottom: 1rem; }
.theme-404-message { font-size: 1.25rem; color: var(--color-muted-foreground); margin-bottom: 1.5rem; }
.page-title { font-size: 2rem; font-weight: 700; margin-bottom: 1.5rem; padding-top: 2rem; }

/* ------------------------------------------------------------------ */
/* WOOCOMMERCE CHECKOUT (Section 13) */
/* ------------------------------------------------------------------ */
body.woocommerce-checkout .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-account .site-main { padding-top: var(--header-height); padding-bottom: 4rem; }

body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background: transparent;
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	min-width: 0;
	width: 100%;
	max-width: none;
}
body.woocommerce-checkout .wc-block-checkout { display: block; }
@media (min-width: 768px) {
	body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large,
	body.woocommerce-checkout .wc-block-checkout.wc-block-components-sidebar-layout {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--checkout-gap);
		align-items: start;
	}
}
body.woocommerce-checkout .wc-block-components-notice-banner { grid-column: 1 / -1; }

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-textarea textarea,
body.woocommerce-checkout .woocommerce-checkout .form-row .input-text,
body.woocommerce-checkout .woocommerce-checkout .form-row select {
	width: 100% !important;
	max-width: none !important;
	font-family: var(--font-body);
	font-size: 0.9375rem;
	color: var(--color-foreground);
	background-color: var(--color-background);
	border: 1px solid var(--color-border);
	border-radius: 6px;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus { outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent); }
body.woocommerce-checkout .wc-block-components-text-input input::placeholder { color: var(--color-muted-foreground); }

body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
	border-radius: var(--btn-radius) !important;
	text-transform: none !important;
	font-family: var(--font-body) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover { opacity: 0.9; }

body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-cart-items {
	background-color: var(--color-card);
	border-radius: var(--card-radius);
	padding: 2rem;
}
body.woocommerce-checkout h2, body.woocommerce-checkout h3 { font-family: var(--font-display); }

body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
	color: var(--color-foreground);
	border-color: var(--color-foreground);
	box-shadow: 0 0 0 2px var(--color-card);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity span {
	color: var(--color-background);
}

/* ------------------------------------------------------------------ */
/* THANK YOU PAGE (Section 22.8) */
/* ------------------------------------------------------------------ */
body.theme-thankyou-page { overflow-x: hidden; }
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; background: var(--color-card); border-radius: var(--card-radius); }
body.theme-thankyou-page .woocommerce-order-overview li { font-size: 0.875rem; }
body.theme-thankyou-page .woocommerce-order-overview li strong { display: block; font-family: var(--font-display); font-size: 1rem; margin-top: 0.25rem; }
body.theme-thankyou-page h2, body.theme-thankyou-page .woocommerce-order-details__title { padding: 0 0 1rem 0; font-size: 1.5rem; }
body.theme-thankyou-page .woocommerce-order-details table { width: 100%; table-layout: fixed; border-collapse: collapse; }
body.theme-thankyou-page .woocommerce-order-details table th,
body.theme-thankyou-page .woocommerce-order-details table td { padding: 0.75rem; border-bottom: 1px solid var(--color-border); text-align: left; }
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-customer-details address { min-width: 0; max-width: 480px; overflow-wrap: break-word; border: 1px solid var(--color-border); border-radius: var(--card-radius); padding: 1.5rem; font-style: normal; }
@media (min-width: 768px) {
	body.theme-thankyou-page .woocommerce-customer-details {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		align-items: start;
	}
}

/* ------------------------------------------------------------------ */
/* MISC UTILITIES */
/* ------------------------------------------------------------------ */
.scroll-mt-24 { scroll-margin-top: 6rem; }
[hidden] { display: none !important; }
