/* ==========================================================================
   ReadWrite.it theme styles
   ========================================================================== */

/* ---------- Design tokens (HSL channels) ---------- */
:root {
	--c-navy: 212 100% 11%;
	--c-cream: 60 16% 85%;
	--c-teal: 189 100% 35%;
	--c-teal-bright: 189 100% 42%;
	--c-teal-deep: 189 100% 29%;
	--c-gold: 45 100% 48%;
	--c-gold-deep: 45 100% 40%;
	--c-linen: 60 16% 90%;
	--c-border: 212 18% 68%;

	--background: var(--c-cream);
	--foreground: var(--c-navy);
	--card: 0 0% 100%;
	--card-foreground: var(--c-navy);
	--popover: 0 0% 100%;
	--popover-foreground: var(--c-navy);
	--primary: var(--c-teal);
	--primary-foreground: 0 0% 100%;
	--secondary: var(--c-linen);
	--secondary-foreground: var(--c-navy);
	--muted: 60 10% 80%;
	--muted-foreground: 212 34% 29%;
	--accent: var(--c-gold);
	--accent-foreground: var(--c-navy);
	--destructive: 6 78% 58%;
	--destructive-foreground: 30 50% 8%;
	--border: var(--c-border);
	--input: var(--c-border);
	--ring: var(--c-teal);
	--radius: 0.5rem;

	--ivory: var(--c-cream);
	--linen: var(--c-linen);
	--bone: 60 10% 80%;
	--sand: var(--c-border);

	--hot: var(--c-gold);
	--volt: var(--c-teal);
	--sun: var(--c-gold);
	--flame: var(--c-gold);
	--leaf: var(--c-teal-deep);
	--violet: var(--c-navy);
	--hero-overlay: var(--c-navy);

	--shadow-soft: 0 8px 26px -14px hsl(212 100% 11% / 0.2);
	--shadow-elevated: 0 26px 60px -22px hsl(212 100% 11% / 0.32);
	--gradient-stitch: linear-gradient(135deg, hsl(var(--hot)), hsl(var(--sun)) 45%, hsl(var(--volt)));
	--gradient-gold: linear-gradient(135deg, hsl(var(--hot)), hsl(var(--sun)));
	--gradient-plum: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--violet)));
	--gradient-sage: linear-gradient(135deg, hsl(var(--leaf)), hsl(188 62% 42%));
	--gradient-rose: linear-gradient(135deg, hsl(var(--flame)), hsl(var(--volt)));

	--font-body: 'Manrope', system-ui, -apple-system, sans-serif;
	--font-display: 'Cormorant Garamond', Georgia, serif;

	--color-primary: hsl(var(--primary));
	--color-button-text: hsl(var(--primary-foreground));
	--btn-radius: 9999px;
	--btn-height: 3rem;
	--btn-padding: 0.5rem 1.75rem;
	--btn-font-size: 15px;
	--btn-font-weight: 500;
	--btn-letter-spacing: 0;
	--btn-text-transform: none;
	--header-height: 4rem;
	--checkout-max-width: 80rem;
	--checkout-gap: 2rem;
}

@media (min-width: 1024px) {
	:root { --header-height: 5rem; }
}

.theme-dark {
	--background: var(--c-navy);
	--foreground: 0 0% 98%;
	--card: 211 76% 16%;
	--card-foreground: 0 0% 98%;
	--popover: 211 76% 16%;
	--popover-foreground: 0 0% 98%;
	--secondary: 210 67% 20%;
	--secondary-foreground: 0 0% 98%;
	--muted: 210 56% 25%;
	--muted-foreground: var(--c-cream);
	--accent: var(--c-gold);
	--accent-foreground: var(--c-navy);
	--primary: var(--c-teal-bright);
	--primary-foreground: var(--c-navy);
	--border: 189 35% 36%;
	--input: 189 35% 36%;
	--ring: var(--c-gold);
	background-color: hsl(var(--background));
	color: hsl(var(--foreground));
}

.theme-light {
	--background: var(--c-cream);
	--foreground: var(--c-navy);
	--card: 0 0% 100%;
	--card-foreground: var(--c-navy);
	--popover: 0 0% 100%;
	--popover-foreground: var(--c-navy);
	--secondary: var(--c-linen);
	--secondary-foreground: var(--c-navy);
	--muted: 60 10% 80%;
	--muted-foreground: 212 34% 29%;
	--accent: var(--c-gold-deep);
	--accent-foreground: var(--c-navy);
	--primary: var(--c-teal-deep);
	--primary-foreground: 0 0% 100%;
	--border: var(--c-border);
	--input: var(--c-border);
	--ring: var(--c-teal-deep);
	background-color: hsl(var(--background));
	color: hsl(var(--foreground));
}

/* ---------- Reset / base ---------- */
*,
*::before,
*::after {
	box-sizing: border-box;
	border-width: 0;
	border-style: solid;
	border-color: hsl(var(--border));
}

html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	tab-size: 4;
	scroll-behavior: smooth;
	max-width: 100%;
	overflow-x: clip;
}

body {
	margin: 0;
	max-width: 100%;
	overflow-x: clip;
	background-color: hsl(var(--background));
	color: hsl(var(--foreground));
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-size: inherit;
	font-family: var(--font-display);
	letter-spacing: 0;
	font-weight: 700;
}

p, figure, blockquote, dl, dd, pre { margin: 0; }
ul, ol { list-style: none; margin: 0; padding: 0; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
button, input, select, textarea {
	font-family: inherit;
	font-size: 100%;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
}
button, select { text-transform: none; }
button, [type="button"], [type="submit"] {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
	cursor: pointer;
}
:disabled { cursor: default; }
a[href]:not([href=""]),
button:not(:disabled),
[role="button"],
summary,
.press-pop,
.arrow-btn,
.magnetic-cta,
.site-nav__link,
.mobile-nav__link,
.footer-link,
.touchpoint-link,
.shop-tab,
.theme-thumb,
.theme-attr-pill,
.theme-card-link,
.cart-item__remove,
.menu-toggle,
.cart-toggle,
.service-card[role="button"],
.site-brand,
.site-footer__brand,
.cart-drawer__close,
#theme-cart-overlay[data-cart-close] {
	cursor: pointer;
}
svg, video, canvas, audio, iframe, embed, object { display: block; }
img:not(.cover-img):not(.service-card__img) { max-width: 100%; height: auto; }
video { max-width: 100%; height: auto; }
img, svg { vertical-align: middle; }
table { border-collapse: collapse; text-indent: 0; border-color: inherit; }
[hidden] { display: none !important; }
textarea { resize: vertical; }
::placeholder { color: #9ca3af; opacity: 1; }

a, button, [role="button"] {
	transition: color 300ms cubic-bezier(0.22, 1, 0.36, 1),
		background-color 300ms cubic-bezier(0.22, 1, 0.36, 1),
		border-color 300ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
		box-shadow 350ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 300ms ease;
}
a svg, button svg, [role="button"] svg {
	transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1), color 300ms ease, opacity 300ms ease;
	will-change: transform;
}
a:hover svg, button:hover svg, [role="button"]:hover svg {
	transform: translateY(-1px) rotate(-7deg) scale(1.12);
}
a:active svg, button:active svg { transform: scale(0.95); }

img {
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 700ms ease;
}

section[id] { scroll-margin-top: 104px; }

::selection {
	background: hsl(var(--accent) / 0.9);
	color: hsl(var(--accent-foreground));
}

