/* =============================================================
   Divine Botanica Beauty — theme.css
   Author: The Free Website Guys
   ============================================================= */

/* ---- Google Fonts will be loaded via wp_enqueue_style ---- */

/* =====================================================
   CSS CUSTOM PROPERTIES (defaults — overridden by PHP inline)
   ===================================================== */
:root {
	/* Colors — computed from oklch via PHP at runtime */
	--color-background: #f9f1e5;
	--color-foreground: #26160e;
	--color-card:       #fdfaf6;
	--color-primary:    #2a4228;
	--color-primary-fg: #f9f1e5;
	--color-secondary:  #b44d34;
	--color-muted:      #ece3d5;
	--color-muted-fg:   #584a40;
	--color-accent:     #c48a50;
	--color-border:     #d8cfc0;

	/* Typography */
	--font-display: "Fraunces", ui-serif, Georgia, serif;
	--font-body:    "Inter", ui-sans-serif, system-ui, sans-serif;

	/* Logo */
	--logo-height: 48px;

	/* Layout */
	--container-max:   1280px;
	--container-pad:   1rem;
	--header-height:   4rem;
	--radius:          0.625rem;
	--radius-sm:       calc(var(--radius) - 4px);
	--radius-md:       calc(var(--radius) - 2px);
	--radius-lg:       var(--radius);
	--radius-xl:       calc(var(--radius) + 4px);
	--radius-2xl:      calc(var(--radius) + 8px);
	--radius-3xl:      calc(var(--radius) + 12px);
	--radius-full:     9999px;

	/* Shadows */
	--shadow-soft:  0 10px 40px -14px color-mix(in srgb, var(--color-foreground) 22%, transparent);
	--shadow-bloom: 0 30px 80px -30px color-mix(in srgb, var(--color-primary) 40%, transparent);

	/* Buttons */
	--btn-radius:        var(--radius-full);
	--btn-height:        2.875rem;
	--btn-padding:       0.75rem 1.5rem;
	--btn-font-size:     0.875rem;
	--btn-font-weight:   400;
	--btn-letter-spacing: 0;
	--btn-text-transform: none;
	--btn-icon-padding:  0.5rem;
	--color-button-text: var(--color-primary-fg);

	/* Sections */
	--section-pad-y: 5rem;
	--card-radius: var(--radius-2xl);
	--checkout-gap: 2rem;
}

@media (min-width: 640px) {
	:root {
		--container-pad: 1.5rem;
		--header-height: 5rem;
		--section-pad-y: 7rem;
	}
}
@media (min-width: 1024px) {
	:root {
		--container-pad: 2.5rem;
		--section-pad-y: 9rem;
	}
}

/* =====================================================
   RESET & BASE
   ===================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--color-background);
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.cart-open { overflow: hidden; }

/* Tailwind preflight parity — Fraunces at regular weight, not browser-bold headings */
h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit;
}

h1, h2, h3, h4, h5, h6, .font-display {
	font-family: var(--font-display);
	letter-spacing: -0.02em;
	font-optical-sizing: auto;
	font-weight: inherit;
}

a { color: inherit; text-decoration: none; }
button { cursor: pointer; font-family: inherit; }
img, video { max-width: 100%; display: block; }

/* Global img rule — cover images excluded (Section 15.1) */
img:not(.cover-img):not(.hero-bg-img):not(.product-card-img):not(.theme-product-card__img):not(.site-logo-img):not(.single-product-main-img):not(.single-product-thumb-img):not(.founder-section__img):not(.ingredients-section__img) {
	max-width: 100%;
	height: auto;
}

/* Cover image pattern */
.cover-img,
.hero-bg-img,
.product-card-img,
.theme-product-card__img,
.single-product-main-img,
.single-product-thumb-img,
.founder-section__img,
.ingredients-section__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* =====================================================
   ANIMATIONS (Section 2.1)
   ===================================================== */
@keyframes float {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50%       { transform: translateY(-14px) rotate(3deg); }
}
@keyframes rise {
	from { opacity: 0; transform: translateY(32px); filter: blur(6px); }
	to   { opacity: 1; transform: translateY(0);    filter: blur(0); }
}
@keyframes breathe {
	0%, 100% { opacity: 0.55; transform: scale(1); }
	50%       { opacity: 1;    transform: scale(1.05); }
}
@keyframes ken-burns {
	from { transform: scale(1)    translate(0, 0); }
	to   { transform: scale(1.12) translate(-1.5%, -1%); }
}
@keyframes marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@keyframes spin-slow {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}
@keyframes heroFadeIn {
	from { opacity: 0; transform: translateY(28px); filter: blur(8px); }
	to   { opacity: 1; transform: translateY(0);    filter: blur(0); }
}
@keyframes heroOverlay {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes scrollCue {
	0%, 100% { transform: translateY(0); }
	50%       { transform: translateY(8px); }
}
@keyframes heroScrollCueIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes faqOpen {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* Reveal animation (scroll-triggered) */
.reveal-item {
	opacity: 0;
	transform: translateY(32px);
	filter: blur(6px);
	will-change: transform, opacity, filter;
	transition: none;
}
.reveal-item.is-visible {
	animation: rise 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	filter: blur(0);
	opacity: 1;
	transform: translateY(0);
	will-change: auto;
}
/* Customizer fallback (Section 2.1 §5) */
.is-customizer .reveal-item,
body.is-customizer .reveal-item {
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
}
/* No-JS fallback */
@media (prefers-reduced-motion: reduce) {
	.reveal-item,
	.hero-anim-item {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		animation: none !important;
	}
}

/* Hero entrance animations (staggered) */
.hero-anim-item {
	opacity: 0;
	animation: heroFadeIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.hero-anim-item:nth-child(1) { animation-delay: 0.15s; }
.hero-anim-item:nth-child(2) { animation-delay: 0.27s; }
.hero-anim-item:nth-child(3) { animation-delay: 0.39s; }
.hero-anim-item:nth-child(4) { animation-delay: 0.51s; }
.hero-anim-item:nth-child(5) { animation-delay: 0.63s; }

/* =====================================================
   LAYOUT UTILITIES
   ===================================================== */
.theme-container {
	margin-inline: auto;
	max-width: var(--container-max);
	padding-inline: var(--container-pad);
}
.theme-container--narrow { max-width: 64rem; }
.theme-container--faq    { max-width: 48rem; }

.text-secondary { color: var(--color-secondary); }
.philosophy-emphasis {
	color: var(--color-foreground);
	font-style: italic;
}

.section-border-top  { border-top: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); }
.section-border      { border-top: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
                        border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); }

/* =====================================================
   TYPOGRAPHY
   ===================================================== */
.hero-section__title,
.ingredients-section__title,
.collection-section__title,
.philosophy-section__title,
.founder-section__title,
.faq-section__title,
.faq-item__question,
.contact-section__title,
.shop-section-title,
.product-title,
.related-products-title,
.cart-drawer__title,
.cart-drawer__empty-title,
.cart-drawer__subtotal-value,
.theme-product-card__name,
.theme-product-card__price,
.hero-section__stat-value,
.founder-section__badge-name,
.founder-section__signature,
.philosophy-card__title,
.site-footer__brand-name,
.site-footer__col-heading,
.site-header__brand-text,
.mobile-menu__link,
.mobile-menu__title {
	font-weight: inherit;
}

.section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-muted-fg);
}
.section-eyebrow--center {
	display: flex;
	justify-content: center;
}

