@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;src:url(../assets/fonts/cormorant.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 600;font-display:swap;src:url(../assets/fonts/cormorant-i.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/barlow-500.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/barlow-600.woff2) format('woff2')}

/* ===== tokens: one idea, "the tent is the room, lit like a ceremony" ===== */
:root{
  --green:#0e2a1f;      /* deep green: dominant dark */
  --ivory:#f7f1e5;      /* paper */
  --champ:#dcc896;      /* champagne: support */
  --lime:#7ed957;       /* brand green: thin accent only (line, dot, hover) */
  --ink:#16201a;
  --leaf:#2a6b1a;       /* brand green dark enough for text on light (AA) */
  --muted:#46564b;
  --champ-l:#efe4c9;
  --champ-d:#b79b5e;
  --on-dark:#f3ecdc;
  --on-dark-m:#bccbbd;
  --ring:var(--leaf);
  --display:'Cormorant Garamond','Cormorant',Georgia,'Times New Roman',serif;
  --label:'Barlow Condensed','Arial Narrow',Arial,sans-serif;
  --t12:.75rem;--t14:.875rem;--t16:1rem;--t20:1.25rem;
  --t28:clamp(1.5rem,2.6vw,1.75rem);--t40:clamp(2rem,4.2vw,2.5rem);
  --t64:clamp(2.6rem,6.2vw,4rem);--t96:clamp(3.1rem,8.6vw,6rem);
  --gut:clamp(20px,5vw,72px);
  --sec:clamp(72px,11vw,150px);
  --ease:cubic-bezier(.22,1,.36,1);--ease2:cubic-bezier(.65,0,.35,1);
  --bar:60px;
  /* theme-aware roles (light values here, dark set below) */
  --head:var(--green);--btn-bg:var(--green);--btn-fg:var(--ivory);--hov-bg:var(--green);--hov-fg:var(--ivory);
  --pill-bg:#f7f1e5;--pill-fg:#16201a;--matte:#f7f1e5;--banner:#16201a;--lr:22,32,26;--dim:1;--meta-theme:#0e2a1f;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:76px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--display);font-weight:500;font-size:var(--t20);line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:lining-nums;font-feature-settings:'lnum' 1;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--ring);outline-offset:3px}
.dark :focus-visible,.hero :focus-visible,.bar :focus-visible,.menu :focus-visible,.stickybar :focus-visible{--ring:var(--lime)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ivory);color:var(--ink);padding:12px 16px;font-family:var(--label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:top .2s}
.skip:focus{top:8px}

/* ===== type helpers ===== */
.eyebrow{font-family:var(--label);font-weight:600;font-size:var(--t14);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--lime);flex:none}
.dark .eyebrow,.hero .eyebrow{color:var(--lime)}
.lab{font-family:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:var(--t14)}
h2{font-weight:300;font-size:var(--t64);line-height:1.02;letter-spacing:-.015em}
h2 em,h1 em{font-style:italic;font-weight:300}
.lede{max-width:34em;font-size:var(--t20);color:var(--muted)}
.dark .lede{color:var(--on-dark-m)}
.wrap{width:100%;max-width:1400px;margin-inline:auto;padding-inline:var(--gut)}
section{position:relative}
.sec{padding-block:var(--sec)}

/* ===== buttons ===== */
.btn{--bg:var(--btn-bg);--fg:var(--btn-fg);position:relative;display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:14px 26px;background:var(--bg);color:var(--fg);font-family:var(--label);font-weight:600;font-size:1rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--bg);cursor:pointer;overflow:hidden;transition:background-color .25s var(--ease2),color .25s var(--ease2),transform .25s var(--ease)}
.btn::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.btn:hover::after,.btn:focus-visible::after{transform:scaleX(1)}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{transform:scale(.98)}
.btn.mag{transition:background-color .25s var(--ease2),color .25s var(--ease2)}
.btn.light{--bg:var(--pill-bg);--fg:var(--pill-fg)}
.btn.ghost{--bg:transparent;--fg:var(--on-dark);border-color:rgba(243,236,220,.55)}
.btn.ghost:hover{background:rgba(243,236,220,.1)}
.btn.ghost.ink{--fg:var(--ink);border-color:rgba(var(--lr),.45)}
.btn.ghost.ink:hover{background:rgba(var(--lr),.06)}
.btn.sm{min-height:44px;padding:10px 18px;font-size:.9375rem}
.tl{position:relative;text-decoration:none;font-family:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:var(--t14);display:inline-flex;align-items:center;gap:8px;min-height:44px}
.tl span{background:linear-gradient(var(--lime),var(--lime)) left bottom/0 2px no-repeat;padding-bottom:3px;transition:background-size .45s var(--ease)}
.tl:hover span,.tl:focus-visible span{background-size:100% 2px}
.tl svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.tl:hover svg{transform:translateX(4px)}