.container-wide {
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}
@media (min-width: 640px) { .container-wide { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .container-wide { padding-left: 2.5rem; padding-right: 2.5rem; } }

.text-stitch-gradient {
	background: linear-gradient(120deg, hsl(var(--hot)), hsl(var(--sun)) 45%, hsl(var(--volt)));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.theme-dark .text-stitch-gradient {
	background: linear-gradient(120deg, hsl(var(--accent)), hsl(var(--primary)) 55%, hsl(var(--accent)));
	-webkit-background-clip: text;
	background-clip: text;
}

.md-only { display: none; }
@media (min-width: 768px) { .md-only { display: inline; } }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Motion utilities ---------- */
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes slide-in-bottom {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes shimmer {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}
@keyframes marquee-scroll {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

.press-pop { transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 300ms ease; }
.press-pop:hover { transform: scale(1.02) translateY(-2px); }
.press-pop:active { transform: scale(0.98); }

[data-aos] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 900ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 900ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform, filter;
}
[data-aos].is-revealed {
	opacity: 1;
	transform: translateY(0) translateX(0) scale(1);
	filter: blur(0);
}

.hero-reveal {
	opacity: 0;
	transform: translateY(18px) scale(0.995);
	filter: blur(6px);
	transition: opacity 1100ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 1100ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 1100ms cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--hero-delay, 0ms);
	will-change: opacity, transform, filter;
}
.hero-ready .hero-reveal {
	opacity: 1;
	transform: translateY(0) scale(1);
	filter: blur(0);
}

.magnetic-cta {
	translate: var(--mag-x, 0px) var(--mag-y, 0px);
	transition: translate 180ms ease-out;
}

.skeleton-shimmer {
	background: linear-gradient(90deg, hsl(var(--muted)) 0%, hsl(var(--linen)) 50%, hsl(var(--muted)) 100%);
	background-size: 200% 100%;
	animation: shimmer 1.6s linear infinite;
}
.img-fade-in {
	opacity: 0;
	transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.img-fade-in.is-loaded { opacity: 1; }

.marquee-track {
	width: max-content;
	animation: marquee-scroll 45s linear infinite;
}

/* Customizer preview and reduced-motion fallbacks: reveal content is always visible */
body.is-customizer [data-aos],
body.is-customizer .hero-reveal,
body.is-customizer .img-fade-in {
	opacity: 1;
	transform: none;
	filter: none;
}

@media (prefers-reduced-motion: reduce) {
	a, button, [role="button"], a svg, button svg, img { transition: none !important; transform: none !important; }
	[data-aos] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
	.hero-reveal { opacity: 1; transform: none; filter: none; transition: none; }
	.skeleton-shimmer { animation: none; }
	.img-fade-in { transition: none; opacity: 1; }
	.marquee-track { animation: none; }
	.magnetic-cta { translate: none; }
}

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	white-space: nowrap;
	border-radius: 9999px;
	border: 1px solid hsl(var(--primary));
	background-color: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	font-size: 15px;
	font-weight: 500;
	height: 2.75rem;
	padding: 0.625rem 1.5rem;
	transition: transform 150ms ease-out, box-shadow 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out;
}
.btn:hover {
	transform: scale(1.02);
	box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
	background-color: hsl(var(--primary) / 0.9);
}
.btn:active { transform: scale(0.97); }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring)); }
.btn svg { width: 1rem; height: 1rem; flex-shrink: 0; pointer-events: none; }
.btn--lg { height: 3rem; padding-left: 1.75rem; padding-right: 1.75rem; }
.btn--sm { height: 2.25rem; padding-left: 1rem; padding-right: 1rem; }
.btn--full { width: 100%; }
.btn--outline {
	background-color: transparent;
	color: hsl(var(--foreground));
	border-color: hsl(var(--foreground) / 0.25);
}
.btn--outline:hover { background-color: transparent; border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.btn--ghost {
	background-color: transparent;
	border-color: transparent;
	color: hsl(var(--foreground) / 0.6);
}
.btn--ghost:hover { background-color: hsl(var(--foreground) / 0.06); color: hsl(var(--primary)); }
.btn.is-disabled, .btn[aria-disabled="true"] { pointer-events: none; opacity: 0.6; }
.magnetic-cta.btn { transition: translate 180ms ease-out; }

/* Arrow fill CTA */
.arrow-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	border-radius: 9999px;
	padding-left: 1.5rem;
	padding-right: 0.5rem;
	height: 3rem;
	font-size: 15px;
	font-weight: 600;
	overflow: hidden;
	isolation: isolate;
	border: 1px solid;
	user-select: none;
}
.arrow-btn--solid { background-color: hsl(var(--accent)); border-color: hsl(var(--accent)); color: hsl(var(--accent-foreground)); }
.arrow-btn--outline { background-color: transparent; border-color: hsl(var(--foreground) / 0.7); color: hsl(var(--foreground)); }
.arrow-btn__fill {
	position: absolute;
	inset: 0;
	z-index: -1;
	transform-origin: left;
	transform: scaleX(0);
	border-radius: 9999px;
	transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}
.arrow-btn--solid .arrow-btn__fill { background-color: hsl(var(--volt)); }
.arrow-btn--outline .arrow-btn__fill { background-color: #fff; }
.arrow-btn:hover .arrow-btn__fill { transform: scaleX(1); }
.arrow-btn__label { position: relative; transition: color 500ms; }
.arrow-btn__arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	background-color: color-mix(in srgb, currentColor 10%, transparent);
	transition: color 500ms;
}
.arrow-btn__arrow svg { width: 1rem; height: 1rem; }
.arrow-btn--solid:hover .arrow-btn__label,
.arrow-btn--solid:hover .arrow-btn__arrow { color: hsl(var(--primary-foreground)); }
.arrow-btn--outline:hover .arrow-btn__label,
.arrow-btn--outline:hover .arrow-btn__arrow { color: hsl(226 34% 7%); }

/* Shared text pieces */
.eyebrow {
	font-size: 14px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: hsl(var(--accent));
	margin-bottom: 1rem;
	font-weight: 700;
}
.section-heading {
	font-size: 2.25rem;
	line-height: 1.05;
	color: hsl(var(--foreground));
}
@media (min-width: 768px) { .section-heading { font-size: 3rem; } }
@media (min-width: 1024px) { .section-heading { font-size: 3.2rem; } }

.icon-tile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border-radius: calc(var(--radius) - 4px);
	transition: transform 500ms ease-out;
}
.icon-tile--md { width: 2.75rem; height: 2.75rem; }
.icon-tile__svg { width: 1.25rem; height: 1.25rem; color: hsl(var(--accent-foreground)); }
.group:hover > .icon-tile { transform: scale(1.1) rotate(6deg); }

/* ---------- Scroll progress ---------- */
body.admin-bar .scroll-progress {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .scroll-progress { top: 46px; }
}

.scroll-progress {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 60;
	height: 2px;
	background: transparent;
	pointer-events: none;
}
.scroll-progress__bar {
	height: 100%;
	background-color: hsl(var(--c-navy));
	transform-origin: left;
	transform: scaleX(0);
	transition: transform 150ms ease-out;
}

