/* Laurie Soko Studio — theme styles. Colours are tokens re-emitted from the Customizer (see functions.php). */

:root {
	--color-background: #ffffff;
	--color-foreground: #2b2b2b;
	--color-primary: #2b2b2b;
	--color-secondary: #f5f5f5;
	--color-muted-foreground: #5c5c5c;
	--color-accent: #8d6d49;
	--color-border: #dbdbdb;
	--color-gold: #c1ab90;
	--color-button-text: var(--color-background);

	--radius: 1rem;
	--font-display: 'Playfair Display', serif;
	--font-body: 'Jost', sans-serif;
	--font-script: 'Playwrite CU Guides', cursive;

	--shadow-soft: 0 4px 20px -4px hsl(0 0% 10% / 0.08);
	--shadow-elevated: 0 8px 40px -8px hsl(0 0% 10% / 0.16);
	--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
	--ease-motion: cubic-bezier(0.25, 0.4, 0.25, 1);

	--logo-base: 64px;
	--logo-height: calc(var(--logo-base) * 0.75);
	--header-height: 4rem;

	--btn-radius: calc(var(--radius) - 2px);
	--btn-height: 2.75rem;
	--btn-padding: 0 2rem;
	--btn-font-size: 0.875rem;
	--btn-font-weight: 500;
	--btn-letter-spacing: normal;
	--btn-text-transform: none;
	--card-radius: var(--radius);
	--section-padding: 2rem;
	--color-surface: var(--color-secondary);
}

@media (min-width: 640px) {
	:root {
		--logo-height: var(--logo-base);
		--header-height: 4.5rem;
	}
}

/* ---------- Reset (preflight parity) ---------- */
*,
::before,
::after {
	box-sizing: border-box;
	border-width: 0;
	border-style: solid;
	border-color: var(--color-border);
}

html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	tab-size: 4;
	font-family: var(--font-body);
	-webkit-tap-highlight-color: transparent;
}

html,
body {
	overflow-x: hidden;
	max-width: 100%;
}

body {
	margin: 0;
	line-height: inherit;
	font-family: var(--font-body);
	background-color: var(--color-background);
	color: var(--color-foreground);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-size: inherit;
	font-weight: inherit;
	margin: 0;
}

p, figure, blockquote, dl, dd, ul, ol { margin: 0; }
ul, ol { list-style: none; 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;
	letter-spacing: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
}
button, [type='button'], [type='submit'] {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
	cursor: pointer;
	text-transform: none;
}
:disabled { cursor: default; }
table { border-collapse: collapse; border-color: inherit; text-indent: 0; }
img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
img:where(:not(.cover-img):not(.contain-img)), video:where(:not(.cover-img)) { max-width: 100%; height: auto; }

.cover-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.contain-img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

.container-wide {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	max-width: 80rem;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}
@media (min-width: 1024px) {
	.container-wide { padding-left: 2rem; padding-right: 2rem; }
}

