:root{
  --bg:#fbf8f3;
  --ink:#1a1a1a;
  --muted:#5a5a5a;
  --accent:#9a3a16;
  --accent-soft:#c5552a;
  --line:#e6dfd2;
  --card:#ffffff;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 4px 12px rgba(0,0,0,.04);
  --maxw:1180px;
  --radius:6px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  line-height:1.65;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.25;color:var(--ink);margin:1.6em 0 .5em;font-weight:700}
h1{font-size:clamp(1.75rem,3.5vw,2.5rem);margin-top:0}
h2{font-size:clamp(1.35rem,2.4vw,1.7rem);border-bottom:1px solid var(--line);padding-bottom:.3em}
h3{font-size:1.15rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.4em}
li{margin:.25em 0}
hr{border:0;border-top:1px solid var(--line);margin:2em 0}
code{font-family:"SF Mono",Menlo,Consolas,monospace;background:#f1ece2;padding:1px 5px;border-radius:3px;font-size:.92em}
pre{background:#1a1a1a;color:#f8f8f8;padding:14px 16px;border-radius:var(--radius);overflow-x:auto;font-size:.85rem;line-height:1.5}
pre code{background:transparent;padding:0;color:inherit}
table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.95rem}
th,td{padding:.5em .7em;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f1ece2;font-weight:600}

/* layout */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:58px;gap:20px}
.brand{font-weight:700;font-size:1.05rem;color:var(--ink);letter-spacing:-.01em}
.brand span{color:var(--accent)}
.nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.94rem}
.nav a{color:var(--muted);text-decoration:none}
.nav a:hover,.nav a[aria-current="page"]{color:var(--accent)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:6px 10px;font-size:.9rem;cursor:pointer}
@media(max-width:760px){
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;top:58px;left:0;right:0;background:#fff;flex-direction:column;padding:14px 20px;border-bottom:1px solid var(--line);gap:10px}
  .nav.open{display:flex}
}

main{padding:28px 0 60px}
.hero{padding:36px 0 24px}
.hero h1{margin-bottom:.3em}
.hero .lead{font-size:1.1rem;color:var(--muted);max-width:62ch}

/* map */
.map-wrap{position:relative;margin:18px 0 28px;border-radius:var(--radius);overflow:hidden;background:#dde6ec;box-shadow:var(--shadow);border:1px solid var(--line)}
.map{height:520px;width:100%;background:#dde6ec}
.map-fallback{display:none}
.no-js .map{display:none}
.no-js .map-fallback{display:block}
.map-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:#fff;border-bottom:1px solid var(--line)}
.cat-btn{background:#f1ece2;border:1px solid var(--line);color:var(--ink);padding:5px 11px;border-radius:999px;font-size:.85rem;cursor:pointer;font-family:inherit;line-height:1.4}
.cat-btn:hover{background:#e8e0cf}
.cat-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
@media(max-width:600px){.map{height:420px}}

/* poi list */
.poi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin:1.2em 0}
.poi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.poi-card h3{margin:0 0 4px;font-size:1.02rem}
.poi-card .meta{font-size:.82rem;color:var(--muted);margin-bottom:6px}
.poi-card p{font-size:.92rem;margin:0}
.tag{display:inline-block;background:#f1ece2;color:var(--ink);font-size:.72rem;padding:1px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}

/* embed box */
.embed-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:1.5em 0}
.embed-box h3{margin:0 0 8px}
.embed-box textarea{width:100%;height:64px;font-family:"SF Mono",Menlo,Consolas,monospace;font-size:.82rem;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fbf8f3;resize:vertical}
.embed-box button{background:var(--accent);color:#fff;border:0;padding:7px 14px;border-radius:4px;font-size:.88rem;cursor:pointer;margin-top:8px;font-family:inherit;font-weight:600}
.embed-box button:hover{background:var(--accent-soft)}
.embed-box .copied{color:#2c7a3c;font-size:.85rem;margin-left:10px}

/* downloads */
.downloads{display:flex;flex-wrap:wrap;gap:10px;margin:1em 0}
.dl-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);color:var(--ink);padding:8px 14px;border-radius:4px;font-size:.9rem;font-weight:600}
.dl-btn:hover{background:#f1ece2;text-decoration:none}

/* page grid for index pages */
.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:1.5em 0}
.page-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;transition:transform .12s,box-shadow .12s}
.page-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}
.page-card h3{margin:0 0 6px;color:var(--accent);font-size:1.05rem}
.page-card p{margin:0;color:var(--muted);font-size:.92rem}

/* faq */
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;margin:8px 0}
.faq summary{font-weight:600;cursor:pointer;list-style:none;outline:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+ ";color:var(--accent);font-weight:700;margin-right:6px}
.faq details[open] summary::before{content:"− "}
.faq details[open]{padding-bottom:14px}
.faq p{margin:8px 0 0}

/* breadcrumbs */
.crumbs{font-size:.85rem;color:var(--muted);margin:8px 0 14px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent)}

/* footer */
.site-footer{background:#1a1a1a;color:#cfcfcf;padding:36px 0 28px;font-size:.9rem;margin-top:40px}
.site-footer a{color:#fff}
.site-footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin-bottom:22px}
.site-footer h4{color:#fff;margin:0 0 8px;font-size:.95rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:4px 0}
.site-footer .copy{border-top:1px solid #333;padding-top:18px;color:#888;font-size:.82rem}

/* leaflet overrides */
.leaflet-container{font:inherit}
.leaflet-popup-content{margin:10px 14px;font-size:.92rem;line-height:1.45}
.leaflet-popup-content h4{margin:0 0 4px;font-size:1rem}
.leaflet-popup-content .pop-meta{color:var(--muted);font-size:.82rem;margin-bottom:4px}
.leaflet-popup-content p{margin:4px 0 0}
.leaflet-control-attribution{display:none !important}
.marker-cluster-small{background:rgba(154,58,22,.4)}
.marker-cluster-small div{background:rgba(154,58,22,.7);color:#fff}
.marker-cluster-medium{background:rgba(154,58,22,.5)}
.marker-cluster-medium div{background:rgba(154,58,22,.8);color:#fff}
.marker-cluster-large{background:rgba(154,58,22,.6)}
.marker-cluster-large div{background:rgba(154,58,22,.9);color:#fff}

/* utility */
.muted{color:var(--muted)}
.small{font-size:.88rem}
.center{text-align:center}
.tight{margin-top:.4em}
.callout{background:#fff;border-left:3px solid var(--accent);padding:12px 16px;margin:1em 0;border-radius:4px}
.callout strong{color:var(--accent)}
