/* Property detail page. Tokens from site.css; .lc / .badge / body.sub nav from listings.css */
::selection{background:var(--sand);color:var(--night)}
.pp{padding:calc(var(--nav) + 20px) var(--px) 0}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:500 .72rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);padding:4px 0 20px}
.crumbs a{color:var(--night);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--line)}
.crumbs a:hover{text-decoration-color:var(--night)}
.crumbs i{width:4px;height:4px;background:var(--line)}

/* top layout */
.top{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media(min-width:1000px){.top{grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:start}}
@media(min-width:1300px){.top{grid-template-columns:minmax(0,1fr) 440px;gap:72px}}

/* gallery: swipe on phones, mosaic from 700px */
.gal{position:relative;margin-inline:calc(var(--px) * -1)}
.gal-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.gal-track::-webkit-scrollbar{display:none}
.gal-track figure{flex:none;width:100%;aspect-ratio:4/3;scroll-snap-align:start;margin:0;overflow:hidden;position:relative;cursor:zoom-in;background:var(--travertine)}
.gal-track img{transition:transform 1.4s var(--ease)}
.gal-count{position:absolute;left:16px;bottom:16px;background:rgba(18,23,26,.72);color:var(--shell);padding:8px 12px;font:500 .72rem/1 var(--sans);letter-spacing:.14em;font-variant-numeric:tabular-nums}
.gal-all{position:absolute;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;background:var(--limestone);color:var(--night);border:0;font:500 .75rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .4s}
.gal-all:hover{background:var(--shell)}
.gal-all svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.2}
@media(min-width:700px){
  .gal{margin-inline:0}
  .gal-track{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:clamp(420px,62vh,680px);overflow:visible}
  .gal-track figure{width:auto;aspect-ratio:auto}
  .gal-track figure:first-child{grid-row:1/3}
  .gal-track figure:nth-child(n+4){display:none}
  .gal-track figure:hover img{transform:scale(1.035)}
  .gal-count{display:none}
}