.italic { font-style: italic; }
.text-primary { color: var(--color-primary); }
.text-accent { color: var(--color-accent); }
.min-w-0 { min-width: 0; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Icons */
.lucide { flex-shrink: 0; }
.icon-3 { width: 0.75rem; height: 0.75rem; }
.icon-3-5 { width: 0.875rem; height: 0.875rem; }
.icon-4 { width: 1rem; height: 1rem; }
.icon-5 { width: 1.25rem; height: 1.25rem; }
.icon-6 { width: 1.5rem; height: 1.5rem; }
.icon-8 { width: 2rem; height: 2rem; }

/* Global interaction polish */
a, button {
	transition: color 0.25s var(--transition-smooth),
		background-color 0.3s var(--transition-smooth),
		border-color 0.3s var(--transition-smooth),
		opacity 0.25s var(--transition-smooth),
		transform 0.3s var(--transition-smooth),
		box-shadow 0.3s var(--transition-smooth);
}
button:not(:disabled):active { transform: translateY(1px) scale(0.99); }

/* ---------- Keyframes / animation utilities ---------- */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
@keyframes cardEnter { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
@keyframes thanksIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }

.animate-fade-in { animation: fadeIn 0.6s var(--transition-smooth) forwards; }
.animate-slide-up { animation: slideUp 0.6s var(--transition-smooth) forwards; }
.animate-slide-down { animation: slideDown 0.5s var(--transition-smooth) forwards; }
.animate-scale-in { animation: scaleIn 0.5s var(--transition-smooth) forwards; }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	white-space: nowrap;
	border-radius: calc(var(--radius) - 2px);
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-weight: 500;
	border: 1px solid transparent;
	text-decoration: none;
	cursor: pointer;
	text-transform: none;
}
.btn svg { width: 1rem; height: 1rem; pointer-events: none; flex-shrink: 0; }
.btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.btn:disabled { pointer-events: none; opacity: 0.5; }
.btn-lg { height: 2.75rem; padding: 0 2rem; }
.btn-default-size { height: 2.5rem; padding: 0.5rem 1rem; }
.btn-pill { border-radius: 9999px; padding-left: 1.75rem; padding-right: 1.75rem; }
.btn-block { width: 100%; }
.btn-primary { background-color: var(--color-primary); color: var(--color-background); border-color: transparent; }
.btn-primary:hover { background-color: color-mix(in srgb, var(--color-primary) 90%, transparent); }
.btn-outline { border-color: var(--color-border); background-color: var(--color-background); color: var(--color-foreground); }
.btn-outline:hover { background-color: var(--color-accent); color: #ffffff; }
.btn-accent { background-color: var(--color-accent); color: #ffffff; border-color: transparent; }
.btn-accent:hover { background-color: color-mix(in srgb, var(--color-accent) 90%, transparent); }
.btn-outline-light {
	border-color: color-mix(in srgb, var(--color-background) 80%, transparent);
	color: var(--color-background);
	background-color: transparent;
}
.btn-outline-light:hover { background-color: color-mix(in srgb, var(--color-background) 15%, transparent); color: var(--color-background); }
.btn-outline-dark {
	border-color: color-mix(in srgb, var(--color-foreground) 20%, transparent);
	background-color: transparent;
	color: var(--color-foreground);
}
.btn-outline-dark:hover { background-color: color-mix(in srgb, var(--color-foreground) 5%, transparent); color: #ffffff; }
.btn-light { background-color: var(--color-background); color: var(--color-foreground); }
.btn-light:hover { background-color: color-mix(in srgb, var(--color-background) 90%, transparent); }
.arrow-nudge { margin-left: 0.5rem; transition: transform 0.3s var(--transition-smooth); }
.btn:hover .arrow-nudge { transform: translateX(0.25rem); }
.send-nudge { margin-left: 0.5rem; transition: transform 0.3s var(--transition-smooth); }
.btn:hover .send-nudge { transform: translate(0.125rem, -0.125rem); }
.btn-icon-left { width: 1rem; height: 1rem; margin-right: 0.5rem; display: inline-block; vertical-align: middle; }

/* ---------- Header ---------- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent;
	color: var(--color-background);
	animation: slideDown 0.5s var(--transition-smooth) forwards;
	transition: all 0.3s;
}
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
.site-header.is-solid {
	background-color: color-mix(in srgb, var(--color-background) 95%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--color-border);
	box-shadow: 0 4px 20px -8px hsl(340 40% 25% / 0.12);
	color: var(--color-foreground);
}
.site-header__inner { width: 100%; max-width: 80rem; margin: 0 auto; }
.site-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	height: 4rem;
	padding: 0 1.5rem;
	transition: color 0.3s;
}
@media (min-width: 640px) { .site-nav { gap: 1.5rem; height: 72px; } }
@media (min-width: 1024px) { .site-nav { padding: 0 2rem; } }
.site-brand { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; }
.site-logo-img { height: var(--logo-height) !important; width: auto !important; display: block; object-fit: contain; }
.site-logo-text { line-height: var(--logo-height); display: block; font-family: var(--font-display); }
.site-header.is-solid .site-logo-img { filter: invert(1); }
.nav-desktop { display: none; align-items: center; margin-left: auto; }
@media (min-width: 768px) { .nav-desktop { display: flex; } }
.theme-nav-list { display: flex; align-items: center; gap: 1.5rem; }
.nav-link { font-size: 0.875rem; line-height: 1.25rem; font-family: var(--font-body); color: var(--color-background); transition: color 0.3s; background: none; border: 0; padding: 0; }
.nav-link:hover { color: color-mix(in srgb, var(--color-background) 75%, transparent); }
.site-header.is-solid .nav-link { color: var(--color-foreground); }
.site-header.is-solid .nav-link:hover { color: var(--color-primary); }
.nav-actions { display: flex; align-items: center; gap: 0.25rem; flex-shrink: 0; }
.icon-btn {
	position: relative;
	padding: 0.625rem;
	border-radius: 9999px;
	border: 0;
	color: var(--color-background);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.icon-btn:hover { background-color: color-mix(in srgb, var(--color-background) 15%, transparent); }
.site-header.is-solid .icon-btn { color: var(--color-foreground); }
.site-header.is-solid .icon-btn:hover { background-color: color-mix(in srgb, var(--color-secondary) 70%, transparent); }
.theme-cart-count {
	position: absolute;
	top: 0.125rem;
	right: 0.125rem;
	width: 1rem;
	height: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	font-weight: 500;
	background-color: var(--color-primary);
	color: var(--color-background);
	border-radius: 9999px;
	line-height: 1;
}
.theme-cart-count:empty { display: none; }
.menu-toggle { display: inline-flex; }
@media (min-width: 768px) { .menu-toggle { display: none; } }
.menu-toggle__close { display: none; color: var(--color-foreground); }
.menu-toggle.is-open .menu-toggle__open { display: none; }
.menu-toggle.is-open .menu-toggle__close { display: inline-flex; }
.nav-mobile {
	border-top: 1px solid var(--color-border);
	padding: 1rem 1.5rem;
	animation: fadeIn 0.6s var(--transition-smooth) forwards;
}
.nav-mobile[hidden] { display: none; }
@media (min-width: 768px) { .nav-mobile { display: none !important; } }
.theme-nav-list--mobile { flex-direction: column; align-items: stretch; gap: 0.75rem; max-width: 80rem; margin: 0 auto; width: 100%; }
.theme-nav-list--mobile .nav-link { display: block; text-align: left; padding: 0.375rem 0; color: var(--color-foreground); }
.theme-nav-list--mobile .nav-link:hover { color: var(--color-primary); }

/* ---------- Layout shell ---------- */
.site-main { display: block; }
body.theme-no-hero .site-main { padding-top: 6rem; }
@media (min-width: 1024px) { body.theme-no-hero .site-main { padding-top: 7rem; } }
.site-main--home { padding-top: 0; }
.page-wrap { padding-top: 2.5rem; padding-bottom: 4rem; min-height: 60vh; }
.page-title { font-family: var(--font-display); font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .page-title { font-size: 2.25rem; line-height: 2.5rem; } }

.not-found, body.theme-no-hero .site-main.not-found {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-secondary);
	padding-top: 0;
}
.not-found__box { text-align: center; }
.not-found__code { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; margin-bottom: 1rem; }
.not-found__text { font-size: 1.25rem; line-height: 1.75rem; color: var(--color-muted-foreground); margin-bottom: 1rem; }
.not-found__link { color: var(--color-primary); text-decoration: underline; }
.not-found__link:hover { color: color-mix(in srgb, var(--color-primary) 90%, transparent); }

/* ---------- Decorative blobs ---------- */
.blob { position: absolute; pointer-events: none; border-radius: 9999px; filter: blur(64px); }
.blob--about-1 { top: -6rem; left: -6rem; width: 28rem; height: 28rem; background: color-mix(in srgb, var(--color-primary) 10%, transparent); }
.blob--about-2 { bottom: -8rem; right: -5rem; width: 32rem; height: 32rem; background: color-mix(in srgb, var(--color-accent) 10%, transparent); }
.blob--faq { top: -5rem; right: -5rem; width: 24rem; height: 24rem; background: color-mix(in srgb, var(--color-accent) 10%, transparent); }
.blob--contact-1 { top: -8rem; left: -8rem; width: 24rem; height: 24rem; background: color-mix(in srgb, var(--color-primary) 10%, transparent); }
.blob--contact-2 { bottom: -8rem; right: -8rem; width: 28rem; height: 28rem; background: color-mix(in srgb, var(--color-accent) 15%, transparent); }

/* Eyebrows (script font) */
.eyebrow { font-family: var(--font-script); font-size: 1.5rem; line-height: 1; color: var(--color-primary); }
@media (min-width: 768px) { .eyebrow { font-size: 1.875rem; } }
.eyebrow--block { display: block; }
.eyebrow--line { display: inline-flex; align-items: center; gap: 0.75rem; }
.eyebrow__rule { width: 2rem; height: 1px; background: var(--color-primary); display: inline-block; }

/* ---------- Hero ---------- */
.hero { position: relative; width: 100%; height: 100vh; display: flex; flex-direction: column; }
.hero__media { position: relative; width: 100%; flex: 1; overflow: hidden; background: var(--color-secondary); min-height: 0; }
.hero__parallax { position: absolute; inset: 0; transform-origin: center; will-change: transform; }
.hero-slide { opacity: 0; transform: scale(1.05); transition: opacity 1.4s var(--ease-motion); }
.hero-slide.is-active { opacity: 1; transform: scale(1); transition: opacity 1.4s var(--ease-motion), transform 6s var(--ease-motion); }
.hero-slide.is-leaving { opacity: 0; transform: scale(1); transition: opacity 1.4s var(--ease-motion); }
.hero__shade {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to bottom right,
		color-mix(in srgb, var(--color-foreground) 55%, transparent),
		color-mix(in srgb, var(--color-foreground) 40%, transparent),
		color-mix(in srgb, var(--color-foreground) 80%, transparent));
}
.hero__layer { position: relative; z-index: 10; display: flex; height: 100%; }
.hero__content {
	width: 100%;
	max-width: 80rem;
	margin: 0 auto;
	padding: 3.5rem 1.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
@media (min-width: 1024px) { .hero__content { padding-left: 2rem; padding-right: 2rem; } }
.hero__tagline { font-family: var(--font-script); font-size: 1.875rem; line-height: 1; color: var(--color-background); }
.hero__title {
	font-family: var(--font-display);
	font-size: 3.75rem;
	line-height: 1.02;
	color: var(--color-background);
	margin-top: 1.25rem;
	filter: drop-shadow(0 2px 24px rgba(0, 0, 0, 0.5));
}
.hero__title-accent {
	background-image: linear-gradient(to right, hsl(33, 30%, 82%), hsl(33, 28%, 72%), hsl(32, 30%, 62%));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.hero__text {
	margin-top: 1.5rem;
	max-width: 42rem;
	font-size: 1rem;
	line-height: 1.625;
	font-family: var(--font-body);
	color: color-mix(in srgb, var(--color-background) 90%, transparent);
}
.hero__actions { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }
@media (min-width: 640px) {
	.hero__tagline { font-size: 2.25rem; }
	.hero__title { font-size: 4.5rem; }
	.hero__text { margin-top: 1.75rem; font-size: 1.125rem; line-height: 1.625; }
	.hero__actions { margin-top: 2.25rem; }
}
@media (min-width: 1024px) {
	.hero__tagline { font-size: 3rem; }
	.hero__title { font-size: 6rem; }
}
@media (min-width: 1280px) { .hero__title { font-size: 7rem; } }

/* ---------- Offerings ---------- */
.offerings-section { background: var(--color-background); scroll-margin-top: 6rem; }
.offerings-section__inner { padding-top: 4rem; padding-bottom: 4rem; }
.offerings-head { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: start; margin-bottom: 4rem; }
.offerings-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.05; letter-spacing: -0.025em; }
.offerings-text { color: var(--color-muted-foreground); font-family: var(--font-body); line-height: 1.625; font-size: 1rem; max-width: 36rem; }
.pillar-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; padding-top: 2rem; }
.pillar {
	position: relative;
	background: var(--color-background);
	border: 1px solid var(--color-border);
	padding: 3rem 2rem 2rem;
	transition: all 0.5s;
}
.pillar:hover { transform: translateY(-0.5rem); box-shadow: 20px 20px 60px -15px hsl(340 30% 15% / 0.12); }
.pillar--0, .pillar--2 { border-top-right-radius: 60px; border-bottom-left-radius: 60px; }
.pillar--1, .pillar--3 { border-top-left-radius: 60px; border-bottom-right-radius: 60px; }
.pillar__badge {
	position: absolute;
	top: -1rem;
	left: -1rem;
	width: 4rem;
	height: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	transition: transform 0.5s;
}
.pillar--0 .pillar__badge { background: var(--color-accent); color: #fff; transform: rotate(-12deg); }
.pillar--1 .pillar__badge { background: var(--color-primary); color: var(--color-background); transform: rotate(8deg); }
.pillar--2 .pillar__badge { background: var(--color-accent); color: #fff; transform: rotate(-5deg); }
.pillar--3 .pillar__badge { background: var(--color-primary); color: var(--color-background); transform: rotate(15deg); }
.pillar:hover .pillar__badge { transform: rotate(0deg) scale(1.1); }
.pillar__body > * + * { margin-top: 1.5rem; }
.pillar__title { font-family: var(--font-display); font-size: 1.875rem; line-height: 1; color: var(--color-foreground); }
.pillar--0 .pillar__title, .pillar--2 .pillar__title { font-style: italic; }
.pillar__desc { font-size: 0.875rem; line-height: 1.625; color: var(--color-muted-foreground); font-family: var(--font-body); }
.pillar__more { padding-top: 0.5rem; }
.pillar__explore { display: inline-flex; align-items: center; font-size: 0.75rem; line-height: 1rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-accent); transition: all 0.3s; }
.pillar:hover .pillar__explore { gap: 0.75rem; }
.pillar__line { display: block; height: 1px; width: 2rem; background: var(--color-accent); margin-left: 0.5rem; transition: all 0.3s; }
.pillar:hover .pillar__line { width: 3rem; }
@media (min-width: 640px) { .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) {
	.offerings-section__inner { padding-top: 6rem; padding-bottom: 6rem; }
	.offerings-head { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; margin-bottom: 5rem; }
	.offerings-title { font-size: 3rem; }
	.offerings-text { font-size: 1.125rem; padding-top: 0.75rem; }
	.pillar-grid { gap: 2.5rem; }
	.pillar__title { font-size: 2.25rem; }
}
@media (min-width: 1024px) {
	.offerings-title { font-size: 3.75rem; }
	.pillar-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- About ---------- */
.about-section { position: relative; background: var(--color-secondary); scroll-margin-top: 6rem; overflow: hidden; }
.about-section__inner { position: relative; padding-top: 5rem; padding-bottom: 5rem; }
.about-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; max-width: 72rem; margin: 0 auto; }
.about-portrait-col { position: relative; }
.about-portrait { position: relative; aspect-ratio: 4 / 5; width: 100%; max-width: 440px; margin: 0 auto; }
.about-portrait__frame { position: absolute; inset: -0.75rem; border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent); }
.about-portrait__square { position: absolute; bottom: -1rem; right: -1rem; width: 6rem; height: 6rem; background: color-mix(in srgb, var(--color-accent) 90%, transparent); display: none; }
.about-portrait__img { position: relative; width: 100%; height: 100%; overflow: hidden; box-shadow: 0 30px 80px -30px hsl(340 40% 15% / 0.35); }
.about-portrait__badge {
	position: absolute;
	top: -1.25rem;
	left: -1.25rem;
	width: 5rem;
	height: 5rem;
	background: var(--color-background);
	box-shadow: 0 12px 30px -10px hsl(340 30% 15% / 0.3);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	transform: rotate(-6deg);
}
.about-portrait__caption {
	position: absolute;
	bottom: -0.75rem;
	left: 1rem;
	background: color-mix(in srgb, var(--color-background) 95%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	padding: 0.5rem 1rem;
	border-radius: 9999px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.about-portrait__caption span { font-family: var(--font-display); font-style: italic; font-size: 0.875rem; line-height: 1.25rem; color: var(--color-foreground); }
.about-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.05; margin-top: 1.25rem; color: var(--color-foreground); }
.about-title__name { font-style: italic; color: var(--color-primary); }
.about-title__sub { display: block; color: var(--color-accent); font-family: var(--font-display); font-size: 1.5rem; line-height: 2rem; margin-top: 0.75rem; font-style: normal; }
.about-body { margin-top: 1.75rem; max-width: 42rem; font-size: 1rem; line-height: 1.625; color: var(--color-muted-foreground); font-family: var(--font-body); }
.about-body > * + * { margin-top: 1rem; }
.about-stats { margin-top: 2.25rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 36rem; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.about-stat { padding: 1rem; }
.about-stat + .about-stat { border-left: 1px solid var(--color-border); }
.about-stat dt { font-size: 0.65rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-muted-foreground); font-family: var(--font-body); }
.about-stat dd { font-family: var(--font-display); font-size: 0.875rem; line-height: 1.375; color: var(--color-foreground); margin-top: 0.25rem; }
.about-actions { margin-top: 2.25rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }
@media (min-width: 640px) {
	.about-portrait__square { display: block; }
	.about-portrait__badge { top: -1.5rem; left: -1.5rem; width: 6rem; height: 6rem; }
	.about-portrait__caption { left: 1.5rem; }
	.about-stat { padding: 1.25rem; }
}
@media (min-width: 768px) {
	.about-section__inner { padding-top: 7rem; padding-bottom: 7rem; }
	.about-title { font-size: 3rem; }
	.about-title__sub { font-size: 1.875rem; line-height: 2.25rem; }
	.about-body { font-size: 1.125rem; }
	.about-stat dd { font-size: 1rem; line-height: 1.375; }
}
@media (min-width: 1024px) {
	.about-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; }
	.about-portrait-col { grid-column: span 5 / span 5; }
	.about-copy { grid-column: span 7 / span 7; }
	.about-portrait { margin-left: 0; margin-right: 0; }
	.about-title { font-size: 3.75rem; }
}

/* ---------- Gallery / shop ---------- */
.gallery-anchor { height: 0; scroll-margin-top: 6rem; overflow: hidden; }
.gallery-section { padding-top: 4rem; padding-bottom: 4rem; scroll-margin-top: 6rem; }
@media (min-width: 768px) { .gallery-section { padding-top: 5rem; padding-bottom: 5rem; } }
.gallery-head { text-align: center; margin-bottom: 3rem; }
.gallery-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 2.5rem; margin-top: 0.5rem; margin-bottom: 1rem; }
.gallery-text { max-width: 36rem; margin: 0 auto 2rem; font-size: 0.875rem; color: var(--color-muted-foreground); font-family: var(--font-body); line-height: 1.625; }
@media (min-width: 768px) {
	.gallery-title { font-size: 3rem; line-height: 1; }
	.gallery-text { font-size: 1rem; }
}
@media (min-width: 1024px) { .gallery-title { font-size: 3.75rem; } }
.filter-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.5rem; margin-bottom: 1rem; padding: 0 0.5rem; }
.filter-pill {
	flex-shrink: 0;
	padding: 0.625rem 1rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	border-radius: 9999px;
	font-family: var(--font-body);
	background: var(--color-secondary);
	color: var(--color-foreground);
	border: 0;
	transition: all 0.3s;
}
.filter-pill:hover { background: var(--color-secondary); transform: scale(1.05); }
.filter-pill:not(:disabled):active { transform: scale(0.95); }
.filter-pill.is-active { background: var(--color-primary); color: var(--color-background); }
.filter-pill--price { display: flex; align-items: center; gap: 0.5rem; padding-left: 1rem; padding-right: 1rem; }
.filter-pill--price:hover { transform: none; }
.filter-pill__range { font-size: 0.75rem; line-height: 1rem; opacity: 0.7; }
.filter-pill__range[hidden] { display: none; }
.filter-pill .chevron { transition: transform 0.3s; }
.filter-pill.is-open .chevron { transform: rotate(180deg); }
@media (min-width: 768px) { .filter-pill { padding-left: 1.25rem; padding-right: 1.25rem; } .filter-pill--price { padding-left: 1rem; padding-right: 1rem; } }