/* =====================================================
   BUTTONS
   ===================================================== */
.btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--btn-radius);
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding: var(--btn-padding);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight);
	font-family: var(--font-body);
	text-transform: var(--btn-text-transform);
	letter-spacing: var(--btn-letter-spacing);
	border: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
	text-decoration: none;
}
.btn-primary:hover { opacity: 0.9; }

.btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--btn-radius);
	background-color: transparent;
	color: var(--color-foreground);
	padding: var(--btn-padding);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight);
	font-family: var(--font-body);
	border: 1px solid color-mix(in srgb, var(--color-foreground) 20%, transparent);
	cursor: pointer;
	transition: background-color 0.2s ease;
	text-decoration: none;
}
.btn-outline:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); }

/* =====================================================
   SITE HEADER
   ===================================================== */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	background-color: color-mix(in srgb, var(--color-background) 75%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
}

/* WordPress admin bar offset (logged-in preview) */
body.admin-bar .site-header {
	top: 32px;
}
body.admin-bar .mobile-menu {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .site-header {
		top: 46px;
	}
	body.admin-bar .mobile-menu {
		top: 46px;
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
	height: var(--header-height);
}
.site-header__brand {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
	flex-shrink: 0;
}
.site-logo-img  { height: var(--logo-height) !important; width: auto !important; display: block; border-radius: 50%; object-fit: cover; }
.site-logo-text { font-family: var(--font-display); font-size: 1rem; line-height: var(--logo-height); display: block; }

.site-header__brand-text {
	font-family: var(--font-display);
	font-size: 1rem;
	letter-spacing: -0.02em;
	line-height: 1.25;
}
@media (min-width: 640px) { .site-header__brand-text { font-size: 1.125rem; } }

.site-header__nav { display: none; }
@media (min-width: 1024px) {
	.site-header__nav { display: flex; align-items: center; gap: 2rem; }
}
.theme-nav-list { display: flex; align-items: center; gap: 2rem; list-style: none; }
.theme-nav-list a {
	font-size: 0.875rem;
	color: var(--color-muted-fg);
	transition: color 0.2s ease;
	text-decoration: none;
}
.theme-nav-list a:hover,
.theme-nav-list a.is-scroll-active,
.theme-nav-list .current-menu-item > a { color: var(--color-foreground); }

.site-header__actions { display: flex; align-items: center; gap: 0.5rem; }

.theme-cart-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	background: transparent;
	color: var(--color-foreground);
	transition: background-color 0.2s ease;
	cursor: pointer;
}
.theme-cart-btn:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); }

.theme-cart-count {
	position: absolute;
	top: -4px;
	right: -4px;
	background: var(--color-primary);
	color: var(--color-primary-fg);
	font-size: 0.625rem;
	font-weight: 500;
	min-width: 1.125rem;
	height: 1.125rem;
	padding: 0 0.25rem;
	border-radius: var(--radius-full);
	display: grid;
	place-items: center;
}
.theme-cart-count:empty { display: none; }

.site-header__cta {
	display: none;
}
@media (min-width: 1024px) {
	.site-header__cta {
		display: inline-flex;
		align-items: center;
		gap: 0.375rem;
		border-radius: var(--radius-full);
		background-color: var(--color-primary);
		color: var(--color-primary-fg);
		padding: 0.625rem 1.25rem;
		font-family: var(--font-body);
		font-size: 0.875rem;
		font-weight: inherit;
		text-decoration: none;
		transition: opacity 0.2s ease;
	}
	.site-header__cta:hover { opacity: 0.9; }
}

.site-header__menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	background: transparent;
	color: var(--color-foreground);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.3s ease;
}
.site-header__menu-toggle.is-active {
	background-color: color-mix(in srgb, var(--color-primary) 12%, transparent);
	border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
}
.site-header__menu-toggle svg {
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
}
.site-header__menu-toggle.is-active svg {
	transform: rotate(90deg);
}
@media (min-width: 1024px) { .site-header__menu-toggle { display: none; } }

/* =====================================================
   MOBILE MENU
   ===================================================== */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 60;
	background-color: var(--color-background);
	transform: translateX(100%);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease, visibility 0.35s ease;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.mobile-menu.is-open {
	transform: translateX(0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
@media (min-width: 1024px) { .mobile-menu { display: none; } }

.mobile-menu__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-inline: var(--container-pad);
	height: var(--header-height);
	border-bottom: 1px solid var(--color-border);
	opacity: 0;
	transform: translateY(-0.75rem);
	transition: opacity 0.35s ease 0.05s, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}
.mobile-menu.is-open .mobile-menu__header {
	opacity: 1;
	transform: translateY(0);
}
.mobile-menu__title {
	font-size: 1.125rem;
}
.mobile-menu__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	background: transparent;
	color: var(--color-foreground);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.mobile-menu__close:hover {
	background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent);
	transform: rotate(90deg);
}
.mobile-menu__nav {
	padding: 2rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.mobile-menu__list { list-style: none; }
.mobile-menu__list li {
	border-bottom: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
	opacity: 0;
	transform: translateX(1.75rem);
	transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), color 0.2s ease;
}
.mobile-menu.is-open .mobile-menu__list li {
	opacity: 1;
	transform: translateX(0);
}
.mobile-menu.is-open .mobile-menu__list li:nth-child(1) { transition-delay: 0.08s; }
.mobile-menu.is-open .mobile-menu__list li:nth-child(2) { transition-delay: 0.13s; }
.mobile-menu.is-open .mobile-menu__list li:nth-child(3) { transition-delay: 0.18s; }
.mobile-menu.is-open .mobile-menu__list li:nth-child(4) { transition-delay: 0.23s; }
.mobile-menu.is-open .mobile-menu__list li:nth-child(5) { transition-delay: 0.28s; }
.mobile-menu.is-open .mobile-menu__list li:nth-child(6) { transition-delay: 0.33s; }
.mobile-menu__link,
.mobile-menu__list a {
	display: block;
	font-family: var(--font-display);
	font-size: 1.875rem;
	padding-block: 0.75rem;
	text-decoration: none;
	color: var(--color-foreground);
	transition: color 0.2s ease;
	letter-spacing: -0.02em;
}
.mobile-menu__link:hover,
.mobile-menu__list a:hover { color: var(--color-primary); }

