.pd-back{position:fixed;inset:0;z-index:950;background:rgba(28,35,51,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:clamp(.6rem,2vw,1.6rem)}
.pd-back.on{display:flex}
.pd{width:min(920px,100%);background:var(--cream);color:var(--ink);border-radius:24px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(28,35,51,.7);max-height:94vh}
.pd.pdx{width:min(1140px,100%);display:flex;flex-direction:column}

.pdx-hero{position:relative;background:var(--ink);flex:0 0 auto}
.pdx-stage{position:relative;aspect-ratio:16/9;background:#1E2943 center/cover no-repeat;max-height:52vh}
.pdx-stage img{width:100%;height:100%;object-fit:cover;display:block}
.pdx-count{position:absolute;bottom:.7rem;right:.8rem;background:rgba(28,35,51,.72);color:var(--cream);font-size:.68rem;font-weight:700;padding:.28rem .6rem;border-radius:999px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.pdx-tags{position:absolute;top:.9rem;left:.9rem;display:flex;gap:.35rem;flex-wrap:wrap;max-width:70%}
.pdx-tag{font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:.3rem .55rem;border-radius:7px;background:var(--accent);color:var(--on-accent)}
.pdx-tag.dark{background:rgba(28,35,51,.82);color:var(--cream)}
.pdx-tag.hot{background:#d8503a;color:#fff}

.pdx-body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:0}
.pdx-main{padding:clamp(1.1rem,2.4vw,1.9rem);min-width:0}
.pdx-side{padding:clamp(1.1rem,2.4vw,1.9rem);border-left:1px solid var(--line);background:var(--cream-2);min-width:0}

.pdx-zone{font-size:.68rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-soft)}
.pdx-price{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(1.8rem,4.2vw,2.5rem);letter-spacing:-.03em;line-height:1;margin:.35rem 0 .1rem}
.pdx-ppsf{font-size:.875rem;color:var(--ink-soft);font-weight:600}
.pdx-addr{font-family:"Bricolage Grotesque";font-weight:700;font-size:clamp(1.05rem,2.4vw,1.3rem);letter-spacing:-.02em;line-height:1.15;margin:.5rem 0 .1rem}
.pdx-sub{font-size:.875rem;color:var(--ink-soft)}

.pdx-facts{display:flex;flex-wrap:wrap;gap:.4rem;margin:.9rem 0 .2rem}
.pdx-facts span{background:var(--cream-2);border:1px solid var(--line-2);border-radius:999px;padding:.34rem .72rem;font-size:.875rem;font-weight:600}
.pdx-side .pdx-facts span{background:var(--cream)}
.pdx-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.7rem 0 0}
.pdx-chips span{font-size:.78rem;font-weight:700;padding:.3rem .6rem;border-radius:8px;background:var(--ink);color:var(--cream)}
.pdx-chips span.water{background:#1e6f7a}
.pdx-chips span.pool{background:#2b7a5e}

.pdx-sec{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:1.1rem}
.pdx-sec:first-child{border-top:0;margin-top:0;padding-top:0}
.pdx-h{font-family:"Bricolage Grotesque";font-weight:800;font-size:1rem;letter-spacing:-.01em;margin:0 0 .6rem;display:flex;align-items:center;gap:.45rem}
.pdx-h svg{width:16px;height:16px;flex:0 0 auto;opacity:.75}
.pdx-h .n{margin-left:auto;font-family:"Manrope";font-size:.68rem;font-weight:700;color:var(--ink-soft);letter-spacing:.04em}
.pdx-text{font-size:.875rem;line-height:1.65;color:var(--ink-soft);white-space:pre-line}
.pdx-more{background:none;border:0;padding:0;margin-top:.35rem;font-family:inherit;font-size:.875rem;font-weight:700;color:var(--ink);border-bottom:2px solid var(--accent);cursor:pointer}

.pdx-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.3rem .9rem}
.pdx-kv div{font-size:.875rem;line-height:1.45;color:var(--ink-soft);padding:.24rem 0;border-bottom:1px dotted var(--line-2)}
.pdx-kv b{color:var(--ink);font-weight:700}

.pdx-acc{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:.45rem;background:var(--cream-2)}
.pdx-acc summary{cursor:pointer;padding:.6rem .8rem;font-size:.875rem;font-weight:700;list-style:none;display:flex;align-items:center;gap:.5rem}
.pdx-acc summary::-webkit-details-marker{display:none}
.pdx-acc summary::after{content:"+";margin-left:auto;font-weight:800;color:var(--ink-soft)}
.pdx-acc[open] summary::after{content:"–"}
.pdx-acc ul{margin:0;padding:.1rem .8rem .75rem 1.6rem;list-style:disc}
.pdx-acc li{font-size:.875rem;line-height:1.55;color:var(--ink-soft)}
.pdx-rest{border:0;background:none;padding:0;margin:.5rem 0 0}
.pdx-rest > summary{cursor:pointer;list-style:none;font-family:inherit;font-size:.78rem;font-weight:700;
  color:var(--ink);border-bottom:2px solid var(--accent);display:inline-block;padding-bottom:1px}
.pdx-rest > summary::-webkit-details-marker{display:none}
.pdx-rest[open] > summary{margin-bottom:.6rem}
.pdx-rest-in{display:block}

.pdx-map{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--cream-2);aspect-ratio:16/9;position:relative;z-index:0}
.pdx-map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.9)}
.pdx-maploading{position:absolute;inset:0;display:grid;place-items:center;font-size:.875rem;color:var(--ink-soft)}
.pdx-map .leaflet-container{width:100%;height:100%;background:var(--cream-2);font-family:inherit}
.pdx-map .leaflet-control-attribution{font-size:.68rem;background:rgba(248,250,254,.85)}
.pdx-map .leaflet-popup-content{font-size:.875rem;line-height:1.45;margin:.6rem .8rem}
.pdx-map .leaflet-popup-content b{font-family:"Bricolage Grotesque";font-weight:800}
.pdx-map .leaflet-bar a{color:var(--ink)}

