/* ============================================================
   CHG Catering — site stylesheet (token names keep their olive-era names; values are the plum palette)
   Brand: Deep Olive #330033 · Champagne Gold #C9A96A · Beige #F3EFEB
   Type:  Royale Elegance (display) · Raleway (body)
   ============================================================ */
@font-face{font-family:"Royale Elegance";src:url("../fonts/RoyaleElegance-Web.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}

:root{
  --olive:#330033;--olive-deep:#200020;--olive-soft:#4E2B4E;--olive-ink:#2A142A;--olive-mute:#6B4F6B;
  --gold:#C9A96A;--gold-light:#E3D3AE;--gold-deep:#9C7D42;--gold-dim:rgba(201,169,106,.35);
  --beige:#F3EFEB;--beige-deep:#E9E3DB;--beige-line:#D9D0C4;
  --cream:#F3EFEB;--cream-mute:rgba(243,239,235,.72);--cream-line:rgba(243,239,235,.18);
  --display:"Royale Elegance","Cormorant Garamond",Georgia,serif;
  --body:"Raleway","Helvetica Neue",Arial,sans-serif;
  --header-h:76px;--ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --band-beige:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23330033' d='M24.640 16.000C18.938 16.000 16.000 18.938 16.000 24.640C16.000 18.938 13.062 16.000 7.360 16.000C13.062 16.000 16.000 13.062 16.000 7.360C16.000 13.062 18.938 16.000 24.640 16.000Z'/%3E%3Cpath fill='%23330033' fill-opacity='.85' d='M18.810 18.810C16.843 16.843 15.157 16.843 13.190 18.810C15.157 16.843 15.157 15.157 13.190 13.190C15.157 15.157 16.843 15.157 18.810 13.190C16.843 15.157 16.843 16.843 18.810 18.810Z'/%3E%3C/svg%3E");--band-olive:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23c9a96a' d='M24.640 16.000C18.938 16.000 16.000 18.938 16.000 24.640C16.000 18.938 13.062 16.000 7.360 16.000C13.062 16.000 16.000 13.062 16.000 7.360C16.000 13.062 18.938 16.000 24.640 16.000Z'/%3E%3Cpath fill='%23c9a96a' fill-opacity='.85' d='M18.810 18.810C16.843 16.843 15.157 16.843 13.190 18.810C15.157 16.843 15.157 15.157 13.190 13.190C15.157 15.157 16.843 15.157 18.810 13.190C16.843 15.157 16.843 16.843 18.810 18.810Z'/%3E%3C/svg%3E");
  --radius:2px;
}

*{box-sizing:border-box}
[id]{scroll-margin-top:var(--header-h)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground,#F3EFEB);color:var(--olive-ink);font-family:var(--body);font-weight:300;font-size:17px;line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4,.display{font-family:var(--display);font-weight:400;letter-spacing:.01em;margin:0;text-wrap:balance;line-height:1.05}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
strong{font-weight:500;color:var(--olive)}
.gold{color:var(--gold-deep)}
.olive .gold,.hero .gold{color:var(--gold)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type scale ---------- */
.eyebrow{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--gold-deep);display:flex;align-items:center;gap:14px;margin:0 0 18px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);flex:none}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:var(--gold);flex:none}
.h1{font-size:clamp(40px,5.2vw,74px)}
.h2{font-size:clamp(34px,4.1vw,56px)}
.h3{font-size:clamp(24px,2.4vw,32px)}
.lead{font-size:clamp(18px,1.45vw,21px);line-height:1.5;font-weight:400;color:var(--olive)}
.olive .lead{color:var(--cream)}
.olive .eyebrow{color:var(--gold)}
.olive p{color:var(--cream-mute)}
.olive h1,.olive h2,.olive h3{color:var(--cream)}
.olive strong{color:var(--gold-light)}
.text{display:grid;gap:16px;max-width:60ch}
.text p{color:var(--olive-soft)}
.olive .text p{color:var(--cream-mute)}
.center{text-align:center}
.center .text{margin-inline:auto}
.center .eyebrow{justify-content:center}

/* ---------- layout ---------- */
.wrap{width:min(1200px,calc(100% - 2*clamp(20px,5vw,72px)));margin-inline:auto;max-width:100%;position:relative;z-index:2}
.wrap.narrow{width:min(860px,calc(100% - 2*clamp(20px,5vw,72px)))}
.wrap.wide{width:min(1400px,calc(100% - 2*clamp(18px,3.5vw,48px)))}
.section{position:relative;padding:clamp(72px,10vh,130px) 0}
.section.tight{padding:clamp(48px,7vh,80px) 0}
.section.beige{background:var(--beige)}
.section.beige-deep{background:var(--beige-deep)}
.section.olive{background:var(--olive);color:var(--cream)}
.section.olive-deep{background:var(--olive-deep);color:var(--cream)}
.band{position:absolute;left:0;right:0;bottom:0;height:52px;background-image:var(--band-beige);background-size:52px 52px;background-repeat:repeat-x;background-position:center;opacity:.38;pointer-events:none}
.olive .band,.olive-deep .band{background-image:var(--band-olive);opacity:.3}
.band.top{bottom:auto;top:0}
.sec-head{display:grid;gap:14px;max-width:760px;margin-bottom:clamp(36px,5vh,64px)}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.grid{display:grid;gap:clamp(18px,2.4vw,32px)}
.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,100px);align-items:center}
.split.rev>:first-child{order:2}
.split>*{min-width:0}
.grid>*{min-width:0}
@media (max-width:980px){
  .grid.c3,.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split{grid-template-columns:minmax(0,1fr)}
  .split.rev>:first-child{order:0}
}
@media (max-width:600px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:minmax(0,1fr)}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 28px;border:1px solid var(--gold);background:var(--gold);color:var(--olive-deep);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;text-decoration:none;cursor:pointer;transition:.35s var(--ease);position:relative;overflow:hidden;border-radius:var(--radius)}
.btn::after{content:"";position:absolute;inset:0;background:var(--olive-deep);transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:0}
.btn>*{position:relative;z-index:1}
.btn:hover{color:var(--gold)}
.btn:hover::after{transform:none}
.btn.ghost{background:transparent;color:var(--olive);border-color:var(--olive)}
.btn.ghost::after{background:var(--olive)}
.btn.ghost:hover{color:var(--beige)}
.olive .btn.ghost,.hero .btn.ghost{color:var(--cream);border-color:rgba(243,239,235,.5)}
.olive .btn.ghost::after,.hero .btn.ghost::after{background:var(--gold)}
.olive .btn.ghost:hover,.hero .btn.ghost:hover{color:var(--olive-deep)}
.btn svg{width:16px;height:16px}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;text-decoration:none;color:var(--gold-deep);border-bottom:1px solid transparent;transition:.3s}
.link-arrow svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.link-arrow:hover{border-color:var(--gold)}
.link-arrow:hover svg{transform:translateX(5px)}
.olive .link-arrow{color:var(--gold)}

/* ---------- header ---------- */
.site-head{position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:60;display:flex;align-items:center;color:var(--cream);transition:background .4s,border-color .4s,transform .4s var(--ease);background:transparent;border-bottom:1px solid transparent}
.site-head.solid{background:rgba(51,0,51,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--cream-line)}
.site-head.hide{transform:translateY(-100%)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1400px,calc(100% - 2*clamp(18px,3.5vw,48px)))}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--cream)}
.brand svg{width:54px;height:35px;color:var(--gold)}
.brand .word{font-family:var(--display);font-size:24px;line-height:1;display:flex;gap:.28em}
.brand .word em{font-style:normal;color:var(--gold)}
.brand .tag{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-mute);margin-top:5px;font-weight:500;display:block}
.nav{display:flex;gap:clamp(12px,1.6vw,26px);align-items:center}
.nav a{text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--cream-mute);padding:8px 0;position:relative;transition:color .3s}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--gold);transition:right .35s var(--ease)}
.nav a:hover,.nav a.active{color:var(--cream)}
.nav a.active::after{right:0}
.nav .cta{margin-left:10px;padding:11px 18px;border:1px solid var(--gold);color:var(--gold);border-radius:var(--radius)}
.nav .cta::after{display:none}
.nav .cta:hover{background:var(--gold);color:var(--olive-deep)}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--gold);transition:width .15s linear}
.menu-btn{display:none;background:none;border:1px solid var(--cream-line);border-radius:999px;padding:10px 16px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;cursor:pointer;color:var(--cream);gap:10px;align-items:center}
.menu-btn i{width:18px;height:1px;background:currentColor;position:relative;display:block}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;top:-5px}
.menu-btn i::after{top:5px}
.menu-overlay{position:fixed;inset:0;z-index:55;background:var(--olive-deep);color:var(--cream);display:grid;align-content:center;justify-items:center;gap:6px;padding:100px 24px 60px;transform:translateY(-100%);transition:transform .6s var(--ease-out);overflow:auto}
.menu-overlay.open{transform:none}
.menu-overlay a{font-family:var(--display);font-size:clamp(34px,7vw,56px);text-decoration:none;color:var(--cream);line-height:1.2;transition:color .3s}
.menu-overlay a:hover,.menu-overlay a.active{color:var(--gold)}
.menu-overlay .small{margin-top:30px;display:flex;gap:26px;flex-wrap:wrap;justify-content:center}
.menu-overlay .small a{font-family:var(--body);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-mute)}
.menu-overlay .motif{position:absolute;right:-6vw;bottom:-6vw;width:40vw;max-width:420px;opacity:.12;color:var(--gold);pointer-events:none}
@media (max-width:1040px){.nav{display:none}.menu-btn{display:inline-flex}}

/* ---------- heroes ---------- */
.hero{position:relative;background:var(--olive);color:var(--cream);overflow:hidden}
.hero-home{min-height:100svh;display:grid;align-items:center;padding:calc(var(--header-h) + 30px) 0 150px}
/* hero slideshow: slow cross-fade + drift, under a plum veil that keeps the copy legible */
.hero-home .slides{position:absolute;inset:0;overflow:hidden;background:var(--olive-deep);isolation:isolate;z-index:0}
.hero-home .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 3s cubic-bezier(.4,0,.2,1);will-change:transform,opacity;backface-visibility:hidden}
/* the outgoing picture keeps drifting while it fades — the same animation on both states means no restart, no jump */
.hero-home .slides img.on,.hero-home .slides img.off{animation:kburns 18s linear forwards}
.hero-home .slides img.on{opacity:1;z-index:1}
.hero-home .slides img.off{opacity:1;z-index:0}
@keyframes kburns{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.14) translate(-1.6%,1.2%)}}
.hero-home .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,0,32,.64) 0%,rgba(32,0,32,.72) 45%,rgba(32,0,32,.93) 100%),radial-gradient(62% 58% at 50% 52%,rgba(32,0,32,.5),transparent 72%)}
@media (prefers-reduced-motion:reduce){.hero-home .slides img.on{animation:none}}
.hero-home .wrap{text-align:center;display:grid;justify-items:center;gap:18px;position:relative;z-index:1}
.hero-home .mark{width:clamp(110px,11vw,160px);aspect-ratio:1656.6/1071.1;color:var(--gold);animation:rise 1.2s var(--ease) both}
.hero-home h1{font-size:clamp(40px,5.6vw,78px);color:var(--cream);max-width:14ch;animation:rise 1.2s .15s var(--ease) both}
.hero-home h1 em{font-style:normal;color:var(--gold)}
.hero-home .sub{max-width:52ch;color:var(--cream-mute);font-size:clamp(16px,1.3vw,19px);animation:rise 1.2s .3s var(--ease) both}
.hero-home .btn-row{justify-content:center;margin-top:10px;animation:rise 1.2s .45s var(--ease) both}
.hero-home .tagline{font-size:clamp(11px,1vw,12.5px);letter-spacing:.34em;text-transform:uppercase;color:var(--gold);font-weight:500}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.scroll-cue{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);display:grid;justify-items:center;gap:12px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-mute);text-decoration:none;font-weight:500}
.scroll-cue i{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);display:block;animation:drip 2.6s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.hero-page{min-height:min(72svh,640px);display:grid;align-items:end;padding:calc(var(--header-h) + 60px) 0 clamp(48px,7vh,80px)}
.hero-page .bg{position:absolute;inset:0}
.hero-page .bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.hero-page .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,0,32,.55),rgba(32,0,32,.35) 40%,rgba(51,0,51,.92) 100%)}
.hero-page .wrap{display:grid;gap:16px;max-width:820px}
.hero-page h1{font-size:clamp(42px,5.6vw,80px);color:var(--cream)}
.hero-page .lead{color:var(--cream-mute);max-width:56ch;font-weight:300}
.hero-page .crumbs{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:500;display:flex;gap:12px;align-items:center}
.hero-page .crumbs a{text-decoration:none;color:var(--cream-mute)}
.hero-page .crumbs a:hover{color:var(--cream)}

/* ---------- photos ---------- */
.photo{position:relative;overflow:hidden;background:var(--beige-deep);border-radius:var(--radius)}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.photo.zoom{cursor:zoom-in}
.photo.zoom:hover img{transform:scale(1.045)}
.photo.framed::after{content:"";position:absolute;inset:14px;border:1px solid rgba(201,169,106,.55);pointer-events:none;transition:inset .6s var(--ease)}
.photo.framed:hover::after{inset:10px}
.offset{position:relative}
.offset::before{content:"";position:absolute;inset:-16px 16px 16px -16px;border:1px solid var(--gold);pointer-events:none}
.olive .offset::before{border-color:rgba(201,169,106,.7)}
.ratio-34{aspect-ratio:3/4}.ratio-43{aspect-ratio:4/3}.ratio-45{aspect-ratio:4/5}.ratio-169{aspect-ratio:16/9}.ratio-1{aspect-ratio:1}
.reveal{transform:translateY(22px);transition:transform 1s var(--ease)}
.reveal.in{transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;position:relative;padding:8px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .track{display:flex;gap:clamp(48px,6vw,96px);align-items:center;width:max-content;animation:scrollx 70s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee img{height:44px;width:auto;max-width:170px;object-fit:contain;filter:saturate(.5);opacity:.78;transition:.4s}
.marquee img:hover{filter:none;opacity:1}
@keyframes scrollx{to{transform:translateX(-50%)}}
.trusted{padding:44px 0 40px;border-top:1px solid var(--beige-line);border-bottom:1px solid var(--beige-line)}
.trusted .eyebrow{justify-content:center;margin-bottom:26px}

/* ---------- stats ---------- */
.stats{display:flex;gap:clamp(22px,4vw,64px);flex-wrap:wrap}
.stat b{display:block;font-family:var(--display);font-size:clamp(38px,4vw,54px);line-height:1;color:var(--olive);font-weight:400}
.olive .stat b{color:var(--gold)}
.stat>span{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--olive-mute);display:block;margin-top:8px}
.olive .stat>span{color:var(--cream-mute)}

/* ---------- cards ---------- */
.card{display:grid;text-decoration:none;color:inherit;background:transparent}
.card .photo{aspect-ratio:4/3.1}
.card .body{padding:22px 0 0;display:grid;gap:10px}
.card h3{font-size:26px}
.card p{font-size:15.5px;color:var(--olive-soft)}
.card .label{background:var(--olive);color:var(--cream);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:background .35s}
.card .label span{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.card .label b{font-family:var(--display);font-weight:400;font-size:20px;color:var(--gold)}
.card:hover .label{background:var(--olive-deep)}
.olive .card p{color:var(--cream-mute)}
.tile{padding:clamp(24px,3vw,36px);border:1px solid var(--beige-line);display:grid;gap:14px;align-content:start;background:rgba(255,255,255,.25);transition:.4s var(--ease);position:relative}
.tile:hover{border-color:var(--gold);transform:translateY(-4px)}
.tile .ic{width:48px;height:48px;border-radius:50%;background:var(--olive);color:var(--gold);display:grid;place-items:center}
.tile .ic svg{width:22px;height:22px}
.tile h3{font-size:24px}
.tile p{font-size:15px;color:var(--olive-soft)}
.olive .tile{border-color:var(--cream-line);background:rgba(243,239,235,.04)}
.olive .tile .ic{background:var(--gold);color:var(--olive-deep)}
.olive .tile p{color:var(--cream-mute)}
.list-rule li{display:grid;grid-template-columns:2px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--beige-line)}
.list-rule li:last-child{border-bottom:1px solid var(--beige-line)}
.list-rule li::before{content:"";width:2px;height:0;background:var(--gold);transition:height .5s var(--ease)}
.list-rule li:hover::before{height:100%}
.list-rule h3{font-family:var(--body);font-weight:600;font-size:16px;letter-spacing:.04em;color:var(--olive);margin-bottom:6px}
.list-rule p{font-size:15px;color:var(--olive-soft)}
.olive .list-rule li{border-color:var(--cream-line)}
.olive .list-rule h3{color:var(--cream)}
.checks li{display:grid;grid-template-columns:24px 1fr;gap:16px;align-items:start;font-size:16px;color:var(--olive-ink);padding:6px 0}
.checks i{width:24px;height:24px;margin-top:2px;background:var(--band-beige) center/24px 24px no-repeat;flex:none}
.olive .checks li{color:var(--cream-mute)}
.olive .checks i{background-image:var(--band-olive)}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,90px);align-items:center;padding:clamp(40px,6vh,80px) 0;border-top:1px solid var(--beige-line)}
.feature:first-of-type{border-top:0}
.feature.rev .photo{order:-1}
.feature .num{font-family:var(--display);font-size:64px;line-height:1;color:var(--gold);opacity:.7}
.feature .photo{aspect-ratio:4/3}
.feature ul{display:grid;gap:8px;margin-top:16px}
.feature ul li{display:flex;gap:12px;font-size:15px;color:var(--olive-soft)}
.feature ul li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none;margin-top:9px}
@media (max-width:980px){.feature{grid-template-columns:minmax(0,1fr)}.feature.rev .photo{order:0}}
.gold-note{background:var(--gold);color:var(--olive-deep);padding:22px clamp(20px,3vw,40px);font-size:15.5px;font-weight:400;line-height:1.5;display:flex;gap:18px;align-items:center}
.gold-note::before{content:"";width:34px;height:34px;flex:none;background:var(--band-olive) center/34px 34px no-repeat;opacity:.9}
.quote{font-family:var(--display);font-size:clamp(26px,2.8vw,40px);line-height:1.2;color:var(--gold-deep)}
.olive .quote{color:var(--gold)}

/* ---------- tabs / chips ---------- */
.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--beige-line)}
.tabs button{background:none;border:0;padding:14px 18px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);cursor:pointer;position:relative;transition:color .3s}
.tabs button::after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .35s var(--ease)}
.tabs button[aria-selected=true]{color:var(--olive)}
.tabs button[aria-selected=true]::after{transform:none}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--beige-line);background:transparent;padding:8px 14px;border-radius:999px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--olive-soft);cursor:pointer;transition:.3s}
.chip[aria-pressed=true],.chip:hover{border-color:var(--gold);color:var(--olive)}
.chip[aria-pressed=true]{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}

/* ---------- menus ---------- */
.menu-panel{display:none}
.menu-panel.active{display:block}
.menu-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,64px);margin-top:36px}
.menu-group h3{font-size:28px;margin-bottom:6px;display:flex;align-items:baseline;gap:12px}
.menu-group h3 small{font-family:var(--body);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--olive-mute);font-weight:500}
.dish{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--beige-line);align-items:start;transition:opacity .3s}
.dish.hidden{display:none}
.dish b{font-weight:500;color:var(--olive);font-size:16px}
.dish p{font-size:14px;color:var(--olive-soft);margin-top:2px}
.dish .tags{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.dish .tags span{width:26px;height:26px;border-radius:50%;border:1px solid var(--beige-line);display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--olive-mute);letter-spacing:0}
.dish .tags span.on{border-color:var(--gold);color:var(--gold-deep)}
@media (max-width:760px){.menu-cols{grid-template-columns:minmax(0,1fr)}}

/* ---------- composer ---------- */
.composer{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,60px);align-items:start}
.composer .panel{border:1px solid var(--cream-line);padding:clamp(22px,3vw,36px);display:grid;gap:22px;background:rgba(243,239,235,.04)}
.composer .field{display:grid;gap:10px}
.composer label,.field-label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold)}
.composer .opts{display:flex;gap:8px;flex-wrap:wrap}
.opt{border:1px solid var(--cream-line);background:transparent;color:var(--cream-mute);padding:10px 16px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;cursor:pointer;border-radius:999px;transition:.3s}
.opt:hover{border-color:var(--gold);color:var(--cream)}
.opt[aria-pressed=true]{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}
.range{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:var(--cream-line);outline:none}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--gold);border:4px solid var(--olive-deep);cursor:pointer}
.range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--gold);border:3px solid var(--olive-deep);cursor:pointer}
.composer output{font-family:var(--display);font-size:38px;color:var(--gold);line-height:1}
.result{border:1px solid var(--gold-dim);padding:clamp(22px,3vw,36px);display:grid;gap:18px;position:relative}
.result::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.25);pointer-events:none}
.result h3{font-size:30px;color:var(--cream)}
.result .line{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:baseline;padding:10px 0;border-top:1px solid var(--cream-line)}
.result .line b{font-family:var(--display);font-size:26px;color:var(--gold);font-weight:400;min-width:2.2ch}
.result .line span{color:var(--cream-mute);font-size:15px}
.result .note{font-size:12.5px;color:var(--cream-mute);letter-spacing:.04em}