/* ---------- Header ---------- */
body.admin-bar .site-header {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

.site-header {
	position: sticky;
	top: 0; left: 0; right: 0;
	z-index: 50;
	width: 100%;
	border-bottom: 0 solid transparent;
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
	transition-duration: 300ms;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.site-header,
.site-header.theme-dark,
.site-header.theme-light { background-color: transparent; }
.site-header.is-solid {
	background-color: hsl(var(--background));
	border-bottom: 1px solid hsl(var(--border));
	box-shadow: var(--shadow-soft);
}
.site-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	height: 4rem;
}
@media (min-width: 1024px) { .site-header__inner { height: 5rem; } }
.site-header__left { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.site-header__actions { display: flex; align-items: center; gap: 0.5rem; }

.menu-toggle, .cart-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 9999px;
	position: relative;
	color: hsl(var(--accent));
}
.menu-toggle:hover, .cart-toggle:hover { background-color: hsl(var(--accent) / 0.15); }
.site-header.theme-dark .menu-toggle,
.site-header.theme-dark .cart-toggle { color: hsl(var(--foreground)); }
.site-header.theme-dark .menu-toggle:hover,
.site-header.theme-dark .cart-toggle:hover { background-color: hsl(var(--foreground) / 0.2); }
.menu-toggle svg, .cart-toggle__icon { width: 1.25rem; height: 1.25rem; }
.menu-toggle__close { display: none; }
.site-header.menu-open .menu-toggle__open { display: none; }
.site-header.menu-open .menu-toggle__close { display: block; }
@media (min-width: 1024px) { .menu-toggle { display: none; } }

.site-brand { display: flex; align-items: center; gap: 0.625rem; min-width: 0; }
.site-logo-text { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; }
.site-logo-img--header {
	width: var(--rw-logo-w, 7.5rem);
	height: auto;
	object-fit: contain;
	object-position: left;
	user-select: none;
	transform-origin: top left;
	will-change: transform;
	transform: scale(1);
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 700ms cubic-bezier(0.22, 1, 0.36, 1);
}
.site-header.theme-dark .site-logo-img--header { transform: scale(1.6); filter: brightness(0) invert(1); }
@media (min-width: 640px) { .site-logo-img--header { width: var(--rw-logo-w-sm, 8.5rem); } }
@media (min-width: 1024px) { .site-logo-img--header { width: var(--rw-logo-w-lg, 12rem); } }

.site-nav { display: none; }
@media (min-width: 1024px) {
	.site-nav {
		display: block;
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		min-width: 0;
	}
}
.site-nav__list { display: flex; align-items: center; gap: 0.125rem; }
.site-nav__link {
	position: relative;
	display: inline-block;
	padding: 0.5rem 0.625rem;
	font-size: 14px;
	font-weight: 600;
	border-radius: 9999px;
	white-space: nowrap;
	transition: all 300ms ease-out;
	color: hsl(var(--foreground) / 0.8);
}
.site-nav__link:hover { transform: translateY(-0.125rem); color: hsl(var(--accent)); }
.site-nav__link.is-active { color: hsl(var(--accent)); }
.site-header.theme-dark .site-nav__link { color: hsl(var(--foreground) / 0.85); }
.site-header.theme-dark .site-nav__link:hover,
.site-header.theme-dark .site-nav__link.is-active { color: hsl(var(--foreground)); }
@media (min-width: 1280px) { .site-nav__link { padding-left: 0.875rem; padding-right: 0.875rem; } }
.site-nav__underline {
	pointer-events: none;
	position: absolute;
	left: 0.625rem; right: 0.625rem;
	bottom: 0.125rem;
	height: 3px;
	border-radius: 9999px;
	background-color: hsl(var(--accent));
	transition: all 300ms ease-out;
	opacity: 0;
	transform: scaleX(0.5);
}
@media (min-width: 1280px) { .site-nav__underline { left: 0.875rem; right: 0.875rem; } }
.site-nav__link.is-active .site-nav__underline { opacity: 1; transform: scaleX(1); }

.site-header__cta {
	display: none;
	align-items: center;
	height: 2.5rem;
	padding: 0 1rem;
	border-radius: 9999px;
	background-color: hsl(var(--accent));
	color: hsl(var(--accent-foreground));
	font-size: 14px;
	font-weight: 600;
}
.site-header__cta:hover { box-shadow: var(--shadow-elevated); }
@media (min-width: 1280px) { .site-header__cta { display: inline-flex; } }

.theme-cart-count {
	position: absolute;
	top: -0.125rem;
	right: -0.125rem;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 19px;
	height: 19px;
	padding: 0 0.25rem;
	border-radius: 9999px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	background-color: hsl(var(--accent));
	color: hsl(var(--accent-foreground));
	animation: fade-in 0.7s ease-out both;
}
.theme-cart-count:empty { display: none; }

.mobile-nav {
	display: none;
	border-top: 1px solid hsl(var(--border));
	background-color: hsl(var(--background));
	animation: fade-in 0.7s ease-out both;
}
.site-header.menu-open .mobile-nav { display: block; }
@media (min-width: 1024px) { .site-header.menu-open .mobile-nav { display: none; } }
.mobile-nav__inner { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.mobile-nav__list { display: flex; flex-direction: column; }
.mobile-nav__link {
	display: block;
	text-align: left;
	font-size: 15px;
	font-weight: 600;
	padding: 0.75rem 0;
	border-bottom: 1px solid hsl(var(--border));
	color: hsl(var(--foreground) / 0.9);
	transition: all 300ms;
}
.mobile-nav__list li:last-child .mobile-nav__link { border-bottom: 0; }
.mobile-nav__link:hover { color: hsl(var(--accent)); transform: translateX(0.25rem); }

/* ---------- Main wrappers ---------- */
.site-main--inner { padding-top: 6rem; background-color: hsl(var(--ivory)); }
@media (min-width: 1024px) { .site-main--inner { padding-top: 7rem; } }
.site-main--home { padding-top: 0; }

/* ---------- Hero ---------- */
.hero {
	position: relative;
	margin-top: -4rem;
	min-height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: hsl(var(--background));
}
@media (min-width: 1024px) { .hero { margin-top: -5rem; } }
.hero__video, .precontact__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero__video--desktop, .precontact__video--desktop { display: none; }
.hero__video--mobile, .precontact__video--mobile { display: block; }
@media (min-width: 768px) {
	.hero__video--desktop, .precontact__video--desktop { display: block; }
	.hero__video--mobile, .precontact__video--mobile { display: none; }
}
.precontact__video { object-position: center; pointer-events: none; }
.hero__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, hsl(0 0% 0% / 0.8) 0%, hsl(0 0% 0% / 0.58) 45%, hsl(0 0% 0% / 0.84) 100%);
}
.hero__content {
	position: relative;
	z-index: 10;
	text-align: center;
	color: hsl(var(--foreground));
	padding-top: 6rem;
	padding-bottom: 6rem;
}
@media (min-width: 1024px) { .hero__content { padding-top: 7rem; padding-bottom: 7rem; } }
.hero__badge-wrap { display: flex; justify-content: center; margin-bottom: 1.75rem; }
.hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.375rem 1rem;
	border-radius: 9999px;
	background-color: hsl(var(--foreground) / 0.12);
	border: 1px solid hsl(var(--foreground) / 0.35);
	font-size: 14px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: hsl(var(--foreground));
	font-weight: 700;
}
.hero__title {
	color: hsl(var(--foreground));
	line-height: 1.08;
	letter-spacing: -0.025em;
	margin-left: auto;
	margin-right: auto;
	max-width: 64rem;
	font-size: clamp(2.5rem, 8vw, 6rem);
}
.hero__text {
	margin: 1.75rem auto 0;
	max-width: 42rem;
	font-size: 17px;
	color: hsl(var(--foreground) / 0.9);
	line-height: 1.625;
}
@media (min-width: 640px) { .hero__text { font-size: 19px; } }
.hero__actions {
	margin-top: 2.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	justify-content: center;
}
.hero__actions .arrow-btn {
	width: auto;
	max-width: 100%;
}
@media (min-width: 640px) {
	.hero__actions {
		flex-direction: row;
		align-items: center;
		gap: 1rem;
	}
}

/* ---------- Marquee ---------- */
.marquee {
	position: relative;
	overflow: hidden;
	padding: 1.75rem 0;
	background: linear-gradient(100deg, hsl(var(--primary)), hsl(var(--violet)) 50%, hsl(var(--primary)));
}
@media (min-width: 768px) { .marquee { padding: 2.5rem 0; } }
.marquee__fade {
	pointer-events: none;
	position: absolute;
	top: 0; bottom: 0;
	width: 4rem;
	z-index: 10;
}
.marquee__fade--left { left: 0; background: linear-gradient(to right, hsl(var(--primary)), transparent); }
.marquee__fade--right { right: 0; background: linear-gradient(to left, hsl(var(--primary)), transparent); }
@media (min-width: 768px) { .marquee__fade { width: 8rem; } }
.marquee-track {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	white-space: nowrap;
	will-change: transform;
}
@media (min-width: 768px) { .marquee-track { gap: 4rem; } }
.marquee__item { display: flex; align-items: center; gap: 2.5rem; flex-shrink: 0; }
@media (min-width: 768px) { .marquee__item { gap: 4rem; } }
.marquee__phrase {
	font-family: var(--font-display);
	line-height: 1;
	color: hsl(var(--primary-foreground));
	font-size: clamp(1.2rem, 3vw, 2.4rem);
}
.marquee__dot {
	display: inline-block;
	border-radius: 9999px;
	flex-shrink: 0;
	background-color: hsl(var(--hot));
	width: clamp(7px, 0.7vw, 12px);
	height: clamp(7px, 0.7vw, 12px);
}

