/* ============================================================
   GOLDEN FLOWERS — redesign.css
   Editorial modern direction · Newsreader + DM Sans · 2026
   Loaded ONLY by pages using layout: redesign (mutually
   exclusive with style.css — no class collisions).
   ============================================================ */
:root{
  --bg:oklch(95.8% .008 88);
  --bg2:oklch(93.6% .012 78);
  --paper:oklch(99% .004 90);
  --ink:oklch(20% .02 150);
  --forest:oklch(27% .05 150);
  --forest-deep:oklch(19.5% .04 150);
  --fg2:oklch(34% .02 148);
  --mute:oklch(45% .02 145);
  /* Accent (formerly terracotta, removed per client). Monochrome forest system:
     --terra  = rich accent green for light backgrounds, buttons, numerals, rules.
     --terra-soft = warm cream for accents that sit on the dark forest panels. */
  --terra:oklch(38% .105 150);
  --terra-soft:oklch(89% .022 92);
  --line:oklch(80% .015 120 / .65);
  --d:'Cormorant Garamond',Georgia,serif;  /* display — swap here to change face */
  --b:'DM Sans',-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;
  --pad:clamp(24px,5vw,72px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:var(--b);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
/* Make the hidden attribute authoritative so JS-toggled steps/success actually hide
   (class rules like .form-step-2{display:grid} would otherwise override the UA [hidden] rule). */
[hidden]{display:none !important;}
.lab{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);font-weight:500;}
.disp{font-family:var(--d);font-weight:430;letter-spacing:-.015em;line-height:1.02;font-optical-sizing:auto;}
em{font-style:normal;}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;}

/* ---------- NAV ---------- */
nav.site-nav{position:fixed;top:0;left:0;right:0;z-index:55;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad);color:var(--ink);background:var(--bg);border-bottom:1px solid var(--line);transition:transform .4s ease,background .3s ease,color .3s ease,border-color .3s ease;}
/* Don't animate the header on initial paint. Transitions enable after first frame. */
nav.site-nav:not(.nav-anim){transition:none;}
body.menu-open nav.site-nav{background:transparent;border-bottom-color:transparent;color:var(--paper);transform:none;}
/* Over a full-bleed hero (home/blog/sustainability): transparent until scrolled. Position is identical to the solid state. */
nav.site-nav.over-hero{background:transparent;color:var(--paper);border-bottom-color:transparent;}
nav.site-nav.up{transform:translateY(-100%);}
.brand{font-family:var(--d);font-size:1.62rem;letter-spacing:-.01em;}
.nav-r{display:flex;gap:36px;align-items:center;}
.nav-r a:not(.pill){font-size:.84rem;letter-spacing:.02em;opacity:.92;position:relative;padding-bottom:3px;}
/* Hover feedback: underline grows from the left */
.nav-r a:not(.pill)::after{content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:100%;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .28s ease;}
.nav-r a:not(.pill):hover{opacity:1;}
.nav-r a:not(.pill):hover::after{transform:scaleX(1);}
.nav-r a.active{opacity:1;}
.nav-r a.active::after{transform:scaleX(1);}
.pill{border:1px solid currentColor;border-radius:100px;padding:9px 20px;font-size:.82rem;letter-spacing:.01em;transition:background .25s,color .25s,border-color .25s;}
.pill:hover{background:var(--terra);color:var(--paper);border-color:var(--terra);}

/* mobile menu */
a,button{-webkit-tap-highlight-color:transparent;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;z-index:60;color:inherit;-webkit-tap-highlight-color:transparent;}
.nav-toggle span{display:block;width:26px;height:1.5px;background:currentColor;transition:transform .3s,opacity .2s,background .3s;}
body.menu-open .nav-toggle span{background:var(--paper);}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
body.menu-open .nav-toggle span:nth-child(2){opacity:0;}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-menu{position:fixed;inset:0;z-index:45;background:var(--forest-deep);color:var(--paper);transform:translateX(100%);transition:transform .45s cubic-bezier(.6,0,.2,1);display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,8vw,64px);overflow-y:auto;}
.mm-links{display:flex;flex-direction:column;}
.mm-links a{font-family:var(--d);font-size:clamp(2rem,9vw,2.6rem);letter-spacing:-.01em;padding:7px 0;}
.mobile-menu .m-cta{margin-top:26px;font-family:var(--b);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;background:var(--terra);color:var(--paper);border-radius:100px;padding:16px 28px;align-self:flex-start;}
.mm-secondary{display:flex;gap:22px;margin-top:30px;flex-wrap:wrap;}
.mm-secondary a{font-family:var(--b);font-size:.95rem;color:oklch(83% .02 130);border-bottom:1px solid oklch(100% 0 0/.25);padding-bottom:2px;}
.mm-secondary a:hover{color:var(--paper);}
.mobile-menu .m-meta{margin-top:26px;font-family:var(--b);font-size:.85rem;color:oklch(83% .02 130);line-height:1.7;}
.mobile-menu .m-meta a{color:inherit;border-bottom:1px solid oklch(100% 0 0/.25);}
body.menu-open{overflow:hidden;}
body.menu-open .mobile-menu{transform:none;}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--terra);color:var(--paper);padding:17px 30px;border-radius:100px;font-size:.85rem;letter-spacing:.03em;font-weight:500;transition:.25s;}
.btn:hover{transform:translateY(-2px);filter:brightness(1.07);}
.btn-ink{background:var(--ink);color:var(--paper);}
.btn.ghost{background:transparent;border:1px solid oklch(100% 0 0/.55);color:var(--paper);}
.btn.ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper);filter:none;}
.btn.ghost-ink{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn.ghost-ink:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);filter:none;}
/* text header (interior pages that skip the full-bleed hero) */
.text-hero{max-width:1500px;margin:0 auto;padding:clamp(120px,15vw,180px) var(--pad) clamp(36px,5vw,56px);}
.text-hero h1{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;letter-spacing:-.02em;margin:16px 0 22px;}
.text-hero h1 em{color:var(--forest);}
.text-hero .th-sub{font-size:1.1rem;color:var(--fg2);max-width:42ch;line-height:1.55;margin-bottom:28px;}
.txt-link{font-size:.85rem;letter-spacing:.03em;border-bottom:1px solid var(--terra);padding-bottom:3px;color:var(--forest);font-weight:500;transition:.2s;}
.txt-link:hover{color:var(--terra);}
button.txt-link{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;font-family:var(--b);display:inline;padding-left:0;padding-right:0;}

/* ---------- HERO ---------- */
.hero{position:relative;height:100vh;min-height:660px;display:flex;align-items:flex-end;color:var(--paper);overflow:hidden;}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,oklch(14% .03 150/.52) 0%,oklch(14% .03 150/.14) 40%,transparent 66%),linear-gradient(180deg,oklch(16% .03 150/.26) 0%,transparent 32%,transparent 60%,oklch(12% .03 150/.44) 100%);}
.hero-in{position:relative;z-index:3;width:100%;max-width:1500px;margin:0 auto;padding:0 var(--pad) clamp(48px,6.5vw,84px);}
.hero .ey{color:var(--paper);opacity:.95;margin-bottom:26px;}
.hero h1{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,6vw,5.6rem);line-height:1.0;letter-spacing:-.02em;max-width:15ch;}
.hero-foot{display:flex;flex-direction:column;align-items:flex-start;gap:26px;margin-top:clamp(30px,4vw,44px);}
.hero-sub{font-size:1.02rem;max-width:34ch;opacity:.95;line-height:1.55;}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.side-label{position:absolute;right:calc(var(--pad) - 6px);top:50%;transform:rotate(90deg);transform-origin:right center;z-index:3;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;opacity:.8;}