/* ---------- compare switcher ---------- */
.compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.compare .col{border:1px solid var(--beige-line);padding:clamp(22px,2.6vw,34px);display:grid;gap:16px;align-content:start;background:rgba(255,255,255,.22);transition:.4s var(--ease);cursor:pointer}
.compare .col.on{border-color:var(--gold);background:#fff;transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(32,0,32,.35)}
.compare .col h3{font-size:26px}
.compare .row{display:grid;gap:4px;padding-top:12px;border-top:1px solid var(--beige-line)}
.compare .row span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--olive-mute)}
.compare .row b{font-weight:400;color:var(--olive);font-size:15.5px}
.compare .photo{aspect-ratio:16/10}
@media (max-width:860px){.compare{grid-template-columns:minmax(0,1fr)}.compare .col.on{transform:none}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.4vw,36px);position:relative}
.steps::before{content:"";position:absolute;left:36px;right:36px;top:36px;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 12%,var(--gold) 88%,transparent)}
.step{position:relative;display:grid;gap:18px;align-content:start}
.step .icon{width:72px;height:72px;border-radius:50%;background:var(--olive);color:var(--gold);display:grid;place-items:center;position:relative;z-index:1;border:6px solid var(--beige-deep);transition:transform .5s var(--ease),background .4s}
.beige .step .icon{border-color:var(--beige)}
.step:hover .icon{transform:translateY(-4px);background:var(--olive-deep)}
.step .icon svg{width:30px;height:30px}
.step .num{font-family:var(--display);font-size:54px;line-height:1;color:var(--gold);position:absolute;right:0;top:-6px;opacity:.65}
.step h3{font-family:var(--body);font-weight:600;font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--olive);margin-top:6px}
.step p{font-size:15.5px;color:var(--olive-soft);max-width:30ch}
@media (max-width:980px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.steps::before{display:none}}
@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}}

/* ---------- accordion ---------- */
.acc{border-top:1px solid var(--beige-line)}
.acc details{border-bottom:1px solid var(--beige-line)}
.acc summary{list-style:none;cursor:pointer;padding:22px 0;display:grid;grid-template-columns:1fr 28px;gap:16px;align-items:center;font-size:18px;font-weight:400;color:var(--olive);transition:color .3s}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{width:28px;height:28px;border-radius:50%;border:1px solid var(--beige-line);position:relative;transition:.35s var(--ease)}
.acc summary i::before,.acc summary i::after{content:"";position:absolute;left:8px;right:8px;top:13px;height:1px;background:var(--olive)}
.acc summary i::after{transform:rotate(90deg);transition:transform .35s var(--ease)}
.acc details[open] summary{color:var(--gold-deep)}
.acc details[open] summary i{border-color:var(--gold);transform:rotate(45deg)}
.acc .ans{padding:0 0 24px;max-width:70ch;color:var(--olive-soft);font-size:15.5px}

/* ---------- forms ---------- */
.form{display:grid;gap:18px}
.field{display:grid;gap:8px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--beige-line);padding:12px 0;font-size:16px;color:var(--olive-ink);transition:border-color .3s;border-radius:0}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field textarea{min-height:110px;resize:vertical}
.olive .field input,.olive .field select,.olive .field textarea{color:var(--cream);border-color:var(--cream-line)}
.olive .field select option{color:var(--olive-ink)}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
@media (max-width:640px){.f2{grid-template-columns:minmax(0,1fr)}}
.wizard{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:start}
.wiz-steps{display:grid;gap:0;border-left:1px solid var(--cream-line);padding-left:26px;position:sticky;top:110px}
.wiz-steps li{padding:12px 0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--cream-mute);position:relative;transition:color .3s}
.wiz-steps li::before{content:"";position:absolute;left:-31px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--olive-deep);border:1px solid var(--cream-line);transition:.3s}
.wiz-steps li.on{color:var(--cream)}
.wiz-steps li.on::before{background:var(--gold);border-color:var(--gold)}
.wiz-steps li.done{color:var(--gold)}
.wiz-steps li.done::before{background:var(--gold);border-color:var(--gold)}
.wiz-pane{display:none;gap:22px}
.wiz-pane.on{display:grid}
.wiz-pane h3{font-size:30px;color:var(--cream)}
.wiz-nav{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:8px}
.summary{border:1px solid var(--gold-dim);padding:22px 26px;display:grid;gap:8px;font-size:15px;color:var(--cream-mute)}
.summary b{color:var(--cream);font-weight:500}
@media (max-width:860px){.wizard{grid-template-columns:minmax(0,1fr)}.wiz-steps{position:static;display:flex;flex-wrap:wrap;gap:8px 22px;border:0;padding:0}.wiz-steps li::before{display:none}}

/* ---------- gallery ---------- */
.masonry{columns:3;column-gap:18px}
.masonry .photo{break-inside:avoid;margin-bottom:18px}
.masonry .photo.hidden{display:none}
.masonry .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(transparent,rgba(32,0,32,.75));color:var(--cream);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;opacity:0;transform:translateY(8px);transition:.4s var(--ease)}
.masonry .photo:hover .cap{opacity:1;transform:none}
@media (max-width:980px){.masonry{columns:2}}
@media (max-width:560px){.masonry{columns:1}}
.lb{position:fixed;inset:0;z-index:100;background:rgba(32,0,32,.96);display:none;align-items:center;justify-content:center;padding:clamp(16px,4vw,56px)}
.lb.open{display:flex}
.lb img{max-width:min(92vw,1400px);max-height:82vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.lb .cap{position:absolute;left:0;right:0;bottom:26px;text-align:center;color:var(--cream-mute);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.lb button{position:absolute;background:none;border:1px solid rgba(201,169,106,.5);color:var(--gold);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.3s}
.lb button:hover{background:rgba(201,169,106,.15)}
.lb .x{top:22px;right:22px}.lb .p{left:22px;top:50%;transform:translateY(-50%)}.lb .n{right:22px;top:50%;transform:translateY(-50%)}
.lb svg{width:18px;height:18px}

/* ---------- contact ---------- */
.ct-list{display:grid;border-top:1px solid var(--beige-line)}
.ct-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--beige-line);text-decoration:none;transition:padding-left .4s var(--ease)}
.ct-row:hover{padding-left:6px}
.ct-row .ic{width:44px;height:44px;border-radius:50%;background:var(--olive);color:var(--gold);display:grid;place-items:center}
.ct-row .ic svg{width:19px;height:19px}
.ct-row .v{font-size:clamp(17px,1.5vw,20px);font-weight:400;color:var(--olive)}
.ct-row .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--olive-mute);font-weight:500;display:block;margin-bottom:2px}
.ct-row .go{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--gold-deep);opacity:0;transform:translateX(-6px);transition:.35s var(--ease)}
.ct-row:hover .go{opacity:1;transform:none}
.copy-btn{background:none;border:1px solid var(--beige-line);border-radius:999px;padding:7px 14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;cursor:pointer;color:var(--olive-soft);transition:.3s}
.copy-btn:hover{border-color:var(--gold);color:var(--olive)}
.map{aspect-ratio:16/9;border:1px solid var(--beige-line);position:relative;overflow:hidden;background:var(--beige-deep)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.6) sepia(.25) contrast(.95)}
.toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,20px);background:var(--olive-deep);color:var(--cream);padding:12px 22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;border:1px solid rgba(201,169,106,.5);opacity:0;pointer-events:none;transition:.4s var(--ease);z-index:80}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- sticky actions ---------- */
.sticky{position:fixed;right:22px;bottom:24px;z-index:50;display:grid;gap:10px;justify-items:end}
.sticky a{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;padding:12px 16px;border-radius:999px;border:1px solid rgba(201,169,106,.6);background:rgba(51,0,51,.92);color:var(--gold);backdrop-filter:blur(8px);transition:.3s}
.sticky a:hover{background:var(--olive-deep);border-color:var(--gold)}
.sticky a svg{width:16px;height:16px}
.sticky .wa{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}
.sticky .wa:hover{background:var(--gold-light)}
@media (max-width:600px){.sticky{right:14px;bottom:14px}.sticky a span{display:none}.sticky a{padding:12px}}

/* ---------- CTA block ---------- */
.cta-block{text-align:center;display:grid;justify-items:center;gap:20px}
.cta-block h2{font-size:clamp(36px,4.6vw,66px);max-width:16ch}
.cta-block p{max-width:52ch}

/* ---------- footer ---------- */
.site-foot{background:var(--olive-deep);color:var(--cream);position:relative;padding:clamp(60px,8vh,100px) 0 110px}
.site-foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,64px)}
.site-foot h4,.site-foot .ft-h{font-family:var(--body);font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold);margin:0 0 16px}
.site-foot a{text-decoration:none;color:var(--cream-mute);transition:color .3s}
.site-foot a:hover{color:var(--gold)}
.site-foot ul{display:grid;gap:10px;font-size:14.5px}
.site-foot .brand .word{font-size:28px}
.site-foot .about{max-width:34ch;color:var(--cream-mute);font-size:14.5px;margin-top:18px}
.site-foot .fine{margin-top:54px;padding-top:24px;border-top:1px solid var(--cream-line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-mute);font-weight:500}
@media (max-width:900px){.site-foot .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-foot .cols{grid-template-columns:minmax(0,1fr)}}

/* ---------- 404 ---------- */
.page-404{min-height:100svh;display:grid;place-items:center;text-align:center;padding:120px 20px}

/* ---------- particles canvas ---------- */
.hero .wrap,.section .wrap,.site-foot .wrap{position:relative;z-index:2}
.hero-page .bg{z-index:0}