/* ===== banner + header ===== */
.banner{background:var(--banner);color:#ebe3d0;font-family:var(--label);font-weight:500;font-size:.8125rem;letter-spacing:.04em;line-height:1.3;text-align:left;padding:8px var(--gut);position:relative;z-index:70}
.banner a{color:inherit;text-underline-offset:3px}
.bar{position:sticky;top:0;z-index:60;height:var(--bar);margin-bottom:calc(var(--bar) * -1);background:var(--green);color:var(--on-dark);display:flex;align-items:center;justify-content:flex-end;gap:14px;padding-inline:var(--gut)}
.plate{position:absolute;left:var(--gut);top:0;width:84px;padding:5px;background:#fff;box-shadow:0 0 0 1px var(--champ-d),0 0 0 5px var(--ivory),0 0 0 6px var(--champ-d);transform-origin:left top;transition:transform .5s var(--ease);z-index:2}
.plate img{width:100%;height:auto}
html.past .plate{transform:scale(.62)}
.nav{display:none}
.menu-btn{width:48px;height:48px;background:none;border:0;color:inherit;display:grid;place-items:center;cursor:pointer;position:relative}
.menu-btn i{position:absolute;left:12px;right:12px;height:2px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
.menu-btn i:nth-child(1){top:18px}.menu-btn i:nth-child(2){top:23px;width:auto}.menu-btn i:nth-child(3){top:28px}
.menu-btn[aria-expanded=true] i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded=true] i:nth-child(2){opacity:0}
.menu-btn[aria-expanded=true] i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;background:var(--green);color:var(--on-dark);padding:calc(var(--bar) + 80px) var(--gut) 40px;display:flex;flex-direction:column;gap:6px;overflow:auto;visibility:hidden;opacity:0;transition:opacity .35s var(--ease2),visibility 0s .35s}
.menu.open{visibility:visible;opacity:1;transition:opacity .35s var(--ease2)}
.menu a.big{font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,9vw,3.4rem);line-height:1.15;text-decoration:none;padding:6px 0;border-bottom:1px solid rgba(243,236,220,.14);display:flex;justify-content:space-between;align-items:baseline}
.menu a.big small{font-family:var(--label);font-size:var(--t14);letter-spacing:.14em;color:var(--lime);font-weight:600}
.menu .m-foot{margin-top:auto;padding-top:28px;display:flex;flex-direction:column;gap:12px}
@media(min-width:1000px){
  :root{--bar:68px}
  .nav{display:flex;gap:clamp(16px,2vw,30px);margin-right:10px}
  .nav a{font-family:var(--label);font-weight:500;font-size:.9375rem;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;padding:12px 0;background:linear-gradient(var(--lime),var(--lime)) left calc(100% - 8px)/0 2px no-repeat;transition:background-size .45s var(--ease)}
  .nav a:hover,.nav a:focus-visible{background-size:100% 2px}
  .menu-btn,.menu{display:none}
  .plate{width:96px}
}
@media(max-width:999px){.bar .btn.call{display:none}}
@media(max-width:420px){.bar .btn.sm{padding-inline:14px;letter-spacing:.1em}.plate{width:76px}.hero .ctas .btn{padding:14px 15px;letter-spacing:.1em;gap:8px}.hero .ctas .btn svg{width:16px;height:16px}}