/* ---------- About ---------- */
.about-section, .shop-section { padding: 6rem 0; }
@media (min-width: 768px) { .about-section, .shop-section { padding: 8rem 0; } }
.about-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: stretch; }
@media (min-width: 1024px) {
	.about-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; }
	.about-left { grid-column: span 5 / span 5; }
	.about-right { grid-column: span 7 / span 7; padding-left: 1.5rem; }
}
.about-left, .about-right { display: flex; flex-direction: column; min-width: 0; }
.about-title { cursor: default; }
.about-title__accent { display: inline-block; transition: transform 500ms ease-out; }
.about-title:hover .about-title__accent { transform: translateX(0.25rem); }
.about-intro { margin-top: 1.25rem; font-size: 16px; color: hsl(var(--foreground) / 0.75); line-height: 1.625; max-width: 24rem; }
.about-quote { margin-top: 2.5rem; cursor: default; }
.about-quote__text {
	font-family: var(--font-display);
	font-size: 1.5rem;
	line-height: 1.25;
	color: hsl(var(--foreground) / 0.95);
	transition: all 500ms ease-out;
}
@media (min-width: 768px) { .about-quote__text { font-size: 1.8rem; } }
.about-quote:hover .about-quote__text { color: hsl(var(--primary)); transform: translateX(0.25rem); }
.about-quote__caption {
	margin-top: 1rem;
	font-size: 14px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: hsl(var(--foreground) / 0.7);
	font-weight: 700;
	transition: all 500ms ease-out;
}
.about-quote:hover .about-quote__caption { letter-spacing: 0.3em; color: hsl(var(--accent)); }
.about-card-wrap { margin-top: auto; padding-top: 2.5rem; }
.about-card {
	border-radius: var(--radius);
	border: 1px solid hsl(var(--border));
	background-color: hsl(var(--card));
	padding: 1.25rem;
	box-shadow: var(--shadow-soft);
	transition: all 500ms ease-out;
	cursor: default;
}
.about-card:hover { transform: translateY(-0.375rem); border-color: hsl(var(--accent) / 0.6); box-shadow: var(--shadow-elevated); }
.about-card__label { font-size: 14px; letter-spacing: 0.24em; text-transform: uppercase; color: hsl(var(--foreground) / 0.65); margin-bottom: 0.375rem; font-weight: 700; }
.about-card__text { font-size: 15px; font-weight: 600; color: hsl(var(--foreground)); }
.about-heading2 {
	font-size: 1.875rem;
	line-height: 1.15;
	color: hsl(var(--foreground));
	margin-bottom: 1.75rem;
	transition: transform 500ms ease-out;
	cursor: default;
}
@media (min-width: 768px) { .about-heading2 { font-size: 2.25rem; } }
.about-heading2:hover { transform: translateX(0.25rem); }
.about-copy { font-size: 16px; line-height: 1.75; color: hsl(var(--foreground) / 0.8); flex: 1 1 0%; }
.about-copy > * + * { margin-top: 1.25rem; }
.about-copy__p { transition: color 300ms; }
.about-copy__p:hover { color: hsl(var(--foreground)); }
.about-copy__pull {
	font-family: var(--font-display);
	color: hsl(var(--foreground));
	font-size: 1.125rem;
	line-height: 1.75rem;
	transition: all 500ms ease-out;
	cursor: default;
}
@media (min-width: 768px) { .about-copy__pull { font-size: 1.25rem; } }
.about-copy__pull:hover { transform: translateX(0.25rem); color: hsl(var(--accent)); }
.about-stats {
	margin-top: 2.5rem;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	border-top: 1px solid hsl(var(--border));
	padding-top: 2rem;
}
@media (min-width: 640px) { .about-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.about-stat {
	display: flex;
	flex-direction: column;
	cursor: default;
	transition: transform 500ms ease-out;
}
.about-stat:hover { transform: translateY(-0.375rem); }
.about-stat .icon-tile { margin-bottom: 0.75rem; }
.about-stat__title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.75rem;
	color: hsl(var(--foreground));
	transition: color 400ms;
}
@media (min-width: 768px) { .about-stat__title { font-size: 1.5rem; line-height: 2rem; } }
.about-stat:hover .about-stat__title { color: hsl(var(--primary)); }
.about-stat__text { margin-top: 0.125rem; font-size: 14px; color: hsl(var(--foreground) / 0.7); transition: color 400ms; }
.about-stat:hover .about-stat__text { color: hsl(var(--foreground)); }
.about-stat__bar {
	margin-top: 0.75rem;
	display: block;
	height: 3px;
	width: 1.75rem;
	border-radius: 9999px;
	background-color: hsl(var(--accent) / 0.5);
	transition: all 500ms ease-out;
}
.about-stat:hover .about-stat__bar { width: 4rem; background-color: hsl(var(--accent)); }

/* ---------- Services ---------- */
.services-section { position: relative; overflow: hidden; padding: 6rem 0; }
@media (min-width: 768px) { .services-section { padding: 8rem 0; } }
.services-section__blob {
	pointer-events: none;
	position: absolute;
	left: -8rem;
	top: 33.333333%;
	width: 24rem;
	height: 24rem;
	border-radius: 9999px;
	opacity: 0.2;
	filter: blur(64px);
	background: radial-gradient(circle, hsl(var(--volt)), transparent 70%);
}
.services-section__inner { position: relative; }
.section-intro { max-width: 48rem; margin-bottom: 3.5rem; }
.section-intro__text { margin-top: 1.25rem; font-size: 16px; color: hsl(var(--foreground) / 0.8); line-height: 1.625; }
.services-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; }
@media (min-width: 640px) { .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .services-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.grad-gold { --grad: var(--gradient-gold); --glow: hsl(var(--accent) / 0.4); }
.grad-plum { --grad: var(--gradient-plum); --glow: hsl(var(--primary) / 0.4); }
.grad-sage { --grad: var(--gradient-sage); --glow: hsl(var(--leaf) / 0.4); }
.grad-rose { --grad: var(--gradient-rose); --glow: hsl(var(--flame) / 0.4); }

.service-card {
	position: relative;
	height: 100%;
	cursor: pointer;
	border-radius: var(--radius);
	outline: none;
}
.service-card:focus-visible { box-shadow: 0 0 0 2px hsl(var(--accent)); }
.service-card__glow {
	pointer-events: none;
	position: absolute;
	inset: -0.25rem;
	border-radius: var(--radius);
	opacity: 0;
	filter: blur(24px);
	transition: opacity 500ms;
	background: var(--grad);
}
.service-card:hover .service-card__glow { opacity: 0.7; }
.service-card__body {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	background-color: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	padding: 1.5rem;
	box-shadow: var(--shadow-soft);
	transition: border-color 500ms ease-out, box-shadow 500ms ease-out, transform 500ms ease-out;
	overflow: hidden;
}
@media (min-width: 768px) { .service-card__body { padding: 1.75rem; } }
.service-card:hover .service-card__body { transform: translateY(-0.25rem); border-color: transparent; box-shadow: var(--shadow-elevated); }
.service-card__topbar {
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 0.25rem;
	opacity: 0;
	transition: opacity 500ms;
	background: var(--grad);
}
.service-card:hover .service-card__topbar { opacity: 1; }
.service-card__img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: calc(var(--radius) - 4px);
	margin-bottom: 1.25rem;
	flex-shrink: 0;
}
.service-card__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: var(--radius);
	margin-bottom: 1.25rem;
	flex-shrink: 0;
	background: var(--grad);
	box-shadow: 0 10px 26px -10px var(--glow);
	transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.service-card__icon:hover { transform: rotate(8deg) scale(1.12); }
.service-card__icon-glow {
	position: absolute;
	inset: 0;
	border-radius: var(--radius);
	opacity: 0;
	transition: opacity 500ms;
	box-shadow: 0 18px 42px -10px var(--glow);
}
.service-card:hover .service-card__icon-glow { opacity: 1; }
.service-card__icon-svg { position: relative; width: 1.75rem; height: 1.75rem; color: hsl(var(--accent-foreground)); }
.service-card__title {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 1.3rem;
	line-height: 1.375;
	letter-spacing: -0.025em;
	color: hsl(var(--foreground));
	margin-bottom: 0.625rem;
	transition: color 300ms;
}
.service-card:hover .service-card__title { color: hsl(var(--accent)); }
.service-card__text {
	font-family: var(--font-body);
	font-weight: 300;
	font-size: 16.5px;
	line-height: 1.625;
	color: hsl(var(--foreground) / 0.8);
	flex: 1 1 0%;
}
.service-card__bar {
	margin-top: 1.5rem;
	display: block;
	height: 3px;
	width: 2rem;
	border-radius: 9999px;
	background: var(--grad);
	transition: all 500ms ease-out;
}
.service-card:hover .service-card__bar { width: 5rem; }