.price-panel-wrap { display: flex; justify-content: center; }
.price-panel { display: grid; grid-template-rows: 0fr; opacity: 0; width: 100%; max-width: 24rem; transition: grid-template-rows 0.3s var(--ease-motion), opacity 0.3s var(--ease-motion); }
.price-panel.is-open { grid-template-rows: 1fr; opacity: 1; }
.price-panel__inner { overflow: hidden; min-height: 0; }
.price-panel__pad { padding: 0.5rem 0.75rem; }
.price-range-wrapper { position: relative; height: 1.25rem; margin-bottom: 0.75rem; }
.range-track-bg, .range-track-fill { position: absolute; height: 0.5rem; top: 50%; transform: translateY(-50%); pointer-events: none; border-radius: 9999px; }
.range-track-bg { left: 0; right: 0; background: var(--color-secondary); }
.range-track-fill { background: var(--color-primary); border-radius: 0; left: 0; width: 100%; }
.range-input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	pointer-events: none;
}
.range-input::-webkit-slider-runnable-track { background: transparent; height: 100%; }
.range-input::-moz-range-track { background: transparent; height: 100%; }
.range-input::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 9999px;
	border: 2px solid var(--color-primary);
	background: var(--color-background);
	cursor: pointer;
}
.range-input::-moz-range-thumb {
	pointer-events: auto;
	width: 1.25rem;
	height: 1.25rem;
	box-sizing: border-box;
	border-radius: 9999px;
	border: 2px solid var(--color-primary);
	background: var(--color-background);
	cursor: pointer;
}
.range-input:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.range-input--max { z-index: 3; }
.range-input--min { z-index: 4; }
.range-input--max.is-top { z-index: 5; }
.price-labels { display: flex; justify-content: space-between; font-size: 0.75rem; line-height: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); }

.theme-product-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: stretch;
}
@media (min-width: 768px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .theme-product-grid { gap: 2rem; } }
.theme-product-card-wrap { height: 100%; min-width: 0; }
.theme-product-card-wrap.is-hidden { display: none; }
.theme-product-card-wrap.card-enter { animation: cardEnter 0.7s var(--ease-motion) var(--d, 0s) backwards; }

.theme-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--color-background);
	border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
	transition: transform 0.35s var(--ease-motion), box-shadow 0.3s var(--transition-smooth);
}
.theme-product-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -12px hsl(30 10% 10% / 0.1); }
.theme-product-card > .theme-card-link { position: absolute; inset: 0; z-index: 2; pointer-events: auto; }
.theme-product-card *:not(.theme-card-link) { pointer-events: none; }
.card-tag-left { position: absolute; top: 0.75rem; left: 0.75rem; z-index: 10; }
.card-tag { display: inline-block; padding: 0.25rem 0.625rem; font-size: 10px; line-height: 1rem; letter-spacing: 0.15em; text-transform: uppercase; font-family: var(--font-body); }
.card-tag--ready { background: color-mix(in srgb, var(--color-background) 90%, transparent); color: var(--color-accent); border: 1px solid var(--color-border); }
.card-tag--sold { background: var(--color-foreground); color: var(--color-background); }
.theme-product-card__image-wrapper { position: relative; aspect-ratio: 1 / 1; background: var(--color-secondary); overflow: hidden; }
.theme-product-card__image-wrapper img { display: block; transition: transform 0.6s var(--ease-motion); }
.theme-product-card:hover .theme-product-card__image-wrapper img { transform: scale(1.06); }
.product-card-img.is-dim { opacity: 0.7; }
.theme-product-card__info { flex: 1; display: flex; flex-direction: column; padding: 1rem; border-top: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); }
.card-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; min-width: 0; }
.card-title { font-family: var(--font-body); font-size: 0.75rem; line-height: 1.375; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-foreground); transition: color 0.3s; min-width: 0; }
.theme-product-card:hover .card-title { color: var(--color-accent); }
.card-price { font-family: var(--font-body); font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: var(--color-foreground); white-space: nowrap; }
.card-price del { opacity: 0.6; font-weight: 400; margin-right: 0.25rem; }
.card-price ins { text-decoration: none; }
@media (min-width: 768px) {
	.theme-product-card__info { padding: 1.25rem; }
	.card-title { font-size: 0.875rem; }
	.card-price { font-size: 1rem; line-height: 1.5rem; }
}

/* Washi tape */
.tape {
	pointer-events: none;
	position: absolute;
	z-index: 20;
	height: 1.5rem;
	width: 5rem;
	background: color-mix(in srgb, var(--color-accent) 35%, transparent);
	-webkit-backdrop-filter: blur(1px);
	backdrop-filter: blur(1px);
	box-shadow: 0 1px 3px hsl(0 0% 0% / 0.15);
	clip-path: polygon(0 0, 4% 15%, 0 30%, 4% 45%, 0 60%, 4% 75%, 0 100%, 100% 100%, 96% 75%, 100% 60%, 96% 45%, 100% 30%, 96% 15%, 100% 0);
}
.tape--tl { top: -0.75rem; left: -1.75rem; transform: rotate(-45deg); }
.tape--tr { top: -0.75rem; right: -1.75rem; transform: rotate(45deg); }
.tape--bl { bottom: -0.75rem; left: -1.75rem; transform: rotate(45deg); }
.tape--br { bottom: -0.75rem; right: -1.75rem; transform: rotate(-45deg); }