.mobile-menu__cta {
	margin-top: 2rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius-full);
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding: 1rem 1.5rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: inherit;
	text-decoration: none;
	opacity: 0;
	transform: translateY(1.25rem) scale(0.96);
	transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.38s, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.38s, opacity 0.2s ease;
}
.mobile-menu.is-open .mobile-menu__cta {
	opacity: 1;
	transform: translateY(0) scale(1);
}
.mobile-menu:not(.is-open) .mobile-menu__list li,
.mobile-menu:not(.is-open) .mobile-menu__header,
.mobile-menu:not(.is-open) .mobile-menu__cta {
	transition-delay: 0s;
}

.mobile-menu-overlay {
	display: none;
}

/* =====================================================
   HERO SECTION
   ===================================================== */
.hero-section {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding-top: var(--header-height);
}
.hero-section__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform-origin: center center;
}
.hero-section__overlay {
	position: absolute;
	inset: 0;
	background-color: color-mix(in srgb, var(--color-background) 70%, transparent);
	animation: heroOverlay 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.hero-section__content {
	position: relative;
	width: 100%;
	max-width: 56rem;
	margin-inline: auto;
	padding-inline: var(--container-pad);
	padding-block: 3rem;
	text-align: center;
	flex-shrink: 0;
}
@media (min-width: 640px) { .hero-section__content { padding-block: 4rem; } }
@media (min-width: 1024px) { .hero-section__content { padding-block: 0; } }

/* Block layout like Lovable inner motion.div — margins collapse naturally */
.hero-anim-container {
	width: 100%;
}

.hero-section__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	color: var(--color-muted-fg);
	margin-bottom: 1.25rem;
}
.hero-section__title {
	margin: 0;
	font-size: 2.25rem;
	font-weight: inherit;
	line-height: 1.02;
	text-wrap: balance;
}
@media (min-width: 640px) { .hero-section__title { font-size: 3rem; } }
@media (min-width: 1024px) { .hero-section__title { font-size: 3.75rem; } }
@media (min-width: 1280px) { .hero-section__title { font-size: 4.5rem; } }

.hero-section__subtitle {
	margin: 1.25rem auto 0;
	font-size: 1rem;
	color: var(--color-muted-fg);
	max-width: 36rem;
	line-height: 1.625;
}
@media (min-width: 640px) { .hero-section__subtitle { font-size: 1.125rem; } }

.hero-section__ctas {
	margin: 2rem auto 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	justify-content: center;
	align-items: center;
	width: 100%;
}
@media (min-width: 640px) {
	.hero-section__ctas {
		flex-direction: row;
		align-items: stretch;
	}
}

.btn-hero-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius-full);
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding: 0.875rem 1.5rem;
	font-size: 0.875rem;
	font-weight: inherit;
	width: 100%;
	transition: transform 0.2s ease, opacity 0.2s ease;
	text-decoration: none;
	text-transform: none;
}
@media (min-width: 640px) {
	.btn-hero-primary {
		flex: 1 1 0;
		max-width: 17.5rem;
		width: auto;
	}
}
.btn-hero-primary:hover { opacity: 0.9; transform: translateY(-2px) scale(1.04); }

.btn-hero-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius-full);
	border: 1px solid color-mix(in srgb, var(--color-foreground) 20%, transparent);
	color: var(--color-foreground);
	padding: 0.875rem 1.5rem;
	font-size: 0.875rem;
	font-weight: inherit;
	width: 100%;
	background: transparent;
	transition: background-color 0.2s ease, transform 0.2s ease;
	text-decoration: none;
	text-transform: none;
}
@media (min-width: 640px) {
	.btn-hero-outline {
		flex: 1 1 0;
		max-width: 17.5rem;
		width: auto;
	}
}
.btn-hero-outline:hover {
	background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent);
	transform: translateY(-2px) scale(1.04);
}

.hero-section__stats {
	margin: 2.5rem auto 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	width: 100%;
	max-width: 28rem;
}
@media (min-width: 640px) { .hero-section__stats { gap: 2rem; } }

.hero-section__stat {
	margin: 0;
	padding: 0;
}

.hero-section__stat-value {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.2;
	display: block;
}
@media (min-width: 640px) { .hero-section__stat-value { font-size: 1.875rem; } }

.hero-section__stat-label {
	margin: 0.25rem 0 0;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--color-muted-fg);
	display: block;
}
@media (min-width: 640px) { .hero-section__stat-label { font-size: 0.75rem; } }

.hero-section__scroll-cue {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 1.5rem;
	display: none;
	opacity: 0;
	animation: heroScrollCueIn 0.8s ease forwards 1.4s;
}
@media (min-width: 640px) { .hero-section__scroll-cue { display: block; } }
.hero-section__scroll-line {
	width: 1px;
	height: 2.5rem;
	background-color: color-mix(in srgb, var(--color-foreground) 40%, transparent);
	animation: scrollCue 2.2s ease-in-out infinite 2.2s;
}

/* =====================================================
   INNER PAGE MAIN OFFSET
   ===================================================== */
.theme-no-hero .site-main,
.theme-inner-main {
	padding-top: var(--header-height);
	padding-bottom: 4rem;
}
/* Homepage has NO top padding (hero fills viewport under transparent header) */
.front-page .site-main,
body:not(.theme-no-hero) .site-main { padding-top: 0; }

/* =====================================================
   INGREDIENTS SECTION
   ===================================================== */
.ingredients-section {
	padding-block: var(--section-pad-y);
}
.ingredients-section__grid {
	display: grid;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.ingredients-section__grid {
		grid-template-columns: 1fr 1fr;
		gap: 5rem;
		align-items: center;
	}
	/* text first on desktop */
	.ingredients-section__text  { order: 1; }
	.ingredients-section__image-wrap { order: 2; }
}

.ingredients-section__text {
	order: 2;
}
.ingredients-section__image-wrap {
	order: 1;
	position: relative;
}
@media (min-width: 1024px) {
	.ingredients-section__text  { order: 1; }
	.ingredients-section__image-wrap { order: 2; }
}

.ingredients-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.25;
}
@media (min-width: 640px) { .ingredients-section__title { font-size: 3rem; } }

.ingredients-section__subtitle {
	margin-top: 0.5rem;
	font-style: italic;
	font-size: 1.25rem;
	color: var(--color-accent);
}
@media (min-width: 640px) { .ingredients-section__subtitle { font-size: 1.5rem; } }

.ingredients-section__body {
	margin-top: 1.5rem;
	color: var(--color-muted-fg);
	line-height: 1.625;
}
.ingredients-section__body + .ingredients-section__body {
	margin-top: 1rem;
}