/* ---------- Shop section ---------- */
.shop-head { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 3rem; }
@media (min-width: 1024px) { .shop-head { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.shop-head__text { max-width: 42rem; }
.shop-head__intro { margin-top: 1.25rem; font-size: 16px; color: hsl(var(--foreground) / 0.7); line-height: 1.625; max-width: 36rem; }
.shop-search { position: relative; width: 100%; }
@media (min-width: 1024px) { .shop-search { width: 20rem; } }
.shop-search__icon {
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	height: 1rem;
	color: hsl(var(--foreground) / 0.5);
}
.shop-search:hover .shop-search__icon { transform: translateY(-50%); }
.shop-search__input {
	width: 100%;
	height: 2.75rem;
	padding-left: 2.75rem;
	padding-right: 1rem;
	border-radius: 9999px;
	background-color: hsl(var(--secondary));
	border: 1px solid hsl(var(--border));
	font-size: 15px;
	color: hsl(var(--foreground));
	transition: color 150ms, border-color 150ms;
	-webkit-appearance: none;
	appearance: none;
}
.shop-search__input::placeholder { color: hsl(var(--foreground) / 0.45); }
.shop-search__input:focus { outline: none; border-color: hsl(var(--primary)); }
.shop-tabs { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-bottom: 3rem; }
.shop-tab {
	padding: 0 1.25rem;
	height: 2.5rem;
	border-radius: 9999px;
	font-size: 15px;
	font-weight: 600;
	border: 1px solid hsl(var(--foreground) / 0.25);
	background-color: transparent;
	color: hsl(var(--foreground) / 0.8);
}
.shop-tab:hover { border-color: hsl(var(--accent)); color: hsl(var(--accent)); }
.shop-tab.is-active {
	background-color: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	border-color: hsl(var(--primary));
	box-shadow: var(--shadow-soft);
}
.shop-empty { text-align: center; padding: 5rem 0; color: hsl(var(--foreground) / 0.55); }
.shop-grid, .related-grid {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 1.5rem;
	row-gap: 3rem;
	align-items: stretch;
}
@media (min-width: 640px) { .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem; }
@media (min-width: 1024px) { .related-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.shop-grid__item { min-width: 0; }
.shop-more { margin-top: 3.5rem; display: flex; justify-content: center; }

/* ---------- Product card ---------- */
.theme-product-card-wrap { height: 100%; }
.theme-product-card { position: relative; display: block; height: 100%; }
.theme-product-card > .theme-card-link { position: absolute; inset: 0; z-index: 1; pointer-events: auto; }
.theme-product-card *:not(.theme-card-link) { pointer-events: none; }
.theme-product-card .product-card__add { position: relative; z-index: 3; pointer-events: auto; }
.product-card {
	position: relative;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	border-radius: 0.75rem;
	border: 1px solid hsl(var(--border));
	background-color: hsl(var(--card));
	overflow: hidden;
	box-shadow: var(--shadow-soft);
	transition: all 500ms ease-out;
}
.theme-product-card:hover .product-card {
	transform: translateY(-0.5rem);
	border-color: hsl(var(--accent) / 0.6);
	box-shadow: var(--shadow-elevated);
}
.product-card__media { position: relative; aspect-ratio: 1 / 1; background-color: hsl(var(--linen)); overflow: hidden; }
.product-card__skeleton { position: absolute; inset: 0; }
.cover-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.cover-img--abs { position: absolute; inset: 0; }
.product-card-img { will-change: transform; }
.theme-product-card:hover .product-card-img { transform: scale(1.06); }
.product-card__shade {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to top, hsl(var(--foreground) / 0.55), transparent, transparent);
	opacity: 0;
	transition: opacity 500ms;
}
.theme-product-card:hover .product-card__shade { opacity: 1; }
.product-card__soldout {
	position: absolute;
	top: 0.75rem; right: 0.75rem;
	background-color: hsl(var(--destructive));
	color: hsl(var(--destructive-foreground));
	font-size: 14px;
	font-weight: 700;
	padding: 0.25rem 0.625rem;
	border-radius: 9999px;
}
.product-card__actions {
	position: absolute;
	left: 0.75rem; right: 0.75rem; bottom: 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	opacity: 0;
	transition: opacity 500ms ease-out;
}
.theme-product-card:hover .product-card__actions { opacity: 1; }
.product-card__quick {
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background-color: hsl(var(--background) / 0.9);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: hsl(var(--foreground));
	border: 1px solid hsl(var(--border));
	box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}
.product-card__quick-icon { width: 1rem; height: 1rem; }
.product-card__info { display: flex; flex-direction: column; flex: 1 1 0%; padding: 1.25rem; min-width: 0; }
.product-card__cat {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.24em;
	color: hsl(var(--accent));
	margin-bottom: 0.5rem;
	font-weight: 500;
}
.product-card__title {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: 1.25rem;
	line-height: 1.375;
	letter-spacing: -0.025em;
	color: hsl(var(--foreground));
	transition: color 300ms;
}
@media (min-width: 768px) { .product-card__title { font-size: 1.35rem; } }
.theme-product-card:hover .product-card__title { color: hsl(var(--primary)); }
.product-card__price { margin-top: auto; padding-top: 0.75rem; font-size: 18px; font-weight: 500; color: hsl(var(--primary)); }
.product-card__price del { opacity: 0.55; margin-right: 0.35rem; }
.product-card__price ins { text-decoration: none; }

/* ---------- Pre-contact ---------- */
.precontact {
	position: relative;
	min-height: 100vh;
	overflow: hidden;
	background-color: hsl(var(--background));
	display: flex;
	align-items: center;
}
.precontact__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, hsl(var(--hero-overlay) / 0.76) 0%, hsl(var(--hero-overlay) / 0.55) 50%, hsl(var(--hero-overlay) / 0.84) 100%);
}
.precontact__content {
	position: relative;
	z-index: 10;
	padding-top: 6rem;
	padding-bottom: 6rem;
	text-align: center;
	filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
}
@media (min-width: 768px) { .precontact__content { padding-top: 9rem; padding-bottom: 9rem; } }
.precontact__eyebrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	font-size: 14px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: hsl(var(--foreground));
	margin-bottom: 1.25rem;
	font-weight: 700;
}
.precontact__line { height: 1px; width: 2rem; background-color: rgb(255 255 255 / 0.6); }
.precontact__title {
	color: hsl(var(--foreground));
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin-left: auto;
	margin-right: auto;
	max-width: 56rem;
	font-size: clamp(2rem, 5.4vw, 3.8rem);
}
.precontact__text {
	margin: 1.5rem auto 0;
	max-width: 36rem;
	font-size: 16px;
	color: hsl(var(--foreground) / 0.9);
	line-height: 1.625;
}
.precontact__cta { margin-top: 2.25rem; text-shadow: none; }

/* ---------- Contact ---------- */
.contact-section { padding: 6rem 0 4rem; }
@media (min-width: 768px) { .contact-section { padding: 8rem 0 5rem; } }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: stretch; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.contact-left { display: flex; flex-direction: column; height: 100%; min-width: 0; }
.contact-intro { margin-top: 1.25rem; font-size: 16px; color: hsl(var(--foreground) / 0.8); line-height: 1.625; max-width: 28rem; }
.touchpoints { margin-top: 2.25rem; }
.touchpoints > li + li { margin-top: 1rem; }
.touchpoint-link { display: block; }
.touchpoint {
	display: flex;
	align-items: center;
	gap: 1rem;
	border-radius: var(--radius);
	border: 1px solid hsl(var(--border));
	background-color: hsl(var(--card));
	padding: 1rem;
	box-shadow: var(--shadow-soft);
	transition: all 400ms ease-out;
}
.touchpoint:hover { transform: translateY(-0.25rem); border-color: hsl(var(--accent) / 0.6); box-shadow: var(--shadow-elevated); }
.touchpoint:hover .icon-tile { transform: scale(1.1) rotate(6deg); }
.touchpoint__body { display: flex; flex-direction: column; text-align: left; min-width: 0; }
.touchpoint__label { font-size: 14px; letter-spacing: 0.2em; text-transform: uppercase; color: hsl(var(--foreground) / 0.65); font-weight: 700; }
.touchpoint__value {
	font-size: 15px;
	font-weight: 600;
	color: hsl(var(--foreground));
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: color 300ms;
}
.touchpoint:hover .touchpoint__value { color: hsl(var(--primary)); }
.contact-quote-wrap { margin-top: auto; padding-top: 2rem; }
.contact-quote {
	position: relative;
	border-radius: var(--radius);
	border: 1px solid hsl(var(--border));
	background-color: hsl(var(--secondary));
	padding: 2.25rem 1.5rem;
	text-align: center;
	overflow: hidden;
}
@media (min-width: 768px) { .contact-quote { padding: 2.75rem 2.5rem; } }
.contact-quote__bar { margin: 0 auto 1rem; display: block; height: 0.25rem; width: 3rem; border-radius: 9999px; background-color: hsl(var(--accent) / 0.8); }
.contact-quote__text {
	font-family: var(--font-display);
	color: hsl(var(--foreground));
	line-height: 1.3;
	font-size: 1.125rem;
	max-width: 28rem;
	margin: 0 auto;
}
@media (min-width: 768px) { .contact-quote__text { font-size: 1.25rem; } }
@media (min-width: 1024px) { .contact-quote__text { font-size: 1.5rem; } }
.contact-quote__caption { margin-top: 1.25rem; font-size: 14px; letter-spacing: 0.24em; text-transform: uppercase; color: hsl(var(--foreground) / 0.7); font-weight: 700; }
.contact-form {
	background-color: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	padding: 1.5rem;
	box-shadow: var(--shadow-soft);
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: all 500ms ease-out;
	min-width: 0;
}
@media (min-width: 768px) { .contact-form { padding: 2rem; } }
.contact-form:hover { box-shadow: var(--shadow-elevated); border-color: hsl(var(--primary) / 0.4); }
.contact-form > * + * { margin-top: 1rem; }
.contact-form__fields { flex: 1 1 0%; display: flex; flex-direction: column; }
.contact-form__fields > * + * { margin-top: 1rem; }
.contact-form__row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .contact-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.contact-form__message { display: flex; flex: 1 1 0%; flex-direction: column; }
.contact-form__footer { padding-top: 0.5rem; }
.field-label {
	display: block;
	font-size: 14px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: hsl(var(--foreground) / 0.7);
	margin-bottom: 0.5rem;
	font-weight: 700;
}
.field-input {
	width: 100%;
	height: 3rem;
	padding: 0 1rem;
	background-color: hsl(var(--background));
	border: 1px solid hsl(var(--border));
	border-radius: calc(var(--radius) - 4px);
	font-size: 15px;
	color: hsl(var(--foreground));
	transition: color 150ms, border-color 150ms;
	-webkit-appearance: none;
	appearance: none;
}
.field-input::placeholder { color: hsl(var(--foreground) / 0.55); }
.field-input:focus { outline: none; border-color: hsl(var(--primary)); }
.field-input--select { padding-right: 2.5rem; }
.field-input--textarea { flex: 1 1 0%; min-height: 140px; height: auto; padding-top: 0.75rem; padding-bottom: 0.75rem; resize: none; }
.select-wrap { position: relative; }
.select-wrap__icon {
	pointer-events: none;
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	height: 1rem;
	color: hsl(var(--foreground) / 0.7);
}
.select-wrap:hover .select-wrap__icon { transform: translateY(-50%); }
.contact-form.is-sending { opacity: 0.85; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid hsl(var(--foreground) / 0.1); background-color: hsl(var(--background)); }
.site-footer__inner { padding-top: 3.5rem; padding-bottom: 1.5rem; }
@media (min-width: 1024px) { .site-footer__inner { padding-top: 5rem; } }
.site-footer__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: start; }
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem; } }
.site-footer__col { display: flex; flex-direction: column; height: 100%; min-width: 0; }
.site-footer__brand { display: inline-flex; align-items: center; gap: 0.75rem; align-self: flex-start; }
.site-logo-img--footer {
	height: 6.19rem;
	max-width: 100%;
	width: auto;
	object-fit: contain;
	object-position: left;
	filter: brightness(0) invert(1);
	transition: transform 500ms ease-out;
}
@media (min-width: 1024px) { .site-logo-img--footer { height: 7.43rem; } }
.site-footer__brand:hover .site-logo-img--footer { transform: scale(1.05); }
.site-footer__tagline { margin-top: 1rem; font-size: 14px; color: hsl(var(--foreground) / 0.8); line-height: 1.625; max-width: 20rem; }
.site-footer__title { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.75rem; color: hsl(var(--foreground)); margin-bottom: 1rem; }
.footer-list > li + li { margin-top: 0.625rem; }
.footer-link {
	display: inline-block;
	font-size: 14px;
	color: hsl(var(--foreground) / 0.8);
	transition: all 300ms;
}
.footer-link:hover { color: hsl(var(--hot)); transform: translateX(0.25rem); }
.footer-contact { font-size: 14px; }
.footer-contact > li + li { margin-top: 0.75rem; }
.footer-contact__link, .footer-contact__text { display: inline-flex; align-items: center; gap: 0.5rem; color: hsl(var(--foreground) / 0.85); }
.footer-contact__link { transition: color 150ms; }
.footer-contact__link:hover { color: hsl(var(--hot)); }
.footer-contact__link--break { word-break: break-all; }
.footer-contact__icon { width: 1rem; height: 1rem; flex-shrink: 0; }
.site-footer__bottom {
	margin-top: 3.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgb(255 255 255 / 0.1);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.75rem;
}
@media (min-width: 640px) { .site-footer__bottom { flex-direction: row; align-items: center; } }
.site-footer__legal { font-size: 14px; color: hsl(var(--foreground) / 0.7); text-align: left; }
.site-footer__credit { font-size: 14px; color: hsl(var(--foreground) / 0.7); text-align: right; }
@media (min-width: 640px) { .site-footer__credit { margin-left: auto; } }
.site-footer__credit a { text-decoration: underline; }
.site-footer__credit a:hover { color: hsl(var(--hot)); }