.gallery-note { margin: 4rem auto 0; max-width: 42rem; text-align: center; }
@media (min-width: 768px) { .gallery-note { margin-top: 5rem; } }
.gallery-note__eyebrow { font-family: var(--font-script); font-size: 1.875rem; line-height: 1; color: var(--color-primary); display: block; margin-bottom: 1rem; }
.gallery-note__text { font-size: 1rem; line-height: 1.625; color: color-mix(in srgb, var(--color-foreground) 70%, transparent); font-family: var(--font-body); }
@media (min-width: 768px) { .gallery-note__eyebrow { font-size: 2.25rem; } .gallery-note__text { font-size: 1.125rem; } }
.gallery-note__btn {
	margin-top: 1.5rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border-radius: 9999px;
	background: var(--color-primary);
	color: var(--color-background);
	padding: 0.625rem 1.5rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	font-family: var(--font-body);
	font-weight: 500;
	box-shadow: var(--shadow-soft);
	transition: all 0.3s;
}
.gallery-note__btn:hover { background: color-mix(in srgb, var(--color-primary) 90%, transparent); box-shadow: var(--shadow-elevated); transform: translateY(-0.125rem); }
.gallery-more { text-align: center; margin-top: 2.5rem; }
.gallery-more[hidden], .gallery-empty[hidden] { display: none; }
.gallery-empty { text-align: center; padding: 5rem 0; }
.gallery-empty p { color: var(--color-muted-foreground); font-family: var(--font-body); }

/* ---------- Testimonials ---------- */
.testimonials-section { position: relative; overflow: hidden; }
.testimonials-inner { position: relative; padding-top: 5rem; padding-bottom: 2.5rem; }
@media (min-width: 768px) { .testimonials-inner { padding-top: 7rem; padding-bottom: 3.5rem; } }
.testimonials-head { margin-bottom: 3.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
@media (min-width: 768px) { .testimonials-head { margin-bottom: 5rem; flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.testimonials-head__left { max-width: 42rem; }
.testimonials-title, .faq-title, .contact-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.05; letter-spacing: -0.025em; margin-top: 0.75rem; }
.contact-title { margin-top: 1rem; }
@media (min-width: 768px) { .testimonials-title, .faq-title, .contact-title { font-size: 3rem; } }
@media (min-width: 1024px) { .testimonials-title, .faq-title, .contact-title { font-size: 3.75rem; } }
.testimonials-rating { display: none; align-items: center; gap: 0.75rem; font-size: 0.875rem; line-height: 1.25rem; font-family: var(--font-body); color: var(--color-muted-foreground); }
@media (min-width: 768px) { .testimonials-rating { display: flex; } }
.stars { display: flex; gap: 0.125rem; }
.star { color: var(--color-gold); fill: var(--color-gold); }
.stars--sm { margin-bottom: 1.25rem; position: relative; }
.icon-3-5.star { width: 0.875rem; height: 0.875rem; }
.embla { overflow: hidden; }
.embla__container { display: flex; margin-left: -1.5rem; }
.embla__slide { min-width: 0; flex: 0 0 100%; padding-left: 1.5rem; }
@media (min-width: 768px) {
	.embla__container { margin-left: -2rem; }
	.embla__slide { flex-basis: 50%; padding-left: 2rem; }
}
.t-card {
	position: relative;
	height: 100%;
	padding: 1px;
	border-radius: 1rem;
	background-image: linear-gradient(to bottom right,
		color-mix(in srgb, var(--color-primary) 30%, transparent),
		color-mix(in srgb, var(--color-secondary) 30%, transparent),
		color-mix(in srgb, var(--color-primary) 10%, transparent));
	transition: all 0.5s;
}
.t-card:hover {
	background-image: linear-gradient(to bottom right,
		color-mix(in srgb, var(--color-primary) 60%, transparent),
		color-mix(in srgb, var(--color-secondary) 50%, transparent),
		color-mix(in srgb, var(--color-primary) 30%, transparent));
}
.t-card__inner {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 2rem;
	border-radius: 1rem;
	overflow: hidden;
	background-image: linear-gradient(to bottom right, var(--color-background), var(--color-background), color-mix(in srgb, var(--color-secondary) 20%, transparent));
	transition: all 0.5s;
}
@media (min-width: 768px) { .t-card__inner { padding: 2.5rem; } }
.t-card:hover .t-card__inner { transform: translateY(-0.25rem); box-shadow: 0 18px 50px -12px rgba(0, 0, 0, 0.18); }
.t-card__glow {
	pointer-events: none;
	position: absolute;
	top: -6rem;
	right: -6rem;
	width: 16rem;
	height: 16rem;
	border-radius: 9999px;
	background-image: linear-gradient(to bottom right, color-mix(in srgb, var(--color-primary) 20%, transparent), transparent);
	filter: blur(64px);
	opacity: 0.6;
	transition: opacity 0.7s;
}
.t-card:hover .t-card__glow { opacity: 1; }
.t-card__quote { width: 2rem; height: 2rem; color: color-mix(in srgb, var(--color-primary) 30%, transparent); margin-bottom: 1.25rem; position: relative; }
.t-card__text { position: relative; flex: 1; font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: color-mix(in srgb, var(--color-foreground) 85%, transparent); }
@media (min-width: 768px) { .t-card__text { font-size: 1.125rem; } }
.t-card__author { position: relative; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--color-border) 40%, transparent); display: flex; align-items: center; gap: 1rem; }
.t-card__avatar {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 9999px;
	background-image: linear-gradient(to bottom right, color-mix(in srgb, var(--color-primary) 20%, transparent), color-mix(in srgb, var(--color-secondary) 30%, transparent));
	color: var(--color-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-size: 0.875rem;
	border: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
	flex-shrink: 0;
}
.t-card__name { font-family: var(--font-display); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; color: var(--color-foreground); }
.t-card__role { font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.025em; color: var(--color-muted-foreground); font-family: var(--font-body); }
.embla__controls { display: flex; align-items: center; justify-content: flex-end; gap: 0.75rem; margin-top: 2.5rem; }
.carousel-btn {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
	background: var(--color-background);
	color: var(--color-foreground);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s;
}
.carousel-btn:hover { background: var(--color-primary); color: var(--color-background); border-color: var(--color-primary); }
.carousel-btn:disabled { pointer-events: none; opacity: 0.5; }

/* ---------- FAQ ---------- */
.faq-section { position: relative; overflow: hidden; }
.faq-inner { position: relative; padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 768px) { .faq-inner { padding-top: 5rem; padding-bottom: 5rem; } }
.faq-box { max-width: 56rem; margin: 0 auto; }
.faq-head { text-align: center; margin-bottom: 3rem; }
@media (min-width: 768px) { .faq-head { margin-bottom: 4rem; } }
.faq-intro { margin: 1rem auto 0; max-width: 36rem; font-size: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); line-height: 1.625; }
.faq-item { border-bottom: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent); }
.faq-item:last-child { border-bottom: 0; }
.faq-q { width: 100%; padding: 1.5rem 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; text-align: left; background: none; border: 0; }
.faq-q__text { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.375; color: var(--color-foreground); transition: color 0.3s; }
@media (min-width: 768px) { .faq-q__text { font-size: 1.25rem; } }
.faq-q:hover .faq-q__text { color: var(--color-primary); }
.faq-q__icon {
	flex-shrink: 0;
	margin-top: 0.25rem;
	width: 2rem;
	height: 2rem;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
	background: transparent;
	color: var(--color-muted-foreground);
	transition: all 0.3s;
}
.faq-q:hover .faq-q__icon { border-color: var(--color-primary); color: var(--color-primary); }
.faq-q__minus { display: none; }
.faq-q__plus, .faq-q__minus { line-height: 0; }
.faq-item.is-open .faq-q__icon { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-background); }
.faq-item.is-open .faq-q__plus { display: none; }
.faq-item.is-open .faq-q__minus { display: block; }
.faq-a { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows 0.35s var(--ease-motion), opacity 0.35s var(--ease-motion); }
.faq-item.is-open .faq-a { grid-template-rows: 1fr; opacity: 1; }
.faq-a__clip { overflow: hidden; min-height: 0; }
.faq-a__text { padding-bottom: 1.5rem; font-size: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); line-height: 1.625; max-width: 48rem; }
@media (min-width: 768px) { .faq-a__text { font-size: 1.125rem; } }

/* ---------- CTA band ---------- */
.cta-section { position: relative; width: 100%; overflow: hidden; }
.cta-section__box { position: relative; height: 80vh; min-height: 520px; width: 100%; }
.cta-section__shade {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to bottom,
		color-mix(in srgb, var(--color-foreground) 40%, transparent),
		color-mix(in srgb, var(--color-foreground) 30%, transparent),
		color-mix(in srgb, var(--color-foreground) 70%, transparent));
}
.cta-section__vignette {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(ellipse at center, transparent 0%, color-mix(in srgb, var(--color-foreground) 35%, transparent) 100%);
}
.cta-section__content { position: relative; z-index: 10; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 4rem; }
@media (min-width: 768px) { .cta-section__content { padding-bottom: 6rem; } }
.cta-section__inner { max-width: 48rem; }
.cta-eyebrow { display: block; font-family: var(--font-script); font-size: 1.5rem; line-height: 1; color: color-mix(in srgb, var(--color-background) 90%, transparent); margin-bottom: 1.25rem; }
.cta-title { font-family: var(--font-display); color: var(--color-background); font-size: 2.25rem; line-height: 1.05; letter-spacing: -0.025em; }
.cta-title__em { font-style: italic; color: color-mix(in srgb, var(--color-background) 90%, transparent); }
.cta-text { margin-top: 1.5rem; max-width: 36rem; color: color-mix(in srgb, var(--color-background) 85%, transparent); font-family: var(--font-body); font-size: 1rem; line-height: 1.625; }
.cta-actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }
@media (min-width: 768px) {
	.cta-eyebrow { font-size: 1.875rem; }
	.cta-title { font-size: 3.75rem; line-height: 1.05; }
	.cta-text { font-size: 1.125rem; }
}
@media (min-width: 1024px) { .cta-title { font-size: 4.5rem; } }