.ingredients-section__bullets {
	margin-top: 2rem;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.ingredients-section__bullet {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: 0.875rem;
}
.bullet-check { color: var(--color-primary); flex-shrink: 0; margin-top: 0.125rem; }

.ingredients-section__image-inner {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: var(--radius-3xl);
	overflow: hidden;
	box-shadow: var(--shadow-bloom);
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.ingredients-section__image-inner:hover { transform: scale(1.02); }

.ingredients-section__floating-card {
	position: absolute;
	bottom: -1.5rem;
	left: -1.5rem;
	z-index: 2;
	background: var(--color-card);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-2xl);
	padding: 1rem 1.25rem;
	box-shadow: var(--shadow-soft);
	max-width: 13.75rem;
	display: none;
}
@media (min-width: 640px) { .ingredients-section__floating-card { display: block; } }
.ingredients-section__floating-card svg {
	display: block;
	color: var(--color-secondary);
	flex-shrink: 0;
}

.ingredients-section__card-text {
	margin-top: 0.5rem;
	font-size: 0.75rem;
	line-height: 1.625;
	color: var(--color-muted-fg);
}

/* =====================================================
   COLLECTION / PRODUCT GRID
   ===================================================== */
.collection-section {
	padding-block: var(--section-pad-y);
	background-color: color-mix(in srgb, var(--color-muted) 40%, transparent);
}
.collection-section__header {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-bottom: 3rem;
}
@media (min-width: 640px) {
	.collection-section__header {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		margin-bottom: 4rem;
	}
}

.collection-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.25;
	max-width: 36rem;
}
@media (min-width: 640px) { .collection-section__title { font-size: 3rem; } }

.collection-section__subtitle {
	font-size: 0.875rem;
	color: var(--color-muted-fg);
	max-width: 24rem;
}

/* Product Grid */
.theme-product-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: stretch;
}
@media (min-width: 640px) { .theme-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }

.collection-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
}
@media (min-width: 640px) { .collection-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Product Card */
.theme-product-card-wrap {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.theme-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background-color: var(--color-card);
	border-radius: var(--radius-2xl);
	overflow: hidden;
	border: 1px solid var(--color-border);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.theme-product-card:hover {
	box-shadow: var(--shadow-soft);
	transform: translateY(-6px);
}

.theme-product-card__image-link {
	display: block;
	flex-shrink: 0;
	text-decoration: none;
	color: inherit;
}

.theme-product-card__summary-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.theme-product-card__image-wrapper {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background-color: var(--color-muted);
}

.theme-product-card__img {
	transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.theme-product-card:hover .theme-product-card__img { transform: scale(1.08); }
.theme-product-card--coming-soon .theme-product-card__img { filter: grayscale(1); }

.theme-product-card__badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background: color-mix(in srgb, var(--color-background) 95%, transparent);
	backdrop-filter: blur(4px);
	color: var(--color-foreground);
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	padding: 0.375rem 0.75rem;
	border-radius: var(--radius-full);
	z-index: 2;
}

.theme-product-card__info {
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
}
.theme-product-card__name-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	min-width: 0;
}
.theme-product-card__name {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.25;
	min-width: 0;
	flex: 1 1 auto;
	transition: color 0.2s ease;
}
.theme-product-card:hover .theme-product-card__name,
.theme-product-card__summary-link:hover .theme-product-card__name { color: var(--color-primary); }
.theme-product-card__price {
	font-size: 1.125rem;
	line-height: 1.25;
	flex-shrink: 0;
	text-align: right;
	white-space: nowrap;
}
.theme-product-card__price .woocommerce-Price-amount,
.theme-product-card__price .amount,
.theme-product-card__price bdi {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}
.theme-product-card__price del {
	display: block;
	font-size: 0.75rem;
	opacity: 0.65;
}
.theme-product-card__price ins {
	text-decoration: none;
}
.theme-product-card__tagline {
	margin: 0.25rem 0 0;
	font-size: 0.75rem;
	color: var(--color-accent);
	font-style: italic;
	line-height: 1.4;
}
.theme-product-card__actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
}
.theme-product-card__coverage {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-muted-fg);
	line-height: 1.3;
}
.theme-product-card__action-buttons {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
	margin-left: auto;
}
.theme-product-card__details-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.6875rem;
	color: var(--color-muted-fg);
	text-decoration: none;
	transition: color 0.2s ease;
}
.theme-product-card__details-link:hover { color: var(--color-foreground); }

.theme-product-card__add-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	min-width: 2.25rem;
	max-width: 2.25rem;
	min-height: 2.25rem;
	max-height: 2.25rem;
	border-radius: 50%;
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	border: none;
	cursor: pointer;
	text-decoration: none;
	font-family: var(--font-body);
	font-size: 0;
	line-height: 0;
	padding: 0;
	overflow: hidden;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.theme-product-card__add-btn svg {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	display: block;
}
.theme-product-card__add-btn:hover {
	opacity: 0.9;
	transform: scale(1.1) rotate(90deg);
}
.theme-product-card__add-btn:disabled,
.theme-product-card__add-btn.disabled {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}
.theme-product-card__add-btn:disabled:hover,
.theme-product-card__add-btn.disabled:hover {
	opacity: 0.4;
	transform: none;
}
.theme-product-card__add-btn.theme-btn-loading {
	opacity: 0.6;
	pointer-events: none;
	cursor: wait;
}

.theme-product-card__sold-out-label {
	font-size: 0.6875rem;
	color: var(--color-muted-fg);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.theme-no-products {
	grid-column: 1 / -1;
	text-align: center;
	color: var(--color-muted-fg);
	padding: 3rem;
}

/* =====================================================
   PHILOSOPHY SECTION
   ===================================================== */
.philosophy-section {
	padding-block: var(--section-pad-y);
}
.philosophy-section__header {
	text-align: center;
	margin-bottom: 2rem;
}
.philosophy-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.05;
	text-wrap: balance;
}
@media (min-width: 640px) { .philosophy-section__title { font-size: 3rem; } }
@media (min-width: 1024px) { .philosophy-section__title { font-size: 3.75rem; } }

.philosophy-section__body {
	margin-top: 2rem;
	text-align: center;
	font-size: 1rem;
	line-height: 1.625;
	color: var(--color-muted-fg);
}
@media (min-width: 640px) { .philosophy-section__body { font-size: 1.125rem; } }
.philosophy-section__body + .philosophy-section__body {
	margin-top: 1.25rem;
}