/* ===== hero (pinned, scroll-linked) ===== */
.hero{position:relative;height:230vh;background:var(--green);color:var(--on-dark)}
.stick{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;background:linear-gradient(180deg,#0a2017 0%,#0e2a1f 48%,#1a3a2b 66%,#2a4a38 78%,#17382a 100%)}
.stage{position:absolute;inset:0}
.stars{position:absolute;inset:0;pointer-events:none}
.poster{position:absolute;left:0;right:0;bottom:calc(var(--bh,46px) + 12px + env(safe-area-inset-bottom));width:100%;height:auto;max-height:52%;transition:opacity .9s var(--ease2) .15s}
.poster.off{opacity:0}
.cv{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .9s var(--ease2)}
.cv.on{opacity:1}
.copy{position:relative;z-index:3;padding:calc(var(--bar) + 38px) var(--gut) 0;max-width:1400px;margin-inline:auto;pointer-events:none}
.copy>*{pointer-events:auto}
.hero .eyebrow{font-size:.8125rem;max-width:30em;line-height:1.3;letter-spacing:.12em}
.hero h1{font-weight:300;font-size:clamp(2.6rem,10.6vw,3.4rem);line-height:.98;letter-spacing:-.02em;margin-top:18px;max-width:11.5em;color:var(--on-dark)}
.hero h1 em{color:var(--champ)}
.hero .sub{margin-top:16px;max-width:26em;font-size:1.125rem;line-height:1.4;color:var(--on-dark-m)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.hero .ctas .btn{min-height:52px}
.glide{animation:glide .8s var(--ease) both;animation-delay:calc(var(--i,0)*80ms + 60ms)}
@keyframes glide{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.cue{position:absolute;z-index:3;left:var(--gut);bottom:calc(var(--bh,46px) + 20px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px;font-family:var(--label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:var(--t12);color:var(--on-dark-m)}
.cue .track{width:56px;height:2px;background:rgba(243,236,220,.22);position:relative;overflow:hidden}
.cue .track b{position:absolute;inset:0;background:var(--lime);transform-origin:left;transform:scaleX(var(--p,0))}
.cue .stg{display:none}
.pause{position:absolute;z-index:4;right:var(--gut);bottom:calc(var(--bh,46px) + 12px + env(safe-area-inset-bottom));min-height:44px;padding:8px 14px;background:rgba(14,42,31,.7);color:var(--on-dark);border:1px solid rgba(243,236,220,.4);font-family:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:var(--t12);display:flex;align-items:center;gap:10px;cursor:pointer;transition:background-color .2s}
.pause:hover{background:rgba(243,236,220,.14)}
.pause svg{width:14px;height:14px}
.pause .ic-play{display:none}
html.motion-off .pause .ic-play{display:block}html.motion-off .pause .ic-pause{display:none}
.bulb{animation:tw 3.2s ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes tw{0%,100%{opacity:.55}50%{opacity:1}}
.flag{transform-origin:left center;animation:flag 3.4s ease-in-out infinite}
@keyframes flag{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.9)}}
html.motion-off .bulb,html.motion-off .flag,html.motion-off .glide{animation:none}
@media(min-width:1000px){
  .hero h1{font-size:clamp(4rem,6.1vw,6.6rem);max-width:7.4em}
  .copy{padding-top:calc(var(--bar) + 78px);max-width:none}
  .copy>*{max-width:min(38vw,620px)}
  .hero .sub{font-size:1.3rem}
  .poster{left:auto;right:0;width:62%;bottom:15%;max-height:none}
  .cue .stg{display:flex;gap:18px}
  .cue .stg span{opacity:.5;transition:opacity .4s var(--ease2)}
  .cue .stg span.on{opacity:1;color:var(--on-dark)}
  .pause{bottom:calc(var(--bh,46px) + 14px)}
}
@media(min-width:1000px) and (max-height:760px){.hero h1{font-size:clamp(3.4rem,5.4vw,5.4rem)}}
@media(min-width:700px) and (max-width:999px){
  .hero h1{font-size:clamp(3.6rem,8vw,5.2rem)}
  .copy{padding-top:calc(var(--bar) + 50px)}
  .poster{max-height:46%}
}

/* ===== why ===== */
.why{background:var(--ivory)}
.why .grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
.big-num{font-weight:300;font-size:clamp(9rem,38vw,16rem);line-height:.74;letter-spacing:-.05em;color:var(--head);display:flex;align-items:flex-start}
.big-num sup{font-family:var(--label);font-weight:600;font-size:var(--t14);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf);margin:10px 0 0 10px;max-width:9em;line-height:1.3;vertical-align:top}
.why h2{margin:22px 0 14px}
.why ol{margin-top:40px;display:grid;gap:0;counter-reset:w}
.why li{position:relative;padding:22px 0 22px 0;border-top:1px solid rgba(var(--lr),.16);display:grid;gap:6px}
.why li::before{content:"";position:absolute;left:0;top:-1px;width:44px;height:2px;background:var(--lime)}
.why li h3{font-weight:500;font-size:var(--t28);line-height:1.1;margin-top:6px}
.why li p{color:var(--muted);font-size:1.125rem;max-width:34em}
.why li q{font-style:italic;color:var(--ink)}
.why li cite{font-family:var(--label);font-style:normal;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:var(--t12);color:var(--leaf);display:block;margin-top:4px}
@media(min-width:900px){
  .why .grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:start}
  .why .left{position:sticky;top:110px}
  .why ol{margin-top:0}
  .why li{padding-block:30px}
}

/* ===== tent styles rail ===== */
.styles{background:var(--champ-l);overflow:hidden}
.styles .head{display:grid;gap:18px}
.styles .head .ctrl{display:flex;gap:10px;align-items:center}
.arrow{width:52px;height:52px;border:1px solid rgba(var(--lr),.5);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background-color .25s var(--ease2),color .25s,transform .25s var(--ease)}
.arrow:hover{background:var(--hov-bg);color:var(--hov-fg)}
.arrow:active{transform:scale(.95)}
.arrow svg{width:20px;height:20px}
.arrow[disabled]{opacity:.35;cursor:default;pointer-events:none}
.rail{display:flex;gap:clamp(16px,2.4vw,36px);overflow-x:auto;scroll-snap-type:x proximity;padding:44px var(--gut) 34px;margin-top:10px;scrollbar-width:thin;scrollbar-color:var(--champ-d) transparent;overscroll-behavior-x:contain}
.rail:focus-visible{outline-offset:-4px}
.slide{flex:0 0 min(76vw,440px);scroll-snap-align:start;display:flex;flex-direction:column;gap:16px}
.slide:nth-child(even){margin-top:clamp(28px,5vw,72px)}
.fr{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--matte)}
.fr img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03) sepia(.1) brightness(var(--dim));transition:transform 1.1s var(--ease)}
.fr.plate-img img{object-fit:contain;padding:8%;mix-blend-mode:multiply;filter:none;background:transparent}
.slide:hover .fr img{transform:scale(1.04)}
.tag{position:absolute;left:12px;top:12px;background:rgba(14,42,31,.86);color:var(--on-dark);font-family:var(--label);font-weight:600;font-size:var(--t12);letter-spacing:.12em;text-transform:uppercase;padding:6px 10px}
.num{font-family:var(--label);font-weight:600;letter-spacing:.14em;font-size:var(--t14);color:var(--leaf)}
.slide h3{font-weight:300;font-size:var(--t40);line-height:1;letter-spacing:-.01em}
.slide h3 em{font-style:italic}
.slide p{font-size:1.125rem;color:var(--muted);line-height:1.4}
.slide .sz{font-family:var(--label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:var(--t14);color:var(--ink)}
.rail-prog{margin:0 var(--gut);height:2px;background:rgba(var(--lr),.16);position:relative;overflow:hidden}
.rail-prog b{position:absolute;inset:0;background:var(--lime);transform-origin:left;transform:scaleX(.2)}
@media(min-width:900px){.styles .head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}.styles .head .ctrl{justify-content:flex-end}}