/* ---------- cursor ---------- */
body{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC1klEQVR4nOyXX0hTURzHf/fPdnentllM29JV9I8gA+dNULQ/mFD5FL2IBb1Ibz4UBL30Vk9GjwlBRFBBf+ihwCKlIOyP7GJmVoj9U5YLRd1sm9s999zTvZMpqKH3nGAvfuCywznb4bvv+f2+O+Mhz/CQZ9YEiMCAwild1qtK1EaghEkAJ4CYtVAHapgEOETeBQYQYIBJAC8QL8fzBDSghkkARlyQmBawQN0FCiiNgaCMAuVyxhoDJdQOeIod52oP+TzWeHI80gZ/oAsooHJAESqPCg6uru5wCViP08UdCEHoCFAggE2qoCpUUCg+bjmzdV2pX87O+Ta6pM8fZo6VaP6uMRj7bWc/Ww5Y39JdKHZXhNZ7A2Xu+XlLSEWouNjl5p/bdYJbzZusIisoEtscTr6+uXWzd+duD1w6PwB7Kr2ADQJDgzNw8cpe+PIxBnev/5jUMsardMroUEFdsS6WCLDi1SFykuDgZUHkvChjbPIHZb32oK/IOu8cHe1DMPotmR1v21UErWd3zK/1dI/DmxcTsWhkVhKdXIRgEtMQmcU60RbH9rJHYHY24YAQK+P+FXOGvrBClokCjiO8ucOKFi9pw6xCZA7QwpwyrDQm4+hC95NozYnTQTlQ7oZkAkNDkz+7/r53CmZiCEa+J+DhrZEURvB6elJrzx7BCim5qhrIUS1VNcmSeKe63uc5frIcBGHu47rpxqPboyTcMxFPpYwWFatPV7unrTb8haPDGzKlnRPRdLOZgnKuDT/1x6DzQWQqnSANpoM9dva0HUR90DeQSKCW+zdHErm5ezd+xpNJ/VQYwv1gE9tBZBGF6NctzrL9kkvYbnYCGeyLP+tF6mWggPq3ID6Nrr59OV6rG6DNpvA1oMRWES6mRtqXMlvNeKeFC4ESpvuA6OBHMTIYLmSMAgwz4cwHAQOMNyIjjTHBwACTAB0DmgtsepiK8H+w9tcs7wL+AgAA//8TMe5ZAAAABklEQVQDAFehE1w7MDdvAAAAAElFTkSuQmCC") 4 3,auto;cursor:-webkit-image-set(url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC1klEQVR4nOyXX0hTURzHf/fPdnentllM29JV9I8gA+dNULQ/mFD5FL2IBb1Ibz4UBL30Vk9GjwlBRFBBf+ihwCKlIOyP7GJmVoj9U5YLRd1sm9s999zTvZMpqKH3nGAvfuCywznb4bvv+f2+O+Mhz/CQZ9YEiMCAwild1qtK1EaghEkAJ4CYtVAHapgEOETeBQYQYIBJAC8QL8fzBDSghkkARlyQmBawQN0FCiiNgaCMAuVyxhoDJdQOeIod52oP+TzWeHI80gZ/oAsooHJAESqPCg6uru5wCViP08UdCEHoCFAggE2qoCpUUCg+bjmzdV2pX87O+Ta6pM8fZo6VaP6uMRj7bWc/Ww5Y39JdKHZXhNZ7A2Xu+XlLSEWouNjl5p/bdYJbzZusIisoEtscTr6+uXWzd+duD1w6PwB7Kr2ADQJDgzNw8cpe+PIxBnev/5jUMsardMroUEFdsS6WCLDi1SFykuDgZUHkvChjbPIHZb32oK/IOu8cHe1DMPotmR1v21UErWd3zK/1dI/DmxcTsWhkVhKdXIRgEtMQmcU60RbH9rJHYHY24YAQK+P+FXOGvrBClokCjiO8ucOKFi9pw6xCZA7QwpwyrDQm4+hC95NozYnTQTlQ7oZkAkNDkz+7/r53CmZiCEa+J+DhrZEURvB6elJrzx7BCim5qhrIUS1VNcmSeKe63uc5frIcBGHu47rpxqPboyTcMxFPpYwWFatPV7unrTb8haPDGzKlnRPRdLOZgnKuDT/1x6DzQWQqnSANpoM9dva0HUR90DeQSKCW+zdHErm5ezd+xpNJ/VQYwv1gE9tBZBGF6NctzrL9kkvYbnYCGeyLP+tF6mWggPq3ID6Nrr59OV6rG6DNpvA1oMRWES6mRtqXMlvNeKeFC4ESpvuA6OBHMTIYLmSMAgwz4cwHAQOMNyIjjTHBwACTAB0DmgtsepiK8H+w9tcs7wL+AgAA//8TMe5ZAAAABklEQVQDAFehE1w7MDdvAAAAAElFTkSuQmCC") 1x,url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAGeUlEQVR4nOxbeWxURRz+9mwr3ZZe9ESwpVKrEHqEtlQIeIEH0YhINLEQDBrFM9EEiaKGRBH/ICIalYj8YwgSQ4wVCgItIBBKWyhHOUqVxkIXlrJAqdvutrt+88quW7otRHdnTLZfMp158+a9N/O93zn7qkeYQ48wxxABCHMMEYAwxxABCHMoJaAABVtZyqEQRqjFAyweKIQyCZiACcNZ6cQcilAUA0VQRoARxnhv2wlnHBRBGQE96PERQDKUEaDMBuih9xHghjv8JMADT3agtmwoI0AH3aRAbdlQ6QZLBmhLhQ4KQLeX3I1ua9RtBrg9HnQ53DDAkFiN6jZIhhIV4OK1N56dG4MxOTHePiVqoMoGPCv+3EkCsu/qJYB24BkogHQCGAEKi/+U0ahDwaQElnjoDZomzuG50ZAM6QQw6HmHla54ahJi40xISIpA0eREbS7Xz0mFVAIKUVhKnz9Xr9NhxhNpvv7pbIs+npvPMRMhEdIIEMkPF/ijeGbh5ATE8817MSI1EvklWmBoFGOuJ0pSII0Aivc6VslC7Gc9d3u/87PKRsESYxLNDLrE7yEJBkgANz2WsFpgNOnxxpJcJCVH9hsTGWXQ3OL+3Rfhdnuy05DmbEXrbwgxQkrAVEw1JiJxKZvvsejKFmYid3zsgOOHx5s11aivtvPIMy0d6fpSlO5uQEPINk1CpgI0ZpntaK+mTi82mfW6eQuzcLTuMuxtzgGvsZ3v1MbMeyULJrNBz2vfb0LTvjzkjUKIEPRQWCycE1/EG8/lazMnjIjAwkVjkZIehcO1dqz/9gzuyI5G1lgLktMj0dPjgc3aicaGdjQ3daDspUzkUEqsZx34YtlJtF3o4l09/KP7jmnzsoM42IwgImgE8C1NofF6nYt/0ts3viAO817N0vRbgGE/Pl50BO1XXAHvkZAUibeW5vqOOx09WPt5k0acHzawrKxFbVDswy0TQEOWyF2caFrzaNYWbmhkiDSWCy7m6eI+Y0sSMGX6CF+Y64+KjWexc8v5gM946PE0THs4pV9/4/GrqNx8Hof2X+rTz2fvZbWfc9nDOZ3jC2hnTnHNDHP7rSZWN02HufDdrO4VbT5APFTs5ngn4Bs39p4Y5IyLxaRpSbDEmga8n1CFgZA6MvA5QaQoQnL2VtrQUH+FKnPVu48gXsKbYk5iPmKOJEPMW1xaSUm5D4PgVozgTS2w0Gmz2QAT3ZyoB4NON7DQGfSDT0fc22jUIzLSgNFjohEM3FQCyOAUUd+oAmR/JFmfQdZn/tF4TQvmj9TZUb6hRRPj+x9LwW3D+t++zdY54LPsF4XBs/Tr/6ujG9vKW1FFNRB2wQ8XWX7iHLay/PlvVCAoRpCWP48TmMHm8yxZos9s1pOEVMyck9Fn7IoPj+NCqyPgfUQgNP+1MX36fl7fgu1cvNPp9nY1sawm+VsO4MAh/EcE3Q3mI38yJ/eCB+7ZvH1ExqhhePHtbC3ra/79Gr5afkqz9nlF8UjJ6I0IW1scqN1zCZftXfQCd2tj22xd+PrTRrQ0d4hJdlIPf+DQ1cGy/l6EbEtM5PYUyc1s5kRQZ8tezkR9jR35xfEYlx+HG02B2BqrP2DHqaNXNWO6dlUTujo1cT9G//9osP2/FyHdE8xFbnQUotaz+Yg4FuJdWJow6DU1e9uw5rPT3sNy6vPT+7DPgRAhpLmADTaR0KxjYiNy39Jjhy7rJkyMR3RMYDcpor8vPzkpokPKg+ejOtQtaEFLN0IIKdkgSdhOEmK4sBLhw0WsINyZP4S4r/jguDdKXM7FL4YESNsPcMAhtrtOiLi/YuO5fud/2XBWS4aIIxZY3oUkSCOAKa2TYj2HTVdVhVX7LcAL4ed3btXCYyfji9lVqAqp2PtD6p4gxfowSVjT1enGjs2tvv4dm6xw0c/z3Dc1qDkJiZC+K8xFrhT19vLeRQvdr9ykvX0P44cVkAwpRtAfVlhtNIilLpc7K9piwpnTHVoITWIqGOSsgmSo+nFURHUPCp/f0+3275MOJQQwmdop0lYR5na7epNNRntVUAAlvw4LMLsUmZw3LLRS/FOhACo/kNgWqC0bKj+R2eVtU/x3QRFUEnDC7/AEFEEZAfT59kBt2VBGALeufIt2waWMAGUfSdEN2v+ZhFEZAcrcoABdoRYE0AUqm4fqr8V/ZemCQiiVgP8Dhv5jBGGOIQIQ5hgiAGGOsCfgbwAAAP//MN+phwAAAAZJREFUAwAxSyyoYwbW/wAAAABJRU5ErkJggg==") 2x) 4 3,auto}
body :is(a,button,[role=button],summary,label,input[type=range],select),body .photo.zoom,body .compare .col{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE5klEQVR4nMRXa0xcRRQ+M/deYLfgQg010AI+osbEmrAsYBGsoBgNPwzRgH0YxZpYSEyMiYnx8a/qD43xF6AJQWNpAyEaYxqNEEgLUmEXrGhsTJO2tDQaCI/lWfbundM5d9ntst1lp7RJT9jdy9wz5/tm5syZb3TYgv3e8eaDzGB5YIHLbtDAjyZefvzAV+fgJo2pOg4fP1wLjNXILhXAMIPJL4Hop3ecMRcCMvm3CIADgHiidF/rDypxkxI4fbzpNc6wiTG2ExF/RM76NI5jxS+1XJCvEUJfzNfdeJ8lmJsJrJK+L0jfKwJZ8559zd9siYA9zbr2iXQok8G+tHigrayubRYUbKjr0HZNpBySRN6W5IYwaL2faHniEhjuOlwFgrcgE6Oaxj6Uoz0fz8/DPD3060Nfdbz33u7G+y0LjzDkRcBFY2lda19SAjY4sqPysb20vuUD2MSKdU8/pz5BX+VmfsOdjR/LnwaZNgdjSfDof2jaaeQq4GSGztM0zlOT+a3HaqfYNkYiArTmNO0q4HZnDTM1nWWq+FJMik0YcQlQtlPC0ZqDolkmyzeDokDVn2ITBmHdQIC2GmV7ooSLNQ94qnPzHWZunmONnlX6UGzCIKwNBKjI0D6nrQaK5soy3imrzHY9UbUja1uG/pZqP8IgLLuwhQlQhaMio7rPPVrh85rBysuf2QH0SUlje93gfk6lL2EQVqiqRpaAVVCFUwlQBEVup9M4VtdQkB5uq3/93ru2pRsdcikKVWKEsGRJJwL2tpC1ncprso40Sme63rvbvT0zd5cz0n5PjgN2u7Oy0pz8V5WZsLEkpl1tqfDISvVdcX3zLrZe22ONkozW2UjhFS+/UZD50CMuOPLuODxamAmWQPj37wX46PPH4Oxf83Ds6wszgTVx6uqKaPGBrycBBzbS2TQpt+UrOh2pgqE/DE7l1dBZqmZwB+1xc03szMl3BMueys6g9Q5bboEDznhDKfPAwxmgG4xmAT5tzbp7sHeqdqhvujJlsiRVT2GTaOF8wMRVK4iB9bJtn6RMgIvHoyfAPluRKGGCIYjg9Tco4gxRTiti8uNWJzHBkZGwIF+0GZryybzu5DnnqV72m+/1/vTfnhdfzXfk5jlhecmCp2ty7Pd/DM/CwrwJE+eXoPvbiRXLhN/mZgKf2UsQuBGUeHlJQ3A5C6Fjl5/kGpQnK0IlqUU1jlS9o6Qi21V7II8qm90elLPx/dFL6B2c9q+siP0+y/fzZnHolBQWDGJQ7OX2OS2VDIkJSGIja6MnFhfMJ4dPTs/98+d8pP3s+DyMnJqeXV3EymTgZDaWxCTs9RzAAVIyoGBjMDa+tGTu72qfWAq3dbZd9C8vBw96wXtGJUYIS0o3CBciqeFIRpGSUQkgSfximTgosx0Ge6ZQbrl+alPpSxiERZgRAiQgScORjAJF88+ZX5zun1oY6JuaWV2xmlX7EQZhhUVrZBuSgCQNRwmiEogy/MrlVeP/yVXHJgVng1FswiCscFuEAKlXEpCk4UDRdINf4gwuqvpTbMKIVsobChGpVxKQ6xouqQlZ4eRnTsWXYlJswohu30DA3pJSvcrHBhUSlimuylEFVMApJsWOlee3LMtlQuEojD4b7/2WZHnY7ujFJNoSXc088moWdXwz7+2+msXaHbucxrPbeT2/BgAA//9TNoeKAAAABklEQVQDAD09uuO/ucghAAAAAElFTkSuQmCC") 4 3,pointer;cursor:-webkit-image-set(url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAE5klEQVR4nMRXa0xcRRQ+M/deYLfgQg010AI+osbEmrAsYBGsoBgNPwzRgH0YxZpYSEyMiYnx8a/qD43xF6AJQWNpAyEaYxqNEEgLUmEXrGhsTJO2tDQaCI/lWfbundM5d9ntst1lp7RJT9jdy9wz5/tm5syZb3TYgv3e8eaDzGB5YIHLbtDAjyZefvzAV+fgJo2pOg4fP1wLjNXILhXAMIPJL4Hop3ecMRcCMvm3CIADgHiidF/rDypxkxI4fbzpNc6wiTG2ExF/RM76NI5jxS+1XJCvEUJfzNfdeJ8lmJsJrJK+L0jfKwJZ8559zd9siYA9zbr2iXQok8G+tHigrayubRYUbKjr0HZNpBySRN6W5IYwaL2faHniEhjuOlwFgrcgE6Oaxj6Uoz0fz8/DPD3060Nfdbz33u7G+y0LjzDkRcBFY2lda19SAjY4sqPysb20vuUD2MSKdU8/pz5BX+VmfsOdjR/LnwaZNgdjSfDof2jaaeQq4GSGztM0zlOT+a3HaqfYNkYiArTmNO0q4HZnDTM1nWWq+FJMik0YcQlQtlPC0ZqDolkmyzeDokDVn2ITBmHdQIC2GmV7ooSLNQ94qnPzHWZunmONnlX6UGzCIKwNBKjI0D6nrQaK5soy3imrzHY9UbUja1uG/pZqP8IgLLuwhQlQhaMio7rPPVrh85rBysuf2QH0SUlje93gfk6lL2EQVqiqRpaAVVCFUwlQBEVup9M4VtdQkB5uq3/93ru2pRsdcikKVWKEsGRJJwL2tpC1ncprso40Sme63rvbvT0zd5cz0n5PjgN2u7Oy0pz8V5WZsLEkpl1tqfDISvVdcX3zLrZe22ONkozW2UjhFS+/UZD50CMuOPLuODxamAmWQPj37wX46PPH4Oxf83Ds6wszgTVx6uqKaPGBrycBBzbS2TQpt+UrOh2pgqE/DE7l1dBZqmZwB+1xc03szMl3BMueys6g9Q5bboEDznhDKfPAwxmgG4xmAT5tzbp7sHeqdqhvujJlsiRVT2GTaOF8wMRVK4iB9bJtn6RMgIvHoyfAPluRKGGCIYjg9Tco4gxRTiti8uNWJzHBkZGwIF+0GZryybzu5DnnqV72m+/1/vTfnhdfzXfk5jlhecmCp2ty7Pd/DM/CwrwJE+eXoPvbiRXLhN/mZgKf2UsQuBGUeHlJQ3A5C6Fjl5/kGpQnK0IlqUU1jlS9o6Qi21V7II8qm90elLPx/dFL6B2c9q+siP0+y/fzZnHolBQWDGJQ7OX2OS2VDIkJSGIja6MnFhfMJ4dPTs/98+d8pP3s+DyMnJqeXV3EymTgZDaWxCTs9RzAAVIyoGBjMDa+tGTu72qfWAq3dbZd9C8vBw96wXtGJUYIS0o3CBciqeFIRpGSUQkgSfximTgosx0Ge6ZQbrl+alPpSxiERZgRAiQgScORjAJF88+ZX5zun1oY6JuaWV2xmlX7EQZhhUVrZBuSgCQNRwmiEogy/MrlVeP/yVXHJgVng1FswiCscFuEAKlXEpCk4UDRdINf4gwuqvpTbMKIVsobChGpVxKQ6xouqQlZ4eRnTsWXYlJswohu30DA3pJSvcrHBhUSlimuylEFVMApJsWOlee3LMtlQuEojD4b7/2WZHnY7ujFJNoSXc088moWdXwz7+2+msXaHbucxrPbeT2/BgAA//9TNoeKAAAABklEQVQDAD09uuO/ucghAAAAAElFTkSuQmCC") 1x,url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAL3UlEQVR4nOxbeXBV1Rn/nfteQoAEZA1UQCAgWMExIZBAhQHpVFCYaQshQClSbTEBpGOnVLrY8odOWRydIhCQVukMlb1Mx5Qgi2yyBEIAWQRjUBAkLDFAQtb37u33nbvkveS9LO+dZ8fB38x799x7z73n+31n+853vqvhPocb3wD2vDsjplVc7AB49b6A0QMQ8QbQVgAt+D6lqyh9h1LX6d5luLSC8tKyM6N+saYSEYZAhJC7eU4yvN7RRG44FZKEEEDP5tOzB+By7U6ZuCwPEYBSBRx575fx0KKmQIgJAkZC0IwGyijPbRiGWcNCxFD6AZImNvgjopDybIFesy516t+vQxGUKCBv49weHt2TKYTxbL2bBj4jgoc1Q5zQoX1iePB56rS37gZ6z5G1L7YRbvTSoD+iCyORCA8lCfvUe6Uh/unWPFnJk96+jDARlgIMqpbcDRkvCyHm+t+QpLdqwtg2eFLWBYSBYxsz++mGeJoK+0ldZRiGsTRl8spFQvaW0BCyAo5umj1a140Ffk3dwEdCF+8MmbpiOyKAo+/NGmNoxnMk9RO1RYpCTRMLhqQt340QEJICjqzPmO9b6yTEGc2LNyJFvC5YEboLvyHlD3BkoNaQOnnlQjQTzVKAnM5atVpOxY31ecWSlPQVbyIEDMKgHXSoPo7j4xACcjfMeolkmecjS055efns5kyfTVYAj/DCFfUP2FMa9XOXW5uXPHF5LkIEKUDnN5ECXAgReZtnp3g9+hKf8SHf8NY839SZQmtKJjm9uaLWwiJPg98uw+MeFw75x/H4AzArQEtBShuECJaBZWGZrEtJLKuUuQlotAWYzb7lZtjkITalpq/4NcJEMpJ7GzAKOa1D73kCJy4hTBzZMOtvNC6kWaf55eUVExvrDo22ALPPqyXP8MLb3k674W4HBWDZWEbrNMmSvUE0qAAe7e0Bj5uYKvJmwZqjAGoBShTAkEpwuoMx1uTQkBxBwPO8M9WxYeNxz4FCUPPvGyitBCwrywy2ssVc5hIsqxZYOAg2cuxzHu2Dma+hQkAMC5RWAZaVZbbPmQtbrYHyBlRA7noybx0LTywJZ7RvAEODpJXAlFks4TRzYZM9UL56WsnbOLOH13Ad4TRbeNSnfgTFoGkv3gNPUctWLuhUNVUVOlxwdTyKo8VQDJoZdtgWo0tEpSZPWuq3gKrXAjy6O9O5SeYtIgAiL2u87/fboE//NvY1pd3Ahi8HXrHWu+97Iq09e0lLC5sI2vZT+e9hUkDfR0wF0DgwBRGA5EBcZBnEra6B5N8C2JlhgVd1iADIAuQRf6LbLTBoWAf6tYfmkj0xne71RATgx8WHozz1zykmyCNNIZGqfTJ6fs8lpY7shLbtotChUwukDO8oZbHuKYfVCuS06HC04CiAfXjOyE/ODEQAZP7+gOb8ZzUhMObH33OuP0Vpvkb3nqM8QxAJWJzkjMD+Sgu1LYAcmM5F8uRAMXjxQwS38OuTh3dA+04tnHudu8Ygaag0DN2cx1ooKYUfJ1+udoK9t1bis3DdWIFAzXsdHeK52U/4eY969ydMfwhxbaI42Y2mxH9BMSQnqxs4XGEpgFd8juuaHJhQDFr3/5lqdow7SsOs+f1ton5gxWS+3A+ch/A0PaN+PLC4MVfmzGlZmty0sMDeWyjCSIx0U59+jZIL+HxaRi9079kqaP6efVrjZy/0ss6MV+nZBWlIC9lZUhe+3GzOZheQOzYm2HUNBeD1filKj1LN/yEqWhMzZifgTP5tlBRXB33m5vVKmWfGnARERbs0evYvhSg8nIjEh6AAftwsztbWmOF0SvbbIwxYjg5eRrNBFd2hcwvMnt8PXR5siZjWLrz+yln06huLhH5xiH8whsYjAzeLKlFwrhSXCu9hemZv9H+sLXr0bo3lCy+g+EbVYGqyF6hLvEvL5oXhOE6Ym3B6n8nZUoCIl0MD7diEuuqjWhpBgxc5JIyfytfT77FB7TDjxQTEtDRb8cCkdsjeeAWFF0rlry46dIqR5BmssD8uHog1bxXi4+MlPGVkkA8hgxTBDo+l5Ef8CM0Ec8tdn1lm7kCJeEcB1kYl5HZVEFDBHcmLE0ujeSwd40iYbryMJcKp/G7zPeb+xKChHTDiqc6OmWtD8OiT2h77Pgjsr2Sr0BesuIzfPYyCT+5iT851nMz9mi+zyyuN5OHyDlE6l2Q5SDJ9RRVQSmuKsmhElwZdWEmORixzdhRg79I6e3X+xA/QQW5EUAGSpGYNHYbPhky/AW3Qf2BbDBvVCXFtoxAMXLPB0LV74HusSP6V3qnBoT03ce7UHeoyd20/AlfCSywTy8MykjJYbn50D7WUJ/1exhxFLeemeIUb3XbiPh0d7UIUTWF8bAhCBPfDurSGxeF3u90aYmJcNGPEQgXsLlBldYGYuhlIgyP4WLcLkPa7k9bHkNbHf15QJo350/klyN50BaPGdsHocV3QqnX98IPim8GdtCW3qug/rt718nse7Mq+hr3UDSorvL63btHvPyTDDvp92cQuEGO13SpHAWZwAmvCCGqCkiJuWQXaYKNiIydo5E9kQ4eSz5OACTn/vordJPDocV0xPr2b33tOHQs6zODMydsYMqKj37X3N1yR76qu1u1L7EpfTcr/4BiOnURzYW7DO5ztadAclWh05C3q5s4EechjA4N/f01C0nASbmZ1tTeNFNHi9PHbeGFeX7nqu3SxDDeuVcjRPjGlPbp0MxvctSsVOH7wa9mvi29Wybx8XLWkAFcu3WNhudmwsleHMvrbYG4QnlhfzvY0eNnu6rw/T4dTCBH5yOdB8wAtaF6hJplDBPq/+tvTmD6rN07llWDKr3rJ6dB3KHiU1j5PPtOFWkcJdr1/TQ6ma5YVoqpSNvezXujPqNg4sbjZZ9I1Zo46Lq3AvszBCVCAkzj5RQUqBlNyGxNZ/UYBBhBRtg0CjYO8HE4c0h4J/eOw6vVPbfLZ1J8HqyAvy/DlZnGWCuCAJPu6jMxQhHM4V2bt/PK2tbF21UUUXa0Imp/vrV15kZPkKjVeo2fHH8bhCiiCLzebs1QA759xQBLMolW7qHn3l1d2b1ZX6cha7NSuH/ha1qJPwXkIi6kr/QmqYXFjrvaeoTPxymgsM9GHw1KgGNQdWAnn2e7fvvWrevf/u+mqXAwRTschTjl5ycnaQne4wtcQcrmcEBMZk6MY1B2qqVmnU7Jm7/YiuRdgg+f5fTvkoFxN9kXaXuz1QDH8OPlwdRTAcXgyFI3BAUkRADXrj0kJ71RV6vgw55pz/cNtRaiheZ7uvU1TqnJvlITFiTn6xhxqdTJtkUdqKhyHg0jIAWMpH3dnm6S57+/ZJmvfIPshpFCbxiC52BEkNkcL/grQa9Y5gnI0VgRAU9o5OuzkZn9g5w3s33EDFeUeVsx2qv2LiAD8uPhwZPgpgONqOAhRngg8EalWAMuEzjtUjLyDt/yuqYZV+3I1y9zqxg7VW365NXeWneZQNEQAtJjax0c2c7/8otwsC/peRAC+HDi6tO79egrg3VOOueM076qaoWhqQVYiW2HFnhpnpV3EliMUg2W3d4aZU6DQ2oAL8JT0lYucGQHGPA5Fg2LQdLcrUFoVTJnNGEI58k9euShQvoAK4F0qDj+1zzkOT66kFIIGvf12mpr/figEyypjBy0wl2DxxEFdMBx7a3cFOYW4PcugEKSA8z6n56ESLKs17TGHhuKIG/RBmbG3IofT1Cp+yHF4UASa80sCpcOFjBUkWc0zkdNY/HCjPkGOvYW1UOIgRFVKINeVQ7oGNUoUUD9QUsreIJoUK2yHylLmR/lcxuF53HPCiRwjHyO7pW3/WGtaMZYjRMjxiZq9XfPU2c/CWzOtKfHCTYoVli+iF8JuCVSQcHuyw5kdiPAdn3TI5FkGlqW22ZOMTSTPaJICGPxCjr21xwQeZLxefWuYdsJO+mUjRHDZLENtpDiHy1dMbM43Rd99MIEQcV9/MlNbOISMKv1/fjRFVqsMLwoRij6bm9mDAyy/2c/m3Fl1oz5DwXcfTiJCuC8/nQ2G+/Lj6W8L/gcAAP//m76YcQAAAAZJREFUAwCz84aAjkb7fgAAAABJRU5ErkJggg==") 2x) 4 3,pointer}
@media (hover:none){body,body :is(a,button,[role=button],summary,label,select),body .photo.zoom,body .compare .col{cursor:auto}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{transform:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

/* ============================================================
   Branded form controls (progressively enhanced by site.js)
   ============================================================ */
:root{--sel-bg:#FCFAF7;--sel-fg:var(--olive-ink);--sel-line:var(--beige-line);--sel-hover:rgba(201,169,106,.14);--sel-mute:var(--olive-mute)}
.olive,.olive-deep,.hero{--sel-bg:#200020;--sel-fg:var(--cream);--sel-line:rgba(201,169,106,.35);--sel-hover:rgba(201,169,106,.16);--sel-mute:var(--cream-mute)}
::selection{background:var(--gold);color:var(--olive-deep)}
::placeholder{color:var(--sel-mute);opacity:.7}
input:-webkit-autofill,input:-webkit-autofill:focus,textarea:-webkit-autofill{-webkit-text-fill-color:var(--sel-fg);-webkit-box-shadow:0 0 0 1000px var(--sel-bg) inset;transition:background-color 9999s ease-in-out 0s}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
textarea{resize:vertical}
html{scrollbar-color:rgba(201,169,106,.5) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(201,169,106,.45);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(201,169,106,.75);background-clip:padding-box;border:2px solid transparent}
.field.invalid .sel-btn,.field.invalid input,.field.invalid textarea{border-color:#C0523E}
.field .err{display:none;font-size:11.5px;letter-spacing:.06em;color:#D9735F}
.field.invalid .err{display:block}

/* custom select */
.sel{position:relative}
.sel select{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;margin:0}
.sel-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;border:0;border-bottom:1px solid var(--sel-line);padding:12px 0;font-size:16px;color:var(--sel-fg);text-align:left;cursor:pointer;transition:border-color .3s;border-radius:0}
.sel-btn.placeholder{color:var(--sel-mute)}
.sel-btn svg{width:14px;height:14px;flex:none;color:var(--gold);transition:transform .35s var(--ease)}
.sel.open .sel-btn{border-color:var(--gold)}
.sel.open .sel-btn svg{transform:rotate(180deg)}
.sel-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--sel-bg);color:var(--sel-fg);border:1px solid var(--sel-line);box-shadow:0 24px 60px -24px rgba(32,0,32,.55);padding:6px 0;margin:0;list-style:none;max-height:280px;overflow:auto;opacity:0;transform:translateY(-6px);pointer-events:none;transition:.28s var(--ease)}
.sel.open .sel-list{opacity:1;transform:none;pointer-events:auto}
.sel-list::before{content:"";position:absolute;inset:4px;border:1px solid rgba(201,169,106,.22);pointer-events:none}
.sel-opt{padding:11px 18px;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:background .2s;position:relative}
.sel-opt:hover,.sel-opt.hi{background:var(--sel-hover)}
.sel-opt[aria-selected=true]{color:var(--gold)}
.sel-opt[aria-selected=true]::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.sel-opt.ph{color:var(--sel-mute);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase}

/* custom date picker */
.dp{position:relative}
.dp input{cursor:pointer;padding-right:30px}
.dp .dp-ic{position:absolute;right:0;top:12px;width:16px;height:16px;color:var(--gold);pointer-events:none}
.dp-pop{position:absolute;left:0;top:calc(100% + 6px);z-index:30;width:min(320px,100%);background:var(--sel-bg);color:var(--sel-fg);border:1px solid var(--sel-line);box-shadow:0 24px 60px -24px rgba(32,0,32,.55);padding:16px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:.28s var(--ease)}
.dp.open .dp-pop{opacity:1;transform:none;pointer-events:auto}
.dp-pop::before{content:"";position:absolute;inset:4px;border:1px solid rgba(201,169,106,.22);pointer-events:none}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:relative}
.dp-head b{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.02em}
.dp-head button{background:none;border:1px solid var(--sel-line);color:var(--gold);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.25s}
.dp-head button:hover{border-color:var(--gold);background:var(--sel-hover)}
.dp-head button svg{width:14px;height:14px}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;position:relative}
.dp-grid span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--sel-mute);padding:6px 0 8px;font-weight:600}
.dp-grid button{background:none;border:1px solid transparent;color:var(--sel-fg);height:36px;border-radius:50%;font-size:14px;cursor:pointer;transition:.2s;font-weight:400}
.dp-grid button:hover{background:var(--sel-hover);border-color:var(--sel-line)}
.dp-grid button.out{opacity:.35}
.dp-grid button.today{border-color:var(--gold-dim)}
.dp-grid button.sel{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}
.dp-grid button:disabled{opacity:.25;cursor:default;background:none;border-color:transparent}
.dp-foot{display:flex;justify-content:space-between;margin-top:10px;position:relative}
.dp-foot button{background:none;border:0;color:var(--gold);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;cursor:pointer;padding:6px 0}

/* ============================================================
   Menus page — stronger hierarchy
   ============================================================ */
.tabs{border:1px solid var(--olive);border-radius:999px;padding:4px;gap:4px;display:inline-flex;flex-wrap:wrap;background:rgba(255,255,255,.4)}
.tabs button{border-radius:999px;padding:12px 20px;color:var(--olive-soft);font-size:11.5px}
.tabs button::after{display:none}
.tabs button[aria-selected=true]{background:var(--olive);color:var(--cream)}
.tabs button:hover:not([aria-selected=true]){color:var(--olive)}
.menu-intro{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-top:36px;padding-bottom:18px;border-bottom:2px solid var(--olive)}
.menu-intro h3{font-size:clamp(30px,3.4vw,44px);color:var(--olive)}
.menu-intro p{color:var(--olive-soft);font-size:15px;max-width:60ch;margin-top:8px}
.menu-intro .count{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);white-space:nowrap}
.menu-cols{margin-top:28px;gap:24px}
.menu-group{background:#FCFAF7;border:1px solid var(--beige-line);box-shadow:0 30px 60px -50px rgba(32,0,32,.35)}
.menu-group h3{background:var(--olive);color:var(--cream);margin:0;padding:16px 22px;font-size:24px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.menu-group h3 small{color:var(--gold);font-size:10.5px}
.menu-group .dishes{padding:6px 22px 10px}
.dish{padding:15px 0;border-bottom:1px solid var(--beige-line)}
.dish:last-child{border-bottom:0}
.dish b{font-weight:600;color:var(--olive);font-size:16px}
.dish p{color:var(--olive-soft)}
.dish .tags span{border-color:transparent;background:var(--beige-deep);color:var(--olive-mute);font-size:9.5px}
.dish .tags span.on{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}
.diet-key{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--olive-mute);letter-spacing:.04em}
.diet-key span b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--olive-deep);font-size:9px;font-weight:700;margin-right:6px;vertical-align:middle}
.menu-empty{display:none;padding:26px 22px;color:var(--olive-mute);font-size:15px}
.menu-panel.active .menu-empty.show{display:block}
@media (max-width:600px){.menu-intro{grid-template-columns:1fr}.tabs{border-radius:16px}}

