/* =========================================================
   LIVINE BAKEHOUSE — world-class build
   Cinematic, video-forward editorial. Monterrey, MX.
   ========================================================= */

:root {
  --cream:      #FAF5EE;
  --cream-2:    #F1E7D9;
  --paper:      #FBF8F2;
  --ink:        #1E1814;
  --ink-2:      #2C2320;
  --ink-soft:   #6B5F57;
  --rose:       #D98B9E;
  --rose-deep:  #BE6B81;
  --blush:      #F4DEE3;
  --sage:       #8FA98C;
  --sage-soft:  #D4E0CE;
  --gold:       #C2925A;
  --line:       rgba(30, 24, 20, 0.12);
  --line-light: rgba(255, 255, 255, 0.18);

  --font-display: "Fraunces", Georgia, serif;
  --font-body:    "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;

  --maxw: 1400px;
  --gutter: clamp(20px, 5vw, 80px);
  --radius: 20px;
  --radius-lg: 32px;
  --ease:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-io: cubic-bezier(0.16, 1, 0.3, 1);
  --shadow:  0 30px 80px -34px rgba(30, 24, 20, 0.5);
  --shadow-soft: 0 16px 44px -26px rgba(30, 24, 20, 0.55);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.is-loading { overflow: hidden; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.62;
  font-size: clamp(15px, 1.05vw, 17px);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 460;
  line-height: 1.02;
  letter-spacing: -0.018em;
  margin: 0;
  font-optical-sizing: auto;
}

::selection { background: var(--rose); color: #fff; }

/* film grain overlay */
body::after {
  content: "";
  position: fixed; inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.eyebrow {
  font-family: var(--font-body);
  font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.34em; text-transform: uppercase;
  color: var(--rose-deep); margin: 0;
  display: inline-flex; align-items: center; gap: 12px;
}
.eyebrow::before { content: ""; width: 26px; height: 1.5px; background: var(--rose-deep); display: inline-block; }
.eyebrow--light { color: var(--rose); }
.eyebrow--light::before { background: var(--rose); }

/* ---------- Buttons ---------- */
.btn {
  --bg: var(--ink); --fg: var(--cream);
  position: relative;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 30px;
  border-radius: 999px;
  font-family: var(--font-body); font-weight: 600;
  font-size: 0.82rem; letter-spacing: 0.07em; text-transform: uppercase;
  cursor: pointer; border: 1px solid transparent;
  background: var(--bg); color: var(--fg);
  overflow: hidden; isolation: isolate;
  transition: transform .5s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
  will-change: transform;
}
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--rose); transform: scaleY(0); transform-origin: bottom;
  transition: transform .5s var(--ease);
}
.btn:hover::before { transform: scaleY(1); }
.btn:hover { color: #fff; }
.btn--rose { --bg: var(--rose); --fg: #fff; }
.btn--rose::before { background: var(--ink); }
.btn--ghost { --bg: transparent; --fg: var(--ink); border-color: var(--line); }
.btn--ghost::before { background: var(--ink); }
.btn--on-dark { --bg: transparent; --fg: var(--cream); border-color: var(--line-light); }
.btn--on-dark::before { background: var(--cream); }
.btn--on-dark:hover { color: var(--ink); }

/* ---------- Preloader ---------- */
.loader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--ink); color: var(--cream);
  display: grid; place-items: center;
  transition: opacity .8s var(--ease), visibility .8s;
}
.loader.is-done { opacity: 0; visibility: hidden; }
.loader__mark {
  font-family: var(--font-display); font-style: italic; font-weight: 600;
  font-size: clamp(2.4rem, 7vw, 5rem); letter-spacing: -0.03em;
  position: relative; overflow: hidden;
}
.loader__mark span { display: inline-block; transform: translateY(110%); animation: rise .9s var(--ease) forwards; }
.loader__bar {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: min(220px, 50vw); height: 2px; background: rgba(255,255,255,.18); overflow: hidden;
}
.loader__bar i { position: absolute; inset: 0; width: 0; background: var(--rose); animation: fill 1.6s var(--ease) forwards; }
@keyframes rise { to { transform: translateY(0); } }
@keyframes fill { to { width: 100%; } }

/* ---------- Custom cursor ---------- */
.cursor {
  position: fixed; top: 0; left: 0; z-index: 9997;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--rose); pointer-events: none;
  transform: translate(-50%, -50%); mix-blend-mode: normal;
  transition: width .3s var(--ease), height .3s var(--ease), background .3s var(--ease);
}
.cursor--ring {
  width: 42px; height: 42px; background: transparent;
  border: 1.5px solid rgba(217,139,158,.6);
  transition: transform .18s var(--ease-io), width .3s var(--ease), height .3s var(--ease), opacity .3s;
}
.cursor.is-active { width: 0; height: 0; }
.cursor--ring.is-active { width: 76px; height: 76px; border-color: rgba(255,255,255,.85); background: rgba(255,255,255,.08); backdrop-filter: blur(2px); }
.cursor--ring.is-active::after { content: "ver"; font-family: var(--font-body); font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.cursor--ring { display: grid; place-items: center; }
body.has-cursor, body.has-cursor a, body.has-cursor button { cursor: none; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: transform .5s var(--ease), background .5s var(--ease), backdrop-filter .5s;
}
.site-header.is-hidden { transform: translateY(-100%); }
.site-header.is-solid {
  background: rgba(250, 245, 238, 0.82);
  backdrop-filter: saturate(150%) blur(16px);
  -webkit-backdrop-filter: saturate(150%) blur(16px);
  box-shadow: 0 1px 0 var(--line);
}
.nav { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 84px; }
.brand {
  font-family: var(--font-display); font-style: italic; font-weight: 600;
  font-size: 1.85rem; letter-spacing: -0.03em; line-height: 1; color: var(--ink);
  transition: color .4s var(--ease);
}
.brand small {
  display: block; font-family: var(--font-body); font-style: normal; font-weight: 600;
  font-size: 0.52rem; letter-spacing: 0.36em; text-transform: uppercase;
  color: var(--ink-soft); margin-top: 5px;
}
.site-header.at-top:not(.is-solid) .brand,
.site-header.at-top:not(.is-solid) .nav-links a,
.site-header.at-top:not(.is-solid) .sound-toggle { color: var(--cream); }
.site-header.at-top:not(.is-solid) .brand small { color: rgba(250,245,238,.7); }

.nav-links { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0;
  font-size: 0.82rem; font-weight: 500; letter-spacing: 0.04em; }
.nav-links a { position: relative; padding-block: 6px; transition: color .3s var(--ease); }
.nav-links a::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 1.5px;
  background: currentColor; transition: width .35s var(--ease);
}
.nav-links a:hover::after { width: 100%; }
.nav-right { display: flex; align-items: center; gap: 18px; }
.sound-toggle {
  display: inline-flex; align-items: center; gap: 9px; background: none; border: 0;
  cursor: pointer; font-family: var(--font-body); font-size: .72rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--ink);
}
.sound-toggle .eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 13px; }
.sound-toggle .eq i { width: 2px; height: 4px; background: currentColor; border-radius: 1px; animation: eq 1s ease-in-out infinite; }
.sound-toggle .eq i:nth-child(2){ animation-delay:.2s } .sound-toggle .eq i:nth-child(3){ animation-delay:.4s } .sound-toggle .eq i:nth-child(4){ animation-delay:.1s }
.sound-toggle.is-muted .eq i { animation-play-state: paused; height: 4px; }
@keyframes eq { 0%,100%{height:4px} 50%{height:13px} }

.nav-toggle { display: none; background: none; border: 0; cursor: pointer; width: 44px; height: 44px; flex-direction: column; justify-content: center; gap: 6px; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: currentColor; margin-inline: auto; transition: transform .35s var(--ease), opacity .25s; }

/* ---------- Hero ---------- */
.hero { position: relative; height: 100svh; min-height: 640px; overflow: hidden; color: var(--cream); isolation: isolate; }
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.08); }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(120% 80% at 50% 10%, rgba(30,24,20,0) 30%, rgba(30,24,20,.5) 100%),
    linear-gradient(to top, rgba(30,24,20,.85) 0%, rgba(30,24,20,.15) 42%, rgba(30,24,20,.35) 100%);
}
.hero__inner { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: clamp(40px, 7vh, 90px); }
.hero__kicker { font-size: 0.82rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--rose); margin: 0 0 24px; overflow: hidden; }
.hero h1 {
  font-size: clamp(3.2rem, 12.5vw, 13rem);
  line-height: 0.86; letter-spacing: -0.04em; font-weight: 420;
  margin: 0; text-transform: none;
}
.hero h1 .l { display: block; overflow: hidden; }
.hero h1 em { font-style: italic; color: var(--blush); }
.hero__foot { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px; margin-top: clamp(26px, 4vh, 46px); }
.hero__sub { max-width: 42ch; font-size: clamp(1rem, 1.3vw, 1.18rem); color: rgba(250,245,238,.88); margin: 0; }
.hero__sub strong { color: #fff; font-weight: 600; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__pron { font-family: var(--font-display); font-style: italic; font-size: 1rem; color: rgba(250,245,238,.7); }
.scroll-cue {
  position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  font-size: .62rem; letter-spacing: .26em; text-transform: uppercase; color: rgba(250,245,238,.7);
}
.scroll-cue i { width: 1px; height: 40px; background: linear-gradient(rgba(250,245,238,.7), transparent); position: relative; overflow: hidden; }
.scroll-cue i::after { content:""; position:absolute; top:-40px; left:0; width:1px; height:40px; background: var(--rose); animation: drop 1.8s var(--ease) infinite; }
@keyframes drop { to { top: 40px; } }

/* word reveal helper */
.reveal-line { display: block; overflow: hidden; }
.reveal-line > span { display: block; transform: translateY(105%); transition: transform 1s var(--ease); }
.is-in .reveal-line > span, .hero.is-ready .reveal-line > span { transform: translateY(0); }
.hero.is-ready .reveal-line:nth-child(2) > span { transition-delay: .08s; }
.hero.is-ready .reveal-line:nth-child(3) > span { transition-delay: .16s; }

/* ---------- Statement marquee band ---------- */
.statement { background: var(--ink); color: var(--cream); padding-block: clamp(52px, 7vw, 96px); overflow: hidden; }
.statement__stars { display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 24px; flex-wrap:wrap; }
.statement__stars .s { color:#F2B544; font-size:1.05rem; letter-spacing:.16em; }
.statement__stars span { color: rgba(250,245,238,.6); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; }
.statement__lead { text-align: center; max-width: 24ch; margin: 0 auto clamp(40px,5vw,64px); }
.statement__lead p { font-family: var(--font-display); font-size: clamp(1.9rem, 4.6vw, 4rem); line-height: 1.05; }
.statement__lead em { font-style: italic; color: var(--rose); }
.statement__lead .muted { color: var(--ink-soft); }
.bigmarquee { display: flex; width: max-content; }
.bigmarquee__track { display: flex; align-items: center; animation: marq 40s linear infinite; }
.bigmarquee:hover .bigmarquee__track { animation-play-state: paused; }
.bigmarquee span {
  font-family: var(--font-display); font-style: italic; font-weight: 460;
  font-size: clamp(2.4rem, 7vw, 7rem); line-height: 1; white-space: nowrap;
  color: transparent; -webkit-text-stroke: 1px rgba(250,245,238,.62); padding-inline: .35em;
}
.bigmarquee span.fill { color: var(--rose); -webkit-text-stroke: 0; }
@keyframes marq { to { transform: translateX(-50%); } }


/* ---------- Manifesto: sticky video + scrolling text ---------- */
.manifesto { background: var(--cream); }
.manifesto__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 100px); }
.manifesto__media { position: sticky; top: 0; height: 100svh; display: flex; align-items: center; }
.manifesto__media .frame { width: 100%; aspect-ratio: 4/5; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); }
.manifesto__media video { width: 100%; height: 100%; object-fit: cover; }
.manifesto__text { padding-block: clamp(80px, 16vh, 220px); display: flex; flex-direction: column; gap: clamp(70px, 16vh, 180px); }
.manifesto__block h2 { font-size: clamp(2rem, 4vw, 3.4rem); margin: 22px 0 18px; }
.manifesto__block p { color: var(--ink-soft); font-size: 1.06rem; max-width: 46ch; margin: 0 0 14px; }
.manifesto__block strong { color: var(--ink); font-weight: 600; }
.bignum { font-family: var(--font-display); font-style: italic; font-size: 1rem; color: var(--rose-deep); }