/* ===== events ===== */
.events{background:var(--ivory)}
.events .row{display:grid;gap:30px}
.giant{font-weight:300;font-size:clamp(4.4rem,22vw,13.5rem);line-height:.82;letter-spacing:-.045em;color:var(--head);margin-left:-.04em}
.giant em{font-style:italic;color:var(--leaf)}
.fig{position:relative}
.fig img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03) sepia(.1) brightness(var(--dim));transition:transform 1.2s var(--ease)}
.fig .imgbox{overflow:hidden;aspect-ratio:16/11;position:relative}
.fig:hover img{transform:scale(1.04)}
.fig figcaption{margin-top:10px;font-family:var(--label);font-weight:500;letter-spacing:.06em;font-size:var(--t14);color:var(--muted)}
.ev-list{margin-top:10px}
.ev-list li{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-top:1px solid rgba(var(--lr),.16);font-weight:300;font-size:clamp(1.9rem,6vw,3.6rem);line-height:1.05;letter-spacing:-.015em}
.ev-list li:last-child{border-bottom:1px solid rgba(var(--lr),.16)}
.ev-list .n{font-family:var(--label);font-weight:600;font-size:var(--t14);letter-spacing:.14em;color:var(--leaf);min-width:2em}
.ev-list em{font-style:italic;color:var(--muted)}
.events .small-fig{max-width:340px}
@media(min-width:900px){
  .events .row{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 clamp(16px,2vw,28px);align-items:start}
  .events .giant-wrap{grid-column:1/9;grid-row:1;z-index:2;position:relative;padding-top:20px}
  .events .main-fig{grid-column:6/13;grid-row:1/3;margin-top:70px}
  .events .ev-list{grid-column:1/6;grid-row:2;margin-top:48px;position:relative;z-index:2}
  .events .small-fig{grid-column:8/12;grid-row:3;margin-top:-40px}
  .events .intro{grid-column:1/6;grid-row:3;align-self:end}
}
@media(max-width:899px){.events .small-fig{margin-left:auto}}