/* sticky panel */
.panel{background:var(--limestone)}
@media(min-width:1000px){.panel{position:sticky;top:calc(var(--nav) + 24px);grid-row:1/3;grid-column:2}}
.panel h1{font-size:clamp(2.2rem,5.4vw,2.9rem);margin-bottom:10px}
.panel .loc{display:flex;align-items:center;gap:8px;color:var(--stone)}
.panel .loc svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.2;flex:none}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--night);margin-top:22px}
.facts div{padding:12px 0;border-bottom:1px solid var(--line)}
.facts div:nth-child(3n+2),.facts div:nth-child(3n){padding-left:16px;border-left:1px solid var(--line)}
.facts span{display:block;font:500 .6875rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:8px}
.facts b{font:500 1.05rem/1.2 var(--sans);font-variant-numeric:tabular-nums}
.price{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0 4px}
.price span{font:500 .72rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.price b{font:600 2rem/1 var(--display);font-stretch:106%;letter-spacing:-.03em}
.costs{margin-top:12px;border-top:1px solid var(--line)}
.costs-h{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 0;background:none;border:0;font:500 .95rem/1.3 var(--sans);color:var(--night);cursor:pointer;text-align:left}
.costs-h i{position:relative;width:14px;height:14px;flex:none}
.costs-h i:before,.costs-h i:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--night);transition:transform .5s var(--ease)}
.costs-h i:after{transform:rotate(90deg)}
.costs.open .costs-h i:after{transform:rotate(0)}
.costs-b{overflow:hidden}
.crow{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem}
.crow b{font-weight:500;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.crow small{grid-column:1/-1;color:var(--stone);font-size:.8rem;line-height:1.45}
.crow.tot{border-top:1px solid var(--night)}
.crow.tot b{font:600 1.15rem/1 var(--display);letter-spacing:-.02em}
.costs-note{font-size:.78rem;color:var(--stone);padding:10px 0 4px}
.panel .cta{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.panel .cta .btn{width:100%}
.panel .cta .link{align-self:center}
.panel .ref{margin-top:6px;font-size:.78rem;color:var(--stone);text-align:center;font-variant-numeric:tabular-nums}

/* content column */
.main{min-width:0}
.blk{padding:72px 0 0}
@media(min-width:900px){.blk{padding-top:112px}}
.blk h2{font-size:clamp(1.9rem,5.2vw,3.2rem);margin-bottom:24px;max-width:18ch}
.lead{font-size:1.125rem;line-height:1.6;max-width:62ch}
.prose p{max-width:65ch;color:var(--night)}
.prose p+p{margin-top:1.1em}
.feat{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);margin-top:40px;border-top:1px solid var(--night)}
.feat li{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.feat svg{width:20px;height:20px;stroke:var(--sea);fill:none;stroke-width:1.2;margin-top:2px}
@media(min-width:700px){.feat{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}

/* architect */
.arch{background:var(--travertine);padding:32px 24px;margin-top:8px}
@media(min-width:700px){.arch{padding:48px}}
.arch blockquote{font:400 clamp(1.25rem,2.6vw,1.6rem)/1.45 var(--display);letter-spacing:-.015em;max-width:40ch;margin:0}
.arch .by{display:flex;align-items:center;gap:14px;margin-top:24px;color:var(--stone);font-size:.875rem}
.arch .by i{width:44px;height:44px;border:1px dashed var(--stone);flex:none}
.scores{display:grid;grid-template-columns:minmax(0,1fr);margin-top:36px;border-top:1px solid var(--night)}
.scores>div{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:16px 0;border-bottom:1px solid var(--line)}
.scores>div>span{font:500 .6875rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);align-self:center}
.scores>div>b{font-weight:500;text-align:right}
.scores>div>small{grid-column:1/-1;color:var(--stone);font-size:.85rem}
.meter{grid-column:1/-1;display:flex;gap:4px}
.meter i{flex:1;height:2px;background:var(--line)}
.meter i.on{background:var(--sea)}
@media(min-width:700px){.scores{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}

/* legal checklist */
.check{list-style:none;border-top:1px solid var(--night);margin-top:8px}
.check li{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}
.check li small{display:block;color:var(--stone);font-size:.85rem;margin-top:2px}
.check svg{width:20px;height:20px;fill:none;stroke-width:1.3;margin-top:1px}
.check .ok svg{stroke:var(--sea)}
.check .wait svg{stroke:var(--sand)}
.check .lim svg{stroke:var(--stone)}
.check em{font:500 .6875rem/1 var(--sans);font-style:normal;font-stretch:118%;letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;white-space:nowrap;align-self:center}
.check .ok em{background:var(--sea);color:var(--shell)}
.check .wait em{background:var(--travertine);color:var(--night);box-shadow:inset 0 0 0 1px var(--sand)}
.check .lim em{background:var(--travertine);color:#5E5A53}

/* spaces slider */
.spaces{position:relative;margin-top:8px}
.sl-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--px) * -1);padding-inline:var(--px);scroll-padding-inline:var(--px)}
.sl-track::-webkit-scrollbar{display:none}
.sl-track figure{flex:none;width:82%;margin:0;scroll-snap-align:start;cursor:zoom-in}
@media(min-width:700px){.sl-track figure{width:62%}}
@media(min-width:1000px){.sl-track{margin-inline:0;padding-inline:0;scroll-padding-inline:0}.sl-track figure{width:72%}}
.sl-track .ph{aspect-ratio:3/2;overflow:hidden;background:var(--travertine)}
.sl-track img{transition:transform 1.4s var(--ease)}
.sl-track figure:hover img{transform:scale(1.035)}
.sl-track figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:14px}
.sl-track figcaption b{font:600 1.15rem/1.2 var(--display);letter-spacing:-.02em}
.sl-track figcaption span{color:var(--stone);font-size:.875rem;text-align:right}
.sl-ctrl{display:flex;align-items:center;gap:20px;margin-top:28px}
.sl-bar{flex:1;height:1px;background:var(--line);position:relative;overflow:hidden}
.sl-bar i{position:absolute;inset:0;background:var(--night);transform-origin:left;transform:scaleX(.2)}
.sl-ctrl .num{font:500 .75rem/1 var(--sans);letter-spacing:.14em;font-variant-numeric:tabular-nums;color:var(--stone);min-width:52px}
.arrow{width:52px;height:52px;border:1px solid var(--night);background:none;color:var(--night);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .4s,color .4s}
.arrow:hover{background:var(--night);color:var(--shell)}
.arrow:disabled{opacity:.3;cursor:default;background:none;color:var(--night)}
.arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.2}
.arrow:focus-visible,.gal-all:focus-visible,.costs-h:focus-visible,figure:focus-visible{outline:2px solid var(--sea);outline-offset:3px}