/* ---------- Single product ---------- */
.product-page { padding-bottom: 0; }
.product-breadcrumb {
	padding: 1.5rem 0;
	font-size: 15px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: hsl(var(--foreground) / 0.55);
}
.product-breadcrumb a:hover { color: hsl(var(--primary)); }
.product-breadcrumb__sep { margin: 0 0.5rem; opacity: 0.5; }
.product-breadcrumb__current { color: hsl(var(--foreground)); }
.theme-product-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 5rem; 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 { grid-column: span 7 / span 7; position: sticky; top: 7rem; align-self: start; }
	.theme-product-info { grid-column: span 5 / span 5; }
}
.single-product .theme-product-gallery,
.single-product .theme-product-info { min-width: 0; max-width: 100%; }
.product-main { position: relative; aspect-ratio: 1 / 1; width: 100%; background-color: hsl(var(--linen)); border-radius: 0.75rem; overflow: hidden; margin-bottom: 1rem; }
.product-main-img { position: absolute; inset: 0; }
.theme-product-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.625rem; max-width: 100%; }
.theme-thumb {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background-color: hsl(var(--linen));
	border-radius: calc(var(--radius) - 4px);
	overflow: hidden;
	border: 2px solid transparent;
	padding: 0;
	transition: border-color 150ms;
}
.theme-thumb:hover { border-color: hsl(var(--foreground) / 0.2); }
.theme-thumb.is-active { border-color: hsl(var(--primary)); }
.theme-thumb img { position: absolute; inset: 0; }
.product-cat { font-size: 15px; letter-spacing: 0.28em; text-transform: uppercase; color: hsl(var(--primary)); margin-bottom: 0.75rem; font-weight: 500; }
.product-title {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: 1.875rem;
	line-height: 1.05;
	color: hsl(var(--foreground));
	margin-bottom: 1rem;
	font-style: normal;
}
@media (min-width: 768px) { .product-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .product-title { font-size: 2.6rem; } }
.product-price { font-size: 20px; font-weight: 500; color: hsl(var(--foreground) / 0.9); margin-bottom: 1.75rem; }
.product-price del { opacity: 0.55; margin-right: 0.35rem; }
.product-price ins { text-decoration: none; }
.product-description { font-size: 15px; line-height: 1.625; color: hsl(var(--foreground) / 0.75); margin-bottom: 2rem; }
.product-description > * + * { margin-top: 1rem; }
.product-qty { margin-bottom: 1.5rem; }
.field-caption { font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: hsl(var(--foreground) / 0.55); margin-bottom: 0.625rem; }
.theme-quantity-wrapper {
	display: inline-flex;
	align-items: center;
	border: 1px solid hsl(var(--foreground) / 0.2);
	border-radius: 9999px;
}
.theme-qty-minus, .theme-qty-plus { padding: 0.625rem 1rem; line-height: 1; }
.theme-qty-minus:hover, .theme-qty-plus:hover { color: hsl(var(--primary)); }
.theme-qty-icon { width: 0.875rem; height: 0.875rem; }
.theme-qty-input {
	width: 2.75rem;
	padding: 0.625rem 0;
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	border: 0;
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}
.theme-qty-input::-webkit-outer-spin-button,
.theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.theme-qty-input:focus { outline: none; }
.single-product .theme-add-to-cart-area {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0.75rem;
}
@media (min-width: 640px) { .single-product .theme-add-to-cart-area { flex-direction: row; } }
.single-product .single_add_to_cart_button { flex: 1 1 auto; min-width: 160px; }
.theme-buy-now { flex: 1 1 auto; min-width: 160px; }
.product-details { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid hsl(var(--foreground) / 0.1); }
.product-details .field-caption { margin-bottom: 1rem; }
.woocommerce-product-details__short-description ul > li {
	display: flex;
	align-items: flex-start;
	font-size: 15px;
	color: hsl(var(--foreground) / 0.75);
}
.woocommerce-product-details__short-description ul > li + li { margin-top: 0.625rem; }
.woocommerce-product-details__short-description ul > li::before {
	content: "";
	width: 0.25rem;
	height: 0.25rem;
	background-color: hsl(var(--primary));
	border-radius: 9999px;
	margin-top: 0.625rem;
	margin-right: 0.75rem;
	flex-shrink: 0;
}
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-variation-description,
.single-product .posted_in { overflow-wrap: break-word; word-break: break-word; }
.product-features {
	margin-top: 2rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	padding-top: 1.5rem;
	border-top: 1px solid hsl(var(--foreground) / 0.1);
}
.product-feature { text-align: center; }
.product-feature__icon {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0 auto 0.5rem;
	color: hsl(var(--accent));
	transition: transform 300ms ease-out;
}
.product-feature:hover .product-feature__icon { transform: scale(1.1) rotate(6deg); }
.product-feature__label { font-size: 14px; letter-spacing: 0.15em; text-transform: uppercase; color: hsl(var(--foreground) / 0.6); }
.related-products { padding: 5rem 0; border-top: 1px solid hsl(var(--foreground) / 0.1); }
.related-products__head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 2.5rem; }
.related-products__title { font-family: var(--font-display); font-weight: 700; font-size: 1.875rem; line-height: 2.25rem; color: hsl(var(--foreground)); }
@media (min-width: 768px) { .related-products__title { font-size: 2.25rem; line-height: 2.5rem; } }
.related-products__all {
	display: none;
	align-items: center;
	gap: 0.375rem;
	font-size: 15px;
	font-weight: 500;
	color: hsl(var(--foreground) / 0.7);
}
@media (min-width: 640px) { .related-products__all { display: inline-flex; } }
.related-products__all:hover { color: hsl(var(--primary)); }
.related-products__arrow { width: 1rem; height: 1rem; }