.pdx-tgs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.55rem}
.pdx-tg{font-family:inherit;font-size:.78rem;font-weight:700;padding:.34rem .7rem;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--cream-2);color:var(--ink-soft);transition:.18s var(--ease)}
.pdx-tg:hover{background:var(--cream-3)}
.pdx-tg.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}

.pdx-pin-wrap{background:none;border:0}
.pdx-pin{display:grid;place-items:center;border-radius:50%;font-family:"Bricolage Grotesque";font-weight:800;
  box-shadow:0 3px 8px -2px rgba(28,35,51,.55);border:2px solid var(--cream)}
.pdx-pin.sch{width:26px;height:26px;font-size:.68rem;background:var(--cream-3);color:var(--ink)}
.pdx-pin.sch.g{background:#2b7a5e;color:#fff}
.pdx-pin.sch.m{background:#e0a400;color:#1C2333}
.pdx-pin.sch.b{background:#d8503a;color:#fff}
.pdx-pin.sch.na{background:#808693;color:#fff;font-size:.68rem}
.pdx-pin.home{width:34px;height:34px;background:var(--accent);border-width:3px;position:relative}
.pdx-pin.home::after{content:"";width:13px;height:13px;background:var(--ink);
  clip-path:polygon(50% 0,100% 42%,100% 100%,0 100%,0 42%)}
.pdx-maplinks{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.55rem}
.pdx-lnk{font-size:.875rem;font-weight:700;color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:1px}

.pdx-tbl{width:100%;border-collapse:collapse;font-size:.875rem}
.pdx-tbl th{text-align:left;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;padding:.35rem .5rem .35rem 0;border-bottom:1px solid var(--line)}
.pdx-tbl td{padding:.42rem .5rem .42rem 0;border-bottom:1px solid var(--line-2);color:var(--ink-soft)}
.pdx-tbl td b{color:var(--ink)}
.pdx-tbl .up{color:#2b7a5e;font-weight:700}
.pdx-tbl .dn{color:#d8503a;font-weight:700}
.pdx-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.pdx-school{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;border-bottom:1px solid var(--line-2)}
.pdx-rate{flex:0 0 auto;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:"Bricolage Grotesque";font-weight:800;font-size:1rem;background:var(--cream-3);color:var(--ink)}
.pdx-rate.g{background:#2b7a5e;color:#fff}.pdx-rate.m{background:#e0a400;color:#1C2333}.pdx-rate.b{background:#d8503a;color:#fff}
.pdx-rate.na{font-size:.68rem;font-weight:700;color:var(--ink-soft)}
.pdx-school .nm{font-size:.875rem;font-weight:700;line-height:1.25}
.pdx-school .mt{font-size:.78rem;color:var(--ink-soft)}
.pdx-school .di{margin-left:auto;font-size:.78rem;color:var(--ink-soft);white-space:nowrap}

.pdx-risk{display:flex;gap:.75rem;align-items:flex-start;background:var(--cream-2);border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem}
.pdx-risk .sc{flex:0 0 auto;width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-family:"Bricolage Grotesque";font-weight:800;font-size:1.25rem;background:#d8503a;color:#fff}
.pdx-risk .sc.lo{background:#2b7a5e}.pdx-risk .sc.md{background:#e0a400;color:#1C2333}
.pdx-risk p{font-size:.875rem;line-height:1.5;color:var(--ink-soft);margin:.15rem 0 0}
.pdx-risk .zn{font-size:.875rem;font-weight:700}

.pdx-pay{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:.85rem .9rem}
.pdx-pay .big{font-family:"Bricolage Grotesque";font-weight:800;font-size:1.5rem;letter-spacing:-.02em;line-height:1}
.pdx-pay .big span{font-family:"Manrope";font-size:.875rem;font-weight:600;color:var(--ink-soft)}
.pdx-pay ul{list-style:none;margin:.6rem 0 0;padding:0}
.pdx-pay li{display:flex;justify-content:space-between;gap:.6rem;font-size:.875rem;color:var(--ink-soft);padding:.22rem 0;border-bottom:1px dotted var(--line-2)}
.pdx-pay li b{color:var(--ink);font-weight:700}
.pdx-pay .note{font-size:.68rem;color:var(--ink-soft);margin-top:.5rem;line-height:1.4}

.pdx-cta{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0 0}
.pdx-b{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:inherit;font-weight:800;font-size:1rem;padding:.8rem 1.1rem;border-radius:999px;border:0;cursor:pointer;background:var(--accent);color:var(--on-accent);transition:transform .18s var(--ease)}
.pdx-b:hover{transform:translateY(-1px)}
.pdx-b.dark{background:var(--ink);color:var(--cream)}
.pdx-b.ghost{background:none;border:1px solid var(--line);color:var(--ink)}

.pdx-sim{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.pdx-simc{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--cream-2);cursor:pointer;text-align:left;padding:0;font-family:inherit;transition:transform .18s var(--ease)}
.pdx-simc:hover{transform:translateY(-2px)}
.pdx-simc .ph{aspect-ratio:4/3;background:var(--cream-3) center/cover no-repeat;display:block}
.pdx-simc .in{padding:.5rem .6rem .65rem}
.pdx-simc .pr{font-family:"Bricolage Grotesque";font-weight:800;font-size:1rem}
.pdx-simc .ad{font-size:.78rem;color:var(--ink-soft);line-height:1.3;margin-top:.1rem}
.pdx-simc .sp{font-size:.68rem;color:var(--ink-soft);margin-top:.25rem}

.pdx-oh{display:inline-block;font-size:.875rem;font-weight:800;color:#1C2333;background:var(--accent);padding:.35rem .75rem;border-radius:9px}
.pdx-mls{font-size:.68rem;line-height:1.5;color:var(--ink-soft);margin-top:1.1rem;padding-top:.8rem;border-top:1px solid var(--line)}
.pdx-mls b{color:var(--ink)}
.pdx-skel{color:var(--ink-soft);font-size:.875rem;opacity:.7}

@media(max-width:880px){
  .pdx-body{grid-template-columns:1fr}
  .pdx-side{border-left:0;border-top:1px solid var(--line)}
  .pd.pdx{max-height:96vh}
  .pdx-stage{aspect-ratio:4/3;max-height:40vh}
}
@media(max-width:520px){
  .pd.pdx{border-radius:18px}
  .pdx-kv{grid-template-columns:1fr}
  .pdx-sim{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
}

.cs-gal{position:relative;background:var(--ink);padding:0}
.cs-mosaic{display:grid;grid-template-columns:1.62fr 1fr;gap:6px;height:clamp(320px,58vh,620px)}
.cs-mosaic.one,.cs-mosaic.two{grid-template-columns:1fr}
.cs-mosaic.two{grid-template-columns:1.62fr 1fr}
.cs-side-tiles{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;min-width:0}
.cs-mosaic.two .cs-side-tiles{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
.cs-tile{padding:0;border:0;margin:0;background:#1E2943;overflow:hidden;cursor:pointer;position:relative;display:block;min-width:0}
.cs-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.cs-tile:hover img{transform:scale(1.04)}
.cs-tile.empty{background:linear-gradient(135deg,#212D49,#111B32);cursor:default}
.cs-tile.big{grid-row:1/-1}
.cs-all{position:absolute;bottom:1rem;right:clamp(1rem,4vw,2.4rem);display:inline-flex;align-items:center;gap:.45rem;
  font-family:inherit;font-size:.78rem;font-weight:800;padding:.6rem 1rem;border-radius:999px;border:0;cursor:pointer;
  background:var(--cream);color:var(--ink);box-shadow:0 8px 24px -8px rgba(28,35,51,.7);transition:transform .18s var(--ease)}
.cs-all:hover{transform:translateY(-2px)}
.cs-all svg{width:15px;height:15px}
.cs-gal .pdx-tags{top:1rem;left:clamp(1rem,4vw,2.4rem)}
.cs-gal>.pdx-count{position:absolute;bottom:1rem;left:clamp(1rem,4vw,2.4rem)}

.pd-close{position:absolute;top:.8rem;right:.8rem;width:40px;height:40px;border-radius:50%;
  background:rgba(28,35,51,.55);color:var(--cream);display:grid;place-items:center;cursor:pointer;z-index:3;
  border:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:background .2s}
.pd-close:hover{background:rgba(28,35,51,.85)}
.pd-close svg{width:18px;height:18px}
.pd-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;
  background:rgba(28,35,51,.5);color:var(--cream);display:grid;place-items:center;cursor:pointer;z-index:3;
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:background .2s,transform .15s;border:none}
.pd-nav:hover{background:rgba(28,35,51,.85)}
.pd-nav:active{transform:translateY(-50%) scale(.92)}
.pd-nav svg{width:20px;height:20px}
.pd-nav-l{left:.7rem}
.pd-nav-r{right:.7rem}
.pd-thumbs{display:flex;gap:.5rem;padding:.7rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;flex-wrap:nowrap}
.pd-thumbs::-webkit-scrollbar{display:none}
.pd-thumbs button{flex:0 0 68px;height:52px;border-radius:9px;background:#1E2943 center/cover no-repeat;
  opacity:.55;transition:.2s;border:2px solid transparent;cursor:pointer;padding:0}
.pd-thumbs button.on{opacity:1;border-color:var(--accent)}

.cs-lb{position:fixed;inset:0;z-index:1200;background:rgba(28,35,51,.95);display:none;
  flex-direction:column;align-items:center;justify-content:center}
.cs-lb.on{display:flex}
.cs-lb-bar{position:absolute;top:0;left:0;right:0;height:56px;display:flex;align-items:center;
  justify-content:space-between;padding:0 clamp(.8rem,3vw,1.6rem);z-index:3}
.cs-lb-bar .pdx-count{position:static;background:rgba(248,250,254,.14);color:var(--cream)}
.cs-lb-x{width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:rgba(248,250,254,.14);color:var(--cream);transition:background .18s}
.cs-lb-x:hover{background:rgba(248,250,254,.28)}
.cs-lb-x svg{width:20px;height:20px}
.cs-lb-stage{width:min(1400px,94vw);height:calc(100vh - 190px);display:grid;place-items:center}
.cs-lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  border-radius:10px;box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.cs-lb-thumbs{position:absolute;bottom:0;left:0;right:0;padding:.7rem clamp(.8rem,3vw,1.6rem);
  background:linear-gradient(to top,rgba(28,35,51,.9),transparent)}
.cs-lb-thumbs button{flex:0 0 76px;height:56px;border-radius:8px}
.cs-lb .pd-nav{background:rgba(248,250,254,.16);top:50%}
.cs-lb .pd-nav:hover{background:rgba(248,250,254,.32)}
.cs-lb .pd-nav-l{left:clamp(.5rem,2vw,1.4rem)}
.cs-lb .pd-nav-r{right:clamp(.5rem,2vw,1.4rem)}

.cs-wrap{max-width:1240px;margin:0 auto;padding:clamp(1.2rem,3vw,2.2rem) clamp(1rem,4vw,2.4rem) 4rem}
.cs-head{padding-bottom:1.4rem;border-bottom:1px solid var(--line)}
.cs-price{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(2rem,5vw,3.2rem);
  letter-spacing:-.03em;line-height:1.05;margin:.4rem 0 .15rem}
.cs-addr{font-family:"Bricolage Grotesque";font-weight:700;font-size:clamp(1.15rem,2.6vw,1.6rem);
  letter-spacing:-.02em;line-height:1.2;margin:.5rem 0 .15rem}

.cs-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.4rem,3vw,2.8rem);margin-top:1.6rem;align-items:start}
.cs-main{min-width:0}
.cs-aside{min-width:0}
.cs-sticky{position:sticky;top:1.2rem}
.cs-empty{text-align:center;padding:5rem 1rem}
.cs-empty h1{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(1.6rem,4vw,2.4rem);margin-bottom:.6rem}
.cs-empty p{color:var(--ink-soft);margin-bottom:1.4rem}

@media(max-width:900px){
  .cs-cols{grid-template-columns:1fr;gap:1.6rem}
  .cs-sticky{position:static}
  .cs-mosaic{grid-template-columns:1fr;height:clamp(240px,42vh,360px)}
  .cs-side-tiles{display:none}
  .cs-tile.big{grid-row:auto}
  .cs-lb-stage{height:calc(100vh - 160px)}
  .cs-lb-thumbs button{flex:0 0 58px;height:44px}
}

.pdx-valrow{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.pdx-valbig{font-family:"Bricolage Grotesque";font-weight:800;font-size:1.5rem;letter-spacing:-.02em;line-height:1}
.pdx-delta{font-size:.875rem;font-weight:700;white-space:nowrap}
.pdx-chart{width:100%;height:auto;display:block;margin-top:.6rem;overflow:visible}
.pdx-chart rect[fill="transparent"]{cursor:crosshair}
.pdx-chart text{font-size:10px}
@media(max-width:900px){.pdx-chart text{font-size:15px}}

@media(max-width:900px){
  .pdx-more,.pdx-rest > summary,.pdx-lnk{min-height:44px;display:inline-flex;align-items:center;padding:.3rem 0}
  .pdx-acc summary{min-height:46px;padding:.75rem .85rem}
  .cs-all{min-height:44px;padding:.7rem 1.1rem}
  .pdx-b{min-height:48px}
  .pdx-zone{font-size:.78rem}
  .pdx-tag{font-size:.75rem;padding:.36rem .62rem}
  .pdx-h .n{font-size:.75rem}
  .pdx-rate.na{font-size:.75rem}
  .pdx-map.leaflet-touch .leaflet-bar a,.pdx-map .leaflet-bar a{width:44px;height:44px;line-height:44px;font-size:1.25rem}
  .pdx-pay .note{font-size:.78rem;line-height:1.55}
  .pdx-simc .sp,.pdx-simc .ad{font-size:.78rem}
  .pdx-tbl th{font-size:.72rem}
  .pdx-tg{min-height:44px;padding:.55rem .9rem}
  .pdx-simc{min-height:44px}
  .pdx-tbl td,.pdx-tbl th{padding-top:.6rem;padding-bottom:.6rem}
  .cs-lb-x{width:48px;height:48px}
  .cs-lb-thumbs button{flex:0 0 64px;height:48px}
  .pd-nav{width:48px;height:48px}
}
