/* D2 Plan Your Event. One idea: plan it on the page, like a site plan. */
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(../assets/fonts/bc600.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(../assets/fonts/bc700.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-style:normal;font-display:swap;src:url(../assets/fonts/bc800.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-weight:400 700;font-style:normal;font-display:swap;src:url(../assets/fonts/ps.woff2) format("woff2")}

:root{
  --ink:#111312; --paper:#F6F2E8; --green:#7ED957; --terra:#B8482A;
  --paper-2:#ECE6D6; --line:rgba(17,19,18,.16); --muted:#46493f; --green-ink:#2D6A16; --white:#fff;
  --f-d:"Barlow Condensed","Arial Narrow",Impact,sans-serif; --f-t:"Public Sans",system-ui,sans-serif;
  /* scale 12 14 16 20 28 40 64 96 */
  --s-12:.75rem; --s-14:.875rem; --s-16:1rem; --s-20:1.25rem; --s-28:1.75rem; --s-40:clamp(2rem,5vw,2.5rem); --s-64:clamp(2.5rem,7vw,4rem); --s-96:clamp(2.75rem,9.4vw,6rem);
  --ease:cubic-bezier(.22,1,.36,1); --ease-t:cubic-bezier(.65,0,.35,1);
  --gut:clamp(16px,4vw,32px); --sec:clamp(64px,9vw,128px);
  /* theme roles (light values; dark set at the end) */
  --card:#fff; --solid:#111312; --on-solid:#fff; --inv:#111312; --on-inv:#fff; --on-green:#111312;
  --terra-t:#B8482A; --err-bg:#fff5f1; --halo:#fff; --plan-bg:#fff; --tent-in:#f3fbec; --matte:#fff;
  --ink-rgb:17,19,18; --dim:1; --meta-theme:#F6F2E8;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
html.lock{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--s-16)/1.6 var(--f-t);-webkit-font-smoothing:antialiased;overflow-x:hidden}
[hidden]{display:none!important}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--f-d);font-weight:800;text-transform:uppercase;letter-spacing:-.005em;line-height:.95}
p{margin:0 0 1em}
a{color:inherit}
button,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--card)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}
.wrap{width:100%;max-width:1280px;margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:12px;top:-60px;background:var(--solid);color:var(--on-solid);padding:12px 16px;z-index:200;text-decoration:none}
.skip:focus{top:8px}
.ic{width:20px;height:20px;flex:none}
.eyebrow{font:600 var(--s-12)/1.2 var(--f-t);letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.eyebrow .dot{width:10px;height:10px;background:var(--green);border:2px solid var(--ink);display:inline-block}
.lbl{font:600 var(--s-12)/1 var(--f-t);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fine{font-size:var(--s-14);color:var(--muted);max-width:70ch;margin-top:24px}
.ulink{font-weight:600;text-underline-offset:4px;text-decoration-thickness:2px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border:2px solid var(--ink);background:transparent;color:var(--ink);font:700 var(--s-16)/1 var(--f-t);text-decoration:none;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease);letter-spacing:.01em}
.btn:hover{background:var(--inv);color:var(--on-inv)}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--green);color:var(--on-green);box-shadow:4px 4px 0 var(--ink)}
.btn--primary:hover{background:var(--solid);color:var(--green);box-shadow:4px 4px 0 var(--green)}
.btn--ink{background:var(--solid);color:var(--on-solid)}
.btn--ink:hover{background:var(--green);color:var(--on-green)}
.btn--ghost{background:var(--card)}
.btn--text{border-color:transparent;padding:0 4px;min-height:44px;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.btn--text:hover{background:transparent;color:var(--green-ink)}
.magnet{will-change:transform}
.btn[aria-disabled=true]{opacity:.45;pointer-events:none}

/* banner + header */
.banner{background:var(--solid);color:var(--on-solid);font-size:var(--s-12);line-height:1.4;padding:8px var(--gut);text-align:center}
.banner a{color:var(--on-solid);font-weight:600}
.top{position:sticky;top:0;z-index:60;background:var(--card);border-bottom:2px solid var(--ink)}
.top__in{display:flex;align-items:center;gap:16px;min-height:64px}
.brand{display:block;flex:none;width:56px;height:56px}
.brand img{width:56px;height:56px;object-fit:contain}
.nav{display:none;gap:4px;margin-left:12px}
.nav a{padding:12px 10px;font-weight:600;font-size:var(--s-14);text-decoration:none;position:relative}
.nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav a:hover::after{transform:scaleX(1)}
.top__act{display:flex;align-items:center;gap:8px;margin-left:auto}
.top .btn{min-height:44px;padding:0 14px;font-size:var(--s-14)}
.btn--call span{display:none}
.btn--list{background:var(--green);color:var(--on-green)}
.badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;background:var(--solid);color:var(--on-solid);font:700 var(--s-12)/1 var(--f-t);margin-left:2px}
.badge.on{background:var(--terra)}
.menu{width:44px;height:44px;border:2px solid var(--ink);background:var(--card);display:grid;place-content:center;gap:6px;cursor:pointer}
.menu i{display:block;width:20px;height:2px;background:var(--ink);transition:transform .25s var(--ease)}
.menu[aria-expanded=true] i:first-of-type{transform:translateY(4px) rotate(45deg)}
.menu[aria-expanded=true] i:last-of-type{transform:translateY(-4px) rotate(-45deg)}
.nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:var(--card);border-bottom:2px solid var(--ink);padding:8px var(--gut) 16px;margin:0}
.nav.open a{padding:14px 0;font-size:var(--s-20);font-family:var(--f-d);text-transform:uppercase;font-weight:700;border-top:1px solid var(--line)}