.philosophy-section__cards {
	margin-top: 3.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 640px) { .philosophy-section__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.philosophy-card {
	border-radius: var(--radius-2xl);
	border: 1px solid var(--color-border);
	padding: 1.5rem;
	background-color: var(--color-card);
	transition: transform 0.3s ease;
}
.philosophy-card:hover { transform: translateY(-4px); }
.philosophy-card__icon { color: var(--color-primary); }
.philosophy-card__title {
	margin-top: 1rem;
	font-size: 1.125rem;
}
.philosophy-card__body {
	margin-top: 0.5rem;
	font-size: 0.875rem;
	color: var(--color-muted-fg);
}

/* =====================================================
   FOUNDER SECTION
   ===================================================== */
.founder-section {
	padding-block: var(--section-pad-y);
	background-color: color-mix(in srgb, var(--color-muted) 40%, transparent);
}
.founder-section__grid {
	display: grid;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.founder-section__grid {
		grid-template-columns: 1fr 1fr;
		gap: 5rem;
		align-items: center;
	}
}

.founder-section__image-wrap {
	position: relative;
}

.founder-section__image-inner {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--radius-3xl);
	overflow: hidden;
	box-shadow: var(--shadow-bloom);
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.founder-section__image-inner:hover { transform: scale(1.02); }

.founder-section__badge {
	position: absolute;
	bottom: -1.5rem;
	right: -1.5rem;
	z-index: 2;
	background: var(--color-background);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	padding: 1rem 1.5rem;
	box-shadow: var(--shadow-soft);
	display: none;
	align-items: center;
	gap: 0.75rem;
}
@media (min-width: 640px) { .founder-section__badge { display: flex; } }

.founder-section__badge-name { font-family: var(--font-display); font-style: italic; font-size: 1.125rem; }
.founder-section__badge-title { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-muted-fg); }

.founder-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.25;
}
@media (min-width: 640px) { .founder-section__title { font-size: 3rem; } }

.founder-section__quotes {
	margin-top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.founder-section__quote {
	color: var(--color-muted-fg);
	line-height: 1.625;
	font-size: 0.875rem;
}
@media (min-width: 640px) { .founder-section__quote { font-size: 1rem; } }

.founder-section__signature {
	margin-top: 1.5rem;
	font-style: italic;
	font-size: 1.125rem;
}

/* =====================================================
   FAQ SECTION
   ===================================================== */
.faq-section {
	padding-block: var(--section-pad-y);
}
.faq-section__header {
	text-align: center;
	margin-bottom: 3rem;
}
@media (min-width: 640px) { .faq-section__header { margin-bottom: 4rem; } }

.faq-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.25;
}
@media (min-width: 640px) { .faq-section__title { font-size: 3rem; } }

.faq-list {
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.faq-item {
	border-bottom: 1px solid var(--color-border);
}
.faq-item:last-child { border-bottom: none; }

.faq-item__trigger {
	width: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1.25rem;
	background: transparent;
	border: none;
	text-align: left;
	cursor: pointer;
	color: var(--color-foreground);
}
@media (min-width: 640px) { .faq-item__trigger { padding-block: 1.5rem; } }

.faq-item__question {
	font-size: 1.125rem;
	line-height: 1.375;
}
@media (min-width: 640px) { .faq-item__question { font-size: 1.25rem; } }

.faq-item__icon {
	flex-shrink: 0;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	display: grid;
	place-items: center;
	font-size: 1.125rem;
	line-height: 1;
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.2s ease;
	margin-top: 0.375rem;
}
.faq-item--open .faq-item__icon {
	transform: rotate(45deg);
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	border-color: var(--color-primary);
}

.faq-item__answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s ease;
	opacity: 0;
}
.faq-item--open .faq-item__answer {
	max-height: 60rem;
	opacity: 1;
}
.faq-item__answer-text {
	padding-bottom: 1.5rem;
	font-size: 0.875rem;
	line-height: 1.625;
	color: var(--color-muted-fg);
	padding-right: 3rem;
}
@media (min-width: 640px) { .faq-item__answer-text { font-size: 1rem; } }

/* =====================================================
   CONTACT SECTION
   ===================================================== */
.contact-section {
	padding-block: var(--section-pad-y);
	background-color: color-mix(in srgb, var(--color-muted) 40%, transparent);
}
.contact-section__header {
	text-align: center;
	margin-bottom: 3rem;
}
@media (min-width: 640px) { .contact-section__header { margin-bottom: 4rem; } }

.contact-section__title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.25;
}
@media (min-width: 640px) { .contact-section__title { font-size: 3rem; } }

.contact-section__subtitle {
	margin-top: 1rem;
	color: var(--color-muted-fg);
	max-width: 36rem;
	margin-inline: auto;
}

.contact-section__grid {
	display: grid;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.contact-section__grid {
		grid-template-columns: 3fr 2fr;
		gap: 4rem;
	}
}

/* Form */
.contact-form-wrap {
	background: var(--color-card);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-3xl);
	padding: 1.5rem;
}
@media (min-width: 640px) { .contact-form-wrap { padding: 2.5rem; } }

.contact-success { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 3rem 0; }
.contact-success__icon {
	width: 4rem; height: 4rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-primary) 10%, transparent);
	display: grid; place-items: center;
	margin-bottom: 1.5rem;
	color: var(--color-primary);
}
.contact-success h3 {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: inherit;
	letter-spacing: -0.02em;
}
.contact-success p { margin-top: 0.5rem; color: var(--color-muted-fg); max-width: 22rem; }
.contact-success .btn-outline { margin-top: 1.5rem; }

.contact-form { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-form__row { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .contact-form__row { grid-template-columns: 1fr 1fr; } }

.contact-form__field { display: flex; flex-direction: column; gap: 0.5rem; }
.contact-form__label { font-size: 0.875rem; font-weight: 500; }
.contact-form__input {
	width: 100%;
	border-radius: var(--radius-xl);
	border: 1px solid var(--color-border);
	background: var(--color-background);
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	font-family: var(--font-body);
	color: var(--color-foreground);
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.contact-form__input:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 30%, transparent);
}
.contact-form__input::placeholder { color: var(--color-muted-fg); }
.contact-form__select { appearance: none; cursor: pointer; }
.contact-form__textarea { resize: none; }
.contact-form__submit.btn-primary {
	align-self: flex-start;
	padding: 0.875rem 2rem;
	font-weight: 500;
}

/* Info */
.contact-section__info { display: flex; flex-direction: column; gap: 1.5rem; }
.contact-section__map {
	border-radius: var(--radius-3xl);
	overflow: hidden;
	border: 1px solid var(--color-border);
	aspect-ratio: 4 / 3;
}
@media (min-width: 1024px) { .contact-section__map { height: 17.5rem; aspect-ratio: unset; } }
.contact-section__map-frame { width: 100%; height: 100%; border: none; display: block; }

