/* ==========================================================================
   Casachok – main stylesheet
   Luxury chocolatier look: thin high-contrast serif headings (Noto Serif Display), warm cream & blush
   surfaces, deep chocolate footer, Casachok gold (#CAAD70 / #D8AB5D) as the accent.
   ========================================================================== */

/* Fonts (self-hosted) ---------------------------------------------------- */
@font-face {
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 300 800;
	font-stretch: 100%;
	font-display: swap;
	src: url(../fonts/open-sans-latin-ext.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 300 800;
	font-stretch: 100%;
	font-display: swap;
	src: url(../fonts/open-sans-latin.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 300 800;
	font-stretch: 100%;
	font-display: swap;
	src: url(../fonts/open-sans-cyrillic.woff2) format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* Noto Serif Display: one file per style (Latin + č ć š ž đ), variable weight 300–500. */
@font-face {
	font-family: "Noto Serif Display";
	font-style: normal;
	font-weight: 300 500;
	font-display: swap;
	src: url(../fonts/noto-serif-display.woff2) format("woff2");
}
@font-face {
	font-family: "Noto Serif Display";
	font-style: italic;
	font-weight: 300 500;
	font-display: swap;
	src: url(../fonts/noto-serif-display-italic.woff2) format("woff2");
}

/* Scaling system by Osmo (https://osmo.supply/) --------------------------
   1rem = body font-size in the design (16) at the design width of each breakpoint, scaled
   fluidly between the min/max widths. All theme sizes are in rem, so the whole layout scales. */
:root {
	--size-unit: 16; /* body font-size in design – no px */
	--size-container-ideal: 1440; /* screen size in design – no px */
	--size-container-min: 62rem;
	--size-container-max: 120rem;
	--size-container: clamp(var(--size-container-min), 100vw, var(--size-container-max));
	--size-font: calc(var(--size-container) / (var(--size-container-ideal) / var(--size-unit)));
}
@media screen and (max-width: 991px) {
	:root { --size-container-ideal: 834; --size-container-min: 48rem; --size-container-max: 61.9375rem; }
}
@media screen and (max-width: 767px) {
	:root { --size-container-ideal: 550; --size-container-min: 30rem; --size-container-max: 47.9375rem; }
}
@media screen and (max-width: 479px) {
	:root { --size-container-ideal: 390; --size-container-min: 20rem; --size-container-max: 29.9375rem; }
}
/* rem follows the scale too (the theme is built in rem). */
html { font-size: var(--size-font); }
body { font-size: var(--size-font); }

/* Tokens ----------------------------------------------------------------- */
:root {
	--c-cream: #faf6f1;
	--c-white: #ffffff;
	--c-blush: #f5ece4;
	--c-sand: #efe5d9;
	--c-card: #f3e8de;
	--c-dark: #24170e;
	--c-dark-2: #33231a;
	--c-heading: #241c10;
	--c-text: #6a5952;
	--c-muted: #7d6c63;
	--c-gold: #caad70;
	--c-gold-2: #d8ab5d;
	--c-gold-ink: #8a6d33; /* gold that passes AA for text and white-on-gold buttons */
	--c-line: rgba(36, 28, 16, 0.12);
	--c-sale: #a3341f;

	--font: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--font-display: "Noto Serif Display", "Iowan Old Style", Georgia, serif;

	--fs-xs: 0.75rem;
	--fs-sm: 0.875rem;
	--fs-base: 1rem;
	--fs-md: 1.125rem;
	--fs-lg: 1.25rem;
	--fs-xl: 2.25rem;
	--fs-2xl: 3rem;
	--fs-3xl: 4.5rem;

	--space-section: 6rem;
	--gutter: 2rem;
	--container: var(--size-container);
	--narrow: calc(var(--size-container) * 0.6);
	--radius: 0;
	--header-h: 4.25rem;
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* Minimal scale per breakpoint (sizes stay in rem; the Osmo system scales rem itself). */
@media (max-width: 991px) {
	:root { --fs-xl: 2rem; --fs-2xl: 2.5rem; --fs-3xl: 3.5rem; --space-section: 4.5rem; --gutter: 1.5rem; }
}
@media (max-width: 767px) {
	:root { --fs-lg: 1.15rem; --fs-xl: 1.75rem; --fs-2xl: 2.1rem; --fs-3xl: 2.6rem; --space-section: 3.5rem; --gutter: 1.25rem; }
}

/* Reset ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
body {
	margin: 0;
	background: var(--c-cream);
	color: var(--c-text);
	font-family: var(--font);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Guard against animated/transformed layers widening the page (clip keeps position: sticky working). */
html, body { overflow-x: clip; }
body.is-locked { overflow: hidden; }
img, svg, video, picture { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--c-gold-ink); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
ul[class], ol[class] { list-style: none; margin: 0; padding: 0; }
figure { margin: 0; }
h1, h2, h3, h4, h5, h6 {
	color: var(--c-heading); font-family: var(--font-display); font-weight: 300;
	line-height: 1.1; letter-spacing: -0.015em; margin: 0 0 0.5em;
}
h1 { font-size: var(--fs-2xl); font-weight: 300; }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: 1.35rem; }
h1 em, h2 em, h3 em { font-style: italic; color: var(--c-gold-ink); }
p { margin: 0 0 1.1em; }
hr { border: 0; border-top: 1px solid var(--c-line); margin: 2.5rem 0; }
:focus-visible { outline: 2px solid var(--c-gold-ink); outline-offset: 0.1875rem; }
::selection { background: var(--c-gold); color: var(--c-heading); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: 1rem; top: -100px; z-index: 1000; background: var(--c-dark); color: #fff; padding: 0.75rem 1rem; }
.skip-link:focus { top: 1rem; color: #fff; }

/* Layout ----------------------------------------------------------------- */
.container, ul.container { width: 100%; max-width: var(--size-container); margin-inline: auto; padding-inline: var(--gutter); }
.container.medium { max-width: calc(var(--size-container) * 0.85); }
.container.small { max-width: calc(var(--size-container) * 0.7); }
.container--narrow { max-width: calc(var(--narrow) + 2 * var(--gutter)); }
.section { padding-block: var(--space-section); }
.text-center { text-align: center; }
.bg-cream { background: var(--c-cream); }
.bg-white { background: var(--c-white); }
.bg-blush { background: var(--c-blush); }
.bg-sand { background: var(--c-sand); }
.bg-dark { background: var(--c-dark); color: rgba(255, 255, 255, 0.74); }
.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark .section-title { color: #fff; }
.bg-dark .eyebrow { color: var(--c-gold); }
.bg-dark a:not(.btn):hover { color: var(--c-gold); }
.cc-block.bg-cream + .cc-block.bg-cream.section,
.cc-block.bg-white + .cc-block.bg-white.section,
.cc-block.bg-blush + .cc-block.bg-blush.section,
.cc-block.bg-sand + .cc-block.bg-sand.section { padding-top: 0; }

.eyebrow {
	font-family: var(--font); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em;
	text-transform: uppercase; color: var(--c-gold-ink); margin-bottom: 1.1rem;
}
.lead { font-size: var(--fs-md); max-width: 60ch; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.section-head--center { flex-direction: column; align-items: center; text-align: center; }
.section-head--center .section-title, .section-head--center .section-text { margin-inline: auto; }
.section-head__actions { display: flex; align-items: center; gap: 1.5rem; }
.section-title { font-size: var(--fs-xl); margin-bottom: 0.3em; max-width: 24ch; }
.section-text { max-width: 56ch; margin: 0; }
.section-foot { text-align: center; margin: 2.5rem 0 0; }
.prose > *:last-child { margin-bottom: 0; }
.prose a { color: var(--c-gold-ink); }

/* Buttons ---------------------------------------------------------------- */
.btn,
.button,
button.button,
input[type="submit"],
.wp-element-button,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 2.75rem; padding: 0.55rem 1.4rem; border: 1px solid var(--c-gold-ink); border-radius: 0;
	background: var(--c-gold-ink); color: #fff;
	font-family: var(--font-display); font-size: 0.9375rem; font-weight: 400; letter-spacing: 0.01em; line-height: 1.1;
	text-decoration: none; cursor: pointer;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.btn:hover,
.button:hover,
button.button:hover,
input[type="submit"]:hover,
.wp-element-button:hover,
.wp-block-button__link:hover { background: var(--c-heading); border-color: var(--c-heading); color: #fff; }
.btn--outline { background: transparent; color: var(--c-heading); border-color: var(--c-heading); }
.btn--outline:hover { background: var(--c-heading); color: #fff; }
.btn--light { background: #fff; border-color: #fff; color: var(--c-heading); }
.btn--light:hover { background: var(--c-gold); border-color: var(--c-gold); color: var(--c-heading); }
.btn--outline-light { background: transparent; border-color: rgba(255, 255, 255, 0.8); color: #fff; }
.btn--outline-light:hover { background: #fff; color: var(--c-heading); border-color: #fff; }
.btn--block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
.link-arrow {
	display: inline-flex; align-items: center; gap: 0.6rem; white-space: nowrap;
	font-family: var(--font-display); font-size: 1.05rem; font-weight: 400;
	text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; color: var(--c-heading);
}
.link-arrow::after { content: "→"; font-family: var(--font); transition: transform 0.25s var(--ease); }
.link-arrow:hover::after { transform: translateX(0.25rem); }
.link-arrow--light { color: #fff; }
.link-arrow--light:hover { color: var(--c-gold); }
.icon-btn {
	display: inline-flex; align-items: center; justify-content: center; position: relative;
	width: 2.75rem; height: 2.75rem; padding: 0; border: 0; background: none; color: inherit; border-radius: 50%; text-decoration: none;
}
.icon-btn:hover { color: var(--c-gold-ink); }
.icon { width: 1.25rem; height: 1.25rem; flex: none; stroke-width: 1.3; }
.icon.is-flipped { transform: scaleX(-1); }
.phone-link { display: inline-flex; align-items: center; gap: 0.75rem; font-family: var(--font-display); font-size: 1.15rem; color: var(--c-heading); text-decoration: none; }
.phone-link__icon { display: inline-flex; width: 2.875rem; height: 2.875rem; border-radius: 50%; align-items: center; justify-content: center; background: var(--c-blush); color: var(--c-gold-ink); }
.phone-link__icon .icon { width: 1.125rem; height: 1.125rem; }

/* Forms ------------------------------------------------------------------ */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"],
input[type="search"], input[type="url"], select, textarea {
	width: 100%; min-height: 3.125rem; padding: 0.7rem 1rem; border: 1px solid var(--c-line); border-radius: 0;
	background: #fff; font-size: var(--fs-base); color: var(--c-heading); transition: border-color 0.2s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--c-heading); }
label { font-size: var(--fs-sm); font-weight: 600; color: var(--c-heading); }
.search-form--inline { display: flex; gap: 0.5rem; max-width: 32.5rem; }

/* Header ----------------------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 100; color: var(--c-heading);
	background: rgba(250, 246, 241, 0.96);
	-webkit-backdrop-filter: saturate(160%) blur(0.625rem);
	backdrop-filter: saturate(160%) blur(0.625rem);
	transition: background-color 0.3s, color 0.3s;
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
/* backdrop-filter would become the containing block of the fixed mobile menu – drop it while open */
.site-header.is-menu-open { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--c-cream); }

/* Rounded announcement banner */
.nav-banner { padding: 0; }
.nav-banner__inner {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 0.35rem var(--gutter); border-radius: 0; background: var(--c-gold); color: var(--c-heading); text-align: center;
	font-size: 0.625rem; line-height: 1.2; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
}
.nav-banner__inner a { color: inherit; text-decoration: underline; text-underline-offset: 0.2em; }
.nav-banner__inner a:hover { color: inherit; opacity: 0.7; }

/* 3-column navbar: logo · menu · actions */
.nav-bar {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem;
	min-height: 3.75rem;
}
/* Full-width header: content runs edge to edge (gutter only), hairline spans the whole viewport */
.nav-wrap { width: 100%; padding-inline: var(--gutter); }
.site-header > .nav-wrap { border-bottom: 1px solid var(--c-line); transition: border-color 0.3s; }
.nav-logo { justify-self: start; display: flex; }
.nav-logo img { width: 4.25rem; height: auto; transition: filter 0.3s; }
.nav-menu__list { display: flex; align-items: center; gap: 2.25rem; }
.nav-menu__link {
	display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0; border: 0; background: none; cursor: pointer;
	font-family: var(--font); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: inherit; text-decoration: none;
	transition: opacity 0.2s, color 0.2s;
}
.nav-menu__link:hover { color: inherit; opacity: 0.64; }
.nav-menu__link.is-current { text-decoration: underline; text-underline-offset: 0.5em; }
.nav-menu__trigger .icon { width: 0.625rem; height: 0.625rem; transition: transform 0.25s var(--ease); }
.nav-menu__trigger[aria-expanded="true"] .icon { transform: rotate(180deg); }
.nav-right { display: flex; align-items: center; justify-content: flex-end; gap: 0.125rem; }
.nav-right .icon-btn { width: 2.25rem; height: 2.25rem; }
.nav-right .icon { width: 1.0625rem; height: 1.0625rem; }
.cart-count {
	position: absolute; top: 0; right: -0.125rem; min-width: 1rem; height: 1rem; padding: 0 0.3rem; border-radius: 0.6rem;
	background: var(--c-gold); color: var(--c-heading); font-size: 0.7rem; font-weight: 700; line-height: 1.125rem; text-align: center;
	transform: scale(0); transition: transform 0.25s var(--ease);
}
.cart-count.has-items { transform: scale(1); }
.cart-toggle.is-bump .cart-count { animation: bump 0.45s var(--ease); }
@keyframes bump { 50% { transform: scale(1.35); } }
.lang-switch { display: flex; gap: 0.5rem; list-style: none; margin: 0 0.5rem 0 0; padding: 0; font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.lang-switch a { text-decoration: none; }

/* Hamburger → X */
.nav-burger { display: none; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; background: none; color: inherit; align-items: center; justify-content: center; }
.nav-burger__lines { position: relative; display: block; width: 1.25rem; height: 0.875rem; }
.nav-burger__lines span { position: absolute; left: 0; width: 100%; height: 1.5px; border-radius: 1px; background: currentColor; transition: transform 0.3s var(--ease), opacity 0.2s, top 0.3s var(--ease); }
.nav-burger__lines span:nth-child(1) { top: 0; }
.nav-burger__lines span:nth-child(2) { top: calc(50% - 0.75px); }
.nav-burger__lines span:nth-child(3) { top: calc(100% - 1.5px); }
.is-menu-open .nav-burger__lines span:nth-child(1) { top: calc(50% - 0.75px); transform: rotate(45deg); }
.is-menu-open .nav-burger__lines span:nth-child(2) { opacity: 0; }
.is-menu-open .nav-burger__lines span:nth-child(3) { top: calc(50% - 0.75px); transform: rotate(-45deg); }

/* Transparent header over a cinematic hero (solid again when a panel is open or after scrolling) */
.has-overlay-header .site-header:not(.is-fixed) { position: absolute; left: 0; right: 0; top: auto; }
.has-overlay-header .site-header:not(.is-fixed):not(.is-solid) { background: transparent; color: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.has-overlay-header .site-header:not(.is-fixed):not(.is-solid) .nav-logo img { filter: brightness(0) invert(1); }
.has-overlay-header .site-header:not(.is-fixed):not(.is-solid) > .nav-wrap { border-color: rgba(255, 255, 255, 0.22); }
.has-overlay-header .site-header:not(.is-fixed):not(.is-solid) .icon-btn:hover { color: var(--c-gold); }
.has-overlay-header .site-header.is-fixed { position: fixed; left: 0; right: 0; top: 0; animation: header-in 0.45s var(--ease); }
.has-overlay-header.admin-bar .site-header.is-fixed { top: var(--wp-admin--admin-bar--height, 32px); }
@keyframes header-in { from { transform: translateY(-100%); } }

/* Mega menu: categories · product preview · promo card, quick links underneath */
.mega {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 2; color: var(--c-heading); background: var(--c-cream);
	border-top: 1px solid var(--c-line); max-height: calc(100vh - 6rem); overflow-y: auto; overscroll-behavior: contain;
	opacity: 0; transform: translateY(-0.5rem); transition: opacity 0.25s var(--ease), transform 0.3s var(--ease);
}
.mega.is-open { opacity: 1; transform: none; }
.mega__grid { display: grid; grid-template-columns: 15rem minmax(0, 1fr) 17rem; gap: 3.5rem; align-items: start; padding-block: 2.25rem 2.75rem; }
.mega__label { display: block; margin-bottom: 1.1rem; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted); }

/* Category list */
.mega__cats ul, .m-cats { list-style: none; margin: 0; padding: 0; }
.mega__cats ul { display: grid; gap: 0.15rem; }
.mega-cat__name { white-space: nowrap; }
.mega-cat {
	display: flex; align-items: baseline; gap: 0.5rem; padding: 0.35rem 0; color: var(--c-muted); text-decoration: none;
	font-family: var(--font-display); font-size: 1.35rem; font-weight: 300; line-height: 1.25; transition: color 0.2s;
}
.mega-cat__count { font-family: var(--font); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.06em; color: var(--c-muted); transform: translateY(-0.55em); }
.mega-cat__arrow { width: 0.875rem; height: 0.875rem; margin-left: auto; align-self: center; opacity: 0; transform: translateX(-0.4rem); transition: opacity 0.2s, transform 0.25s var(--ease); }
.mega-cat:hover, .mega-cat.is-active, .mega-cat:focus-visible { color: var(--c-heading); }
.mega-cat.is-active .mega-cat__arrow { opacity: 1; transform: none; color: var(--c-gold-ink); }

/* Preview */
.mega__preview { min-height: 100%; border-left: 1px solid var(--c-line); padding-left: 3.5rem; }
.mega-prev[hidden] { display: none; }
.mega-prev.is-active { animation: mega-fade 0.3s var(--ease); }
@keyframes mega-fade { from { opacity: 0; transform: translateY(0.35rem); } }
.mega-prev__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 1.5rem; }
.mega-prod { display: grid; gap: 0.25rem; color: var(--c-heading); text-decoration: none; }
.mega-prod__img { display: block; aspect-ratio: 1; margin-bottom: 0.5rem; background: var(--c-card); overflow: hidden; }
.mega-prod__img img { width: 100%; height: 100%; object-fit: contain; padding: 9%; mix-blend-mode: multiply; filter: brightness(1.05) contrast(1.03); transition: transform 0.8s var(--ease); }
.mega-prod:hover .mega-prod__img img { transform: scale(1.05); }
.mega-prod__name { font-family: var(--font-display); font-size: 0.9375rem; line-height: 1.3; }
.mega-prod__price { font-size: 0.75rem; font-weight: 600; color: var(--c-text); }
.mega-prod__price .woocommerce-Price-currencySymbol { text-transform: lowercase; }
.mega-prev__all { font-size: 0.9375rem; }

/* Promo card */
.mega-card { display: flex; flex-direction: column; gap: 0.6rem; color: var(--c-heading); text-decoration: none; }
.mega-card__media { display: block; aspect-ratio: 4 / 5; background: var(--c-card); overflow: hidden; }
.mega-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease); }
.mega-card:hover .mega-card__media img { transform: scale(1.04); }
.mega-card__title { font-family: var(--font-display); font-size: 1rem; line-height: 1.3; }
.mega-card__cta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 0.45em; }

/* Dim the page while the panel is open */
.mega-backdrop { position: fixed; inset: 0; z-index: 99; background: rgba(36, 23, 14, 0.28); opacity: 0; transition: opacity 0.3s var(--ease); }
.mega-backdrop.is-visible { opacity: 1; }
.mega-backdrop[hidden] { display: none; }

/* Mobile: categories as an image grid */
ul.m-cats {
	display: grid; grid-auto-flow: column; grid-auto-columns: 40%; gap: 0.75rem; padding-bottom: 1.5rem;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter);
}
.m-cats::-webkit-scrollbar { display: none; }
.m-cats li { scroll-snap-align: start; }
.m-cat { display: grid; gap: 0.15rem; color: var(--c-heading); text-decoration: none; }
.m-cat__img { display: block; aspect-ratio: 1; margin-bottom: 0.4rem; background: var(--c-card); overflow: hidden; }
.m-cat__img img { width: 100%; height: 100%; object-fit: contain; padding: 10%; mix-blend-mode: multiply; }
.m-cat__name { font-family: var(--font-display); font-size: 0.9375rem; line-height: 1.25; }
.m-cat__count { font-size: 0.6875rem; color: var(--c-muted); }

@media (max-width: 1199px) {
	.mega__grid { grid-template-columns: 13rem minmax(0, 1fr); }
	.mega-card { display: none; }
}

/* Search */
.search-panel { border-top: 1px solid var(--c-line); background: var(--c-cream); color: var(--c-heading); padding: 1rem 0; }
.search-panel .search-form { display: flex; align-items: center; gap: 0.75rem; }
.search-panel input[type="search"] { border: 0; background: transparent; font-family: var(--font-display); font-weight: 300; font-size: 1.5rem; padding-inline: 0; }

/* Mobile menu */
.mobile-menu { display: none; }
.m-acc { border-bottom: 1px solid var(--c-line); }
.m-acc summary { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 0; cursor: pointer; list-style: none; font-family: var(--font-display); font-size: 1.15rem; color: var(--c-heading); }
.m-acc summary::-webkit-details-marker { display: none; }
.m-acc__icon { position: relative; width: 0.875rem; height: 0.875rem; flex: none; }
.m-acc__icon::before, .m-acc__icon::after { content: ""; position: absolute; background: currentColor; transition: transform 0.25s var(--ease), opacity 0.2s; }
.m-acc__icon::before { left: 0; right: 0; top: calc(50% - 1px); height: 2px; }
.m-acc__icon::after { top: 0; bottom: 0; left: calc(50% - 1px); width: 2px; }
details[open] > summary .m-acc__icon::after { transform: rotate(90deg); opacity: 0; }
.m-acc__links { padding-bottom: 1.25rem; }
.m-acc__links { display: flex; flex-direction: column; gap: 0.5rem; list-style: none; margin: 0; padding-left: 0; }
.m-acc__links a { font-family: var(--font-display); font-size: 1.05rem; color: var(--c-heading); text-decoration: none; }

@media (max-width: 991px) {
	.nav-bar { grid-template-columns: 1fr 1fr; padding-block: 0.75rem; }
	.nav-menu, .mega { display: none !important; }
	.nav-burger { display: inline-flex; }
	.mobile-menu {
		display: block; position: fixed; left: 0; right: 0; top: var(--menu-top, 6rem); bottom: 0; color: var(--c-heading); background: var(--c-cream);
		overflow-y: auto; overscroll-behavior: contain;
		opacity: 0; transform: translateY(-1rem); transition: opacity 0.3s var(--ease), transform 0.35s var(--ease);
	}
	.mobile-menu[hidden] { display: none; }
	.mobile-menu.is-open { opacity: 1; transform: none; }
	.mobile-menu__strip { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.5rem 1.5rem; background: var(--c-blush); color: var(--c-heading); text-decoration: none; }
	.mobile-menu__strip span { display: grid; gap: 0.25rem; }
	.mobile-menu__strip strong { font-family: var(--font-display); font-weight: 400; font-size: 0.9375rem; }
	.mobile-menu__strip u { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; text-underline-offset: 0.4em; }
	.mobile-menu__strip img { width: 5.5rem; height: 4rem; object-fit: cover; }
	.mobile-menu__body { padding-top: 1rem; padding-bottom: 1.5rem; }
	.mobile-menu__links { padding-top: 0.75rem; }
	.mobile-menu__links a { display: block; padding: 0.75rem 0; font-family: var(--font-display); font-size: 1.15rem; color: var(--c-heading); text-decoration: none; }
	.mobile-menu__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.5rem; }
	.mobile-menu__foot .social { display: flex; gap: 0.75rem; }
	.mobile-menu__foot .social a { display: inline-flex; width: 1.25rem; height: 1.25rem; color: var(--c-heading); }
	.mobile-menu__foot .social svg { width: 100%; height: 100%; }
	.mobile-menu__phone { font-family: var(--font-display); font-size: 1.05rem; color: var(--c-heading); text-decoration: none; }
}
@media (max-width: 767px) {
	.nav-account { display: none; }
}
@media (max-width: 479px) {
	.nav-bar { display: flex; justify-content: space-between; gap: 1rem; }
	.nav-logo img { width: 5.6rem; }
}

/* Drawers ---------------------------------------------------------------- */
.drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; pointer-events: none; }
.drawer.is-open { visibility: visible; pointer-events: auto; }
.drawer__overlay { position: absolute; inset: 0; background: rgba(36, 23, 14, 0.45); opacity: 0; transition: opacity 0.3s var(--ease); }
.drawer.is-open .drawer__overlay { opacity: 1; }
.drawer__panel {
	position: absolute; top: 0; bottom: 0; width: min(28.75rem, 92vw); background: var(--c-cream); color: var(--c-text);
	display: flex; flex-direction: column; transition: transform 0.4s var(--ease); box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.15);
}
.drawer--right .drawer__panel { right: 0; transform: translateX(100%); }
.drawer--left .drawer__panel { left: 0; transform: translateX(-100%); }
.drawer.is-open .drawer__panel { transform: none; }
.drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem var(--gutter); border-bottom: 1px solid var(--c-line); color: var(--c-heading); }
.drawer__title { font-family: var(--font-display); font-weight: 300; font-size: 1.5rem; color: var(--c-heading); }
.drawer__body { flex: 1; overflow-y: auto; padding: 1.25rem var(--gutter); overscroll-behavior: contain; }
.drawer__foot { padding: 1.25rem var(--gutter); border-top: 1px solid var(--c-line); display: grid; gap: 0.75rem; }
.drawer__note { margin: 0; padding: 0.75rem var(--gutter); font-size: var(--fs-xs); color: var(--c-muted); border-top: 1px solid var(--c-line); }


/* Mini cart (cart drawer) */
.cart-drawer .drawer__panel { width: min(27rem, 100vw); }
.drawer__title { display: inline-flex; align-items: baseline; gap: 0.5rem; }
.drawer__count:not(:empty) { font-family: var(--font); font-size: 0.75rem; font-weight: 600; color: var(--c-muted); }
.drawer__count:not(:empty)::before { content: "("; }
.drawer__count:not(:empty)::after { content: ")"; }
.drawer-cart { flex: 1; min-height: 0; display: flex; flex-direction: column; transition: opacity 0.2s; }
.drawer-cart.is-loading { opacity: 0.55; pointer-events: none; }
.mc-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0.5rem var(--gutter) 1.5rem; }
ul.mc-items { list-style: none; margin: 0; padding: 0; }
.mc-item { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--c-line); transition: opacity 0.2s; }
.mc-item.is-updating { opacity: 0.5; }
.mc-item__img { display: block; aspect-ratio: 4 / 5; background: var(--c-card); overflow: hidden; }
.mc-item__img img { width: 100%; height: 100%; object-fit: contain; padding: 0.4rem; mix-blend-mode: multiply; filter: brightness(1.05) contrast(1.03); }
.mc-item__body { display: flex; flex-direction: column; min-width: 0; }
.mc-item__top { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.mc-item__name { font-family: var(--font-display); font-size: 1rem; line-height: 1.3; color: var(--c-heading); text-decoration: none; }
.mc-item__name:hover { color: var(--c-gold-ink); }
.mc-item__price { flex: none; font-size: 0.875rem; font-weight: 600; color: var(--c-heading); white-space: nowrap; }
.mc-item__meta { margin: 0.2rem 0 0; font-size: 0.75rem; line-height: 1.45; color: var(--c-muted); }
.mc-item__unit { margin: 0.15rem 0 0; font-size: 0.75rem; color: var(--c-muted); }
.mc-item__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 0.75rem; }
.mc-qty { display: inline-flex; align-items: center; height: 2rem; border: 1px solid var(--c-line); }
.mc-qty button { width: 2rem; height: 100%; padding: 0; border: 0; background: none; color: var(--c-heading); display: inline-flex; align-items: center; justify-content: center; }
.mc-qty button:hover:not(:disabled) { background: var(--c-blush); }
.mc-qty button:disabled { opacity: 0.3; cursor: default; }
.mc-qty .icon { width: 0.75rem; height: 0.75rem; }
.mc-qty__val { min-width: 1.75rem; text-align: center; font-size: 0.8125rem; font-weight: 600; color: var(--c-heading); }
.mc-item__remove { font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-muted); text-decoration: underline; text-underline-offset: 0.35em; }
.mc-item__remove:hover { color: var(--c-sale); }

/* Suggestions */
.mc-label { margin: 0 0 0.75rem; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted); }
.mc-suggest { margin-top: 1.75rem; }
ul.mc-suggest__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.mc-sug { display: flex; align-items: center; gap: 0.85rem; padding: 0.5rem; background: var(--c-white); }
.mc-sug__img { flex: none; width: 3.25rem; height: 3.25rem; background: var(--c-card); }
.mc-sug__img img { width: 100%; height: 100%; object-fit: contain; padding: 0.2rem; mix-blend-mode: multiply; }
.mc-sug__body { flex: 1; min-width: 0; display: grid; gap: 0.1rem; }
.mc-sug__name { font-family: var(--font-display); font-size: 0.875rem; color: var(--c-heading); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-sug__price, .mc-sug__price .price { font-size: 0.75rem; font-weight: 600; color: var(--c-text); }
.mc-sug__add { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--c-line); color: var(--c-heading); transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
.mc-sug__add:hover { background: var(--c-heading); border-color: var(--c-heading); color: #fff; }
.mc-sug__add .icon { width: 0.875rem; height: 0.875rem; }
.mc-sug__add.is-loading .icon { animation: spin 0.8s linear infinite; }
.mc-sug .added_to_cart { display: none; }

/* Footer */
.mc-foot { flex: none; padding: 1.25rem var(--gutter) 1.5rem; border-top: 1px solid var(--c-line); background: var(--c-cream); }
.mc-subtotal { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 0.35rem; }
.mc-subtotal > span:first-child { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-heading); }
.mc-subtotal__value { font-family: var(--font-display); font-size: 1.375rem; color: var(--c-heading); }
.mc-note { margin: 0 0 1.1rem; font-size: 0.75rem; line-height: 1.5; color: var(--c-muted); }
.mc-checkout { min-height: 3rem; }
.mc-cart-link { display: block; margin-top: 0.85rem; text-align: center; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-heading); text-decoration: underline; text-underline-offset: 0.4em; }
.shipping-meter { margin-bottom: 1rem; font-size: 0.75rem; color: var(--c-text); }
.shipping-meter p { margin: 0 0 0.45rem; }
.shipping-meter__bar { height: 2px; background: var(--c-line); overflow: hidden; }
.shipping-meter__bar span { display: block; height: 100%; background: var(--c-gold-ink); transition: width 0.4s var(--ease); }

/* Empty state */
.mc-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem var(--gutter) 3rem; text-align: center; }
.mc-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; margin-bottom: 1.25rem; border-radius: 50%; background: var(--c-blush); color: var(--c-gold-ink); }
.mc-empty__icon .icon { width: 1.5rem; height: 1.5rem; }
.mc-empty__title { margin: 0 0 0.4rem; font-family: var(--font-display); font-size: 1.375rem; color: var(--c-heading); }
.mc-empty__text { max-width: 18rem; margin: 0 0 1.5rem; font-size: 0.875rem; color: var(--c-muted); }
ul.mc-empty__cats { list-style: none; width: 100%; margin: 2.5rem 0 0; padding: 0; border-top: 1px solid var(--c-line); text-align: left; }
.mc-empty__cats a { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 0; border-bottom: 1px solid var(--c-line); font-family: var(--font-display); font-size: 1rem; color: var(--c-heading); text-decoration: none; }
.mc-empty__cats a:hover { color: var(--c-gold-ink); }
.mc-empty__cats .icon { width: 0.875rem; height: 0.875rem; transition: transform 0.25s var(--ease); }
.mc-empty__cats a:hover .icon { transform: translateX(4px); }