/* ---------- SPLIT HERO (Our Story — deliberately not full-bleed) ---------- */
.studio-hero{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,72px);align-items:center;max-width:1400px;margin:0 auto;padding:clamp(112px,14vw,170px) var(--pad) clamp(24px,3vw,44px);}
.studio-hero h1{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;letter-spacing:-.02em;margin:18px 0 22px;}
.studio-hero h1 em{color:var(--forest);}
.studio-hero .sh-sub{font-size:1.08rem;color:var(--fg2);line-height:1.62;max-width:46ch;}
.studio-hero .sh-img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;}
@media(max-width:860px){
  .studio-hero{grid-template-columns:1fr;gap:32px;padding-top:clamp(100px,24vw,130px);}
  .studio-hero .sh-img{order:-1;}
  .studio-hero .sh-img img{aspect-ratio:4/3;}
}

/* ---------- CREDO ---------- */
.credo{padding:clamp(80px,11vw,150px) var(--pad) clamp(60px,7vw,90px);max-width:1500px;margin:0 auto;}
.credo h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.1rem,5.3vw,4.8rem);line-height:1.05;letter-spacing:-.02em;max-width:24ch;text-wrap:balance;margin-top:26px;}
.credo h2 em{color:var(--forest);}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,60px);margin-top:clamp(56px,7vw,90px);border-top:1px solid var(--line);padding-top:46px;}
.fact .n{font-family:var(--d);font-style:normal;font-size:1.6rem;color:var(--terra);display:block;margin-bottom:16px;}
.fact h3{font-family:var(--d);font-size:1.55rem;margin-bottom:10px;letter-spacing:-.01em;}
.fact p{font-size:.96rem;color:var(--mute);max-width:34ch;line-height:1.62;}
/* Adjacent sections that would otherwise share the cream page background are
   separated by a subtle full-bleed paper band instead of a hairline rule. */
.band-paper{background:var(--paper);}

/* ---------- WORK ---------- */
.work{padding:clamp(30px,4vw,50px) var(--pad) clamp(20px,3vw,40px);max-width:1500px;margin:0 auto;}
.work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:46px;}
.work-head h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2rem,4.6vw,3.8rem);letter-spacing:-.02em;line-height:1;}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;}
.tile{position:relative;overflow:hidden;border-radius:3px;display:block;}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.tile:hover img{transform:scale(1.05);}
/* Captions stay legible at rest (curated gallery), scrim deepens on hover */
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,oklch(13% .03 150/.62));opacity:.85;transition:.4s;}
.tile:hover::after{opacity:1;}
.cap{position:absolute;left:22px;bottom:18px;z-index:2;color:var(--paper);opacity:1;transition:.4s;}
.cap b{font-family:var(--d);font-size:1.32rem;display:block;font-weight:430;letter-spacing:-.01em;}
.cap span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;opacity:.82;}
.feature{grid-column:span 8;height:clamp(360px,44vw,580px);}
.portrait{grid-column:span 4;height:clamp(360px,44vw,580px);}
.third{grid-column:span 4;height:clamp(240px,25vw,360px);}
.quarter{grid-column:span 3;height:clamp(240px,24vw,340px);}

/* ---------- IMMERSIVE ---------- */
.immersive{position:relative;height:78vh;min-height:520px;margin-top:clamp(40px,5vw,70px);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--paper);overflow:hidden;}
.immersive .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.immersive::after{content:"";position:absolute;inset:0;background:oklch(15% .03 150/.42);}
.immersive .il{position:relative;z-index:2;padding:0 var(--pad);}
.immersive .il p{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.9rem,4.4vw,3.6rem);line-height:1.18;letter-spacing:-.01em;max-width:20ch;margin:18px auto 0;}
.immersive .lab{color:var(--terra-soft);}

/* ---------- AESTHETICS (dark) ---------- */
.aes{background:var(--forest-deep);color:var(--paper);padding:clamp(80px,11vw,150px) var(--pad);}
.aes-wrap{max-width:1500px;margin:0 auto;}
.aes-head{max-width:44ch;margin-bottom:clamp(48px,6vw,70px);}
.aes-head .lab{color:var(--terra-soft);}
.aes-head h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2rem,4.8vw,4rem);letter-spacing:-.02em;line-height:1.04;margin-top:20px;}
.aes-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,32px);}
.aes-card{display:block;}
.aes-card .ph{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:3px;margin-bottom:22px;}
.aes-card .ph::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,oklch(15% .02 150/.45),transparent 38%);pointer-events:none;}
.aes-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.aes-card:hover .ph img{transform:scale(1.05);}
.aes-card .idx{position:absolute;top:16px;left:18px;z-index:2;font-family:var(--d);font-style:normal;font-size:2.4rem;color:var(--paper);text-shadow:0 2px 18px oklch(15% 0 0/.5);}
.aes-card h3{font-family:var(--d);font-size:1.8rem;letter-spacing:-.01em;margin-bottom:10px;}
.aes-card p{font-size:.94rem;color:oklch(83% .02 130);line-height:1.6;max-width:34ch;}
.aes-card .more{display:inline-block;margin-top:16px;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--terra-soft);border-bottom:1px solid currentColor;padding-bottom:3px;}

/* ---------- VENUE MARQUEE ---------- */
.marq{padding:clamp(60px,8vw,110px) 0;text-align:center;overflow:hidden;}
.marq .lab{margin-bottom:34px;}
.marq-track{display:flex;gap:0;white-space:nowrap;animation:scroll 46s linear infinite;width:max-content;}
.marq-track span{font-family:var(--d);font-size:clamp(1.8rem,3.4vw,2.9rem);letter-spacing:-.01em;color:var(--ink);padding:0 .55em;opacity:.85;}
.marq-track span::after{content:"·";color:var(--terra);margin-left:.55em;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.marq-track{animation:none;}}
.marq-foot{margin-top:36px;}

/* ---------- TESTIMONIAL ---------- */
.testi{padding:clamp(90px,12vw,160px) var(--pad);max-width:1100px;margin:0 auto;text-align:center;}
.stars{color:var(--terra);letter-spacing:.3em;font-size:.9rem;margin-bottom:28px;}
.testi blockquote{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.8rem,3.9vw,3.1rem);line-height:1.22;letter-spacing:-.01em;}
.testi blockquote em{color:var(--forest);}
.testi .by{margin-top:34px;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);}
.testi .by b{color:var(--ink);font-weight:500;}