.contact-section__details { list-style: none; display: flex; flex-direction: column; gap: 1rem; }
.contact-section__detail { display: flex; align-items: flex-start; gap: 1rem; }
.contact-section__detail-icon {
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	background: color-mix(in srgb, var(--color-primary) 10%, transparent);
	display: grid; place-items: center;
	flex-shrink: 0;
	color: var(--color-primary);
}
.contact-section__detail-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-muted-fg); }
.contact-section__detail-value { font-size: 0.875rem; margin-top: 0.125rem; overflow-wrap: break-word; }
.contact-section__email,
.contact-section__phone { text-decoration: none; transition: color 0.2s ease; }
.contact-section__email:hover,
.contact-section__phone:hover { color: var(--color-primary); }

/* =====================================================
   FOOTER
   ===================================================== */
.site-footer {
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding-block: 3rem;
}
@media (min-width: 640px) { .site-footer { padding-block: 4rem; } }

.site-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: repeat(4, 1fr); } }

.site-footer__logo-row { display: flex; align-items: center; gap: 0.75rem; }
.site-footer__logo-row .site-logo-img { border-radius: 50%; }
.site-footer__brand-name { font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -0.02em; }

.site-footer__tagline {
	margin-top: 1rem;
	font-size: 0.875rem;
	opacity: 0.7;
	max-width: 20rem;
	line-height: 1.6;
}

.site-footer__social { display: flex; align-items: center; gap: 0.75rem; margin-top: 1.25rem; }
.site-footer__social-link {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--color-primary-fg) 20%, transparent);
	color: inherit;
	transition: background-color 0.2s ease;
}
.site-footer__social-link:hover { background-color: color-mix(in srgb, var(--color-primary-fg) 10%, transparent); }

.site-footer__logo-row .site-logo-img {
	height: 53px !important;
	width: 53px !important;
}
.site-footer__col-heading {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 1rem;
}
.site-footer__links { list-style: none; display: flex; flex-direction: column; gap: 0.625rem; }
.site-footer__link { font-size: 0.875rem; opacity: 0.7; transition: opacity 0.2s ease; text-decoration: none; color: inherit; }
.site-footer__links a { font-size: 0.875rem; opacity: 0.7; transition: opacity 0.2s ease; text-decoration: none; color: inherit; }
.site-footer__link:hover,
.site-footer__links a:hover { opacity: 1; }

.site-footer__contact-list { list-style: none; display: flex; flex-direction: column; gap: 0.625rem; }
.site-footer__contact-item { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.875rem; opacity: 0.7; }
.site-footer__contact-item svg { opacity: 0.5; }

.site-footer__bottom {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--color-primary-fg) 10%, transparent);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	font-size: 0.75rem;
	opacity: 0.6;
}
@media (min-width: 640px) {
	.site-footer__bottom {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

/* =====================================================
   CART DRAWER (Side Cart)
   ===================================================== */
#theme-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 80;
	width: min(28rem, 100vw);
	background: var(--color-background);
	border-left: 1px solid var(--color-border);
	transform: translateX(100%);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
body.cart-open #theme-cart-drawer { transform: translateX(0); }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }

#theme-cart-overlay {
	position: fixed;
	inset: 0;
	z-index: 70;
	background: rgba(0, 0, 0, 0.4);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
body.cart-open #theme-cart-overlay {
	opacity: 1;
	pointer-events: auto;
}

.cart-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--color-border);
	flex-shrink: 0;
}
.cart-drawer__title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	letter-spacing: -0.02em;
}
.cart-drawer__close {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 1px solid var(--color-border);
	background: transparent;
	color: var(--color-foreground);
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.cart-drawer__close:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); }

.cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem;
}

/* Empty state */
.cart-drawer__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	text-align: center;
	gap: 1rem;
	padding: 3rem 1rem;
}
.cart-drawer__empty-title { font-family: var(--font-display); font-size: 1.5rem; }
.cart-drawer__empty-body  { color: var(--color-muted-fg); font-size: 0.875rem; }
.cart-drawer__continue-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-full);
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding: 0.75rem 1.5rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: inherit;
	border: none;
	cursor: pointer;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.cart-drawer__continue-btn:hover { opacity: 0.9; }
.cart-drawer__dismiss-btn {
	background: none;
	border: none;
	color: var(--color-muted-fg);
	font-size: 0.875rem;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
	padding: 0.25rem;
	transition: color 0.2s ease;
}
.cart-drawer__dismiss-btn:hover { color: var(--color-foreground); }

/* Cart items */
.cart-drawer__items { display: flex; flex-direction: column; gap: 0; }
.cart-drawer__item {
	display: flex;
	gap: 1rem;
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--color-border);
}
.cart-drawer__item:last-child { border-bottom: none; }

.cart-drawer__thumb {
	width: 5rem;
	height: 6.25rem;
	border-radius: var(--radius-xl);
	overflow: hidden;
	flex-shrink: 0;
	background: var(--color-muted);
	display: block;
}
.cart-drawer__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.cart-drawer__item-info { flex: 1; min-width: 0; }
.cart-drawer__item-name { font-family: var(--font-display); font-size: 1rem; font-weight: inherit; line-height: 1.2; display: block; text-decoration: none; color: var(--color-foreground); }
.cart-drawer__item-name:hover { color: var(--color-primary); }
.cart-drawer__item-variation { font-size: 0.75rem; color: var(--color-muted-fg); margin-top: 0.25rem; }
.cart-drawer__item-price { font-size: 0.875rem; color: var(--color-muted-fg); margin-top: 0.5rem; }

.cart-drawer__item-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 0.75rem; }

.cart-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
}
.cart-qty__btn {
	width: 2rem; height: 2rem;
	display: grid; place-items: center;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--color-foreground);
	font-size: 1rem;
	line-height: 1;
	transition: background-color 0.2s ease;
}
.cart-qty__btn:first-child { border-radius: var(--radius-full) 0 0 var(--radius-full); }
.cart-qty__btn:last-child  { border-radius: 0 var(--radius-full) var(--radius-full) 0; }
.cart-qty__btn:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); }
.cart-qty__value { width: 2rem; text-align: center; font-size: 0.875rem; }

.cart-drawer__remove-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.75rem;
	color: var(--color-muted-fg);
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
	transition: color 0.2s ease;
}
.cart-drawer__remove-btn:hover { color: var(--color-foreground); }

/* Cart footer */
.cart-drawer__footer {
	padding: 1.25rem 1.5rem;
	border-top: 1px solid var(--color-border);
	flex-shrink: 0;
}
.cart-drawer__subtotal-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 0.875rem;
	margin-bottom: 1rem;
}
.cart-drawer__subtotal-label { color: var(--color-muted-fg); }
.cart-drawer__subtotal-value { font-family: var(--font-display); font-size: 1.125rem; }
.cart-drawer__checkout-btn {
	display: block;
	width: 100%;
	text-align: center;
	background-color: var(--color-primary);
	color: var(--color-primary-fg);
	padding: 0.875rem;
	border-radius: var(--radius-full);
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
	border: none;
	cursor: pointer;
}
.cart-drawer__checkout-btn:hover { opacity: 0.9; }
.cart-drawer__free-shipping {
	margin-top: 0.75rem;
	font-size: 0.75rem;
	color: var(--color-muted-fg);
	text-align: center;
}