/* ===== rentals index ===== */
.rentals{background:var(--green);color:var(--on-dark)}
.rentals h2{color:var(--on-dark)}
.rentals .grid{display:grid;gap:36px}
.idx{display:grid}
.idx li{border-top:1px solid rgba(243,236,220,.18)}
.idx li:last-child{border-bottom:1px solid rgba(243,236,220,.18)}
.idx a{display:grid;grid-template-columns:auto 76px minmax(0,1fr) auto;gap:14px 18px;align-items:center;padding:16px 0;text-decoration:none;position:relative;transition:padding-left .45s var(--ease)}
.idx a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(243,236,220,.05);transition:width .45s var(--ease)}
.idx a:hover,.idx a:focus-visible{padding-left:10px}
.idx a:hover::before,.idx a:focus-visible::before{width:100%}
.idx .n{font-family:var(--label);font-weight:600;font-size:var(--t14);letter-spacing:.14em;color:var(--lime);position:relative}
.idx .th{width:76px;height:76px;background:var(--matte);overflow:hidden;position:relative}
.idx .th img{width:100%;height:100%;object-fit:contain;padding:5px;mix-blend-mode:multiply}
.idx .th.ph img{object-fit:cover;padding:0}
.idx h3{font-weight:400;font-size:clamp(1.5rem,5vw,2.4rem);line-height:1.05;position:relative}
.idx p{font-size:1.0625rem;line-height:1.35;color:var(--on-dark-m);margin-top:4px;position:relative}
.idx .go{width:44px;height:44px;display:grid;place-items:center;color:var(--lime);position:relative}
.idx .go svg{width:20px;height:20px;transition:transform .35s var(--ease)}
.idx a:hover .go svg{transform:translateX(5px)}
@media(max-width:560px){.idx a{grid-template-columns:76px minmax(0,1fr) 36px}.idx .n{display:none}}
@media(min-width:960px){
  .rentals .grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(40px,6vw,100px);align-items:start}
  .rentals .left{position:sticky;top:110px}
  .idx .th{width:104px;height:104px}
  .idx a{grid-template-columns:44px 104px minmax(0,1fr) 44px;padding:18px 0}
}
.rentals .lede{margin:22px 0 28px}

/* ===== reviews ===== */
.reviews{background:var(--champ-l)}
.reviews .top{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.stars-row{display:flex;gap:4px;align-items:center;font-family:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:var(--t14);color:var(--ink)}
.stars-row svg{width:20px;height:20px;fill:var(--champ-d)}
.feature{margin-top:clamp(34px,5vw,64px);max-width:min(100%,17em)}
.feature blockquote{font-weight:300;font-size:clamp(2.4rem,6.4vw,4.9rem);line-height:1;letter-spacing:-.02em}
.feature cite,.rv-q cite{display:block;font-style:normal;margin-top:20px;font-family:var(--label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:var(--t14);color:var(--leaf)}
.feature .more{display:block;margin-top:18px;font-size:1.125rem;color:var(--muted);max-width:32em}
.qs{margin-top:clamp(40px,6vw,80px);display:grid;gap:34px}
.rv-q{border-top:2px solid var(--ink);padding-top:16px}
.rv-q blockquote{font-size:clamp(1.4rem,3.4vw,1.75rem);line-height:1.2;font-weight:500}
.rv-q cite span{color:var(--muted)}
.reviews .foot{margin-top:46px}
@media(min-width:800px){
  .qs{grid-template-columns:repeat(6,minmax(0,1fr));gap:40px clamp(20px,3vw,48px)}
  .rv-q:nth-child(1){grid-column:1/4}
  .rv-q:nth-child(2){grid-column:4/7;margin-top:70px}
  .rv-q:nth-child(3){grid-column:2/5}
  .rv-q:nth-child(4){grid-column:5/7;margin-top:46px}
  .rv-q:nth-child(5){grid-column:1/4}
}

/* ===== booking ===== */
.booking{background:var(--ivory);overflow:hidden}
.booking h2{max-width:10em}
.steps{margin-top:clamp(36px,6vw,80px);display:grid;gap:0}
.step{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 22px;padding:26px 0;border-top:1px solid rgba(var(--lr),.16);align-items:start}
.step .no{font-weight:300;font-size:clamp(6rem,24vw,12rem);line-height:.72;letter-spacing:-.05em;color:var(--head);grid-row:1/3;min-width:.58em}
.step h3{font-weight:500;font-size:var(--t40);line-height:1.02;padding-top:6px}
.step p{font-size:1.1875rem;color:var(--muted);max-width:28em}
.step p q{font-style:italic;color:var(--ink)}
.step .line{display:block;height:2px;width:40px;background:var(--lime);margin-bottom:12px}
.pitch{margin-top:44px;padding:18px 0 0;border-top:1px solid rgba(var(--lr),.16);font-family:var(--label);font-weight:500;letter-spacing:.06em;font-size:var(--t16);color:var(--muted);display:flex;gap:14px;align-items:center}
.pitch::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime);flex:none}
@media(min-width:900px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(18px,3vw,48px)}
  .step{grid-template-columns:minmax(0,1fr);border-top:0;padding:0;border-left:1px solid rgba(var(--lr),.16);padding-left:clamp(18px,2.4vw,32px)}
  .step:nth-child(2){margin-top:90px}
  .step:nth-child(3){margin-top:180px}
  .step .no{grid-row:auto;font-size:clamp(10rem,17vw,17rem);margin-bottom:22px}
}