/* ---------- CLOSING CTA ---------- */
.cta{background:var(--paper);padding:clamp(100px,14vw,200px) var(--pad);text-align:center;}
.cta--tall{min-height:0;padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.cta--tall p{max-width:56ch;}
.cta h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,6.6vw,6.2rem);letter-spacing:-.025em;line-height:1;}
.cta h2 em{color:var(--terra);}
.cta p{color:var(--mute);margin:24px auto 38px;max-width:42ch;font-size:1.06rem;}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--forest-deep);color:oklch(86% .02 130);padding:clamp(64px,8vw,100px) var(--pad) 34px;}
.foot-in{display:grid;grid-template-columns:1.05fr 1.35fr;gap:clamp(40px,6vw,80px);align-items:start;border-bottom:1px solid oklch(100% 0 0/.12);padding-bottom:clamp(40px,5vw,60px);}
.foot-lead{max-width:34ch;}
.foot-brand{font-family:var(--d);font-size:clamp(2.4rem,5vw,3.6rem);color:var(--paper);letter-spacing:-.01em;line-height:1;}
.foot-tag{font-size:.98rem;line-height:1.6;color:oklch(82% .02 130);margin:20px 0 26px;}
.foot-cta{display:inline-block;border:1px solid oklch(100% 0 0/.4);border-radius:100px;padding:11px 26px;font-size:.82rem;letter-spacing:.02em;color:var(--paper);transition:background .25s,color .25s,border-color .25s;}
.foot-cta:hover{background:var(--terra);border-color:var(--terra);color:var(--paper);}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);}
.foot-cols h4{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--terra-soft);margin-bottom:16px;}
.foot-cols a,.foot-cols p{display:block;font-size:.92rem;margin-bottom:10px;color:oklch(86% .02 130);line-height:1.4;}
.foot-cols a{transition:color .15s;}
.foot-cols a:hover{color:var(--paper);}
.foot-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:26px;font-size:.78rem;color:oklch(68% .02 130);letter-spacing:.02em;}
@media(max-width:860px){.foot-in{grid-template-columns:1fr;gap:40px;}.foot-cols{gap:28px 24px;}}
@media(max-width:520px){.foot-cols{grid-template-columns:1fr 1fr;}}

/* ---------- INTERIOR HERO (shorter) ---------- */
.hero.hero-sm{height:64vh;min-height:460px;}
.hero.hero-sm::after{background:linear-gradient(180deg,oklch(18% .03 150/.45) 0%,transparent 30%,oklch(12% .03 150/.5) 66%,oklch(12% .03 150/.85) 100%);}

/* ---------- PORTFOLIO ---------- */
.pf-filters{position:sticky;top:0;z-index:15;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;background:var(--bg);padding:18px var(--pad);border-bottom:1px solid var(--line);}
.pf-filters .chip{font-family:var(--b);border:1px solid var(--line);border-radius:100px;padding:9px 18px;font-size:.78rem;letter-spacing:.03em;background:transparent;color:var(--ink);cursor:pointer;transition:.2s;}
.pf-filters .chip:hover{border-color:var(--ink);}
.pf-filters .chip.active{background:var(--terra);color:var(--paper);border-color:var(--terra);}
.pf-note{text-align:center;color:var(--mute);font-size:.95rem;padding:26px var(--pad) 0;}
.pf-note a{color:var(--forest);border-bottom:1px solid var(--terra);padding-bottom:2px;}
.pf-wrap{max-width:1500px;margin:0 auto;padding:clamp(36px,5vw,64px) var(--pad) clamp(60px,8vw,110px);}
.pf-grid{column-count:3;column-gap:16px;}
.pf-card{break-inside:avoid;margin-bottom:16px;position:relative;border-radius:3px;overflow:hidden;display:block;}
.pf-card img{width:100%;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.pf-card:hover img{transform:scale(1.04);}
.pf-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,oklch(13% .03 150/.72));pointer-events:none;}
.pf-cap{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:var(--paper);}
.pf-cap b{font-family:var(--d);font-size:1.45rem;display:block;font-weight:430;letter-spacing:-.01em;}
.pf-cap .v{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;opacity:.92;display:block;margin-top:3px;}
.pf-cap .tag{display:inline-block;margin-top:10px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid oklch(100% 0 0/.5);border-radius:100px;padding:4px 11px;}
@media(max-width:1024px){.pf-grid{column-count:2;}}
@media(max-width:600px){.pf-grid{column-count:1;}}
/* Portfolio grouped-by-aesthetic with a feature layout (1 big + 2 small) */
.pf-group{max-width:1500px;margin:0 auto;padding:clamp(40px,5vw,72px) var(--pad) 0;}
.pf-group:last-of-type{padding-bottom:clamp(64px,8vw,110px);}
.pf-group-head{max-width:62ch;margin-bottom:clamp(20px,2.5vw,34px);}
.pf-group-head h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.9rem,3.6vw,3rem);letter-spacing:-.02em;line-height:1.04;margin:12px 0 10px;}
.pf-group-head p{color:var(--fg2);font-size:1.04rem;line-height:1.6;max-width:52ch;}
.pf-feature{display:grid;grid-template-columns:1.62fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:clamp(440px,48vw,648px);}
.pf-feature .pf-card{height:100%;min-height:0;margin:0;border-radius:4px;}
.pf-feature .pf-card.big{grid-row:1 / span 2;}
.pf-feature .pf-card img{height:100%;width:100%;object-fit:cover;}
@media(max-width:760px){
  .pf-feature{grid-template-columns:1fr;grid-template-rows:none;height:auto;}
  .pf-feature .pf-card.big{grid-row:auto;}
  .pf-feature .pf-card{height:64vw;}
  .pf-feature .pf-card.big{height:78vw;}
}
/* Wedding (portfolio detail) page gallery */
.wd-gallery{max-width:1200px;margin:0 auto;padding:clamp(18px,3vw,38px) var(--pad);}
.wd-hero-img{width:100%;height:clamp(360px,52vw,640px);object-fit:cover;border-radius:4px;}
.wd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;}
.wd-grid img{width:100%;height:clamp(220px,28vw,360px);object-fit:cover;border-radius:4px;}
.wd-note{text-align:center;color:var(--mute);font-size:.8rem;font-style:normal;margin-top:14px;}
@media(max-width:600px){.wd-grid{grid-template-columns:1fr;}.wd-grid img{height:56vw;}}

/* Wedding gallery: auto-filling mosaic (varied 1/2/3-up rows, never an empty bottom spot) */
.wd-mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:16px;}
.wd-mosaic .mo{display:block;overflow:hidden;border-radius:4px;position:relative;}
.wd-mosaic .mo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.wd-mosaic .mo:hover img{transform:scale(1.04);}
.wd-mosaic .mo-6{grid-column:span 6;}
.wd-mosaic .mo-3{grid-column:span 3;}
.wd-mosaic .mo-2{grid-column:span 2;}
.wd-mosaic .mo-6 img{aspect-ratio:16/9;}
.wd-mosaic .mo-3 img{aspect-ratio:4/5;}
.wd-mosaic .mo-2 img{aspect-ratio:3/4;}
@media(max-width:600px){
  .wd-mosaic{grid-template-columns:1fr;gap:12px;}
  .wd-mosaic .mo-6,.wd-mosaic .mo-3,.wd-mosaic .mo-2{grid-column:auto;}
  .wd-mosaic .mo-6 img,.wd-mosaic .mo-3 img,.wd-mosaic .mo-2 img{aspect-ratio:4/5;}
}