/* ---------- Contact ---------- */
.contact-section { position: relative; background: var(--color-background); scroll-margin-top: 6rem; overflow: hidden; }
.contact-inner { position: relative; padding-top: 6rem; padding-bottom: 6rem; }
@media (min-width: 768px) { .contact-inner { padding-top: 8rem; padding-bottom: 8rem; } }
.contact-head { text-align: center; margin: 0 auto 3.5rem; max-width: 42rem; }
@media (min-width: 768px) { .contact-head { margin-bottom: 5rem; } }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: stretch; }
@media (min-width: 1024px) {
	.contact-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
	.contact-aside { grid-column: span 4 / span 4; }
	.contact-main { grid-column: span 8 / span 8; }
}
.contact-aside { height: 100%; display: flex; flex-direction: column; }
.contact-aside > * + * { margin-top: 1.5rem; }
.contact-quote { border-radius: 1.5rem; border: 1px solid var(--color-border); background: color-mix(in srgb, var(--color-secondary) 40%, transparent); padding: 2rem; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.contact-quote__text { font-family: var(--font-display); font-size: 1.875rem; line-height: 1.375; margin-bottom: 0.75rem; }
.contact-quote__owner { font-size: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.contact-list { flex: 1; display: flex; flex-direction: column; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.contact-list > li { flex: 1; }
.contact-list > li + li { border-top: 1px solid var(--color-border); }
.contact-li-plain { display: flex; align-items: center; }
.contact-row { display: flex; align-items: center; gap: 1.25rem; height: 100%; min-width: 0; }
a.contact-row:hover { background: color-mix(in srgb, var(--color-secondary) 30%, transparent); }
.contact-row__icon { width: 3.5rem; height: 3.5rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.3s; }
a.contact-row:hover .contact-row__icon { transform: scale(1.1); }
.contact-row__icon--primary { background: color-mix(in srgb, var(--color-primary) 10%, transparent); color: var(--color-primary); }
.contact-row__icon--accent { background: color-mix(in srgb, var(--color-accent) 10%, transparent); color: var(--color-accent); }
.contact-row__abbr { font-size: 0.875rem; font-weight: 600; }
.contact-row__label { font-size: 0.75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--color-muted-foreground); font-family: var(--font-body); }
.contact-row__value { font-size: 1rem; line-height: 1.5rem; font-family: var(--font-body); }
@media (min-width: 768px) { .contact-row__value { font-size: 1.125rem; line-height: 1.75rem; } }
.contact-main { height: 100%; display: flex; flex-direction: column; min-width: 0; }
.contact-form {
	position: relative;
	height: 100%;
	border-radius: 1.5rem;
	border: 1px solid var(--color-border);
	background: color-mix(in srgb, var(--color-secondary) 30%, transparent);
	padding: 1.5rem;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
@media (min-width: 768px) { .contact-form { padding: 2.5rem; } }
.contact-form[hidden] { display: none; }
.contact-form__chips-wrap { margin-bottom: 2rem; }
.field-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--color-muted-foreground); margin-bottom: 0.5rem; font-family: var(--font-body); }
.field-label--chips { margin-bottom: 0.75rem; }
.chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.chip {
	font-size: 0.75rem;
	line-height: 1rem;
	font-family: var(--font-body);
	padding: 0.5rem 1rem;
	border-radius: 9999px;
	border: 1px solid var(--color-border);
	background: var(--color-background);
	color: var(--color-muted-foreground);
	transition: all 0.3s;
}
.chip:hover { border-color: color-mix(in srgb, var(--color-primary) 40%, transparent); color: var(--color-foreground); }
.chip.is-active { background: var(--color-primary); color: var(--color-background); border-color: var(--color-primary); }
@media (min-width: 768px) { .chip { font-size: 0.875rem; line-height: 1.25rem; } }
.contact-form__row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .contact-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.contact-form__message { margin-bottom: 2rem; }
.field {
	width: 100%;
	padding: 0.75rem 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	border-radius: 0;
	font-size: 1rem;
	line-height: 1.5rem;
	font-family: var(--font-body);
	transition: border-color 0.3s;
	-webkit-appearance: none;
	appearance: none;
}
.field:focus { outline: none; border-bottom-color: var(--color-primary); }
.field::placeholder { color: color-mix(in srgb, var(--color-muted-foreground) 60%, transparent); }
.field--area { resize: none; display: block; }
.contact-form__foot { display: flex; flex-direction: column-reverse; gap: 1rem; }
@media (min-width: 640px) { .contact-form__foot { flex-direction: row; align-items: center; justify-content: space-between; } }
.contact-form__direct { font-size: 0.75rem; line-height: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.contact-form__direct a { color: var(--color-primary); text-underline-offset: 4px; }
.contact-form__direct a:hover { text-decoration: underline; }
.contact-thanks {
	flex: 1;
	border-radius: 1.5rem;
	border: 1px solid var(--color-border);
	background: color-mix(in srgb, var(--color-secondary) 40%, transparent);
	padding: 3rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.contact-thanks[hidden] { display: none; }
.contact-thanks.is-shown { animation: thanksIn 0.5s var(--ease-motion) both; }
.contact-thanks__icon { width: 4rem; height: 4rem; border-radius: 9999px; background: var(--color-primary); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; color: var(--color-background); }
.contact-thanks__title { font-family: var(--font-display); font-size: 1.875rem; line-height: 2.25rem; margin-bottom: 0.5rem; }
.contact-thanks__text { color: var(--color-muted-foreground); font-family: var(--font-body); }

/* ---------- Footer ---------- */
.site-footer { position: relative; background: color-mix(in srgb, var(--color-secondary) 40%, transparent); border-top: 1px solid var(--color-border); padding-top: 4rem; overflow-x: clip; }
@media (min-width: 1024px) { .site-footer { padding-top: 6rem; } }
.site-footer__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.site-footer__bg-img { opacity: 0.6; }
.site-footer__shade {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to bottom,
		color-mix(in srgb, var(--color-background) 60%, transparent),
		color-mix(in srgb, var(--color-background) 40%, transparent),
		color-mix(in srgb, var(--color-background) 70%, transparent));
}
.site-footer__wrap { position: relative; }
.site-footer__card { position: relative; background: var(--color-background); border: 1px solid var(--color-border); border-top-left-radius: 2.5rem; border-top-right-radius: 2.5rem; padding: 3.5rem 1.5rem 2.5rem; }
@media (min-width: 640px) { .site-footer__card { padding-left: 2.5rem; padding-right: 2.5rem; } }
.stamp { position: absolute; top: -2.5rem; right: 1.5rem; transform: rotate(6deg); background: var(--color-background); padding: 0.5rem; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); border: 2px dashed var(--color-border); }
@media (min-width: 640px) { .stamp { right: 3rem; } }
.stamp__inner { background: var(--color-background); padding: 0.5rem; border: 1px solid var(--color-border); }
.stamp__img { height: 4rem; width: auto; object-fit: contain; }
@media (min-width: 640px) { .stamp__img { height: 5rem; } }
.site-footer__body { position: relative; }
.footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.footer-heading { font-family: var(--font-body); font-size: 0.75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--color-foreground); margin-bottom: 1.25rem; }
.footer-list > * + * { margin-top: 0.75rem; }
.footer-link, .footer-soon { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); font-family: var(--font-body); text-align: left; }
.footer-link:hover { color: var(--color-primary); }
.footer-link--break { word-break: break-all; }
.footer-legal { font-size: 0.875rem; line-height: 1.625; color: var(--color-muted-foreground); font-family: var(--font-body); }
.footer-brand { margin-top: 3.5rem; font-family: var(--font-display); font-style: italic; font-size: clamp(2.5rem, 9vw, 7rem); line-height: 1; color: color-mix(in srgb, var(--color-foreground) 90%, transparent); overflow-wrap: break-word; }
.footer-bottom { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); display: flex; flex-direction: column; justify-content: space-between; align-items: center; gap: 1rem; }
@media (min-width: 640px) { .footer-bottom { flex-direction: row; } }
.footer-small { font-size: 0.75rem; line-height: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.footer-credit { font-weight: 500; color: var(--color-foreground); text-decoration: underline; text-underline-offset: 4px; }
.footer-credit:hover { color: var(--color-primary); }

/* ---------- Product page ---------- */
.back-wrap { padding: 1.5rem 0; }
.back-link { display: inline-flex; align-items: center; font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.back-link:hover { color: var(--color-foreground); }
.back-link__icon { margin-right: 0.5rem; }
.theme-product-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 5rem; min-width: 0; }
@media (min-width: 1024px) { .theme-product-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.theme-product-gallery, .theme-product-info { min-width: 0; max-width: 100%; }
.product-main-wrap { position: relative; margin-bottom: 1rem; }
.product-main { position: relative; aspect-ratio: 3 / 4; background: var(--color-secondary); overflow: hidden; }
.theme-product-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem; max-width: 100%; }
.thumb { position: relative; aspect-ratio: 1 / 1; overflow: hidden; border: 2px solid transparent; opacity: 0.6; padding: 0; background: none; transition: all 0.3s; }
.thumb:hover { opacity: 1; }
.thumb.is-active { border-color: var(--color-primary); opacity: 1; }
.theme-product-info { padding-top: 0; }
@media (min-width: 1024px) { .theme-product-info { padding: 2.5rem 0; } }
.product-cat { font-size: 0.75rem; line-height: 1rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-muted-foreground); font-family: var(--font-body); }
.product-title { font-family: var(--font-display); font-size: 1.5rem; line-height: 2rem; font-weight: 700; margin-top: 0.5rem; margin-bottom: 1rem; }
@media (min-width: 768px) { .product-title { font-size: 1.875rem; line-height: 2.25rem; } }
.product-price { font-size: 1.5rem; line-height: 2rem; margin-bottom: 1.5rem; font-family: var(--font-body); font-weight: 600; }
.product-price del { opacity: 0.6; font-weight: 400; }
.product-price ins { text-decoration: none; }
.product-desc { color: var(--color-muted-foreground); line-height: 1.625; margin-bottom: 2rem; font-family: var(--font-body); }
.product-desc p + p { margin-top: 1em; }
.woocommerce-product-details__short-description, .woocommerce-variation-description, .posted_in { overflow-wrap: break-word; word-break: break-word; }