/* =====================================================
   WOOCOMMERCE — SINGLE PRODUCT
   ===================================================== */
.single-product .site-main { background-color: var(--color-background); }
.single-product .theme-inner-main { padding-top: calc( var(--header-height) + 1rem ); }

.single-product-header {
	display: flex;
	align-items: center;
	padding-block: 1rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--color-border);
}
.back-to-shop {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--color-muted-fg);
	text-decoration: none;
	transition: color 0.2s ease;
}
.back-to-shop:hover { color: var(--color-foreground); }

/* Product layout */
.theme-product-layout {
	display: grid;
	gap: 2.5rem;
}
@media (min-width: 1024px) {
	.theme-product-layout {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
		align-items: start;
	}
}

/* Gallery */
.theme-product-gallery { min-width: 0; max-width: 100%; }
.single-product .theme-product-gallery,
.single-product .theme-product-info { min-width: 0; max-width: 100%; }

.product-main-image {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--radius-3xl);
	overflow: hidden;
	background: var(--color-muted);
}
.product-main-image img.single-product-main-img {
	transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.product-main-image:hover img.single-product-main-img { transform: scale(1.05); }

.theme-product-thumbnails {
	display: flex;
	gap: 0.75rem;
	margin-top: 1rem;
	flex-wrap: wrap;
	max-width: 100%;
}
.theme-product-thumb {
	width: 4.5rem;
	height: 5.625rem;
	border-radius: var(--radius-lg);
	overflow: hidden;
	border: 2px solid transparent;
	cursor: pointer;
	background: transparent;
	padding: 0;
	flex-shrink: 0;
	transition: border-color 0.2s ease;
}
.theme-product-thumb.is-active,
.theme-product-thumb:hover { border-color: var(--color-primary); }
.theme-product-thumb img.single-product-thumb-img {
	width: 4.5rem;
	height: 5.625rem;
}

/* Product info */
.theme-product-info { min-width: 0; }

.product-badge {
	display: inline-block;
	background: var(--color-muted);
	color: var(--color-foreground);
	font-size: 0.625rem;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	padding: 0.375rem 0.75rem;
	border-radius: var(--radius-full);
	margin-bottom: 1rem;
}

.product-categories {
	font-size: 0.75rem;
	color: var(--color-muted-fg);
	text-transform: uppercase;
	letter-spacing: 0.15em;
	margin-bottom: 0.75rem;
}
.product-categories a { color: inherit; text-decoration: none; }
.product-categories a:hover { color: var(--color-primary); }

.product-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: inherit;
	line-height: 1.25;
	letter-spacing: -0.02em;
	font-style: normal;
}
@media (min-width: 640px) { .product-title { font-size: 3rem; } }

.product-tagline {
	margin-top: 0.5rem;
	font-size: 1rem;
	font-style: italic;
	color: var(--color-accent);
}

.product-price {
	margin-top: 1.5rem;
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: inherit;
	letter-spacing: -0.02em;
}

.product-stock {
	margin-top: 0.75rem;
	font-size: 0.875rem;
}
.product-stock--in  { color: var(--color-primary); }
.product-stock--out { color: var(--color-secondary); }

.product-description {
	margin-top: 1.5rem;
	font-size: 1rem;
	color: var(--color-muted-fg);
	line-height: 1.625;
}

.product-details-list {
	margin-top: 1.5rem;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.product-details-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: 0.875rem;
}
.product-details-item .check { color: var(--color-primary); flex-shrink: 0; margin-top: 0.125rem; }

/* Quantity + Cart */
.theme-add-to-cart-area {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.theme-quantity-wrapper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
}
.theme-qty-minus,
.theme-qty-plus {
	width: 2.5rem;
	height: 2.5rem;
	display: grid;
	place-items: center;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--color-foreground);
	font-size: 1.125rem;
	line-height: 1;
	transition: background-color 0.2s ease;
}
.theme-qty-minus { border-radius: var(--radius-full) 0 0 var(--radius-full); }
.theme-qty-plus  { border-radius: 0 var(--radius-full) var(--radius-full) 0; }
.theme-qty-minus:hover,
.theme-qty-plus:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); }
.theme-qty-input {
	width: 2.5rem;
	text-align: center;
	font-size: 0.875rem;
	font-family: var(--font-body);
	border: none;
	background: transparent;
	color: var(--color-foreground);
	-moz-appearance: textfield;
}
.theme-qty-input::-webkit-outer-spin-button,
.theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
input.qty.theme-qty-input { min-height: unset; }

/* Attribute selectors */
.theme-attr-select-hidden { display: none !important; }

.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-buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.theme-attr-btn {
	padding: 0.5rem 1rem;
	border-radius: var(--radius-full);
	border: 1px solid var(--color-border);
	background: transparent;
	font-size: 0.875rem;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
	color: var(--color-foreground);
}
.theme-attr-btn.is-selected {
	border-color: var(--color-primary);
	background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

/* Single product: WooCommerce button override (Section 11.4.1) */
.single_add_to_cart_button.button,
.add_to_cart_button.button,
a.single_add_to_cart_button:not(.theme-product-card__add-btn),
a.add_to_cart_button:not(.theme-product-card__add-btn) {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-fg) !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: var(--btn-text-transform) !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease !important;
	flex: 1 1 auto;
	min-width: 10rem;
	text-decoration: none;
}
.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-fg) !important;
}

/* Card compact add button — isolated from WC pill styles */
.theme-product-card .theme-product-card__add-btn,
.theme-product-card .add_to_cart_button.ajax_add_to_cart.theme-product-card__add-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 2.25rem !important;
	height: 2.25rem !important;
	min-width: 2.25rem !important;
	max-width: 2.25rem !important;
	min-height: 2.25rem !important;
	max-height: 2.25rem !important;
	padding: 0 !important;
	border-radius: 50% !important;
	border: none !important;
	font-size: 0 !important;
	line-height: 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	background-color: var(--color-primary) !important;
	color: var(--color-primary-fg) !important;
}
.theme-product-card .theme-product-card__add-btn:hover {
	opacity: 0.9 !important;
	transform: scale(1.1) rotate(90deg);
	background-color: var(--color-primary) !important;
}

/* Disabled state (Section 11.4.1) */
.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;
}

