/* Haven & Co. Realty (demo) - design system */
:root{--forest:#243C35;--forest-d:#1A2B26;--ivory:#F6F4EF;--ivory-2:#ECE7DB;--champ:#C5AA83;--champ-ink:#6B5532;--char:#292D2B;--mute:#586059;--line:#D8D2C4;--err:#9B2C2C;--ok:#1E4B36;
--serif:"Newsreader",Georgia,"Times New Roman",serif;--sans:"Instrument Sans","Segoe UI",system-ui,sans-serif;
--r1:3px;--r2:8px;--arch:999px 999px 8px 8px;--max:1240px;--pad:clamp(1rem,4vw,2.25rem);--sec:clamp(3.5rem,8vw,6.5rem)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6.5rem;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--ivory);color:var(--char);font:400 1.0625rem/1.62 var(--sans);-webkit-font-smoothing:antialiased}
main{flex:1 0 auto}
svg{display:block}
a{color:inherit;text-underline-offset:.2em}
h1,h2,h3,h4{margin:0 0 .6em;font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.015em}
h1{font-size:clamp(2.6rem,5.4vw + .4rem,4.9rem);font-weight:300;letter-spacing:-.028em;line-height:1.02}
h2{font-size:clamp(1.9rem,3vw + .9rem,3rem);letter-spacing:-.02em}
h3{font-size:1.45rem}h4{font-size:1.15rem}
p{margin:0 0 1em;max-width:64ch}
ul,ol{margin:0;padding:0}
.muted{color:var(--mute)}
.lede{font-size:clamp(1.1rem,.6vw + 1rem,1.3rem);line-height:1.55;max-width:48ch}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.sec{padding-block:var(--sec)}
.bg2{background:var(--ivory-2)}
.dark{background:var(--forest);color:var(--ivory)}
.dark .muted{color:#C3CBC4}
.dark a:not(.btn){color:var(--champ)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;z-index:300;background:var(--forest);color:#fff;padding:.7rem 1rem}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--champ-ink);outline-offset:3px;border-radius:2px}
.dark :focus-visible,.foot :focus-visible,.demo-bar :focus-visible{outline-color:var(--champ)}
.sh{display:flex;justify-content:space-between;align-items:end;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.sh h2{margin:0}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:.7rem 1.4rem;border:1.5px solid transparent;border-radius:var(--r1);font:500 1rem/1.1 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn-primary{background:var(--forest);color:var(--ivory)}.btn-primary:hover{background:var(--forest-d)}
.btn-champ{background:var(--champ);color:var(--forest-d)}.btn-champ:hover{background:#D5BE9B}
.btn-ghost{border-color:currentColor;background:transparent;color:inherit}.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-line{border-color:var(--forest);color:var(--forest);background:transparent}.btn-line:hover{background:var(--forest);color:var(--ivory)}
.btn[disabled]{opacity:.65;cursor:progress}
.btn-sm{min-height:2.5rem;padding:.5rem 1rem;font-size:.95rem}
.link{font-weight:500;color:var(--forest);text-decoration:underline;text-decoration-color:var(--champ);text-decoration-thickness:2px}
.link:hover{text-decoration-color:var(--forest)}
.dark .link{color:var(--champ)}
/* demo bar + header */
.demo-bar{background:var(--forest-d);color:#E8E1D2;font-size:.8125rem;line-height:1.4;padding:.5rem var(--pad);text-align:center}
.demo-bar strong{color:var(--champ);font-weight:600;margin-right:.4rem}
.hdr{position:sticky;top:0;z-index:60;background:rgba(246,244,239,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:1.5rem;min-height:4.5rem}
.logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--forest)}
.logo svg{width:26px;height:30px;flex:none}
.logo b{display:block;font:400 1.55rem/1 var(--serif);letter-spacing:-.01em}
.logo small{display:block;margin-top:.2rem;font:500 .8rem/1 var(--sans);letter-spacing:.06em;color:var(--champ-ink)}
.nav{margin-left:auto;display:flex;gap:1.6rem}
.nav a{font-weight:500;font-size:.98rem;text-decoration:none;padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current]{border-color:var(--champ)}
.nav-cta{display:none}
.hdr-r{display:flex;align-items:center;gap:.6rem}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:2.75rem;height:2.75rem;padding:0 .5rem;border:1px solid var(--line);border-radius:var(--r1);background:transparent;color:var(--forest);cursor:pointer;text-decoration:none;font:600 .9rem var(--sans)}
.icon-btn:hover{border-color:var(--forest)}
.icon-btn svg{width:20px;height:20px}
.menu-btn{display:none}
@media(max-width:1100px){
 .nav{display:none}.menu-btn{display:inline-flex;margin-left:0}.hdr-in{gap:.75rem}.hdr-r{margin-left:auto}.hdr-r .btn{display:none}
 .hdr.open .nav{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;margin:0;padding:.5rem var(--pad) 1.5rem;background:var(--ivory);border-bottom:1px solid var(--line)}
 .hdr.open .nav a{padding:.95rem 0;border-bottom:1px solid var(--line);font-size:1.1rem}
 .hdr.open .nav-cta{display:inline-flex;margin-top:1rem;border:0;color:var(--ivory)}
}
/* forms */
.fld{display:grid;gap:.35rem;align-content:start}
.fld>label,.fld>span,legend{font-size:.9rem;font-weight:500;color:var(--mute)}
.fld>label i{font-style:normal;font-weight:400}
input,select,textarea{width:100%;min-height:3rem;padding:.65rem .85rem;border:1px solid #B9B2A2;border-radius:var(--r1);background:#fff;color:var(--char);font:inherit}
textarea{min-height:7rem;resize:vertical}
select{appearance:none;padding-right:2.4rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23243C35' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right .9rem center}
input:focus,select:focus,textarea:focus{outline:3px solid var(--champ-ink);outline-offset:1px;border-color:var(--forest)}
input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem;min-height:0;padding:0;accent-color:var(--forest)}
.chk{display:flex;gap:.6rem;align-items:flex-start;font-size:.95rem;line-height:1.45}
.chk input{margin-top:.15rem;flex:none}
fieldset{border:0;margin:0;padding:0;min-width:0}
.radios{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.35rem}
.radios label{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:400;color:var(--char)}
.form{display:grid;gap:1rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:620px){.f2{grid-template-columns:1fr}}
.fld[data-err] input,.fld[data-err] select,.fld[data-err] textarea{border-color:var(--err);border-width:2px}
.err-msg{margin:0;color:var(--err);font-size:.875rem;font-weight:500}
.banner{padding:.9rem 1rem;border:1px solid;border-radius:var(--r1);font-size:.95rem;font-weight:500}
.banner-err{background:#FBEDEA;border-color:#E0B0A6;color:#6E1D1D}
.banner-ok{background:#E8F0EB;border-color:#B2CCBC;color:var(--ok)}
.note{font-size:.875rem;color:var(--mute);max-width:none}
.done{padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.done h3{font-size:1.7rem}
.done dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:1rem 0;font-size:.95rem}
.done dt{color:var(--mute)}.done dd{margin:0;font-weight:500}
.fcard{background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:clamp(1.25rem,3vw,2rem)}
/* hero */
.hero{position:relative;z-index:2;background:var(--forest);color:var(--ivory);padding-top:clamp(2rem,5vw,3.5rem)}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,5vw,5rem);align-items:end}
.hero-copy{align-self:center;padding-bottom:clamp(5.5rem,9vw,8rem)}
.hero-copy .lede{color:#D9D2C3;margin-bottom:2rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}
.arch{position:relative;overflow:hidden;border-radius:var(--arch);background:var(--ivory-2)}
.arch svg,.ph svg{width:100%;height:100%}
.hero-arch{width:min(100%,500px);justify-self:end;aspect-ratio:4/5;border-radius:999px 999px 0 0}
.hero-arch::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(197,170,131,.55);pointer-events:none}
.hero-sp{position:relative;margin-bottom:-3.5rem}
.after-hero{padding-top:calc(var(--sec) + 3rem)}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-arch{justify-self:center;width:min(86%,380px);order:2}.hero-copy{padding-bottom:1.5rem}}
.glw{opacity:0;animation:lit 2.4s 1.1s ease forwards}
.dusk{opacity:0;mix-blend-mode:multiply;animation:lit 5s .3s ease forwards;--o:.2}
@keyframes lit{to{opacity:var(--o,.85)}}
/* search panel */
.sp{background:#fff;color:var(--char);border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem 1.25rem;box-shadow:0 30px 40px -30px rgba(26,43,38,.6)}
.sp-tabs{display:flex;gap:1.5rem;border-bottom:1px solid var(--line);margin-bottom:1rem}
.sp-tabs label{position:relative;cursor:pointer;font-weight:500}
.sp-tabs input{position:absolute;opacity:0;width:1px;height:1px}
.sp-tabs span{display:inline-block;padding:.35rem 0 .6rem;border-bottom:2px solid transparent;margin-bottom:-1px}
.sp-tabs input:checked+span{border-color:var(--forest);color:var(--forest)}
.sp-tabs input:focus-visible+span{outline:3px solid var(--champ-ink);outline-offset:2px}
.sp-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:.75rem;align-items:end}
@media(max-width:900px){.sp-row{grid-template-columns:1fr 1fr}.sp-row .btn{grid-column:1/-1}.hero-sp{margin-bottom:-2rem}.after-hero{padding-top:calc(var(--sec) + 1.5rem)}}
/* grids + cards */
.grid{display:grid;gap:clamp(1rem,2.4vw,1.75rem)}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.g3,.g2{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;transition:border-color .2s}
.card:hover{border-color:var(--forest)}
.card-img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--ivory-2)}
.card-img svg{width:100%;height:100%}
.tag{position:absolute;top:.8rem;left:.8rem;background:var(--ivory);color:var(--forest);font:600 .8125rem/1 var(--sans);padding:.45rem .65rem;border-radius:var(--r1)}
.tag+.tag{top:2.9rem;background:var(--champ);color:var(--forest-d)}
.fav{position:absolute;top:.7rem;right:.7rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:50%;background:var(--ivory);color:var(--forest);cursor:pointer}
.fav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.fav[aria-pressed=true] svg{fill:var(--forest)}
.card-body{padding:1.1rem 1.25rem 1.25rem;display:flex;flex-direction:column;flex:1}
.price{margin:0 0 .35rem;font:400 1.75rem/1.1 var(--serif);letter-spacing:-.01em;color:var(--forest)}
.card h3{margin:0;font:500 1.05rem/1.35 var(--sans);letter-spacing:0}
.card h3 a{text-decoration:none}.card h3 a:hover{text-decoration:underline}
.loc{margin:.15rem 0 0;color:var(--mute);font-size:.95rem}
.specs{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;list-style:none;margin:.9rem 0 0;padding:.85rem 0 0;border-top:1px solid var(--line);font-size:.9375rem}
.specs b{font-weight:600}
.card-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1rem}
.ref{font-size:.8125rem;color:var(--mute)}
/* categories, split, values */
.cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem)}
.cat{display:block;text-decoration:none}
.cat:nth-child(2){margin-top:2.5rem}
.cat .arch{aspect-ratio:4/5;margin-bottom:1.1rem}
.cat h3{margin:0 0 .3rem}.cat p{color:var(--mute);margin:0}
.cat:hover h3{text-decoration:underline;text-decoration-color:var(--champ);text-underline-offset:.25em;text-decoration-thickness:2px}
@media(max-width:820px){.cats{grid-template-columns:1fr;max-width:420px;margin-inline:auto}.cat:nth-child(2){margin-top:0}}
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.split .arch{aspect-ratio:4/5;max-width:440px;width:100%}
@media(max-width:820px){.split{grid-template-columns:1fr}.split .arch{max-width:320px}}
.vals{list-style:none}
.vals li{padding:1.1rem 0;border-top:1px solid #C9C2B2}
.vals li:last-child{border-bottom:1px solid #C9C2B2}
.vals h3{font-size:1.3rem;margin:0 0 .25rem}.vals p{margin:0;color:var(--mute)}
.acard{display:flex;flex-direction:column;text-decoration:none}
.acard .ph{aspect-ratio:3/2;border-radius:var(--r2);overflow:hidden;margin-bottom:1rem}
.acard h3{margin:0 0 .3rem}.acard p{color:var(--mute);margin:0 0 .75rem;font-size:1rem}
.acard .link{margin-top:auto;align-self:flex-start}
.acard:hover h3{text-decoration:underline;text-decoration-color:var(--champ);text-underline-offset:.2em}
.band{background:var(--forest-d);color:var(--ivory)}
.band .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.band p{color:#D9D2C3}
.band ul{list-style:none;border-top:1px solid rgba(197,170,131,.4)}
.band li{padding:.85rem 0;border-bottom:1px solid rgba(197,170,131,.4);color:#E8E1D2}
@media(max-width:820px){.band .wrap{grid-template-columns:1fr}}
.agent{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;align-items:center}
.agent .arch{aspect-ratio:4/5}
.agent h3{margin:0}.agent .role{color:var(--champ-ink);font-weight:500;margin:.15rem 0 .75rem}
.agent .acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem}
@media(max-width:520px){.agent{grid-template-columns:1fr}.agent .arch{max-width:220px}}
.promise{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,3rem)}
.promise p{font:300 1.45rem/1.3 var(--serif);max-width:20ch;margin:0}
@media(max-width:820px){.promise{grid-template-columns:1fr}}
.empty{padding:clamp(1.5rem,4vw,2.5rem);border:1px dashed #B9B2A2;border-radius:var(--r2);background:rgba(255,255,255,.5)}
.empty h3{font-size:1.5rem}.empty-act{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
/* strip + footer */
.thym{background:var(--forest-d);color:var(--ivory);padding-block:2.5rem;border-top:1px solid rgba(197,170,131,.35)}
.thym .wrap{display:flex;flex-wrap:wrap;gap:1.25rem 3rem;justify-content:space-between;align-items:center}
.thym h2{font-size:1.6rem;margin:0 0 .25rem}.thym p{margin:0;color:#D9D2C3}
.thym .acts{display:flex;flex-wrap:wrap;gap:.6rem}
.foot{background:var(--forest);color:#E4DDCD;padding-top:clamp(3rem,6vw,4.5rem);font-size:.97rem}
.foot a{text-decoration:none;color:#E4DDCD}.foot a:hover{color:var(--champ);text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:2rem 3rem;padding-bottom:2.5rem}
.foot .logo{color:var(--ivory)}.foot .logo small{color:var(--champ)}
.foot h3{font:600 .95rem var(--sans);letter-spacing:0;color:var(--champ);margin:0 0 .75rem}
.foot ul{list-style:none;display:grid;gap:.45rem}
.foot address{font-style:normal;display:grid;gap:.45rem}
.foot-base{border-top:1px solid rgba(197,170,131,.3);padding-block:1.5rem 2rem;display:grid;gap:.75rem;font-size:.875rem;color:#C3CBC4}
.foot-base p{max-width:none;margin:0}
.foot-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.demo-ctl{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center}
.demo-ctl label{display:flex;gap:.5rem;align-items:center}
.demo-ctl button{background:none;border:0;color:var(--champ);text-decoration:underline;cursor:pointer;font:inherit;padding:0}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.wa-fab{position:fixed;right:1.1rem;bottom:4rem;z-index:55;display:grid;place-items:center;width:3.4rem;height:3.4rem;border:0;border-radius:50%;background:var(--champ);color:var(--forest-d);cursor:pointer;box-shadow:0 10px 24px -10px rgba(26,43,38,.7)}
.wa-fab:hover{background:#D5BE9B}.wa-fab svg{width:26px;height:26px;fill:currentColor}
.toast{position:fixed;left:50%;bottom:1.25rem;z-index:400;transform:translate(-50%,2rem);max-width:min(92vw,420px);padding:.8rem 1.1rem;border-radius:var(--r1);background:var(--forest-d);color:#fff;font-size:.95rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.toast.on{opacity:1;transform:translate(-50%,0)}
dialog{border:0;padding:0;border-radius:10px;width:min(92vw,880px);background:var(--ivory);color:var(--char)}
dialog::backdrop{background:rgba(26,43,38,.78)}
.dlg{padding:clamp(1.25rem,3vw,2rem)}
.dlg h2{font-size:1.8rem}
.dlg-act{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.wa-msg{margin:1rem 0;padding:1rem 1.2rem;background:#fff;border-left:4px solid var(--champ);border-radius:var(--r1);font-size:1rem}
.lb{width:min(94vw,1000px)}
.lb .stage{aspect-ratio:16/10;background:var(--ivory-2)}.lb .stage svg{width:100%;height:100%}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem 1rem;flex-wrap:wrap}
/* inner pages */
.pagehead{padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem)}
.pagehead h1{font-size:clamp(2.3rem,4.6vw + .4rem,4.1rem);max-width:18ch}
.crumb{display:flex;flex-wrap:wrap;gap:.4rem .75rem;list-style:none;font-size:.9rem;color:var(--mute);margin:0 0 1.25rem}
.crumb li+li::before{content:"/";margin-right:.75rem;color:#A8A08E}
.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;counter-reset:s}
.steps li{counter-increment:s;padding-top:1rem;border-top:2px solid var(--forest)}
.steps li::before{content:counter(s);display:block;font:300 2.4rem/1 var(--serif);color:var(--champ-ink);margin-bottom:.5rem}
.steps h3{font-size:1.25rem}.steps p{color:var(--mute);font-size:1rem}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media(max-width:520px){.steps{grid-template-columns:1fr}}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}
@media(max-width:820px){.twocol{grid-template-columns:1fr}}
.placeholder{padding:1rem 1.25rem;border:1px dashed var(--champ-ink);border-radius:var(--r2);background:rgba(197,170,131,.12);font-size:.95rem}
.placeholder p{margin:0;max-width:none}
/* listings */
.lf{background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:1.1rem 1.25rem}
.lf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.85rem}
.lf details{margin-top:1rem;border-top:1px solid var(--line);padding-top:.85rem}
.lf summary{cursor:pointer;font-weight:500;color:var(--forest)}
.lf-ft{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:.85rem}
.lbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin:1.5rem 0 1.25rem}
.lbar p{margin:0;font-weight:500}.lbar .fld{display:flex;align-items:center;gap:.6rem}.lbar select{width:auto}
.more{display:flex;justify-content:center;margin-top:2rem}
/* detail */
.pd{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(1.5rem,4vw,4rem);align-items:start}
.pd-aside{position:sticky;top:6rem;display:grid;gap:1.25rem}
@media(max-width:980px){.pd{grid-template-columns:1fr}.pd-aside{position:static}}
.pd-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;margin-bottom:1.5rem}
.pd-head h1{font-size:clamp(2rem,3.6vw + .5rem,3.2rem);margin:0 0 .25rem}
.pd-price{font:300 clamp(2rem,3vw + .5rem,2.8rem)/1 var(--serif);color:var(--forest);margin:0}
.gal-main{position:relative;display:block;width:100%;aspect-ratio:16/10;padding:0;border:0;border-radius:var(--r2);overflow:hidden;background:var(--ivory-2);cursor:zoom-in}
.gal-main svg,.gal-th svg{width:100%;height:100%}
.gal-hint{position:absolute;right:.75rem;bottom:.75rem;background:var(--ivory);color:var(--forest);font-size:.8125rem;font-weight:600;padding:.4rem .65rem;border-radius:var(--r1)}
.gal-th{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-top:.6rem}
.gal-th button{padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;aspect-ratio:16/10;cursor:pointer;background:var(--ivory-2)}
.gal-th button[aria-current=true]{border-color:var(--forest)}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;margin:2rem 0;background:var(--line);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.facts div{background:#fff;padding:.9rem 1rem}
.facts dt{font-size:.8125rem;color:var(--mute)}.facts dd{margin:.15rem 0 0;font:400 1.35rem/1.2 var(--serif)}
.blk{margin-top:2.5rem}.blk h2{font-size:1.9rem}
.feat{list-style:none;columns:2;column-gap:2rem}
.feat li{break-inside:avoid;padding:.3rem 0}
.feat li::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.7rem;border:1.5px solid var(--champ-ink);border-radius:50%}
@media(max-width:560px){.feat{columns:1}}
.map{border-radius:var(--r2);overflow:hidden;border:1px solid var(--line)}
.mini-agent{display:grid;grid-template-columns:84px 1fr;gap:1rem;align-items:center}
.mini-agent .arch{aspect-ratio:4/5}.mini-agent h3{font-size:1.25rem;margin:0}.mini-agent p{margin:0;color:var(--mute);font-size:.95rem}
.acts{display:flex;flex-wrap:wrap;gap:.6rem}
/* articles */
.prose{max-width:66ch;font-size:1.125rem;line-height:1.72}
.prose h2{font-size:1.75rem;margin:2.2em 0 .5em}
.art-hero{aspect-ratio:21/9;border-radius:var(--r2);overflow:hidden;margin:1.5rem 0 2.5rem}
.art-hero svg{width:100%;height:100%}
.meta{color:var(--mute);font-size:.95rem}
.todo{list-style:none;border-top:1px solid var(--line)}
.todo li{padding:.85rem 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
/* admin */
.tabs{display:flex;gap:1.5rem;border-bottom:1px solid var(--line);margin:1.5rem 0}
.tabs button{padding:.6rem 0;border:0;border-bottom:2px solid transparent;background:none;font:500 1rem var(--sans);color:var(--char);cursor:pointer;margin-bottom:-1px}
.tabs button[aria-selected=true]{border-color:var(--forest);color:var(--forest)}
.scroll{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff;border:1px solid var(--line)}
.tbl th{text-align:left;font-weight:600;padding:.7rem .8rem;border-bottom:2px solid var(--forest);white-space:nowrap}
.tbl td{padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl select,.tbl input{min-height:2.5rem;padding:.4rem .6rem;font-size:.95rem}
.tbl input[type=number]{width:9rem}
.pill{display:inline-block;padding:.2rem .55rem;border-radius:99px;font-size:.8rem;font-weight:600;background:var(--ivory-2)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.glw{animation:none;opacity:.85}.dusk{animation:none;opacity:.2}}
.hero{display:flow-root}
.form-status:empty{display:none}
.scroll{position:relative}