/* ---------- Signature: full-bleed alternating video panels ---------- */
.signatures { background: var(--ink); }
.sig-intro { text-align: center; padding: clamp(70px,11vw,140px) var(--gutter) clamp(40px,6vw,70px); color: var(--cream); }
.sig-intro h2 { font-size: clamp(2.2rem, 6vw, 5rem); margin: 22px 0 0; }
.sig-intro h2 em { font-style: italic; color: var(--rose); }
.panel { position: relative; height: 92svh; min-height: 560px; overflow: hidden; display: flex; align-items: flex-end; color: var(--cream); isolation: isolate; }
.panel video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.06); transition: transform 1.2s var(--ease); }
.panel.is-in video { transform: scale(1); }
.panel::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(to top, rgba(20,16,13,.82), rgba(20,16,13,.05) 55%, rgba(20,16,13,.35)); }
.panel__body { padding: 0 var(--gutter) clamp(50px,8vw,100px); max-width: 720px; }
.panel--right { justify-content: flex-end; text-align: right; }
.panel--right .panel__body { margin-left: auto; }
.panel__index { font-family: var(--font-display); font-style: italic; font-size: 1.1rem; color: var(--rose); }
.panel h3 { font-size: clamp(2.4rem, 6.5vw, 5.5rem); margin: 14px 0 16px; line-height: .94; }
.panel p { font-size: clamp(1rem,1.4vw,1.2rem); color: rgba(250,245,238,.9); max-width: 42ch; margin: 0; }
.panel--right p { margin-left: auto; }

/* ---------- Video wall (seamless river) ---------- */
.wall { background: var(--cream-2); padding-block: clamp(70px,11vw,140px); overflow: hidden; }
.wall__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(34px,5vw,56px); }
.wall__head h2 { font-size: clamp(2rem, 5vw, 4rem); }
.wall__head h2 em { font-style: italic; color: var(--rose-deep); }
.river { display: flex; flex-direction: column; gap: clamp(14px, 1.6vw, 22px); }
.river__row { display: flex; gap: clamp(14px,1.6vw,22px); width: max-content; }
.river__row--a { animation: river 60s linear infinite; }
.river__row--b { animation: river-rev 72s linear infinite; }
.river:hover .river__row { animation-play-state: paused; }
@keyframes river { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes river-rev { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.tile {
  position: relative; flex: none;
  width: clamp(190px, 21vw, 300px); aspect-ratio: 9/16;
  border-radius: var(--radius); overflow: hidden; background: #000;
  box-shadow: var(--shadow-soft);
}
.tile video, .tile img { width: 100%; height: 100%; object-fit: cover; }
.tile::after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); border-radius: var(--radius); }

/* ---------- Services (card grid) ---------- */
.services { background: var(--cream); padding-block: clamp(70px,11vw,150px); }
.services__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(34px,5vw,60px); }
.services__head h2 { font-size: clamp(2.2rem, 5.5vw, 4.4rem); margin-top: 22px; }
.services__head .lead { max-width: 30ch; color: var(--ink-soft); margin: 0; }
.svc-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(16px, 1.6vw, 22px); }
.svc-card { grid-column: span 2; display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden;
  background: var(--paper); border: 1px solid var(--line); text-decoration: none;
  transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
.svc-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: transparent; }
.svc-card__media { aspect-ratio: 16/11; overflow: hidden; background: var(--cream-2); }
.svc-card--lg .svc-card__media { aspect-ratio: 16/8; }
.svc-card__media img, .svc-card__media video { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.svc-card:hover .svc-card__media img { transform: scale(1.05); }
.svc-card__body { padding: clamp(20px,1.8vw,26px) clamp(22px,2vw,28px) clamp(24px,2.2vw,30px); display: flex; flex-direction: column; gap: 6px; }
.svc-card__num { font-family: var(--font-display); font-style: italic; font-size: .95rem; color: var(--rose-deep); }
.svc-card__title { font-family: var(--font-display); color: var(--ink); font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.04; letter-spacing: -0.02em; }
.svc-card__tag { font-size: .92rem; color: var(--ink-soft); }
.svc-card__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.svc-card__go span { transition: transform .4s var(--ease); }
.svc-card:hover .svc-card__go span { transform: translateX(6px); }
.svc-card--lg { grid-column: span 3; }
.services__cta { margin-top: clamp(40px,5vw,60px); display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.services__cta .note { color: var(--ink-soft); font-size: .9rem; }
@media (max-width: 900px) { .svc-card, .svc-card--lg { grid-column: span 3; } }
@media (max-width: 560px) { .svc-grid { grid-template-columns: 1fr; } .svc-card, .svc-card--lg { grid-column: span 1; } }

/* ---------- Cookie Club ---------- */
.club { position: relative; overflow: hidden; color: var(--cream); padding-block: clamp(90px,14vw,180px); isolation: isolate; }
.club__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.club::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(115deg, rgba(20,16,13,.92) 0%, rgba(20,16,13,.65) 55%, rgba(20,16,13,.4) 100%); }
.club__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(30px,5vw,80px); align-items: center; }
.club h2 { font-size: clamp(2.6rem, 7vw, 6rem); margin: 22px 0 22px; line-height: .92; }
.club h2 em { font-style: italic; color: var(--rose); }
.club p { color: rgba(250,245,238,.82); max-width: 46ch; font-size: 1.08rem; margin: 0 0 30px; }
.club__list { list-style: none; margin: 0 0 36px; padding: 0; display: grid; gap: 0; }
.club__list li { display: flex; gap: 18px; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--line-light); font-size: 1.02rem; color: rgba(250,245,238,.92); }
.club__list li:last-child { border-bottom: 1px solid var(--line-light); }
.club__list .n { font-family: var(--font-display); font-style: italic; color: var(--rose); font-size: .95rem; flex: none; }

/* ---------- Visit ---------- */
.visit { background: var(--paper); padding-block: clamp(70px,11vw,150px); }
.visit__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,80px); }
.visit h2 { font-size: clamp(2.2rem, 5vw, 4rem); margin: 22px 0 36px; }
.info { display: grid; gap: 28px; }
.info h3 { font-family: var(--font-body); font-size: .72rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: var(--rose-deep); margin: 0 0 8px; }
.info p { margin: 0; font-size: 1.05rem; }
.info p span { color: var(--ink-soft); }
.order-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.map-card { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); min-height: 460px; align-self: stretch; }
.map-card iframe { width: 100%; height: 100%; min-height: 460px; border: 0; display: block; filter: grayscale(.2) contrast(1.02); }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: rgba(250,245,238,.6); padding-block: clamp(70px,9vw,110px) 40px; overflow: hidden; }
.footer-word { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: clamp(4rem, 20vw, 20rem); line-height: .8; letter-spacing: -0.04em; color: var(--cream); margin: 0 0 clamp(30px,5vw,60px); }
.footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid var(--line-light); }
.footer-top p { max-width: 36ch; margin: 0; font-size: .98rem; }
.footer-cols { display: flex; flex-wrap: wrap; gap: 60px; }
.footer-col h4 { font-family: var(--font-body); font-size: .7rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--rose); margin: 0 0 18px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; font-size: .96rem; }
.footer-col a { transition: color .3s; } .footer-col a:hover { color: var(--cream); }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 28px; font-size: .78rem; letter-spacing: .03em; }

/* ---------- Reveal ---------- */
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ease-io), transform 1s var(--ease-io); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js .reveal[data-d="1"] { transition-delay: .08s; }
.js .reveal[data-d="2"] { transition-delay: .16s; }
.js .reveal[data-d="3"] { transition-delay: .24s; }

/* ---------- Mobile nav panel ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 99; background: var(--ink); color: var(--cream);
  display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: var(--gutter);
  transform: translateY(-100%); transition: transform .6s var(--ease); visibility: hidden;
}
.mobile-menu.is-open { transform: translateY(0); visibility: visible; }
.mobile-menu a { font-family: var(--font-display); font-size: clamp(2rem,9vw,3.4rem); padding: 10px 0; }
.mobile-menu a em { font-style: italic; color: var(--rose); }
.mobile-menu .mm-foot { margin-top: 30px; display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .manifesto__grid { grid-template-columns: 1fr; }
  .manifesto__media { position: relative; height: auto; padding-top: clamp(60px,10vw,90px); }
  .manifesto__media .frame { aspect-ratio: 4/5; max-height: 70vh; }
  .manifesto__text { padding-block: clamp(50px,8vh,90px); gap: clamp(50px,10vh,90px); }
  .club__grid, .visit__grid { grid-template-columns: 1fr; }
  .svc-row { grid-template-columns: 50px 1fr; grid-template-areas: "num name" "num desc"; row-gap: 8px; }
  .svc-num { grid-area: num; } .svc-name { grid-area: name; } .svc-desc { grid-area: desc; }
  .svc-go { display: none; }
}
@media (max-width: 760px) {
  .nav-links, .nav-right .btn, .sound-toggle { display: none; }
  .nav-toggle { display: flex; }
  body.has-cursor, .cursor { cursor: auto; }
  .cursor { display: none; }
  .hero h1 { font-size: clamp(3rem, 16vw, 6rem); }
}
@media (hover: none) { .cursor { display: none !important; } .svc-preview { display: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto; }
  .hero__video, .panel video { transform: none; }
  .js .reveal { opacity: 1; transform: none; }
}

/* =========================================================
   SUBPAGES: menu, product, ordering
   ========================================================= */
