
:root{--bg:oklch(.985 .008 85);--ink:oklch(.17 .02 250);--sea:oklch(.44 .11 232);--sea-deep:oklch(.28 .08 238);
--terracotta:oklch(.62 .15 40);--gold:oklch(.79 .14 85);--border:oklch(.9 .015 85);--muted-fg:oklch(.45 .02 250);
--serif:"Fraunces",Georgia,serif;--sans:"Inter",system-ui,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--sans);background:var(--bg);color:var(--ink)}
a{color:inherit;text-decoration:none}
.hdr{background:var(--bg);border-bottom:1px solid var(--border);position:relative;z-index:1100}
.wrap{max-width:84rem;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;gap:1.6rem;height:4rem}
.brand{font-family:var(--serif);font-size:1.1rem}.brand .mark{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:999px;background:var(--gold);color:var(--ink);font-style:italic;margin-right:.45rem}
.hdr nav{display:flex;gap:1.4rem;font-size:.85rem;margin-left:auto}
.hdr nav a:hover{color:var(--terracotta)}
.btn-cta{background:var(--sea-deep);color:#fdfcf9;border-radius:999px;padding:.55rem 1.1rem;font-size:.85rem;font-weight:600;white-space:nowrap}
#map-wrap{position:relative;height:calc(100svh - 4rem);min-height:540px}
#bigmap{position:absolute;inset:0}
#map-sidebar{position:absolute;z-index:1000;top:1rem;left:1rem;background:#fff;border:1px solid var(--border);border-radius:1rem;box-shadow:0 20px 40px -24px rgba(0,0,0,.35);padding:1.1rem 1.2rem;width:min(320px,calc(100vw - 2rem))}
#map-sidebar h1{font-family:var(--serif);font-weight:500;font-size:1.25rem}
#map-sidebar p{font-size:.8rem;color:var(--muted-fg);margin:.3rem 0 .7rem}
#bigmap-search{width:100%;border:1px solid var(--border);border-radius:.6rem;padding:.55rem .8rem;font:inherit;font-size:.85rem;outline:none}
#bigmap-search:focus{border-color:var(--sea)}
.search-item{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem .35rem;font-size:.85rem;border-bottom:1px solid var(--border);cursor:pointer}
.search-item:hover{color:var(--terracotta)}
.search-item .cnt{color:var(--muted-fg);font-size:.75rem}
#map-legend{position:absolute;z-index:1000;bottom:1.4rem;left:1rem;background:#fff;border:1px solid var(--border);border-radius:.8rem;padding:.8rem .95rem;box-shadow:0 14px 30px -20px rgba(0,0,0,.4)}
.leg-title{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.45rem;color:var(--muted-fg)}
.leg-item{display:flex;align-items:center;gap:.5rem;font-size:.76rem;margin-top:.22rem}
.leg-item i{width:.95rem;height:.95rem;border-radius:.25rem;display:inline-block}
.map-popup h3{font-family:var(--serif);font-weight:500;font-size:1.05rem}
.map-popup .count{font-size:.8rem;color:var(--muted-fg);margin:.25rem 0 .6rem}
.map-popup .btn{display:block;text-align:center;font-size:.8rem;font-weight:600;border:1px solid var(--border);border-radius:.55rem;padding:.5rem .7rem;margin-top:.4rem;color:var(--sea-deep)}
.map-popup .btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
.map-popup .btn.dark{background:var(--sea-deep);color:#fdfcf9;border-color:var(--sea-deep)}
.leaflet-popup-content-wrapper{border-radius:.9rem;box-shadow:0 18px 40px -18px rgba(0,0,0,.35)}
.leaflet-popup-content{margin:1rem 1.1rem;min-width:190px}
@media(max-width:720px){.hdr nav{display:none}#map-sidebar{width:calc(100vw - 2rem)}}