/* ============================================================
   Clients — featured marquee + "and many more" card
   ============================================================ */
.trusted{padding:56px 0 64px}
.trusted .head{text-align:center;display:grid;gap:8px;justify-items:center;margin-bottom:30px}
.trusted .head .eyebrow{margin:0}
.trusted .head h2{font-size:clamp(28px,3.2vw,40px);color:var(--olive)}
.trusted .sub{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);text-align:center;margin:0 0 18px}
.marquee img{height:48px;max-width:190px}
.more{margin-top:44px;border:1px solid var(--beige-line);background:#FCFAF7;position:relative;padding:clamp(24px,3.5vw,44px)}
.more::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.3);pointer-events:none}
.more .top{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;margin-bottom:22px;position:relative}
.more h3{font-size:clamp(26px,2.8vw,34px);color:var(--olive)}
.more .top p{font-size:14px;color:var(--olive-soft);max-width:56ch;margin-top:6px}
.more .stat b{font-size:clamp(34px,3.4vw,46px)}
.more ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 28px;position:relative}
.more li{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--olive-soft);padding:10px 0 10px 18px;border-bottom:1px solid var(--beige-line);position:relative;transition:color .3s}
.more li::before{content:"";position:absolute;left:0;top:18px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.more li:hover{color:var(--olive)}
.more li.feat{color:var(--olive)}
.more li.feat::before{background:var(--olive)}
@media (max-width:980px){.more ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.more ul{grid-template-columns:minmax(0,1fr)}.more .top{grid-template-columns:1fr}}

/* ============================================================
   Audit fixes — contrast, states, mobile, clients modal
   ============================================================ */
:root{--gold-deep:#7F6431;--beige-line:#CFC5B7;--cream-line:rgba(243,239,235,.28);--alert:#A8573F;--alert-soft:#D9A08B;--gold-text:#E3D3AE}
/* small gold text on olive → lighter gold for AA */
.olive .eyebrow,.olive-deep .eyebrow,.hero .eyebrow,.hero-page .crumbs,.wiz-steps li.done,.result .note,.site-foot h4,.site-foot .ft-h,.menu-group h3 small{color:var(--gold-text)}
.field-label,.composer label{color:var(--gold-deep)}
.sel-btn:focus-visible{outline:none;border-bottom-color:var(--gold);background:rgba(201,169,106,.1)}
.olive .field-label,.olive .composer label{color:var(--gold-text)}
.olive .link-arrow,.olive .stat b,.olive .quote{color:var(--gold)}
/* form fields: visible resting state */
.field input,.field select,.field textarea,.sel-btn{border-bottom-width:1px;border-bottom-color:rgba(51,0,51,.45);background:rgba(255,255,255,.35);padding-left:12px;padding-right:12px}
.olive .field input,.olive .field select,.olive .field textarea,.olive .sel-btn{border-bottom-color:rgba(243,239,235,.45);background:rgba(243,239,235,.06)}
.dp .dp-ic{right:12px}
.sel-btn{padding-left:12px;padding-right:12px}
.field input:focus,.field textarea:focus,.sel.open .sel-btn,.dp.open input{border-bottom-color:var(--gold);background:rgba(201,169,106,.08)}
input{caret-color:var(--gold)}
::placeholder{color:var(--sel-mute);opacity:.85}
.field.invalid :is(.sel-btn,input,textarea){border-bottom-color:var(--alert)}
.field .err{display:none;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--alert);margin-top:4px}
.olive .field .err{color:var(--alert-soft)}
.field.invalid .err{display:block}
:-moz-ui-invalid,:user-invalid{box-shadow:none}
input:-moz-autofill,textarea:-moz-autofill{background:var(--sel-bg)!important}
textarea::-webkit-resizer{background:linear-gradient(135deg,transparent 55%,var(--gold) 55%,var(--gold) 65%,transparent 65%,transparent 80%,var(--gold) 80%,var(--gold) 90%,transparent 90%)}
/* buttons: states */
.btn:active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:default;pointer-events:none}
.chip{border-color:rgba(51,0,51,.35);background:rgba(255,255,255,.4)}
.chip:active,.opt:active{transform:scale(.97)}
/* range: focus + track fill */
.range{background:linear-gradient(var(--gold) 0 0) 0/var(--p,10%) 100% no-repeat var(--cream-line)}
.range:focus-visible{outline:none}
.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px var(--gold-dim)}
.range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px var(--gold-dim)}
.range::-moz-range-track{height:2px;background:var(--cream-line);border:0}
.range::-moz-range-progress{height:2px;background:var(--gold)}
/* hero scrim + alignment */
.hero-page .bg::after{background:linear-gradient(180deg,rgba(32,0,32,.7),rgba(32,0,32,.5) 45%,rgba(51,0,51,.96) 100%)}
.hero-page .wrap{max-width:none}
.hero-page h1{max-width:16ch}
.hero-page .lead{color:rgba(243,239,235,.9)}
.hero-page .crumbs a{color:rgba(243,239,235,.8)}
/* structure lines + surfaces */
.tile{background:rgba(255,255,255,.5)}
.olive .tile{background:rgba(243,239,235,.06);border-color:rgba(243,239,235,.3)}
.compare .col{background:rgba(255,255,255,.45);border-color:rgba(51,0,51,.25)}
.compare .col.on{background:#FCFAF7}
.step .num,.feature .num{opacity:.95;color:var(--gold-deep)}
.olive .step .num{color:var(--gold)}
.feature{border-top-color:rgba(51,0,51,.25)}
.feature ul li{font-weight:400;color:var(--olive-ink)}
.acc details{border-color:rgba(51,0,51,.25)}
.acc summary i{border-color:rgba(51,0,51,.45)}
.acc details[open]{background:rgba(255,255,255,.45);padding:0 16px;margin:0 -16px}
.ct-row{border-color:rgba(51,0,51,.25)}
.ct-row .go{opacity:.9;transform:none}
.copy-btn{border-color:rgba(51,0,51,.4);color:var(--olive)}
.list-rule li{border-color:rgba(51,0,51,.25)}
.olive .list-rule li{border-color:var(--cream-line)}
.text p,.card p,.tile p,.step p,.feature ul li,.dish p,.list-rule p{font-weight:400}
.sticky a:not(.wa){background:var(--cream);color:var(--olive);border-color:var(--gold)}
.sticky a:not(.wa):hover{background:#fff}
.gold-note::before{opacity:1;filter:brightness(.55)}
.masonry .cap{opacity:1;transform:none}
@media (hover:hover){.masonry .cap{opacity:0;transform:translateY(8px)}.masonry .photo:hover .cap{opacity:1;transform:none}}
.marquee img{-webkit-user-drag:none;user-select:none}
.marquee img:hover{filter:saturate(1);opacity:1}
/* soft navigation: brand curtain + content entrance */
.curtain{position:fixed;inset:0;z-index:200;background:var(--olive-deep);display:grid;place-items:center;pointer-events:none;transform:translateY(102%);will-change:transform}
.curtain svg{width:clamp(110px,12vw,160px);aspect-ratio:1656.6/1071.1;color:var(--gold);opacity:0;transform:translateY(14px) scale(.94);transition:opacity .3s .18s,transform .55s .18s var(--ease-out)}
.curtain .bar{position:absolute;left:50%;bottom:18%;width:0;height:1px;background:var(--gold);transform:translateX(-50%);transition:width .5s .25s var(--ease-out);opacity:.7}
.curtain.in{transform:none;transition:transform .5s var(--ease-out);pointer-events:auto}
.curtain.in svg{opacity:1;transform:none}
.curtain.in .bar{width:min(240px,40vw)}
.curtain.in.out{transform:translateY(-102%);transition:transform .6s var(--ease-out)}
.curtain.in.out svg{opacity:0;transform:translateY(-14px) scale(.96);transition:opacity .25s,transform .4s var(--ease)}
.curtain.in.out .bar{width:0;transition:width .3s}
main{outline:none}
main.enter>*{animation:page-in .9s var(--ease-out) both}
main.enter>*:nth-child(2){animation-delay:.06s}main.enter>*:nth-child(3){animation-delay:.12s}
@keyframes page-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* menu overlay: clip motif, keep out of tab order when closed */
.menu-overlay{overflow:hidden;visibility:hidden;transition:transform .6s var(--ease-out),visibility 0s .6s}
.menu-overlay.open{visibility:visible;transition-delay:0s}
.menu-overlay .motif{right:0;bottom:0;transform:translate(18%,18%)}
/* mobile: composer, wizard, sticky */
@media (max-width:900px){.composer{grid-template-columns:minmax(0,1fr)}}
@media (max-width:980px){.wizard .f2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.wiz-nav{flex-wrap:wrap;padding-bottom:64px}.is-plan .sticky a:not(.wa){display:none}.sticky a{min-height:44px}.chip{min-height:40px}}
.is-plan .sticky a:not(.wa){display:none}
.is-contact .sticky a.wa{display:inline-flex}
/* location card (replaces the Google Maps iframe) */
.loc{border:1px solid var(--gold-dim);background:var(--olive);color:var(--cream);padding:clamp(24px,3vw,40px);display:grid;gap:18px;position:relative;min-height:100%}
.loc::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.3);pointer-events:none}
.loc .ic{width:52px;height:52px;border-radius:50%;background:var(--gold);color:var(--olive-deep);display:grid;place-items:center}
.loc .ic svg{width:24px;height:24px}
.loc h3{font-size:30px;color:var(--cream)}
.loc p{color:var(--cream-mute)}
.loc .btn-row{margin-top:6px}
/* clients: "all clients" button + logo wall modal */
.clients-cta{display:flex;justify-content:center;margin-top:28px}
.allbtn{display:inline-flex;align-items:center;gap:14px;background:transparent;border:1px solid var(--olive);color:var(--olive);padding:10px 10px 10px 22px;border-radius:999px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.3s}
.allbtn b{font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:0;color:var(--gold-deep)}
.allbtn i{width:36px;height:36px;border-radius:50%;background:var(--olive);color:var(--gold);display:grid;place-items:center;font-style:normal;font-size:22px;line-height:1;transition:.3s}
.allbtn:hover{background:var(--olive);color:var(--cream)}
.allbtn:hover b{color:var(--gold)}
.allbtn:hover i{background:var(--gold);color:var(--olive-deep);transform:rotate(90deg)}
.cmodal{position:fixed;inset:0;z-index:110;background:rgba(32,0,32,.92);display:none;align-items:center;justify-content:center;padding:clamp(12px,2.5vw,32px)}
.cmodal.open{display:flex}
/* the wall is a fixed-height grid: rows share the space equally, so every logo is visible without scrolling on desktop */
.cmodal .box{background:var(--beige);color:var(--olive-ink);width:min(1320px,100%);height:min(94vh,960px);display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;border:1px solid var(--gold-dim);box-shadow:0 40px 100px rgba(0,0,0,.45)}
.cmodal .box::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.35);pointer-events:none;z-index:1}
.cmodal .top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:clamp(18px,2.4vw,28px) clamp(22px,3vw,40px) 14px;border-bottom:1px solid var(--beige-line)}
.cmodal h3{font-size:clamp(24px,2.6vw,34px);color:var(--olive)}
.cmodal .top p{color:var(--olive-soft);font-size:13.5px;margin-top:4px}
.cmodal .x{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--olive);background:var(--beige);color:var(--olive);display:grid;place-items:center;cursor:pointer;transition:.3s}
.cmodal .x:hover{background:var(--olive);color:var(--gold)}
.cmodal .x svg{width:18px;height:18px}
.cmodal .wall{min-height:0;overflow:hidden;padding:clamp(14px,1.8vw,22px) clamp(22px,3vw,40px) clamp(18px,2.2vw,30px);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:10px;align-content:stretch}
.cmodal .key{grid-column:1/-1;align-self:end;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);display:flex;gap:10px;align-items:center;margin:0}
.cmodal .key i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--gold);display:inline-block}
.cmodal .lg{min-height:0;background:#FCFAF7;border:1px solid var(--beige-line);display:grid;place-items:center;padding:8px;position:relative;transition:.3s}
.cmodal .lg:hover{border-color:var(--gold);box-shadow:0 20px 40px -30px rgba(32,0,32,.4)}
/* absolutely positioned + object-fit: the logo always fits inside the tile whatever the tile's size (percentage max-height would not resolve here) */
.cmodal .lg img{position:absolute;left:11%;top:13%;width:78%;height:74%;object-fit:contain;filter:saturate(.5);opacity:.9;transition:.3s}
.cmodal .lg:hover img{top:7%;height:62%}
.cmodal .lg:hover img{filter:none;opacity:1}
.cmodal .lg.txt{font-family:var(--display);font-size:clamp(15px,1.4vw,22px);color:var(--olive);text-align:center;line-height:1.1}
.cmodal .lg.feat::after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.cmodal .lg .nm{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);text-align:center;background:linear-gradient(transparent,rgba(252,250,247,.96) 40%);opacity:0;transition:.3s;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmodal .lg:hover .nm{opacity:1}
@media (max-width:1180px){.cmodal .wall{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:820px){.cmodal .wall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:600px){.cmodal .top{flex-wrap:wrap;gap:8px 20px;padding-bottom:12px}.cmodal .top p{margin-top:2px}.cmodal .box{height:min(94vh,960px)}.cmodal .wall{overflow:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:88px;align-content:start}.cmodal .lg.txt{font-size:15px}}


/* five-format compare, hidden fields, composer notes */
.compare{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.compare .col{padding:clamp(16px,1.5vw,22px)}
.compare .col h3{font-size:21px}
.compare .row b{font-size:14.5px}
@media (max-width:1280px){.compare{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.compare{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.compare{grid-template-columns:minmax(0,1fr)}}
.field[hidden]{display:none}
.result .warn{color:var(--alert-soft);border-top:1px solid var(--cream-line);padding-top:12px;font-size:13.5px}

/* dropdowns must float above following sections */
.wrap:has(.sel.open),.wrap:has(.dp.open),.section:has(.sel.open),.section:has(.dp.open){z-index:45}
.sel.open,.dp.open{z-index:46}
/* five service styles: home cards + services compare */
.grid.c4 .card .label span{font-size:12px}
@media (max-width:1100px){.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid.c4{grid-template-columns:minmax(0,1fr)}}
.grid.c5{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.grid.c5 .card .label{padding:14px 16px;min-height:56px}
.grid.c5 .card .label span{font-size:11px;letter-spacing:.16em}
.grid.c5 .card p{font-size:15px}
@media (max-width:1180px){.grid.c5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.grid.c5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid.c5{grid-template-columns:minmax(0,1fr)}}

/* ---------- transitions: everything dissolves, nothing is cut ----------
   1) heroes: the photograph itself fades into the ivory page (a mask on the picture, not a colour wash)
   2) light sections grade into each other over a long eased fade inside their top padding
   3) the closing CTA is a photograph that emerges out of the page and deepens into the footer's plum */
.hero-home{background:var(--ground,#F3EFEB);min-height:100svh;padding:calc(var(--header-h) + 20px) 0 200px}
.hero-home .slides{-webkit-mask-image:none;mask-image:none}
.hero-home .veil{-webkit-mask-image:none;mask-image:none;z-index:0;background:
  linear-gradient(180deg,transparent calc(100% - 260px),color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) calc(100% - 170px),color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) calc(100% - 110px),color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) calc(100% - 62px),color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) calc(100% - 32px),color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) calc(100% - 12px),var(--ground,#F3EFEB) calc(100% - 3px)),
  radial-gradient(62% 58% at 50% 46%,rgba(32,0,32,.55),transparent 74%),
  linear-gradient(180deg,rgba(32,0,32,.66) 0%,rgba(32,0,32,.7) 48%,rgba(32,0,32,.42) 74%,rgba(32,0,32,.12) 90%,rgba(32,0,32,0) 100%)}
.hero-home .scroll-cue{color:var(--olive-mute);bottom:36px}
.hero-home .scroll-cue i{background:linear-gradient(var(--gold-deep),transparent)}
.hero-page{background:var(--ground,#F3EFEB);align-items:center;min-height:min(78svh,700px);padding:calc(var(--header-h) + 40px) 0 170px}
.hero-page .bg{-webkit-mask-image:none;mask-image:none}
.hero-page .bg::after{background:
  linear-gradient(180deg,transparent calc(100% - 230px),color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) calc(100% - 150px),color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) calc(100% - 96px),color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) calc(100% - 54px),color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) calc(100% - 28px),color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) calc(100% - 10px),var(--ground,#F3EFEB) calc(100% - 3px)),
  radial-gradient(56% 62% at 30% 48%,rgba(32,0,32,.5),transparent 72%),
  linear-gradient(180deg,rgba(32,0,32,.64) 0%,rgba(32,0,32,.66) 50%,rgba(32,0,32,.36) 76%,rgba(32,0,32,.08) 92%,rgba(32,0,32,0) 100%)}
.hero-page .wrap{max-width:none}
.hero-page h1{max-width:16ch}
.hero-page .lead{color:rgba(243,239,235,.9)}
.hero-page .crumbs a{color:rgba(243,239,235,.8)}
/* structure lines + surfaces */
.tile{background:rgba(255,255,255,.5)}
.olive .tile{background:rgba(243,239,235,.06);border-color:rgba(243,239,235,.3)}
.compare .col{background:rgba(255,255,255,.45);border-color:rgba(51,0,51,.25)}
.compare .col.on{background:#FCFAF7}
.step .num,.feature .num{opacity:.95;color:var(--gold-deep)}
.olive .step .num{color:var(--gold)}
.feature{border-top-color:rgba(51,0,51,.25)}
.feature ul li{font-weight:400;color:var(--olive-ink)}
.acc details{border-color:rgba(51,0,51,.25)}
.acc summary i{border-color:rgba(51,0,51,.45)}
.acc details[open]{background:rgba(255,255,255,.45);padding:0 16px;margin:0 -16px}
.ct-row{border-color:rgba(51,0,51,.25)}
.ct-row .go{opacity:.9;transform:none}
.copy-btn{border-color:rgba(51,0,51,.4);color:var(--olive)}
.list-rule li{border-color:rgba(51,0,51,.25)}
.olive .list-rule li{border-color:var(--cream-line)}
.text p,.card p,.tile p,.step p,.feature ul li,.dish p,.list-rule p{font-weight:400}
.sticky a:not(.wa){background:var(--cream);color:var(--olive);border-color:var(--gold)}
.sticky a:not(.wa):hover{background:#fff}
.gold-note::before{opacity:1;filter:brightness(.55)}
.masonry .cap{opacity:1;transform:none}
@media (hover:hover){.masonry .cap{opacity:0;transform:translateY(8px)}.masonry .photo:hover .cap{opacity:1;transform:none}}
.marquee img{-webkit-user-drag:none;user-select:none}
.marquee img:hover{filter:saturate(1);opacity:1}
/* soft navigation: brand curtain + content entrance */
.curtain{position:fixed;inset:0;z-index:200;background:var(--olive-deep);display:grid;place-items:center;pointer-events:none;transform:translateY(102%);will-change:transform}
.curtain svg{width:clamp(110px,12vw,160px);aspect-ratio:1656.6/1071.1;color:var(--gold);opacity:0;transform:translateY(14px) scale(.94);transition:opacity .3s .18s,transform .55s .18s var(--ease-out)}
.curtain .bar{position:absolute;left:50%;bottom:18%;width:0;height:1px;background:var(--gold);transform:translateX(-50%);transition:width .5s .25s var(--ease-out);opacity:.7}
.curtain.in{transform:none;transition:transform .5s var(--ease-out);pointer-events:auto}
.curtain.in svg{opacity:1;transform:none}
.curtain.in .bar{width:min(240px,40vw)}
.curtain.in.out{transform:translateY(-102%);transition:transform .6s var(--ease-out)}
.curtain.in.out svg{opacity:0;transform:translateY(-14px) scale(.96);transition:opacity .25s,transform .4s var(--ease)}
.curtain.in.out .bar{width:0;transition:width .3s}
main{outline:none}
main.enter>*{animation:page-in .9s var(--ease-out) both}
main.enter>*:nth-child(2){animation-delay:.06s}main.enter>*:nth-child(3){animation-delay:.12s}
@keyframes page-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* menu overlay: clip motif, keep out of tab order when closed */
.menu-overlay{overflow:hidden;visibility:hidden;transition:transform .6s var(--ease-out),visibility 0s .6s}
.menu-overlay.open{visibility:visible;transition-delay:0s}
.menu-overlay .motif{right:0;bottom:0;transform:translate(18%,18%)}
/* mobile: composer, wizard, sticky */
@media (max-width:900px){.composer{grid-template-columns:minmax(0,1fr)}}
@media (max-width:980px){.wizard .f2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.wiz-nav{flex-wrap:wrap;padding-bottom:64px}.is-plan .sticky a:not(.wa){display:none}.sticky a{min-height:44px}.chip{min-height:40px}}
.is-plan .sticky a:not(.wa){display:none}
.is-contact .sticky a.wa{display:inline-flex}
/* location card (replaces the Google Maps iframe) */
.loc{border:1px solid var(--gold-dim);background:var(--olive);color:var(--cream);padding:clamp(24px,3vw,40px);display:grid;gap:18px;position:relative;min-height:100%}
.loc::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.3);pointer-events:none}
.loc .ic{width:52px;height:52px;border-radius:50%;background:var(--gold);color:var(--olive-deep);display:grid;place-items:center}
.loc .ic svg{width:24px;height:24px}
.loc h3{font-size:30px;color:var(--cream)}
.loc p{color:var(--cream-mute)}
.loc .btn-row{margin-top:6px}
/* clients: "all clients" button + logo wall modal */
.clients-cta{display:flex;justify-content:center;margin-top:28px}
.allbtn{display:inline-flex;align-items:center;gap:14px;background:transparent;border:1px solid var(--olive);color:var(--olive);padding:10px 10px 10px 22px;border-radius:999px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:.3s}
.allbtn b{font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:0;color:var(--gold-deep)}
.allbtn i{width:36px;height:36px;border-radius:50%;background:var(--olive);color:var(--gold);display:grid;place-items:center;font-style:normal;font-size:22px;line-height:1;transition:.3s}
.allbtn:hover{background:var(--olive);color:var(--cream)}
.allbtn:hover b{color:var(--gold)}
.allbtn:hover i{background:var(--gold);color:var(--olive-deep);transform:rotate(90deg)}
.cmodal{position:fixed;inset:0;z-index:110;background:rgba(32,0,32,.92);display:none;align-items:center;justify-content:center;padding:clamp(12px,2.5vw,32px)}
.cmodal.open{display:flex}
/* the wall is a fixed-height grid: rows share the space equally, so every logo is visible without scrolling on desktop */
.cmodal .box{background:var(--beige);color:var(--olive-ink);width:min(1320px,100%);height:min(94vh,960px);display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;border:1px solid var(--gold-dim);box-shadow:0 40px 100px rgba(0,0,0,.45)}
.cmodal .box::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.35);pointer-events:none;z-index:1}
.cmodal .top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:clamp(18px,2.4vw,28px) clamp(22px,3vw,40px) 14px;border-bottom:1px solid var(--beige-line)}
.cmodal h3{font-size:clamp(24px,2.6vw,34px);color:var(--olive)}
.cmodal .top p{color:var(--olive-soft);font-size:13.5px;margin-top:4px}
.cmodal .x{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--olive);background:var(--beige);color:var(--olive);display:grid;place-items:center;cursor:pointer;transition:.3s}
.cmodal .x:hover{background:var(--olive);color:var(--gold)}
.cmodal .x svg{width:18px;height:18px}
.cmodal .wall{min-height:0;overflow:hidden;padding:clamp(14px,1.8vw,22px) clamp(22px,3vw,40px) clamp(18px,2.2vw,30px);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:10px;align-content:stretch}
.cmodal .key{grid-column:1/-1;align-self:end;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);display:flex;gap:10px;align-items:center;margin:0}
.cmodal .key i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--gold);display:inline-block}
.cmodal .lg{min-height:0;background:#FCFAF7;border:1px solid var(--beige-line);display:grid;place-items:center;padding:8px;position:relative;transition:.3s}
.cmodal .lg:hover{border-color:var(--gold);box-shadow:0 20px 40px -30px rgba(32,0,32,.4)}
/* absolutely positioned + object-fit: the logo always fits inside the tile whatever the tile's size (percentage max-height would not resolve here) */
.cmodal .lg img{position:absolute;left:11%;top:13%;width:78%;height:74%;object-fit:contain;filter:saturate(.5);opacity:.9;transition:.3s}
.cmodal .lg:hover img{top:7%;height:62%}
.cmodal .lg:hover img{filter:none;opacity:1}
.cmodal .lg.txt{font-family:var(--display);font-size:clamp(15px,1.4vw,22px);color:var(--olive);text-align:center;line-height:1.1}
.cmodal .lg.feat::after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.cmodal .lg .nm{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);text-align:center;background:linear-gradient(transparent,rgba(252,250,247,.96) 40%);opacity:0;transition:.3s;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmodal .lg:hover .nm{opacity:1}
@media (max-width:1180px){.cmodal .wall{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:820px){.cmodal .wall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:600px){.cmodal .top{flex-wrap:wrap;gap:8px 20px;padding-bottom:12px}.cmodal .top p{margin-top:2px}.cmodal .box{height:min(94vh,960px)}.cmodal .wall{overflow:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:88px;align-content:start}.cmodal .lg.txt{font-size:15px}}


/* five-format compare, hidden fields, composer notes */
.compare{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.compare .col{padding:clamp(16px,1.5vw,22px)}
.compare .col h3{font-size:21px}
.compare .row b{font-size:14.5px}
@media (max-width:1280px){.compare{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.compare{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.compare{grid-template-columns:minmax(0,1fr)}}
.field[hidden]{display:none}
.result .warn{color:var(--alert-soft);border-top:1px solid var(--cream-line);padding-top:12px;font-size:13.5px}

/* dropdowns must float above following sections */
.wrap:has(.sel.open),.wrap:has(.dp.open),.section:has(.sel.open),.section:has(.dp.open){z-index:45}
.sel.open,.dp.open{z-index:46}
/* five service styles: home cards + services compare */
.grid.c4 .card .label span{font-size:12px}
@media (max-width:1100px){.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid.c4{grid-template-columns:minmax(0,1fr)}}
.grid.c5{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.6vw,22px)}
.grid.c5 .card .label{padding:14px 16px;min-height:56px}
.grid.c5 .card .label span{font-size:11px;letter-spacing:.16em}
.grid.c5 .card p{font-size:15px}
@media (max-width:1180px){.grid.c5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.grid.c5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid.c5{grid-template-columns:minmax(0,1fr)}}

/* ---------- transitions: everything dissolves, nothing is cut ----------
   1) heroes: the photograph itself fades into the ivory page (a mask on the picture, not a colour wash)
   2) light sections grade into each other over a long eased fade inside their top padding
   3) the closing CTA is a photograph that emerges out of the page and deepens into the footer's plum */

/* living ground: the body carries the page tint (set by site.js from the scroll position); light sections are transparent */
:root{--ground:#F4F0EA}
body{background:var(--ground)}
.section.beige,.section.beige-deep,.section.blush,.section.trusted{background:transparent}
.trusted{border-top:0;border-bottom:0;padding-top:12px}
.section.cta-photo{--self:var(--beige);background:transparent}

/* closing CTA — the page ground opens onto a photograph, which then deepens into the footer's plum */
.section.cta-photo{color:var(--cream);padding:clamp(250px,32vh,330px) 0 clamp(90px,11vh,120px)}
.cta-photo .cta-bg{position:absolute;inset:0;overflow:hidden}
.cta-photo .cta-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.cta-photo .cta-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,var(--ground,#F3EFEB) 0,color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) 10px,color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) 30px,color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) 62px,color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) 110px,color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) 170px,transparent 250px),
  linear-gradient(180deg,rgba(32,0,32,0) 150px,rgba(32,0,32,.55) 260px,rgba(32,0,32,.84) 360px,var(--olive-deep) 100%)}
.cta-photo .wrap{position:relative}
.cta-photo .eyebrow{color:var(--gold)}.cta-photo h2{color:var(--cream)}.cta-photo p{color:var(--cream-mute)}
.cta-photo .btn.ghost{color:var(--cream);border-color:rgba(243,239,235,.5)}
.site-foot{background:var(--olive-deep)}
.site-foot .band{background-image:var(--band-olive);opacity:.28;bottom:0}


/* phones: shorter hero dissolve, no half-empty first screen; header tag hidden on narrow screens */
@media (max-width:720px){.hero-page{min-height:auto;padding-bottom:110px}.hero-page .bg::after{background:linear-gradient(180deg,transparent calc(100% - 150px),color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) calc(100% - 100px),color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) calc(100% - 64px),color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) calc(100% - 36px),color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) calc(100% - 18px),color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) calc(100% - 7px),var(--ground,#F3EFEB) calc(100% - 2px)),radial-gradient(70% 60% at 40% 48%,rgba(32,0,32,.5),transparent 72%),linear-gradient(180deg,rgba(32,0,32,.64) 0%,rgba(32,0,32,.66) 55%,rgba(32,0,32,.3) 80%,rgba(32,0,32,0) 100%)}
.hero-home{padding-bottom:140px}.hero-home .veil{background:linear-gradient(180deg,transparent calc(100% - 170px),color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) calc(100% - 112px),color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) calc(100% - 72px),color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) calc(100% - 40px),color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) calc(100% - 20px),color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) calc(100% - 8px),var(--ground,#F3EFEB) calc(100% - 2px)),radial-gradient(70% 58% at 50% 46%,rgba(32,0,32,.55),transparent 74%),linear-gradient(180deg,rgba(32,0,32,.66) 0%,rgba(32,0,32,.7) 52%,rgba(32,0,32,.36) 80%,rgba(32,0,32,0) 100%)}}
@media (max-width:480px){.brand .tag{display:none}}
/* quick-action pills step aside once the footer is in view */
.sticky.away{opacity:0;pointer-events:none;transform:translateY(12px);transition:.35s}
.sticky{transition:opacity .35s,transform .35s}

/* artistic gestures — calm, brand-true */
.sec-head{position:relative}
.sec-head::after{content:"";display:block;width:0;height:1px;background:linear-gradient(90deg,var(--gold),transparent);transition:width 1.4s var(--ease) .15s;margin-top:6px}
.sec-head.in::after{width:min(140px,40%)}
.h2 .gold{background:linear-gradient(90deg,var(--gold-deep),var(--gold) 70%,#B9995C);-webkit-background-clip:text;background-clip:text;color:transparent}
.olive .h2 .gold,.olive-deep .h2 .gold,.rise .h2 .gold,.cta-photo .gold{background:linear-gradient(90deg,var(--gold),var(--gold-light) 75%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-page h1 .gold,.hero-home h1 em{background:linear-gradient(90deg,var(--gold),var(--gold-light) 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
.photo.reveal{transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.3s var(--ease)}
.photo.reveal img{transform:scale(1.08);transition:transform 1.6s var(--ease)}
.photo.reveal.in{clip-path:inset(0)}
.photo.reveal.in img{transform:none}
@media (prefers-reduced-motion:reduce){.photo.reveal{clip-path:none}.photo.reveal img{transform:none}.sec-head::after{width:min(140px,40%)}}

/* ---------- event builder on ivory ---------- */
.light .bpane h3,.light .bsum h4,.light .mcat header b,.light .scard b,.light .sh-brand b{color:var(--olive)}
.light .bpane .hint,.light .scard p,.light .bnote,.light .dishopt,.light .bsum .sel,.light .bsum .empty,.light .share p,.light .share .or,.light .pool span,.light .pkg .comp span{color:var(--olive-mute)}
.light .scard .k,.light .pkg .per,.light .mcat header span,.light .bsum .kv span,.light .bsum .sel b,.light .share .st{color:var(--gold-deep)}
.light .bsteps{border-color:var(--beige-line);background:#FCFAF7}
.light .bsteps li{color:var(--olive-mute);border-color:var(--beige-line)}
.light .bsteps li i{border-color:var(--beige-line)}
.light .bsteps li.done{color:var(--gold-deep)}
.light .scard,.light .pkg,.light .mcat{background:#FCFAF7;border-color:var(--beige-line);color:var(--olive-ink)}
.light .scard:hover,.light .pkg:hover{border-color:var(--gold)}
.light .pkg b{color:var(--gold-deep)}
.light .pkg .price{color:var(--olive)}
.light .pkg[aria-pressed=true] .price{color:var(--olive-deep)}
.light .dishopt.fixed{color:var(--olive)}
.light .pkg .comp span{border-color:var(--beige-line)}
.light .mcat header{border-color:var(--beige-line)}
.light .mcat header span.full{color:var(--gold-deep)}
.light .bnote{border-color:var(--beige-line)}
.light .dishopt:hover{color:var(--olive);background:rgba(51,0,51,.05)}
.light .dishopt[aria-pressed=true]{color:var(--olive)}
.light .dishopt i{border-color:var(--beige-line)}
.light .pool{border-color:var(--gold)}
.light .pool b{color:var(--gold-deep)}
.light .pool .bar{background:var(--beige-line)}
.light .bsum{background:#FCFAF7;border-color:var(--gold-dim)}
.light .bsum .kv b,.light .bsum .sel em{color:var(--olive-ink)}
.light .bsum .warn{color:var(--alert)}
.light .share .or::before,.light .share .or::after{background:var(--beige-line)}
.light .sheet{box-shadow:0 30px 60px -36px rgba(32,0,32,.35)}
.light .field-label{color:var(--gold-deep)}
.light .sec-head .lead{color:var(--olive-mute)}

/* footer bridge: ground → photograph → plum, for pages whose last section is not already a photo CTA */
.site-foot{padding-top:0}
.site-foot .bridge{position:relative;height:clamp(220px,28vh,300px);overflow:hidden;margin-bottom:clamp(50px,7vh,80px)}
.site-foot .bridge img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.site-foot .bridge::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,var(--ground,#F3EFEB) 0,color-mix(in srgb,var(--ground,#F3EFEB) 99%,transparent) 8px,color-mix(in srgb,var(--ground,#F3EFEB) 95%,transparent) 26px,color-mix(in srgb,var(--ground,#F3EFEB) 85%,transparent) 52px,color-mix(in srgb,var(--ground,#F3EFEB) 62%,transparent) 92px,color-mix(in srgb,var(--ground,#F3EFEB) 30%,transparent) 140px,transparent 200px),
  linear-gradient(180deg,rgba(32,0,32,0) 110px,rgba(32,0,32,.6) 210px,var(--olive-deep) 100%)}
body:has(main > .cta-photo:last-child) .site-foot .bridge,body:has(main > .olive:last-child) .site-foot .bridge{display:none}
body:has(main > .cta-photo:last-child) .site-foot,body:has(main > .olive:last-child) .site-foot{padding-top:clamp(60px,8vh,100px)}

/* ---------- the event builder sits in its own branded frame: the working document of the site ---------- */
.builder-frame{position:relative;background:#FBF9F6;border:1px solid rgba(201,169,106,.7);padding:clamp(30px,4.2vw,64px) clamp(24px,4vw,64px) clamp(26px,3.6vw,52px);box-shadow:0 50px 90px -60px rgba(32,0,32,.45),0 1px 0 rgba(255,255,255,.6) inset}
.builder-frame::before{content:"";position:absolute;inset:10px;border:1px solid rgba(201,169,106,.55);pointer-events:none}
.builder-frame::after{content:"";position:absolute;inset:14px;border:1px solid rgba(201,169,106,.22);pointer-events:none}
.builder-frame>.sec-head{position:relative;z-index:1;max-width:none;display:grid;grid-template-columns:minmax(0,1fr);margin-bottom:0}
.builder-frame>.sec-head .lead{max-width:62ch}
.builder-frame .bf-band{height:18px;background:var(--band-beige) center/18px 18px repeat-x;opacity:.45;margin:0 calc(-1 * clamp(24px,4vw,64px) + 26px)}
.builder-frame .bf-band.top{margin-top:24px;margin-bottom:clamp(26px,3.5vh,40px)}
.builder-frame>.builder{position:relative;z-index:1}
.builder-frame .bf-band:last-child{margin-top:clamp(26px,3.5vh,40px)}
.bf-mark{position:absolute;right:clamp(26px,4vw,56px);top:clamp(26px,3.6vw,50px);width:clamp(84px,9vw,130px);aspect-ratio:1656.6/1071.1;color:var(--gold);opacity:.22;pointer-events:none}
.bf-star{position:absolute;width:22px;height:22px;color:var(--gold);opacity:.9}
.bf-star.tl{left:-1px;top:-1px;transform:translate(-50%,-50%)}.bf-star.tr{right:-1px;top:-1px;transform:translate(50%,-50%)}
.bf-star.bl{left:-1px;bottom:-1px;transform:translate(-50%,50%)}.bf-star.br{right:-1px;bottom:-1px;transform:translate(50%,50%)}
/* clearer, crisper controls on the frame */
.light .bsteps,.light .scard,.light .pkg,.light .mcat,.light .bsum{background:#fff}
.light .scard,.light .pkg,.light .mcat{border-color:#E4DACF}
.light .scard[aria-pressed=true],.light .pkg[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}
.light .scard:hover,.light .pkg:hover{box-shadow:0 18px 36px -26px rgba(32,0,32,.35)}
.light .bsteps{border-color:#E4DACF}
.light .bsum{border-color:rgba(201,169,106,.55)}
.light .dishopt[aria-pressed=true]{background:rgba(201,169,106,.12)}
.light .field input,.light .field textarea{background:#fff;border:1px solid #E4DACF;padding:12px 14px;border-radius:2px}
.light .field input:focus,.light .field textarea:focus{border-color:var(--gold)}
@media (max-width:720px){.builder-frame{padding:26px 16px 22px}.bf-mark{display:none}.bf-star{width:16px;height:16px}.builder-frame .bf-band{margin:0 8px}}

/* ---------- home hero: the arched portal (copy on plum, photographs seen through a doorway on the right) — ported from hero-lab/final on 22 Sep 2026 ---------- */
/* ===== final · arched portal (v6) with the panel's grafts: solid first screen, oklab melt, pinned headline rule, double hairline, live progress line, crop control, v4 rhythm ===== */
.hero-home.portal{
  --top:calc(var(--header-h) + 60px);      /* slab start (the apex star sits above it, clear of the header) */
  --solid:calc(100vh - 10px);              /* the plum stays solid down to here: the whole first screen (svh version below, where supported) */
  --melt:110px;                            /* then dissolves into the living ground over this height, below the fold */
  --plum-end:calc(var(--solid) + var(--melt));
  --over:56px;                             /* the slab foot runs this far past the plum into the ivory */
  --caph:34px;                             /* caption row: 12px margin + 22px line */
  --padb:74px;                             /* calm ivory after the caption row */
  --gap:14px;                              /* main hairline distance from the slab */
  --gap2:22px;                             /* second, fainter hairline (the builder frame's double line) */
  --gutter:clamp(44px,4vw,64px);           /* plum gutter between the copy and the arch */
  background:transparent;color:var(--cream);
  min-height:0;display:block;padding:var(--top) 0 var(--padb);overflow:hidden;position:relative;
}
.hero-home.portal .veil,.hero-home.portal .scroll-cue{display:none}
/* plum mat: solid through the first screen, then lets go into the living ground behind the arch (srgb first as a fallback, oklab keeps the mid-tones warm) */
@supports (height:100svh){.hero-home.portal{--solid:calc(100svh - 10px)}}
.hero-home.portal .hp-ground{position:absolute;left:0;right:0;top:0;height:var(--plum-end);z-index:0;pointer-events:none;
  background:var(--olive);
  background:linear-gradient(180deg,
    var(--olive) 0,
    var(--olive) calc(100% - var(--melt)),
    color-mix(in srgb,var(--olive) 97%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.85),
    color-mix(in srgb,var(--olive) 90%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.7),
    color-mix(in srgb,var(--olive) 78%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.55),
    color-mix(in srgb,var(--olive) 58%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.4),
    color-mix(in srgb,var(--olive) 34%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.26),
    color-mix(in srgb,var(--olive) 15%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.14),
    color-mix(in srgb,var(--olive) 4%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.05),
    var(--ground,#F4F0EA) 100%);
  background:linear-gradient(180deg,
    var(--olive) 0,
    var(--olive) calc(100% - var(--melt)),
    color-mix(in oklab,var(--olive) 97%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.85),
    color-mix(in oklab,var(--olive) 90%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.7),
    color-mix(in oklab,var(--olive) 78%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.55),
    color-mix(in oklab,var(--olive) 58%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.4),
    color-mix(in oklab,var(--olive) 34%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.26),
    color-mix(in oklab,var(--olive) 15%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.14),
    color-mix(in oklab,var(--olive) 4%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.05),
    var(--ground,#F4F0EA) 100%)}
/* grid: copy left, arch right (a wider doorway than v6 so the landscape slides keep their subject) */
.hero-home.portal .hero-grid{width:auto;margin-left:max(clamp(20px,5vw,72px),calc((100% - 1200px)/2));margin-right:40px;display:grid;grid-template-columns:minmax(0,1fr) clamp(600px,50vw,920px);
  gap:0 var(--gutter);align-items:start;justify-items:stretch;text-align:left;position:relative;z-index:1}
/* copy: centred in the solid plum, with an explicit vertical rhythm (v4) instead of a uniform grid gap */
.hero-home.portal .hero-copy{text-align:left;display:grid;justify-items:start;align-content:center;gap:0;width:100%;max-width:none;position:relative;z-index:2;
  min-height:calc(var(--solid) - var(--top));padding:0 0 56px}
.hero-home.portal .mark{width:clamp(84px,7vw,100px);aspect-ratio:1656.6/1071.1;color:var(--gold);margin:0 0 26px}
.hero-home.portal .tagline{margin:0 0 26px;display:flex;align-items:center;gap:14px}
.hero-home.portal .tagline::before{content:"";width:34px;height:1px;background:var(--gold);flex:none;transform-origin:0 50%;transform:scaleX(0);animation:hp-x 1.1s var(--ease) .7s both}
.hero-home.portal h1{max-width:none;font-size:clamp(38px,3.6vw,56px);line-height:1.06;margin:0}
.hero-home.portal h1 em{display:block}
.hero-home.portal .sub{max-width:46ch;font-size:clamp(16px,1.25vw,18px);line-height:1.7;margin:0 0 34px}
.hero-home.portal .btn-row{justify-content:flex-start;gap:10px;flex-wrap:wrap;margin:0}
.hero-home.portal .btn{padding:14px 16px;letter-spacing:.13em;gap:9px;font-size:11.5px}
.hero-home.portal .btn-row{gap:8px}
@media (max-width:1320px) and (min-width:1181px){.hero-home.portal .btn{padding:13px 13px;letter-spacing:.1em;font-size:11px}}
/* the pinned rule (v1): draws itself from the left edge of the headline across the plum gutter and stops on the main hairline of the arch with one small star */
.hero-home.portal .hp-join{display:block;position:relative;height:1px;width:0;margin:18px 0 22px;background:linear-gradient(90deg,rgba(201,169,106,.55),var(--gold));animation:hp-join 1.7s var(--ease) .75s both;overflow:visible;z-index:3}
.hero-home.portal .hp-join svg{position:absolute;right:0;top:50%;width:18px;height:18px;padding:2px;box-sizing:border-box;transform:translate(50%,-50%) scale(.4);color:var(--gold);background:radial-gradient(circle,var(--olive) 0 58%,transparent 64%);opacity:0;animation:hp-pin .8s var(--ease) 2.25s both}
@keyframes hp-join{from{width:0;opacity:0}to{width:calc(100% + var(--gutter) - var(--gap));opacity:1}}
@keyframes hp-pin{from{opacity:0;transform:translate(50%,-50%) scale(.4)}to{opacity:1;transform:translate(50%,-50%)}}
@keyframes hp-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* the arch */
.hero-home.portal .hp-arch{position:relative;align-self:start;z-index:1}
.hero-home.portal .hp-slab{position:relative;height:calc(var(--plum-end) + var(--over) - var(--top));border-radius:999px 999px 0 0;overflow:hidden;isolation:isolate;
  background:var(--olive-deep);transform:translateZ(0);box-shadow:0 50px 90px -60px rgba(32,0,32,.5)}
/* the slideshow box is 4% taller than the doorway and drifts down by at most that much while the page scrolls (hero.js sets --drift): position only, never size */
.hero-home.portal .slides{position:absolute;left:0;right:0;top:-4%;bottom:0;overflow:hidden;background:var(--olive-deep);isolation:isolate;z-index:0;transform:translate3d(0,var(--drift,0px),0);will-change:transform}
.hero-home.portal .slides img{transform:none!important;animation:none!important;filter:none!important;transition:opacity 3s cubic-bezier(.4,0,.2,1)}
/* crop control for the landscape slides inside the portrait doorway (position only, no scale) */
.hero-home.portal .slides img:nth-child(1){object-position:58% 58%}
.hero-home.portal .slides img:nth-child(4){object-position:50% 42%}
.hero-home.portal .slides img:nth-child(5){object-position:60% 45%}
/* two concentric gold hairlines outside the slab (14px and 22px), drawn on load from the feet up to the apex, where one star waits */
.hero-home.portal .hp-line{position:absolute;left:calc(-1 * var(--gap));right:calc(-1 * var(--gap));top:calc(-1 * var(--gap));bottom:var(--caph);pointer-events:none;
  border:1px solid var(--gold);border-bottom:0;border-radius:999px 999px 0 0;clip-path:inset(100% 0 0 0);animation:hp-draw 1.9s var(--ease) .25s forwards}
.hero-home.portal .hp-line.b{left:calc(-1 * var(--gap2));right:calc(-1 * var(--gap2));top:calc(-1 * var(--gap2));bottom:calc(var(--caph) + 14px);opacity:.32;animation-delay:.65s}
.hero-home.portal .hp-star{position:absolute;left:50%;top:calc(-1 * var(--gap));width:22px;height:22px;transform:translate(-50%,-50%);color:var(--gold);z-index:2;
  background:radial-gradient(circle,var(--olive) 0 48%,transparent 52%);opacity:0;animation:hp-star .9s var(--ease) 2.1s forwards}
@keyframes hp-draw{to{clip-path:inset(0 0 0 0)}}
@keyframes hp-star{to{opacity:1}}
/* plaque under the arch: 01 — 05 [progress hairline] caption */
.hero-home.portal .hp-cap{position:relative;display:flex;align-items:center;gap:12px;margin:12px 0 0 4px;height:22px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--olive-soft);white-space:nowrap;
  opacity:0;animation:hp-fade 1s var(--ease) 2.4s forwards}
.hero-home.portal .hp-n{font-weight:600;color:var(--gold-deep);font-variant-numeric:tabular-nums;min-width:2ch;transition:opacity .6s}
.hero-home.portal .hp-n.swap{opacity:0}
.hero-home.portal .hp-of{color:var(--olive-mute);margin-left:-6px}
.hero-home.portal .hp-rule{position:relative;display:block;width:120px;height:1px;background:rgba(201,169,106,.3);flex:none;overflow:hidden}
.hero-home.portal .hp-fill{position:absolute;inset:0;background:var(--gold-deep);transform:scaleX(0);transform-origin:0 50%}
.hero-home.portal .hp-fill.run{animation:hp-prog var(--dwell,7s) linear both}
@keyframes hp-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero-home.portal .hp-caps{position:relative;display:block;flex:1;min-width:0;height:22px;line-height:22px}
.hero-home.portal .hp-caps span{position:absolute;left:0;top:0;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hero-home.portal .hp-caps span.on{opacity:1}
@keyframes hp-fade{to{opacity:1}}
/* staggered entrance of the copy */
.hero-home.portal .mark,.hero-home.portal .tagline,.hero-home.portal h1,.hero-home.portal .sub,.hero-home.portal .btn-row{animation:hp-rise 1.1s var(--ease) both}
.hero-home.portal .tagline{animation-delay:.12s}.hero-home.portal h1{animation-delay:.22s}.hero-home.portal .sub{animation-delay:.34s}.hero-home.portal .btn-row{animation-delay:.46s}
@keyframes hp-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* the quick-action pills rest while the hero's own buttons are on screen (the site already does this for the Plan pill); they rise once the buttons scroll away */
.sticky.hero-rest{opacity:0;pointer-events:none;transform:translateY(12px)}
@media (prefers-reduced-motion:reduce){
  .hero-home.portal .hp-line{animation:none;clip-path:none}
  .hero-home.portal .hp-star,.hero-home.portal .hp-cap{animation:none;opacity:1}
  .hero-home.portal .mark,.hero-home.portal .tagline,.hero-home.portal h1,.hero-home.portal .sub,.hero-home.portal .btn-row{animation:none}
  .hero-home.portal .tagline::before{animation:none;transform:none}
  .hero-home.portal .hp-join{animation:none;width:calc(100% + var(--gutter) - var(--gap));opacity:1}
  .hero-home.portal .hp-join svg{animation:none;opacity:1;transform:translate(50%,-50%)}
  .hero-home.portal .hp-fill,.hero-home.portal .hp-fill.run{animation:none;transform:none}
  .hero-home.portal .slides{top:0;transform:none}
}
/* short viewports (laptops): tighter rhythm so all three buttons stay well inside the first screen */
@media (max-height:760px) and (min-width:901px){
  .hero-home.portal{--top:calc(var(--header-h) + 52px);--solid:calc(100vh - 6px)}
  @supports (height:100svh){.hero-home.portal{--solid:calc(100svh - 6px)}}
  .hero-home.portal .hero-copy{padding-bottom:18px}
  .hero-home.portal .mark{width:78px;margin-bottom:20px}
  .hero-home.portal .tagline{margin-bottom:20px}
  .hero-home.portal .hp-join{margin:14px 0 18px}
  .hero-home.portal .sub{font-size:16px;line-height:1.62;margin-bottom:28px}
}
/* tablets in landscape: a narrower doorway and tighter buttons keep the three buttons on one line */
@media (min-width:901px) and (max-width:1180px){
  .hero-home.portal{--gutter:clamp(32px,4vw,56px)}
  .hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr) clamp(440px,48vw,640px)}
  .hero-home.portal .btn{padding:14px 15px;letter-spacing:.12em;gap:8px}
  .hero-home.portal .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  .hero-home.portal .btn-row .btn{justify-content:center}
  .hero-home.portal .btn-row .btn:first-child{grid-column:1/-1}
}
/* stacked: copy, then a shorter arch below it */
@media (max-width:900px){
  .hero-home.portal{--top:calc(var(--header-h) + 40px);--over:80px;--melt:140px;--plum-end:auto;--padb:72px;--gap:10px;--gap2:16px}
  .hero-home.portal .hp-ground{height:auto;bottom:calc(var(--over) + var(--caph) + var(--padb))}
  .hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr);gap:44px 0;margin-left:clamp(20px,5vw,72px);margin-right:clamp(20px,5vw,72px)}
  .hero-home.portal .hero-copy{min-height:0;padding:0}
  .hero-home.portal .mark{width:80px;margin-bottom:22px}
  .hero-home.portal .tagline{letter-spacing:.28em;gap:0;margin-bottom:22px}
  .hero-home.portal .tagline::before{display:none}
  .hero-home.portal h1{font-size:clamp(34px,9.4vw,44px);margin-bottom:20px}
  .hero-home.portal .hp-join{display:none}
  .hero-home.portal .sub{margin-bottom:24px;max-width:none}
  .hero-home.portal .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .hero-home.portal .btn-row .btn{justify-content:center;padding:15px 12px;letter-spacing:.14em}
  .hero-home.portal .btn-row .btn:first-child{grid-column:1/-1}
  .hero-home.portal .hp-arch{width:calc(100% - 20px);margin:0 auto}
  .hero-home.portal .hp-slab{height:min(132vw,600px)}
  .hero-home.portal .slides{top:0;transform:none}
  .hero-home.portal .hp-line.b{display:none}
  .hero-home.portal .hp-cap{margin-left:2px}
  .hero-home.portal .hp-rule{width:72px}
}
/* ---------- home hero, fit-to-screen window (owner, 22 Sep): the whole arch sits inside the first screen and the window is wider ---------- */
.hero-home.portal{--top:calc(var(--header-h) + 44px);--arch-h:calc(100vh - var(--top) - 90px);--gutter:clamp(40px,3.8vw,60px);min-height:calc(var(--plum-end) + var(--padb))}
@supports (height:100svh){.hero-home.portal{--arch-h:calc(100svh - var(--top) - 90px)}}
.hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr) clamp(640px,54vw,900px)}
.hero-home.portal .hero-copy{min-height:var(--arch-h);padding:0 0 12px}
.hero-home.portal h1{font-size:clamp(38px,3.3vw,54px)}
.hero-home.portal .hp-slab{height:var(--arch-h)}
.hero-home.portal .hp-cap{color:var(--cream-mute)}
.hero-home.portal .hp-n{color:var(--gold)}
.hero-home.portal .hp-of{color:var(--cream-mute)}
.hero-home.portal .hp-rule{background:rgba(201,169,106,.3)}
.hero-home.portal .hp-fill{background:var(--gold)}
.hero-home.portal .slides img:nth-child(1){object-position:58% 60%}
.hero-home.portal .slides img:nth-child(5){object-position:60% 50%}
@media (max-width:1500px) and (min-width:1181px){.hero-home.portal .btn{padding:13px 12px;letter-spacing:.1em;font-size:11px}.hero-home.portal .btn-row{gap:7px}.hero-home.portal .tagline{font-size:11.5px;letter-spacing:.22em}}
@media (max-height:760px) and (min-width:901px){.hero-home.portal{--top:calc(var(--header-h) + 40px);--arch-h:calc(100vh - var(--top) - 84px)}@supports (height:100svh){.hero-home.portal{--arch-h:calc(100svh - var(--top) - 84px)}}}
@media (min-width:901px) and (max-width:1180px){.hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr) clamp(440px,50vw,640px)}}
@media (max-width:900px){.hero-home.portal{min-height:0}.hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr)}.hero-home.portal h1{font-size:clamp(34px,9.4vw,44px)}.hero-home.portal .hero-copy{min-height:0;padding:0}.hero-home.portal .hp-slab{height:min(132vw,600px)}.hero-home.portal .hp-cap{color:var(--olive-soft)}.hero-home.portal .hp-n{color:var(--gold-deep)}.hero-home.portal .hp-of{color:var(--olive-mute)}.hero-home.portal .hp-fill{background:var(--gold-deep)}}
/* ---------- home hero, wide window (owner, 22 Sep: bigger still): the photograph takes ~64% of the viewport; the crown becomes a dome so the wide window still reads as an arch ---------- */
.hero-home.portal{--top:calc(var(--header-h) + 36px);--arch-w:clamp(640px,64vw,1240px);--rx:calc(var(--arch-w) / 2);--ry:min(calc(var(--arch-h) * .46),var(--rx));--gutter:clamp(36px,3vw,48px);--arch-h:calc(100vh - var(--top) - 82px)}
@supports (height:100svh){.hero-home.portal{--arch-h:calc(100svh - var(--top) - 82px)}}
.hero-home.portal .hero-grid{margin-left:clamp(24px,5.5vw,80px);margin-right:24px;grid-template-columns:minmax(0,1fr) var(--arch-w)}
.hero-home.portal h1{font-size:clamp(34px,2.6vw,54px)}
.hero-home.portal .tagline{font-size:11px;letter-spacing:.16em}
.hero-home.portal .sub{font-size:16px;line-height:1.6;margin-bottom:26px}
.hero-home.portal .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.hero-home.portal .btn-row .btn{justify-content:center;padding:14px 10px;letter-spacing:.12em;font-size:11px}
.hero-home.portal .btn-row .btn:first-child{grid-column:1/-1}
.hero-home.portal .hp-slab{border-radius:var(--rx) var(--rx) 0 0 / var(--ry) var(--ry) 0 0}
.hero-home.portal .hp-line{border-radius:calc(var(--rx) + var(--gap)) calc(var(--rx) + var(--gap)) 0 0 / calc(var(--ry) + var(--gap)) calc(var(--ry) + var(--gap)) 0 0}
.hero-home.portal .hp-line.b{border-radius:calc(var(--rx) + var(--gap2)) calc(var(--rx) + var(--gap2)) 0 0 / calc(var(--ry) + var(--gap2)) calc(var(--ry) + var(--gap2)) 0 0}
@media (min-width:1501px){.hero-home.portal .btn-row{display:flex;width:auto;gap:10px}.hero-home.portal .btn-row .btn{padding:14px 16px;letter-spacing:.13em;font-size:11.5px}}
@media (min-width:901px) and (max-width:1180px){.hero-home.portal{--arch-w:clamp(440px,56vw,700px)}.hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr) var(--arch-w)}}
@media (max-height:760px) and (min-width:901px){.hero-home.portal{--top:calc(var(--header-h) + 32px);--arch-h:calc(100vh - var(--top) - 78px)}@supports (height:100svh){.hero-home.portal{--arch-h:calc(100svh - var(--top) - 78px)}}}
@media (max-width:900px){.hero-home.portal{--rx:999px;--ry:999px}.hero-home.portal .hero-grid{grid-template-columns:minmax(0,1fr);margin-left:clamp(20px,5vw,72px);margin-right:clamp(20px,5vw,72px)}.hero-home.portal h1{font-size:clamp(34px,9.4vw,44px)}.hero-home.portal .tagline{letter-spacing:.28em;font-size:11px}.hero-home.portal .btn-row .btn{padding:15px 12px;letter-spacing:.14em;font-size:12px}}
/* ---------- home hero, vista (owner, 22 Sep): no frame — the photograph fills the right of the first screen and melts into the ivory ground on its left and bottom; the copy sits on the ivory like every other section; the header is transparent over it ---------- */
.hero-home.vista{background:transparent;color:var(--olive-ink);min-height:100svh;display:flex;flex-direction:column;padding:var(--header-h) 0 56px;position:relative;overflow:hidden}
.hero-home.vista .veil,.hero-home.vista .scroll-cue{display:none}
.hero-home.vista .hv-photo{position:absolute;top:var(--header-h);right:0;bottom:0;left:40%;z-index:0;opacity:0;animation:hv-in 1.6s var(--ease) .1s forwards}
.hero-home.vista .slides{position:absolute;inset:0;overflow:hidden;background:transparent;isolation:isolate;z-index:0;-webkit-mask-image:none;mask-image:none}
.hero-home.vista .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:none!important;animation:none!important;filter:none!important;transition:opacity 3s cubic-bezier(.4,0,.2,1)}
.hero-home.vista .slides img.on{opacity:1;z-index:1}
.hero-home.vista .slides img.off{opacity:1;z-index:0}
.hero-home.vista .slides img:nth-child(1){object-position:62% 55%}
.hero-home.vista .slides img:nth-child(4){object-position:55% 40%}
.hero-home.vista .hv-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,var(--ground,#F4F0EA) 0,color-mix(in srgb,var(--ground,#F4F0EA) 96%,transparent) 5%,color-mix(in srgb,var(--ground,#F4F0EA) 82%,transparent) 12%,color-mix(in srgb,var(--ground,#F4F0EA) 55%,transparent) 20%,color-mix(in srgb,var(--ground,#F4F0EA) 25%,transparent) 28%,color-mix(in srgb,var(--ground,#F4F0EA) 8%,transparent) 35%,transparent 42%),
  linear-gradient(180deg,var(--ground,#F4F0EA) 0,color-mix(in srgb,var(--ground,#F4F0EA) 60%,transparent) 22px,transparent 64px),
  linear-gradient(180deg,transparent calc(100% - 240px),color-mix(in srgb,var(--ground,#F4F0EA) 30%,transparent) calc(100% - 160px),color-mix(in srgb,var(--ground,#F4F0EA) 62%,transparent) calc(100% - 100px),color-mix(in srgb,var(--ground,#F4F0EA) 85%,transparent) calc(100% - 56px),color-mix(in srgb,var(--ground,#F4F0EA) 95%,transparent) calc(100% - 28px),color-mix(in srgb,var(--ground,#F4F0EA) 99%,transparent) calc(100% - 10px),var(--ground,#F4F0EA) 100%)}
.hero-home.vista .hero-grid{position:relative;z-index:1;width:min(1200px,calc(100% - 2*clamp(20px,5vw,72px)));margin-inline:auto;min-height:calc(100svh - var(--header-h) - 56px);display:grid;grid-template-columns:minmax(0,46%) 1fr;align-items:center;justify-items:start;text-align:left;gap:0}
.hero-home.vista .hero-copy{display:grid;justify-items:start;gap:0;text-align:left;max-width:540px;width:100%;padding:36px 0 40px}
.hero-home.vista .mark{width:clamp(84px,7vw,100px);aspect-ratio:1656.6/1071.1;color:var(--gold-deep);margin:0 0 24px}
.hero-home.vista .tagline{margin:0 0 22px;display:flex;align-items:center;gap:14px;color:var(--gold-deep);font-size:clamp(11px,.9vw,12.5px);letter-spacing:.3em;text-transform:uppercase;font-weight:500}
.hero-home.vista .tagline::before{content:"";width:34px;height:1px;background:var(--gold-deep);flex:none}
.hero-home.vista h1{max-width:none;font-size:clamp(38px,3.55vw,54px);line-height:1.06;margin:0 0 24px;color:var(--olive)}
.hero-home.vista h1 em{display:block;font-style:normal;background:linear-gradient(90deg,var(--gold-deep),var(--gold) 70%,#B9995C);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.1em}
.hero-home.vista .sub{max-width:44ch;color:var(--olive-soft);font-size:clamp(16px,1.2vw,18px);line-height:1.7;margin:0 0 32px}
.hero-home.vista .btn-row{justify-content:flex-start;gap:10px;flex-wrap:wrap;margin:0}
.hero-home.vista .btn{padding:14px 16px;letter-spacing:.13em;gap:9px;font-size:11.5px}
.hero-home.vista .btn-row{gap:8px}
.hero-home.vista .btn.ghost{color:var(--olive);border-color:rgba(51,0,51,.55)}
.hero-home.vista .btn.ghost::after{background:var(--olive)}
.hero-home.vista .btn.ghost:hover{color:var(--beige)}
.hero-home.vista .hp-cap{display:flex;align-items:center;gap:12px;margin:34px 0 0 2px;height:22px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--olive-soft);white-space:nowrap}
.hero-home.vista .hp-n{font-weight:600;color:var(--gold-deep);font-variant-numeric:tabular-nums;min-width:2ch;transition:opacity .6s}
.hero-home.vista .hp-n.swap{opacity:0}
.hero-home.vista .hp-of{color:var(--olive-mute);margin-left:-6px}
.hero-home.vista .hp-rule{position:relative;display:block;width:120px;height:1px;background:rgba(201,169,106,.35);flex:none;overflow:hidden}
.hero-home.vista .hp-fill{position:absolute;inset:0;background:var(--gold-deep);transform:scaleX(0);transform-origin:0 50%}
.hero-home.vista .hp-fill.run{animation:hp-prog var(--dwell,7s) linear both}
.hero-home.vista .hp-caps{position:relative;display:block;flex:1;min-width:0;height:22px;line-height:22px}
.hero-home.vista .hp-caps span{position:absolute;left:0;top:0;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hero-home.vista .hp-caps span.on{opacity:1}
.hero-home.vista .mark,.hero-home.vista .tagline,.hero-home.vista h1,.hero-home.vista .sub,.hero-home.vista .btn-row,.hero-home.vista .hp-cap{animation:hp-rise 1.1s var(--ease) both}
.hero-home.vista .tagline{animation-delay:.12s}.hero-home.vista h1{animation-delay:.22s}.hero-home.vista .sub{animation-delay:.34s}.hero-home.vista .btn-row{animation-delay:.46s}.hero-home.vista .hp-cap{animation-delay:.6s}
@keyframes hv-in{to{opacity:1}}
/* header over the ivory hero: plum type until the page scrolls (site.js adds .on-light on the home page) */
.site-head.on-light:not(.solid){color:var(--olive)}
.site-head.on-light:not(.solid) .brand{color:var(--olive)}
.site-head.on-light:not(.solid) .brand svg{color:var(--gold-deep)}
.site-head.on-light:not(.solid) .nav a{color:var(--olive-soft)}
.site-head.on-light:not(.solid) .nav a:hover,.site-head.on-light:not(.solid) .nav a.active{color:var(--olive)}
.site-head.on-light:not(.solid) .nav .cta{border-color:var(--gold-deep);color:var(--gold-deep)}
.site-head.on-light:not(.solid) .nav .cta:hover{background:var(--gold-deep);color:var(--cream)}
.site-head.on-light:not(.solid) .menu-btn{border-color:rgba(51,0,51,.35);color:var(--olive)}
@media (prefers-reduced-motion:reduce){.hero-home.vista .hv-photo,.hero-home.vista .mark,.hero-home.vista .tagline,.hero-home.vista h1,.hero-home.vista .sub,.hero-home.vista .btn-row,.hero-home.vista .hp-cap{animation:none;opacity:1}.hero-home.vista .hp-fill,.hero-home.vista .hp-fill.run{animation:none;transform:none}}
@media (max-width:1180px) and (min-width:901px){.hero-home.vista .hv-photo{left:44%}.hero-home.vista .hero-grid{grid-template-columns:minmax(0,52%) 1fr}.hero-home.vista h1{font-size:clamp(36px,3.6vw,52px)}.hero-home.vista .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.hero-home.vista .btn-row .btn{justify-content:center}.hero-home.vista .btn-row .btn:first-child{grid-column:1/-1}}
@media (max-height:760px) and (min-width:901px){.hero-home.vista .hero-copy{padding:20px 0 24px}.hero-home.vista .mark{margin-bottom:18px}.hero-home.vista .tagline{margin-bottom:18px}.hero-home.vista h1{margin-bottom:18px}.hero-home.vista .sub{margin-bottom:26px;font-size:16px}.hero-home.vista .hp-cap{margin-top:26px}}
@media (max-width:900px){
  .hero-home.vista{min-height:0;padding:calc(var(--header-h) + 28px) 0 30px}
  .hero-home.vista .hero-grid{min-height:0;grid-template-columns:minmax(0,1fr);align-items:start;order:1}
  .hero-home.vista .hero-copy{max-width:none;padding:0 0 28px}
  .hero-home.vista .mark{width:80px;margin-bottom:20px}
  .hero-home.vista .tagline{letter-spacing:.26em;gap:0;margin-bottom:20px;font-size:11px}
  .hero-home.vista .tagline::before{display:none}
  .hero-home.vista h1{font-size:clamp(34px,9.4vw,44px);margin-bottom:18px}
  .hero-home.vista .sub{margin-bottom:26px;max-width:none}
  .hero-home.vista .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .hero-home.vista .btn-row .btn{justify-content:center;padding:15px 12px;letter-spacing:.14em}
  .hero-home.vista .btn-row .btn:first-child{grid-column:1/-1}
  .hero-home.vista .hp-cap{margin-top:24px;font-size:11.5px}
  .hero-home.vista .hv-photo{position:relative;top:auto;right:auto;bottom:auto;left:auto;order:2;width:100%;height:min(110vw,560px)}
  .hero-home.vista .hv-photo::after{background:linear-gradient(180deg,var(--ground,#F4F0EA) 0,color-mix(in srgb,var(--ground,#F4F0EA) 60%,transparent) 30px,transparent 90px),linear-gradient(180deg,transparent calc(100% - 150px),color-mix(in srgb,var(--ground,#F4F0EA) 40%,transparent) calc(100% - 90px),color-mix(in srgb,var(--ground,#F4F0EA) 80%,transparent) calc(100% - 40px),var(--ground,#F4F0EA) 100%)}
}
/* ---------- home hero, grand (owner, 22 Sep): the plum wall stays; no frame — the photograph fills the right of the first screen and its edges melt into the plum; the header merges with the wall; the plum then melts into the ivory below the fold ---------- */
.hero-home.grand{--top:var(--header-h);--solid:calc(100vh - 10px);--melt:110px;--plum-end:calc(var(--solid) + var(--melt));--padb:74px;--photo-left:27%;
  background:transparent;color:var(--cream);min-height:calc(var(--plum-end) + var(--padb));display:flex;flex-direction:column;align-items:stretch;padding:var(--header-h) 0 var(--padb);position:relative;overflow:hidden}
@supports (height:100svh){.hero-home.grand{--solid:calc(100svh - 10px)}}
.hero-home.grand .veil,.hero-home.grand .scroll-cue{display:none}
.is-index .site-head.solid{border-color:transparent}
.hero-home.grand .hp-ground{position:absolute;left:0;right:0;top:0;height:var(--plum-end);z-index:0;pointer-events:none;background:var(--olive);
  background:linear-gradient(180deg,var(--olive) 0,var(--olive) calc(100% - var(--melt)),color-mix(in oklab,var(--olive) 97%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.85),color-mix(in oklab,var(--olive) 90%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.7),color-mix(in oklab,var(--olive) 78%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.55),color-mix(in oklab,var(--olive) 58%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.4),color-mix(in oklab,var(--olive) 34%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.26),color-mix(in oklab,var(--olive) 15%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.14),color-mix(in oklab,var(--olive) 4%,var(--ground,#F4F0EA)) calc(100% - var(--melt)*.05),var(--ground,#F4F0EA) 100%)}
.hero-home.grand .hv-photo{position:absolute;top:0;right:0;left:var(--photo-left);height:var(--solid);z-index:0;opacity:0;animation:hv-in 1.6s var(--ease) .1s forwards}
.hero-home.grand .slides{position:absolute;inset:0;overflow:hidden;background:transparent;isolation:isolate;z-index:0;-webkit-mask-image:none;mask-image:none}
.hero-home.grand .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:none!important;animation:none!important;filter:none!important;transition:opacity 3s cubic-bezier(.4,0,.2,1)}
.hero-home.grand .slides img.on{opacity:1;z-index:1}
.hero-home.grand .slides img.off{opacity:1;z-index:0}
.hero-home.grand .slides img:nth-child(1){object-position:62% 55%}
.hero-home.grand .slides img:nth-child(4){object-position:55% 40%}
/* the photograph's edges dissolve into the plum wall: left, top and bottom (the pixels in the middle are untouched) */
.hero-home.grand .hv-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,var(--olive) 0,color-mix(in srgb,var(--olive) 92%,transparent) 6%,color-mix(in srgb,var(--olive) 80%,transparent) 15%,color-mix(in srgb,var(--olive) 55%,transparent) 22%,color-mix(in srgb,var(--olive) 28%,transparent) 28%,color-mix(in srgb,var(--olive) 8%,transparent) 33%,transparent 38%)}
.hero-home.grand .hero-grid{position:relative;z-index:1;width:auto;margin-left:max(clamp(18px,3.5vw,48px),calc((100% - 1400px)/2));margin-right:24px;min-height:calc(var(--solid) - var(--header-h));display:grid;grid-template-columns:minmax(0,520px) 1fr;align-items:center;justify-items:start;text-align:left;gap:0}
.hero-home.grand .hero-copy{display:grid;justify-items:start;gap:0;text-align:left;max-width:520px;width:100%;padding:24px 0 36px}
.hero-home.grand .mark{width:clamp(84px,7vw,100px);aspect-ratio:1656.6/1071.1;color:var(--gold);margin:0 0 24px}
.hero-home.grand .tagline{margin:0 0 22px;display:flex;align-items:center;gap:14px;color:var(--gold);font-size:clamp(11px,.9vw,12.5px);letter-spacing:.3em;text-transform:uppercase;font-weight:500}
.hero-home.grand .tagline::before{content:"";width:34px;height:1px;background:var(--gold);flex:none}
.hero-home.grand h1{max-width:none;font-size:clamp(38px,3.55vw,54px);line-height:1.06;margin:0 0 24px;color:var(--cream)}
.hero-home.grand h1 em{display:block;font-style:normal;background:linear-gradient(90deg,var(--gold),var(--gold-light) 70%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.1em}
.hero-home.grand .sub{max-width:44ch;color:var(--cream-mute);font-size:clamp(16px,1.2vw,18px);line-height:1.7;margin:0 0 32px}
.hero-home.grand .btn-row{justify-content:flex-start;gap:8px;flex-wrap:wrap;margin:0}
.hero-home.grand .btn{padding:14px 16px;letter-spacing:.13em;gap:9px;font-size:11.5px}
.hero-home.grand .hp-cap{display:flex;align-items:center;gap:12px;margin:34px 0 0 2px;height:22px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--cream-mute);white-space:nowrap}
.hero-home.grand .hp-n{font-weight:600;color:var(--gold);font-variant-numeric:tabular-nums;min-width:2ch;transition:opacity .6s}
.hero-home.grand .hp-n.swap{opacity:0}
.hero-home.grand .hp-of{color:var(--cream-mute);margin-left:-6px}
.hero-home.grand .hp-rule{position:relative;display:block;width:120px;height:1px;background:rgba(201,169,106,.3);flex:none;overflow:hidden}
.hero-home.grand .hp-fill{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
.hero-home.grand .hp-fill.run{animation:hp-prog var(--dwell,7s) linear both}
.hero-home.grand .hp-caps{position:relative;display:block;flex:1;min-width:0;height:22px;line-height:22px}
.hero-home.grand .hp-caps span{position:absolute;left:0;top:0;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hero-home.grand .hp-caps span.on{opacity:1}
.hero-home.grand .mark,.hero-home.grand .tagline,.hero-home.grand h1,.hero-home.grand .sub,.hero-home.grand .btn-row,.hero-home.grand .hp-cap{animation:hp-rise 1.1s var(--ease) both}
.hero-home.grand .tagline{animation-delay:.12s}.hero-home.grand h1{animation-delay:.22s}.hero-home.grand .sub{animation-delay:.34s}.hero-home.grand .btn-row{animation-delay:.46s}.hero-home.grand .hp-cap{animation-delay:.6s}
@media (prefers-reduced-motion:reduce){.hero-home.grand .hv-photo,.hero-home.grand .mark,.hero-home.grand .tagline,.hero-home.grand h1,.hero-home.grand .sub,.hero-home.grand .btn-row,.hero-home.grand .hp-cap{animation:none;opacity:1}.hero-home.grand .hp-fill,.hero-home.grand .hp-fill.run{animation:none;transform:none}}
@media (max-width:1180px) and (min-width:901px){.hero-home.grand{--photo-left:32%}.hero-home.grand .hero-grid{grid-template-columns:minmax(0,470px) 1fr}.hero-home.grand h1{font-size:clamp(36px,3.6vw,52px)}.hero-home.grand .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.hero-home.grand .btn-row .btn{justify-content:center}.hero-home.grand .btn-row .btn:first-child{grid-column:1/-1}}
@media (max-height:760px) and (min-width:901px){.hero-home.grand{--solid:calc(100vh - 6px)}@supports (height:100svh){.hero-home.grand{--solid:calc(100svh - 6px)}}.hero-home.grand .hero-copy{padding:16px 0 22px}.hero-home.grand .mark{margin-bottom:18px}.hero-home.grand .tagline{margin-bottom:18px}.hero-home.grand h1{margin-bottom:18px}.hero-home.grand .sub{margin-bottom:26px;font-size:16px}.hero-home.grand .hp-cap{margin-top:26px}}
@media (max-width:900px){
  .hero-home.grand{--melt:140px;--padb:64px;min-height:0;padding:calc(var(--header-h) + 28px) 0 var(--padb)}
  .hero-home.grand .hp-ground{height:auto;bottom:var(--padb)}
  .hero-home.grand .hero-grid{min-height:0;grid-template-columns:minmax(0,1fr);align-items:start;order:1;width:min(1200px,calc(100% - 2*clamp(20px,5vw,72px)));margin-inline:auto}
  .hero-home.grand .hero-copy{max-width:none;padding:0 0 28px}
  .hero-home.grand .mark{width:80px;margin-bottom:20px}
  .hero-home.grand .tagline{letter-spacing:.26em;gap:0;margin-bottom:20px;font-size:11px}
  .hero-home.grand .tagline::before{display:none}
  .hero-home.grand h1{font-size:clamp(34px,9.4vw,44px);margin-bottom:18px}
  .hero-home.grand .sub{margin-bottom:26px;max-width:none}
  .hero-home.grand .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .hero-home.grand .btn-row .btn{justify-content:center;padding:15px 12px;letter-spacing:.14em}
  .hero-home.grand .btn-row .btn:first-child{grid-column:1/-1}
  .hero-home.grand .hp-cap{margin-top:24px;font-size:11.5px}
  .hero-home.grand .hv-photo{position:relative;top:auto;right:auto;left:auto;order:2;width:100%;height:min(112vw,580px);margin-bottom:calc(var(--melt) + 10px)}
  .hero-home.grand .hv-photo::after{display:none}
}
.is-index .site-head:not(.solid) .nav a,.is-index .site-head:not(.solid) .brand,.is-index .site-head:not(.solid) .menu-btn{text-shadow:0 1px 14px rgba(32,0,32,.75),0 0 2px rgba(32,0,32,.6)}
/* ---------- home hero, clean bottom edge (owner, 23 Sep): no plum band and no melt under the photograph — the hero is exactly the first screen and ends on one straight line ---------- */
.hero-home.grand{--solid:100vh;--melt:0px;--padb:0px;min-height:var(--solid);padding-bottom:0}
@supports (height:100svh){.hero-home.grand{--solid:100svh}}
.hero-home.grand .hp-ground{height:auto;bottom:0;background:var(--olive)}
.hero-home.grand .hv-photo{height:auto;bottom:0}
.is-index .trusted{padding-top:clamp(64px,9vh,100px)}
@media (max-width:900px){.hero-home.grand{min-height:0;padding-bottom:0}.hero-home.grand .hv-photo{margin-bottom:0}}
/* ---------- home header over the photograph (owner, 23 Sep): the links sit in a small tinted glass capsule — only behind the links, the photo is untouched elsewhere; it dissolves into the normal solid header on scroll ---------- */
.site-head .nav{transition:background .45s var(--ease),border-color .45s var(--ease),padding .45s var(--ease),box-shadow .45s var(--ease);border:1px solid transparent;border-radius:999px}
.is-index .site-head:not(.solid) .nav{background:rgba(32,0,32,.5);-webkit-backdrop-filter:blur(14px) saturate(1.15);backdrop-filter:blur(14px) saturate(1.15);border-color:rgba(201,169,106,.38);padding:5px 5px 5px 24px;box-shadow:0 14px 34px -16px rgba(20,0,20,.55)}
.is-index .site-head:not(.solid) .nav a{color:var(--cream);text-shadow:none}
.is-index .site-head:not(.solid) .nav a:hover{color:var(--gold-light)}
.is-index .site-head:not(.solid) .nav .cta{background:var(--gold);border-color:var(--gold);color:var(--olive-deep);border-radius:999px;padding:10px 18px}
.is-index .site-head:not(.solid) .nav .cta:hover{background:var(--gold-light);border-color:var(--gold-light);color:var(--olive-deep)}
.is-index .site-head:not(.solid) .menu-btn{background:rgba(32,0,32,.5);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-color:rgba(201,169,106,.4);text-shadow:none}
/* ---------- home hero, photo focus (owner, 23 Sep): every slide is centred at 71% of the screen width — inside the clear part of the photograph — instead of the middle of its box (≈63%), part of which lies under the text-side dissolve. Each img box is widened symmetrically around 71% (overflow clipped); landscape slides only shift, no zoom ---------- */
.hero-home.grand{--pl:27;--fx:71}
.hero-home.grand .hv-photo{left:calc(var(--pl) * 1%);overflow:hidden}
.hero-home.grand .slides img{width:calc(100% * 2 * (var(--fx) - var(--pl)) / (100 - var(--pl)));max-width:none;object-position:50% 50%}
.hero-home.grand .slides img:nth-child(1){object-position:50% 58%}
.hero-home.grand .slides img:nth-child(4){object-position:50% 42%}
.hero-home.grand .slides img:nth-child(5){width:100%;object-position:100% 45%}   /* the waiter shot: its subject sits at the image's right edge — keep that edge on the screen edge */
@media (max-width:1180px) and (min-width:901px){.hero-home.grand{--pl:32}}
@media (max-width:900px){.hero-home.grand .hv-photo{left:auto}.hero-home.grand .slides img{width:100%}}
/* ---------- event builder, compact frame (owner, 23 Sep): the whole frame fits one screen and lands centred — no intro paragraph, smaller title, tighter bands and gaps, compact style cards (the one-line description is the card's tooltip) ---------- */
.builder-frame{--bfx:clamp(22px,3.4vw,52px);padding:clamp(22px,2.4vw,34px) var(--bfx) clamp(18px,2vw,26px)}
.builder-frame>.sec-head{gap:10px}
.builder-frame>.sec-head .h2{font-size:clamp(28px,2.5vw,40px)}
.builder-frame .bf-band{margin:0 calc(-1 * var(--bfx) + 26px)}
.builder-frame .bf-band.top{margin-top:14px;margin-bottom:18px}
.builder-frame .bf-band:last-child{margin-top:18px}
.builder-frame .builder{gap:16px}
.builder-frame .bpane{gap:12px}
.builder-frame .bpane h3{font-size:clamp(22px,1.9vw,28px)}
.builder-frame .styles5{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.builder-frame .scard{flex:0 0 calc((100% - 36px)/4);min-height:0;padding:16px 18px 18px;gap:6px}
.builder-frame .scard b{font-size:clamp(19px,1.5vw,22px)}
.builder-frame .scard p{display:none}
.builder-frame .bf-mark{width:clamp(70px,7vw,110px);top:clamp(20px,2.4vw,34px)}
@media (max-width:860px){.builder-frame .scard{flex-basis:calc((100% - 12px)/2)}}
@media (max-width:720px){.builder-frame{padding:22px 16px 20px}.builder-frame .bf-band{margin:0 8px}}
/* ---------- owner round 24 Sep 2026 ---------- */
/* brand lockup: monogram | Catering (Mrs Saint Delafield script) — larger, header and footer */
.brand{gap:16px}
.brand svg{width:66px;height:43px;flex:none}
.brand .brand-bar{display:block;width:1px;height:38px;background:linear-gradient(180deg,transparent,rgba(201,169,106,.85) 18%,rgba(201,169,106,.85) 82%,transparent);flex:none}
/* wordmark: Corbel Light in capitals (owner, 24 Sep). Corbel is a Microsoft font — it cannot be embedded without a paid web licence, so it is
   used from the visitor's own device (every Windows PC) and falls back to Raleway Light, already loaded, on Mac / iOS / Android */
@font-face{font-family:"CHG Wordmark";src:local("Corbel Light"),local("Corbel-Light");font-weight:300;font-style:normal}
.brand .word{font-family:"CHG Wordmark","Raleway",sans-serif;font-weight:300;font-size:26px;line-height:1;letter-spacing:.38em;text-transform:uppercase;padding:2px 0 0;margin-right:-.38em;color:var(--cream);display:block}
.site-foot .brand .word{font-size:28px}
.site-foot .brand svg{width:72px;height:47px}
@media (max-width:600px){.brand{gap:12px}.brand svg{width:54px;height:35px}.brand .brand-bar{height:30px}.brand .word{font-size:19px;letter-spacing:.32em;margin-right:-.32em}}
/* hero: tagline white and small; the sub text is two lines */
.hero-home.grand .tagline{color:#fff;font-size:clamp(10.5px,.78vw,11.5px);letter-spacing:.28em}
.hero-home.grand .tagline::before{background:rgba(255,255,255,.7)}
.hero-home.grand .sub{max-width:48ch}
/* About: closing line of Our Story */
.story-close{margin-top:26px;font-family:var(--display);font-size:clamp(22px,2vw,28px);line-height:1.25;color:var(--gold-deep);max-width:30ch}
/* tiles are information, not links: no lift on hover */
.tile:hover{transform:none;border-color:var(--beige-line)}
.olive .tile:hover{border-color:rgba(243,239,235,.3)}
/* services compare: each column leads to the builder */
.compare .col .col-go{margin-top:6px;justify-self:start;font-size:11px;letter-spacing:.12em;white-space:nowrap}
/* contact: Sama Tower map */
.loc-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(18px,2.4vw,32px);align-items:stretch}
.map{position:relative;overflow:hidden;border:1px solid rgba(201,169,106,.55);background:#E8E2DA;min-height:380px;aspect-ratio:auto;box-shadow:0 40px 80px -60px rgba(32,0,32,.45)}
.loc .btn.ghost{color:var(--cream);border-color:rgba(243,239,235,.5)}
.loc .btn.ghost::after{background:var(--gold)}
.loc .btn.ghost:hover{color:var(--olive-deep)}
.map::after{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.35);pointer-events:none}
.map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.map-pin{position:absolute;left:50%;top:50%;width:0;height:0;display:block}
.map-dot{position:absolute;left:0;top:0;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--olive);border:3px solid var(--gold);box-shadow:0 6px 18px rgba(32,0,32,.45)}
.map-dot::before,.map-dot::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--gold);animation:map-ping 2.4s var(--ease-out) infinite;opacity:0}
.map-dot::after{animation-delay:1.2s}
@keyframes map-ping{0%{transform:scale(1);opacity:.85}100%{transform:scale(3.4);opacity:0}}
.map-label{position:absolute;left:0;bottom:22px;transform:translateX(-50%);white-space:nowrap;background:var(--olive);color:var(--cream);padding:10px 16px 11px;border:1px solid rgba(201,169,106,.6);box-shadow:0 14px 30px -12px rgba(32,0,32,.55);display:grid;gap:2px;text-align:center;transition:transform .35s var(--ease)}
.map-label::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--olive);border-right:1px solid rgba(201,169,106,.6);border-bottom:1px solid rgba(201,169,106,.6);transform:translateX(-50%) rotate(45deg)}
.map-label b{font-family:var(--display);font-weight:400;font-size:20px;line-height:1.1;color:var(--gold-light)}
.map-label small{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--cream-mute)}
.map:hover .map-label{transform:translateX(-50%) translateY(-4px)}
.map-credit{position:absolute;right:14px;bottom:12px;font-size:10.5px;color:var(--olive-soft);background:rgba(246,242,237,.85);padding:2px 8px;border-radius:2px}
.map-credit a{color:inherit}
@media (prefers-reduced-motion:reduce){.map-dot::before,.map-dot::after{animation:none}}
@media (max-width:900px){.loc-grid{grid-template-columns:minmax(0,1fr)}.map{min-height:0;aspect-ratio:4/3.4}}
/* ---------- hero type (owner, 25 Sep): tagline and sub in the wordmark font (Corbel Light, Raleway Light elsewhere), larger headline, larger first sub line ---------- */
.hero-home.grand .hero-grid{grid-template-columns:minmax(0,600px) 1fr}
.hero-home.grand .hero-copy{max-width:600px}
.hero-home.grand .tagline{font-family:"CHG Wordmark","Raleway",sans-serif;font-weight:300;font-size:clamp(12px,.92vw,14px);letter-spacing:.3em;color:#fff}
.hero-home.grand h1{font-size:clamp(42px,4.05vw,62px)}
.hero-home.grand .sub{font-family:"CHG Wordmark","Raleway",sans-serif;font-weight:300;font-size:clamp(17px,1.28vw,19px);line-height:1.6;color:rgba(243,239,235,.86);max-width:50ch}
.hero-home.grand .sub-lead{display:block;font-size:1.24em;line-height:1.4;color:var(--cream);margin-bottom:8px}
@media (max-width:1180px) and (min-width:901px){.hero-home.grand .hero-grid{grid-template-columns:minmax(0,500px) 1fr}.hero-home.grand .hero-copy{max-width:500px}.hero-home.grand h1{font-size:clamp(38px,4.1vw,50px)}}
@media (max-height:760px) and (min-width:901px){.hero-home.grand h1{font-size:clamp(40px,3.7vw,54px)}.hero-home.grand .sub{font-size:16.5px}}
@media (max-width:900px){.hero-home.grand .tagline{font-size:12px;letter-spacing:.24em}.hero-home.grand h1{font-size:clamp(34px,9.4vw,44px)}.hero-home.grand .sub{font-size:16.5px}.hero-home.grand .sub-lead{font-size:1.18em}}
/* ---------- hero headline on four lines (owner, 25 Sep): Rooted in / hospitality. / Designed for / events. — fixed breaks in the markup, larger type ---------- */
.hero-home.grand h1{font-size:clamp(54px,5.2vw,84px);line-height:1.02}
@media (max-width:1180px) and (min-width:901px){.hero-home.grand h1{font-size:clamp(46px,5vw,58px)}}
@media (max-height:760px) and (min-width:901px){.hero-home.grand h1{font-size:clamp(48px,4.5vw,62px)}}
@media (max-width:900px){.hero-home.grand h1{font-size:clamp(40px,12vw,54px);line-height:1.04}}
/* ---------- header lockup back to the earlier, smaller size (owner, 25 Sep) — the footer keeps the larger lockup ---------- */
.site-head .brand{gap:13px}
.site-head .brand svg{width:54px;height:35px}
.site-head .brand .brand-bar{height:30px}
.site-head .brand .word{font-size:19px;letter-spacing:.34em;margin-right:-.34em}
@media (max-width:600px){.site-head .brand{gap:10px}.site-head .brand svg{width:48px;height:31px}.site-head .brand .brand-bar{height:26px}.site-head .brand .word{font-size:15px;letter-spacing:.3em;margin-right:-.3em}}
/* the floating "Plan your event" pill steps aside while the hero's own button is on screen */
.sticky a.rest{display:none}
/* header brand: monogram + "Catering" */
.brand .word{gap:0}
/* diet tags inside the builder */
.dishopt{justify-content:space-between}
.dishopt .tg{display:flex;gap:4px;margin-left:auto;flex:none}
.dishopt .tg b{width:22px;height:22px;border-radius:50%;border:1px solid var(--beige-line);display:grid;place-items:center;font-size:9px;font-weight:700;font-style:normal;color:var(--olive-mute);opacity:.45}
.dishopt .tg b.on{border-color:var(--gold);color:var(--gold-deep);opacity:1}
.diet-key.bd{margin:0 0 14px}

/* ---------- menus & packages (real menu, 22 Sep 2026: packages.json) ---------- */
.menu-panel>.menu-intro{margin-top:40px}
.pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px;align-items:start}
.pk{position:relative;background:#FCFAF7;border:1px solid var(--beige-line);padding:30px 28px 28px;display:grid;gap:22px;align-content:start;box-shadow:0 30px 60px -50px rgba(32,0,32,.35)}
.pk.premium{border-color:var(--gold)}
.pk.premium::before{content:"";position:absolute;inset:7px;border:1px solid rgba(201,169,106,.35);pointer-events:none}
.pk-head{display:grid;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--beige-line)}
.pk-k{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-deep)}
.pk-head h3{font-size:clamp(26px,2.2vw,32px);color:var(--olive);line-height:1.05}
.pk-price{display:flex;align-items:baseline;gap:8px;margin-top:4px}
.pk-price b{font-family:var(--display);font-weight:400;font-size:clamp(30px,2.6vw,38px);line-height:1;color:var(--gold-deep)}
.pk-price span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--olive-mute)}
.pk-meta{font-size:12.5px;letter-spacing:.06em;color:var(--olive-soft);font-weight:500}
.pk-sec h4{font-family:var(--body);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);margin:0 0 8px}
.pk-sec ul{display:grid;gap:0}
.pk-sec li{position:relative;padding:6px 0 6px 18px;font-size:15px;line-height:1.45;color:var(--olive-ink);font-weight:400}
.pk-sec li::before{content:"";position:absolute;left:2px;top:14px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.pk-note{font-size:13px;line-height:1.5;color:var(--olive-mute);font-style:italic;padding-top:14px;border-top:1px dashed var(--beige-line)}
.menu-cols.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dish{align-items:center}
.dish .dtype{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);background:var(--beige-deep);padding:5px 9px;border-radius:999px;white-space:nowrap}
.dish .dtype.t-vegan,.dish .dtype.t-vegetarian{background:rgba(201,169,106,.22);color:var(--gold-deep)}
.bev-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.bev{position:relative;background:#FCFAF7;border:1px solid var(--beige-line);padding:26px 22px;display:grid;gap:12px;align-content:start}
.bev.premium{border-color:var(--gold)}
.bev h3{font-size:24px;color:var(--olive);line-height:1.1}
.bev p{font-size:14.5px;color:var(--olive-ink);font-weight:400}
.bev .bev-al{font-size:13px;color:var(--olive-soft);padding-top:12px;border-top:1px solid var(--beige-line)}
.bev .bev-al span{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);margin-bottom:4px}
.bnotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(51,0,51,.2)}
.bn{padding:28px 28px 30px 0;border-bottom:1px solid rgba(51,0,51,.2);display:grid;gap:10px;align-content:start}
.bn:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid rgba(51,0,51,.12)}
.bn-n{font-family:var(--display);font-size:30px;line-height:1;color:var(--gold-deep)}
.bn h3{font-family:var(--body);font-size:14px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--olive)}
.bn p{font-size:15px;line-height:1.6;color:var(--olive-soft);font-weight:400}
@media (max-width:1100px){.pk-grid,.menu-cols.c3{grid-template-columns:repeat(2,minmax(0,1fr))}.bev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bnotes{grid-template-columns:repeat(2,minmax(0,1fr))}.bn:not(:nth-child(3n+1)){padding-left:0;border-left:0}.bn:nth-child(2n){padding-left:28px;border-left:1px solid rgba(51,0,51,.12)}}
@media (max-width:720px){.pk-grid,.menu-cols.c3,.bev-grid,.bnotes{grid-template-columns:minmax(0,1fr)}.bn:nth-child(2n){padding-left:0;border-left:0}.bn{padding:24px 0}.pk{padding:24px 20px}.tabs{display:flex}.tabs button{padding:10px 14px}}

/* ============================================================
   Event Builder — one section: style → package → menu → details → review
   ============================================================ */
.builder{display:grid;gap:clamp(26px,3.5vh,44px)}
.bsteps{display:flex;gap:0;border:1px solid var(--cream-line);border-radius:999px;overflow:hidden;background:rgba(243,239,235,.04)}
.bsteps li{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--cream-mute);border-right:1px solid var(--cream-line);cursor:pointer;transition:.3s;white-space:nowrap}
.bsteps li:last-child{border-right:0}
.bsteps li i{width:22px;height:22px;border-radius:50%;border:1px solid var(--cream-line);display:grid;place-items:center;font-style:normal;font-size:10px;flex:none}
.bsteps li.on{background:var(--gold);color:var(--olive-deep)}
.bsteps li.on i{border-color:var(--olive-deep)}
.bsteps li.done{color:var(--gold)}
.bsteps li.done i{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}
.bsteps li.locked{opacity:.45;cursor:default}
.bpane{display:none;gap:22px}
.bpane.on{display:grid}
.bpane h3{font-size:clamp(26px,2.6vw,34px);color:var(--cream)}
.bpane .hint{font-size:14.5px;color:var(--cream-mute);max-width:64ch}

/* style cards */
.styles5{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.scard{border:1px solid var(--cream-line);background:rgba(243,239,235,.04);padding:18px 16px 16px;display:grid;gap:8px;align-content:start;cursor:pointer;text-align:left;color:var(--cream);transition:.3s var(--ease);position:relative;min-height:150px}
.scard .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-text)}
.scard b{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.05;color:var(--cream)}
.scard p{font-size:12.5px;color:var(--cream-mute);margin:0}
.scard::after{content:"";position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;border:1px solid var(--gold);transition:.3s}
.scard:hover{border-color:var(--gold);transform:translateY(-3px)}
.scard[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}
.scard[aria-pressed=true] b,.scard[aria-pressed=true] p,.scard[aria-pressed=true] .k{color:var(--olive-deep)}
.scard[aria-pressed=true]::after{background:var(--olive-deep);border-color:var(--olive-deep)}

/* packages / tiers */
.pkgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pkg{border:1px solid var(--cream-line);background:rgba(243,239,235,.04);padding:20px 20px 18px;display:grid;gap:10px;align-content:start;cursor:pointer;text-align:left;color:var(--cream);transition:.3s var(--ease);position:relative}
.pkg b{font-family:var(--display);font-weight:400;font-size:30px;line-height:1;color:var(--gold)}
.pkg .comp{display:flex;flex-wrap:wrap;gap:6px}
.pkg .comp span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--cream-mute);border:1px solid var(--cream-line);padding:4px 9px;border-radius:999px}
.pkg .per{font-size:11.5px;color:var(--gold-text);letter-spacing:.06em}
.pkg .price{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--cream)}
.pkg .price i{font-style:normal;font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-left:4px}
.pkg[aria-pressed=true] .price{color:var(--olive-deep)}
.dishopt.fixed{cursor:default;color:var(--cream);justify-content:flex-start}
.diet-key[hidden]{display:none}
.dishopt.fixed i{background:var(--gold);border-color:var(--gold)}
.dishopt.fixed i::after{opacity:1}
.mcat.set ul{grid-template-columns:minmax(0,1fr)}
.pkg:hover{border-color:var(--gold);transform:translateY(-3px)}
.pkg[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}
.pkg[aria-pressed=true] b{color:var(--olive-deep)}
.pkg[aria-pressed=true] .comp span{color:var(--olive-deep);border-color:rgba(32,0,32,.35)}
.pkg[aria-pressed=true] .per{color:var(--olive-deep)}
.bnote{display:flex;gap:12px;align-items:center;font-size:13.5px;color:var(--cream-mute);border:1px solid var(--cream-line);padding:12px 16px}
.bnote::before{content:"";width:22px;height:22px;flex:none;background:var(--band-olive) center/22px 22px no-repeat}

/* menu picking */
.mlayout{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(22px,3vw,40px);align-items:start}
.mcats{display:grid;gap:18px}
.mcat{border:1px solid var(--cream-line);background:rgba(243,239,235,.03)}
.mcat header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 18px;border-bottom:1px solid var(--cream-line)}
.mcat header b{font-family:var(--display);font-weight:400;font-size:22px;color:var(--cream)}
.mcat header span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--gold-text)}
.mcat header span.full{color:var(--gold)}
.mcat ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:6px 8px}
.mcat li{display:block}
.dishopt{width:100%;display:flex;align-items:center;gap:12px;background:none;border:0;padding:10px 10px;text-align:left;color:var(--cream-mute);font-size:14.5px;cursor:pointer;border-radius:2px;transition:.2s}
.dishopt i{width:18px;height:18px;border-radius:50%;border:1px solid var(--cream-line);flex:none;display:grid;place-items:center;transition:.2s}
.dishopt i::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--olive-deep);opacity:0;transition:.2s}
.dishopt:hover{color:var(--cream);background:rgba(243,239,235,.05)}
.dishopt[aria-pressed=true]{color:var(--cream)}
.dishopt[aria-pressed=true] i{background:var(--gold);border-color:var(--gold)}
.dishopt[aria-pressed=true] i::after{opacity:1}
.dishopt:disabled{opacity:.35;cursor:default}
.pool[hidden]{display:none}
.mcat.need header{animation:mcat-need 1.1s ease 2}
@keyframes mcat-need{50%{background:rgba(201,169,106,.28)}}
.bsteps li.locked{cursor:help}
.pool{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--gold-dim);padding:12px 16px}
.pool b{font-family:var(--display);font-weight:400;font-size:28px;color:var(--gold)}
.pool span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--cream-mute)}
.pool .bar{flex:1;height:2px;background:var(--cream-line);position:relative;margin:0 10px}
.pool .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--gold);width:0;transition:width .3s}