.toast {
	position: fixed; left: 50%; bottom: 1.5rem; z-index: 300; transform: translate(-50%, 150%);
	background: var(--c-dark); color: #fff; padding: 0.85rem 1.5rem; font-size: var(--fs-sm);
	box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.2); transition: transform 0.35s var(--ease), opacity 0.35s, visibility 0.35s;
	max-width: calc(100vw - 2rem); opacity: 0; visibility: hidden;
}
.toast.is-active { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.toast.is-error { background: var(--c-sale); }

/* Product grid + cards ---------------------------------------------------- */
.product-grid,
ul.products {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.25rem 1rem;
	list-style: none; margin: 0; padding: 0;
}
@media (max-width: 991px) { .product-grid, ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
ul.product-grid--slider {
	display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: calc((100% - 3 * 1.5rem) / 4); column-gap: 1.5rem;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 0.5rem;
}
.product-grid--slider::-webkit-scrollbar { display: none; }
.product-grid--slider > li { scroll-snap-align: start; }
@media (max-width: 991px) { ul.product-grid--slider { grid-auto-columns: 72%; } }
.slider-nav { display: flex; gap: 0.5rem; }
.slider-btn {
	width: 3rem; height: 3rem; border: 1px solid var(--c-line); background: transparent; color: var(--c-heading);
	display: inline-flex; align-items: center; justify-content: center; transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.slider-btn:hover { background: var(--c-heading); border-color: var(--c-heading); color: #fff; }
.slider-btn .icon { width: 1.125rem; height: 1.125rem; }
@media (max-width: 991px) { .slider-nav { display: none; } }

.product-card { position: relative; display: flex; flex-direction: column; text-align: center; }
.product-card__media { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--c-card); margin-bottom: 1rem; }
.product-card__link { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 8%; }
.product-card__img {
	width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply;
	filter: brightness(1.05) contrast(1.03); /* push off-white photo backgrounds to white so they blend */
	transition: transform 1s var(--ease), opacity 0.5s var(--ease);
}
.product-card__img--hover { position: absolute; inset: 0; object-fit: cover; mix-blend-mode: normal; filter: none; opacity: 0; }
@media (hover: hover) {
	.product-card:hover .product-card__img { transform: scale(1.05); }
	.product-card:hover .has-hover .product-card__img--hover { opacity: 1; transform: none; }
}
.badges { position: absolute; top: 1rem; left: 1rem; z-index: 2; display: flex; flex-wrap: wrap; gap: 0.4rem; pointer-events: none; }
.badge { display: inline-block; padding: 0.3rem 0.7rem; background: var(--c-cream); color: var(--c-heading); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.badge--sale { background: var(--c-sale); color: #fff; }
.badge--muted { background: rgba(36, 23, 14, 0.75); color: #fff; }

.quick-add {
	position: absolute; right: 1rem; bottom: 1rem; z-index: 3;
	display: inline-flex; align-items: center; gap: 0.5rem; height: 2.875rem; padding: 0 0.8125rem; border-radius: 1.4375rem;
	background: var(--c-heading); color: #fff; text-decoration: none; font-family: var(--font-display); font-size: 0.95rem; font-weight: 400;
	overflow: hidden; max-width: 2.875rem; white-space: nowrap;
	transition: max-width 0.45s var(--ease), background-color 0.2s, opacity 0.3s, transform 0.3s var(--ease);
}
.quick-add .icon { width: 1.25rem; height: 1.25rem; flex: none; }
.quick-add span { opacity: 0; transition: opacity 0.2s; }
.quick-add:hover, .quick-add:focus-visible { max-width: 15rem; background: var(--c-gold-ink); color: #fff; }
.quick-add:hover span, .quick-add:focus-visible span { opacity: 1; }
@media (hover: hover) {
	.quick-add { opacity: 0; transform: translateY(0.5rem); }
	.product-card:hover .quick-add, .quick-add:focus-visible { opacity: 1; transform: none; }
}
.quick-add.is-loading { opacity: 1; pointer-events: none; }
.quick-add.is-loading .icon { animation: spin 0.8s linear infinite; }
.quick-add.is-added { background: var(--c-gold); color: var(--c-heading); opacity: 1; transform: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.product-card .added_to_cart { display: none; }
.product-card__body { display: grid; gap: 0.15rem; justify-items: center; }
.product-card__title { font-size: 1rem; line-height: 1.3; margin: 0; }
.product-card__title a { text-decoration: none; }
.product-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.product-card__meta { margin: 0; font-size: 0.8125rem; color: var(--c-muted); }
.product-card .price { margin-top: 0.2rem; font-family: var(--font); font-size: 0.875rem; font-weight: 600; }
.price { color: var(--c-heading); font-weight: 600; }
.price del { color: var(--c-muted); font-weight: 400; margin-right: 0.35rem; }
.price ins { text-decoration: none; color: var(--c-sale); }
.price .woocommerce-Price-currencySymbol { font-size: 0.8em; text-transform: lowercase; margin-left: 0.15em; }
@media (max-width: 479px) {
	.quick-add { height: 2.5rem; max-width: 2.5rem; padding: 0 0.625rem; right: 0.6rem; bottom: 0.6rem; }
	.quick-add .icon { width: 1.125rem; height: 1.125rem; }
	.product-card__title { font-size: 0.9375rem; }
}

/* Block: Hero ------------------------------------------------------------ */
.hero { position: relative; display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--c-dark); }
.hero--large { min-height: min(85vh, 56.25rem); }
.hero--full { min-height: 100svh; }
.hero--medium { min-height: min(60vh, 40rem); }
.hero__media, .hero__media img, .hero__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__video { opacity: 0; transition: opacity 1s; }
.hero__video.is-playing { opacity: 1; }
.hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgba(20, 12, 6, calc(var(--overlay, 0.3) + 0.3)), rgba(20, 12, 6, var(--overlay, 0.3)) 55%, rgba(20, 12, 6, calc(var(--overlay, 0.3) + 0.15))); }
.hero__content { position: relative; z-index: 1; padding-block: 3rem; }
.hero__inner { max-width: 45rem; }
.hero .eyebrow { color: var(--c-gold); }
.hero__title { color: #fff; font-size: var(--fs-3xl); font-weight: 300; line-height: 0.95; margin-bottom: 1.25rem; }
.hero__text { font-size: var(--fs-md); max-width: 52ch; color: rgba(255, 255, 255, 0.88); margin-bottom: 2rem; }
.hero--center { align-items: center; text-align: center; }
.hero--center .hero__inner { margin-inline: auto; }
.hero--center .btn-row { justify-content: center; }
.hero--center .hero__text { margin-inline: auto; }

/* Cinematic: full viewport, text composed along the bottom edge */
.hero--cinematic, .hero--cinematic.hero--medium, .hero--cinematic.hero--large, .hero--cinematic.hero--full { height: 100vh; height: 100svh; min-height: 34rem; }
.hero--cinematic .hero__content {
	width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22rem); align-items: end; gap: 2rem 4rem;
	padding: calc(var(--header-h) + 3rem) var(--gutter) clamp(2.5rem, 6vh, 4.5rem);
}
.hero--cinematic .eyebrow { margin-bottom: 1.25rem; }
.hero--cinematic .hero__title { font-size: var(--fs-3xl); font-weight: 300; line-height: 1; letter-spacing: -0.02em; text-transform: none; margin: 0; max-width: 14ch; }
.hero--cinematic .hero__line { display: block; }
.hero--cinematic .hero__line em { color: var(--c-gold); font-weight: 300; }
.hero--cinematic .hero__aside { padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.35); }
.hero--cinematic .hero__text { font-size: 0.9375rem; line-height: 1.65; margin: 0 0 1.75rem; max-width: none; color: rgba(255, 255, 255, 0.86); }
.hero--cinematic .btn-row { gap: 0.75rem 1.5rem; }
@media (max-width: 991px) {
	.hero--cinematic .hero__content { grid-template-columns: 1fr; gap: 2rem; }
	.hero--cinematic .hero__aside { max-width: 26rem; }
}

/* Editorial */
.hero--editorial { display: block; min-height: 0; background: var(--c-cream); color: var(--c-text); }
.hero--editorial::after { display: none; }
.hero--editorial .hero__head {
	display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 1.5rem 2rem; align-items: end;
	padding-top: 2.5rem; padding-bottom: 2rem;
}
.hero--editorial .hero__title { color: var(--c-heading); margin: 0; }
.hero--editorial .eyebrow { color: var(--c-gold-ink); }
.hero--editorial .hero__text { color: var(--c-text); margin-bottom: 1.5rem; }
.hero--editorial .hero__media { position: relative; display: block; aspect-ratio: 16 / 7; overflow: hidden; }
@media (max-width: 767px) {
	.hero--editorial .hero__head { grid-template-columns: 1fr; }
	.hero--editorial .hero__media { aspect-ratio: 4 / 3; }
}

/* Split */
.hero--split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; background: var(--c-cream); color: var(--c-text); }
.hero--split::after { display: none; }
.hero--split .hero__media { position: relative; order: 2; }
.hero--split .hero__content { display: flex; align-items: center; padding: 3rem var(--gutter); max-width: none; }
.hero--split .hero__inner { max-width: 35rem; margin-left: auto; }
.hero--split .hero__title { color: var(--c-heading); font-size: var(--fs-2xl); }
.hero--split .hero__text { color: var(--c-text); }
.hero--split .eyebrow { color: var(--c-gold-ink); }
@media (max-width: 767px) {
	.hero--split { grid-template-columns: 1fr; min-height: 0; }
	.hero--split .hero__media { order: 0; aspect-ratio: 4 / 3; }
	.hero--split .hero__inner { margin-left: 0; }
}

/* Block: Page header ----------------------------------------------------- */
.page-header { padding-block: 3rem; }
.page-header__title { font-size: var(--fs-2xl); margin-bottom: 0.35em; }
.page-header--plain { text-align: center; }
.page-header--plain .lead { margin-inline: auto; }
.page-header--split .page-header__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gutter); align-items: center; }
.page-header--split .page-header__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.page-header--cover { position: relative; color: #fff; min-height: 60vh; display: flex; align-items: flex-end; }
.page-header--cover .page-header__media, .page-header--cover .page-header__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-header--cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 12, 6, 0.7), rgba(20, 12, 6, 0.2)); }
.page-header--cover .container { position: relative; z-index: 1; }
.page-header--cover .page-header__title, .page-header--cover .lead { color: #fff; }
.page-header--cover .eyebrow { color: var(--c-gold); }
@media (max-width: 767px) { .page-header--split .page-header__grid { grid-template-columns: 1fr; } }

/* Block: Split feature --------------------------------------------------- */
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.split__media { position: relative; min-height: 100%; }
.split--layout-single .split__media img { width: 100%; height: 100%; object-fit: cover; }
.split--portrait .split__media img { aspect-ratio: 4 / 5; }
.split--square .split__media img { aspect-ratio: 1; }
.split--landscape .split__media img { aspect-ratio: 3 / 2; }
.split__content { display: flex; align-items: center; padding: 3rem var(--gutter); }
.split__inner { max-width: 32.5rem; }
.split--image-left .split__inner { margin-right: auto; }
.split--image-right .split__media { order: 2; }
.split--image-right .split__inner { margin-left: auto; }
.split .prose { margin-bottom: 2.25rem; }
.split .section-title { font-size: var(--fs-xl); }

/* Duo + collage: sit inside the container instead of bleeding to the edge */
.split--layout-duo, .split--layout-collage {
	gap: 2rem; align-items: center;
	padding: var(--space-section) max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)));
}
.split--layout-duo .split__content, .split--layout-collage .split__content { padding: 0; }
.split--layout-duo .split__inner, .split--layout-collage .split__inner { margin: 0; }
.split--layout-duo .split__media { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.split .split__img img { width: 100%; aspect-ratio: 3 / 5; object-fit: cover; }
.split--layout-duo .split__img--2 { margin-top: 2rem; }
.split--layout-collage .split__media { padding-bottom: 18%; }
.split--layout-collage .split__img--1 { width: 72%; margin-left: auto; }
.split--layout-collage .split__img--1 img { aspect-ratio: 4 / 5; }
.split--layout-collage .split__img--2 { position: absolute; left: 0; bottom: 0; width: 56%; border: 0.375rem solid var(--c-cream); }
.split--layout-collage.bg-white .split__img--2 { border-color: #fff; }
.split--layout-collage.bg-blush .split__img--2 { border-color: var(--c-blush); }
.split--layout-collage .split__img--2 img { aspect-ratio: 4 / 3; }
@media (max-width: 767px) {
	.split { grid-template-columns: 1fr; }
	.split--image-right .split__media { order: 0; }
}

/* Block: Statement ------------------------------------------------------- */
.statement__text { font-family: var(--font-display); font-weight: 300; font-size: 1.75rem; line-height: 1.35; color: var(--c-heading); margin-bottom: 2rem; }
.statement__text em { font-style: italic; color: var(--c-gold-ink); }
.bg-dark .statement__text { color: #fff; }
.statement__author { display: grid; gap: 0.1rem; margin: 0 0 2rem; }
.statement__author span { font-family: var(--font-display); font-size: 1rem; color: var(--c-heading); }
.statement__author small { font-size: var(--fs-sm); color: var(--c-muted); }

/* Block: Marquee --------------------------------------------------------- */
.marquee { overflow: hidden; padding-block: 2.5rem; }
.marquee__track { display: flex; width: max-content; animation: marquee 45s linear infinite; }
.marquee--slow .marquee__track { animation-duration: 70s; }
.marquee--fast .marquee__track { animation-duration: 28s; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__group { display: flex; align-items: center; flex: none; }
.marquee__group li { padding-inline: 1rem; font-family: var(--font-display); font-weight: 300; font-size: 2.2rem; line-height: 1.15; color: var(--c-gold-ink); white-space: nowrap; }
.marquee__group .marquee__sep { font-weight: 300; font-size: 1.8rem; color: var(--c-gold); }
.bg-dark .marquee__group li { color: var(--c-gold); }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; } .marquee { overflow-x: auto; } }

/* Block: Features -------------------------------------------------------- */
.features__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 1.5rem; }
.features__grid--4 { grid-template-columns: repeat(4, 1fr); }
.features__grid--2 { grid-template-columns: repeat(2, 1fr); max-width: 56.25rem; margin-inline: auto; }
.feature { position: relative; display: grid; justify-items: center; text-align: center; gap: 0.6rem; }
.feature__icon { width: 2.875rem; height: 2.875rem; color: var(--c-gold-ink); stroke-width: 1.1; margin-bottom: 0.6rem; }
.feature__title { font-size: 1.35rem; margin: 0; }
.feature__title a { text-decoration: none; }
.feature__title a::after { content: ""; position: absolute; inset: 0; }
.feature__text { margin: 0; max-width: 32ch; }
.feature__arrow { margin-top: 0.5rem; color: var(--c-heading); transition: transform 0.25s var(--ease); }
.feature__arrow .icon { width: 1.25rem; height: 1.25rem; }
.feature:hover .feature__arrow { transform: translateX(0.3125rem); color: var(--c-gold-ink); }
@media (max-width: 767px) { .features__grid, .features__grid--4 { grid-template-columns: 1fr; gap: 3rem; } }

/* Block: Category tiles -------------------------------------------------- */
.tiles { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); }
.tiles--3 { grid-template-columns: repeat(3, 1fr); }
.tiles--2 { grid-template-columns: repeat(2, 1fr); }
.tiles--1 { grid-template-columns: 1fr; }
.tile { position: relative; display: block; overflow: hidden; color: #fff; text-decoration: none; background: var(--c-dark); aspect-ratio: 4 / 5; }
.tiles--2 .tile { aspect-ratio: 5 / 6; }
.tile__media, .tile__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 12, 6, 0.7), transparent 55%); }
.tile__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 1.25rem; display: grid; gap: 0.35rem; }
.tile__title { font-family: var(--font-display); font-weight: 300; font-size: 1.6rem; line-height: 1.05; }
.tile__text { font-size: var(--fs-xs); letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.85; }
.tile:hover { color: #fff; }
.tile:hover .tile__media img { transform: scale(1.05); }
@media (max-width: 767px) { .tiles, .tiles--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px) { .tiles--2 { grid-template-columns: 1fr; } .tiles--2 .tile { aspect-ratio: 4 / 5; } }

/* Block: USP bar --------------------------------------------------------- */
.usp-bar { padding-block: 2rem; }
.usp-bar__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr)); gap: 1.25rem 2rem; }
.usp { display: flex; align-items: center; gap: 0.9rem; }
@media (min-width: 768px) { .usp { justify-content: center; } }
.usp__icon { width: 2rem; height: 2rem; color: var(--c-gold-ink); stroke-width: 1.2; }
.bg-dark .usp__icon { color: var(--c-gold); }
.usp strong { display: block; font-family: var(--font-display); font-weight: 400; font-size: 1.1rem; color: var(--c-heading); line-height: 1.2; }
.bg-dark .usp strong { color: #fff; }
.usp small { display: block; font-size: var(--fs-xs); color: var(--c-muted); }

/* Block: Awards ---------------------------------------------------------- */
.awards__grid { display: grid; gap: 2rem; }
.awards__grid.has-image { grid-template-columns: 1.15fr 1fr; align-items: center; }
.awards__list { margin-top: 2rem !important; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.awards__list li { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.bg-cream .awards__list, .bg-white .awards__list, .bg-blush .awards__list, .bg-sand .awards__list,
.bg-cream .awards__list li, .bg-white .awards__list li, .bg-blush .awards__list li, .bg-sand .awards__list li { border-color: var(--c-line); }
.awards__year { font-family: var(--font-display); font-size: 1.25rem; color: var(--c-gold); }
.awards__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 767px) { .awards__grid.has-image { grid-template-columns: 1fr; } }

/* Block: CTA banner ------------------------------------------------------ */
.cta-banner { position: relative; color: #fff; overflow: hidden; }
.cta-banner__media, .cta-banner__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cta-banner.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 12, 6, 0.75), rgba(20, 12, 6, 0.2)); }
.cta-banner__content { position: relative; z-index: 1; padding-block: 5rem; }
.cta-banner__inner { max-width: 37.5rem; }
.cta-banner .section-title { color: #fff; }
.cta-banner .eyebrow { color: var(--c-gold); }
.cta-banner p { color: rgba(255, 255, 255, 0.88); margin-bottom: 2.25rem; }
.cta-banner--center { text-align: center; }
.cta-banner--center .cta-banner__inner { margin-inline: auto; }
.cta-banner--center .section-title { margin-inline: auto; }
.cta-banner--center .btn-row { justify-content: center; }
.cta-banner__media[data-parallax] { top: -12%; bottom: -12%; height: auto; }
.cta-banner__media[data-parallax] img { height: 100%; }
.cta-banner--center.has-image::after { background: rgba(20, 12, 6, 0.5); }

/* Block: Logo wall ------------------------------------------------------- */
.logo-wall__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.75rem, 1fr)); gap: 2.25rem 3rem; align-items: center; margin-top: 2.5rem !important; }
.logo-wall__grid img { max-height: 3.5rem; width: auto; margin: 0 auto; object-fit: contain; transition: filter 0.3s, opacity 0.3s; }
.is-grayscale .logo-wall__grid img { filter: grayscale(1); opacity: 0.65; }
.is-grayscale .logo-wall__grid li:hover img { filter: none; opacity: 1; }

