:root{--deep:#203e32;--green:#2c6348;--forest:#3b7652;--muted:#667a6c;--paper:#f5f5ef;--cream:#eee8d9;--line:#dbe3d8;--white:#fff;--ink:#1d3529}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:inherit}button,input,select{font:inherit}
:focus-visible{outline:3px solid #b99649;outline-offset:3px}
.skip{position:absolute;top:-60px;left:16px;z-index:99;padding:12px;background:var(--white)}
.skip:focus{top:8px}
.topbar{position:sticky;top:0;z-index:400;background:#fffdf9eb;backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:space-between;gap:22px;padding:14px max(22px,calc((100vw - 1200px)/2));
  border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:0}
.brandmark{width:42px;height:42px;background:var(--deep);color:#f3e9cf;border-radius:11px;display:grid;place-items:center;
  font-size:1.2rem;font-family:Georgia,serif;font-weight:700}
.brand strong{display:block;font-size:.91rem;letter-spacing:.1em}
.brand small{display:block;color:var(--muted);font-size:.66rem;margin-top:2px}
.mainnav{display:flex;align-items:center;gap:26px}
.mainnav a{text-decoration:none;color:#43594a;font-size:.88rem;font-weight:600}
.mainnav a:hover{text-decoration:underline;text-underline-offset:7px}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);min-height:490px;
 background:#e8ede4;overflow:hidden;position:relative}
.hero-content{padding:80px max(25px,calc((100vw - 1200px)/2)) 58px max(25px,calc((100vw - 1200px)/2));
 max-width:760px;z-index:1}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:750;color:var(--forest);margin:0 0 13px}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.8rem,5vw,5.1rem);letter-spacing:-.045em;line-height:1.1;margin:0}
.hero h1 em{color:var(--forest);font-weight:400}
.lead{font-size:1.08rem;line-height:1.7;max-width:570px;color:#52675a;margin:22px 0 26px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;text-decoration:none;padding:13px 18px;border-radius:8px;font-size:.9rem;font-weight:650}
.btn.primary{background:var(--deep);color:#fff}.btn.subtle{border:1px solid #a7bbae;color:var(--deep);background:#ffffff7b}
.notice{font-size:.75rem;line-height:1.5;color:#718273;margin-top:30px;max-width:470px}
.hero-art{position:relative;isolation:isolate;min-height:400px;
  background:radial-gradient(circle at 56% 22%,#f9eed6 0,transparent 52%),
             linear-gradient(150deg,#dce7d9,#becfb6)}
.sun{position:absolute;right:26%;top:13%;width:135px;height:135px;border-radius:50%;background:#e9dbb7;box-shadow:0 0 80px #e9dbb798}
.ridge{position:absolute;inset:auto -20% -18% -20%;height:75%;border-radius:50% 50% 0 0}
.ridge-back{background:#8cb18e;transform:rotate(-10deg);bottom:-30%;height:85%}
.ridge-front{background:#3d7255;transform:rotate(11deg);bottom:-44%;height:85%}
.hero-caption{position:absolute;right:24px;bottom:23px;z-index:2;color:#fffbe9;font-size:.67rem;font-weight:700;letter-spacing:.23em}
.content-section{max-width:1200px;margin:auto;padding:72px 24px}
.content-section.alternate{max-width:none;background:#ecefe6;padding-left:max(24px,calc((100vw - 1200px)/2));padding-right:max(24px,calc((100vw - 1200px)/2))}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:0 0 23px}
.section-heading h2{font-size:clamp(1.75rem,2.8vw,2.6rem);font-family:Georgia,serif;font-weight:400;margin:0;letter-spacing:-.025em}
.section-note{max-width:250px;font-size:.85rem;color:var(--muted);margin:0}
.filters{display:flex;gap:9px;align-items:center;font-size:.82rem;color:#5b6f60}
.filters select{border:1px solid var(--line);background:#fff;padding:11px 14px;border-radius:8px;min-width:155px}
.searchbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:0 0 24px}
.searchbar input{width:min(450px,100%);border:1px solid #d2ddd2;border-radius:9px;padding:13px 17px;background:white}
#placeCount{font-size:.84rem;color:var(--muted)}
.cardgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;display:flex;flex-direction:column;min-height:182px}
.card-inner{padding:25px;display:flex;flex-direction:column;gap:12px;flex:1}
.card-tag{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);font-weight:750}
.card h3{font-family:Georgia,serif;font-size:1.35rem;font-weight:400;margin:0;line-height:1.25}
.card p{font-size:.88rem;color:var(--muted);line-height:1.55;margin:0}
.card small{font-size:.77rem;color:#647968;margin-top:auto}
.card button{align-self:start;border:1px solid #c8d7cb;border-radius:7px;background:#f1f6f1;color:var(--deep);padding:9px 12px;cursor:pointer;font-size:.81rem;font-weight:600}
.card button:hover{background:#dfecdf}
.empty{background:#fff;border:1px dashed #c9d7ca;color:#667769;padding:30px;border-radius:12px;grid-column:1/-1;line-height:1.6}
#map{height:470px;border:1px solid var(--line);border-radius:13px;z-index:1;background:#e6ece2}
.map-notice{font-size:.73rem;color:#667769;margin:12px 0 0}
.footer{background:var(--deep);color:#f1f5ee;display:flex;justify-content:space-between;gap:24px;padding:45px max(24px,calc((100vw - 1200px)/2))}
.footer strong{letter-spacing:.09em}.footer p{font-size:.8rem;line-height:1.7;color:#ccddcb}
dialog{border:1px solid var(--line);border-radius:14px;padding:27px;max-width:660px;width:calc(100% - 35px);max-height:88vh;box-shadow:0 28px 90px #06180c69}
dialog::backdrop{background:#12261cb8}
dialog h2{font-family:Georgia,serif;font-weight:400;font-size:2rem;margin:4px 0 17px}
dialog p{line-height:1.7;color:#435a4b}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.dialog-top button{border:0;background:#eef2ed;font-size:1.7rem;border-radius:50%;width:36px;height:36px;cursor:pointer}
.meta{border-top:1px solid #e0e7df;padding-top:14px;margin-top:22px;font-size:.82rem;color:#5b715f}
.meta a{color:var(--green);text-decoration:underline}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:980px){.cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-content{padding:60px 30px}}
@media(max-width:650px){
  .topbar{padding:11px 15px;display:block}.brand{margin-bottom:13px}.mainnav{gap:17px;flex-wrap:wrap}.mainnav a{font-size:.8rem}
  .hero{grid-template-columns:1fr}.hero-content{padding:48px 24px 35px}.hero-art{min-height:175px}
  .sun{width:75px;height:75px}.ridge-back{bottom:-46%}.ridge-front{bottom:-57%}
  .hero-caption{bottom:14px;font-size:.58rem}.content-section,.content-section.alternate{padding:45px 18px}
  .section-heading{display:block}.filters{margin-top:16px}.cardgrid{grid-template-columns:1fr}
  #map{height:350px}.footer{display:block;padding:36px 20px}.section-note{margin:12px 0 0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