.theme-add-to-cart-area { display: flex; align-items: stretch; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.theme-quantity-wrapper { display: flex; align-items: center; border: 1px solid var(--color-border); }
.theme-qty-minus, .theme-qty-plus { padding: 0.75rem 1rem; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; }
.theme-qty-minus:hover, .theme-qty-plus:hover { background: var(--color-secondary); }
.theme-qty-input {
	padding: 0.75rem 1rem;
	min-width: 48px;
	width: 3rem;
	text-align: center;
	font-family: var(--font-body);
	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 .single_add_to_cart_button { flex: 1 1 auto; min-width: 160px; }
.single_add_to_cart_button.is-added { opacity: 0.5 !important; pointer-events: none; }

.product-details { border-top: 1px solid var(--color-border); padding-top: 2rem; }
.product-details__title { font-family: var(--font-body); font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; margin-bottom: 1rem; }
.product-details__list > * + * { margin-top: 0.5rem; }
.product-details__list li { display: flex; align-items: flex-start; font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.product-details__list .bullet { width: 0.375rem; height: 0.375rem; background: var(--color-primary); border-radius: 9999px; margin-top: 0.5rem; margin-right: 0.75rem; flex-shrink: 0; }

.related-products-section { padding: 5rem 0; border-top: 1px solid var(--color-border); }
.related-title { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .related-title { font-size: 1.5rem; line-height: 2rem; } }
.related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
@media (min-width: 1024px) { .related-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; } }

/* Variable products: stacked labels + pills over the hidden native select */
.theme-attr-select-hidden { display: none !important; }
.single-product .variations,
.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: 0 0 0.75rem; }
.single-product .variations tbody td.label label { font-family: var(--font-body); font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; font-style: normal; }
.single-product .variations tbody td.value { padding: 0 0 1.5rem; }
.attr-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.attr-pill { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; font-size: 0.875rem; line-height: 1.25rem; border: 1px solid var(--color-border); font-family: var(--font-body); background: transparent; transition: all 0.3s; }
.attr-pill:hover { border-color: color-mix(in srgb, var(--color-primary) 50%, transparent); }
.attr-pill.is-selected { background: var(--color-primary); color: var(--color-background); border-color: var(--color-primary); }
.attr-pill__dot { width: 1rem; height: 1rem; border-radius: 9999px; border: 1px solid var(--color-border); display: inline-block; }
.single-product .reset_variations { display: none !important; }
.woocommerce-variation-price { display: none; }
.woocommerce-variation-availability { margin-bottom: 1rem; font-size: 0.875rem; color: var(--color-muted-foreground); font-family: var(--font-body); }

/* ---------- Cart drawer ---------- */
#theme-cart-overlay { position: fixed; inset: 0; background: color-mix(in srgb, var(--color-foreground) 20%, transparent); z-index: 50; display: none; }
body.cart-open #theme-cart-overlay { display: block; animation: fadeIn 0.6s var(--transition-smooth) forwards; }
#theme-cart-drawer {
	position: fixed;
	right: 0;
	top: 0;
	height: 100%;
	width: 100%;
	max-width: 28rem;
	background: var(--color-background);
	z-index: 51;
	box-shadow: var(--shadow-elevated);
	display: none;
	flex-direction: column;
}
body.cart-open #theme-cart-drawer { display: flex; animation: slideUp 0.6s var(--transition-smooth) forwards; }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }
.cart-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid var(--color-border); }
.cart-drawer__title { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.75rem; font-weight: 700; }
.cart-drawer__close { padding: 0.25rem; border: 0; background: none; display: inline-flex; }
.cart-drawer__close:hover { opacity: 0.6; }
.cart-drawer__empty { flex: 1; 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: var(--color-muted-foreground); margin-bottom: 1rem; }
.cart-drawer__empty-text { color: var(--color-muted-foreground); margin-bottom: 1.5rem; font-family: var(--font-body); }
.cart-drawer__items { flex: 1; overflow: auto; padding: 1.5rem; }
.cart-drawer__items > * + * { margin-top: 1.5rem; }
.cart-item { display: flex; gap: 1rem; }
.cart-item__thumb { position: relative; width: 5rem; height: 6rem; background: var(--color-secondary); overflow: hidden; flex-shrink: 0; display: block; }
.cart-item__body { flex: 1; min-width: 0; }
.cart-item__name { display: block; font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-body); }
.cart-item__name:hover { opacity: 0.7; }
.cart-item__price { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); margin-top: 0.125rem; font-family: var(--font-body); }
.cart-item__meta { font-size: 0.75rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.cart-item__controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; }
.cart-qty-btn { padding: 0.25rem; border-radius: 0.25rem; border: 0; background: none; display: inline-flex; }
.cart-qty-btn:hover { background: var(--color-secondary); }
.cart-item__qty { font-size: 0.875rem; line-height: 1.25rem; width: 1.5rem; text-align: center; font-family: var(--font-body); }
.cart-item__remove { margin-left: auto; font-size: 0.75rem; line-height: 1rem; color: var(--color-muted-foreground); border: 0; background: none; font-family: var(--font-body); }
.cart-item__remove:hover { color: var(--color-foreground); }
.cart-drawer__foot { padding: 1.5rem; border-top: 1px solid var(--color-border); }
.cart-drawer__foot > * + * { margin-top: 1rem; }
.cart-drawer__subtotal { display: flex; justify-content: space-between; font-size: 0.875rem; line-height: 1.25rem; font-family: var(--font-body); }
.cart-drawer__subtotal-label { color: var(--color-muted-foreground); }
.cart-drawer__subtotal-value { font-weight: 500; }
.cart-drawer__note { font-size: 0.75rem; line-height: 1rem; color: var(--color-muted-foreground); font-family: var(--font-body); }

/* ---------- WooCommerce overrides ---------- */
.single_add_to_cart_button.button,
.add_to_cart_button.button,
a.single_add_to_cart_button,
a.add_to_cart_button,
button.single_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, background-color 0.3s ease !important;
	text-decoration: none !important;
	line-height: 1.25rem !important;
}
.single_add_to_cart_button.button:hover,
.add_to_cart_button.button:hover {
	background-color: color-mix(in srgb, var(--color-primary) 90%, transparent) !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;
}
.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 { display: none !important; }
.single_add_to_cart_button.btn-lg { text-transform: none; }

/* Hide "View cart" injected after AJAX add */
.woocommerce-page a.added_to_cart.wc-forward,
.single-product a.added_to_cart.wc-forward,
body a.added_to_cart.wc-forward { display: none !important; }