/* Lightbox — click / arrow / swipe through a wedding's photos */
.wd-hero-link{display:block;cursor:zoom-in;border-radius:4px;overflow:hidden;}
.wd-mosaic .mo{cursor:zoom-in;}
body.lb-open{overflow:hidden;}
.lb{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(18,16,12,.985);animation:lb-fade .18s ease;}
.lb[hidden]{display:none;}
@keyframes lb-fade{from{opacity:0}to{opacity:1}}
.lb-stage{margin:0;max-width:92vw;max-height:86vh;display:flex;align-items:center;justify-content:center;}
.lb-img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:3px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lb-btn{position:absolute;background:transparent;border:0;color:#f4efe6;cursor:pointer;line-height:1;user-select:none;-webkit-tap-highlight-color:transparent;}
.lb-close{top:16px;right:22px;font-size:2.4rem;}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:3rem;padding:6px 12px;opacity:.8;transition:opacity .15s;}
.lb-prev{left:10px;}
.lb-next{right:10px;}
.lb-prev:hover,.lb-next:hover,.lb-close:hover{opacity:1;}
.lb-count{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:#f4efe6;font-family:var(--b);font-size:.82rem;letter-spacing:.08em;opacity:.85;}
.lb-sep{opacity:.5;margin:0 5px;}
@media(max-width:600px){
  .lb-stage,.lb-img{max-width:100vw;max-height:84vh;}
  .lb-prev,.lb-next{font-size:2.1rem;opacity:.6;}
  .lb-close{font-size:2rem;top:12px;right:14px;}
}

/* ---------- INTERIOR CONTENT (shared: Studio / Process / Venues) ---------- */
.block{max-width:1500px;margin:0 auto;padding:clamp(60px,8vw,110px) var(--pad);}
.block.tight{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);}
.block-narrow{max-width:780px;margin:0 auto;padding:clamp(60px,8vw,100px) var(--pad);}
.block h2,.h-lg{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.9rem,4.4vw,3.4rem);letter-spacing:-.02em;line-height:1.06;margin-top:18px;}
.block h2 em,.h-lg em{color:var(--forest);}
.block h3{font-family:var(--d);font-weight:430;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:-.01em;}
.prose p{font-size:1.05rem;line-height:1.72;color:var(--fg2);margin-bottom:16px;max-width:66ch;}
.prose p.lead{font-family:var(--d);font-size:1.42rem;color:var(--ink);line-height:1.42;letter-spacing:-.005em;}
.hr-line{border:none;border-top:1px solid var(--line);max-width:1500px;margin:0 auto;}

/* two-column: heading left, body right */
.twocol{display:grid;grid-template-columns:.85fr 1.25fr;gap:clamp(28px,5vw,80px);align-items:start;}
.twocol .kicker{font-family:var(--d);font-style:normal;color:var(--forest);font-size:1.2rem;margin-top:20px;display:block;}
/* even two-up */
.twoup{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);}
.twoup h3{margin-bottom:14px;margin-top:6px;}

/* credentials / small fact grid */
.cred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);margin-top:clamp(48px,6vw,80px);}
.cred-item{border-top:1px solid var(--line);padding-top:18px;}
.cred-item h4{font-family:var(--d);font-size:1.3rem;letter-spacing:-.01em;margin-bottom:8px;}
.cred-item p{font-size:.92rem;color:var(--mute);line-height:1.55;}

/* values */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);margin-top:clamp(40px,5vw,64px);}
/* "What's included" — bordered, equal-height cells with a check (no ragged wrapping) */
.included-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:clamp(40px,5vw,60px);background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.included-grid .value-item{background:var(--bg);padding:clamp(24px,2.6vw,34px);}
.included-grid .value-item h3{font-family:var(--d);font-size:1.35rem;line-height:1.15;margin-bottom:12px;padding-left:26px;position:relative;}
.included-grid .value-item h3::before{content:"✓";position:absolute;left:0;top:1px;color:var(--terra);font-family:var(--b);font-size:.92rem;font-weight:500;}
.included-grid .value-item p{font-size:.95rem;color:var(--fg2);line-height:1.6;}
@media(max-width:860px){.included-grid{grid-template-columns:1fr;}}
@media(min-width:861px) and (max-width:1100px){.included-grid{grid-template-columns:repeat(2,1fr);}}
.value-item h3{margin-bottom:10px;}
.value-item p{font-size:.97rem;color:var(--fg2);line-height:1.65;}

/* seasonal accordions */
.season-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:clamp(36px,4vw,56px);}
.season-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);}
.season-card summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px;padding:22px 26px;}
.season-card summary::-webkit-details-marker{display:none;}
.season-card .season-name{font-family:var(--d);font-size:1.45rem;letter-spacing:-.01em;}
.season-card .season-dates{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-left:auto;}
.season-card .season-toggle{width:11px;height:11px;border-right:1.5px solid var(--mute);border-bottom:1.5px solid var(--mute);transform:rotate(45deg);transition:.3s;flex:none;align-self:center;}
.season-card[open] .season-toggle{transform:rotate(-135deg);}
.season-body{padding:0 26px 26px;}
.flower-list{columns:2;column-gap:24px;list-style:none;margin-bottom:14px;}
.flower-list li{font-size:.92rem;color:var(--fg2);padding:5px 0 5px 16px;position:relative;break-inside:avoid;}
.flower-list li::before{content:"";position:absolute;left:0;top:13px;width:5px;height:5px;border-radius:50%;background:var(--terra);}
.season-note{font-size:.9rem;color:var(--mute);font-style:normal;line-height:1.55;border-top:1px solid var(--line);padding-top:14px;}
.season-foot{font-size:.8rem;color:var(--mute);font-style:normal;margin-top:22px;}
/* Desktop: seasons are always open, not collapsible. Mobile: collapsible (JS collapses by default). */
@media(min-width:861px){
  .season-card .season-toggle{display:none;}
  .season-card summary{cursor:default;}
}

/* sustainability pledge */
.pledge{background:var(--bg2);}
.pledge-head{max-width:640px;margin-bottom:clamp(44px,6vw,70px);}
.pledge-intro{color:var(--fg2);font-size:1.02rem;line-height:1.65;margin-top:16px;}
.pledge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(22px,3vw,40px) clamp(40px,6vw,90px);}
.pledge-item{border-top:1px solid var(--line);padding-top:18px;}
.pledge-item h4{font-family:var(--d);font-size:1.3rem;letter-spacing:-.01em;margin-bottom:8px;}
.pledge-item p{font-size:.94rem;color:var(--mute);line-height:1.6;}
.pledge-closing{border:none;margin-top:clamp(44px,6vw,70px);}
.pledge-closing p{font-family:var(--d);font-style:normal;font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.3;color:var(--forest);max-width:30ch;}

/* ---------- PROCESS ---------- */
.proc{background:var(--bg2);color:var(--ink);padding:clamp(72px,10vw,130px) var(--pad);}
.proc-wrap{max-width:1100px;margin:0 auto;}
.proc-head{max-width:48ch;margin-bottom:clamp(44px,6vw,68px);}
.proc-head .lab{color:var(--terra);}
.proc-head h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2rem,4.6vw,3.6rem);letter-spacing:-.02em;line-height:1.05;margin:20px 0 18px;color:var(--ink);}
.proc-head p{color:var(--fg2);max-width:60ch;line-height:1.6;}
.proc-step{display:grid;grid-template-columns:74px 1fr;gap:clamp(20px,3vw,44px);padding:30px 0;position:relative;}
/* vertical timeline rail connecting the numbered nodes */
.proc-step::before{content:"";position:absolute;left:37px;top:0;bottom:0;width:1.5px;background:var(--line);}
.proc-step:first-child::before{top:52px;}
.proc-step:last-child::before{bottom:auto;height:52px;}
.proc-num{position:relative;z-index:2;width:74px;text-align:center;font-family:var(--d);font-style:normal;font-size:2rem;color:var(--terra);line-height:1;background:var(--bg2);padding:8px 0;}
.proc-when{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);}
.proc-step h3{font-family:var(--d);font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.01em;margin:8px 0 10px;color:var(--ink);}
.proc-step p{color:var(--fg2);line-height:1.65;max-width:62ch;}
/* Investment section — dark premium treatment (replaces the old dark-at-top process) */
.pricing-dark{background:var(--forest-deep);color:var(--paper);}
.pricing-dark .lab{color:var(--terra-soft);}
.pricing-dark .price-num{color:var(--paper);}
.pricing-dark .price-sub{color:oklch(82% .02 130);}
.pricing-dark .price-list li{color:oklch(85% .02 130);border-color:oklch(100% 0 0/.16);}
.pricing-dark .price-tagline{color:var(--terra-soft);}
.pricing-dark .price-list li::before{background:var(--terra-soft);}

