/* Self-hosted fonts (Cormorant Garamond and DM Sans, SIL Open Font License). Latin subset, variable weight. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 600;font-display:swap;src:url(christmas-media/fonts/CormorantGaramond-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400 500;font-display:swap;src:url(christmas-media/fonts/CormorantGaramond-italic.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(christmas-media/fonts/DMSans-normal.woff2) format('woff2')}
/* Christmas experience (v2). Palette: forest, burgundy, champagne gold, warm ivory. */
:root{--forest:#0f2a1c;--forest2:#163826;--burgundy:#5f1a28;--champagne:#d9bf8c;--gold:#b8935a;--gold-text:#7a5c2e;--ivory:#faf6ec;--cream:#f2ebdb;--charcoal:#2a2926;--muted:#5d594f;
--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--r:14px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:17px;line-height:1.6}
body.lb-open{overflow:hidden}
img,picture,video{max-width:100%;display:block}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--champagne);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.1;margin:0}
h2{font-size:clamp(34px,5vw,52px)}
.h3{font-size:clamp(26px,3vw,32px);margin:0 0 14px}
.center-h{text-align:center;margin:56px 0 22px}
h4{font-family:var(--sans);font-size:17px;font-weight:600;margin:6px 0 4px}
p{margin:0 0 1em}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne);margin:0 0 14px}
.eyebrow-dark{color:var(--gold-text)}
.fine{font-size:14px;color:var(--muted);margin-top:18px}
.fine.light{color:#d6d3c8}
.draft-ribbon{background:var(--burgundy);color:#fff;text-align:center;font-size:14px;padding:8px 14px;position:relative;z-index:60}
.tbc{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;letter-spacing:.04em;background:#f0dfb0;color:#4a3a14;border-radius:999px;padding:2px 10px;vertical-align:middle}

/* header */
.top{position:absolute;left:0;right:0;top:var(--ribbon,0px);z-index:30;color:#fff}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;padding-bottom:18px}
.brand{color:#fff;text-decoration:none;display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-family:var(--serif);font-size:26px;font-weight:600}
.brand-sub{font-size:11px;letter-spacing:.06em;opacity:.9}
.top-nav{display:flex;gap:22px}
.top-nav a{color:#fff;text-decoration:none;font-size:15px;opacity:.92;padding:6px 2px;border-bottom:1px solid transparent}
.top-nav a:hover{border-color:var(--champagne)}
@media (max-width:700px){.top-nav a:not(:last-child){display:none}.top-nav a{font-size:14px}.brand-sub{font-size:10px}}

/* hero */
.hero{position:relative;color:#fff;background:var(--burgundy);min-height:min(92svh,860px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-pic,.hero-pic img{position:absolute;inset:0;width:100%;height:100%}
.hero-pic img{object-fit:cover;object-position:50% 45%}
.motion .hero-pic img{animation:slow 26s ease-out both}
@keyframes slow{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,42,28,.55) 0%,rgba(15,42,28,.15) 28%,rgba(15,28,20,.72) 68%,rgba(15,24,18,.9) 100%);z-index:1}
.hero-in{position:relative;z-index:3;padding-top:150px;padding-bottom:78px;max-width:1120px}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne);margin:0 0 20px;border:1px solid rgba(217,191,140,.5);padding:8px 16px;border-radius:999px;background:rgba(15,42,28,.45);backdrop-filter:blur(4px)}
.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--champagne)}
.hero h1{font-size:clamp(44px,7.4vw,92px);max-width:15ch;text-shadow:0 2px 24px rgba(0,0,0,.35);margin-bottom:22px}
.hero-msg{max-width:560px;font-size:clamp(17px,1.6vw,20px);color:#f6efe0}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin:26px 0 8px}
.btn{font:600 16px/1 var(--sans);border:0;border-radius:999px;padding:17px 28px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:52px;transition:transform .2s,box-shadow .2s,background .2s}
.btn-gold{background:var(--champagne);color:#2b1f08}
.btn-gold:hover{background:#e6cf9f;transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(4px)}
.btn-ghost:hover{background:rgba(255,255,255,.18)}
.btn-burgundy{background:var(--burgundy);color:#fff}
.btn-burgundy:hover{background:#7a2234;transform:translateY(-2px)}
.btn[aria-disabled=true]{opacity:.6;cursor:not-allowed}
.booking-note{font-size:15px;min-height:1.4em;margin:10px 0 0;color:#f3e7c9}
.booking-note a{color:inherit;text-decoration:underline}
.sec .booking-note{color:var(--burgundy)}
.sign{display:flex;align-items:center;gap:14px;margin-top:26px}
.sign img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 20%;border:2px solid var(--champagne);filter:grayscale(.1)}
.sign p{margin:0;display:flex;flex-direction:column;line-height:1.2}
.sig{font-family:var(--serif);font-style:italic;font-size:30px}
.sig-sub{font-size:13px;letter-spacing:.06em;opacity:.85}
.scroll-cue{position:absolute;right:28px;bottom:28px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center}
.scroll-cue span{width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translate(-2px,-2px)}
.motion .scroll-cue span{animation:bob 2.2s ease-in-out infinite}
@keyframes bob{50%{transform:rotate(45deg) translate(3px,3px)}}
@media (max-width:640px){.scroll-cue{display:none}.hero{min-height:94svh}.hero-in{padding-top:130px;padding-bottom:64px}.hero-pic img{object-position:46% 40%}.btn{width:100%}}

/* lights */
.lights{position:absolute;z-index:2;left:0;right:0;top:var(--lights,74px);height:46px;margin:0;padding:0;list-style:none;display:flex;justify-content:space-around;pointer-events:none}
.lights::before{content:"";position:absolute;left:-2%;right:-2%;top:6px;height:26px;border-bottom:2px solid rgba(217,191,140,.55);border-radius:0 0 50% 50%/0 0 100% 100%}
.lights li{width:9px;height:14px;border-radius:50% 50% 55% 55%;background:#ffe6a8;box-shadow:0 0 14px 4px rgba(255,214,130,.65);margin-top:20px}
.lights li:nth-child(even){margin-top:30px}
.motion .lights li{animation:tw 3.4s ease-in-out infinite}
.motion .lights li:nth-child(3n){animation-delay:-1.1s}.motion .lights li:nth-child(3n+1){animation-delay:-2.2s}
@keyframes tw{50%{opacity:.45}}

/* sections */
.sec{position:relative;padding:92px 0}
.sec-ivory{background:var(--ivory)}.sec-cream{background:var(--cream)}
.sec-forest{background:var(--forest);color:#f4efe2}
.sec-burgundy{background:var(--burgundy);color:#fbf1ee}
@media (max-width:640px){.sec{padding:64px 0}}

/* memories */
.mem-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:34px}
.years{display:flex;gap:8px;background:#fff;border:1px solid #e3d9bf;border-radius:999px;padding:5px}
.year{font:600 15px var(--sans);border:0;background:transparent;color:var(--charcoal);padding:10px 22px;border-radius:999px;cursor:pointer;min-height:44px}
.year[aria-selected=true]{background:var(--forest);color:#fff}
.mem-note{color:var(--muted)}
.gallery-grid{display:block;column-count:var(--cols,3);column-gap:20px}
.tile{position:relative;display:block;width:100%;break-inside:avoid;-webkit-column-break-inside:avoid;border:0;padding:0;margin:0 0 20px;background:var(--cream);border-radius:var(--r);overflow:hidden;cursor:zoom-in;aspect-ratio:var(--ar);box-shadow:0 8px 30px rgba(30,24,10,.12);transition:box-shadow .3s,transform .3s;text-align:left;color:#fff}
.tile-wide:first-child{column-span:all;margin-bottom:20px}
.tile picture,.tile img{width:100%;height:100%}
.tile img{object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tile-cap{position:absolute;left:0;right:0;bottom:0;padding:44px 18px 16px;background:linear-gradient(0deg,rgba(15,24,18,.82),rgba(15,24,18,0));display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.35}
.tile-cap strong{font-family:var(--serif);font-size:22px;font-weight:600}
.tile-cap span{opacity:.92}
@media (hover:hover){.tile-cap{transform:translateY(40%);opacity:0;transition:transform .4s,opacity .4s}.tile:hover .tile-cap,.tile:focus-visible .tile-cap{transform:none;opacity:1}.tile:hover img{transform:scale(1.06)}.tile:hover{box-shadow:0 18px 44px rgba(30,24,10,.28);transform:translateY(-4px)}}
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.js [data-reveal].in{opacity:1;transform:none}
.mem-empty{column-span:all;border:1px dashed #cdbd93;border-radius:var(--r);padding:44px 28px;text-align:center;background:#fff}
.mem-empty h3{font-size:28px;margin-bottom:8px}
@media (max-width:760px){.gallery-grid{column-count:var(--cols-m,2);column-gap:12px}.tile{margin-bottom:12px}.tile-cap{padding-top:36px;font-size:12px}.tile-cap strong{font-size:18px}.tile-cap span{display:none}}

/* film */
.film-in{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center}
.film h2{margin-bottom:16px}
.film-copy p{max-width:44ch;font-size:19px}
.phone{margin:0;width:clamp(240px,26vw,330px)}
.phone-in{position:relative;aspect-ratio:9/16;border-radius:30px;overflow:hidden;border:6px solid #0a1d13;box-shadow:0 0 0 1px rgba(217,191,140,.5),0 24px 60px rgba(0,0,0,.45);background:#000}
.phone-in video{width:100%;height:100%;object-fit:cover;background:#000}
.play{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;border:0;background:rgba(250,246,236,.94);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .2s}
.play:hover{transform:scale(1.08)}
.play span{width:0;height:0;border-left:22px solid var(--burgundy);border-top:14px solid transparent;border-bottom:14px solid transparent;margin-left:6px}
.play[hidden]{display:none}
@media (max-width:760px){.film-in{grid-template-columns:1fr;gap:34px;justify-items:center;text-align:center}.film-copy p{margin-left:auto;margin-right:auto}}

/* invitation */
.details{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 0}
.d{background:#fff;border:1px solid #e6dcc3;border-radius:var(--r);padding:18px 20px}
.d dt{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:4px}
.d dd{margin:0;font-family:var(--serif);font-size:23px;line-height:1.25}
.d small{display:block;font-family:var(--sans);font-size:13px;color:var(--muted);margin-top:4px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:56px}
.expect,.wear{list-style:none;margin:0;padding:0}
.expect li{display:flex;gap:14px;margin-bottom:18px}
.expect strong{display:block;font-size:17px}.expect span:not(.star){color:var(--muted)}
.star{flex:0 0 18px;height:18px;margin-top:5px;background:var(--gold);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.wear li{position:relative;padding-left:22px;margin-bottom:12px}
.wear li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--burgundy)}
.steps{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.steps li{background:#fff;border:1px solid #e6dcc3;border-radius:var(--r);padding:22px 20px}
.steps h4,.steps h3{font-family:var(--sans);font-size:17px;font-weight:600;margin:12px 0 4px}
.steps p{font-size:15px;color:var(--muted);margin:0}
.num{display:inline-flex;width:38px;height:38px;border-radius:50%;background:var(--forest);color:var(--champagne);align-items:center;justify-content:center;font-family:var(--serif);font-size:22px}
@media (max-width:900px){.details{grid-template-columns:repeat(2,1fr)}.cols{grid-template-columns:1fr;gap:34px}.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.details,.steps{grid-template-columns:1fr}}

/* faq */
.faq details{border-bottom:1px solid #ddd2b6}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-family:var(--serif);font-size:24px;font-weight:500;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-52%);font-size:30px;color:var(--gold-text);transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-52%) rotate(45deg)}
.faq details p{padding:0 0 22px;color:#4a463d;max-width:62ch}

/* gallery access + closing */
.gallery-access h2{margin-bottom:12px}
.closing{overflow:hidden;text-align:center}
.closing h2{margin-bottom:18px}
.signature.big{font-family:var(--serif);font-style:italic;font-size:44px;margin:18px 0 0}
.closing .sig-sub{display:block;margin-bottom:26px}
.branch{position:absolute;pointer-events:none;opacity:.92}
.branch-tl2{left:-30px;top:-20px;width:clamp(180px,22vw,300px);height:auto;transform:rotate(180deg) scaleX(-1)}

.foot{background:#0b1f14;color:#cfd8cf;padding:44px 0;font-size:14px}
.foot-in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.foot a{color:#e8dcc0}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(0deg,rgba(15,42,28,.96),rgba(15,42,28,.82));display:none}
.sticky-cta .btn{width:100%}
@media (max-width:640px){.sticky-cta:not([hidden]){display:block}}
.ns{padding:14px;text-align:center}

/* lightbox */
.lb{position:fixed;inset:0;z-index:90;background:rgba(10,16,12,.94);display:flex;align-items:center;justify-content:center;padding:56px 64px 64px}
.lb[hidden]{display:none}
.lb-fig{margin:0;max-width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px;color:#f1ead8}
.lb-fig img{max-width:100%;max-height:calc(100svh - 190px);width:auto;height:auto;border-radius:10px;box-shadow:0 20px 70px rgba(0,0,0,.6)}
.lb-fig figcaption{font-size:16px;text-align:center;max-width:60ch}
.lb-close,.lb-nav{position:absolute;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;border-radius:50%;width:48px;height:48px;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-close:hover,.lb-nav:hover{background:rgba(255,255,255,.2)}
.lb-close{top:14px;right:14px}.lb-prev{left:12px;top:50%;margin-top:-24px}.lb-next{right:12px;top:50%;margin-top:-24px}
.lb-count{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#cfc8b3;font-size:13px;margin:0}
@media (max-width:640px){.lb{padding:60px 12px 70px}.lb-nav{top:auto;bottom:10px;margin:0}.lb-prev{left:12px}.lb-next{right:12px}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js [data-reveal]{opacity:1;transform:none}}

/* ---- v3: private invitation page ---- */
.inv{background:var(--ivory)}
.draft-ribbon{position:sticky;top:0;z-index:50;background:#f0dfb0;color:#4a3a14;text-align:center;font-size:14px;padding:8px 14px}
.inv-hero{position:relative;background:radial-gradient(120% 90% at 20% 0%,#1c4a30 0%,var(--forest) 60%,#0b1f14 100%);color:#fff;overflow:hidden;isolation:isolate}
.inv-hero .branch{position:absolute;top:-10px;right:-40px;left:auto;width:min(420px,60vw);height:auto;opacity:.5;z-index:0;pointer-events:none}
.inv-top{position:relative;z-index:2}
.inv-hero-in{position:relative;z-index:2;max-width:760px;padding-top:34px;padding-bottom:76px}
.inv-hero h1{font-size:clamp(38px,6vw,68px);max-width:16ch;margin-bottom:20px}
.inv-hero .booking-note{min-height:1.4em}
.inv-hero .sig{display:block;margin-top:22px}
.sub-h{margin-top:30px}
.deliv{margin:36px auto 0}
.d dd small.links a{color:var(--burgundy)}
.d[hidden]{display:none}
@media (max-width:640px){.inv-hero-in{padding-top:18px;padding-bottom:56px}}
[hidden]{display:none!important}

/* ======================================================================
   v4 EDITORIAL LAYER (design/christmas-editorial)
   Restrained palette, large serif display, hairline rules, split layouts, flat images (no cards or shadows).
   Overrides the v3 rules above; markup hooks and JS are unchanged.
   ====================================================================== */
:root{--ink:#13231a;--paper:#f8f4ea;--paper2:#efe8d8;--rule:rgba(19,35,26,.18);--rule-l:rgba(248,244,234,.22);--r:2px;
--pad:clamp(24px,5vw,80px)}
body{background:var(--paper);color:var(--ink);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:400;letter-spacing:-.015em}
h2{font-size:clamp(40px,5.6vw,76px);line-height:1.02}
.h3{font-size:clamp(28px,3vw,40px);letter-spacing:-.01em}
.wrap{max-width:1280px;padding:0 var(--pad)}
.narrow{max-width:1280px}
.sec{padding:clamp(72px,10vw,150px) 0}
.sec-ivory,.sec-cream{background:var(--paper)}
.sec-cream{background:var(--paper2)}
.eyebrow{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:.24em;color:var(--gold-text);margin:0 0 28px}
.eyebrow::after{content:"";height:1px;width:56px;background:currentColor;opacity:.6}
.sec-forest .eyebrow,.hero .eyebrow,.inv-hero .eyebrow{color:var(--champagne)}
.center,.center-h{text-align:left}
.fine{font-size:14px}

/* header */
.top{position:relative;top:auto;background:var(--forest);border-bottom:1px solid var(--rule-l)}
.top-in{padding-top:22px;padding-bottom:22px}
.brand-name{font-size:28px;font-weight:500;letter-spacing:-.01em}
.brand-sub{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.top-nav{gap:36px}
.top-nav a{font-size:13px;letter-spacing:.16em;text-transform:uppercase;opacity:.85}

/* public hero: text panel + tall photograph */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:stretch;min-height:0;background:var(--forest);overflow:hidden}
.lights,.hero-shade,.scroll-cue{display:none}
.hero-pic{position:relative;inset:auto;grid-column:2;grid-row:1;min-height:min(84svh,860px);width:auto;height:auto}
.hero-pic img{position:absolute;inset:0;object-position:50% 40%}
.hero-in{grid-column:1;grid-row:1;align-self:center;margin:0;max-width:none;width:100%;padding:clamp(56px,8vw,120px) var(--pad)}
.badge{background:none;border:0;padding:0;border-radius:0;backdrop-filter:none;font-size:12px;letter-spacing:.24em;margin:0 0 32px;gap:16px}
.badge-dot{width:36px;height:1px;border-radius:0;background:var(--champagne)}
.hero h1{font-size:clamp(56px,8.4vw,128px);line-height:.92;letter-spacing:-.03em;font-weight:400;max-width:8ch;text-shadow:none;margin-bottom:36px}
.hero-msg{font-size:19px;max-width:30em;color:#e9e2d0}
.hero-msg p:first-child{font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.4vw,32px);line-height:1.25;color:#fff;margin-bottom:18px}
.cta-row{margin:34px 0 0}
.btn{border-radius:0;font-size:13px;letter-spacing:.16em;text-transform:uppercase;padding:20px 34px;min-height:56px}
.btn-gold{background:var(--champagne);color:#1d1606}
.btn-gold:hover{background:#fff;transform:none;box-shadow:none}
.btn-burgundy{background:var(--ink);color:#fff}
.btn-burgundy:hover{background:var(--burgundy);transform:none}
.sign{margin-top:48px;padding-top:26px;border-top:1px solid var(--rule-l)}
.sign img{width:52px;height:52px;border:0;filter:none}
.sig{font-size:28px}
@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero-pic{grid-column:1;grid-row:1;min-height:0;aspect-ratio:4/5;max-height:64svh}
  .hero-in{grid-column:1;grid-row:2;padding:44px var(--pad) 56px}
  .hero h1{font-size:clamp(52px,16vw,88px);max-width:none}
  .top-nav a:not(:last-child){display:none}
  .btn{width:100%}
}

/* memories: asymmetric editorial grid, flat tiles */
.mem-head{align-items:flex-end;margin-bottom:56px;padding-bottom:28px;border-bottom:1px solid var(--rule)}
.years{background:none;border:0;padding:0;gap:0}
.year{border-radius:0;background:none;padding:10px 0 10px 28px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.year[aria-selected=true]{background:none;color:var(--ink);box-shadow:inset 0 -2px 0 var(--gold)}
.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-count:auto;gap:clamp(12px,2vw,28px);align-items:end}
.tile{margin:0;border-radius:var(--r);box-shadow:none;aspect-ratio:var(--ar);grid-column:span 4;break-inside:auto}
.tile-wide:first-child{grid-column:1/-1;column-span:none;aspect-ratio:21/9;margin:0}
.tile:nth-child(2){grid-column:span 5}
.tile:nth-child(3){grid-column:span 7}
.tile:nth-child(4){grid-column:span 7}
.tile:nth-child(5){grid-column:span 5}
.tile img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.tile-cap{background:linear-gradient(0deg,rgba(10,18,13,.78),rgba(10,18,13,0));padding:56px 22px 20px}
.tile-cap strong{font-size:24px;font-weight:500}
@media (hover:hover){.tile:hover{transform:none;box-shadow:none}.tile:hover img{transform:scale(1.04)}}
@media (max-width:760px){
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tile,.tile:nth-child(n){grid-column:span 1}
  .tile-wide:first-child{grid-column:1/-1;aspect-ratio:4/3}
  .years .year{padding-left:18px}
  .tile-cap{opacity:1;transform:none;padding-top:34px}
}

/* film */
.sec-forest{background:var(--forest)}
.film-in{grid-template-columns:minmax(0,1fr) auto;gap:clamp(40px,8vw,140px)}
.film h2{font-size:clamp(40px,5vw,68px)}
.film-copy p{font-size:20px;color:#d8d3c2}
.phone-in{border-radius:2px;border:0;box-shadow:0 0 0 1px var(--rule-l)}
.play{border-radius:0;width:68px;height:68px;background:var(--paper)}
.play span{margin-left:5px}

/* tradition: heading left, copy right */
#tradition .wrap{display:grid;grid-template-columns:5fr 6fr;column-gap:clamp(32px,7vw,120px);text-align:left}
#tradition .eyebrow{grid-column:1/-1}
#tradition h2{grid-column:1}
#tradition [data-cfg-paras],#tradition .fine{grid-column:2}
#tradition [data-cfg-paras]{grid-row:2;font-size:clamp(19px,1.7vw,22px);line-height:1.7}
#tradition .fine{grid-row:3}
@media (max-width:900px){#tradition .wrap{display:block}#tradition h2{margin-bottom:28px}}

/* faq: sticky heading left, list right */
#faq .wrap{display:grid;grid-template-columns:5fr 7fr;column-gap:clamp(32px,7vw,120px);align-items:start}
#faq .eyebrow{grid-column:1/-1}
#faq h2{grid-column:1;position:sticky;top:40px}
#faq-list{grid-column:2;grid-row:2}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-child{border-top:1px solid var(--rule)}
.faq summary{font-size:clamp(22px,2vw,28px);padding:26px 48px 26px 0}
.faq summary::after{font-size:34px;font-weight:300}
@media (max-width:900px){#faq .wrap{display:block}#faq h2{position:static;margin-bottom:32px}}

/* closing */
.sec-burgundy{background:var(--ink);color:#f1ead8}
.closing{text-align:left}
.closing .branch{display:none}
.closing h2{font-size:clamp(56px,10vw,160px);line-height:.9;letter-spacing:-.035em;margin-bottom:48px}
.closing .wrap{display:grid;grid-template-columns:7fr 5fr;column-gap:clamp(32px,7vw,120px);align-items:end}
.closing h2{grid-column:1/-1}
.closing [data-cfg-paras]{font-size:20px;max-width:30em}
.signature.big{font-size:clamp(40px,4vw,56px);margin:0}
.closing .sig-sub{margin:6px 0 0;letter-spacing:.14em;text-transform:uppercase;font-size:11px;opacity:.7}
@media (max-width:900px){.closing .wrap{display:block}.closing [data-cfg-paras]{margin-bottom:32px}}
.foot{background:#0a160f}
.foot-in{align-items:flex-start;text-align:left}

/* lightbox */
.lb-fig img{border-radius:var(--r)}
.lb-close,.lb-nav{border-radius:0}

/* ---- invitation: split hero, facts band, numbered lists ---- */
.inv-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr;background:var(--forest);isolation:isolate}
.inv-hero .branch{display:none}
.inv-top{grid-column:1/-1;grid-row:1;max-width:none;width:100%;border-bottom:1px solid var(--rule-l);padding-top:22px;padding-bottom:22px}
.inv-pic{grid-column:2;grid-row:2;position:relative;min-height:560px;display:block}
.inv-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.inv-hero-in{grid-column:1;grid-row:2;max-width:none;width:100%;margin:0;padding:clamp(48px,7vw,104px) var(--pad)}
.inv-hero h1{font-size:clamp(46px,6vw,92px);line-height:.96;letter-spacing:-.025em;max-width:11ch;margin-bottom:34px}
.hero-facts{margin:0 0 32px;padding:18px 0;border-top:1px solid var(--rule-l);border-bottom:1px solid var(--rule-l);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne);line-height:1.9}
.hero-facts span{display:block}
.inv-hero .hero-msg p:first-child{font-size:inherit;font-style:normal;font-family:var(--sans);color:inherit;margin-bottom:1em}
.inv-hero .hero-msg p{font-size:18px}
.inv-hero .sig{font-size:30px}
@media (max-width:900px){
  .inv-hero{grid-template-columns:1fr}
  .inv-pic{grid-column:1;grid-row:2;min-height:0;aspect-ratio:16/11}
  .inv-hero-in{grid-column:1;grid-row:3;padding:40px var(--pad) 56px}
  .inv-hero h1{max-width:none}
}
.details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:44px 0 0;border-top:1px solid var(--ink)}
.d{background:none;border:0;border-left:1px solid var(--rule);border-radius:0;padding:24px 24px 28px}
.d:first-child{border-left:0;padding-left:0}
.d dt{margin-bottom:10px}
.d dd{font-size:clamp(24px,2.3vw,32px);line-height:1.15}
.d small{font-size:14px}
.fine{margin-top:26px}
@media (max-width:1000px){.details{grid-template-columns:repeat(2,minmax(0,1fr))}.d:nth-child(odd){border-left:0;padding-left:0}.d{border-top:1px solid var(--rule)}}
@media (max-width:560px){.details{grid-template-columns:1fr}.d{border-left:0;padding-left:0}}
.cols{gap:clamp(40px,8vw,120px);margin-top:0}
.expect{counter-reset:inc}
.expect li{counter-increment:inc;display:grid;grid-template-columns:44px 1fr;gap:0 12px;padding:22px 0;border-top:1px solid var(--rule);margin:0}
.expect li:last-child{border-bottom:1px solid var(--rule)}
.expect .star{display:none}
.expect li::before{content:counter(inc,decimal-leading-zero);font-family:var(--serif);font-size:24px;color:var(--gold-text);line-height:1.2}
.expect strong{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.2;margin-bottom:4px}
.wear li{padding-left:0;border-top:1px solid var(--rule);padding-top:16px;padding-bottom:4px;margin:0 0 12px}
.wear li::before{display:none}
.sub-h{margin-top:40px}
.center-h{margin:0 0 40px;font-size:clamp(36px,4.5vw,60px)}
.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-bottom:56px}
.steps li{background:none;border:0;border-top:1px solid var(--ink);border-radius:0;padding:22px 0 0}
.num{background:none;color:var(--gold-text);width:auto;height:auto;border-radius:0;justify-content:flex-start;font-size:44px;line-height:1}
.steps h3{font-family:var(--serif);font-size:26px;font-weight:500;margin:14px 0 8px}
.steps p{font-size:16px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.sec .center{text-align:left}
.sec .booking-note{color:var(--burgundy)}

/* v4 gallery: equal row heights, images crop to fit */
.gallery-grid{align-items:stretch}
.tile{aspect-ratio:auto;height:clamp(260px,32vw,500px)}
.tile-wide:first-child{aspect-ratio:auto;height:clamp(240px,36vw,560px)}
@media (max-width:760px){
  .tile{height:clamp(200px,52vw,300px)}.tile-wide:first-child{height:clamp(200px,60vw,320px)}
  .tile-cap strong{font-size:17px}
  .film-in{grid-template-columns:minmax(0,1fr);justify-items:start;text-align:left;gap:36px}
  .film-copy p{margin-left:0}
}

/* v4 hero motion (christmas-motion.js): the video sits in the same grid cell as the photograph and fades in over it */
.bg-video{height:0;min-height:100%;width:100%;object-fit:cover;object-position:50% 45%;opacity:0;transition:opacity 1.2s ease;background:transparent;pointer-events:none;z-index:1}
.bg-video.on{opacity:1}
.hero .bg-video,.hero .motion-toggle{grid-column:2;grid-row:1}
.inv-hero .bg-video,.inv-hero .motion-toggle{grid-column:2;grid-row:2}
.motion-toggle{z-index:3;justify-self:end;align-self:end;margin:20px;width:44px;height:44px;border:1px solid rgba(255,255,255,.6);background:rgba(10,18,13,.55);border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;backdrop-filter:blur(4px)}
.motion-toggle:hover{background:rgba(10,18,13,.8)}
.motion-toggle span{width:12px;height:14px;border-left:4px solid #fff;border-right:4px solid #fff;box-sizing:border-box}
.motion-toggle.is-paused span{width:0;height:0;border-left:13px solid #fff;border-right:0;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px}
@media (max-width:900px){
  .hero .bg-video,.hero .motion-toggle{grid-column:1;grid-row:1}
  .hero .bg-video{aspect-ratio:auto;max-height:64svh}
  .inv-hero .bg-video,.inv-hero .motion-toggle{grid-column:1;grid-row:2}
}

.hero-pic,.inv-pic{overflow:hidden}