/* ===== faq ===== */
.faq{background:var(--champ-l)}
.faq .grid{display:grid;gap:34px}
.faq details{border-top:1px solid rgba(var(--lr),.3)}
.faq details:last-child{border-bottom:1px solid rgba(var(--lr),.3)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px 0;min-height:64px;font-weight:500;font-size:clamp(1.3rem,3.6vw,1.75rem);line-height:1.15}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;width:20px;height:20px;flex:none}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--ink);transition:transform .4s var(--ease)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq details>div{padding:0 0 26px;max-width:36em;color:var(--muted);font-size:1.1875rem;animation:open .5s var(--ease) both}
@keyframes open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.faq summary:hover{color:var(--leaf)}
@media(min-width:900px){.faq .grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,7vw,110px)}.faq .left{position:sticky;top:110px;align-self:start}}

/* ===== service area ===== */
.area{background:var(--green);color:var(--on-dark)}
.area h2{color:var(--on-dark)}
.area .grid{display:grid;gap:44px}
.place{font-weight:300;font-size:clamp(4rem,19vw,11rem);line-height:.86;letter-spacing:-.04em;color:var(--on-dark)}
.place small{display:block;font-family:var(--label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:var(--t14);color:var(--lime);margin-bottom:10px;line-height:1.4}
.place.two{padding-bottom:.12em;color:var(--champ);font-style:italic;margin-top:clamp(10px,2vw,26px);margin-left:clamp(0px,8vw,120px)}
.area .note{font-size:1.1875rem;color:var(--on-dark-m);max-width:30em;margin-top:26px}
.area .note b{color:var(--on-dark);font-weight:600}
.sketch{width:100%;max-width:560px;justify-self:start}
.sketch figcaption{margin-top:12px;font-family:var(--label);font-weight:500;letter-spacing:.06em;font-size:var(--t14);color:var(--on-dark-m)}
@media(min-width:900px){.area .grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(30px,5vw,80px);align-items:center}.sketch{justify-self:end}}

/* ===== contact ===== */
.contact{background:var(--ivory)}
.contact .grid{display:grid;gap:40px}
.phone{display:inline-block;font-weight:300;font-size:clamp(2.7rem,12.6vw,7.4rem);line-height:1;letter-spacing:-.03em;text-decoration:none;color:var(--head);background:linear-gradient(var(--lime),var(--lime)) left calc(100% - 2px)/0 3px no-repeat;transition:background-size .6s var(--ease);padding-bottom:6px;white-space:nowrap}
.phone:hover,.phone:focus-visible{background-size:100% 3px}
.cinfo{display:grid;gap:26px}
.cinfo dt{font-family:var(--label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:var(--t14);color:var(--leaf);margin-bottom:4px}
.cinfo dd{font-size:var(--t20)}
.cinfo a{text-underline-offset:4px;overflow-wrap:anywhere}
@media(min-width:900px){.contact .grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(30px,6vw,100px);align-items:end}.cinfo{grid-template-columns:1fr 1fr}}

