/* Interactive lot map */
.lotmap{position:relative;border-radius:18px;overflow:hidden;background:#1b2a1e;box-shadow:var(--shadow);border:1px solid var(--line)}
.lotmap .lm-map{position:absolute;inset:0}
.lotmap.full{height:min(78svh,760px);min-height:520px}
.lotmap.compact{height:min(70svh,620px);min-height:460px}
@media (max-width:760px){.lotmap.full,.lotmap.compact{height:72svh;min-height:480px;border-radius:14px}}

/* top bar */
.lm-bar{position:absolute;z-index:500;top:12px;left:12px;right:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;pointer-events:none}
.lm-bar>*{pointer-events:auto}
.lm-chip{background:#fff;border:0;border-radius:999px;padding:9px 14px;font:800 13px var(--sans);color:var(--ink);box-shadow:0 4px 14px rgba(0,0,0,.18);
  cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.lm-chip[aria-pressed="true"]{background:var(--ink);color:#fff}
.lm-chip .dot{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.lm-search{display:flex;background:#fff;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.18);overflow:hidden}
.lm-search input{border:0;padding:9px 12px 9px 16px;font:700 14px var(--sans);width:150px;outline:0}
.lm-search button{border:0;background:var(--blue);color:#fff;padding:0 14px;cursor:pointer;font-weight:800}
.lm-tiers{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:760px){.lm-tiers{display:none}.lm-bar{top:10px;left:10px;right:10px}}

/* counter + zoom-to */
.lm-count{position:absolute;z-index:500;left:12px;bottom:12px;background:rgba(16,24,32,.86);color:#fff;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.35;backdrop-filter:blur(6px)}
.lm-count b{font-family:var(--display);font-weight:400;font-size:26px;display:block;line-height:1}
.lm-explore{position:absolute;z-index:600;left:50%;top:64%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:10px;text-align:center;pointer-events:none}
.lm-explore .btn{pointer-events:auto;box-shadow:0 10px 30px rgba(0,0,0,.35);animation:pulse 2.2s infinite}
.lm-explore p{color:#fff;font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.6);font-size:15px}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.lm-explore.hide{display:none}
.lm-back{position:absolute;z-index:500;left:12px;bottom:84px}
.lm-back[hidden]{display:none}

/* legend */
.lm-legend{position:absolute;z-index:500;right:12px;top:60px;background:rgba(255,255,255,.95);border-radius:12px;padding:10px 12px;font-size:12px;font-weight:700;display:grid;gap:5px;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.lm-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--c)}
@media (max-width:760px){.lm-legend{display:none}}

/* panel (drawer desktop / sheet mobile) */
.lm-panel{position:absolute;z-index:700;top:12px;right:12px;bottom:12px;width:360px;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.35);
  transform:translateX(calc(100% + 24px));transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:hidden}
.lm-panel.open{transform:none}
@media (max-width:760px){
  .lm-panel{top:auto;left:0;right:0;bottom:0;width:auto;border-radius:18px 18px 0 0;max-height:60%;transform:translateY(105%)}
  .lm-panel.open{transform:none}
}
.lm-panel .ph{padding:18px 20px 14px;border-bottom:1px solid var(--line);position:relative}
.lm-panel .ph small{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.lm-panel .ph h3{font-size:34px;margin-top:2px}
.lm-panel .x{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;border:0;background:var(--sand);cursor:pointer;font-size:20px;line-height:1}
.lm-panel .pb{padding:16px 20px;overflow:auto;display:grid;gap:14px}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
.badge.available{background:#e3f6ea;color:#1c6b39}.badge.sold{background:#eceef1;color:#555c66}.badge.pending{background:#fff1d6;color:#8a5a00}.badge.hold{background:#fff1d6;color:#8a5a00}
.lm-price{font-family:var(--display);font-size:40px;line-height:1}
.lm-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lm-specs div{background:var(--sand);border-radius:10px;padding:10px 12px}
.lm-specs span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.lm-specs b{font-size:16px}
.lm-inc{list-style:none;display:grid;gap:6px;font-size:14px;color:var(--ink-2)}
.lm-inc li::before{content:"\2713";color:var(--green);font-weight:900;margin-right:8px}
.lm-actions{display:grid;gap:8px}
.lm-actions .btn{width:100%}
.lm-links{display:flex;gap:8px}.lm-links .btn{flex:1;padding:11px 8px;font-size:13px}
.lm-note{font-size:12px;color:var(--ink-3)}

/* list view */
.lm-list{position:absolute;inset:0;z-index:650;background:#fff;overflow:auto;display:none}
.lm-list.open{display:block}
.lm-list table{width:100%;border-collapse:collapse;font-size:15px}
.lm-list th{position:sticky;top:0;background:#fff;text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:70px 14px 10px;border-bottom:2px solid var(--line)}
.lm-list td{padding:12px 14px;border-bottom:1px solid var(--line)}
.lm-list tr{cursor:pointer}.lm-list tbody tr:hover{background:#f3f7fd}
.lm-list .sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;background:var(--c)}

/* leaflet overrides */
.leaflet-container{font-family:var(--sans)}
.lm-tip{background:#101820;color:#fff;border:0;border-radius:10px;padding:8px 11px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.lm-tip b{font-family:var(--display);font-weight:400;font-size:20px}
.lm-tip:before{border-top-color:#101820!important}
.lm-num{background:transparent;border:0;box-shadow:none;color:#fff;font-weight:800;font-size:11px;text-shadow:0 1px 3px rgba(0,0,0,.9);padding:0}
.lm-num:before{display:none}
.lm-street{position:absolute;width:max-content;color:#fff;font:800 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.95);pointer-events:none}
.lm-town{position:absolute;width:max-content;background:#fff;color:var(--ink);border-radius:999px;padding:5px 10px;font:800 12px var(--sans);white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.3)}
.lm-town small{color:var(--ink-3);font-weight:700}
.lm-pin{width:22px;height:22px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 0 0 0 rgba(212,49,42,.7);animation:ping 1.8s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(212,49,42,.7)}70%{box-shadow:0 0 0 22px rgba(212,49,42,0)}100%{box-shadow:0 0 0 0 rgba(212,49,42,0)}}
.lm-pinlabel{background:var(--red);color:#fff;border-radius:8px;padding:6px 10px;font:800 13px var(--sans);white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.35)}

@media (max-width:760px){.lotmap .leaflet-control-zoom{display:none}}