/* Notices */
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border: 1px solid var(--color-border);
	border-radius: var(--btn-radius);
	background: var(--color-secondary);
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 0.875rem;
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
	list-style: none;
}
.woocommerce-error { border-color: #b3261e; }
.woocommerce-pagination { margin-top: 2.5rem; text-align: center; font-family: var(--font-body); }
.woocommerce-pagination ul { display: inline-flex; gap: 0.5rem; }
.woocommerce-pagination .page-numbers { padding: 0.5rem 1rem; border: 1px solid var(--color-border); display: inline-block; }
.woocommerce-pagination .current { background: var(--color-primary); color: var(--color-background); border-color: var(--color-primary); }

/* Cart / checkout / account page shell */
body.woocommerce-checkout .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-account .site-main { padding-top: 6rem; padding-bottom: 4rem; }
@media (min-width: 1024px) {
	body.woocommerce-checkout .site-main,
	body.woocommerce-cart .site-main,
	body.woocommerce-account .site-main { padding-top: 7rem; }
}
body.woocommerce-checkout .page-wrap,
body.woocommerce-cart .page-wrap,
body.woocommerce-account .page-wrap,
body.theme-thankyou-page .page-wrap { padding-top: 2.5rem; }
body.woocommerce-checkout .page-title,
body.woocommerce-cart .page-title,
body.woocommerce-account .page-title { margin-bottom: 2.5rem; }
body.woocommerce-checkout .page-title {
	font-family: var(--font-display);
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 2.5rem;
}
@media (min-width: 1024px) {
	body.woocommerce-checkout .page-title {
		font-size: 2.25rem;
		margin-bottom: 2.5rem;
	}
}
body.woocommerce-checkout .page-wrap { padding-top: 2.5rem; padding-bottom: 2.5rem; }
body.woocommerce-checkout .entry-content,
body.woocommerce-cart .entry-content,
body.woocommerce-account .entry-content { max-width: none; width: 100%; }
body.woocommerce-checkout .entry-content > .wp-block-woocommerce-checkout,
body.woocommerce-cart .entry-content > .wp-block-woocommerce-cart { max-width: none; width: 100%; margin: 0; padding: 0; }
body.woocommerce-checkout .wc-block-checkout { display: block; }
body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout { display: block; margin: 0; }

/* Checkout layout — faithful to Lovable (no gray summary card) */
body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	margin: 0;
}
@media (min-width: 1024px) {
	body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
		align-items: start;
	}
}
/* Checkout chrome to hide (not payment errors or shipping config) */
body.woocommerce-checkout .wc-block-checkout__guest-checkout-notice,
body.woocommerce-checkout .wc-block-checkout__contact-fields > .wc-block-components-notice,
body.woocommerce-checkout .wc-block-components-totals-coupon,
body.woocommerce-checkout .wc-block-components-order-summary-coupon-form,
body.woocommerce-checkout .theme-checkout-hidden,
body.woocommerce-checkout .theme-checkout-empty {
	display: none !important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item.wc-block-components-skeleton,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item .wc-block-components-skeleton {
	display: none !important;
}
/* Order summary — no bordered card (Lovable is flat) */
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel__button,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-panel__button {
	display: none !important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel__content,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-panel__content {
	display: block !important;
	visibility: visible !important;
	height: auto !important;
	overflow: visible !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-panel,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-panel__content {
	border: 0 !important;
	box-shadow: none !important;
	outline: 0 !important;
}
body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-notices,
body.woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-notice-banner { grid-column: 1 / -1; }
/* Mobile: form first, summary below (Lovable order-1 / order-2). Desktop: summary left, form right. */
body.woocommerce-checkout .wc-block-checkout__main { order: 1; }
body.woocommerce-checkout .wc-block-checkout__sidebar { order: 2; }
@media (min-width: 1024px) {
	body.woocommerce-checkout .wc-block-checkout__main { order: 2; }
	body.woocommerce-checkout .wc-block-checkout__sidebar { order: 1; }
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	min-width: 0;
	width: 100%;
	max-width: none;
	float: none;
	padding: 0;
	margin: 0;
	font-family: var(--font-body);
	color: var(--color-foreground);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-components-panel,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content,
body.woocommerce-checkout .wc-block-components-sidebar {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--font-display);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-foreground);
	margin-bottom: 1rem;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
	padding: 0;
	margin: 0 0 1.5rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step {
	margin-bottom: 2rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step:last-of-type {
	margin-bottom: 0;
}
body.woocommerce-checkout .wc-block-components-checkout-step__title {
	font-size: 1.25rem;
	line-height: 1.75rem;
	margin-bottom: 1rem;
}
body.woocommerce-checkout .wc-block-checkout__shipping-fields .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-checkout__billing-fields .wc-block-components-checkout-step__title {
	margin-bottom: 1rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step__container {
	gap: 0.75rem;
}
/* Step content is a plain full-width wrapper — NO grid here (avoids nested 86px columns) */
body.woocommerce-checkout .wc-block-components-checkout-step__content {
	display: block;
	width: 100%;
	margin-top: 0;
}
/* Contact grid — 2 equal columns */
body.woocommerce-checkout .theme-checkout-contact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	width: 100%;
	box-sizing: border-box;
}
body.woocommerce-checkout .theme-checkout-contact-grid [data-theme-col="half"] { grid-column: span 1; }
body.woocommerce-checkout .theme-checkout-contact-grid [data-theme-col="full"] { grid-column: 1 / -1; }
/* Shipping address grid — full-width rows + 3 equal columns for city/state/zip */
body.woocommerce-checkout .theme-checkout-address-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	width: 100%;
	box-sizing: border-box;
}
body.woocommerce-checkout .theme-checkout-address-grid [data-theme-col="full"] { grid-column: 1 / -1; }
body.woocommerce-checkout .theme-checkout-address-grid [data-theme-col="third"] { grid-column: span 1; }
/* Hide apartment toggle only after JS expands the real field */
body.woocommerce-checkout .wc-block-components-address-form__address_2-toggle.theme-checkout-hidden,
body.woocommerce-checkout .wc-block-components-address-form__address2-toggle.theme-checkout-hidden {
	display: none !important;
}
body.woocommerce-checkout .theme-checkout-address-grid > .wc-block-components-address-form__address_2-toggle,
body.woocommerce-checkout .theme-checkout-address-grid > .wc-block-components-address-form__address2-toggle {
	grid-column: 1 / -1;
}
/* Order summary — flex column; explicit order on direct children only */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content,
body.woocommerce-checkout .wc-block-components-order-summary .wc-block-components-panel__content {
	display: flex;
	flex-direction: column;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-checkout-order-summary__title {
	order: 0;
	margin-bottom: 1.5rem;
}
/* 1. Products */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-cart-items-block {
	order: 10 !important;
}
/* 2. Subtotal / shipping group (nested or flat) */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-totals-block {
	order: 20 !important;
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--color-border);
	padding-top: 1.5rem;
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-subtotal-block {
	order: 20 !important;
	border-top: 1px solid var(--color-border);
	padding-top: 1.5rem;
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-shipping-block {
	order: 22 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-taxes-block:not(:empty) {
	order: 23 !important;
}
/* 3. Total footer wrapper — always last among direct children */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item),
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > *:has(> .wc-block-components-totals-footer-item):not(.wp-block-woocommerce-checkout-order-summary-cart-items-block) {
	order: 30 !important;
}
/* Empty discount / fee / coupon — no lines or padding */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block:empty,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block:empty,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block:empty,
body.woocommerce-checkout .theme-checkout-summary-empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	min-height: 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-discount-block:not(:has(.wc-block-components-totals-item__label)),
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-fee-block:not(:has(.wc-block-components-totals-item__label)),
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block:not(:has(.wc-block-components-totals-coupon, .wc-block-components-totals-item__label)) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
/* Inner totals wrappers — no extra borders (single separator on section) */
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
	border-top: 0 !important;
	padding-top: 0 !important;
	margin-top: 0 !important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > .wp-block-woocommerce-checkout-order-summary-subtotal-block {
	order: 1;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > .wp-block-woocommerce-checkout-order-summary-shipping-block {
	order: 3;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > .wp-block-woocommerce-checkout-order-summary-discount-block:not(:empty),
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block > .wp-block-woocommerce-checkout-order-summary-fee-block:not(:empty) {
	order: 2;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item + .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-shipping + .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wp-block-woocommerce-checkout-order-summary-shipping-block {
	margin-top: 0.75rem;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block {
	display: block !important;
}
/* Fallback :has() when JS hasn't run yet */
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#shipping-first_name),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#shipping-last_name),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#billing-first_name),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#billing-last_name) {
	grid-column: span 1;
}
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#billing-phone),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#shipping-phone),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#email),
body.woocommerce-checkout .theme-checkout-contact-grid > *:has(#billing-email) {
	grid-column: 1 / -1;
}
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#billing-address_1),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#billing-address_2),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#shipping-address_1),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#shipping-address_2) {
	grid-column: 1 / -1;
}
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#billing-city),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#billing-state),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#billing-postcode),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#shipping-city),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#shipping-state),
body.woocommerce-checkout .theme-checkout-address-grid > *:has(#shipping-postcode) {
	grid-column: span 1;
}
body.woocommerce-checkout .wc-block-components-address-form > *:has(#billing-country),
body.woocommerce-checkout .wc-block-components-address-form > *:has(#shipping-country),
body.woocommerce-checkout .wc-block-components-country-input,
body.woocommerce-checkout .wc-block-components-address-form__company {
	display: none !important;
}
body.woocommerce-checkout .wc-block-components-address-form > .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-address-form > .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-address-form > .wc-block-components-select,
body.woocommerce-checkout .wc-block-components-address-form > .wc-block-components-state-input,
body.woocommerce-checkout .wc-block-components-address-form > .wc-block-components-country-input {
	margin: 0;
	width: 100%;
	min-width: 0;
}
body.woocommerce-checkout .wc-block-components-totals-item.theme-checkout-empty {
	display: none !important;
}
/* Placeholder-style inputs (hide floating labels) */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label,
body.woocommerce-checkout .wc-block-components-combobox label,
body.woocommerce-checkout .wc-block-components-state-input label,
body.woocommerce-checkout .wc-block-components-state-input .components-base-control__label,
body.woocommerce-checkout .wc-block-components-state-input .wc-block-components-combobox-control__label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-select {
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-select,
body.woocommerce-checkout .wc-block-components-state-input {
	align-self: start;
	margin: 0 !important;
	padding: 0;
	width: 100%;
	min-width: 0;
	min-height: 0;
}
body.woocommerce-checkout .wc-block-components-state-input .components-base-control,
body.woocommerce-checkout .wc-block-components-state-input .components-base-control__field,
body.woocommerce-checkout .wc-block-components-state-input .components-combobox-control,
body.woocommerce-checkout .wc-block-components-state-input .components-form-token-field,
body.woocommerce-checkout .wc-block-components-combobox .components-base-control,
body.woocommerce-checkout .wc-block-components-combobox .components-base-control__field {
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0;
}
body.woocommerce-checkout .theme-checkout-address-grid > .wc-block-components-state-input,
body.woocommerce-checkout .theme-checkout-address-grid > .wc-block-components-address-form__state {
	align-self: start;
	margin-top: 0 !important;
}
body.woocommerce-checkout .wc-block-components-address-form__state .wc-blocks-components-select,
body.woocommerce-checkout .wc-block-components-address-form__state .wc-block-components-select {
	margin-top: 0 !important;
	padding-top: 0;
}
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-text-input input,
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-combobox input,
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,
body.woocommerce-checkout .wc-block-components-state-input .components-combobox-control input,
body.woocommerce-checkout .wc-block-components-state-input select,
body.woocommerce-checkout .wc-block-components-state-input input[type="text"],
body.woocommerce-checkout .wc-block-components-address-form__state .wc-blocks-components-select select,
body.woocommerce-checkout .wc-block-components-address-form__state .wc-block-components-select select {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	font-family: var(--font-body) !important;
	font-size: 0.875rem !important;
	line-height: 1.25rem !important;
	color: var(--color-foreground);
	background-color: var(--color-background);
	border: 1px solid var(--color-border) !important;
	border-radius: 0;
	padding: 0.75rem 1rem !important;
	min-height: 2.875rem;
	height: 2.875rem;
	box-shadow: none !important;
	appearance: none;
}
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-text-input,
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-combobox,
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-address-form__state,
body.woocommerce-checkout .theme-checkout-address-grid .wc-block-components-state-input {
	min-height: 0;
	height: auto;
}
body.woocommerce-checkout .wc-block-components-textarea textarea {
	height: auto;
	min-height: 5.375rem;
}
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 {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 1px var(--color-primary);
}
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label {
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	font-size: 0.875rem;
}
body.woocommerce-checkout .wc-block-components-text-input input::placeholder,
body.woocommerce-checkout .wc-block-components-textarea textarea::placeholder {
	color: color-mix(in srgb, var(--color-muted-foreground) 70%, transparent);
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wc-block-components-button:not(.is-link) {
	background-color: var(--color-primary);
	color: var(--color-button-text);
	border: 0;
	border-radius: 0.875rem;
	min-height: 2.75rem;
	height: 2.75rem;
	width: 100%;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 500;
	text-transform: none;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	background-color: color-mix(in srgb, var(--color-primary) 90%, transparent);
}
body.woocommerce-checkout .wc-block-components-notice-banner {
	border-radius: 0;
	border: 1px solid var(--color-border);
	background: var(--color-background);
	color: var(--color-foreground);
	font-family: var(--font-body);
}
body.woocommerce-checkout .wc-block-components-notice-banner.is-error { border-color: #b3261e; }
body.woocommerce-checkout .wc-block-cart-items,
body.woocommerce-checkout .wc-block-components-order-summary { font-family: var(--font-body); color: var(--color-foreground); }
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(.theme-checkout-hidden) {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 0;
	margin: 0 0 1.5rem;
	border: 0;
	background: transparent;
	min-height: 0;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__description {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
	flex-shrink: 0;
	align-self: flex-start;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-foreground);
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__image {
	width: 5rem;
	height: 6rem;
	flex-shrink: 0;
	background: var(--color-secondary);
	overflow: hidden;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
body.woocommerce-checkout .wc-block-components-product-name {
	color: var(--color-foreground);
	font-weight: 500;
	font-size: 0.875rem;
	font-family: var(--font-body);
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item .wc-block-components-product-metadata {
	display: none !important;
}
body.woocommerce-checkout .wc-block-components-product-price {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-weight: 400;
	margin-top: 0.125rem;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(.theme-checkout-hidden):last-of-type {
	margin-bottom: 1.5rem;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-shipping {
	padding: 0;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-shipping-block .wc-block-components-totals-shipping {
	display: flex;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-item,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block .wc-block-components-totals-shipping {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-size: 0.875rem;
	font-family: var(--font-body);
	padding: 0;
}
body.woocommerce-checkout .wc-block-components-totals-item__label {
	color: var(--color-muted-foreground);
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item),
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item {
	border-top: 1px solid var(--color-border);
	padding-top: 0.75rem;
	margin-top: 0.75rem;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) {
	padding-top: 0.75rem;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-wrapper:has(.wc-block-components-totals-footer-item) .wc-block-components-totals-footer-item {
	border-top: 0;
	padding-top: 0;
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1rem;
	font-weight: 600;
	color: var(--color-foreground);
}
body.woocommerce-checkout .wc-block-components-totals-item__value { font-weight: 500; }
body.woocommerce-checkout .theme-checkout-shipping-free {
	color: var(--color-primary);
	font-weight: 500;
}

/* Continue Shopping — above page title */
.theme-checkout-continue {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 2rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	text-decoration: none;
	transition: color 0.2s ease;
}
.theme-checkout-continue:hover { color: var(--color-foreground); }
.theme-checkout-confirm {
	margin: 0.75rem 0 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--color-muted-foreground);
	text-align: center;
}

/* Checkout order-summary quantity controls */
.theme-checkout-qty {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}
.theme-checkout-qty-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	padding: 0.25rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 0.75rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.theme-checkout-qty-btn:hover { background: var(--color-secondary); }
.theme-checkout-qty-val {
	min-width: 1.5rem;
	text-align: center;
	font-family: var(--font-body);
	font-size: 0.875rem;
}
.theme-checkout-remove {
	margin-left: auto;
	padding: 0.25rem;
	border: 0;
	background: transparent;
	color: var(--color-muted-foreground);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease;
}
.theme-checkout-remove:hover { color: #b3261e; }

/* Order notes — always visible, connected to WC order notes */
body.woocommerce-checkout .wc-block-checkout__add-note,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-note-block {
	display: block !important;
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-checkout__add-note.theme-notes-open .wc-block-components-checkbox,
body.woocommerce-checkout .wc-block-checkout__add-note .wc-block-components-checkbox {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
body.woocommerce-checkout .theme-checkout-notes-label,
body.woocommerce-checkout .wc-block-checkout__add-note .wc-block-components-textarea label {
	font-family: var(--font-display);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.25rem;
	display: block;
	margin-bottom: 0.5rem;
}
body.woocommerce-checkout .wc-block-checkout__add-note .wc-block-components-textarea,
body.woocommerce-checkout .wc-block-checkout__add-note .theme-notes-visible {
	display: block !important;
	width: 100%;
	margin-top: 0;
}
body.woocommerce-checkout .wc-block-checkout__add-note textarea {
	display: block !important;
	width: 100%;
	min-height: 5.375rem;
	resize: none;
}

/* Hidden duplicate order summaries (mobile) */
.theme-checkout-summary-hidden { display: none !important; }

/* ---------- Mobile checkout (≤1023px) — match Lovable at 393px ---------- */
@media (max-width: 1023px) {
	body.woocommerce-checkout .page-wrap { padding-top: 1.5rem; }
	body.woocommerce-checkout .page-title { font-size: 1.875rem; margin-bottom: 2rem; }
	body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout {
		display: flex;
		flex-direction: column;
		gap: 3rem;
	}
	body.woocommerce-checkout .wc-block-checkout__main { order: 1; }
	body.woocommerce-checkout .wc-block-checkout__sidebar,
	body.woocommerce-checkout .wc-block-checkout__sidebar.theme-checkout-summary-bottom {
		order: 2;
		margin-top: 0;
	}

	/* Hide duplicate / collapsible summary chrome */
	body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-order-summary,
	body.woocommerce-checkout .wc-block-checkout__main .wp-block-woocommerce-checkout-order-summary-block,
	body.woocommerce-checkout .wc-block-checkout__order-summary-mobile {
		display: none !important;
	}
	body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel__button,
	body.woocommerce-checkout .theme-checkout-summary-bottom .wc-block-components-panel__button {
		display: none !important;
	}
	body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-panel__content,
	body.woocommerce-checkout .theme-checkout-summary-bottom .wc-block-components-panel__content {
		display: block !important;
		visibility: visible !important;
		height: auto !important;
		overflow: visible !important;
	}

	/* Order summary items */
	body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(.theme-checkout-hidden) {
		align-items: flex-start;
		padding-bottom: 0;
		margin-bottom: 1.5rem;
		border-bottom: 0;
	}
	body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(.theme-checkout-hidden):last-of-type {
		margin-bottom: 1.5rem;
	}
	body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-totals-block {
		border-top: 1px solid var(--color-border);
		padding-top: 1.5rem;
		margin-top: 0;
	}
	body.woocommerce-checkout .wc-block-components-totals-item {
		padding: 0.25rem 0;
	}
	body.woocommerce-checkout .wc-block-components-totals-footer-item {
		border-top: 1px solid var(--color-border);
		padding-top: 0.75rem;
		margin-top: 0.5rem;
	}

	/* Place order + confirmation text before summary */
	body.woocommerce-checkout .wc-block-checkout__actions {
		order: 10;
		margin-top: 0.5rem;
	}
	body.woocommerce-checkout .wc-block-checkout__terms {
		margin-top: 0.75rem;
		font-size: 0.75rem;
		color: var(--color-muted-foreground);
		text-align: center;
	}

	.theme-checkout-remove {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0.25rem;
	}
	.theme-checkout-trash { display: block; }
}

/* Contact form error state */
.contact-error {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid #b3261e;
	border-radius: var(--btn-radius);
	background: color-mix(in srgb, #b3261e 8%, var(--color-background));
}
.contact-error.is-shown { display: block; }
.contact-error__text {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	color: #b3261e;
}

/* Classic selectors (My Account, fallback) */
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select,
.woocommerce-account .input-text {
	font-family: var(--font-body);
	border: 1px solid var(--color-border);
	border-radius: var(--btn-radius);
	background: var(--color-background);
	padding: 0.75rem 1rem;
}

/* Cart block */
body.woocommerce-cart .wc-block-cart { font-family: var(--font-body); color: var(--color-foreground); }
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-components-button:not(.is-link) {
	background-color: var(--color-primary);
	color: var(--color-button-text);
	border-radius: var(--btn-radius);
	min-height: var(--btn-height);
	font-family: var(--font-body);
	text-transform: none;
}
body.woocommerce-cart .wc-block-cart__sidebar { background: var(--color-surface); border-radius: var(--card-radius); padding: var(--section-padding); }

/* Thank-you page */
body.theme-thankyou-page { overflow-x: hidden; }
body.theme-thankyou-page .woocommerce-order { font-family: var(--font-body); color: var(--color-foreground); }
body.theme-thankyou-page .woocommerce-thankyou-order-received { font-size: 1.125rem; margin-bottom: 1.5rem; color: var(--color-muted-foreground); }
body.theme-thankyou-page .woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	padding: 1.5rem;
	margin: 0 0 2rem;
	list-style: none;
	background: var(--color-secondary);
	border: 1px solid var(--color-border);
	border-radius: var(--card-radius);
}
body.theme-thankyou-page .woocommerce-order-overview li { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--color-muted-foreground); }
body.theme-thankyou-page .woocommerce-order-overview li strong { display: block; margin-top: 0.25rem; font-size: 1rem; text-transform: none; letter-spacing: 0; color: var(--color-foreground); }
body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title,
body.theme-thankyou-page h2 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; padding: 0 0 1rem 0; }
body.theme-thankyou-page .woocommerce-order-details,
body.theme-thankyou-page .woocommerce-customer-details { margin-bottom: 2rem; }
body.theme-thankyou-page .woocommerce-order-details table { width: 100%; table-layout: fixed; border: 1px solid var(--color-border); border-radius: var(--btn-radius); }
body.theme-thankyou-page .woocommerce-order-details th,
body.theme-thankyou-page .woocommerce-order-details td { padding: 0.75rem 1rem; border-bottom: 1px solid var(--color-border); text-align: left; overflow-wrap: anywhere; }
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; }
body.theme-thankyou-page .woocommerce-customer-details address { max-width: 480px; overflow-wrap: break-word; font-style: normal; line-height: 1.625; }

/* ---------- Entrance motion (class added by main.js, removed after the transition) ---------- */
.fx {
	opacity: 0;
	transform: translate3d(var(--fx-x, 0px), var(--fx-y, 0px), 0);
	transition: opacity var(--fx-dur, 0.6s) var(--ease-motion) var(--fx-delay, 0s),
		transform var(--fx-dur, 0.6s) var(--ease-motion) var(--fx-delay, 0s);
}
.fx.is-in { opacity: 1; transform: none; }
body.is-customizer .fx { opacity: 1; transform: none; transition: none; }

@media (prefers-reduced-motion: reduce) {
	.fx, .animate-fade-in, .animate-slide-up, .animate-slide-down, .animate-scale-in,
	.site-header, .nav-mobile, body.cart-open #theme-cart-drawer, body.cart-open #theme-cart-overlay {
		animation: none !important;
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
	.hero-slide:first-child { opacity: 1; transform: none; }
	.theme-product-card-wrap.card-enter { animation: none; }
}