/* Variable products: pills drive the hidden native select */
.theme-attr-select-hidden { display: none !important; }
.single-product .variations 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; padding-bottom: 1rem; }
.single-product .variations label { font-family: var(--font-body); font-weight: 600; font-style: normal; font-size: 15px; }
.theme-attr-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.theme-attr-pill {
	padding: 0 1rem;
	height: 2.25rem;
	border-radius: 9999px;
	border: 1px solid hsl(var(--foreground) / 0.25);
	font-size: 15px;
	font-weight: 600;
}
.theme-attr-pill:hover { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.theme-attr-pill.is-selected { background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary)); }

/* ---------- Add to cart overrides (beat WooCommerce .button) ---------- */
.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: var(--btn-text-transform) !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease !important;
	line-height: 1.5 !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;
}
.single-product .single_add_to_cart_button { text-transform: none !important; }

/* Card compact add button (scoped, after the global rules) */
.theme-product-card .add_to_cart_button.ajax_add_to_cart,
.theme-product-card a.add_to_cart_button {
	flex: 1 1 0% !important;
	min-height: 0 !important;
	height: 2.5rem !important;
	padding: 0 !important;
	gap: 0.5rem !important;
	border-radius: 9999px !important;
	background-color: hsl(var(--accent)) !important;
	color: hsl(var(--accent-foreground)) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.025em !important;
	box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
	transition: all 300ms !important;
}
.theme-product-card .add_to_cart_button.ajax_add_to_cart:hover,
.theme-product-card a.add_to_cart_button:hover { opacity: 1 !important; background-color: hsl(var(--accent) / 0.9) !important; }
.product-card__add-icon { width: 0.875rem; height: 0.875rem; }

.ajax_add_to_cart.theme-btn-loading {
	opacity: 0.6 !important;
	pointer-events: none !important;
	cursor: wait !important;
}
.single-product .single_add_to_cart_button.loading::after,
.ajax_add_to_cart.loading::after,
.ajax_add_to_cart.added::after { display: none !important; }

/* View cart link injected after AJAX add is not part of the design */
.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; }

/* ---------- Cart drawer ---------- */
#theme-cart-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background-color: hsl(var(--foreground) / 0.6);
	z-index: 50;
	opacity: 0;
	transition: opacity 0.3s ease-out;
}
body.cart-open #theme-cart-overlay {
	display: block;
	opacity: 1;
}
#theme-cart-drawer {
	display: none;
	position: fixed;
	right: 0;
	top: 0;
	height: 100%;
	width: 100%;
	max-width: 28rem;
	background-color: hsl(var(--ivory));
	z-index: 50;
	box-shadow: var(--shadow-elevated);
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
body.cart-open #theme-cart-drawer {
	display: flex;
	transform: translateX(0);
}
#theme-cart-drawer.is-updating { opacity: 0.85; pointer-events: none; }
.cart-drawer__header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid hsl(var(--foreground) / 0.1); }
.cart-drawer__title { font-family: var(--font-display); font-size: 1.5rem; line-height: 2rem; color: hsl(var(--foreground)); }
.cart-drawer__close { padding: 0.375rem; border-radius: 9999px; }
.cart-drawer__close:hover { background-color: hsl(var(--foreground) / 0.06); }
.cart-drawer__close-icon { width: 1.25rem; height: 1.25rem; }
.cart-drawer__empty { flex: 1 1 0%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; text-align: center; }
.cart-drawer__empty-icon { width: 3rem; height: 3rem; color: hsl(var(--foreground) / 0.3); margin-bottom: 1rem; }
.cart-drawer__empty-text { color: hsl(var(--foreground) / 0.65); margin-bottom: 1.5rem; font-size: 15px; }
.cart-drawer__items { flex: 1 1 0%; overflow: auto; padding: 1.5rem; }
.cart-drawer__items > * + * { margin-top: 1.25rem; }
.cart-item { display: flex; gap: 1rem; }
.cart-item__thumb { display: block; width: 5rem; height: 6rem; background-color: hsl(var(--bone)); border-radius: calc(var(--radius) - 4px); overflow: hidden; flex-shrink: 0; }
.cart-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__body { flex: 1 1 0%; min-width: 0; }
.cart-item__name { font-size: 15px; font-weight: 500; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-item__name:hover { color: hsl(var(--primary)); }
.cart-item__meta { font-size: 14px; color: hsl(var(--foreground) / 0.6); }
.cart-item__price { font-size: 15px; color: hsl(var(--foreground) / 0.6); margin-top: 0.125rem; }
.cart-item__controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; }
.cart-item__qty-btn { padding: 0.25rem; border-radius: 0.25rem; line-height: 1; }
.cart-item__qty-btn:hover { background-color: hsl(var(--bone)); }
.cart-item__qty-icon { width: 0.75rem; height: 0.75rem; }
.cart-item__qty { font-size: 15px; width: 1.5rem; text-align: center; }
.cart-item__remove { margin-left: auto; font-size: 15px; color: hsl(var(--foreground) / 0.55); }
.cart-item__remove:hover { color: hsl(var(--destructive)); }
.cart-drawer__footer { padding: 1.5rem; border-top: 1px solid hsl(var(--foreground) / 0.1); background-color: hsl(var(--linen) / 0.4); }
.cart-drawer__footer > * + * { margin-top: 1rem; }
.cart-drawer__subtotal { display: flex; justify-content: space-between; font-size: 15px; }
.cart-drawer__subtotal-label { color: hsl(var(--foreground) / 0.65); }
.cart-drawer__subtotal-value { font-weight: 500; }
.cart-drawer__clear svg { margin-right: 0.5rem; }
.cart-drawer__clear-icon { width: 1rem; height: 1rem; }
#theme-cart-drawer .woocommerce-message { display: none; }

/* ---------- Generic pages ---------- */
.page-wrap { padding-top: 2.5rem; padding-bottom: 4rem; min-height: 70vh; }
.page-back { display: inline-flex; align-items: center; font-size: 15px; color: hsl(var(--foreground) / 0.65); margin-bottom: 1.5rem; }
.page-back:hover { color: hsl(var(--primary)); }
.page-back__icon { width: 1rem; height: 1rem; margin-right: 0.5rem; }
.page-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 2.5rem; margin-bottom: 2.5rem; color: hsl(var(--foreground)); }
@media (min-width: 768px) { .page-title { font-size: 3rem; line-height: 1; } }
.entry-content { max-width: 100%; }
.entry-content > * + * { margin-top: 1rem; }
.entry-content a:not(.btn):not(.button) { text-decoration: underline; }

/* ---------- 404 ---------- */
.not-found { display: flex; min-height: 100vh; align-items: center; justify-content: center; background-color: hsl(var(--muted)); padding-top: 0; }
.not-found__box { text-align: center; }
.not-found__title { margin-bottom: 1rem; font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; }
.not-found__text { margin-bottom: 1rem; font-size: 1.25rem; line-height: 1.75rem; color: hsl(var(--muted-foreground)); }
.not-found__link { color: hsl(var(--primary)); text-decoration: underline; }
.not-found__link:hover { color: hsl(var(--primary) / 0.9); }