/* live summary card */
.bsum{position:sticky;top:96px;border:1px solid var(--gold-dim);padding:clamp(20px,2.4vw,30px);display:grid;gap:14px;background:rgba(32,0,32,.55)}
.bsum::before{content:"";position:absolute;inset:8px;border:1px solid rgba(201,169,106,.25);pointer-events:none}
.bsum h4{font-family:var(--display);font-weight:400;font-size:26px;color:var(--cream);margin:0}
.bsum .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px}
.bsum .kv span{color:var(--gold-text);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:600;padding-top:3px}
.bsum .kv b{font-weight:400;color:var(--cream)}
.bsum .sel{display:grid;gap:4px;font-size:13px;color:var(--cream-mute);max-height:260px;overflow:auto;padding-right:6px}
.bsum .sel b{color:var(--gold-text);font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px}
.bsum .sel em{font-style:normal;color:var(--cream)}
.bsum .empty{color:var(--cream-mute);font-size:13px}
.bsum .warn{color:var(--alert-soft);font-size:12.5px}

/* details form reuse: .f2 .field from site.css */
.bpane .f2{gap:18px 28px}
.bnav{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}

/* review — the sheet is a one-page proposal card */
.review{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(22px,3vw,44px);align-items:start}
.sheet{background:#F6F2ED;color:var(--olive-ink);position:relative;border:1px solid rgba(201,169,106,.55);box-shadow:0 60px 100px -50px rgba(0,0,0,.75),0 2px 0 rgba(255,255,255,.35) inset}
.sheet::before{content:"";position:absolute;inset:10px;border:1px solid rgba(201,169,106,.55);pointer-events:none}
.sheet::after{content:"";position:absolute;inset:13px;border:1px solid rgba(201,169,106,.22);pointer-events:none}
.sh-band{position:absolute;left:26px;right:26px;top:24px;height:18px;background:var(--band-beige) center/18px 18px repeat-x;opacity:.45;pointer-events:none}
.sh-band.bottom{top:auto;bottom:24px}
.sh-top{padding:60px 40px 26px;text-align:center;display:grid;gap:14px;justify-items:center;position:relative}
.sh-top::after{content:"";width:56px;height:1px;background:var(--gold);opacity:.8}
.sh-brand{display:grid;justify-items:center;gap:6px}
.sh-brand svg{width:72px;height:47px;color:var(--gold);margin-bottom:6px}
.sh-brand b{font-family:var(--display);font-weight:400;font-size:36px;line-height:1;color:var(--olive);letter-spacing:.01em}
.sh-brand b em{font-style:normal;color:var(--gold-deep)}
.sh-brand span{font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:var(--olive-mute)}
.sh-meta{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-deep)}
.sh-meta i{width:4px;height:4px;border-radius:50%;background:var(--gold)}
.sh-body{padding:30px 40px 34px;display:grid;gap:30px}
.sh-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--beige-line);background:rgba(255,255,255,.35)}
.sh-facts>div{padding:18px 12px 16px;text-align:center;display:grid;gap:6px;align-content:start;border-right:1px solid var(--beige-line)}
.sh-facts>div:last-child{border-right:0}
.sh-facts span{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--olive-mute)}
.sh-facts b{font-family:var(--display);font-weight:400;font-size:clamp(17px,1.35vw,21px);line-height:1.15;color:var(--olive);overflow-wrap:anywhere}
.sh-facts small{font-size:12px;color:var(--olive-mute)}
.sh-service{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;text-align:center}
.sh-service .k{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);width:100%}
.sh-service b{font-family:var(--display);font-weight:400;font-size:28px;line-height:1;color:var(--olive)}
.sh-service .chip{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);border:1px solid var(--gold);padding:6px 12px;border-radius:999px}
.sh-service small{width:100%;font-size:13px;color:var(--olive-mute)}
.sh-h{display:flex;align-items:center;gap:18px;margin:0;font-family:var(--body);font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--gold-deep)}
.sh-h::before,.sh-h::after{content:"";flex:1;height:1px;background:var(--beige-line)}
.sh-menu{display:flex;flex-wrap:wrap;justify-content:center;gap:26px 18px;text-align:center}
.sh-menu>div{flex:0 0 calc(33.333% - 12px);min-width:150px}
.sh-menu[data-n="2"]>div,.sh-menu[data-n="4"]>div{flex-basis:calc(50% - 9px)}
.sh-menu b{display:block;font-family:var(--display);font-weight:400;font-size:21px;color:var(--olive);margin-bottom:8px;line-height:1.1}
.sh-menu ul{display:grid;gap:5px;font-size:14px;color:var(--olive-ink);margin:0;padding:0;list-style:none}
.sheet .sh-menu li{line-height:1.35;color:var(--olive-ink)}
.sheet .sh-note{font-size:12.5px;color:var(--olive-mute);text-align:center;margin:-10px auto 0;max-width:56ch;font-style:italic}
.sh-who{text-align:center;display:grid;gap:8px;justify-items:center;margin-top:-8px}
.sh-who .k{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--olive-mute)}
.sheet .sh-who p{margin:0;font-size:14px;color:var(--olive-ink);line-height:1.6}
.sh-who b{font-weight:600;color:var(--olive)}
.sh-notes{display:grid;gap:8px;text-align:center;font-size:13.5px;color:var(--olive-ink);max-width:60ch;margin:-6px auto 0}
.sheet .sh-notes p{margin:0;color:var(--olive-ink);font-size:13.5px}
.sh-notes span{display:block;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--olive-mute);margin-bottom:2px}
.sh-foot{border-top:1px solid var(--beige-line);margin:0 26px;padding:16px 10px 58px;font-size:11px;letter-spacing:.04em;color:var(--olive-mute);text-align:center;display:grid;gap:5px;position:relative}
.sh-foot .sh-band{left:0;right:0}
.share{display:grid;gap:14px;align-content:start}
.share .btn{justify-content:space-between;width:100%}
.share .or{display:flex;align-items:center;gap:12px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-mute);font-weight:600}
.share .or::before,.share .or::after{content:"";flex:1;height:1px;background:var(--cream-line)}
.share p{font-size:13px;color:var(--cream-mute)}
.share .st{font-size:12px;color:var(--gold-text);min-height:1.2em}

@media (max-width:1100px){.styles5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.styles5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.mlayout,.review{grid-template-columns:minmax(0,1fr)}.bsum{position:static}.bsteps li span{display:none}.bsteps li{padding:12px 6px}.bsteps li i{width:26px;height:26px;font-size:11px}}
@media (max-width:720px){.sh-menu>div,.sh-menu[data-n="4"]>div{flex-basis:100%}.styles5{grid-template-columns:minmax(0,1fr)}.pkgs{grid-template-columns:minmax(0,1fr)}.mcat ul{grid-template-columns:minmax(0,1fr)}.sh-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.sh-facts>div:nth-child(2){border-right:0}.sh-facts>div:nth-child(-n+2){border-bottom:1px solid var(--beige-line)}.sh-top{padding:52px 22px 22px}.sh-body{padding:24px 22px 28px}.sh-brand b{font-size:30px}}