/* ---------- PRICING ---------- */
.pricing{text-align:center;max-width:720px;margin:0 auto;}
.price-num{font-family:var(--d);font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.02em;line-height:1;margin-top:14px;}
.price-sub{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:14px;}
.price-list{list-style:none;max-width:540px;margin:34px auto 0;text-align:left;}
.price-list li{position:relative;padding:14px 0 14px 26px;border-top:1px solid var(--line);color:var(--fg2);font-size:.98rem;line-height:1.55;}
.price-list li::before{content:"";position:absolute;left:0;top:21px;width:6px;height:6px;border-radius:50%;background:var(--terra);}
.price-tagline{font-family:var(--d);font-style:normal;font-size:1.35rem;color:var(--forest);margin-top:30px;}

/* ---------- CALLOUT (risk reversal) ---------- */
.callout{max-width:820px;margin:0 auto;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:clamp(40px,5vw,64px);text-align:center;}
.callout h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:-.01em;margin:10px 0 16px;}
.callout .q{font-family:var(--d);font-style:normal;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.32;color:var(--forest);max-width:600px;margin:0 auto 18px;}
.callout .src{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);}

/* ---------- QUOTE GRID (testimonials) ---------- */
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,32px);margin-top:clamp(36px,4vw,56px);}
.quote-card{border:1px solid var(--line);border-radius:8px;padding:32px 30px;background:var(--paper);}
.quote-card .stars{color:var(--terra);letter-spacing:.2em;font-size:.8rem;margin-bottom:18px;}
.quote-card p{font-family:var(--d);font-size:1.22rem;line-height:1.35;letter-spacing:-.005em;margin-bottom:20px;}
.quote-card .src{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);}
.quote-card .src b{color:var(--ink);font-weight:500;}
/* Testimonials carousel (swipe on touch, arrows on desktop) */
.testi-carousel{margin-top:clamp(22px,3vw,36px);}
.testi-controls{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px;}
.testi-nav{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:1.05rem;cursor:pointer;transition:border-color .2s,background .2s,color .2s;}
.testi-nav:hover{border-color:var(--ink);background:var(--terra);color:var(--paper);}
.testi-row{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 18px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.testi-row::-webkit-scrollbar{display:none;}
.testi-row .quote-card{flex:0 0 clamp(270px,30%,380px);scroll-snap-align:start;display:flex;flex-direction:column;}
.testi-row .quote-card p{flex:1;}
.testi-row .quote-card .src{margin-top:auto;}

/* ---------- FAQ ---------- */
.faq-list{max-width:860px;margin:clamp(32px,4vw,48px) auto 0;}
.faq-card{border-top:1px solid var(--line);}
.faq-card:last-child{border-bottom:1px solid var(--line);}
.faq-card summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:20px;padding:24px 4px;}
.faq-card summary::-webkit-details-marker{display:none;}
.faq-q{font-family:var(--d);font-size:clamp(1.15rem,1.9vw,1.45rem);letter-spacing:-.01em;flex:1;}
.faq-toggle{position:relative;width:14px;height:14px;flex:none;}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:var(--terra);transition:.3s;}
.faq-toggle::before{left:0;right:0;top:6px;height:1.5px;}
.faq-toggle::after{top:0;bottom:0;left:6px;width:1.5px;}
.faq-card[open] .faq-toggle::after{transform:scaleY(0);}
.faq-a{padding:0 4px 26px;color:var(--fg2);line-height:1.7;max-width:72ch;}
.faq-a a{color:var(--forest);border-bottom:1px solid var(--terra);}
.faq-a strong{color:var(--ink);font-weight:500;}

/* ---------- VENUE GRID + LISTS ---------- */
.venue-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:clamp(36px,4vw,56px);}
.venue-card{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:3px;display:block;}
.venue-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.venue-card:hover img{transform:scale(1.05);}
.venue-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,oklch(13% .03 150/.72));}
.venue-overlay{position:absolute;left:22px;right:22px;bottom:20px;z-index:2;color:var(--paper);}
.venue-name{font-family:var(--d);font-size:1.5rem;letter-spacing:-.01em;line-height:1.1;}
.venue-meta{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.9;margin-top:5px;}
.venues-more{max-width:1100px;margin-top:clamp(60px,7vw,90px);}
.venues-more-intro{color:var(--fg2);max-width:62ch;margin:6px 0 18px;line-height:1.6;}
.venues-more-list{list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:16px;}
.venues-more-list li{font-size:.92rem;color:var(--fg2);border:1px solid var(--line);border-radius:100px;padding:7px 16px;}
.venues-more-note{margin-top:36px;color:var(--fg2);max-width:64ch;line-height:1.65;}
.venues-more-note strong{color:var(--ink);font-weight:500;}

/* ---------- CONSULTATION FORM ---------- */
.next-steps{list-style:none;margin-top:10px;}
.next-steps li{position:relative;padding-left:44px;margin-bottom:22px;color:var(--fg2);line-height:1.55;max-width:none;}
.next-steps li:last-child{margin-bottom:0;}
.next-steps .n{position:absolute;left:0;top:-3px;font-family:var(--d);font-style:normal;font-size:1.6rem;color:var(--terra);}
.next-steps strong{display:block;color:var(--ink);font-weight:500;margin-bottom:3px;}
.contact-links p{font-size:1.05rem;margin-bottom:12px;color:var(--fg2);}
.contact-links a{color:var(--forest);border-bottom:1px solid var(--terra);}

.form-section{max-width:640px;margin:0 auto;padding:clamp(36px,4vw,56px) var(--pad) clamp(70px,9vw,120px);}
.form-section form{margin:0 auto;}
.form-step-indicator{display:block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:24px;}
.field-full{grid-column:1 / -1;}
.form-step-1{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-step-2{display:grid;grid-template-columns:1fr;gap:18px;margin-top:18px;}
.form-section label,.modal label{display:block;font-size:.82rem;letter-spacing:.03em;color:var(--fg2);margin-bottom:8px;}
.form-section input,.form-section select,.form-section textarea,.modal input,.modal select,.modal textarea{width:100%;font-family:var(--b);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:14px 16px;transition:border-color .2s;}
.form-section input:focus,.form-section select:focus,.form-section textarea:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--terra);}
.form-section textarea,.modal textarea{resize:vertical;}
.form-advance{margin-top:22px;}
.form-advance .btn-primary,.form-submit .btn-primary{width:100%;justify-content:center;}
.form-step-hint{text-align:center;font-size:.82rem;color:var(--mute);margin-top:12px;}
.form-back{background:none;border:0;color:var(--mute);font-family:var(--b);font-size:.85rem;cursor:pointer;padding:0;margin-bottom:2px;}
.form-back:hover{color:var(--ink);}
.form-submit{margin-top:8px;}
.form-note{text-align:center;font-size:.82rem;color:var(--mute);margin-top:12px;}
.date-field{position:relative;display:block;}
.date-ghost{position:absolute;left:16px;top:14px;font-size:1rem;color:var(--mute);pointer-events:none;}
.date-ghost .gt{visibility:hidden;}

.form-success{text-align:center;max-width:600px;margin:0 auto;}
.form-success-tags{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:24px;}
.stag{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:100px;padding:6px 14px;color:var(--fg2);}
.form-success-check{width:56px;height:56px;border-radius:50%;background:var(--terra);color:var(--paper);font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;}
.form-success h3{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.01em;margin-bottom:14px;}
.form-success p{color:var(--fg2);line-height:1.6;margin-bottom:10px;}
.form-success-book{margin:32px 0;padding:28px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;}
.form-success-book-prompt{margin-bottom:16px;}
.form-success-next{margin-top:28px;}
.form-success-next .label,.form-success-next .lab{display:block;margin-bottom:10px;}
.form-success-next a{display:block;color:var(--forest);padding:8px 0;border-bottom:1px solid var(--line);}
.form-success-next a:hover{color:var(--terra);}
.is-gone{display:none !important;}