/* Block: Gallery --------------------------------------------------------- */
.gallery-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.5rem; }
.gallery-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 767px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); } }

/* Accordion (FAQ + product) --------------------------------------------- */
.accordion { border-top: 1px solid var(--c-line); }
.accordion__item { border-bottom: 1px solid var(--c-line); }
.accordion__item summary {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; cursor: pointer;
	font-family: var(--font-display); font-size: 1.2rem; color: var(--c-heading); list-style: none;
}
.accordion__item summary::-webkit-details-marker { display: none; }
.accordion__item summary .icon { width: 1.125rem; height: 1.125rem; transition: transform 0.25s var(--ease); }
.accordion__item[open] summary .icon { transform: rotate(45deg); }
.accordion__body { padding-bottom: 1.25rem; font-size: var(--fs-sm); }
.accordion__body > *:last-child { margin-bottom: 0; }
.faq__grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2rem; }
@media (max-width: 767px) { .faq__grid { grid-template-columns: 1fr; } }

/* Block: Contact --------------------------------------------------------- */
.contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 5rem; align-items: start; }
.page-header--plain + .contact { padding-top: 1rem; }
.contact__info .section-title { margin-bottom: 1rem; }
.contact__intro { max-width: 28rem; margin: 0 0 2.5rem; font-size: 0.9375rem; line-height: 1.75; }
ul.contact-big { list-style: none; margin: 0 0 2.5rem; padding: 0; border-top: 1px solid var(--c-line); }
.contact-big li { padding: 1.25rem 0; border-bottom: 1px solid var(--c-line); }
.contact-big__label { display: block; margin-bottom: 0.25rem; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted); }
.contact-big__value { font-family: var(--font-display); font-size: 1.75rem; font-weight: 300; color: var(--c-heading); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 0.4s var(--ease), color 0.2s; }
.contact-big__value:hover { color: var(--c-gold-ink); background-size: 100% 1px; }
.contact-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 2rem; margin: 0; }
.contact-meta div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.contact-meta dt { margin-bottom: 0.3rem; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-muted); }
.contact-meta dd { margin: 0; font-size: 0.875rem; color: var(--c-heading); }
.contact-meta__social { display: flex; gap: 1.25rem; }
.contact-meta__social a { color: var(--c-heading); text-underline-offset: 0.3em; }
.contact__form { padding: 2.5rem; background: var(--c-white); }
.contact__form-title { margin: 0 0 1.75rem; font-family: var(--font-display); font-size: 1.5rem; color: var(--c-heading); }
.contact__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.contact__map { margin-top: 5rem; }
.map-embed { position: relative; aspect-ratio: 21 / 8; overflow: hidden; background: var(--c-card); }
.map-embed__img, .map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.map-embed__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; background: rgba(36, 23, 14, 0.42); color: #fff; text-align: center; }
.map-embed__overlay p { margin: 0; font-family: var(--font-display); font-size: 1.5rem; }
@media (max-width: 991px) {
	.contact__grid { grid-template-columns: 1fr; gap: 3rem; }
	.map-embed { aspect-ratio: 4 / 3; }
}
@media (max-width: 479px) {
	.contact__form { padding: 1.5rem 1.25rem; margin-inline: calc(-1 * var(--gutter)); }
	.contact-big__value { font-size: 1.4rem; }
	.contact-meta { grid-template-columns: 1fr; }
}

