*{box-sizing:border-box}
:root{--ink:#172019;--muted:#66716a;--line:#dfe5df;--paper:#f7f8f5;--card:#fff;--accent:#1f6b45}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{line-height:1.5}
a{color:inherit}
.wrap{width:min(1180px,calc(100% - 32px));margin:auto}
.site-header{background:#fff;border-bottom:1px solid var(--line)}
.header-inner{height:58px;display:flex;align-items:center;gap:14px}
.brand{text-decoration:none;font-weight:850;font-size:20px;letter-spacing:-.04em}
.crumb{color:var(--muted);font-size:14px}
.hero{padding:58px 0 28px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--accent);margin:0 0 8px}
h1{font-size:clamp(36px,6vw,64px);line-height:1.02;letter-spacing:-.055em;margin:0 0 16px;max-width:800px}
.lede{font-size:19px;color:var(--muted);max-width:680px;margin:0}
.explorer{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(20,30,20,.06)}
.controls{padding:16px;display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.search{flex:1 1 300px}
.search input{width:100%;height:46px;border:1px solid #cfd7cf;border-radius:10px;padding:0 14px;font-size:15px;background:#fff;outline:none}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,107,69,.12)}
.filters{display:flex;gap:7px;align-items:center}
.filter{height:42px;border:1px solid #d4dbd4;background:#fff;border-radius:9px;padding:0 12px;font-weight:700;color:#4c574f;cursor:pointer}
.filter.active{background:#172019;color:#fff;border-color:#172019}
.filter span{font-size:12px;opacity:.7;margin-left:4px}
.map-shell{position:relative}
#map{height:600px;width:100%;background:#e7ece7}
.map-note{position:absolute;z-index:500;right:10px;bottom:10px;background:rgba(255,255,255,.9);font-size:11px;color:#5c665f;padding:5px 8px;border-radius:5px}
.results{border-top:1px solid var(--line)}
.results-head{padding:13px 16px;display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}
.results-head strong{color:var(--ink)}
.list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.item{padding:13px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;background:#fff}
.item:hover{background:#f2f6f2}
.item-name{font-weight:750;font-size:14px;line-height:1.3}
.item-meta{font-size:12px;color:var(--muted);margin-top:4px}
.badge{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:999px;background:#edf2ed;color:#4d5a51;margin-left:5px}
.content{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;padding:60px 0 35px}
.content h2,.source h2{font-size:24px;letter-spacing:-.025em;margin:0 0 10px}
.content p,.source p{color:#566158;max-width:720px}
.how ol{padding-left:22px;color:#566158}
.faq{padding:30px 0 20px;border-top:1px solid var(--line)}
.faq h2{font-size:24px;letter-spacing:-.025em;margin:0 0 14px}
.faq details{border:1px solid var(--line);border-radius:10px;padding:11px 14px;background:#fff;margin-bottom:8px}
.faq summary{font-weight:750;cursor:pointer;font-size:15px}
.faq summary::-webkit-details-marker{color:var(--accent)}
.faq details[open] summary{color:var(--accent)}
.faq details p{color:#566158;margin:8px 0 0;line-height:1.55}
.source{border-top:1px solid var(--line);padding:28px 0 60px}
.source p{font-size:14px;margin:8px 0}
.updated{font-size:12px!important;color:#7a837c!important}
.footer{border-top:1px solid var(--line);padding:22px 0;color:#707970;font-size:13px;background:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.empty{padding:28px 16px;color:var(--muted);grid-column:1/-1}
.leaflet-popup-content{margin:12px 14px}
.popup-title{font-weight:800;font-size:15px;line-height:1.3}
.popup-type{color:#66716a;font-size:12px;margin-top:3px}
@media(max-width:800px){#map{height:500px}.list{grid-template-columns:1fr 1fr}.content{grid-template-columns:1fr;gap:25px}}
@media(max-width:520px){.wrap{width:min(100% - 20px,1180px)}.hero{padding-top:40px}.list{grid-template-columns:1fr}.filters{width:100%}.filter{flex:1}.map-note{font-size:9px}.controls{padding:10px}}