/* ---------- CONSULT MODAL (Check-your-date lightbox) ---------- */
.modal-overlay{position:fixed;inset:0;z-index:1000;background:oklch(20% .02 150/.55);display:flex;align-items:center;justify-content:center;padding:4vh 20px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
.modal-overlay.open{opacity:1;visibility:visible;}
.modal{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:14px;max-width:560px;width:100%;padding:46px 40px 40px;box-shadow:0 28px 80px oklch(20% .02 150/.32);transform:translateY(14px);transition:transform .25s ease;}
.modal-overlay.open .modal{transform:translateY(0);}
.modal-close{position:absolute;top:12px;right:14px;width:38px;height:38px;border:none;background:transparent;font-size:1.7rem;line-height:1;color:var(--mute);cursor:pointer;border-radius:50%;transition:background .2s,color .2s;}
.modal-close:hover{background:oklch(20% .02 150/.07);color:var(--ink);}
.modal h2{font-family:var(--d);font-weight:430;font-size:1.95rem;line-height:1.04;letter-spacing:-.015em;margin:8px 0 6px;color:var(--ink);}
.modal .modal-intro{font-size:.92rem;color:var(--fg2);line-height:1.6;margin:4px 0 24px;}
.modal form{display:grid;gap:15px;}
.modal .form-submit{margin-top:4px;}
body.modal-open{overflow:hidden;}
@media (max-width:520px){.modal{padding:42px 22px 28px;}}
@media (prefers-reduced-motion:reduce){.modal,.modal-overlay{transition:opacity .25s ease,visibility .25s ease;}.modal{transform:none;}}

/* ---------- BLOG INDEX ---------- */
.blog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:clamp(32px,4vw,48px);flex-wrap:wrap;}
.blog-search{font-family:var(--b);font-size:.95rem;padding:13px 20px;border:1px solid var(--line);border-radius:100px;background:var(--paper);min-width:280px;color:var(--ink);}
.blog-search:focus{outline:none;border-color:var(--terra);}
.blog-count{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);}
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(40px,5vw,80px);}
.blog-card{border-top:1px solid var(--line);}
.blog-card-link{display:block;padding:30px 0;}
.blog-card-title{font-family:var(--d);font-weight:430;font-size:clamp(1.45rem,2.3vw,1.95rem);letter-spacing:-.01em;line-height:1.14;margin-bottom:12px;transition:color .2s;}
.blog-card:hover .blog-card-title{color:var(--forest);}
.blog-card-excerpt{color:var(--fg2);line-height:1.6;margin-bottom:16px;}
.blog-card-more{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--terra);border-bottom:1px solid currentColor;padding-bottom:2px;}
.blog-more{display:block;margin:clamp(40px,5vw,60px) auto 0;background:var(--ink);color:var(--paper);border:0;border-radius:100px;padding:15px 32px;font-family:var(--b);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.blog-more:hover{background:var(--terra);}
.blog-empty{text-align:center;color:var(--mute);padding:40px 0;}

/* ---------- BLOG POST ARTICLE ---------- */
.blog-header{max-width:840px;margin:0 auto;padding:clamp(130px,16vw,190px) var(--pad) clamp(26px,3vw,38px);text-align:center;}
.blog-category{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);font-weight:500;}
.blog-title{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.02em;line-height:1.06;margin:18px 0 20px;}
.blog-meta{font-size:.85rem;letter-spacing:.04em;color:var(--mute);}
.blog-hero-img{max-width:1100px;width:calc(100% - 2 * var(--pad));margin:0 auto clamp(40px,5vw,64px);border-radius:6px;}
.blog-body{max-width:720px;margin:0 auto;padding:0 var(--pad) clamp(60px,8vw,100px);}
.blog-body p{font-size:1.08rem;line-height:1.8;color:var(--fg2);margin-bottom:22px;}
.blog-body h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.01em;line-height:1.16;margin:44px 0 16px;}
.blog-body h3{font-family:var(--d);font-weight:430;font-size:1.5rem;margin:32px 0 12px;}
.blog-body ul,.blog-body ol{margin:0 0 22px 22px;color:var(--fg2);line-height:1.8;}
.blog-body li{margin-bottom:8px;}
.blog-body a{color:var(--forest);border-bottom:1px solid var(--terra);}
.blog-body img{border-radius:6px;margin:32px 0;}
.blog-body blockquote{border-left:2px solid var(--terra);padding-left:24px;margin:32px 0;font-family:var(--d);font-style:normal;font-size:1.4rem;color:var(--forest);line-height:1.4;}
.blog-body strong{color:var(--ink);font-weight:500;}

/* ---------- VENUE SUBPAGES (legacy markup → redesign look) ---------- */
/* Venue breadcrumb — the way back to the map (sits below the solid nav) */
.venue-breadcrumb{position:sticky;top:79px;z-index:40;background:var(--bg);border-bottom:1px solid var(--line);padding:0 var(--pad);margin-top:79px;transition:top .4s ease;}
/* When the nav hides on scroll-down, the breadcrumb sits flush at the very top;
   when the nav reveals on scroll-up, it docks just beneath it. */
body.nav-hidden .venue-breadcrumb{top:0;}
.venue-breadcrumb-inner{max-width:1500px;margin:0 auto;list-style:none;display:flex;gap:11px;align-items:center;font-family:var(--b);font-size:.8rem;letter-spacing:.04em;color:var(--mute);padding:15px 0;}
.venue-breadcrumb a{color:var(--mute);border-bottom:1px solid transparent;transition:color .15s,border-color .15s;}
.venue-breadcrumb a:hover{color:var(--ink);border-bottom-color:var(--terra);}
.venue-breadcrumb .sep{color:var(--line);}
.venue-breadcrumb .current{color:var(--ink);}
.venue-hero{padding-top:clamp(18px,2.5vw,30px);}
.two-col--solo{grid-template-columns:1fr;max-width:760px;}
/* Venue intro (no photo): statement heading left, prose right — fills the width */
.venue-intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,5vw,64px);align-items:start;}
.venue-intro .vi-head h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.7rem,3vw,2.6rem);letter-spacing:-.02em;line-height:1.08;margin-top:12px;color:var(--ink);}
.venue-intro .vi-body p{font-size:1.05rem;line-height:1.72;color:var(--fg2);margin-bottom:16px;}
.venue-intro .vi-body p:last-child{margin-bottom:0;}
@media(max-width:760px){.venue-intro{grid-template-columns:1fr;gap:16px;}.venue-intro .vi-head h2{margin-top:6px;}}
.hero--interior{height:64vh;min-height:460px;}
.hero--interior .hero-media{position:absolute;inset:0;z-index:0;}
.hero--interior .hero-media img{width:100%;height:100%;object-fit:cover;}
.hero--interior .hero-copy{position:relative;z-index:3;width:100%;padding:0 var(--pad) clamp(40px,6vw,60px);}
.hero-eyebrow{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra-soft);display:block;margin-bottom:18px;}
.hero--interior .hero-display{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,7vw,6.5rem);line-height:1;letter-spacing:-.02em;}
.hero--interior .hero-sub{font-size:1.02rem;opacity:.95;margin-top:18px;max-width:40ch;}