/* ---------- WooCommerce notices (themed, shown where no drawer feedback exists) ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	background-color: hsl(var(--card));
	color: hsl(var(--foreground));
	font-size: 15px;
}
.woocommerce-error { border-color: hsl(var(--destructive)); }
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 1rem; text-decoration: underline; }

/* ---------- Checkout block (WooCommerce Blocks) ---------- */
body.woocommerce-checkout:not(.theme-thankyou-page) {
	padding-top: 30px;
}
body.woocommerce-checkout .theme-checkout-main {
	padding-bottom: 0;
}
.theme-checkout-shell {
	width: 100%;
	max-width: none;
	margin-inline: auto;
	padding-block: 0.5rem 4rem;
	padding-inline: 1.25rem;
	box-sizing: border-box;
}
@media (min-width: 640px) { .theme-checkout-shell { padding-inline: 1.5rem; } }
@media (min-width: 1024px) { .theme-checkout-shell { padding-inline: 2.5rem; } }
body.woocommerce-checkout .theme-checkout-main > .container-wide,
body.woocommerce-checkout .theme-checkout-shell,
body.woocommerce-checkout .theme-checkout-main .entry-content {
	max-width: none;
	width: 100%;
}
.theme-checkout-header {
	max-width: var(--checkout-max-width);
	width: 100%;
	margin-inline: auto;
	margin-bottom: 0;
	box-sizing: border-box;
}
.checkout-continue-link { margin-bottom: 1rem; }
.theme-checkout-title {
	font-family: var(--font-display);
	font-size: 2.25rem;
	line-height: 2.5rem;
	margin: 0;
	color: hsl(var(--foreground));
}
@media (min-width: 768px) {
	.theme-checkout-title { font-size: 3rem; line-height: 1; }
}
.theme-checkout-intro {
	margin: 0.75rem 0 0;
	font-size: 15px;
	color: hsl(var(--foreground) / 0.65);
}
body.woocommerce-checkout .theme-checkout-main .entry-content,
.entry-content:has(.wc-block-checkout) {
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .theme-checkout-main .entry-content > .wc-block-checkout,
body.woocommerce-checkout .theme-checkout-main .entry-content > .wp-block-woocommerce-checkout,
.entry-content > .wc-block-checkout:first-child,
.entry-content > .wp-block-woocommerce-checkout:first-child {
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
.entry-content .wc-block-checkout,
.entry-content .wp-block-woocommerce-checkout {
	max-width: var(--checkout-max-width);
	width: 100%;
	min-width: 0;
	margin-inline: auto;
	margin-top: 0;
	padding-top: 0;
	box-sizing: border-box;
	font-family: var(--font-body);
	color: hsl(var(--foreground));
}
body.woocommerce-checkout .wc-block-checkout.alignwide,
.entry-content .wc-block-checkout.alignwide {
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-components-main,
.entry-content .wc-block-checkout__main,
.entry-content .wc-block-components-main {
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout,
.entry-content .wc-block-checkout .wc-block-components-sidebar-layout,
.entry-content .wc-block-checkout .wc-block-checkout-sidebar-layout {
	margin-top: 0;
	padding-top: 0;
}
body.woocommerce-checkout .wc-block-checkout > .wc-block-components-notices:empty,
.entry-content .wc-block-checkout > .wc-block-components-notices:empty {
	display: none;
	margin: 0;
	padding: 0;
}
body.woocommerce-checkout .wc-block-components-notices,
.entry-content .wc-block-components-notices {
	max-width: var(--checkout-max-width);
	width: 100%;
	margin-inline: auto;
	margin-top: 0;
	padding-top: 0;
	margin-bottom: var(--checkout-gap);
	box-sizing: border-box;
}
body.woocommerce-checkout .wc-block-components-notice-banner,
.entry-content .wc-block-components-notice-banner {
	border-radius: var(--radius);
	font-family: var(--font-body);
}
@media (min-width: 768px) {
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout,
	.entry-content .wc-block-checkout .wc-block-checkout-sidebar-layout {
		display: grid !important;
		grid-template-columns: 1fr minmax(360px, 400px);
		gap: var(--checkout-gap);
		align-items: start;
		flex-direction: unset;
		flex-wrap: nowrap;
		margin: 0;
	}
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-checkout__main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-components-main,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-checkout__sidebar,
	body.woocommerce-checkout .wc-block-checkout .wc-block-checkout-sidebar-layout .wc-block-components-sidebar,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__main,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-main,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-checkout__sidebar,
	.entry-content .wc-block-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar {
		width: auto !important;
		max-width: 100%;
		min-width: 0;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
	}
	body.woocommerce-checkout .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar),
	.entry-content .wc-block-checkout:has(> .wc-block-checkout__main):has(> .wc-block-checkout__sidebar) {
		display: grid;
		grid-template-columns: 1fr minmax(360px, 400px);
		gap: var(--checkout-gap);
		align-items: start;
	}
	body.woocommerce-checkout .wc-block-checkout > .wc-block-components-notices,
	.entry-content .wc-block-checkout > .wc-block-components-notices {
		grid-column: 1 / -1;
	}
	body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-notice-banner,
	body.woocommerce-checkout .wc-block-checkout-sidebar-layout .wc-block-components-notice-banner,
	.entry-content .wc-block-components-sidebar-layout .wc-block-components-notice-banner {
		grid-column: 1 / -1;
	}
}
body.woocommerce-checkout .wc-block-checkout__sidebar,
body.woocommerce-checkout .wc-block-components-sidebar,
body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block,
.entry-content .wc-block-checkout__sidebar,
.entry-content .wc-block-components-sidebar,
.entry-content .wp-block-woocommerce-checkout-totals-block {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
.entry-content .wp-block-woocommerce-checkout-order-summary-block {
	width: 100%;
	background-color: hsl(var(--linen));
	border: 1px solid hsl(var(--foreground) / 0.1);
	border-radius: 1rem;
	padding: 1.75rem;
	box-sizing: border-box;
}
body.woocommerce-checkout .wc-block-checkout-empty,
.entry-content .wc-block-checkout-empty {
	margin-inline: auto;
	max-width: 36rem;
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkout-step__title,
.entry-content .wc-block-components-title,
.entry-content .wc-block-components-checkout-step__title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.5rem;
	color: hsl(var(--foreground));
}
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 .wc-block-components-combobox input,
.entry-content .wc-block-components-text-input input,
.entry-content .wc-block-components-select select,
.entry-content .wc-block-components-textarea textarea,
.entry-content .wc-block-components-combobox input {
	width: 100% !important;
	max-width: none !important;
	background-color: hsl(var(--ivory));
	border: 1px solid hsl(var(--foreground) / 0.15);
	border-radius: calc(var(--radius) - 4px);
	font-family: var(--font-body);
	font-size: 15px;
	color: hsl(var(--foreground));
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus,
body.woocommerce-checkout .wc-block-components-textarea textarea:focus,
.entry-content .wc-block-components-text-input input:focus,
.entry-content .wc-block-components-select select:focus,
.entry-content .wc-block-components-textarea textarea:focus {
	outline: none;
	border-color: hsl(var(--primary));
	box-shadow: none;
}
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label,
.entry-content .wc-block-components-text-input label,
.entry-content .wc-block-components-select label {
	color: hsl(var(--foreground) / 0.55);
	font-family: var(--font-body);
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
.entry-content .wc-block-components-checkout-place-order-button,
.entry-content .wc-block-components-button:not(.is-link) {
	background-color: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	border: 1px solid hsl(var(--primary));
	border-radius: 9999px;
	min-height: 3rem;
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 500;
	text-transform: none;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
.entry-content .wc-block-components-checkout-place-order-button:hover {
	background-color: hsl(var(--primary) / 0.9);
}
body.woocommerce-checkout .wc-block-cart-items,
.entry-content .wc-block-cart-items {
	font-family: var(--font-body);
}
body.woocommerce-checkout .wc-block-components-order-summary__content,
body.woocommerce-checkout .wc-block-components-totals-wrapper,
.entry-content .wc-block-components-order-summary__content,
.entry-content .wc-block-components-totals-wrapper {
	border-color: hsl(var(--foreground) / 0.1);
}
body.woocommerce-checkout .wc-block-components-product-name,
.entry-content .wc-block-components-product-name {
	font-weight: 500;
	color: hsl(var(--foreground));
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.entry-content .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 500;
}

/* Cart page */
body.theme-cart-page .wc-block-cart { font-family: var(--font-body); color: hsl(var(--foreground)); }
body.theme-cart-page .wc-block-cart__submit-button { border-radius: 9999px; background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); font-weight: 500; }

/* Thank you page */
body.theme-thankyou-page { overflow-x: clip; }
body.theme-thankyou-page .woocommerce-order { font-size: 15px; }
body.theme-thankyou-page .woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 0 0 2rem; }
body.theme-thankyou-page .woocommerce-order-overview li { font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; color: hsl(var(--foreground) / 0.65); }
body.theme-thankyou-page .woocommerce-order-overview li strong { display: block; font-size: 15px; letter-spacing: 0; text-transform: none; color: hsl(var(--foreground)); }
body.theme-thankyou-page .woocommerce-customer-details { display: flex; flex-direction: column; gap: 1.5rem; }
body.theme-thankyou-page .woocommerce-customer-details address { max-width: 480px; overflow-wrap: break-word; font-style: normal; }
body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title { font-family: var(--font-display); font-size: 1.5rem; padding: 0 0 1rem 0; }
body.theme-thankyou-page .woocommerce-order-details table { width: 100%; table-layout: fixed; }
body.theme-thankyou-page .woocommerce-order-details th,
body.theme-thankyou-page .woocommerce-order-details td { padding: 0.75rem 0; border-bottom: 1px solid hsl(var(--foreground) / 0.1); 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-order-details td.product-total { text-align: right; }