/* hero + plan start */
.hero{padding:clamp(24px,5vw,56px) 0 clamp(32px,5vw,64px);border-bottom:2px solid var(--ink);background:var(--paper)}
.hero__grid{display:grid;gap:28px}
h1{font-size:var(--s-96);line-height:.92;margin:0 0 16px;max-width:11.5em}
h1{font-size:clamp(2.5rem,7.4vw,4.1rem)}
.lede{font-size:var(--s-16);max-width:46ch;color:var(--muted);margin-bottom:22px}
.start{display:grid;gap:18px;margin:0;max-width:560px}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0;font:700 var(--s-14)/1.2 var(--f-t);margin-bottom:10px;letter-spacing:.01em}
.guests>label{display:block;font:700 var(--s-14)/1.2 var(--f-t);margin-bottom:10px}
.chips__row{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:2px solid var(--ink);background:var(--card);font:700 var(--s-14)/1 var(--f-t);transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}
.chip:hover span{transform:translateY(-2px)}
.chip input:checked+span{background:var(--inv);color:var(--on-inv);box-shadow:inset 0 -4px 0 var(--green)}
.chip input:focus-visible+span{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--card)}
.chip--sm span{font-weight:600}
.stepper{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
.stepper .step{width:48px;height:48px;border:2px solid var(--ink);background:var(--card);display:grid;place-items:center;cursor:pointer;transition:background .18s,color .18s}
.stepper .step:hover{background:var(--green);color:var(--on-green)}
.stepper .step:active{transform:translateY(1px)}
.stepper input{width:96px;height:48px;border:2px solid var(--ink);border-inline:0;background:var(--card);text-align:center;font:800 var(--s-28)/1 var(--f-d);letter-spacing:.02em;border-radius:0;margin:0 -10px;position:relative;z-index:0}
.stepper input:focus-visible{z-index:1}
.stepper .step:first-child{margin-right:-2px}
.guests.bad input{border-color:var(--terra);background:var(--err-bg)}
.presets{display:flex;gap:6px;margin-left:8px;flex-wrap:wrap}
.presets button{min-width:44px;min-height:44px;border:2px solid var(--line);background:transparent;font:600 var(--s-14) var(--f-t);cursor:pointer;transition:border-color .18s,background .18s}
.presets button:hover{border-color:var(--ink);background:var(--card)}
.hint{font-size:var(--s-12);color:var(--muted);margin:8px 0 0}
.err{font-size:var(--s-14);font-weight:600;color:var(--terra-t);margin:6px 0 0;min-height:0}
.err:empty{display:none}

.plan{margin:0;border:2px solid var(--ink);background:var(--card);box-shadow:8px 8px 0 var(--green);align-self:start;position:relative}
.plan__bar{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:2px solid var(--ink);background:var(--paper)}
.plan__title{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.plan__title strong{font:800 var(--s-28)/1 var(--f-d);text-transform:uppercase}
.dims{font:600 var(--s-14) var(--f-t);color:var(--muted)}
.seg{display:inline-flex;border:2px solid var(--ink);background:var(--card)}
.seg button{min-height:40px;padding:0 14px;border:0;background:transparent;font:700 var(--s-14) var(--f-t);cursor:pointer}
.seg button+button{border-left:2px solid var(--ink)}
.seg button[aria-pressed=true]{background:var(--inv);color:var(--on-inv)}
.plan__stage{position:relative;aspect-ratio:4/3;width:100%;background:var(--plan-bg);overflow:hidden}
#planSvg{position:absolute;inset:0;width:100%;height:100%}
.plan3d{position:absolute;inset:0;cursor:grab;touch-action:pan-y}
.plan3d[hidden]{display:none}
.plan3d canvas{display:block}
.nowebgl{padding:24px;font-weight:600}
.pause{position:absolute;right:8px;bottom:8px;min-height:44px;padding:0 14px;border:2px solid var(--ink);background:var(--card);font:700 var(--s-14) var(--f-t);cursor:pointer}
.pause[hidden]{display:none}
.plan figcaption{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;padding:10px 12px;border-top:2px solid var(--ink);font-size:var(--s-12);line-height:1.4}
.guide{font-weight:700;font-size:var(--s-14)}
.legend{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 14px;color:var(--muted)}
.legend i{display:inline-block;width:12px;height:12px;border:1.5px solid var(--ink);margin-right:5px;vertical-align:-1px}
.k-tent{background:var(--green)}.k-table{background:var(--card);border-radius:50%!important}.k-chair{background:var(--ink)}.k-zone{background:repeating-conic-gradient(var(--terra) 0 25%,var(--card) 0 50%) 0 0/6px 6px}

/* svg plan styles */
.tent-o{fill:var(--green);stroke:var(--ink);stroke-width:2.5}
.tent-i{fill:var(--tent-in);stroke:var(--ink);stroke-width:1;stroke-dasharray:4 3;stroke-opacity:.5}
.floorfx{stroke:none;transition:opacity .4s var(--ease-t)}
.tb{transition:transform .65s var(--ease),opacity .35s var(--ease-t)}
.tb .in{transform-box:fill-box;transform-origin:center}
.tb .pop{animation:pop .6s var(--ease) both}
@keyframes pop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}
.tb-c{fill:var(--card);stroke:var(--ink);stroke-width:1.6;vector-effect:non-scaling-stroke}
.ch{fill:var(--ink)}
.z{transition:transform .65s var(--ease),opacity .35s var(--ease-t)}
.z rect{stroke:var(--ink);stroke-width:1.6}
.z-stage rect{fill:var(--solid)}.z-stage text{fill:var(--on-solid)}
.z-dance rect{stroke:var(--terra)}.z-dance text{fill:var(--ink)}
.z-bar rect{fill:var(--terra)}.z-bar text{fill:var(--card)}
.z-aisle rect{fill:rgba(var(--ink-rgb),.05);stroke-dasharray:5 4;stroke-opacity:.6;stroke-width:1.2}
.z text,.fxg text{font-family:var(--f-d);font-weight:700;letter-spacing:.06em}
.z-aisle text{fill:var(--ink)}
.fx{transition:opacity .4s var(--ease-t)}
.bulb{fill:var(--card);stroke:var(--ink);stroke-width:1;vector-effect:non-scaling-stroke}
.fxg{transition:opacity .4s var(--ease-t)}
.unit circle{fill:var(--card);stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke}
.unit path{stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke}
.unit{transition:transform .65s var(--ease)}
.trailer{fill:var(--card);stroke:var(--ink);stroke-width:1.6;stroke-dasharray:5 3}
.dim path{stroke:var(--ink);stroke-width:1.2;vector-effect:non-scaling-stroke}
.dim text{fill:var(--ink);font-family:var(--f-d);font-weight:700;letter-spacing:.04em}

/* detail */
.detail{padding:var(--sec) 0;background:var(--card);border-bottom:2px solid var(--ink)}
.detail__grid{display:grid;gap:40px}
h2{font-size:var(--s-64);margin-bottom:24px}
.tune fieldset{margin:0 0 22px}
.extras__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tog{position:relative;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:2px solid var(--ink);background:var(--card);font-weight:600;font-size:var(--s-14);cursor:pointer;transition:background .18s,transform .18s var(--ease)}
.tog:hover{transform:translateY(-2px)}
.tog input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;width:100%;height:100%}
.tog:has(input:checked){background:var(--green);color:var(--on-green)}
.tog:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:3px}
.opts{margin:6px 0 20px}
.opts .lbl{display:block;margin-bottom:8px}
.opts__row{display:grid;gap:8px}
.opt{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:baseline;text-align:left;padding:10px 14px;border:2px solid var(--ink);background:var(--card);cursor:pointer;min-height:56px;transition:background .18s,transform .18s var(--ease)}
.opt:hover{transform:translateY(-2px)}
.opt[aria-pressed=true]{background:var(--inv);color:var(--on-inv);box-shadow:inset 0 -4px 0 var(--green)}
.opt .o-l{font:700 var(--s-12) var(--f-t);letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.opt strong{font:800 var(--s-20)/1 var(--f-d);text-transform:uppercase}
.opt .o-d{font-size:var(--s-14)}
.how{border-top:2px solid var(--ink);padding-top:14px;font-size:var(--s-14)}
.how summary{font-weight:700;cursor:pointer;min-height:44px;display:flex;align-items:center}
.how ul{padding-left:20px;margin:0}.how li{margin-bottom:8px}

.sum{border:2px solid var(--ink);background:var(--paper);padding:20px;align-self:start;box-shadow:8px 8px 0 var(--ink)}
.sum h2{font-size:var(--s-40);margin-bottom:14px}
.sum__tent{display:flex;gap:14px;align-items:center;padding:12px;background:var(--card);border:2px solid var(--ink);margin-bottom:6px}
.sum__tent img{width:72px;height:72px;object-fit:contain;flex:none;background:var(--card)}
.sum__tent strong{display:block;font:800 var(--s-28)/1 var(--f-d);text-transform:uppercase}
.sum__tent span,.sum__tent em{display:block;font-size:var(--s-14);color:var(--muted);font-style:normal}
.sum__tent.flash{animation:flash .7s var(--ease)}
@keyframes flash{from{background:var(--green)}to{background:var(--card)}}
.sum__list{list-style:none;margin:0;padding:0}
.sum__list li{display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.sum__list a{text-decoration:none;display:block}
.sum__list .l{display:block;font-weight:700}
.sum__list .s{display:block;font-size:var(--s-14);color:var(--muted)}
.sum__list a:hover .l{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.sum__list b{font:800 var(--s-20)/1 var(--f-d);text-align:right;white-space:nowrap}
.sum__list .none{display:block;padding:16px 0}
.sum__note{font-size:var(--s-14);margin:16px 0}
.sum__act{display:grid;gap:10px}
.sum__act .btn{width:100%}
.sum__fine{font-size:var(--s-12);color:var(--muted);margin:12px 0 0}

/* strip */
.strip{background:var(--solid);color:var(--on-solid);padding:20px 0}
.strip__in{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.strip p{margin:0;font-size:var(--s-14)}
.strip b{display:block;font:800 var(--s-28)/1 var(--f-d);text-transform:uppercase;color:var(--green)}
.strip__note{grid-column:1/-1;font-size:var(--s-12)!important;opacity:.85;border-top:1px solid rgba(255,255,255,.25);padding-top:12px}

/* catalog */
.rentals{padding:var(--sec) 0;background:var(--paper)}
.sec-head{max-width:880px;margin-bottom:32px}
.sec-head h2{margin-bottom:12px}
.sec-lede{max-width:56ch;color:var(--muted)}
.filters{display:grid;gap:16px;padding:16px;border:2px solid var(--ink);background:var(--card);position:relative}
.search label,.filters legend{display:block;font:700 var(--s-12)/1 var(--f-t);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.search__box{display:flex;align-items:center;gap:10px;border:2px solid var(--ink);padding:0 12px;min-height:48px;background:var(--paper)}
.search__box input{flex:1;min-width:0;border:0;background:transparent;outline:0;min-height:44px;font-size:16px}
.search__box:focus-within{outline:3px solid var(--ink);outline-offset:3px}
.gchips__row{display:flex;flex-wrap:wrap;gap:8px}
.fchip{min-height:44px;padding:0 14px;border:2px solid var(--ink);background:var(--card);font:700 var(--s-14) var(--f-t);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .18s,transform .18s var(--ease)}
.fchip i{font-style:normal;font-weight:600;opacity:.7;font-size:var(--s-12)}
.fchip:hover{transform:translateY(-2px)}
.fchip[aria-pressed=true]{background:var(--inv);color:var(--on-inv);box-shadow:inset 0 -4px 0 var(--green)}
.fchip--s{border-width:1.5px;font-weight:600}
.fchip--more{border-style:dashed}
.count{font-size:var(--s-14);margin:16px 0}
.grid{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.tile{display:flex;gap:12px;padding:12px;background:var(--card);border:2px solid var(--ink);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.tile:hover{transform:translateY(-3px);box-shadow:4px 4px 0 var(--green)}
.tile__img{width:88px;height:88px;flex:none;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.tile__img img{width:88px;height:88px;object-fit:contain;transition:transform .5s var(--ease)}
.tile:hover .tile__img img{transform:scale(1.06)}
.tile__img .ph{width:56px;height:56px;color:var(--ink)}
.tile__body{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
.tile h3{font:700 var(--s-20)/1.05 var(--f-d);text-transform:uppercase;overflow-wrap:anywhere}
.meta{font-size:var(--s-12);color:var(--muted);margin:0 0 6px}
.tile__act{margin-top:auto;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.add{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:2px solid var(--ink);background:var(--green);color:var(--on-green);font:700 var(--s-14) var(--f-t);cursor:pointer;transition:background .18s,color .18s}
.add:hover{background:var(--solid);color:var(--green)}
.add[data-in=true]{background:var(--inv);color:var(--on-inv)}
.see{font-size:var(--s-12);font-weight:600;min-height:24px;display:inline-flex;align-items:center;text-underline-offset:3px}
.grid .none{grid-column:1/-1;padding:32px;border:2px dashed var(--ink);background:var(--card)}
.more{margin-top:20px}

/* tent types */
.types{padding:var(--sec) 0;background:var(--card);border-block:2px solid var(--ink)}
.types__list{display:grid;gap:0}
.ty{display:grid;gap:16px;padding:28px 0;border-top:2px solid var(--ink);position:relative}
.ty:last-of-type{border-bottom:2px solid var(--ink)}
.ty__n{font:800 var(--s-64)/.8 var(--f-d);color:var(--green);-webkit-text-stroke:2px var(--ink);position:absolute;right:0;top:20px}
.ty__art{width:min(100%,320px);height:auto;stroke:var(--ink);stroke-width:2.4;fill:none;stroke-linejoin:round;stroke-linecap:round}
.ty__art .fill{fill:var(--green)}
.ty h3{font-size:var(--s-40);margin-bottom:10px}
.ty p{max-width:52ch}
.ty__r{font-weight:600;font-size:var(--s-14)}

/* events */
.events{padding:var(--sec) 0;background:var(--paper)}
.ev{display:grid;gap:28px}
.ev__item{display:grid;gap:14px}
.ev__item figure{margin:0;position:relative;overflow:hidden;border:2px solid var(--ink);aspect-ratio:16/10;background:var(--paper-2)}
.ev__item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);filter:saturate(.92) contrast(1.04)}
.ev__item:hover img{transform:scale(1.04)}
.cimg{position:absolute;left:0;bottom:0;background:var(--solid);color:var(--on-solid);font:600 var(--s-12)/1 var(--f-t);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px}
.ev__item h3{font-size:var(--s-40);margin-bottom:8px}
.ev__item p{max-width:44ch;margin-bottom:14px}

/* why */
.why{padding:var(--sec) 0;background:var(--solid);color:var(--on-solid)}
.why__grid{display:grid;gap:40px}
.why h2{color:var(--on-solid)}
.why .eyebrow .dot{border-color:var(--on-solid)}
.why__quote{font:600 var(--s-28)/1.15 var(--f-d);text-transform:uppercase;color:var(--green);max-width:14em}
.why__quote cite{display:block;font:400 var(--s-14)/1.4 var(--f-t);text-transform:none;color:var(--on-solid);margin-top:8px;font-style:normal}
.why__list{list-style:none;margin:0;padding:0}
.why__list li{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:22px 0;border-top:1px solid rgba(255,255,255,.3);align-items:start}
.why__list .num{font:800 clamp(3.5rem,12vw,5.5rem)/.8 var(--f-d);color:var(--green)}
.why__list h3{font-size:var(--s-28);margin-bottom:6px}
.why__list p{margin:0;max-width:50ch;color:#e8e6df}

/* reviews */
.reviews{padding:var(--sec) 0;background:var(--card);border-bottom:2px solid var(--ink)}
.rev{list-style:none;margin:0;padding:0;display:grid;gap:0}
.rev li{padding:22px 0;border-top:2px solid var(--ink)}
.rev blockquote{margin:0 0 10px;font:700 var(--s-28)/1.08 var(--f-d);text-transform:uppercase;letter-spacing:0}
.rev p{margin:0;font-size:var(--s-14);color:var(--muted)}
.rev b{color:var(--ink)}

/* steps */
.steps{padding:var(--sec) 0;background:var(--green);color:var(--on-green);border-bottom:2px solid var(--ink)}
.steps__list{list-style:none;margin:0 0 32px;padding:0;display:grid;gap:0;counter-reset:s}
.steps__list li{padding:22px 0;border-top:2px solid var(--ink);display:grid;grid-template-columns:64px 1fr;gap:0 16px}
.steps__list .n{grid-row:span 2;font:800 clamp(3.5rem,11vw,5rem)/.8 var(--f-d)}
.steps__list h3{font-size:var(--s-28);margin-bottom:6px}
.steps__list p{margin:0;max-width:52ch}
.steps .eyebrow .dot{background:var(--card)}

/* faq */
.faq{padding:var(--sec) 0;background:var(--paper)}
.faq__grid{display:grid;gap:32px}
.faq details{border-top:2px solid var(--ink)}
.faq details:last-child{border-bottom:2px solid var(--ink)}
.faq summary{list-style:none;cursor:pointer;min-height:64px;padding:16px 44px 16px 0;font:700 var(--s-20)/1.15 var(--f-t);position:relative;display:flex;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-9px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(45deg);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-4px}
.faq details p{padding:0 0 18px;max-width:60ch;margin:0}

/* area */
.area{padding:var(--sec) 0;background:var(--card);border-block:2px solid var(--ink)}
.area__grid{display:grid;gap:32px;align-items:center}
.area__map{margin:0}
.area__map svg{width:100%;height:auto;border:2px solid var(--ink)}
.area__map figcaption{font-size:var(--s-12);color:var(--muted);margin-top:8px}
.m-t{font:700 15px var(--f-d);letter-spacing:.1em;text-transform:uppercase;fill:var(--green-ink)}
.m-l{font:800 20px var(--f-d);text-transform:uppercase;fill:var(--ink);paint-order:stroke;stroke:var(--halo);stroke-width:5px;stroke-linejoin:round}
.m-s{font:500 12px var(--f-t);fill:var(--muted);paint-order:stroke;stroke:var(--halo);stroke-width:4px;stroke-linejoin:round}
.m-t{paint-order:stroke;stroke:var(--halo);stroke-width:4px}

/* contact */
.contact{padding:var(--sec) 0;background:var(--paper)}
.contact__grid{display:grid;gap:32px}
.contact__list{margin:0;display:grid;gap:0;border-top:2px solid var(--ink)}
.contact__list>div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:16px 0;border-bottom:2px solid var(--ink)}
.contact__list dt{font:600 var(--s-12)/1.6 var(--f-t);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.contact__list dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.big{font:800 clamp(2rem,7vw,3rem)/1 var(--f-d);text-decoration:none}
.contact .btn{margin-top:8px}

/* footer */
.foot{background:var(--solid);color:var(--on-solid);padding:56px 0 calc(40px + 72px)}
.foot a{color:var(--on-solid);text-underline-offset:3px}
.foot__grid{display:grid;gap:36px}
.logo-plate{width:104px;height:104px;background:var(--card);padding:6px;margin-bottom:16px}
.logo-plate img{width:100%;height:100%;object-fit:contain}
.foot__name{font:800 var(--s-28)/1 var(--f-d);text-transform:uppercase;margin-bottom:6px}
.foot__h{font-size:var(--s-20);color:var(--green);margin-bottom:14px}
.foot p{margin-bottom:8px;font-size:var(--s-14)}
.foot .btn--primary{margin-top:10px;color:var(--on-green)}
.foot .btn--primary:hover{color:var(--green)}
.foot__cats{list-style:none;margin:0;padding:0;font-size:var(--s-14)}
.foot__cats a{display:inline-block;padding:7px 0;min-height:32px}
.foot__fine{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.25);font-size:var(--s-12);color:#d9d6cc}
.foot__fine p{font-size:var(--s-12);max-width:80ch}

/* sticky bar */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:0;background:var(--card);border-top:2px solid var(--ink);padding-bottom:env(safe-area-inset-bottom);transform:translateY(110%);transition:transform .35s var(--ease)}
.sticky.show{transform:none}
.sticky a,.sticky button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font:700 var(--s-14) var(--f-t);text-decoration:none;border:0;background:var(--card);cursor:pointer}
.sticky .s-quote{background:var(--green);color:var(--on-green);border-inline:2px solid var(--ink)}
.sticky .badge{margin:0}

/* drawer */
.drawer{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:90dvh;height:auto;border:0;border-top:2px solid var(--ink);padding:0;background:var(--paper);color:var(--ink);overflow:auto}
.drawer::backdrop{background:rgba(17,19,18,.55)}
.drawer[open]{animation:sheet .4s var(--ease)}
@keyframes sheet{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.drawer__in{padding:20px var(--gut) 28px;max-width:640px;margin-left:auto}
.drawer__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.drawer h2{font-size:var(--s-40);margin:0}
.x{width:48px;height:48px;border:2px solid var(--ink);background:var(--card);display:grid;place-items:center;cursor:pointer}
.x:hover{background:var(--green);color:var(--on-green)}
.drawer__note{font-size:var(--s-14);color:var(--muted)}
.dlist{list-style:none;margin:0 0 12px;padding:0}
.dlist li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.dn{font-weight:600;overflow-wrap:anywhere}
.dq{display:flex;align-items:center;border:2px solid var(--ink);background:var(--card)}
.dq button,.rm{width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}
.dq button:hover,.rm:hover{background:var(--green);color:var(--on-green)}
.dq output{min-width:36px;text-align:center;font-weight:700}
.rm{border:2px solid var(--line)}
.empty{padding:16px 0;font-weight:600}
.drawer__act{display:grid;gap:10px}
.drawer__act .btn{width:100%}

/* reveals (JS adds .rv) */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (min-width:700px){
  .btn--call span{display:inline}
  .extras__grid{grid-template-columns:repeat(4,1fr)}
  .opts__row{grid-template-columns:repeat(3,1fr)}
  .opt{grid-template-columns:1fr;gap:4px}
  .strip__in{grid-template-columns:repeat(4,auto);justify-content:space-between}
  .strip__note{grid-column:1/-1}
  .ev{grid-template-columns:repeat(2,1fr)}
  .ev__item--lead{grid-column:1/-1;grid-template-columns:7fr 5fr;align-items:end;gap:28px}
  .ty{grid-template-columns:90px 280px 1fr;align-items:center;gap:28px}
  .ty__n{position:static;order:0}
  .rev{grid-template-columns:1fr 1fr;column-gap:40px}
  .steps__list{grid-template-columns:repeat(3,1fr);gap:0 32px}
  .steps__list li{display:block}
  .steps__list .n{display:block;margin-bottom:12px}
  .faq__grid{grid-template-columns:4fr 8fr}
  .area__grid{grid-template-columns:5fr 7fr}
  .contact__grid{grid-template-columns:5fr 6fr;align-items:end}
  .foot__grid{grid-template-columns:1.3fr 1.2fr 1fr}
  .drawer{inset:0 0 0 auto;width:min(480px,100%);max-height:none;height:100dvh;border-top:0;border-left:2px solid var(--ink)}
  .drawer__in{margin:0}
  @keyframes sheet{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
}
@media (min-width:980px){
  .nav{display:flex}.menu{display:none}
  .hero__grid{grid-template-columns:5fr 7fr;gap:48px;align-items:start}
  .detail__grid{grid-template-columns:7fr 5fr;gap:56px}
  .why__grid{grid-template-columns:5fr 7fr;gap:64px}
  .why__lead{position:sticky;top:96px;align-self:start}
  .plan__stage{aspect-ratio:auto;height:min(60vh,520px)}
  .sticky{display:none}
  .foot{padding-bottom:40px}
  .ty{grid-template-columns:90px 300px 1fr}
}
@media (min-width:1200px){
  .ev__item--lead{grid-template-columns:8fr 4fr}
}
@media (max-width:979px){.plan__stage{aspect-ratio:4/3.1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}

.foot p a,.fine a,.contact dd a:not(.big){display:inline-block;padding:5px 0;min-height:24px}

/* ===== dark theme "night plan": brand black #111312 page, paper-cream ink lines, brand green #7ED957 and terra accents unchanged ===== */
html[data-theme="dark"]{
  --ink:#F6F2E8; --paper:#111312; --paper-2:#1b1e1c; --line:rgba(246,242,232,.2); --muted:#bdbaae; --green-ink:#7ED957;
  --card:#181b19; --solid:#070807; --on-solid:#F6F2E8; --inv:#F6F2E8; --on-inv:#111312; --on-green:#111312;
  --terra-t:#EC8F74; --err-bg:#2b1913; --halo:#111312; --plan-bg:#0d0f0e; --tent-in:#1d2b1b; --matte:#fff;
  --ink-rgb:246,242,232; --dim:.9; --meta-theme:#111312; color-scheme:dark;
}
html[data-theme="light"]{color-scheme:light}
/* inline SVG (plan patterns, service-area map) uses hex attributes: remap them to the theme */
html[data-theme="dark"] #planSvg [stroke="#111312"],html[data-theme="dark"] .area__map svg [stroke="#111312"]{stroke:var(--ink)}
html[data-theme="dark"] #planSvg [fill="#fff"]{fill:var(--plan-bg)}
html[data-theme="dark"] .area__map svg [fill="#fff"]{fill:var(--card)}
html[data-theme="dark"] .area__map svg g.m-pin circle[fill="#111312"],html[data-theme="dark"] .area__map svg [fill="#111312"]{fill:var(--ink)}
/* glowing string lights in the plan and 3D scene */
html[data-theme="dark"] .bulb{fill:#ffe3b0;stroke:#ffbe6e;filter:drop-shadow(0 0 2px rgba(255,190,110,.9))}
/* catalog product photos stay on a white matte; icon placeholders keep their dark ink there */
.tile__img,.sum__tent img{background:var(--matte)}
.tile__img .ph{color:#111312}
.ev__item img{filter:saturate(.92) contrast(1.04) brightness(var(--dim))}
.skip{background:var(--inv);color:var(--on-inv)}
.steps__list li{border-top-color:var(--on-green)}
.steps .btn--ink{border-color:var(--on-green)}
html[data-theme="dark"] .steps .eyebrow .dot{border-color:var(--on-green)}
.steps__list .n,.steps__list h3{color:var(--on-green)}
.brand img{background:#fff}
html[data-theme="dark"] .brand img{box-shadow:0 0 0 2px var(--ink)}
html[data-theme="dark"] .top{box-shadow:0 1px 0 rgba(246,242,232,.1)}

/* ===== 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:var(--card);--thm-fg:var(--ink);--thm-bd:var(--ink);border-width:2px;border-radius:0}
.thm-menu{--thm-pop-bg:var(--card);--thm-pop-fg:var(--ink);--thm-pop-bd:var(--ink);--thm-on-bg:var(--green);--thm-on-fg:#111312;--thm-mute:var(--muted);--thm-font:var(--f-t);border-width:2px;box-shadow:6px 6px 0 var(--green)}
.thm-menu button[aria-pressed=true] small{color:#111312}
@media(max-width:560px){.btn--list span:not(.sr):not(.badge){position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn--list{padding:0 10px}.top__act{gap:6px}.top__in{gap:10px}}

[data-theme-slot]{display:block;width:44px;height:44px;flex:none}
::placeholder{color:var(--muted);opacity:1}