.section{padding:clamp(60px,8vw,100px) 0;}
.section .container,.container{max-width:1500px;margin:0 auto;padding:0 var(--pad);}
.section-div{border:none;border-top:1px solid var(--line);max-width:1500px;margin:0 auto;}
.section .label,.container .label{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);font-weight:500;display:inline-block;margin-bottom:14px;}
.section h2,.container h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.9rem,4.4vw,3.2rem);letter-spacing:-.02em;line-height:1.06;margin-bottom:14px;}
.section h2 em,.container h2 em{color:var(--forest);}
.section h3,.container h3{font-family:var(--d);font-weight:430;font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:-.01em;}
.section p,.container p{color:var(--fg2);line-height:1.7;margin-bottom:14px;max-width:68ch;}

.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,70px);align-items:center;}
.two-col-img img{border-radius:4px;width:100%;}
.facts-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);margin-top:clamp(48px,6vw,72px);}
.facts-strip .fact{border-top:1px solid var(--line);padding-top:18px;}
.facts-strip .fact .label{display:block;margin-bottom:8px;}
.facts-strip .fact-body{font-size:.92rem;color:var(--mute);line-height:1.55;margin:0;}
.philosophy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,48px) clamp(40px,6vw,80px);margin-top:clamp(40px,5vw,60px);}
.philosophy-item h3{margin-bottom:10px;}
.philosophy-item p{color:var(--fg2);line-height:1.65;}

.pricing-box{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(28px,5vw,60px);align-items:start;margin-top:clamp(28px,4vw,40px);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:clamp(32px,4vw,52px);}
.price-range{font-family:var(--d);font-size:clamp(2.2rem,4.5vw,3.4rem);letter-spacing:-.02em;line-height:1;}
.price-note{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:10px;}
.price-details p{margin-bottom:14px;}

.cta-section{background:var(--bg2);padding:clamp(80px,12vw,160px) var(--pad);text-align:center;}
.cta-section .label{display:block;}
.cta-section h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.02em;line-height:1.05;margin:12px 0;}
.cta-section p{max-width:46ch;margin:0 auto 28px;color:var(--fg2);}
.btn-primary{display:inline-flex;align-items:center;gap:9px;background:var(--terra);color:var(--paper);padding:16px 30px;border-radius:100px;font-size:.85rem;letter-spacing:.03em;font-weight:500;transition:.25s;border:0;cursor:pointer;font-family:var(--b);}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.07);}

