/* Layout: one calm column on a cool paper ground; pine ink, brass used only for price and action. */
:root{--bg:#ffffff;--panel:#f5f7f5;--ink:#10271f;--soft:#4d6159;--line:#d5ddd7;--pine:#143d31;--brass:#9a6b1c;--sold:#8a2f24;--on-pine:#eef4ef;
--disp:"Bricolage Grotesque","Avenir Next","Segoe UI",sans-serif;--body:"Figtree","Segoe UI",system-ui,sans-serif;color-scheme:light}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--body);font-variant-numeric:tabular-nums}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--panel);padding:8px 12px;z-index:50}
h1,h2,h3{font-family:var(--disp);line-height:1.08;text-wrap:balance;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(2.2rem,6vw,4.4rem);font-weight:700}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:600}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
p{margin:0}
.muted{color:var(--soft)}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);font-weight:600}
.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--disp);font-weight:700;font-size:1.1rem}
.brand em{font-style:normal;color:var(--brass)}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--pine);color:var(--on-pine);font-size:.9rem;letter-spacing:.04em}
.nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.nav a{text-decoration:none;padding:8px 12px;font-weight:500;font-size:.95rem;border-bottom:2px solid transparent}
.nav a:hover{color:var(--brass)}
.nav a.on{border-bottom-color:var(--brass)}
.nav .nav-cta{background:var(--pine);color:var(--on-pine);border:0;margin-left:6px}
.nav .nav-cta:hover{color:var(--on-pine);filter:brightness(1.15)}
.menu-btn{display:none;font:inherit;background:none;border:1px solid var(--line);color:var(--ink);padding:8px 14px;cursor:pointer}
@media (max-width:820px){.menu-btn{display:block}.nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--panel);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 20px 16px}.nav.open{display:flex}.nav .nav-cta{margin:6px 0 0;text-align:center}}
main{padding-block:0 72px;display:flex;flex-direction:column;gap:72px;min-height:60vh}
.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:end;padding-top:48px}
.hero-copy{display:flex;flex-direction:column;gap:20px;min-width:0;padding-bottom:28px}
.hero-copy .lede{font-size:1.15rem;max-width:56ch;color:var(--soft)}
.hero-photo{background:var(--pine);align-self:stretch;display:flex;align-items:flex-end;justify-content:center;min-height:300px;overflow:hidden}
.hero-photo img{max-height:440px;object-fit:contain;object-position:bottom}
.id-row{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.92rem;color:var(--soft);border-top:1px solid var(--line);padding-top:14px}
.id-row b{color:var(--ink);font-weight:600}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-block;font:600 .98rem var(--body);padding:12px 20px;text-decoration:none;border:1px solid var(--pine);background:var(--pine);color:var(--on-pine);cursor:pointer}
.btn:hover{filter:brightness(1.15)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
@media (max-width:820px){.hero{grid-template-columns:1fr;gap:20px;padding-top:28px}.hero-photo{order:-1;min-height:0;max-height:300px}.hero-photo img{max-height:300px}}
.sec{display:flex;flex-direction:column;gap:24px}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}
.sec-head a{font-weight:600;color:var(--brass)}
.page-head{display:flex;flex-direction:column;gap:10px;padding-top:40px}
.page-head p{max-width:65ch;color:var(--soft)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:28px 22px}
.card{display:flex;flex-direction:column;gap:10px;text-decoration:none;min-width:0}
.card .ph{position:relative;aspect-ratio:4/3;background:var(--line);overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;left:0;top:12px;background:var(--pine);color:var(--on-pine);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;max-width:92%}
.tag.sold{background:var(--sold)}
.media-chips{position:absolute;right:8px;bottom:8px;display:flex;gap:6px}
.chip{background:rgba(10,20,16,.78);color:#fff;font-size:.72rem;font-weight:600;padding:3px 8px}
.card .price{font-family:var(--disp);font-weight:700;font-size:1.25rem;color:var(--brass)}
.card .addr{color:var(--soft);font-size:.92rem}
.facts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.9rem;color:var(--soft)}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{font:500 .92rem var(--body);padding:7px 14px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--pine);color:var(--on-pine);border-color:var(--pine)}
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border-top:1px solid var(--line)}
.why div{padding:20px 20px 20px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.why p{color:var(--soft);font-size:.96rem}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.quote{background:var(--panel);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:14px}
.quote p{font-size:.98rem}
.quote cite{font-style:normal;font-weight:600}
.quote cite span{display:block;font-weight:400;color:var(--soft);font-size:.88rem}
.awards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.awards img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--line);cursor:zoom-in}
.detail-head{display:flex;flex-direction:column;gap:12px;padding-top:28px}
.back{color:var(--soft);font-size:.92rem}
.detail-price{font-family:var(--disp);font-size:2rem;font-weight:700;color:var(--brass)}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:170px;gap:8px}
.gallery button{padding:0;border:0;background:var(--line);cursor:zoom-in;overflow:hidden;position:relative}
.gallery button:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery .more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(10,20,16,.6);color:#fff;font-weight:600}
@media (max-width:700px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:120px}.gallery button:first-child{grid-column:span 2;grid-row:span 2}}
.two{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:start}
.two>*{min-width:0}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.spec{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 24px;margin:0}
.spec div{padding:12px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.spec dd{margin:2px 0 0;font-weight:500}
.video{position:relative;aspect-ratio:16/9;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video a{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-decoration:none;font-weight:600}
.video img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.video span{position:relative;background:var(--pine);padding:10px 18px}
.side{background:var(--panel);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:12px;position:sticky;top:84px}
.side .sel{user-select:all;font-weight:600}
form.cf{display:flex;flex-direction:column;gap:12px}
form.cf label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;font-weight:600}
form.cf input,form.cf textarea,form.cf select,.ex-ctl select,.ex-ctl input{font:inherit;padding:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.foot{border-top:1px solid var(--line);padding-block:32px 96px;font-size:.92rem}
.foot-in{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.foot-name{font-family:var(--disp);font-weight:700;font-size:1.1rem}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 18px;align-content:start}
.wa{position:fixed;right:16px;bottom:16px;z-index:30;background:#1f8f4e;color:#fff;text-decoration:none;font-weight:600;padding:12px 18px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.lightbox{position:fixed;inset:0;z-index:60;background:rgba(5,10,8,.94);display:grid;place-items:center}
.lightbox img{max-width:92vw;max-height:84vh}
.lightbox button{position:absolute;background:none;border:1px solid #fff5;color:#fff;font:600 1rem var(--body);padding:8px 14px;cursor:pointer}
#lbClose{top:16px;right:16px}#lbPrev{left:12px;top:50%;font-size:1.6rem}#lbNext{right:12px;top:50%;font-size:1.6rem}
#lbCount{position:absolute;bottom:16px;color:#fff;font-size:.9rem}
.launch-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ex{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0;border:1px solid var(--line);background:var(--panel)}
.ex-stage{position:relative;min-height:520px;min-width:0}
.ex-stage canvas{display:block;width:100%;height:100%;touch-action:none}
.ex-hint{position:absolute;left:12px;bottom:10px;font-size:.8rem;color:var(--soft);background:color-mix(in srgb,var(--panel) 85%,transparent);padding:3px 8px}
.ex-compass{position:absolute;right:12px;top:12px;width:56px;height:56px}
.ex-sun{position:absolute;left:12px;top:12px;font-size:.85rem;background:color-mix(in srgb,var(--panel) 88%,transparent);padding:6px 10px}
.ex-ctl{border-left:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.ex-ctl label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600;letter-spacing:.04em}
.ex-ctl input[type=range]{padding:0;border:0;background:none}
.ex-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stacks{display:flex;flex-wrap:wrap;gap:6px}
.stacks button{font:600 .85rem var(--body);min-width:38px;padding:6px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer}
.stacks button[aria-pressed="true"]{background:var(--brass);border-color:var(--brass);color:#fff}
.unit{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:4px}
.unit .no{font-family:var(--disp);font-size:1.7rem;font-weight:700}
.note{font-size:.88rem;color:var(--soft);border-left:3px solid var(--brass);padding-left:12px;max-width:75ch}
.demo-flag{background:var(--brass);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;align-self:flex-start}
@media (max-width:900px){.ex{grid-template-columns:1fr}.ex-ctl{border-left:0;border-top:1px solid var(--line)}.ex-stage{min-height:380px;height:380px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.ex-modes{position:absolute;left:50%;top:12px;transform:translateX(-50%);display:flex;z-index:2}
.ex-modes button{font:600 .82rem var(--body);padding:7px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;white-space:nowrap}
.ex-modes button[aria-pressed="true"]{background:var(--pine);color:var(--on-pine);border-color:var(--pine)}
.ex-plan{padding:0;border:1px solid var(--line);background:#fff;cursor:zoom-in;margin-top:8px}
.ex-plan img{width:100%}
.siteplan{padding:0;border:1px solid var(--line);background:none;cursor:zoom-in;max-width:900px}
.key{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.key ol{margin:8px 0 0;padding-left:26px;color:var(--soft);font-size:.92rem}
.lightbox img{background:#fff}
@media (max-width:900px){.ex-sun{top:52px}}
.dd{position:relative}
.dd-btn{font:500 .95rem var(--body);background:none;border:0;border-bottom:2px solid transparent;color:var(--ink);padding:8px 12px;cursor:pointer}
.dd-btn:hover{color:var(--brass)}
.dd-btn.on{border-bottom-color:var(--brass)}
.dd-menu{display:none;position:absolute;left:0;top:100%;min-width:210px;background:var(--bg);border:1px solid var(--line);box-shadow:0 10px 24px rgba(16,39,31,.12);flex-direction:column;padding:6px;z-index:25}
.dd.open .dd-menu{display:flex}
@media (hover:hover) and (min-width:821px){.dd:hover .dd-menu{display:flex}}
.dd-menu a{border-bottom:0;padding:10px 12px}
.dd-menu a.on{color:var(--brass);border-bottom:0}
@media (max-width:820px){.dd-btn{width:100%;text-align:left}.dd-menu{position:static;box-shadow:none;border:0;padding:0 0 0 14px;display:flex}}
.launch{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;border-top:1px solid var(--line);padding-top:28px}
.launch>*{min-width:0}
.launch-img{display:block;background:var(--panel);border:1px solid var(--line)}
.launch-img img{width:100%}
@media (max-width:860px){.launch{grid-template-columns:1fr}}
.tbl-wrap{overflow-x:auto;max-width:760px}
.tbl{border-collapse:collapse;width:100%;font-size:.95rem}
.tbl th,.tbl td{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-weight:600}
.tbl .num{text-align:right;padding-right:0;padding-left:14px}
.tbl tfoot td{font-weight:600;border-bottom:0;border-top:2px solid var(--ink)}
.ex-sunbar{grid-column:1/-1;border-top:1px solid var(--line);padding:18px 20px;display:grid;grid-template-columns:minmax(220px,1.1fr) 180px minmax(220px,2fr) auto;gap:16px 24px;align-items:end;background:var(--bg)}
.ex-sunbar label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:600;letter-spacing:.04em;min-width:0}
.ex-sunbar select{font:inherit;padding:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.ex-sunbar input[type=range]{width:100%;accent-color:var(--brass)}
.ex-sunhead{display:flex;flex-direction:column;gap:4px;align-self:start}
.ex-sunhead p{font-size:.88rem}
.ex-time b{color:var(--brass);font-size:1rem}
.ex-ticks{display:flex;justify-content:space-between;font-weight:400;color:var(--soft);font-size:.76rem}
@media (max-width:900px){.ex-sunbar{grid-template-columns:1fr 1fr}.ex-sunhead,.ex-time{grid-column:1/-1}}
@media (max-width:900px){.ex-stage{order:1}.ex-sunbar{order:2;border-bottom:1px solid var(--line)}.ex-ctl{order:3;border-top:0}}

/* maps */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mp{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"bar bar" "map side";border:1px solid var(--line);background:var(--panel);margin-top:24px}
.mp-bar{grid-area:bar;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--bg)}
.mp-search{display:flex;gap:8px;flex:1 1 320px;max-width:520px}
.mp-search input{flex:1;min-width:0;font:inherit;padding:10px 12px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.mp-search .btn{padding:10px 16px}
.mp-tog{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.92rem}
.mp-tog label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.mp-tog input{accent-color:var(--pine);width:16px;height:16px;margin:0}
.mp-tog i{width:10px;height:10px;border-radius:50%;display:inline-block}
.mp-map{grid-area:map;position:relative;height:680px;min-width:0}
.mp-map>#mpMap{position:absolute;inset:0}
.mp-msg{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:var(--soft);background:var(--panel);z-index:2}
.mp-side{grid-area:side;border-left:1px solid var(--line);background:var(--bg);padding:20px;height:680px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;min-width:0}
.mp-side h2{font-size:1.35rem;line-height:1.2}
.mp-side h3{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-weight:600;margin-top:10px;font-family:var(--body)}
.mp-side h3 em,.mp-band summary em{font-style:normal;background:var(--pine);color:#fff;border-radius:10px;padding:1px 8px;font-size:.74rem;letter-spacing:0;margin-left:4px}
.mp-side h4{font:600 .9rem var(--body);margin:12px 0 6px}
.mp-help{padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--soft)}
.mp-help b{color:var(--ink)}
.mp-back{align-self:flex-start;background:none;border:0;padding:0;color:var(--soft);font:inherit;font-size:.88rem;cursor:pointer}
.mp-link{background:none;border:0;padding:0;font:inherit;color:var(--pine);text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}
.mp-list{list-style:none;padding:0;margin:0}
.mp-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.mp-list li span{color:var(--soft);font-size:.88rem;white-space:nowrap}
.mp-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.92rem}
.mp-streets{list-style:none;padding:0;margin:0;font-size:.9rem;display:flex;flex-direction:column;gap:8px}
.mp-streets b{display:block;font-weight:600}
.mp-streets .mp-link{margin-right:6px}
.mp-band{border-top:1px solid var(--line);padding:10px 0}
.mp-band summary{cursor:pointer;font-weight:600}
.mp-stats{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.88rem;color:var(--soft)}
.mp-stats b{display:block;color:var(--ink);font-size:1.05rem}
.mp-tblw{max-width:none;max-height:300px;overflow:auto;border:1px solid var(--line)}
.mp-tbl{font-size:.82rem}
.mp-tbl th,.mp-tbl td{padding:7px 8px}
.mp-tbl thead th{position:sticky;top:0;background:var(--panel)}
.mp-tbl .num{padding-right:8px;padding-left:8px}
.mp-tags{display:flex;flex-wrap:wrap;gap:6px}
.mp-tags span{border:1px solid var(--line);padding:2px 8px;font-size:.8rem;color:var(--soft)}
.mp-key{display:flex;gap:16px;font-size:.86rem;color:var(--soft)}
.mp-key i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
.mp-key .k1{background:#143d31}.mp-key .k2{background:#6fa08d}
.mp-cta{background:var(--panel);border:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-top:8px}
.mp-side .note{font-size:.82rem}
.maplibregl-ctrl-attrib{font-size:11px}
@media (max-width:900px){.mp{grid-template-columns:1fr;grid-template-areas:"bar" "map" "side"}.mp-map{height:460px}.mp-side{height:auto;max-height:none;border-left:0;border-top:1px solid var(--line)}.mp-tog{gap:8px 14px}}
.mp{grid-template-columns:minmax(0,1fr) 430px}
.mp-search{flex:1 1 220px;min-width:0}
.mp-bar{min-width:0}
.mp-tbl{font-size:.78rem}
.mp-tbl th,.mp-tbl td,.mp-tbl .num{padding:6px 5px}
.mp-tbl th{font-size:.66rem;letter-spacing:.04em}
@media (max-width:900px){.mp{grid-template-columns:minmax(0,1fr)}.mp-side{padding:16px 12px}}
.mp-part{color:var(--brass);font-size:.78rem}
.mp-list li>.mp-part{margin-right:auto;padding-left:6px;align-self:center}
.mp-ac{position:relative;flex:1;min-width:0;display:flex}
.mp-sug{position:absolute;left:0;right:0;top:100%;z-index:30;margin:2px 0 0;padding:4px;list-style:none;background:var(--bg);border:1px solid var(--line);box-shadow:0 12px 28px rgba(16,39,31,.16);max-height:340px;overflow-y:auto}
.mp-sug button{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:0;padding:8px 10px;font:inherit;color:var(--ink);cursor:pointer}
.mp-sug b{font-weight:600;font-size:.94rem}
.mp-sug span{font-size:.78rem;color:var(--soft)}
.mp-sug li.on button,.mp-sug button:hover{background:var(--panel)}
.mp-bar{position:relative;z-index:5}
.ex-plan{position:relative;display:block;width:100%}
.ex-rays{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ex-raykey i{display:inline-block;width:18px;height:3px;background:#e8820c;vertical-align:middle;margin-right:4px}
.ex-lvl{position:absolute;right:12px;bottom:40px;z-index:2;display:flex;flex-direction:column;gap:4px;align-items:stretch;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);padding:8px}
.ex-lvl button{font:600 .85rem var(--body);padding:9px 12px;border:1px solid var(--pine);background:var(--pine);color:var(--on-pine);cursor:pointer}
.ex-lvl button:disabled{opacity:.35;cursor:default}
.ex-lvl b{text-align:center;font-size:.9rem;padding:2px 0}
@media (max-width:900px){.ex-modes{left:8px;right:8px;transform:none;overflow-x:auto}.ex-modes button{padding:7px 9px;font-size:.76rem}}
.ex-names{position:absolute;left:12px;bottom:40px;z-index:2;display:flex;gap:6px;align-items:center;font-size:.82rem;font-weight:600;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);padding:6px 10px;cursor:pointer}
.ex-names input{accent-color:var(--pine);width:15px;height:15px;margin:0}
.sp-wrap{position:relative;max-width:900px;line-height:0}
.sp-wrap .siteplan{max-width:none;width:100%;display:block}
.sp-dot{position:absolute;width:3.1%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:2px solid transparent;background:transparent;padding:0;cursor:help;line-height:1.3}
.sp-dot:hover,.sp-dot:focus-visible,.sp-dot:focus{border-color:#e0531f;background:rgba(224,83,31,.18);outline:0;z-index:3}
.sp-dot::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);background:var(--pine);color:#fff;font:600 .82rem/1.3 var(--body);padding:6px 10px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.sp-dot.l::after{left:0;transform:none}.sp-dot.r::after{left:auto;right:0;transform:none}
.sp-dot:hover::after,.sp-dot:focus::after{opacity:1;visibility:visible}
.sp-cap{max-width:900px;font-size:.92rem;color:var(--soft);border-left:3px solid var(--line);padding:6px 0 6px 12px;min-height:2.6em}
.sp-cap.on{color:var(--ink);font-weight:600;border-left-color:var(--brass)}
@media (max-width:700px){.sp-dot::after{display:none}.sp-dot{width:4.4%}}
.ex-tip{position:absolute;z-index:4;background:var(--pine);color:#fff;font:600 .82rem/1.3 var(--body);padding:6px 10px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px rgba(0,0,0,.25)}

.ex-roads{bottom:78px}
.ex-dist{bottom:116px}
.mp-sun{position:absolute;inset:0;z-index:1;pointer-events:none}
.mp-sun[hidden]{display:none}
.mp-sky{position:absolute;left:0;right:0;top:0;height:74px;background:linear-gradient(rgba(255,214,140,.5),rgba(255,214,140,0))}
.mp-sky i{position:absolute;width:26px;height:26px;margin-left:-13px;border-radius:50%;background:#f5a623;border:2px solid #fff;box-shadow:0 0 0 5px rgba(245,166,35,.3),0 0 18px 6px rgba(245,166,35,.55);transition:left .12s linear,top .12s linear}
.mp-sunctl{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);pointer-events:auto;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:center;background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid var(--line);padding:8px 12px;font-size:.84rem;width:max-content;max-width:calc(100% - 24px)}
.mp-sunctl b{flex:1 0 100%;text-align:center}
.mp-sunctl label{display:inline-flex;align-items:center;gap:6px}
.mp-sunctl select{font:inherit;padding:4px 6px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.mp-sunctl input[type=range]{width:170px;accent-color:var(--brass)}
.mp-sunctl .btn{padding:6px 12px;font-size:.82rem}
@media (max-width:600px){.mp-sunctl input[type=range]{width:120px}}
.mp-sunctl small{flex:1 0 100%;text-align:center;color:var(--soft)}
.mp-sunctl small[hidden]{display:none}
.gt{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid var(--line);background:var(--panel)}
.gt-img{grid-row:span 2;min-height:320px;background:#cfd6cf center/cover;position:relative}
.gt-img span{position:absolute;left:16px;top:16px;display:inline-flex;gap:8px;align-items:center;background:var(--pine);color:#fff;padding:7px 12px;font-size:.84rem;font-weight:600}
.gt-body{padding:26px 26px 8px;display:flex;flex-direction:column;gap:12px}
.gt-body h2{font-size:1.5rem;line-height:1.2}
.gt-list{padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--soft)}
.gt-forms{padding:8px 26px 26px;display:flex;flex-direction:column;gap:22px}
.gt-forms h3{font-size:1.02rem}
.gt-forms form{border-top:1px solid var(--line);padding-top:18px}
.gt-chk{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important;line-height:1.4}
.gt-chk input{width:18px!important;height:18px;flex:none;margin-top:2px;accent-color:var(--pine);padding:0!important}
.gt-hp{position:absolute!important;left:-9999px;height:0;overflow:hidden}
.gt-err{color:#a12d2d;font-size:.9rem;font-weight:600}
.gt-err[hidden]{display:none}
.gt-marked{position:relative}
.gt-mark{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.2;background-repeat:repeat}
@media (max-width:900px){.gt{grid-template-columns:minmax(0,1fr)}.gt-img{grid-row:auto;min-height:200px}.gt-body{padding:20px 16px 4px}.gt-forms{padding:8px 16px 20px}}
.gt-stage{position:relative;height:560px;border:1px solid var(--line);background:#cfd6cf center/cover;display:grid;place-items:center}
.gt-badge{position:absolute;left:16px;top:16px;display:inline-flex;gap:8px;align-items:center;background:var(--pine);color:#fff;padding:7px 12px;font-size:.84rem;font-weight:600}
.gt-load{display:flex;flex-direction:column;align-items:center;gap:14px;background:color-mix(in srgb,var(--panel) 92%,transparent);padding:22px 30px;border:1px solid var(--line)}
.gt-load[hidden],.gt-modal[hidden]{display:none}
.gt-load i{width:38px;height:38px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--pine);animation:gtspin .9s linear infinite}
@keyframes gtspin{to{transform:rotate(360deg)}}
.gt-modal{position:fixed;inset:0;z-index:60;background:rgba(15,28,24,.62);display:grid;place-items:center;padding:16px;overflow-y:auto}
.gt-box{position:relative;background:var(--panel);border:1px solid var(--line);width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.gt-x{position:absolute;right:8px;top:6px;background:none;border:0;font-size:1.8rem;line-height:1;color:var(--soft);cursor:pointer;padding:6px 10px}
@media (max-width:900px){.gt-stage{height:380px}}
@media (prefers-reduced-motion:reduce){.gt-load i{animation:none}}
.gt-own{text-align:right;font-size:.8rem}.gt-own a{color:var(--soft)}
.mp-multi{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.mp-multi li{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);padding:8px 10px}
.mp-multi b{flex:1;min-width:0;font-weight:600;font-size:.92rem}
.mp-seg{display:inline-flex;border:1px solid var(--pine)}
.mp-seg button{font:inherit;font-size:.8rem;padding:4px 9px;border:0;background:var(--bg);color:var(--pine);cursor:pointer}
.mp-seg button[aria-pressed=true]{background:var(--pine);color:#fff}
.mp-x{background:none;border:0;font-size:1.3rem;line-height:1;color:var(--soft);cursor:pointer;padding:0 4px}
.mp-add{display:flex;gap:8px}
.mp-add select{flex:1;min-width:0;font:inherit;padding:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.mp-add .btn{padding:9px 14px}
.ex-price{font:700 1.35rem var(--display,inherit);color:var(--pine)}.ex-price small{font:500 .82rem var(--body,inherit);color:var(--soft);margin-left:6px}.ex-price.sold{color:#a12d2d}.ex-asof{font-size:.8rem}
.ex-pricebox{margin:10px 0 4px;padding:16px 18px;background:var(--pine);color:#fff;display:flex;flex-direction:column;gap:2px;border-left:5px solid var(--brass)}
.ex-pricebox .ex-pl{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.ex-pricebox b{font-family:var(--disp);font-size:clamp(1.9rem,2.4vw + 1rem,2.5rem);font-weight:700;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.ex-pricebox .ex-psf{font-size:1rem;font-weight:500;opacity:.9}
.ex-pricebox.sold{background:#f3e6e4;color:#8f2323;border-left-color:#8f2323}