/* Contact Form 7 */
.wpcf7 form { display: grid; gap: 1.1rem; }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.cf-field { display: grid; gap: 0.4rem; font-weight: 400; }
.wpcf7 fieldset.hidden-fields-container { display: none; }
.cf-field > span:first-child { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-muted); }
.wpcf7-form-control-wrap { display: block; position: relative; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; min-height: 3rem; padding: 0.75rem 0; border: 0; border-bottom: 1px solid var(--c-line); background: transparent;
	font-size: 0.9375rem; color: var(--c-heading); border-radius: 0; transition: border-color 0.25s;
}
.wpcf7 select { appearance: none; padding-right: 1.5rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23241c10' stroke-width='1.3'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E") right center no-repeat; cursor: pointer; }
.wpcf7 textarea { min-height: 7rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-bottom-color: var(--c-heading); }
.wpcf7 ::placeholder { color: rgba(106, 89, 82, 0.55); }
.cf-consent { font-size: 0.8125rem; line-height: 1.5; color: var(--c-text); }
.cf-consent .wpcf7-list-item { margin: 0; }
.cf-consent label { display: flex; gap: 0.75rem; align-items: flex-start; font-weight: 400; font-size: 0.8125rem; color: var(--c-text); cursor: pointer; }
.cf-consent input[type="checkbox"] { flex: none; width: 1.1rem; height: 1.1rem; margin: 0.15rem 0 0; accent-color: var(--c-heading); }
.cf-submit { display: flex; align-items: center; gap: 1rem; margin-top: 0.5rem; }
.cf-submit .wpcf7-submit { min-height: 3rem; padding-inline: 2rem; }
.wpcf7-spinner { width: 1.25rem; height: 1.25rem; border: 2px solid var(--c-line); border-top-color: var(--c-heading); border-radius: 50%; visibility: hidden; animation: spin 0.8s linear infinite; }
.wpcf7 form.submitting .wpcf7-spinner { visibility: visible; }
.wpcf7-not-valid-tip { display: block; margin-top: 0.35rem; font-size: 0.75rem; color: var(--c-sale); }
.wpcf7 .wpcf7-not-valid { border-bottom-color: var(--c-sale); }
.wpcf7-response-output { margin: 0.5rem 0 0; padding: 0.85rem 1rem; font-size: 0.875rem; border-left: 2px solid var(--c-gold); background: var(--c-cream); }
.wpcf7-response-output:empty, .wpcf7 form.init .wpcf7-response-output { display: none; }
.wpcf7 form.sent .wpcf7-response-output { border-left-color: #3c7a4a; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-left-color: var(--c-sale); }
.screen-reader-response { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 479px) { .cf-row { grid-template-columns: 1fr; } }

/* Content pages ---------------------------------------------------------- */
.page-title { padding-block: 3rem 1.75rem; }
.page-title h1 { margin: 0; }
.entry-content > :not(.cc-block):not(.alignfull):not(.woocommerce) {
	max-width: calc(var(--narrow) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter);
}
.entry-content > .alignwide { max-width: var(--container); }
.entry-content > .woocommerce, .entry-content > .wp-block-woocommerce-cart, .entry-content > .wp-block-woocommerce-checkout { max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.entry-content > :not(.cc-block):last-child { margin-bottom: var(--space-section); }
.entry-content--narrow { padding-bottom: var(--space-section); }
.entry-content > h2 { margin-top: 1.5em; font-size: 2rem; }
.entry-content > h3 { margin-top: 1.4em; }
.single-article__media img { width: 100%; margin-bottom: 2.5rem; }
.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); gap: 2.5rem 1.75rem; padding-bottom: var(--space-section); }
.post-card__media { display: block; aspect-ratio: 4 / 3; background: var(--c-card); overflow: hidden; margin-bottom: 1.1rem; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.post-card__title { font-size: 1.45rem; }
.post-card__title a { text-decoration: none; }
.nav-links { display: flex; gap: 0.5rem; justify-content: center; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.875rem; height: 2.875rem; text-decoration: none; font-family: var(--font-display); font-size: 1.1rem; border: 1px solid transparent; }
.page-numbers.current { border-color: var(--c-heading); color: var(--c-heading); }
.error-404 h1 { margin-inline: auto; max-width: 16ch; }
.error-404 .lead { margin-inline: auto; }
.cc-placeholder { padding: 2rem; border: 1px dashed var(--c-gold); text-align: center; color: var(--c-muted); background: var(--c-white); }

/* Footer ----------------------------------------------------------------- */
.site-footer {
	--f-100: #f7efe6;
	--f-88: rgba(247, 239, 230, 0.88);
	--f-64: rgba(247, 239, 230, 0.64);
	--f-48: rgba(247, 239, 230, 0.48);
	--f-16: rgba(247, 239, 230, 0.16);
	background: var(--c-dark); color: var(--f-88); padding: 3rem 0 2rem; box-shadow: inset 0 -1px #000;
}
.footer-halves { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-bottom: 3.5rem; }
.footer-brand { display: flex; flex-direction: column; gap: 2rem; max-width: 28rem; }
.footer-logo { display: inline-block; width: 7rem; }
.footer-logo img { width: 100%; height: auto; filter: brightness(0) invert(1); opacity: 0.95; }
.footer-contact { display: flex; flex-direction: column; gap: 1rem; }
.footer-contact p { margin: 0; font-size: 0.875rem; line-height: 1.5; letter-spacing: 0.016em; color: var(--f-88); }
.footer-contact a { color: inherit; text-decoration: none; }
.footer-contact a:hover { color: var(--f-100); text-decoration: underline; }
.footer-newsletter { max-width: 24rem; }
.footer-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.footer-col { display: flex; flex-direction: column; gap: 1.25rem; }
.footer-col__label {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; cursor: default;
	font-size: 0.75rem; font-weight: 600; line-height: 1.33; letter-spacing: 0.08em; text-transform: uppercase; color: var(--f-88);
}
.footer-col__label::-webkit-details-marker { display: none; }
.footer-col__label .m-acc__icon { display: none; width: 0.625rem; height: 0.625rem; color: var(--f-100); }
.footer-links { display: flex; flex-direction: column; gap: 0.25rem; }
.footer-links a { color: var(--f-100); font-size: 0.875rem; line-height: 1.5; letter-spacing: 0.016em; text-decoration: none; transition: opacity 0.2s; }
.footer-links a:hover { color: var(--f-100); opacity: 0.64; }
.footer-bottom { display: flex; flex-direction: column; gap: 2rem; }
.footer-legal { display: flex; align-items: center; justify-content: space-between; gap: 3rem; padding: 1.5rem 0; border-top: 1px solid var(--f-16); border-bottom: 1px solid var(--f-16); }
.footer-small { margin: 0; font-size: 0.75rem; line-height: 1.33; letter-spacing: 0.02em; color: var(--f-64); }
.footer-legal__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.footer-legal__links a { color: var(--f-64); text-decoration: none; transition: color 0.3s; }
.footer-legal__links a:hover { color: var(--f-48); }
.footer-last { display: flex; align-items: flex-start; justify-content: space-between; gap: 3rem; }
.footer-last__note { display: grid; gap: 1rem; max-width: 42.5rem; }
.payment-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; justify-self: start; padding: 0.45rem 0.8rem; background: #fff; }
.payment-logos img { height: 1.6rem; width: auto; }
.footer-social { display: flex; align-items: center; gap: 0.75rem; }
.footer-social a { display: inline-flex; width: 1.25rem; height: 1.25rem; color: var(--f-48); transition: opacity 0.2s; }
.footer-social a:hover { color: var(--f-48); opacity: 0.5; }
.footer-social svg { width: 100%; height: 100%; }
@media (max-width: 991px) {
	.footer-halves { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.site-footer { padding: 2rem 0 1.5rem; }
	.footer-halves { gap: 3.5rem; margin-bottom: 0; }
	.footer-columns { display: flex; flex-direction: column; gap: 0; }
	.footer-col { gap: 0; padding: 1rem 0; border-top: 1px solid var(--f-16); }
	.footer-col:last-child { border-bottom: 1px solid var(--f-16); }
	.footer-col__label { cursor: pointer; font-size: 0.625rem; line-height: 1.2; }
	.footer-col__label .m-acc__icon { display: block; }
	.footer-col[open] .footer-links { padding-top: 2rem; }
	.footer-links a { font-size: 0.875rem; line-height: 1.43; letter-spacing: 0; }
	.footer-bottom { gap: 3.5rem; margin-top: 3.5rem; }
	.footer-legal { flex-wrap: wrap; gap: 0.5rem 2rem; padding: 1rem 0; border-top: 0; }
	.footer-last { flex-direction: column; gap: 1.5rem; }
	.footer-small { font-size: 0.625rem; line-height: 1.4; }
}
.bg-cream .awards__year, .bg-white .awards__year, .bg-blush .awards__year, .bg-sand .awards__year { color: var(--c-gold-ink); }

/* Minimal refinements on small screens */
@media (max-width: 767px) {
	.statement__text { font-size: 1.35rem; }
	.nav-banner__inner { letter-spacing: 0.06em; font-size: 0.5625rem; padding: 0.35rem 0.75rem; }
	.hero--cinematic .hero__line--1 { padding-left: 0.8em; }
	.btn, .button { min-height: 2.75rem; }
}

/* ==========================================================================
   Animated landing blocks (Korporativni pokloni)
   ========================================================================== */

/* Animation helpers */
.anim-pending [data-anim]:not([data-anim="hero"]):not([data-anim="expand"]):not([data-anim="row"]) { visibility: hidden; }
.anim-pending [data-anim="hero"] .hero__content { visibility: hidden; } /* never hide the hero photo (LCP) */
.hero__aside.has-rule { position: relative; border-top: 0; }
.hero__rule { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255, 255, 255, 0.4); transform-origin: left center; }
.split__single { height: 100%; overflow: hidden; }
.line-mask { display: block; overflow: hidden; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.line-mask > * { display: block; will-change: transform; }
.split-word { will-change: opacity; }

/* Showcase hero */
.showcase { position: relative; overflow: hidden; padding: 4rem 0 3rem; }
.showcase__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 4rem; align-items: center; min-height: calc(100svh - 10rem); }
.showcase__title { font-size: var(--fs-3xl); font-weight: 300; line-height: 1.02; letter-spacing: -0.025em; margin: 0 0 1.75rem; }
.showcase__line { display: block; }
.showcase__line em { font-style: italic; color: var(--c-gold-ink); }
.showcase__intro { max-width: 30rem; margin: 0 0 2.25rem; font-size: 1rem; line-height: 1.75; }
.showcase__collage { position: relative; width: 100%; max-width: min(100%, calc((100svh - 9rem) * 1.05)); aspect-ratio: 1.05 / 1; justify-self: end; }
.showcase__img { position: absolute; margin: 0; overflow: hidden; background: var(--c-card); }
.showcase__img img { width: 100%; height: 100%; object-fit: cover; }
.showcase__img--1 { top: 0; right: 0; width: 62%; height: 78%; }
.showcase__img--2 { left: 0; top: 22%; width: 42%; height: 40%; z-index: 2; box-shadow: 0 1.5rem 3rem -1.5rem rgba(36, 23, 14, 0.4); }
.showcase__img--3 { left: 22%; bottom: 0; width: 34%; height: 32%; z-index: 3; box-shadow: 0 1.5rem 3rem -1.5rem rgba(36, 23, 14, 0.4); }
.showcase__facts { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 3.5rem !important; border-top: 1px solid var(--c-line); }
.showcase__facts li { display: grid; gap: 0.3rem; padding: 1.5rem 1.5rem 0 0; }
.showcase__facts li + li { padding-left: 1.5rem; border-left: 1px solid var(--c-line); }
.showcase__facts strong { font-family: var(--font-display); font-size: 1.75rem; font-weight: 300; line-height: 1.1; color: var(--c-heading); }
.showcase__facts span { font-size: 0.8125rem; color: var(--c-muted); }
@media (max-width: 991px) {
	.showcase__grid { grid-template-columns: 1fr; gap: 3rem; min-height: 0; }
	.showcase__collage { max-width: 34rem; width: 100%; margin-inline: auto; }
	.showcase__facts { grid-template-columns: 1fr 1fr; }
	.showcase__facts li:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 479px) {
	.showcase { padding-top: 2.5rem; }
	.showcase__facts strong { font-size: 1.35rem; }
}

/* Logo marquee */
.logo-wall .logo-wall__title { font-size: 0.6875rem; font-family: var(--font); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 2.5rem; }
.logo-marquee { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
ul.logo-marquee__group { display: flex; align-items: center; flex: none; gap: 4.5rem; padding-right: 4.5rem; list-style: none; margin: 0; }
.logo-marquee__group img { height: 2.75rem; width: auto; max-width: 9rem; object-fit: contain; }
.is-grayscale .logo-marquee__group img { filter: grayscale(1); opacity: 0.6; transition: filter 0.3s, opacity 0.3s; }
.is-grayscale .logo-marquee__group li:hover img { filter: none; opacity: 1; }
.logo-wall:has(.logo-marquee) { padding-block: 4.5rem; }

/* Scroll story */
.story__head { max-width: 40rem; margin-bottom: 3.5rem; }
.story__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6rem; align-items: start; }
.story--image-right .story__media { order: 2; }
.story__media { position: sticky; top: calc(var(--header-h) + 3rem); }
.story__frame { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-card); }
.story__img { position: absolute; inset: 0; margin: 0; overflow: hidden; }
.story__img img { width: 100%; height: 100%; object-fit: cover; }
.story__img:not(.is-active) { visibility: hidden; }
.story__counter { position: absolute; left: 1.25rem; bottom: 1.25rem; z-index: 5; padding: 0.35rem 0.7rem; background: var(--c-cream); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; color: var(--c-heading); }
.story__chapter { min-height: 70vh; display: flex; flex-direction: column; justify-content: center; padding-block: 3rem; opacity: 0.35; transition: opacity 0.5s var(--ease); }
.story__chapter:first-child { min-height: 55vh; justify-content: flex-start; padding-top: 0; }
.story__chapter.is-active { opacity: 1; }
.story__label { display: flex; align-items: center; gap: 0.75rem; margin: 0 0 1.25rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-gold-ink); }
.story__label span { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid currentColor; border-radius: 50%; letter-spacing: 0; }
.story__title { font-size: var(--fs-xl); font-weight: 300; line-height: 1.1; margin: 0 0 1.25rem; max-width: 16ch; }
.story__text { max-width: 28rem; }
.story__img-mobile { display: none; }
@media (max-width: 991px) {
	.story__grid { grid-template-columns: 1fr; gap: 0; }
	.story__media { display: none; }
	.story__chapter, .story__chapter:first-child { min-height: 0; opacity: 1; padding-block: 0 3.5rem; }
	.story__img-mobile { display: block; margin: 0 0 1.5rem; aspect-ratio: 4 / 3; overflow: hidden; }
	.story__img-mobile img { width: 100%; height: 100%; object-fit: cover; }
}