/* ---------- VENUES — words + linked list (left) · Tahoe map (right) ---------- */
.map-hero{display:grid;grid-template-columns:clamp(300px,36vw,470px) 1fr;column-gap:clamp(28px,3.5vw,56px);align-items:start;max-width:1600px;margin:0 auto;padding:clamp(120px,15vw,180px) var(--pad) clamp(36px,5vw,60px);}
.mh-head{grid-column:1;grid-row:1;}
.mh-body{grid-column:1;grid-row:2;padding-top:16px;}
.mh-map{grid-column:2;grid-row:1 / span 2;align-self:center;overflow:hidden;}
.map-hero .mh-head h1{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.025em;margin:12px 0 0;}
.tahoe{width:100%;height:auto;display:block;overflow:hidden;}
.map-hero .tahoe{width:100%;height:auto;max-width:clamp(360px,44vw,580px);max-height:none;margin:0 auto;overflow:hidden;}
@media(max-width:860px){
  .map-hero{grid-template-columns:1fr;row-gap:22px;padding:clamp(120px,15vw,180px) var(--pad) clamp(40px,6vw,64px);}
  .mh-head{grid-column:1;grid-row:1;}
  .mh-map{grid-column:1;grid-row:2;align-self:auto;}
  .mh-body{grid-column:1;grid-row:3;padding-top:0;}
  .map-hero .tahoe{max-width:520px;}
  .t-num{display:none;}
  .testi-controls{display:none;}
}
.map-legend{list-style:none;margin:26px 0 0;}
.map-note{margin:16px 0 0;font-size:.9rem;line-height:1.5;color:var(--mute);max-width:40ch;}
/* Featured venue hover-list (cross-linked with the map) */
.map-hero .mh-intro{color:var(--fg2);font-size:.98rem;line-height:1.55;max-width:40ch;margin:18px 0 4px;}
.vlist-lab{display:block;margin:22px 0 10px;}
.vlist-lab:first-of-type{margin-top:18px;}
.map-legend--inline{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0;}
.map-legend--inline li{display:flex;align-items:center;gap:9px;margin:0;font-size:.86rem;color:var(--fg2);}
/* Featured — numbered, cross-linked with the map */
.vfl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px 20px;}
.vfl li{margin:0;}
.vfl a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:8px 10px 8px 7px;border-radius:9px;transition:background .15s;text-decoration:none;}
.vfl a:hover,.vfl a.is-active{background:oklch(38% .105 150/.10);}
.vnum{display:none;}
.vfl a:hover .vnum,.vfl a.is-active .vnum{background:var(--terra);color:var(--paper);}
.vf-name{grid-column:2;grid-row:1;font-family:var(--d);font-size:1.18rem;line-height:1.2;color:var(--ink);transition:color .15s;}
.vfl a:hover .vf-name,.vfl a.is-active .vf-name{color:var(--terra);}
.vf-type{grid-column:2;grid-row:2;font-size:.75rem;color:var(--mute);letter-spacing:.01em;}
.vfl-minor{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:5px 16px;}
.vfl-minor li{margin:0;}
.vfl-minor span{font-family:var(--b);font-size:.9rem;color:var(--fg2);cursor:pointer;border-bottom:1px solid transparent;transition:color .15s,border-color .15s;}
.vfl-minor span:hover,.vfl-minor span.is-active{color:var(--terra);border-bottom-color:var(--terra);}
.foothills-note{margin:24px 0 0;padding:14px 18px;background:oklch(38% .105 150/.07);border-radius:11px;font-size:.9rem;color:var(--fg2);line-height:1.5;}
.foothills-note .lab{display:inline;margin-right:10px;}
/* Full-width secondary venue lists under the map hero */
.venues-more{max-width:1600px;margin:0 auto;padding:0 var(--pad) clamp(48px,6vw,84px);display:grid;gap:clamp(26px,3vw,40px);}
.venues-more .vlist-lab{margin:0 0 12px;}
.vfl-pills{display:flex;flex-wrap:wrap;gap:10px;margin:0;}
.vfl-pills li{margin:0;}
.vfl-pills span{display:inline-block;font-family:var(--b);font-size:.88rem;line-height:1;color:var(--fg2);border:1px solid var(--line);border-radius:100px;padding:10px 18px;cursor:default;transition:color .15s,border-color .15s,background .15s;}
.vfl-pills span[data-venue]{cursor:pointer;}
.vfl-pills span[data-venue]:hover,.vfl-pills span.is-active{color:var(--terra);border-color:var(--terra);background:oklch(38% .105 150/.06);}
/* Quiet text list (venue index): no pill borders, middot-separated, still map-linked */
.vfl-textlist{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px 0;margin:0;}
.vfl-textlist li{display:flex;align-items:baseline;margin:0;}
.vfl-textlist li:not(:last-child)::after{content:"·";color:var(--line);margin:0 14px;font-size:.9rem;}
.vfl-textlist span{display:inline-block;font-family:var(--b);font-size:.95rem;line-height:1.3;color:var(--fg2);border:0;border-bottom:1px solid transparent;border-radius:0;padding:0;background:none;transition:color .15s,border-color .15s;}
.vfl-textlist span[data-venue]{cursor:pointer;}
.vfl-textlist span[data-venue]:hover,.vfl-textlist span.is-active{color:var(--terra);border-bottom-color:var(--terra);background:none;}
/* Foothills index list is not plotted on the map: read as plain text, no hover affordance */
.vfl-static span{cursor:default;}
.vfl-textlist.vfl-static span:hover,.vfl-textlist.vfl-static span.is-active{color:var(--fg2);border-bottom-color:transparent;background:none;}
@media(max-width:560px){.vfl{grid-template-columns:1fr;gap:2px;}}
.vhl{list-style:none;margin:0;padding:0;columns:2;column-gap:28px;}
.vhl li{margin-bottom:11px;break-inside:avoid;}
.vhl a{font-family:var(--d);font-size:1.4rem;line-height:1.28;color:var(--ink);transition:color .15s;display:inline-block;border-bottom:1px solid transparent;}
.vhl a:hover,.vhl a.is-active{color:var(--terra);border-bottom-color:var(--terra);}
.vhl--minor{columns:2;column-gap:28px;}
.vhl--minor li{margin-bottom:7px;}
.vhl--minor span{font-family:var(--b);font-size:.95rem;line-height:1.25;color:var(--fg2);cursor:pointer;transition:color .15s;display:inline-block;border-bottom:1px solid transparent;}
.vhl--minor span:hover,.vhl--minor span.is-active{color:var(--terra);border-bottom-color:var(--terra);}
.t-pin.is-active .t-dot{r:11.5;fill:oklch(30% .11 150);stroke-width:3;}
.t-pin.is-active .t-vlabel{fill:var(--terra);opacity:1;}
.t-pin.t-minor.is-active .t-dot.sm{r:6;fill:var(--terra);}
.t-pin.t-minor.is-active .t-vlabel{opacity:1;}
/* inline section-label dot (replaces the old standalone legend) */
.vlist-dot{display:inline-block;border-radius:50%;vertical-align:middle;margin-right:7px;flex:none;}
.vlist-dot--feat{width:12px;height:12px;background:var(--ink);}
.vlist-dot--minor{width:8px;height:8px;background:oklch(22% .015 150/.70);}
@media(max-width:860px){.vhl,.vhl--minor{columns:2;}}
.map-legend li{display:flex;align-items:center;gap:13px;margin-bottom:13px;color:var(--fg2);font-size:.96rem;}
.map-legend .lg-dot{width:18px;height:18px;border-radius:50%;background:var(--terra);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);flex:none;}
.map-legend .lg-dot.sm{width:9px;height:9px;background:oklch(38% .105 150/.6);}
/* SVG map elements */
.t-lake{fill:oklch(73% .045 236);stroke:none;}
.t-hwy{fill:none;stroke:oklch(56% .018 250);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;opacity:.5;}
.t-hexit{font-family:var(--b);font-size:13px;fill:var(--mute);letter-spacing:.04em;}
.t-lab{font-family:var(--b);font-size:8.5px;fill:var(--mute);letter-spacing:.08em;text-transform:uppercase;}
.t-city circle{fill:var(--mute);}
.t-city text{font-family:var(--d);font-size:17px;fill:var(--ink);}
.t-dot{fill:var(--ink);stroke:var(--paper);stroke-width:2.4;cursor:pointer;transition:r .15s ease;}
.t-dot.sm{fill:oklch(22% .015 150/.70);stroke-width:1.6;cursor:pointer;}
.t-town-dot{r:2.6;fill:oklch(45% .01 150);stroke:var(--paper);stroke-width:1.2;cursor:pointer;display:none;}
/* City labels: always on, muted, for geographic orientation (venue names stay hover-only) */
.t-clabel{font-family:var(--b);font-size:11px;fill:var(--mute);letter-spacing:.02em;opacity:.85;transition:opacity .15s;paint-order:stroke;stroke:var(--paper);stroke-width:3;stroke-linejoin:round;pointer-events:none;}
.t-town:hover .t-clabel,.t-town:focus .t-clabel{opacity:1;}
.t-town{outline:none;cursor:pointer;}
.t-pin:hover .t-dot{r:11.5;fill:oklch(30% .11 150);stroke-width:3;}
.t-vlabel{font-family:var(--b);font-size:13px;fill:var(--ink);opacity:0;transition:opacity .15s,fill .15s;paint-order:stroke;stroke:var(--paper);stroke-width:3.5;stroke-linejoin:round;pointer-events:none;}
/* Featured pins: numbered dots (pair with the numbered list; readable without hover on touch). */
.t-pin.feat .t-vlabel{font-size:13px;}
.t-pin.feat .t-dot{r:9;}
.t-num{font-family:var(--b);font-size:9px;font-weight:600;fill:var(--paper);text-anchor:middle;pointer-events:none;display:none;}
.t-pin:hover .t-vlabel,.t-pin:focus .t-vlabel{opacity:1;}
.t-pin.feat:hover .t-vlabel,.t-pin.feat:focus .t-vlabel,.t-pin.feat.is-active .t-vlabel{fill:var(--terra);}
.t-minor{outline:none;}
/* SEO / no-JS venue list */
.venue-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(30px,4vw,60px);margin-top:clamp(28px,4vw,44px);}
.venue-list a{display:flex;align-items:baseline;gap:12px;padding:18px 2px;border-top:1px solid var(--line);}
.venue-list .vl-name{font-family:var(--d);font-size:1.3rem;letter-spacing:-.01em;transition:color .2s;}
.venue-list a:hover .vl-name{color:var(--forest);}
.venue-list .vl-region{font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--mute);margin-left:auto;white-space:nowrap;}

/* ---------- MINI CTA (seasonal / venue callouts) ---------- */
.mini{max-width:1500px;margin:0 auto;padding:clamp(56px,7vw,90px) var(--pad);}
.mini h2{font-family:var(--d);font-weight:430;font-optical-sizing:auto;font-size:clamp(1.8rem,3.6vw,2.8rem);letter-spacing:-.02em;margin:16px 0 12px;}
.mini p{color:var(--fg2);max-width:62ch;line-height:1.6;margin-bottom:24px;}

@media(max-width:860px){
  .nav-r{display:none;}
  .nav-toggle{display:flex;}
  .twocol,.twoup{grid-template-columns:1fr;gap:28px;}
  .proc-step{grid-template-columns:1fr;gap:6px;}
  .proc-step::before{display:none;}
  .proc-num{font-size:1.7rem;width:auto;text-align:left;padding:0;}
  .quote-grid{grid-template-columns:1fr;}
  .venue-grid{grid-template-columns:1fr 1fr;}
  .two-col,.philosophy-grid,.pricing-box{grid-template-columns:1fr;gap:28px;}
  .facts-strip{grid-template-columns:1fr 1fr;}
  .blog-grid{grid-template-columns:1fr;}
  .form-step-1{grid-template-columns:1fr;}
  .map-section{grid-template-columns:1fr;gap:24px;}
  .venue-list{grid-template-columns:1fr;}
  .venue-list a{flex-direction:column;align-items:flex-start;gap:5px;padding:15px 2px;}
  .venue-list .vl-region{margin-left:0;}
  .cred-grid{grid-template-columns:repeat(2,1fr);}
  .values-grid{grid-template-columns:1fr;}
  .season-grid,.pledge-grid{grid-template-columns:1fr;}
  .side-label{display:none;}
  .facts,.aes-row{grid-template-columns:1fr;gap:36px;}
  .feature,.portrait{grid-column:span 12;height:auto;aspect-ratio:4/3;}
  .third,.quarter{grid-column:span 6;height:auto;aspect-ratio:1/1;}
}