/* ===== footer ===== */
.foot-main{background:var(--green);color:var(--on-dark);padding:clamp(56px,8vw,100px) 0 calc(40px + 64px)}
.foot-main .cols{display:grid;gap:40px}
.foot-main .plate-f{width:140px;background:#fff;padding:7px;box-shadow:0 0 0 1px var(--champ-d),0 0 0 6px var(--green),0 0 0 7px var(--champ-d)}
.foot-main h2{font-size:var(--t28);font-weight:500;letter-spacing:0;line-height:1.1;margin-bottom:12px;font-family:var(--label);text-transform:uppercase;letter-spacing:.14em;color:var(--lime);font-size:var(--t14);font-weight:600}
.foot-main ul{display:grid;gap:2px}
.foot-main li a,.foot-main address a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none;font-size:1.0625rem;color:var(--on-dark);background:linear-gradient(var(--lime),var(--lime)) left calc(50% + 12px)/0 1px no-repeat;transition:background-size .4s var(--ease)}
.foot-main li a:hover,.foot-main address a:hover,.foot-main li a:focus-visible{background-size:100% 1px}
.foot-main address{font-style:normal;font-size:1.0625rem;line-height:1.5;color:var(--on-dark-m);display:grid;gap:2px}
.foot-main .name{font-weight:400;font-size:var(--t28);color:var(--on-dark);line-height:1.1;margin:18px 0 8px}
.foot-note{margin-top:46px;padding-top:22px;border-top:1px solid rgba(243,236,220,.18);display:grid;gap:8px;font-family:var(--label);font-weight:500;letter-spacing:.05em;font-size:var(--t14);color:var(--on-dark-m)}
.foot-note a{color:var(--on-dark)}
@media(min-width:900px){.foot-main .cols{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr) minmax(0,3fr);gap:48px}.foot-main{padding-bottom:60px}}
.foot-main .cat-col{display:grid;gap:2px}

/* ===== sticky mobile bar ===== */
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1.4fr;background:var(--green);border-top:2px solid var(--lime);padding-bottom:env(safe-area-inset-bottom);transform:translateY(110%);transition:transform .5s var(--ease);visibility:hidden}
.stickybar.show{transform:none;visibility:visible}
.stickybar a{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;color:var(--on-dark);font-family:var(--label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;font-size:1rem}
.stickybar a+a{background:var(--pill-bg);color:var(--pill-fg)}
.stickybar svg{width:18px;height:18px}
@media(min-width:900px){.stickybar{display:none}}

/* ===== reveals ===== */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--d,0)*80ms)}
.js .rv.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .glide{animation:none}
  .hero{height:auto}
  .stick{position:relative}
}