.page { padding-top: 84px; } /* clear fixed header */

/* page hero */
.page-hero { background: var(--ink); color: var(--cream); padding: clamp(60px,9vw,120px) 0 clamp(40px,6vw,70px); position: relative; overflow: hidden; }
.page-hero .crumb { font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(250,245,238,.6); margin: 0 0 18px; }
.page-hero .crumb a { color: var(--rose); }
.page-hero h1 { font-size: clamp(2.6rem, 8vw, 6.5rem); line-height: .92; letter-spacing: -0.03em; }
.page-hero h1 em { font-style: italic; color: var(--rose); }
.page-hero p { color: rgba(250,245,238,.8); max-width: 50ch; margin: 22px 0 0; font-size: 1.08rem; }

/* filter chips */
.filters { display: flex; flex-wrap: wrap; gap: 10px; padding: clamp(26px,4vw,40px) 0 0; }
.chip { border: 1px solid var(--line); background: transparent; color: var(--ink); border-radius: 999px;
  padding: 10px 20px; font-family: var(--font-body); font-size: .82rem; font-weight: 600; letter-spacing: .04em;
  cursor: pointer; transition: background .3s var(--ease), color .3s var(--ease), border-color .3s; }
.chip:hover { border-color: var(--ink); }
.chip.is-active { background: var(--ink); color: var(--cream); border-color: var(--ink); }

/* product grid */
.menu-sec { background: var(--cream); padding-block: clamp(34px,4vw,50px) clamp(70px,10vw,130px); }
.prod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: clamp(16px,1.8vw,26px); margin-top: clamp(26px,4vw,40px); }
.prod-card { display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden; background: var(--paper);
  box-shadow: var(--shadow-soft); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.prod-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.prod-card__media { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #000; }
.prod-card__media img, .prod-card__media video { width: 100%; height: 100%; object-fit: cover; }
.prod-card__badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: rgba(250,245,238,.92); color: var(--ink);
  font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 7px 12px; border-radius: 999px; }
.prod-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.prod-card__cat { font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rose-deep); }
.prod-card__name { font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -0.02em; line-height: 1.05; }
.prod-card__tag { color: var(--ink-soft); font-size: .94rem; margin: 0; }
.prod-card__foot { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 8px;
  font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink); }
.prod-card__foot span { transition: transform .4s var(--ease); }
.prod-card:hover .prod-card__foot span { transform: translateX(6px); }
.prod-card.is-hidden { display: none; }

/* product detail */
.prod-detail { background: var(--cream); }
.prod-detail__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,80px); align-items: start; }
.prod-detail__media { position: sticky; top: 104px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); aspect-ratio: 4/5; background:#000; }
.prod-detail__media video { width: 100%; height: 100%; object-fit: cover; }
.prod-detail__info { padding-block: clamp(20px,3vw,40px); }
.prod-detail__info .badge { display: inline-block; background: var(--blush); color: var(--rose-deep); font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: 8px 14px; border-radius: 999px; margin-bottom: 20px; }
.prod-detail__info h1 { font-size: clamp(2.4rem, 5vw, 4rem); line-height: .98; margin-bottom: 16px; }
.prod-detail__info .tag { font-family: var(--font-display); font-style: italic; font-size: 1.3rem; color: var(--rose-deep); margin: 0 0 24px; }
.prod-detail__info p { color: var(--ink-soft); font-size: 1.06rem; margin: 0 0 16px; max-width: 46ch; }
.prod-detail__order { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line); }
.prod-detail__order h3 { font-family: var(--font-body); font-size: .74rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--rose-deep); margin: 0 0 14px; }
.prod-detail__order .order-row { display: flex; flex-wrap: wrap; gap: 12px; }
.prod-detail__order .fineprint { color: var(--ink-soft); font-size: .86rem; margin: 16px 0 0; }
.related { background: var(--cream-2); padding-block: clamp(60px,9vw,120px); }
.related h2 { font-size: clamp(1.8rem,4vw,3rem); margin-bottom: clamp(26px,4vw,40px); }
@media (max-width: 880px){ .prod-detail__grid{ grid-template-columns:1fr; } .prod-detail__media{ position:relative; top:0; max-height:72vh; } }

/* ordering page */
.order-wrap { background: var(--cream); padding-block: clamp(50px,7vw,90px); }
.channels { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(16px,1.8vw,24px); }
.channel { border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(26px,3vw,38px); background: var(--paper);
  display: flex; flex-direction: column; gap: 12px; transition: transform .5s var(--ease), box-shadow .5s; }
.channel:hover { transform: translateY(-5px); box-shadow: var(--shadow-soft); }
.channel .n { font-family: var(--font-display); font-style: italic; color: var(--rose-deep); }
.channel h3 { font-family: var(--font-display); font-size: clamp(1.5rem,2.4vw,2rem); }
.channel p { color: var(--ink-soft); margin: 0 0 6px; font-size: .98rem; }
.channel .order-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 8px; }
@media (max-width: 820px){ .channels{ grid-template-columns:1fr; } }

/* order builder */
.builder { background: var(--ink); color: var(--cream); padding-block: clamp(60px,9vw,120px); }
.builder__grid { display: grid; grid-template-columns: 1.25fr .9fr; gap: clamp(30px,5vw,70px); align-items: start; }
.builder h2 { font-size: clamp(2rem,4.5vw,3.6rem); margin-bottom: 10px; }
.builder h2 em { font-style: italic; color: var(--rose); }
.builder__intro { color: rgba(250,245,238,.78); max-width: 46ch; margin: 0 0 30px; }
.pick-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pick { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px;
  border: 1px solid var(--line-light); border-radius: 14px; background: rgba(255,255,255,.03); }
.pick__name { font-size: .96rem; }
.pick__name small { display:block; color: rgba(250,245,238,.55); font-size: .76rem; }
.stepper { display: inline-flex; align-items: center; gap: 0; border: 1px solid var(--line-light); border-radius: 999px; overflow: hidden; }
.stepper button { width: 34px; height: 34px; background: transparent; border: 0; color: var(--cream); font-size: 1.1rem; cursor: pointer; transition: background .25s; }
.stepper button:hover { background: rgba(255,255,255,.1); }
.stepper input { width: 36px; text-align: center; background: transparent; border: 0; color: var(--cream); font-family: var(--font-body); font-size: .95rem; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.builder__panel { position: sticky; top: 104px; border: 1px solid var(--line-light); border-radius: var(--radius); padding: clamp(22px,2.5vw,32px); background: rgba(255,255,255,.04); backdrop-filter: blur(6px); }
.builder__panel h3 { font-family: var(--font-body); font-size: .74rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--rose); margin: 0 0 16px; }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(250,245,238,.7); margin-bottom: 7px; }
.field input, .field select, .field textarea { width: 100%; background: rgba(255,255,255,.05); border: 1px solid var(--line-light); border-radius: 12px; color: var(--cream); padding: 12px 14px; font-family: var(--font-body); font-size: .95rem; }
.field textarea { resize: vertical; min-height: 70px; }
.summary { font-size: .9rem; color: rgba(250,245,238,.8); margin: 6px 0 18px; min-height: 1.2em; }
.builder__panel .btn { width: 100%; justify-content: center; margin-bottom: 10px; }
.toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%) translateY(20px); background: var(--rose); color: #fff;
  padding: 14px 26px; border-radius: 999px; font-weight: 600; font-size: .9rem; opacity: 0; pointer-events: none; transition: opacity .4s, transform .4s var(--ease); z-index: 200; }
.toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 880px){ .builder__grid{ grid-template-columns:1fr; } .pick-list{ grid-template-columns:1fr; } .builder__panel{ position:relative; top:0; } }

/* quote cards (events/catering/etc) */
.quotes { background: var(--cream-2); padding-block: clamp(60px,9vw,120px); }
.quote-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(14px,1.6vw,20px); margin-top: clamp(26px,4vw,40px); }
.quote { background: var(--paper); border-radius: var(--radius); padding: clamp(22px,2.4vw,30px); display: flex; flex-direction: column; gap: 8px; min-height: 220px; transition: transform .5s var(--ease), box-shadow .5s; }
.quote:hover { transform: translateY(-5px); box-shadow: var(--shadow-soft); }
.quote h3 { font-family: var(--font-display); font-size: 1.4rem; }
.quote p { color: var(--ink-soft); font-size: .92rem; margin: 0; }
.quote a { margin-top: auto; padding-top: 12px; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rose-deep); }
@media (max-width: 900px){ .quote-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .quote-grid{ grid-template-columns: 1fr; } }

/* =========================================================
   CART / ORDER DRAWER (site-wide funnel)
   ========================================================= */
.lv-cartbtn{ position:fixed; right:clamp(16px,3vw,30px); bottom:clamp(16px,3vw,30px); z-index:120;
  display:inline-flex; align-items:center; gap:10px; padding:14px 22px; border-radius:999px; border:0; cursor:pointer;
  background:var(--rose); color:#fff; font-family:var(--font-body); font-weight:700; font-size:.84rem; letter-spacing:.04em;
  box-shadow:0 16px 40px -14px rgba(190,107,129,.7); transform:translateY(120px); opacity:0;
  transition:transform .5s var(--ease), opacity .4s var(--ease), background .3s; }
.lv-cartbtn.show{ transform:none; opacity:1; }
.lv-cartbtn:hover{ background:var(--rose-deep); }
.lv-cartbtn .lv-count{ background:#fff; color:var(--rose-deep); min-width:22px; height:22px; border-radius:999px;
  display:inline-grid; place-items:center; font-size:.78rem; font-weight:800; padding:0 6px; }
.lv-cartbtn.bump{ animation:bump .5s var(--ease); }
@keyframes bump{ 0%,100%{transform:scale(1)} 35%{transform:scale(1.12)} }

