*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{--black:#0a0a0a;--white:#fff;--yellow:#FFD700;--gray:#f5f5f3;--border:#e0e0e0;}
html,body{height:100%;font-family:'DM Sans',sans-serif;background:var(--white);color:var(--black);}
nav{position:fixed;top:0;left:0;right:0;background:var(--white);border-bottom:1px solid var(--border);padding:0 5%;height:60px;display:flex;align-items:center;justify-content:space-between;z-index:200;}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:2px;color:var(--black);text-decoration:none;display:inline-flex;align-items:center;line-height:1;gap:0;}
.nav-logo .lw{background:var(--black);color:var(--yellow);padding:3px 5px 3px;margin-left:2px;display:inline-flex;align-items:center;line-height:1;}
.nav-back{font-size:13px;font-weight:600;color:#555;text-decoration:none;}
.nav-back:hover{color:var(--black);}
.ph{padding:92px 5% 44px;background:var(--black);background-image:radial-gradient(circle,rgba(255,255,255,.03) 1px,transparent 1px);background-size:22px 22px;}
.ph h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,6vw,76px);color:var(--white);line-height:1;letter-spacing:1px;margin-bottom:10px;}
.ph h1 span{color:var(--yellow);}
.ph p{font-size:16px;color:#aaa;max-width:480px;line-height:1.6;}
.legend{display:flex;gap:22px;flex-wrap:wrap;padding:16px 5%;background:var(--black);border-bottom:1px solid #1c1c1c;}
.li{display:flex;align-items:center;gap:7px;font-size:13px;color:#aaa;}
.ld{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.ld.a{background:#22c55e;}.ld.l{background:#FFD700;}.ld.f{background:#ef4444;}
.controls{padding:16px 5%;background:var(--white);border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.sw{position:relative;flex:1;min-width:200px;}
.sw svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none;}
#si{width:100%;padding:10px 11px 10px 36px;border:1px solid var(--border);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;}
#si:focus{border-color:#888;}
.fbs{display:flex;gap:5px;flex-wrap:wrap;}
.fb{padding:8px 13px;font-size:13px;font-weight:600;border:1px solid var(--border);background:var(--white);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .12s;}
.fb.on,.fb:hover{background:var(--black);color:var(--white);border-color:var(--black);}
.layout{display:grid;grid-template-columns:360px 1fr;height:calc(100vh - 60px - 88px - 44px - 50px);min-height:460px;}
@media(max-width:768px){.layout{grid-template-columns:1fr;height:auto;}}
.slist{overflow-y:auto;border-right:1px solid var(--border);}
.si-item{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;transition:background .1s;}
.si-item:hover{background:#fafafa;}
.si-item.sel{background:#fffbea;border-left:3px solid var(--yellow);padding-left:15px;}
.si-info{flex:1;min-width:0;}
.si-name{font-weight:600;font-size:14px;color:var(--black);}
.si-reg{font-size:12px;color:#888;margin-top:1px;}
.si-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.si-spots{font-family:'Bebas Neue',sans-serif;font-size:17px;line-height:1;color:var(--black);}
.si-slabel{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.5px;}
.pill{font-size:11px;font-weight:600;padding:3px 7px;letter-spacing:.3px;text-transform:uppercase;}
.pill.a{background:#dcfce7;color:#166534;}.pill.l{background:#fef9c3;color:#854d0e;}.pill.f{background:#fee2e2;color:#991b1b;}
.si-btn{font-size:11px;font-weight:600;padding:5px 10px;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;text-decoration:none;display:inline-block;}
.si-btn.enq{background:var(--black);color:var(--white);}
.si-btn.enq:hover{background:#333;}
.si-btn.wl{background:#1c1c1c;color:#888;}
.no-r{padding:36px;text-align:center;color:#888;font-size:14px;}
#map{width:100%;height:100%;min-height:460px;z-index:1;}
@media(max-width:768px){#map{height:400px;}}
.leaflet-popup-content-wrapper{border-radius:0;border:1px solid #ddd;box-shadow:0 4px 14px rgba(0,0,0,.1);padding:0;}
.leaflet-popup-content{margin:0;}
.mp{padding:15px;}
.mp h4{font-family:'Bebas Neue',sans-serif;font-size:19px;letter-spacing:1px;color:#0a0a0a;margin-bottom:2px;}
.mp-reg{font-size:12px;color:#888;margin-bottom:9px;}
.mp-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:5px;color:#333;}
.mp-sp{font-family:'Bebas Neue',sans-serif;font-size:19px;color:#0a0a0a;}
.mp-sub{font-size:12px;color:#888;margin-top:3px;}
.mp-btn{display:block;margin-top:12px;background:#0a0a0a;color:#fff;padding:9px;text-align:center;text-decoration:none;font-size:13px;font-weight:600;}
.mp-btn:hover{background:#333;}
.mp-wl{display:block;margin-top:12px;background:#1c1c1c;color:#888;padding:9px;text-align:center;font-size:13px;font-weight:600;}
footer{background:#050505;color:#555;padding:20px 5%;display:flex;align-items:center;justify-content:space-between;font-size:13px;}
.flogo{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;color:var(--white);display:inline-flex;align-items:center;line-height:1;gap:0;}
.flogo .lw{background:#1a1a1a;color:var(--yellow);padding:2px 4px 2px;margin-left:2px;display:inline-flex;align-items:center;line-height:1;}
/* ── UNAVAILABLE PILL ── */
.pill.u{background:#2a2a2a;color:#555;}
.si-btn.unavail{background:#1c1c1c;color:#444;cursor:not-allowed;font-size:11px;font-weight:600;padding:5px 10px;border:none;font-family:'DM Sans',sans-serif;white-space:nowrap;display:inline-block;}
.ld.u{background:#555;}

/* ── SCROLL FIX — map requires click to enable scroll zoom ── */
#map{cursor:pointer;}
#map.active-zoom{cursor:grab;}

/* ── MOBILE: hide map, show only list ── */
@media(max-width:600px){
  .layout{grid-template-columns:1fr;height:auto;}
  #map{display:none;}
  .slist{height:60vh;overflow-y:auto;border-right:none;}
}

/* ── SCROLL HINT BAR ── */
#scrollHint{padding:10px 5%;background:#fffdf0;border-bottom:1px solid #FFD70044;font-size:13px;color:#666;display:flex;align-items:center;}
@media(max-width:600px){#scrollHint{display:none;}}