/* ===== dark theme: same brand green (#7ED957), same deep green bands, same champagne; only page backgrounds and text flip ===== */
html[data-theme="dark"]{
  --ivory:#060d09;      /* page: near-black with the logo's black, tinted green */
  --champ-l:#0b1c13;    /* alternate sections */
  --ink:#f3ecdc;
  --muted:#bccbbd;
  --leaf:#7ed957;       /* exact logo green, text on dark (10:1+) */
  --champ-d:#c9ad6b;
  --head:#dcc896;       /* big numerals + headlines in champagne */
  --btn-bg:#7ed957;--btn-fg:#050505;
  --hov-bg:#7ed957;--hov-fg:#050505;
  --banner:#000;
  --lr:243,236,220;
  --dim:.88;
  --meta-theme:#060d09;
  color-scheme:dark;
}
html[data-theme="light"]{color-scheme:light}
/* deep green bands keep the light-theme green; give them a hairline so they read against the near-black page */
html[data-theme="dark"] .rentals,html[data-theme="dark"] .area,html[data-theme="dark"] .foot-main{box-shadow:inset 0 1px 0 rgba(220,200,150,.16)}
/* warm string lights: a garland under the header + glow behind the hero tent */
.bar::after{content:"";position:absolute;left:0;right:0;top:100%;height:20px;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:radial-gradient(circle at 50% 9px,#ffe3b0 0 2.2px,rgba(255,186,104,.55) 3.2px,rgba(255,186,104,0) 10px) 0 0/46px 20px repeat-x,linear-gradient(rgba(220,200,150,.38),rgba(220,200,150,.38)) 0 0/100% 1px no-repeat}
html[data-theme="dark"] .bar::after{opacity:1;animation:gl 3.8s ease-in-out infinite}
@keyframes gl{0%,100%{opacity:.78}50%{opacity:1}}
html.motion-off .bar::after{animation:none}
.stick::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:radial-gradient(ellipse 70% 46% at 66% 86%,rgba(255,176,86,.20),rgba(255,176,86,0) 70%),radial-gradient(ellipse 50% 30% at 18% 6%,rgba(126,217,87,.06),rgba(126,217,87,0) 70%)}
html[data-theme="dark"] .stick::before{opacity:1}
.plate{transition:transform .5s var(--ease),box-shadow .3s ease}
html[data-theme="dark"] .plate{box-shadow:0 0 0 1px var(--champ-d),0 0 0 5px #060d09,0 0 0 6px var(--champ-d),0 0 26px 8px rgba(255,190,110,.22)}
/* catalog photos sit on a light matte in both themes; keep them from glaring at night */
html[data-theme="dark"] .fr.plate-img img,html[data-theme="dark"] .idx .th img{filter:brightness(.93)}
html[data-theme="dark"] .rail{scrollbar-color:#6d5d36 transparent}
html[data-theme="dark"] .faq summary i::before,html[data-theme="dark"] .faq summary i::after{background:var(--ink)}

/* ===== theme toggle (shared block; per-design colors set through --thm-* below) ===== */
.thm{position:relative;flex:none;line-height:1}
.thm-btn{width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;cursor:pointer;background:var(--thm-bg);color:var(--thm-fg);border:1px solid var(--thm-bd);transition:transform .25s cubic-bezier(.22,1,.36,1)}
.thm-btn:active{transform:scale(.94)}
.thm-btn svg{width:22px;height:22px}
.thm-btn .i-sun,.thm-btn .i-moon,.thm-btn .i-auto{display:none}
html[data-theme-mode=auto] .thm-btn .i-auto,html[data-theme-mode=light] .thm-btn .i-sun,html[data-theme-mode=dark] .thm-btn .i-moon{display:block}
.thm-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:90;width:max-content;min-width:236px;max-width:min(300px,calc(100vw - 24px));padding:6px;background:var(--thm-pop-bg);color:var(--thm-pop-fg);border:1px solid var(--thm-pop-bd);box-shadow:0 14px 34px rgba(0,0,0,.35);text-align:left}
.thm-menu[hidden]{display:none}
.thm-menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:6px 12px;background:transparent;color:inherit;border:0;cursor:pointer;text-align:left;font-family:var(--thm-font,inherit);transition:background-color .2s}
.thm-menu button:hover{background:rgba(127,127,127,.18)}
.thm-menu button[aria-pressed=true]{background:var(--thm-on-bg);color:var(--thm-on-fg)}
.thm-menu button[aria-pressed=true] small{color:inherit}
.thm-menu button[aria-disabled=true]{cursor:not-allowed}
.thm-menu button[aria-disabled=true]:not([aria-pressed=true]){opacity:.7}
.thm-menu b{display:block;font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.thm-menu small{display:block;font-size:.8125rem;color:var(--thm-mute);letter-spacing:.02em;text-transform:none;font-weight:500}
.thm-ic svg{width:22px;height:22px;display:block}
.thm-ic .i-sun,.thm-ic .i-moon,.thm-ic .i-auto{display:block}
.thm-note{margin:6px 6px 4px;padding-top:8px;border-top:1px solid var(--thm-pop-bd);font-size:.8125rem;line-height:1.4;color:var(--thm-mute)}
html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .3s ease,color .3s ease,border-color .3s ease,fill .3s ease,stroke .3s ease,box-shadow .3s ease,opacity .3s ease!important}
@media(prefers-reduced-motion:reduce){html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:none!important}}

.thm-btn{--thm-bg:rgba(243,236,220,.08);--thm-fg:#f3ecdc;--thm-bd:rgba(243,236,220,.55);border-radius:0}
.thm-menu{--thm-pop-bg:#0e2a1f;--thm-pop-fg:#f3ecdc;--thm-pop-bd:#dcc896;--thm-on-bg:#7ed957;--thm-on-fg:#0b1a12;--thm-mute:#bccbbd;--thm-font:var(--label);font-family:var(--label)}
.thm-menu button:focus-visible,.thm-btn:focus-visible{outline-color:#7ed957}

[data-theme-slot]{display:block;width:44px;height:44px;flex:none}
