.leaflet-popup-content-wrapper{background:var(--navy-600);color:var(--sand-300);border-radius:8px;font:500 11px/1.5 var(--font-mono)}
.leaflet-popup-content a{color:var(--gold-300)}
.leaflet-popup-tip{background:var(--navy-600)}
.dsearch input{width:min(440px,100%);font:400 12.5px/1.5 var(--font-mono);color:var(--ink);background:var(--pg-alt);border:1px solid var(--line);border-radius:14px;padding:13px 16px;outline:none;margin-top:18px}
.dsearch input:focus{border-color:var(--navy-600);box-shadow:0 0 0 2px var(--gold-400)}
.dwrap{display:grid;grid-template-columns:270px 1fr;gap:28px;align-items:start}
.rail{position:sticky;top:18px;background:var(--card);border:1px solid var(--card-line);display:flex;flex-direction:column}
.rail .rt{font:700 9.5px/1.4 var(--font-mono);letter-spacing:.2em;color:var(--mut);padding:14px 16px 8px}
.rl{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;font:600 10.5px/1.4 var(--font-mono);letter-spacing:.1em;color:var(--ink);text-align:left;border-top:1px dashed var(--hair)}
.rl i{font-style:normal;color:var(--mut)}
.rl.on{background:var(--olive-600);color:var(--sand-300)}
.rl.on i{color:var(--olive-100)}
.ropen{display:flex;align-items:center;gap:10px;padding:13px 16px;border-top:1px solid var(--card-line);font:600 9.5px/1.4 var(--font-mono);letter-spacing:.12em;color:var(--mut);cursor:pointer}
.ropen input{position:absolute;opacity:0;width:1px;height:1px}
.ropen .trk{width:32px;height:18px;border-radius:10px;background:var(--sand-400);position:relative;flex:none;transition:background .2s}
.ropen .trk::after{content:"";position:absolute;left:3px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--sand-50);transition:left .2s}
.ropen input:checked+.trk{background:var(--olive-600)}
.ropen input:checked+.trk::after{left:17px}
.spot{display:grid;grid-template-columns:1fr 1.1fr;border:1px solid var(--card-line);margin-bottom:18px}
.spot .sph{position:relative;min-height:230px;overflow:hidden}
.spot .sph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.spot .spb{background:var(--olive-600);color:var(--sand-300);padding:24px 28px;display:flex;flex-direction:column;gap:9px;justify-content:center}
.spot .spb .k{font:600 10.5px/1.4 var(--font-mono);letter-spacing:.24em;color:var(--gold-100)}
.spot .spb b{font:900 clamp(20px,2.4vw,27px)/1 var(--font-display);text-transform:uppercase}
.spot .spb p{margin:0;font:400 11px/1.8 var(--font-mono)}
.spot .spb a{align-self:flex-start;font:600 10.5px/1.4 var(--font-mono);letter-spacing:.08em;border:1.5px solid var(--sand-300);color:var(--sand-300);padding:9px 15px;border-radius:20px;margin-top:4px}
.spot .spb a:hover{border-color:var(--gold-400);color:var(--gold-400)}
.brow{display:grid;grid-template-columns:64px 1fr auto auto;gap:16px;align-items:center;padding:12px 0;border-top:1px dashed var(--hair);color:var(--ink)}
.brow:hover{color:var(--red-500)}
[data-mode="dark"] .brow:hover{color:var(--gold-300)}
.brow .bimg{position:relative;display:block;width:64px;height:64px;overflow:hidden}
.brow .bimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.brow .bt{display:flex;flex-direction:column;gap:2px;min-width:0}
.brow .bt b{font:800 19px/1 var(--font-display);text-transform:uppercase}
.brow .bt span{font:400 9.5px/1.6 var(--font-mono);color:var(--mut)}
.brow .ar{font:900 16px/1 var(--font-display)}
.mapwrap{display:grid;grid-template-columns:1.6fr 1fr;border:1px solid var(--card-line);height:min(72vh,640px)}
.mapwrap .mapbox{height:100%}
#dirmap{min-height:400px}
.near{background:var(--card);display:flex;flex-direction:column;min-height:0}
.nt-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:14px 18px 8px;border-bottom:1px solid var(--card-line)}
.near .nt{font:700 9.5px/1.4 var(--font-mono);letter-spacing:.2em;color:var(--mut)}
.nt-count{font:600 9.5px/1.4 var(--font-mono);letter-spacing:.08em;color:var(--link)}
.near-items{overflow-y:auto;flex:1;min-height:0}
.near-empty{margin:0;padding:18px;font:400 10.5px/1.7 var(--font-mono);color:var(--mut)}
.near a{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:center;padding:10px 18px;border-top:1px dashed var(--hair);color:var(--ink)}
.near a:hover{color:var(--red-500)}
.near .pin{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:#FBF7EE;font:700 11px var(--font-display)}
.near b{font:800 14px/1.2 var(--font-display);text-transform:uppercase}
.near .nm{display:flex;flex-direction:column}
.near .nm span{font:400 9px/1.5 var(--font-mono);color:var(--mut)}
@media (max-width:1000px){.dwrap{grid-template-columns:1fr}.rail{position:static}.mapwrap{grid-template-columns:1fr}.spot{grid-template-columns:1fr}}
/* map pin colours — mirrored in directory.js for the Leaflet markers */
.pin--olive{background:var(--olive-600)}
.pin--red{background:var(--red-500)}
.pin--gold{background:var(--gold-400)}
.pin--navy{background:var(--navy-600)}
.pin--dark{background:var(--sand-900)}
.pin--sage{background:var(--olive-500)}
.rail-note{padding:12px 16px;border-top:1px solid var(--card-line);font:500 9px/1.7 var(--font-mono);color:var(--mut)}
.dcount{font:500 9.5px/1.7 var(--font-mono);color:var(--mut);letter-spacing:.08em;margin:12px 0 0}
.dnores{font:400 11px/1.8 var(--font-mono);color:var(--mut);margin:14px 0 0}
.brows{border-bottom:2px solid var(--ink)}

/* list / map views — one filter state, two ways to read it */
.dtools{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.dtools .dsearch{flex:1 1 260px}
#dviews[data-view="list"] .dv-map{display:none}
#dviews[data-view="map"] .dv-list{display:none}
.map-note{margin-top:12px}

/* marker clusters */
.map-cluster{background:none;border:none}
.mc{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;font:900 13px/1 var(--font-display);color:var(--sand-50);border:2px solid var(--sand-50);box-shadow:0 3px 10px rgba(19,26,50,.35)}
.mc--s{background:var(--olive-600)}
.mc--m{background:var(--navy-600)}
.mc--l{background:var(--red-500);font-size:15px}
.map-pin span{transition:transform .15s,box-shadow .15s}
.map-pin.is-hot{z-index:900!important}
.map-pin.is-hot span{transform:scale(1.5);box-shadow:0 0 0 4px var(--gold-400),0 4px 10px rgba(19,26,50,.5)}
.map-cluster.is-hot{z-index:900!important}
.map-cluster.is-hot .mc{box-shadow:0 0 0 4px var(--gold-400),0 4px 12px rgba(19,26,50,.5)}
.mc{transition:box-shadow .15s}
.pop-cat{display:block;margin-top:3px;font:500 9.5px/1.4 var(--font-mono);letter-spacing:.08em;color:var(--navy-300)}
@media (max-width:1000px){
 .mapwrap{height:auto}
 .mapwrap .mapbox{height:56vh}
 .near-items{max-height:42vh}
}
