:root{color-scheme:light;--ink:#1d2b23;--muted:#536458;--green:#205639;--forest:#142d23;--paper:#f6f7ef;--line:#dce3d7;--lime:#d1f482;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink)}
a{color:inherit}
button,input,select{font:inherit}
button,select{cursor:pointer}
:focus-visible{outline:3px solid #4b854a;outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wrap{max-width:1200px;margin:auto;padding-inline:32px}
.mast{background:#fdfdf8;border-bottom:1px solid var(--line)}
.mast-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:67px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:1.25rem;font-weight:850;letter-spacing:-.04em}
.mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:var(--lime);background:var(--forest)}
.mark svg{width:23px}
.brand-sub{margin-left:5px;padding-left:12px;border-left:1px solid var(--line);font-size:.64rem;font-weight:750;letter-spacing:.13em;color:var(--muted)}
nav{display:flex;gap:25px;font-size:.87rem;font-weight:680}
nav a{text-decoration:none}
nav a:hover,.footer a:hover{text-decoration:underline}
.hero{background:var(--forest) url(terrain.svg) right center/auto 100% no-repeat;color:#f9fff4;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#142d23 0%,#142d23 25%,#142d23cc 44%,#142d2300 85%);pointer-events:none}
.hero-inner{position:relative;padding-block:54px 62px}
.eyebrow,.section-label,.kind{font-size:.7rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.eyebrow{color:#e2f5d6;display:flex;align-items:center;gap:9px;margin:0 0 13px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(3.5rem,8vw,6.65rem);line-height:.91;letter-spacing:-.085em;margin:0 0 23px;font-weight:880}
h1 em{font-style:normal;color:var(--lime)}
.intro{max-width:400px;font-size:1.03rem;color:#e0ecde;margin-bottom:25px}
#search-form{display:flex;align-items:center;gap:11px;background:#fff;color:var(--ink);padding:6px 6px 6px 15px;border-radius:10px;max-width:530px}
#search-form svg{width:22px;flex:none;color:var(--muted)}
#search{flex:1;min-width:0;border:0;background:none;padding:9px 0;color:var(--ink)}
#search::placeholder{color:#536458}
#search-form button,.primary{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:7px;padding:10px 14px;background:var(--lime);color:var(--forest);font-weight:800;text-decoration:none;white-space:nowrap}
#search-form button:hover,.primary:hover{background:#e3ffae}
.hero-note{position:absolute;right:max(32px,calc((100vw - 1136px)/2));bottom:22px;color:#d3e8ca;display:flex;align-items:center;gap:9px;font-size:.63rem;letter-spacing:.13em;font-weight:750}
.hero-note span{display:block;width:24px;height:1px;background:#9ab792}
.directory{padding-block:43px 48px;scroll-margin-top:18px}
.section-label{color:var(--green);margin-bottom:5px}
.section-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:18px}
h2{font-size:clamp(2rem,4.4vw,3.15rem);line-height:1.02;letter-spacing:-.065em;margin-bottom:0;font-weight:850}
.count{color:var(--muted);font-size:.88rem;font-weight:700;white-space:nowrap}
.filters{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:21px}
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chips button,.region-control select{padding:7px 13px;border-radius:7px;border:1px solid #cdd8ca;color:var(--ink);background:#fff;font-size:.85rem;font-weight:680}
.chips button:hover{background:#e8f1e3}
.chips button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:white}
.region-control{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.83rem;font-weight:690}
.region-control select{max-width:100%}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:13px;padding:18px;background:#fff;box-shadow:0 2px 4px #18322006}
.card-top,.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-top{margin-bottom:15px}
.card-icon{display:grid;place-items:center;width:44px;height:42px;border-radius:9px;background:#eaf3e3;color:var(--green)}
.card-icon svg{width:27px}
.kind{color:var(--green);font-size:.62rem;border:1px solid var(--line);border-radius:5px;padding:4px 7px}
.location{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.82rem;font-weight:660;margin-bottom:4px}
.location svg{width:17px;flex:none;color:var(--green)}
h3{font-size:1.32rem;line-height:1.15;letter-spacing:-.04em;margin-bottom:8px}
.summary{color:var(--muted);font-size:.9rem;margin-bottom:15px;flex:1}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:15px}
.tag{padding:3px 7px;border-radius:5px;background:#f0f4ec;color:#375240;font-size:.72rem;font-weight:680}
.card-bottom{border-top:1px solid #ebefe8;padding-top:11px}
.rate{font-weight:790;font-size:.83rem}
.card-bottom button,.empty button{color:var(--green);border:0;background:transparent;font-weight:780;padding:5px 0;font-size:.86rem;white-space:nowrap}
.card-bottom button:hover,.empty button:hover{text-decoration:underline}
.empty{grid-column:1/-1;padding:35px 20px;text-align:center;border:1px dashed #b8c9b6;border-radius:12px}
.empty p{margin-bottom:7px;color:var(--muted)}
.about-panel{display:grid;grid-template-columns:1fr 1.6fr;align-items:center;gap:25px;background:#e8efe1;border-radius:13px;padding:26px}
.about-panel h2{font-size:2rem}
.about-panel p:last-child{margin-bottom:0;color:#374e3d}
.footer{display:flex;align-items:center;gap:12px;padding-block:24px;font-size:.78rem;color:var(--muted)}
.footer strong{color:var(--ink)}
.footer a{margin-left:auto;text-decoration:none}
dialog{width:min(570px,calc(100% - 28px));max-height:calc(100% - 28px);border:1px solid var(--line);border-radius:15px;padding:29px;color:var(--ink);background:#fdfdf8;box-shadow:0 18px 65px #101d16a3}
dialog::backdrop{background:#12291ec2}
.close{position:absolute;top:11px;right:11px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:white;color:var(--ink);font-size:1.3rem;line-height:1}
dialog h2{margin:0 22px 8px 0;font-size:2.2rem}
dialog .location{margin-bottom:12px}
dl{border-block:1px solid var(--line);padding:10px 0;margin:15px 0}
dl div{display:grid;grid-template-columns:100px 1fr;gap:9px;padding:3px 0;font-size:.88rem}
dt{font-weight:750}
dd{margin:0}
.detail-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:.9rem;font-weight:750}
.fineprint{margin:12px 0 0;font-size:.79rem;color:var(--muted)}
@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero::before{background:linear-gradient(90deg,#142d23 10%,#142d23df 45%,#142d2340 100%)}}
@media(max-width:550px){.wrap{padding-inline:17px}.brand-sub,nav a:last-child,.hero-note{display:none}.mast-inner{min-height:59px}.hero-inner{padding-block:44px 42px}.hero{background-position:70% center}.hero::before{background:#142d2370}.grid,.about-panel{grid-template-columns:1fr}.directory{padding-block:31px}.about-panel{gap:12px}.footer{flex-wrap:wrap}.footer span{display:none}#search-form{gap:7px;padding-left:9px}#search-form button{font-size:.78rem;padding:9px 8px}#search-form button span{display:none}#search{font-size:.88rem}dialog{padding:23px}}