/* Button loading state (Section 31.8) */
.ajax_add_to_cart.theme-btn-loading {
	opacity: 0.6 !important;
	pointer-events: none !important;
	cursor: wait !important;
}

/* Hide "View cart" after AJAX add (Section 11.4.2) */
.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; }

/* Product sections: Description & Ingredients */
.product-ingredients-section { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.product-ingredients-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-muted-fg); }
.product-ingredients-text { margin-top: 0.75rem; font-size: 0.875rem; line-height: 1.625; }

.product-details-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.product-details-title {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: inherit;
	margin-bottom: 0.75rem;
}
.woocommerce-product-details__short-description {
	overflow-wrap: break-word;
	word-break: break-word;
	color: var(--color-muted-fg);
	line-height: 1.625;
}

.product-shipping-note {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-border);
	font-size: 0.75rem;
	color: var(--color-muted-fg);
}
.product-shipping-note p { margin-bottom: 0.25rem; }

/* Related products */
.related-products-section { margin-top: 5rem; }
.related-products-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	letter-spacing: -0.02em;
	margin-bottom: 1.5rem;
}
.related-products-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}
@media (min-width: 640px) { .related-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Variations form */
.variations_form .variations { margin-bottom: 1.5rem; }
.variations label {
	font-family: var(--font-body) !important;
	font-weight: 500 !important;
	font-style: normal !important;
	font-size: 0.875rem;
}
.single_variation_wrap { margin-top: 1rem; }

/* =====================================================
   WOOCOMMERCE — ARCHIVE / SHOP
   ===================================================== */
.woocommerce-archive .theme-inner-main { padding-top: calc( var(--header-height) + 0rem ); }

.shop-section-header {
	padding-block: 3rem;
	text-align: center;
}
.shop-section-header .section-eyebrow { justify-content: center; }
.shop-section-title {
	margin-top: 1rem;
	font-size: 1.875rem;
	line-height: 1.1;
}
@media (min-width: 640px) { .shop-section-title { font-size: 3rem; } }

.shop-grid-section { padding-bottom: var(--section-pad-y); }
.shop-grid-section .theme-container { padding-top: 0; }

/* WooCommerce notices (Section 14.1) */
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }

.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	background: var(--color-card);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	padding: 1rem 1.5rem;
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
}
.woocommerce-error { border-left: 4px solid var(--color-secondary); }
.woocommerce-message { border-left: 4px solid var(--color-primary); }

/* =====================================================
   WOOCOMMERCE — CHECKOUT (Section 13)
   ===================================================== */
body.woocommerce-checkout .theme-inner-main {
	padding-top: calc( var(--header-height) + 2rem );
	padding-bottom: 4rem;
}
body.woocommerce-checkout .page-title {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: inherit;
	margin-bottom: 2rem;
	letter-spacing: -0.02em;
}

body.woocommerce-checkout .entry-content { max-width: 100%; }

/* Two-column grid (Section 13.2) */
@media (min-width: 768px) {
	body.woocommerce-checkout .wc-block-checkout {
		display: block;
	}
	body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--checkout-gap);
		align-items: start;
	}
}

/* Section 13.3 */
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-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select {
	width: 100% !important;
	max-width: none !important;
	border-radius: var(--radius-xl) !important;
	border: 1px solid var(--color-border) !important;
	background-color: var(--color-background) !important;
	font-family: var(--font-body) !important;
	font-size: 0.875rem !important;
	color: var(--color-foreground) !important;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus {
	border-color: var(--color-primary) !important;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 30%, transparent) !important;
	outline: none !important;
}

/* Checkout sidebar */
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background-color: color-mix(in srgb, var(--color-muted) 40%, transparent);
	border-radius: var(--card-radius);
	padding: 2rem;
	border: 1px solid var(--color-border);
}

/* Place Order button */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-fg) !important;
	border-radius: var(--btn-radius) !important;
	border: none !important;
	font-family: var(--font-body) !important;
	font-size: var(--btn-font-size) !important;
	font-weight: var(--btn-font-weight) !important;
	width: 100% !important;
	padding: 0.875rem !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	opacity: 0.9 !important;
}

body.woocommerce-checkout .wc-block-checkout {
	font-family: var(--font-body);
	color: var(--color-foreground);
}
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-form .wc-block-components-select {
	margin-bottom: 1rem;
}
body.woocommerce-checkout .wc-block-checkout .wc-block-components-title {
	font-family: var(--font-display) !important;
	font-weight: inherit !important;
	letter-spacing: -0.02em;
	font-size: 1.5rem;
}
body.woocommerce-checkout .wc-block-cart-items__header {
	font-weight: 500;
	font-size: 0.875rem;
	color: var(--color-muted-fg);
}

/* =====================================================
   THANK YOU PAGE (Section 22.8)
   ===================================================== */
body.theme-thankyou-page { overflow-x: hidden; }
body.theme-thankyou-page .woocommerce-order { font-family: var(--font-body); }
body.theme-thankyou-page .woocommerce-order-overview {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1.5rem;
	background: var(--color-card);
	border-radius: var(--card-radius);
	border: 1px solid var(--color-border);
	margin-bottom: 2rem;
}
body.theme-thankyou-page .woocommerce-order-overview li { font-size: 0.875rem; color: var(--color-muted-fg); }
body.theme-thankyou-page .woocommerce-order-overview strong { color: var(--color-foreground); }

body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: inherit;
	letter-spacing: -0.02em;
	padding: 0 0 1rem 0;
}
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 0.5rem;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.875rem;
}
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 {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-top: 2rem;
}
@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;
	overflow-wrap: break-word;
	font-style: normal;
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--color-muted-fg);
}

/* =====================================================
   INNER PAGES (Cart, My Account)
   ===================================================== */
body.woocommerce-cart .theme-inner-main,
body.woocommerce-account .theme-inner-main {
	padding-top: calc( var(--header-height) + 2rem );
	padding-bottom: 4rem;
}

/* =====================================================
   WooCommerce — Cart page (block) alignment
   ===================================================== */
body.woocommerce-cart .entry-content { max-width: 100%; }
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar {
	min-width: 0;
	max-width: none;
}

/* =====================================================
   404 PAGE
   ===================================================== */
.theme-404 {
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 1.5rem;
	padding: 4rem 0;
}
.theme-404 .page-title { font-size: 2.5rem; }

/* =====================================================
   GENERIC PAGE
   ===================================================== */
.page-title {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: inherit;
	letter-spacing: -0.02em;
	margin-bottom: 2rem;
}
.entry-content { line-height: 1.625; }
.entry-content > * + * { margin-top: 1em; }

/* =====================================================
   UTILITY
   ===================================================== */
.font-display {
	font-family: var(--font-display) !important;
	font-weight: inherit !important;
	letter-spacing: -0.02em;
	font-optical-sizing: auto;
}
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
