:root{--g:#1f6f50;--bg:#f7f8f6;--t:#1d2521}*{box-sizing:border-box}
body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--t);background:var(--bg)}
a{color:var(--g)}header{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e3e6e1}
.logo{font-weight:800;font-size:1.4rem;text-decoration:none}nav a{margin-right:.8rem;text-decoration:none}
nav a.cta{background:var(--g);color:#fff;padding:.4rem .8rem;border-radius:6px}
main{max-width:960px;margin:0 auto;padding:1.5rem}.hero{text-align:center;padding:2.5rem 1rem}.hero h1{font-size:2.4rem;margin:.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.card,.box{background:#fff;border:1px solid #e3e6e1;border-radius:10px;padding:1rem 1.2rem}
.banner{background:#fff4d6;border:2px solid #e0b100;padding:.8rem 1rem;border-radius:8px;font-weight:700}
.note{background:#e8f3ee;padding:.8rem 1rem;border-radius:8px}
form{display:grid;gap:.9rem}fieldset{border:1px solid #e3e6e1;border-radius:8px;background:#fff}
label{display:block;font-weight:600}input,select,textarea{width:100%;padding:.5rem;font:inherit;border:1px solid #bfc6bf;border-radius:6px}
input[type=checkbox]{width:auto}.check label{display:inline;font-weight:400}.req{color:#b00020}
button[disabled]{padding:.7rem 1.2rem;font:inherit;opacity:.6}footer{text-align:center;padding:2rem 1rem;color:#555;font-size:.9rem}
table{border-collapse:collapse}td,th{padding:.25rem .8rem .25rem 0;text-align:left}

.mapwrap{margin:-.5rem 0 1rem}#map{height:62vh;min-height:320px;border-radius:10px;border:1px solid #e3e6e1;background:#e9ece8}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:0;margin:.6rem 0;font-size:.92rem}.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:.35rem;vertical-align:-1px;border:1px solid #fff;box-shadow:0 0 0 1px #9993}
.card img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;border-radius:8px;display:block}.card h2{margin:.6rem 0 .2rem;font-size:1.15rem}
.hero{padding:1.2rem 1rem}.small,.credit{font-size:.85rem;color:#555}.crumbs{font-size:.9rem}
nav a.cta{white-space:nowrap;display:inline-block}
@media(max-width:600px){header{padding:.6rem 1rem;gap:.4rem}nav{font-size:.85rem;line-height:2}nav a{margin-right:.5rem}#map{height:60vh}main{padding:1rem}.hero h1{font-size:1.9rem}}