.lv-overlay{ position:fixed; inset:0; background:rgba(20,16,13,.55); backdrop-filter:blur(3px); z-index:130; opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s; }
.lv-overlay.show{ opacity:1; visibility:visible; }
.lv-drawer{ position:fixed; top:0; right:0; height:100%; width:min(440px,100vw); background:var(--cream); z-index:140;
  display:flex; flex-direction:column; transform:translateX(100%); transition:transform .5s var(--ease); box-shadow:var(--shadow); }
.lv-drawer.show{ transform:none; }
.lv-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:22px clamp(20px,3vw,28px); border-bottom:1px solid var(--line); }
.lv-drawer__head h3{ font-family:var(--font-display); font-size:1.5rem; }
.lv-close{ background:none; border:0; cursor:pointer; width:40px; height:40px; border-radius:50%; font-size:1.4rem; color:var(--ink); transition:background .25s; }
.lv-close:hover{ background:var(--cream-2); }
.lv-body{ flex:1; overflow-y:auto; padding:clamp(16px,3vw,24px); }
.lv-empty{ color:var(--ink-soft); text-align:center; padding:50px 20px; }
.lv-empty a{ color:var(--rose-deep); font-weight:600; }
.lv-line{ display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.lv-line__img{ width:58px; height:58px; border-radius:12px; object-fit:cover; flex:none; background:#000; }
.lv-line__name{ flex:1; font-weight:600; font-size:.96rem; }
.lv-step{ display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.lv-step button{ width:30px; height:30px; border:0; background:transparent; cursor:pointer; font-size:1rem; color:var(--ink); }
.lv-step button:hover{ background:var(--cream-2); }
.lv-step span{ min-width:26px; text-align:center; font-size:.9rem; font-weight:600; }
.lv-rm{ background:none; border:0; cursor:pointer; color:var(--ink-soft); font-size:.78rem; text-decoration:underline; }
.lv-form{ display:grid; gap:12px; margin-top:18px; }
.lv-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lv-form label{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:6px; }
.lv-form input, .lv-form select, .lv-form textarea{ width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px;
  background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:.95rem; }
.lv-form textarea{ resize:vertical; min-height:60px; }
.lv-foot{ padding:18px clamp(20px,3vw,28px); border-top:1px solid var(--line); background:var(--paper); }
.lv-foot .summary{ font-size:.86rem; color:var(--ink-soft); margin:0 0 12px; }
.lv-foot .btn{ width:100%; justify-content:center; }
.lv-note{ font-size:.78rem; color:var(--ink-soft); text-align:center; margin:10px 0 0; }
/* confirmation */
.lv-done{ text-align:center; padding:40px 16px; }
.lv-done__check{ width:64px; height:64px; border-radius:50%; background:var(--sage); display:grid; place-items:center; margin:0 auto 20px; color:#fff; font-size:1.8rem; }
.lv-done h3{ font-family:var(--font-display); font-size:1.8rem; margin-bottom:8px; }
.lv-done .ref{ font-family:var(--font-display); font-style:italic; font-size:1.4rem; color:var(--rose-deep); margin:14px 0; }
.lv-done p{ color:var(--ink-soft); }
.lv-toast{ position:fixed; left:50%; bottom:96px; transform:translateX(-50%) translateY(16px); background:var(--ink); color:var(--cream);
  padding:13px 24px; border-radius:999px; font-size:.86rem; font-weight:600; z-index:150; opacity:0; pointer-events:none;
  transition:opacity .35s, transform .35s var(--ease); }
.lv-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
/* add-to-cart button on media cards */
.add-fab{ position:absolute; bottom:12px; right:12px; z-index:3; width:44px; height:44px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(250,245,238,.95); color:var(--ink); font-size:1.5rem; line-height:1; display:grid; place-items:center;
  box-shadow:var(--shadow-soft); transition:transform .3s var(--ease), background .3s; }
.add-fab:hover{ transform:scale(1.1); background:#fff; }
@media (prefers-reduced-motion: reduce){ .lv-drawer,.lv-overlay,.lv-cartbtn{ transition:none; } }

/* ---------- Quick order (home funnel) ---------- */
.qorder{ background:var(--paper); padding-block:clamp(70px,11vw,140px); }
.qorder .prod-card__name{ color:var(--ink); }
.qorder .prod-card__name:hover{ color:var(--rose-deep); }
.prod-card__cover{ display:block; width:100%; height:100%; }
.prod-card__name{ color:var(--ink); }
a.prod-card__foot{ cursor:pointer; }

/* =========================================================
   REVIEWS (animated marquee — real Google reviews)
   ========================================================= */
.reviews{ background:var(--ink); color:var(--cream); padding-block:clamp(70px,11vw,140px); overflow:hidden; }
.reviews__head{ text-align:center; max-width:60ch; margin:0 auto clamp(36px,5vw,60px); padding-inline:var(--gutter); }
.reviews__stars{ color:#F2B544; font-size:1.5rem; letter-spacing:.1em; margin-bottom:16px; }
.reviews__head h2{ font-size:clamp(2rem,5vw,4rem); }
.reviews__head h2 em{ font-style:italic; color:var(--rose); }
.reviews__head p{ color:rgba(250,245,238,.7); margin:16px 0 0; }
.reviews__head a{ color:var(--rose); text-decoration:underline; }
.rev-rows{ display:flex; flex-direction:column; gap:clamp(14px,1.6vw,20px); }
.rev-row{ display:flex; gap:clamp(14px,1.6vw,20px); width:max-content; }
.rev-row--a{ animation:revscroll 70s linear infinite; }
.rev-row--b{ animation:revscroll-r 84s linear infinite; }
.rev-rows:hover .rev-row{ animation-play-state:paused; }
@keyframes revscroll{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes revscroll-r{ from{transform:translateX(-50%)} to{transform:translateX(0)} }
.rev-card{ flex:none; width:clamp(290px,26vw,380px); background:var(--ink-2); border:1px solid var(--line-light);
  border-radius:var(--radius); padding:24px 26px; display:flex; flex-direction:column; }
.rev-card__stars{ color:#F2B544; font-size:.95rem; letter-spacing:.08em; margin-bottom:12px; }
.rev-card__text{ font-size:.98rem; line-height:1.55; color:rgba(250,245,238,.92); margin:0 0 18px; }
.rev-card__who{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.rev-card__av{ width:38px; height:38px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-family:var(--font-display); font-style:italic; font-weight:600; color:#fff; font-size:1rem; }
.rev-card__name{ font-weight:600; font-size:.9rem; }
.rev-card__meta{ font-size:.74rem; color:rgba(250,245,238,.5); display:flex; align-items:center; gap:5px; }
.rev-g{ display:inline-flex; width:14px; height:14px; }
@media (prefers-reduced-motion: reduce){ .rev-row{ animation:none; flex-wrap:wrap; width:auto; justify-content:center; } }

/* =========================================================
   COOKIE CLUB PAGE
   ========================================================= */
.club-page{ background:var(--cream); padding-block:clamp(50px,7vw,90px) clamp(70px,10vw,130px); }
.club-bens{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,22px); margin-bottom:clamp(50px,7vw,100px); }
.club-ben{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(24px,2.5vw,34px); }
.club-ben .n{ font-family:var(--font-display); font-style:italic; color:var(--rose-deep); font-size:1rem; }
.club-ben h3{ font-family:var(--font-display); font-size:1.45rem; margin:14px 0 8px; }
.club-ben p{ color:var(--ink-soft); font-size:.94rem; margin:0; }
.club-join{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,80px); align-items:center;
  background:var(--ink); color:var(--cream); border-radius:var(--radius-lg); padding:clamp(30px,5vw,70px); }
.club-join__copy .eyebrow{ color:var(--rose); } .club-join__copy .eyebrow::before{ background:var(--rose); }
.club-join h2{ font-size:clamp(2rem,4vw,3.2rem); margin:18px 0 16px; }
.club-join h2 em, .club-join__copy h2 em{ font-style:italic; color:var(--rose); }
.club-join__copy p{ color:rgba(250,245,238,.78); max-width:42ch; margin:0; }
.club-form{ display:grid; gap:14px; }
.club-form .field label{ display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(250,245,238,.7); margin-bottom:6px; }
.club-form input, .club-form textarea{ width:100%; padding:13px 15px; border:1px solid var(--line-light); border-radius:12px;
  background:rgba(255,255,255,.05); color:var(--cream); font-family:var(--font-body); font-size:.96rem; }
.club-form textarea{ resize:vertical; min-height:70px; }
.club-form .btn{ width:100%; justify-content:center; margin-top:4px; }
.club-form__note{ font-size:.8rem; color:rgba(250,245,238,.6); text-align:center; margin:4px 0 0; }
.club-form.done{ place-items:center; text-align:center; }
@media (max-width:900px){ .club-bens{ grid-template-columns:1fr 1fr; } .club-join{ grid-template-columns:1fr; } }
@media (max-width:520px){ .club-bens{ grid-template-columns:1fr; } }

/* ---------- Cart: date/time + detail chips ---------- */
.lv-when{ }
.lv-seg{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lv-seg button{ padding:11px 10px; border:1px solid var(--line); border-radius:12px; background:var(--paper);
  color:var(--ink); font-family:var(--font-body); font-weight:600; font-size:.82rem; cursor:pointer; transition:background .25s, color .25s, border-color .25s; }
.lv-seg button:hover{ border-color:var(--ink); }
.lv-seg button.on{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.lv-date{ margin-top:10px; }
.lv-times{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.lv-times button, .lv-chips button{ padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:var(--paper);
  color:var(--ink); font-family:var(--font-body); font-size:.8rem; font-weight:600; cursor:pointer; transition:background .25s, color .25s, border-color .25s; }
.lv-times button:hover, .lv-chips button:hover{ border-color:var(--rose); }
.lv-times button.on, .lv-chips button.on{ background:var(--rose); color:#fff; border-color:var(--rose); }
.lv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }

/* ---------- Cookie Club subscription plans ---------- */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.club-plans{ max-width:1000px; margin:0 auto; }
.club-join__head{ text-align:center; margin-bottom:clamp(30px,4vw,46px); }
.club-form-full{ display:block; }
.plan-grid{ border:0; padding:0; margin:0 0 clamp(26px,3vw,40px); display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,18px); }
.plan{ position:relative; cursor:pointer; display:block; }
.plan input{ position:absolute; opacity:0; pointer-events:none; }
.plan__card{ display:flex; flex-direction:column; gap:6px; height:100%; padding:22px 20px; border-radius:var(--radius);
  border:1.5px solid var(--line); background:var(--paper); transition:border-color .3s var(--ease), background .3s, transform .3s var(--ease); }
.plan:hover .plan__card{ transform:translateY(-4px); border-color:var(--rose-soft); }
.plan input:checked + .plan__card{ border-color:var(--rose); background:var(--blush); box-shadow:0 12px 30px -16px rgba(190,107,129,.6); }
.plan input:focus-visible + .plan__card{ outline:2px solid var(--rose); outline-offset:2px; }
.plan__dur{ font-family:var(--font-display); font-size:1.5rem; letter-spacing:-0.02em; }
.plan__sub{ font-size:.78rem; color:var(--rose-deep); font-weight:600; }
.plan__desc{ font-size:.86rem; color:var(--ink-soft); }
.plan__badge{ position:absolute; top:-10px; left:50%; transform:translateX(-50%); background:var(--rose); color:#fff;
  font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 11px; border-radius:999px; white-space:nowrap; z-index:2; }
.plan__badge--gold{ background:var(--gold); }
.club-fields{ display:grid; gap:14px; max-width:680px; margin:0 auto; }
.club-fields .row2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.club-fields .field label{ display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.club-fields input, .club-fields select, .club-fields textarea{ width:100%; padding:13px 15px; border:1px solid var(--line); border-radius:12px;
  background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:.96rem; }
.club-fields textarea{ resize:vertical; min-height:64px; }
.club-fields .btn{ width:100%; justify-content:center; margin-top:4px; }
.club-form-full .club-form__note{ text-align:center; color:var(--ink-soft); font-size:.82rem; margin:6px 0 0; }
@media (max-width:780px){ .plan-grid{ grid-template-columns:1fr 1fr; } .club-fields .row2{ grid-template-columns:1fr; } }

/* ---------- Cursor: use native pointer (custom cursor removed) ---------- */
.cursor { display: none !important; }
body, body a, body button { cursor: auto; }
.btn, .svc-card, .prod-card, .tier, .plan, [data-add], .lv-cartbtn { cursor: pointer; }

/* statement stars: let the line span full width, keep headline narrow */
.statement__lead { max-width: none; }
.statement__lead > p:last-of-type { max-width: 24ch; margin-left: auto; margin-right: auto; }

/* =========================================================
   COOKIE CLUB — elite membership
   ========================================================= */
.cc-hero { position: relative; min-height: 80svh; display: flex; align-items: flex-end; overflow: hidden; color: var(--cream); isolation: isolate; padding-bottom: clamp(50px,8vh,100px); }
.cc-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.06); }
.cc-hero::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(to top, rgba(20,16,13,.93), rgba(20,16,13,.5) 55%, rgba(20,16,13,.72)); }
.cc-hero .crumb { color: rgba(250,245,238,.6); font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; margin:0; }
.cc-hero .crumb a { color: var(--rose); }
.cc-kicker { font-size:.78rem; letter-spacing:.34em; text-transform:uppercase; color:var(--rose); margin:20px 0 14px; }
.cc-hero h1 { font-size: clamp(3rem, 9vw, 8rem); line-height:.9; letter-spacing:-.03em; }
.cc-hero h1 em { font-style: italic; color: var(--blush); }
.cc-hero__sub { max-width: 46ch; color: rgba(250,245,238,.85); font-size: clamp(1rem,1.4vw,1.2rem); margin: 22px 0 30px; }

.cc-join { background: var(--ink); color: var(--cream); padding-block: clamp(70px,10vw,140px); position: relative; overflow:hidden; }
.cc-join::before { content:""; position:absolute; inset:0; background: radial-gradient(70% 55% at 85% 0%, rgba(190,107,129,.20), transparent 60%); pointer-events:none; }
.cc-grid { display: grid; grid-template-columns: 0.92fr 1.08fr; gap: clamp(34px,5vw,80px); align-items: start; position: relative; }
.cc-aside { position: sticky; top: 104px; display: flex; flex-direction: column; gap: 28px; }

.member-card { position: relative; aspect-ratio: 1.586/1; border-radius: 20px; overflow: hidden; padding: 26px 28px;
  background: linear-gradient(135deg,#3a2b2f 0%, #211a16 48%, #2b211c 100%);
  border: 1px solid rgba(250,245,238,.16); box-shadow: var(--shadow);
  display: flex; flex-direction: column; justify-content: space-between; transition: transform .3s var(--ease); will-change: transform; }
.member-card__sheen { position:absolute; inset:0; background: linear-gradient(115deg, transparent 32%, rgba(250,245,238,.16) 48%, transparent 62%); transform: translateX(-100%); animation: sheen 6.5s ease-in-out infinite; pointer-events:none; }
@keyframes sheen { 0%,68%{ transform: translateX(-100%); } 100%{ transform: translateX(100%); } }
.member-card__top { display:flex; align-items:center; justify-content:space-between; }
.member-card__logo { width:42px; height:42px; border-radius:50%; }
.member-card__co { font-family: var(--font-display); font-style: italic; font-size: 1.15rem; color: var(--cream); }
.member-card__chip { width:44px; height:32px; border-radius:7px; background: linear-gradient(135deg,#E7C77A,#B7902F); position:relative; }
.member-card__chip::after { content:""; position:absolute; inset:6px 9px; border:1px solid rgba(0,0,0,.22); border-radius:3px; }
.member-card__rows { display:flex; gap:34px; }
.mc-row small { display:block; font-size:.56rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(250,245,238,.5); margin-bottom:4px; }
.mc-row b { font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; color: var(--cream); }
.member-card__foot { display:flex; justify-content:space-between; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(250,245,238,.55); }

.cc-privs { list-style:none; margin:0; padding:0; display:grid; }
.cc-priv { display:flex; gap:16px; padding:15px 0; border-top:1px solid var(--line-light); }
.cc-priv:last-child { border-bottom:1px solid var(--line-light); }
.cc-priv__n { font-family:var(--font-display); font-style:italic; color:var(--rose); font-size:.9rem; flex:none; }
.cc-priv__t { font-size:.94rem; color:rgba(250,245,238,.82); }
.cc-priv__t b { display:block; color:var(--cream); font-weight:600; font-family:var(--font-body); margin-bottom:2px; font-size:.98rem; }

.cc-form .eyebrow { color: var(--rose); } .cc-form .eyebrow::before { background: var(--rose); }
.cc-form h2 { font-size: clamp(2rem,4.4vw,3.4rem); margin: 16px 0 10px; }
.cc-form h2 em { font-style: italic; color: var(--rose); }
.cc-form__lead { color: rgba(250,245,238,.7); margin: 0 0 26px; }
.cc-tiers { border:0; padding:0; margin:0 0 26px; display:grid; gap:12px; }
.tier { position:relative; display:block; cursor:pointer; }
.tier input { position:absolute; opacity:0; pointer-events:none; }
.tier__box { display:flex; align-items:center; gap:16px; padding:18px 20px; border-radius:16px; border:1px solid var(--line-light);
  background: rgba(255,255,255,.03); transition: border-color .3s, background .3s, transform .3s var(--ease); }
.tier:hover .tier__box { border-color: rgba(217,139,158,.6); transform: translateX(3px); }
.tier input:checked + .tier__box { border-color: var(--rose); background: rgba(217,139,158,.13); }
.tier input:focus-visible + .tier__box { outline:2px solid var(--rose); outline-offset:2px; }
.tier__check { width:22px; height:22px; border-radius:50%; border:1.5px solid rgba(250,245,238,.4); flex:none; position:relative; transition:.3s; }
.tier input:checked + .tier__box .tier__check { border-color: var(--rose); background: var(--rose); }
.tier input:checked + .tier__box .tier__check::after { content:""; position:absolute; left:7px; top:3px; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.tier__main { flex:1; display:flex; flex-direction:column; gap:2px; }
.tier__dur { font-family:var(--font-display); font-size:1.4rem; letter-spacing:-.02em; }
.tier__desc { font-size:.84rem; color:rgba(250,245,238,.6); }
.tier__tag { font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:var(--rose); padding:5px 10px; border-radius:999px; white-space:nowrap; }
.tier__tag--gold { background: var(--gold); color:#2a2012; }
.cc-fields { display:grid; gap:14px; }
.cc-fields .row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cc-fields .field label { display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(250,245,238,.6); margin-bottom:6px; }
.cc-fields input, .cc-fields select, .cc-fields textarea { width:100%; padding:13px 15px; border:1px solid var(--line-light); border-radius:12px; background:rgba(255,255,255,.04); color:var(--cream); font-family:var(--font-body); font-size:.96rem; }
.cc-fields textarea { resize:vertical; min-height:64px; }
.cc-fields .btn { width:100%; justify-content:center; margin-top:4px; }
.cc-form__note { text-align:center; color:rgba(250,245,238,.55); font-size:.8rem; margin:6px 0 0; }
.cc-form.done { text-align:center; }

.cc-steps { background: var(--cream); padding-block: clamp(60px,9vw,120px); }
.cc-steps__head { text-align:center; margin-bottom: clamp(34px,4vw,54px); }
.cc-steps__head h2 { font-size: clamp(1.8rem,4vw,3rem); margin-top:14px; }
.cc-steps__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,34px); }
.cc-step { text-align:center; padding:0 10px; }
.cc-step__n { font-family:var(--font-display); font-style:italic; font-size:2.2rem; color:var(--rose); display:block; margin-bottom:8px; }
.cc-step h3 { font-family:var(--font-display); font-size:1.5rem; margin-bottom:8px; }
.cc-step p { color:var(--ink-soft); font-size:.95rem; margin:0; }
@media (max-width:900px){ .cc-grid{ grid-template-columns:1fr; } .cc-aside{ position:relative; top:0; } .member-card{ max-width:420px; } .cc-steps__grid{ grid-template-columns:1fr; gap:26px; } }
@media (max-width:560px){ .cc-fields .row2{ grid-template-columns:1fr; } }

/* ---------- Segmented single-select (Cookie Club mode) ---------- */
.seg { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.seg__opt { position:relative; cursor:pointer; }
.seg__opt input { position:absolute; opacity:0; pointer-events:none; }
.seg__opt span { display:block; text-align:center; padding:13px 10px; border-radius:12px; border:1px solid var(--line-light);
  background:rgba(255,255,255,.04); color:var(--cream); font-size:.84rem; font-weight:600; transition:background .25s, border-color .25s, color .25s; }
.seg__opt:hover span { border-color:rgba(217,139,158,.6); }
.seg__opt input:checked + span { background:var(--rose); border-color:var(--rose); color:#fff; }
.seg__opt input:focus-visible + span { outline:2px solid var(--rose); outline-offset:2px; }
@media (max-width:560px){ .seg { grid-template-columns:1fr; } }
.lv-seg--3 { grid-template-columns: repeat(3,1fr); }
.lv-seg--3 button { padding: 11px 6px; font-size: .78rem; }

/* ---------- Quote CTA button (replaces WA link on quote cards) ---------- */
.quote-cta { margin-top:auto; padding-top:12px; background:none; border:0; cursor:pointer; text-align:left;
  font-family:var(--font-body); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--rose-deep); }
.quote-cta:hover { color:var(--ink); }

/* builder optional WhatsApp line */
.builder__alt { margin:14px 0 0; font-size:.84rem; color:rgba(250,245,238,.6); }
.builder__alt a { color:var(--rose); text-decoration:underline; }
.lv-note a { color:var(--rose-deep); text-decoration:underline; }

/* ---------- Quote modal ---------- */
.qm-overlay { position:fixed; inset:0; background:rgba(20,16,13,.6); backdrop-filter:blur(4px); z-index:160; opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s; }
.qm-overlay.show { opacity:1; visibility:visible; }
.qm { position:fixed; z-index:170; left:50%; top:50%; transform:translate(-50%,-46%) scale(.97);
  width:min(560px,92vw); max-height:90vh; overflow-y:auto; background:var(--cream); border-radius:var(--radius-lg);
  padding:clamp(28px,4vw,44px); box-shadow:var(--shadow); opacity:0; visibility:hidden;
  transition:opacity .4s var(--ease), transform .4s var(--ease), visibility .4s; }
.qm.show { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }
.qm__x { position:absolute; top:16px; right:16px; width:40px; height:40px; border:0; background:none; cursor:pointer; font-size:1.5rem; color:var(--ink); border-radius:50%; transition:background .25s; }
.qm__x:hover { background:var(--cream-2); }
.qm__kicker { font-size:.7rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--rose-deep); margin:0 0 10px; }
.qm h3 { font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2.2rem); margin:0 0 8px; }
.qm__sub { color:var(--ink-soft); margin:0 0 22px; font-size:.96rem; }
#qmForm { display:grid; gap:13px; }
.qm-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.qm label { display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.qm input, .qm textarea { width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:.95rem; }
.qm textarea { resize:vertical; min-height:80px; }
.qm .btn { width:100%; justify-content:center; margin-top:4px; }
.qm__alt { text-align:center; font-size:.86rem; color:var(--ink-soft); margin:4px 0 0; }
.qm__alt a { color:var(--rose-deep); text-decoration:underline; cursor:pointer; }
.qm-done { text-align:center; padding:20px 0; }
.qm-check { width:60px; height:60px; border-radius:50%; background:var(--sage); color:#fff; font-size:1.7rem; display:grid; place-items:center; margin:0 auto 16px; }
.qm-done h3 { margin-bottom:8px; }
.qm-ref { font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--rose-deep); margin:8px 0; }
.qm-done p { color:var(--ink-soft); margin:0 0 18px; }
@media (max-width:520px){ .qm-row { grid-template-columns:1fr; } }

/* =========================================================
   REAL CATALOG: prices, pick thumbnails, quick-view lightbox
   ========================================================= */
/* menu/related cards now use buttons + price */
.prod-card__cover { display:block; width:100%; height:100%; border:0; padding:0; background:none; cursor:pointer; }
button.prod-card__name { background:none; border:0; padding:0; text-align:left; cursor:pointer; }
.prod-card__name:hover { color:var(--rose-deep); }
.prod-card__price { margin-top:auto; padding-top:12px; font-family:var(--font-display); font-size:1.25rem; color:var(--ink); }
.prod-card__price small { font-size:.66rem; color:var(--ink-soft); letter-spacing:.12em; }
.prod-card__vtag { position:absolute; top:14px; right:14px; z-index:2; background:rgba(30,24,20,.66); color:#fff;
  font-size:.58rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:5px 9px; border-radius:999px; backdrop-filter:blur(4px); }

.prod-detail__price { font-family:var(--font-display); font-size:2.2rem; color:var(--ink); margin:0 0 20px; }
.prod-detail__price span { font-size:.85rem; color:var(--ink-soft); letter-spacing:.12em; }

/* builder pick thumbnails */
.pick { display:flex; align-items:center; gap:13px; padding:12px 14px; border:1px solid var(--line-light); border-radius:14px; background:rgba(255,255,255,.03); }
.pick__media { position:relative; flex:none; width:54px; height:54px; border-radius:11px; overflow:hidden; border:0; padding:0; cursor:pointer; background:#000; }
.pick__media img { width:100%; height:100%; object-fit:cover; }
.pick__play { position:absolute; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.18); }
.pick__play::after { content:""; border-style:solid; border-width:5px 0 5px 9px; border-color:transparent transparent transparent #fff; margin-left:2px; }
.pick__info { flex:1; min-width:0; }
.pick__name { display:block; background:none; border:0; padding:0; text-align:left; font-family:var(--font-body); font-weight:600; font-size:.92rem; color:var(--cream); cursor:pointer; line-height:1.25; }
.pick__name:hover { color:var(--rose); }
.pick__cat { display:block; color:rgba(250,245,238,.5); font-size:.74rem; margin-top:3px; }

/* cart subtotal + line price */
.lv-subtotal { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
.lv-subtotal span { font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.lv-subtotal b { font-family:var(--font-display); font-size:1.5rem; }
.lv-line__price { display:block; font-size:.76rem; color:var(--ink-soft); margin-top:2px; }

/* ---------- Quick-view lightbox ---------- */
.pv-overlay { position:fixed; inset:0; background:rgba(15,11,9,.82); backdrop-filter:blur(5px); z-index:180; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
.pv-overlay.show { opacity:1; visibility:visible; }
.pv { position:fixed; z-index:190; left:50%; top:50%; transform:translate(-50%,-46%); width:min(800px,92vw); height:min(540px,84vh);
  background:var(--cream); border-radius:var(--radius-lg); box-shadow:var(--shadow); overflow:hidden;
  display:grid; grid-template-columns:0.86fr 1.14fr; opacity:0; visibility:hidden;
  transition:opacity .4s var(--ease), transform .4s var(--ease), visibility .4s; }
.pv.show { opacity:1; visibility:visible; transform:translate(-50%,-50%); }
.pv__media { background:#000; height:100%; }
.pv__media img, .pv__media video { width:100%; height:100%; object-fit:cover; }
.pv__info { height:100%; padding:clamp(20px,2.4vw,32px); display:flex; flex-direction:column; overflow-y:auto; }
.pv__meta { display:flex; gap:10px; align-items:center; margin-bottom:10px; flex-wrap:wrap; }
.pv__badge { background:var(--blush); color:var(--rose-deep); font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
.pv__cat { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
.pv__name { font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.04; margin-bottom:0; }
.pv__price { font-family:var(--font-display); font-size:1.45rem; color:var(--rose-deep); margin-bottom:12px; }
.pv__price span { font-size:.8rem; color:var(--ink-soft); letter-spacing:.1em; }
.pv__desc { color:var(--ink-soft); margin:0 0 26px; font-size:1.02rem; line-height:1.6; }
.pv__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:auto; }
.pv__count { margin-top:20px; font-size:.76rem; color:var(--ink-soft); letter-spacing:.12em; }
.pv__x { position:absolute; top:14px; right:14px; z-index:4; width:42px; height:42px; border-radius:50%; border:0; background:rgba(250,245,238,.92); cursor:pointer; font-size:1.5rem; color:var(--ink); }
.pv__nav { position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:48px; height:48px; border-radius:50%; border:0; background:rgba(250,245,238,.92); cursor:pointer; font-size:1.7rem; line-height:1; color:var(--ink); display:grid; place-items:center; transition:background .25s, transform .25s; }
.pv__nav:hover { background:#fff; }
.pv__prev { left:14px; } .pv__next { right:14px; }
@media (max-width:760px){
  .pv { grid-template-columns:1fr; top:50%; overflow-y:auto; }
  .pv__media { aspect-ratio:16/12; }
  .pv__nav { width:42px; height:42px; top:auto; bottom:14px; transform:none; }
  .pv__prev { left:14px; } .pv__next { right:14px; }
}

/* ---------- Quick quantity add (3 / 6 / 12) ---------- */
.qty-add, .pv__qty { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.qty-add__label { font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-right:6px; }
.pv__qty .qty-add__label { color:var(--ink-soft); }
.qty-add__btn { min-width:50px; padding:12px 16px; border-radius:999px; border:1px solid var(--ink); background:var(--ink); color:var(--cream);
  font-family:var(--font-body); font-weight:700; font-size:.92rem; cursor:pointer; transition:transform .3s var(--ease), background .3s, border-color .3s; }
.qty-add__btn:hover { transform:translateY(-2px); background:var(--rose); border-color:var(--rose); color:#fff; }
.pv__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; }

/* lightbox "added" confirmation + toast above the popup */
.lv-toast { z-index: 210; }
.pv__added { margin-top:16px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:13px 16px;
  background:rgba(143,169,140,.16); border:1px solid rgba(143,169,140,.45); border-radius:14px; }
.pv__added-msg { font-size:.92rem; font-weight:600; color:var(--ink); }
.pv__added .btn { padding:10px 20px; font-size:.72rem; }

/* product page gallery */
.prod-gallery { position:sticky; top:104px; }
.prod-gallery__main { border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/5; background:#000; box-shadow:var(--shadow); }
.prod-gallery__main img, .prod-gallery__main video { width:100%; height:100%; object-fit:cover; }
.prod-gallery__thumbs { display:flex; gap:10px; margin-top:12px; }
.pg-thumb { position:relative; width:76px; height:76px; border-radius:12px; overflow:hidden; border:2px solid transparent; padding:0; cursor:pointer; background:#000; transition:border-color .25s; }
.pg-thumb.on { border-color:var(--rose); }
.pg-thumb img { width:100%; height:100%; object-fit:cover; }
.pg-thumb__play { position:absolute; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.15); }
.pg-thumb__play::after { content:""; border-style:solid; border-width:5px 0 5px 8px; border-color:transparent transparent transparent #fff; margin-left:2px; }
@media (max-width:880px){ .prod-gallery { position:relative; top:0; } .prod-gallery__main { max-height:70vh; } }

/* hide floating cart button while drawer is open (no overlap with Enviar pedido) */
.lv-cartbtn.hide { opacity:0; pointer-events:none; transform:translateY(130px); }
/* a touch more breathing room in the drawer footer */
.lv-foot { box-shadow:0 -8px 24px -18px rgba(30,24,20,.5); }

/* ---------- Lightbox: richer product details ---------- */
.pv__media { position:relative; }
.pv__stage { position:absolute; inset:0; }
.pv__stage img, .pv__stage video { width:100%; height:100%; object-fit:cover; }
.pv__thumbs { position:absolute; left:12px; bottom:12px; display:flex; gap:8px; z-index:3; }
.pv-thumb { position:relative; width:52px; height:52px; border-radius:9px; overflow:hidden; border:2px solid rgba(255,255,255,.55); padding:0; cursor:pointer; background:#000; }
.pv-thumb.on { border-color:#fff; }
.pv-thumb img { width:100%; height:100%; object-fit:cover; }
.pv__rating { display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:.8rem; color:var(--ink-soft); flex-wrap:wrap; }
.pv__stars { color:#F2B544; letter-spacing:.06em; }
.pv__nameRow { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.pv__like { flex:none; width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:var(--paper); color:var(--ink-soft); font-size:1.25rem; line-height:1; cursor:pointer; transition:background .25s, color .25s, border-color .25s, transform .25s; }
.pv__like:hover { border-color:var(--rose); color:var(--rose); transform:scale(1.08); }
.pv__like.is-liked { background:var(--rose); border-color:var(--rose); color:#fff; }
.pv__avail { display:flex; align-items:center; gap:8px; font-size:.84rem; color:var(--ink); margin:8px 0 16px; }
.pv__avail .dot { width:9px; height:9px; border-radius:50%; background:#7FB069; box-shadow:0 0 0 3px rgba(127,176,105,.2); }
.pv__tags { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.pv-tag { font-size:.72rem; font-weight:600; color:var(--ink-soft); background:var(--cream-2); border-radius:999px; padding:6px 12px; }
.pv__trust { display:flex; flex-wrap:wrap; gap:16px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:.76rem; color:var(--ink-soft); }
@media (max-width:760px){ .pv__media { min-height:300px; } }

/* ---------- Lightbox: compact spacing so all info is visible ---------- */
.pv__rating { margin-bottom:8px; font-size:.76rem; }
.pv__avail { margin:6px 0 12px; }
.pv__desc { margin:0 0 16px; font-size:.95rem; line-height:1.5; }
.pv__tags { margin:0 0 16px; }
.pv__qty { margin-bottom:12px; }
.pv__actions { margin-top:6px; }
.pv__trust { margin-top:14px; padding-top:12px; gap:14px; }
.pv__count { margin-top:12px; }
.pv__like { width:42px; height:42px; font-size:1.15rem; }
.qty-add__btn { padding:10px 15px; min-width:46px; }
.pv__x { width:38px; height:38px; font-size:1.35rem; }
.pv__nav { width:42px; height:42px; }
@media (max-width:760px){
  .pv { grid-template-columns:1fr; height:auto; max-height:92vh; overflow-y:auto; }
  .pv__media { height:auto; aspect-ratio:16/11; }
  .pv__info { height:auto; }
  .pv__nav { top:32%; }
}

/* ---------- Menu as rows (list) ---------- */
.menu-list { display:grid; grid-template-columns:1fr 1fr; gap:clamp(10px,1.2vw,16px); margin-top:clamp(26px,4vw,40px); }
.menu-row { display:flex; align-items:center; gap:15px; padding:13px 15px; background:var(--paper); border:1px solid var(--line); border-radius:16px;
  transition:transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.menu-row:hover { transform:translateY(-3px); box-shadow:var(--shadow-soft); border-color:transparent; }
.menu-row.is-hidden { display:none; }
.menu-row__media { position:relative; flex:none; width:84px; height:84px; border-radius:12px; overflow:hidden; border:0; padding:0; cursor:pointer; background:#000; }
.menu-row__media img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.menu-row:hover .menu-row__media img { transform:scale(1.06); }
.menu-row__play { position:absolute; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.16); }
.menu-row__play::after { content:""; border-style:solid; border-width:5px 0 5px 8px; border-color:transparent transparent transparent #fff; margin-left:2px; }
.menu-row__info { flex:1; min-width:0; }
.menu-row__name { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; background:none; border:0; padding:0; cursor:pointer;
  font-family:var(--font-display); font-size:1.16rem; letter-spacing:-.01em; color:var(--ink); text-align:left; line-height:1.1; }
.menu-row__name:hover { color:var(--rose-deep); }
.menu-row__badge { font-size:.54rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--rose-deep); background:var(--blush); padding:3px 8px; border-radius:999px; }
.menu-row__desc { margin:5px 0 0; font-size:.85rem; color:var(--ink-soft); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.menu-row__buy { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:9px; }
.menu-row__price { font-family:var(--font-display); font-size:1.18rem; color:var(--ink); white-space:nowrap; }
.menu-row__price small { font-size:.58rem; color:var(--ink-soft); letter-spacing:.1em; margin-left:2px; }
.add-fab--sm { position:static; width:38px; height:38px; box-shadow:none; border:1px solid var(--line); background:var(--ink); color:var(--cream); font-size:1.3rem; }
.add-fab--sm:hover { background:var(--rose); color:#fff; transform:scale(1.08); }
@media (max-width:720px){ .menu-list { grid-template-columns:1fr; } }

/* popup: fit without scrolling */
.pv__desc { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pv-tag--ok { color:#5f8a4e; background:rgba(127,176,105,.16); }
.pv-tag--ok::before { content:"● "; color:#7FB069; }
.pv__info { justify-content:flex-start; gap:0; }

/* hamburger color (not iOS blue) + tap highlights + mobile cart padding */
.nav-toggle { color: var(--ink); -webkit-tap-highlight-color: transparent; }
.site-header.at-top:not(.is-solid) .nav-toggle { color: var(--cream); }
* { -webkit-tap-highlight-color: transparent; }
a:focus, button:focus { outline: none; }
:focus-visible { outline: 2px solid var(--rose); outline-offset: 2px; }
@media (max-width: 560px) {
  .lv-cartbtn { right: 18px; bottom: 18px; }
  .lv-drawer { width: 100vw; }
  .lv-drawer__head { padding-right: 22px; }
  .lv-body { padding-right: 22px; }
  .lv-foot { padding-right: 22px; }
  .lv-line { padding-right: 4px; }
}

/* mobile menu: smaller, cleaner links */
.mobile-menu a { font-size: clamp(1.35rem, 5.2vw, 1.9rem); padding: 9px 0; }
.mobile-menu .mm-foot { margin-top: 26px; gap: 12px; }
.mobile-menu .mm-foot .btn { font-size: .8rem; padding: 13px 24px; }

/* heart button: keep it off the popup edge / clear of the close button */
.pv__nameRow { padding-right: 8px; gap: 12px; }
.pv__like { margin-right: 2px; }
.pv__meta { padding-right: 44px; }   /* clear the close (×) button */

/* =========================================================
   CHRISTMAS PAGES (navidad-2025 / navidad-2026)
   ========================================================= */
:root{ --pine:#10261c; --pine-2:#16382a; --holly:#1f5138; --xred:#a6332e; --xred-2:#7d2420; --gold:#d9b15e; --gold-2:#e6c878; --snow:#f4efe6; }
body.xmas{ background:var(--pine); color:var(--snow); }
body.xmas::after{ opacity:.05; } /* keep grain subtle */
/* header on dark festive pages */
.xmas .site-header.is-solid{ background:rgba(16,38,28,.82); box-shadow:0 1px 0 rgba(255,255,255,.1); }
.xmas .brand, .xmas .nav-links a{ color:var(--snow); }
.xmas .brand small{ color:rgba(244,239,230,.6); }
.xmas .nav-links a:hover{ color:var(--gold-2); }
.xmas .nav-toggle{ color:var(--snow); }
.xmas .mobile-menu{ background:var(--pine-2); }
.xmas .btn--rose{ --bg:var(--gold); --fg:#2a2012; } .xmas .btn--rose::before{ background:var(--snow); }
.xmas .btn--ghost{ --fg:var(--snow); border-color:rgba(244,239,230,.4); } .xmas .btn--ghost::before{ background:var(--snow); }
.xmas .btn--ghost:hover{ color:var(--pine); }

/* falling snow (CSS only, layered) */
.xmas-snow{ position:fixed; inset:0; pointer-events:none; z-index:60; opacity:.7;
  background-image:
    radial-gradient(2.2px 2.2px at 20px 30px, #fff, transparent),
    radial-gradient(1.6px 1.6px at 120px 90px, rgba(255,255,255,.9), transparent),
    radial-gradient(1.8px 1.8px at 180px 50px, #fff, transparent),
    radial-gradient(1.4px 1.4px at 90px 150px, rgba(255,255,255,.85), transparent);
  background-size: 220px 260px; animation: xsnow 14s linear infinite; }
.xmas-snow.b{ background-size:160px 200px; opacity:.4; animation-duration:22s; }
@keyframes xsnow{ to { background-position: 30px 260px, -20px 260px, 10px 260px, -10px 260px; } }
@media (prefers-reduced-motion: reduce){ .xmas-snow{ animation:none; } }

/* festive hero */
.xhero{ position:relative; z-index:2; text-align:center; padding:clamp(120px,18vh,200px) var(--gutter) clamp(60px,9vw,110px);
  background: radial-gradient(120% 90% at 50% 0%, rgba(31,81,56,.7), transparent 60%); }
.xhero .ribbon{ display:inline-flex; align-items:center; gap:12px; font-size:.74rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-2); margin-bottom:22px; }
.xhero .ribbon::before, .xhero .ribbon::after{ content:""; width:30px; height:1px; background:var(--gold); }
.xhero h1{ font-family:var(--font-display); font-size:clamp(3rem,11vw,8rem); line-height:.9; letter-spacing:-.02em; color:var(--snow); }
.xhero h1 .yr{ color:var(--gold-2); font-style:italic; }
.xhero p.lead{ max-width:46ch; margin:24px auto 30px; color:rgba(244,239,230,.85); font-size:clamp(1rem,1.5vw,1.2rem); }
.xhero .xactions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.xhero .stars{ color:var(--gold); letter-spacing:.3em; margin-top:34px; font-size:.9rem; }

/* collection */
.xcollection{ position:relative; z-index:2; padding:clamp(50px,8vw,100px) 0; }
.xsec-head{ text-align:center; max-width:60ch; margin:0 auto clamp(34px,5vw,56px); }
.xsec-head .eyebrow{ color:var(--gold-2); justify-content:center; } .xsec-head .eyebrow::before{ background:var(--gold); }
.xsec-head h2{ font-size:clamp(2rem,5vw,3.6rem); color:var(--snow); margin-top:16px; }
.xsec-head p{ color:rgba(244,239,230,.7); margin-top:12px; }
.xgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:clamp(16px,1.8vw,26px); }
.xcard{ position:relative; background:rgba(255,255,255,.04); border:1px solid rgba(217,177,94,.28); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:transform .5s var(--ease), box-shadow .5s, border-color .5s; }
.xcard:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:0 24px 50px -28px rgba(0,0,0,.7); }
.xcard__media{ position:relative; aspect-ratio:4/5; overflow:hidden; background:#000; cursor:pointer; border:0; padding:0; width:100%; }
.xcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.xcard:hover .xcard__media img{ transform:scale(1.06); }
.xcard__tag{ position:absolute; top:12px; left:12px; background:var(--xred); color:#fff; font-size:.58rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:999px; }
.xcard__body{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:6px; }
.xcard__name{ font-family:var(--font-display); font-size:1.3rem; color:var(--snow); background:none; border:0; padding:0; text-align:left; cursor:pointer; }
.xcard__name:hover{ color:var(--gold-2); }
.xcard__desc{ font-size:.85rem; color:rgba(244,239,230,.6); }
.xcard__foot{ margin-top:auto; padding-top:12px; display:flex; align-items:center; justify-content:space-between; }
.xcard__price{ font-family:var(--font-display); font-size:1.2rem; color:var(--gold-2); }
.xcard__add{ width:40px; height:40px; border-radius:50%; border:1px solid var(--gold); background:transparent; color:var(--gold-2); font-size:1.3rem; cursor:pointer; transition:.25s; }
.xcard__add:hover{ background:var(--gold); color:#2a2012; transform:scale(1.08); }

/* note banner linking years */
.xbanner{ position:relative; z-index:2; text-align:center; margin:clamp(40px,6vw,70px) auto 0; max-width:760px;
  background:linear-gradient(135deg, rgba(166,51,46,.25), rgba(31,81,56,.25)); border:1px solid rgba(217,177,94,.3);
  border-radius:var(--radius-lg); padding:clamp(28px,4vw,44px); }
.xbanner h3{ font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.2rem); color:var(--snow); }
.xbanner p{ color:rgba(244,239,230,.75); margin:10px 0 20px; }

/* 2026 under-construction / workshop */
.xworkshop{ position:relative; z-index:2; text-align:center; min-height:78vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(120px,16vh,180px) var(--gutter) clamp(70px,10vw,120px); }
.xworkshop .badge2026{ font-family:var(--font-display); font-style:italic; font-size:clamp(4rem,16vw,12rem); line-height:.9; color:transparent; -webkit-text-stroke:1.5px var(--gold); opacity:.5; letter-spacing:-.02em; }
.xworkshop h1{ font-family:var(--font-display); font-size:clamp(2.4rem,6.5vw,5rem); line-height:1; color:var(--snow); margin:6px 0 18px; }
.xworkshop h1 em{ color:var(--gold-2); font-style:italic; }
.xworkshop p.lead{ max-width:48ch; color:rgba(244,239,230,.82); font-size:clamp(1rem,1.5vw,1.2rem); margin:0 0 30px; }
.xprogress{ width:min(360px,80vw); height:10px; border-radius:999px; background:rgba(255,255,255,.1); overflow:hidden; margin:0 auto 12px; border:1px solid rgba(217,177,94,.3); }
.xprogress i{ display:block; height:100%; width:62%; background:linear-gradient(90deg,var(--holly),var(--gold)); border-radius:999px; animation:xbuild 3s var(--ease) infinite alternate; }
@keyframes xbuild{ from{ width:48%; } to{ width:72%; } }
.xprogress-label{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-2); margin-bottom:34px; }
/* notify form */
.xnotify{ position:relative; z-index:2; max-width:520px; margin:0 auto; background:rgba(255,255,255,.04); border:1px solid rgba(217,177,94,.3); border-radius:var(--radius-lg); padding:clamp(26px,4vw,40px); }
.xnotify h3{ font-family:var(--font-display); font-size:1.6rem; color:var(--snow); margin-bottom:8px; }
.xnotify p{ color:rgba(244,239,230,.7); margin:0 0 20px; font-size:.95rem; }
.xnotify .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.xnotify label{ display:block; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(244,239,230,.6); margin-bottom:6px; text-align:left; }
.xnotify input{ width:100%; padding:13px 15px; border:1px solid rgba(244,239,230,.2); border-radius:12px; background:rgba(255,255,255,.05); color:var(--snow); font-family:var(--font-body); font-size:.95rem; }
.xnotify .btn{ width:100%; justify-content:center; margin-top:14px; }
.xnotify .note{ font-size:.78rem; color:rgba(244,239,230,.55); margin-top:10px; }
.xnotify.done{ text-align:center; }
@media (max-width:560px){ .xnotify .row2{ grid-template-columns:1fr; } }

/* holiday lookbook gallery */
.xlookbook{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:14px; }
.xlook{ display:block; border-radius:14px; overflow:hidden; border:1px solid rgba(217,177,94,.3); aspect-ratio:3/4; background:#000; }
.xlook img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.xlook:hover img{ transform:scale(1.05); }

/* =========================================================
   CHRISTMAS — editorial redesign (cleaner)
   ========================================================= */
.wrap-narrow{ max-width:820px; margin-inline:auto; padding-inline:var(--gutter); }
.xed-hero{ display:grid; grid-template-columns:0.82fr 1fr; gap:clamp(30px,5vw,70px); align-items:center;
  max-width:var(--maxw); margin-inline:auto; padding:clamp(110px,15vh,168px) var(--gutter) clamp(50px,7vw,90px); }
.xed-hero__media{ border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:var(--shadow); }
.xed-hero__media img{ width:100%; height:100%; object-fit:cover; }
.xkick{ font-size:.72rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-2); margin:0 0 18px; }
.xed-hero h1{ font-family:var(--font-display); font-size:clamp(2.6rem,6vw,5rem); line-height:.95; color:var(--snow); letter-spacing:-.02em; }
.xlede{ color:rgba(244,239,230,.8); max-width:42ch; margin:22px 0 28px; font-size:clamp(1rem,1.4vw,1.15rem); }
.xlede em{ color:var(--gold-2); font-style:italic; }
.xed-hero__act{ display:flex; gap:14px; flex-wrap:wrap; }
@media(max-width:860px){ .xed-hero{ grid-template-columns:1fr; } .xed-hero__media{ max-height:62vh; } }

.xmenu-sec{ padding:clamp(36px,5vw,70px) 0 clamp(70px,10vw,120px); }
.xmenu-quote{ text-align:center; font-family:var(--font-display); font-style:italic; font-size:clamp(1.3rem,2.6vw,1.9rem); color:var(--gold-2); margin:0 0 clamp(40px,6vw,66px); }
.xgroup{ margin-bottom:clamp(40px,6vw,64px); }
.xgroup h2{ font-family:var(--font-display); font-size:clamp(1.6rem,3.2vw,2.4rem); color:var(--snow); text-align:center; }
.xgroup__sub{ text-align:center; color:rgba(244,239,230,.55); font-size:.85rem; margin:6px 0 24px; }
.xlist{ display:grid; gap:0; }
.xrow{ display:flex; align-items:baseline; gap:14px; padding:14px 4px; border-bottom:1px solid rgba(217,177,94,.16); }
.xrow__name{ font-size:1.05rem; color:var(--snow); }
.xrow__dots{ flex:1; border-bottom:1px dotted rgba(217,177,94,.45); transform:translateY(-5px); min-width:20px; }
.xrow__price{ font-family:var(--font-display); font-size:1.15rem; color:var(--gold-2); }
.xrow__add{ background:none; border:1px solid rgba(217,177,94,.5); color:var(--gold-2); border-radius:999px; padding:7px 16px;
  font-family:var(--font-body); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:.25s; white-space:nowrap; }
.xrow__add:hover{ background:var(--gold); color:#2a2012; border-color:var(--gold); }
.xfeature{ margin:clamp(34px,5vw,56px) 0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.xfeature img{ width:100%; display:block; }
.xnote{ text-align:center; border-top:1px solid rgba(217,177,94,.25); border-bottom:1px solid rgba(217,177,94,.25); padding:clamp(28px,4vw,42px) 0; margin:clamp(30px,4vw,50px) 0; }
.xnote p{ color:rgba(244,239,230,.8); max-width:52ch; margin:0 auto 20px; }
.xsign{ text-align:center; font-family:var(--font-display); font-style:italic; font-size:clamp(1.6rem,3.4vw,2.4rem); color:var(--snow); margin:clamp(40px,6vw,70px) 0 0; line-height:1.2; }
.xsign span{ display:block; font-size:.9rem; font-style:normal; letter-spacing:.1em; color:var(--gold-2); margin-top:10px; }
.xnext{ text-align:center; margin-top:30px; }
.xnext a{ color:var(--gold-2); font-weight:600; } .xnext a:hover{ color:var(--snow); }
@media(max-width:560px){ .xrow{ flex-wrap:wrap; } .xrow__dots{ display:none; } .xrow__price{ margin-left:auto; } .xrow__add{ flex-basis:100%; margin-top:8px; } }

/* 2026 coming soon */
.xsoon{ position:relative; min-height:100svh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; isolation:isolate;
  padding:clamp(110px,16vh,160px) var(--gutter) clamp(60px,9vw,100px); }
.xsoon__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.xsoon::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to bottom, rgba(16,38,28,.84), rgba(16,38,28,.93)); }
.xsoon__inner{ max-width:600px; }
.xsoon h1{ font-family:var(--font-display); font-style:italic; font-size:clamp(5rem,22vw,14rem); line-height:.85; color:var(--gold-2); margin:6px 0 18px; letter-spacing:-.02em; }
.xsoon .xlede{ margin:0 auto 30px; }
.xsoon__form{ max-width:440px; margin:0 auto; display:grid; gap:12px; }
.xsoon__row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.xsoon__form input{ width:100%; padding:14px 16px; border:1px solid rgba(244,239,230,.25); border-radius:12px; background:rgba(255,255,255,.06); color:var(--snow); font-family:var(--font-body); font-size:.95rem; text-align:center; }
.xsoon__form .btn{ width:100%; justify-content:center; }
.xsoon__note{ font-size:.78rem; color:rgba(244,239,230,.55); }
@media(max-width:560px){ .xsoon__row{ grid-template-columns:1fr; } }

/* holiday menu row thumbnails */
.xrow{ align-items:center; }
.xrow__img{ width:56px; height:56px; border-radius:10px; object-fit:cover; flex:none; background:#000; border:1px solid rgba(217,177,94,.25); }
@media(max-width:560px){ .xrow__img{ width:48px; height:48px; } .xrow__name{ flex:1; } }