/* Steps */
.steps__list { position: relative; display: grid; grid-template-columns: repeat(var(--steps, 4), minmax(0, 1fr)); gap: 2.5rem; list-style: none; margin: 0; padding: 0; counter-reset: none; }
.steps__line { position: absolute; left: 0; right: 0; top: 1.5rem; height: 1px; background: var(--c-line); }
.steps__line-fill { position: absolute; inset: 0; background: var(--c-gold-ink); transform-origin: left center; }
.step { position: relative; padding-top: 4.75rem; }
.step__num {
	position: absolute; top: 0; left: 0; display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem;
	border: 1px solid var(--c-line); border-radius: 50%; background: var(--c-white); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; color: var(--c-muted);
	transition: background-color 0.5s var(--ease), color 0.5s var(--ease), border-color 0.5s var(--ease), transform 0.5s var(--ease);
}
.bg-cream .step__num { background: var(--c-cream); }
.step.is-lit .step__num { background: var(--c-heading); border-color: var(--c-heading); color: #fff; transform: scale(1.08); }
.step__title { font-size: 1.375rem; font-weight: 300; margin: 0 0 0.6rem; }
.step__text { margin: 0; font-size: 0.9375rem; line-height: 1.65; }
@media (max-width: 767px) {
	.steps__list { grid-template-columns: 1fr; gap: 2.25rem; padding-left: 4.25rem; }
	.steps__line { left: 1.5rem; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
	.steps__line-fill { transform-origin: center top; }
	.step { padding-top: 0.6rem; }
	.step__num { left: -4.25rem; }
}

/* Editorial hero: expanding photo */
.hero__expand { overflow: hidden; will-change: clip-path; }
.hero--editorial .hero__expand .hero__media { aspect-ratio: 16 / 8; }
.hero--editorial .hero__head { text-align: left; }

/* Timeline (pinned horizontal story) */
.timeline { overflow: hidden; }
.timeline__pin { display: flex; flex-direction: column; justify-content: center; min-height: 100vh; padding: 5rem 0 4rem; }
.timeline__head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 1rem 3rem; margin-bottom: 3rem; }
.timeline__head .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.timeline__title { margin: 0; max-width: 18ch; }
.timeline__progress { width: 12rem; height: 1px; background: rgba(255, 255, 255, 0.2); margin-bottom: 0.9rem; }
.bg-cream .timeline__progress, .bg-white .timeline__progress { background: var(--c-line); }
.timeline__progress span { display: block; height: 100%; background: var(--c-gold); transform: scaleX(0); transform-origin: left; }
.timeline__viewport { overflow: hidden; }
ol.timeline__track { display: flex; gap: 4rem; width: max-content; margin: 0; padding: 0 var(--gutter); list-style: none; will-change: transform; }
.tl-item { display: grid; grid-template-columns: 17rem 15rem; gap: 2rem; align-items: end; }
.tl-item:nth-child(even) { align-items: start; padding-top: 6rem; }
.tl-item__img { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: rgba(255, 255, 255, 0.06); }
.tl-item__img img { width: 100%; height: 100%; object-fit: cover; }
.tl-item__mark { display: block; margin-bottom: 1rem; font-family: var(--font-display); font-weight: 300; font-style: italic; font-size: 3.25rem; line-height: 1; color: var(--c-gold); }
.tl-item__title { font-size: 1.5rem; font-weight: 300; line-height: 1.2; margin: 0 0 0.75rem; }
.bg-dark .tl-item__title { color: #fff; }
.tl-item__text { margin: 0; font-size: 0.875rem; line-height: 1.7; }
@media (max-width: 991px) {
	.timeline__pin { min-height: 0; padding: 4rem 0; }
	.timeline__head { grid-template-columns: 1fr; }
	.timeline__progress { display: none; }
	ol.timeline__track { flex-direction: column; width: auto; gap: 3rem; }
	.tl-item, .tl-item:nth-child(even) { grid-template-columns: 1fr; padding-top: 0; gap: 1.25rem; }
	.tl-item__img { aspect-ratio: 4 / 3; }
	.tl-item__mark { font-size: 2.5rem; }
}

/* Values: big rows + cursor photo */
.values { position: relative; overflow: hidden; }
.values__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; align-items: start; }
.values__head { position: sticky; top: calc(var(--header-h) + 3rem); }
ol.values__list { list-style: none; margin: 0; padding: 0; }
.value {
	--line: 1; position: relative; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 0.9fr); gap: 1.5rem; align-items: baseline;
	padding: 2rem 0; transition: opacity 0.4s var(--ease);
}
.value::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--c-line); transform: scaleX(var(--line)); transform-origin: left; }
.value:last-child::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--c-line); }
.value__num { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; color: var(--c-gold-ink); }
.value__title { margin: 0; font-size: 2.25rem; font-weight: 300; line-height: 1.1; transition: transform 0.5s var(--ease), color 0.3s; }
.value__text { margin: 0; font-size: 0.9375rem; line-height: 1.7; }
.value__img { display: none; }
.value.is-dim { opacity: 0.3; }
.value:hover .value__title { transform: translateX(0.75rem); color: var(--c-gold-ink); }
.values__cursor {
	position: absolute; left: 0; top: 0; z-index: 3; width: 16rem; aspect-ratio: 4 / 5; margin: -10rem 0 0 -8rem; overflow: hidden;
	pointer-events: none; opacity: 0; visibility: hidden; transform: scale(0.85); box-shadow: 0 2rem 3rem -1.5rem rgba(36, 23, 14, 0.4);
}
.values__cursor img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 991px) {
	.values__grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.values__head { position: static; }
	.value { grid-template-columns: 2.5rem minmax(0, 1fr); }
	.value__text { grid-column: 2; }
	.value__title { font-size: 1.6rem; }
	.values__cursor { display: none; }
}
.wpcf7-submit:disabled { opacity: 0.45; cursor: not-allowed; }
@media (max-width: 767px) { .map-embed__overlay { padding: 1rem; } .map-embed__overlay p { font-size: 1.1rem; } }