/* rooms */
.rooms{display:grid;grid-template-columns:minmax(0,1fr);gap:0 40px;border-top:1px solid var(--night);margin-top:8px}
.rooms h3{font:500 .72rem/1 var(--sans);font-stretch:118%;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);padding:22px 0 8px}
.rooms div p{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.rooms div p b{font-weight:500;font-variant-numeric:tabular-nums}
@media(min-width:700px){.rooms{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* location */
.loc-map{position:relative;aspect-ratio:4/3;background:var(--travertine);margin-top:8px}
@media(min-width:700px){.loc-map{aspect-ratio:16/9}}
#pmap{position:absolute;inset:0}
.loc-map .note{position:absolute;left:12px;top:12px;z-index:500;background:var(--limestone);padding:10px 14px;font-size:.8rem;box-shadow:0 0 0 1px var(--line)}
.dist{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);margin-top:24px;border-top:1px solid var(--night)}
.dist li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.dist b{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(min-width:700px){.dist{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}
.leaflet-tile-pane{filter:sepia(.22) brightness(1.02)}
.leaflet-control-attribution{font:400 9px/1.2 var(--sans)!important;color:var(--stone)!important;background:rgba(243,239,231,.7)!important}
.leaflet-control-attribution a{color:inherit!important}
.leaflet-control-zoom{border:0!important;box-shadow:0 0 0 1px var(--line)!important}
.leaflet-control-zoom a{background:var(--limestone)!important;color:var(--night)!important;border-radius:0!important;width:40px!important;height:40px!important;line-height:40px!important}


/* contact */
.contact{margin-top:112px;display:grid;grid-template-columns:minmax(0,1fr)}
@media(min-width:1000px){.contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.c-left{position:relative;overflow:hidden;background:var(--night);color:var(--shell);padding:72px var(--px);display:flex;flex-direction:column;justify-content:flex-end;min-height:520px}
.c-left img{position:absolute;inset:0;opacity:.38}
.c-left>*:not(img){position:relative}
.c-left h2{font-size:clamp(2.2rem,6vw,4.25rem);margin-bottom:20px;max-width:12ch}
.c-left p{max-width:44ch;color:#C9C4BA}
.c-left .btn{margin-top:32px;align-self:flex-start}
.c-left .alt{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:20px;color:#A8A59D;font-size:.9rem}
.c-left .alt a{color:var(--shell);text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(237,232,223,.35)}
@media(min-width:1000px){.c-left{padding:96px 64px 96px var(--px)}}
.c-right{background:var(--limestone);padding:56px var(--px) 72px}
@media(min-width:1000px){.c-right{padding:96px var(--px) 96px 64px}}
.c-right h3{font:600 1.5rem/1.15 var(--display);letter-spacing:-.025em;margin-bottom:28px}
.form-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0 20px}
@media(min-width:700px){.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.field textarea{min-height:120px;resize:vertical;font-family:var(--sans)}
.field.err input,.field.err textarea{border-bottom-color:#9B2F2F;background:#EFE3DC}
.field .msg{display:none;font-size:.8rem;color:#8A2A2A;margin-top:8px}
.field.err .msg{display:block}
.consent{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-size:.82rem;color:var(--stone);margin:8px 0 28px;cursor:pointer;position:relative}
.consent input{position:absolute;opacity:0;width:22px;height:22px;margin:0;cursor:pointer}
.consent i{width:18px;height:18px;border:1px solid var(--night);position:relative;margin-top:1px}
.consent input:checked+i{background:var(--night)}
.consent input:checked+i:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--shell);border-width:0 1px 1px 0;transform:rotate(45deg)}
.consent input:focus-visible+i{outline:2px solid var(--sea);outline-offset:2px}
.consent.err i{border-color:#9B2F2F}
.c-right .submit{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.c-right .submit .btn{border:0;cursor:pointer}
.c-right .submit .btn[disabled]{opacity:.6;cursor:progress}
.c-right .submit small{color:var(--stone);font-size:.8rem;max-width:32ch}
.sent{display:none;padding:32px 0}
.sent b{display:block;font:600 1.8rem/1.1 var(--display);letter-spacing:-.03em;margin-bottom:12px}
.sent p{color:var(--stone);max-width:44ch}
form.done{display:none}
form.done+.sent{display:block}

/* similar */
.similar{padding:112px var(--px) 120px}
.similar-h{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.similar-h h2{font-size:clamp(1.9rem,5.2vw,3.2rem)}
.sim-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--px) * -1);padding-inline:var(--px)}
.sim-track::-webkit-scrollbar{display:none}
.sim-track .lc{flex:none;width:82%;scroll-snap-align:start}
@media(min-width:700px){.sim-track .lc{width:46%}}
@media(min-width:1100px){.sim-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin-inline:0;padding-inline:0}.sim-track .lc{width:auto}}

/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:var(--night);color:var(--shell);display:grid;grid-template-rows:auto 1fr auto;visibility:hidden;opacity:0}
.lb.open{visibility:visible;opacity:1}
.lb-top{display:flex;justify-content:space-between;align-items:center;height:68px;padding:0 8px 0 var(--px);border-bottom:1px solid #2B3236}
.lb-top .num{font:500 .75rem/1 var(--sans);letter-spacing:.16em;font-variant-numeric:tabular-nums}
.lb-top .cap{color:#A8A59D;font-size:.875rem;margin-left:24px}
.lb-x{position:relative;width:52px;height:52px;background:none;border:0;cursor:pointer}
.lb-x:before,.lb-x:after{content:"";position:absolute;left:16px;right:16px;top:50%;height:1px;background:var(--shell);transform:rotate(45deg)}
.lb-x:after{transform:rotate(-45deg)}
.lb-stage{position:relative;overflow:hidden;touch-action:pan-y}
.lb-stage img{position:absolute;inset:24px var(--px);width:calc(100% - var(--px)*2);height:calc(100% - 48px);object-fit:contain}
.lb .arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border-color:rgba(237,232,223,.4);color:var(--shell)}
.lb .arrow:hover{background:var(--shell);color:var(--night)}
.lb .prev{left:16px}.lb .next{right:16px}
@media(max-width:699px){.lb .arrow{display:none}}
.lb-thumbs{display:flex;gap:8px;justify-content:center;padding:16px var(--px) calc(16px + env(safe-area-inset-bottom));overflow-x:auto}
.lb-thumbs button{flex:none;width:84px;height:56px;padding:0;border:0;background:none;opacity:.4;cursor:pointer;transition:opacity .4s;outline-offset:2px}
.lb-thumbs button[aria-current=true]{opacity:1;box-shadow:0 0 0 1px var(--sand)}
.lb-thumbs button:focus-visible{outline:2px solid var(--sand)}

.blk:first-child{padding-top:56px}
@media(min-width:1000px){.blk:first-child{padding-top:72px}}
.lb button:focus{outline:none}
.lb button:focus-visible{outline:2px solid var(--sand);outline-offset:2px}
.loc-map .note{left:12px;top:auto;bottom:12px}
.panel h1,.blk h2,.c-left h2,.similar-h h2{text-wrap:balance}
.panel .ref{text-align:left;margin-top:14px}
.arch .by,.arch small,.scores>div>span,.scores>div>small{color:#5E5A53}
