*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.55;color:#1d1d24;background:#fafafb}
a{color:#1f6f43}
a:hover{color:#134a2c}
.wrap{max-width:1040px;margin:0 auto;padding:0 1rem}
.site-header{background:#1d1d24;color:#fff}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem}
.site-header a{color:#fff;text-decoration:none}
.brand{font-weight:700;font-size:1.15rem}
.site-header nav a{margin-left:1rem;font-size:.95rem;opacity:.9}
.site-header nav a:hover{opacity:1;text-decoration:underline}
main{padding:1rem 1rem 2rem}
h1{font-size:1.9rem;line-height:1.2;margin:.6rem 0 .8rem}
h2{font-size:1.35rem;margin:2rem 0 .7rem}
h3{font-size:1.08rem;margin:1.2rem 0 .4rem}
.crumbs{font-size:.88rem;color:#555;margin-top:.6rem}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap}
.crumbs li+li:before{content:"›";margin:0 .45rem;color:#999}
.intro{font-size:1.04rem;max-width:760px}
.map{height:380px;border-radius:8px;border:1px solid #ddd;margin:1rem 0;background:#e9e9ee}
.map.small{height:300px}
.near{background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:.9rem 1rem;margin:1rem 0}
.near button{background:#1f6f43;color:#fff;border:0;border-radius:6px;padding:.6rem 1rem;font-size:1rem;cursor:pointer}
.near button:hover{background:#134a2c}
.near button[disabled]{opacity:.6;cursor:wait}
.near-status{font-size:.92rem;color:#555;margin:.5rem 0 0}
.near-results{margin:.6rem 0 0;padding-left:1.2rem}
.near-results li{margin:.25rem 0}
.cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:.8rem}
.card{background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:.8rem 1rem}
.card h3{margin:0 0 .3rem;font-size:1.05rem}
.card p{margin:.15rem 0;font-size:.93rem}
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.12rem .5rem;border-radius:99px;vertical-align:middle;white-space:nowrap}
.badge.confirmed{background:#dcf5e3;color:#11612b}
.badge.website{background:#dceaf8;color:#174c86}
.badge.unconfirmed{background:#f6ecd5;color:#7a5306}
.muted{color:#666;font-size:.9rem}
.cols{columns:3 200px;padding-left:1.1rem}
.cols li{break-inside:avoid;margin:.15rem 0}
.faq details{background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:.6rem 1rem;margin:.5rem 0}
.faq summary{font-weight:600;cursor:pointer}
.faq details p{margin:.5rem 0 .2rem}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:1rem;max-width:760px}
dl.facts dt{font-weight:600}
dl.facts dd{margin:0;overflow-wrap:anywhere}
form.submit{background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:1rem;max-width:640px}
form.submit label{display:block;font-weight:600;margin:.7rem 0 .2rem}
form.submit input,form.submit select,form.submit textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:6px;font:inherit}
form.submit button{margin-top:1rem;background:#1f6f43;color:#fff;border:0;border-radius:6px;padding:.6rem 1.2rem;font-size:1rem;cursor:pointer}
.notice{background:#fff8e1;border:1px solid #f0d78a;border-radius:8px;padding:.7rem 1rem}
.site-footer{background:#f0f0f4;border-top:1px solid #e1e1e8;font-size:.88rem;color:#444;padding:1rem 0 1.5rem}
.site-footer .wrap{padding:0 1rem}
@media (max-width:600px){h1{font-size:1.5rem}.site-header nav a{margin:0 .8rem 0 0}.map{height:300px}}
.callbox{background:#fff;border:2px solid #1f6f43;border-radius:10px;padding:.9rem 1rem;margin:1rem 0;max-width:760px}
.callbox p{margin:.3rem 0}
.call{display:inline-block;background:#e8590c;color:#fff;font-weight:700;font-size:1.1rem;text-decoration:none;border-radius:8px;padding:.7rem 1.2rem;margin:.2rem 0}
.call:hover{background:#c24a08;color:#fff}
.call.placeholder{background:#999;outline:3px dashed #e8590c}
.disclose{font-size:.85rem;color:#555}
.facts-box{background:#fff;border:1px solid #e1e1e8;border-radius:8px;padding:.8rem 1rem;margin:.8rem 0;max-width:820px}
.facts-box h3{margin-top:.4rem}
ul.tight{margin:.3rem 0;padding-left:1.2rem}
ul.tight li{margin:.15rem 0}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.8rem;max-width:900px}
.sources{font-size:.88rem;color:#444;background:#f6f6f9;border-radius:8px;padding:.7rem 1rem;margin:1.2rem 0}
.legend{font-size:.85rem;color:#444}
.legend span{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;margin:0 .25rem 0 .7rem;vertical-align:middle}
table.fees{border-collapse:collapse;max-width:820px;width:100%;background:#fff}
table.fees td,table.fees th{border:1px solid #e1e1e8;padding:.4rem .6rem;text-align:left;vertical-align:top;font-size:.94rem}
.callbox.nocall{border-color:#c9d8cf;background:#f6faf7}
figure{margin:0}
.photo{margin:.4rem 0 1rem;max-width:760px}
.photo img{display:block;width:100%;height:auto;border-radius:8px;background:#e9e9ee}
.credit{font-size:.78rem;color:#666;margin-top:.3rem}
.credit a{color:#555}
.illus{float:right;width:240px;max-width:42%;margin:.2rem 0 .8rem 1rem}
.illus img{display:block;width:100%;height:auto}
h2{clear:both}
.src{font-size:.82rem;white-space:nowrap}
.credits-list li{margin:.35rem 0}
.illus-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}
.illus-list .illus{float:none;width:100%;max-width:100%;margin:0 0 .3rem}
@media (min-width:900px){.photo{float:right;width:400px;margin:.2rem 0 1rem 1.2rem}main h1+.photo+.intro{max-width:none}}
.callbox,.facts-box,.intro{overflow:hidden}
/* directory layout */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:1.4rem;align-items:start;margin:.4rem 0 1rem}
.hero h1{margin-top:.3rem}
.hero .intro{max-width:none}
.hero-media .photo{float:none;width:auto;margin:.6rem 0 0}
.hero-img{position:relative;margin:0}
.hero-img img{display:block;width:100%;height:auto;border-radius:10px;background:#e9e9ee}
.illus-hero img{background:none}
.ai-label{position:absolute;left:.5rem;bottom:.5rem;background:rgba(0,0,0,.62);color:#fff;font-size:.74rem;padding:.12rem .45rem;border-radius:4px}
.photo.city-small{max-width:260px;float:none;margin:.6rem 0 0}
.photo.city-small img{border-radius:6px}
.finder{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:end;background:#fff;border:1px solid #d9e6dd;border-radius:10px;padding:.8rem;margin:.8rem 0}
.finder label{font-size:.82rem;font-weight:600;color:#333;width:100%;margin-bottom:-.2rem}
.finder label[for=find-city]{display:none}
.finder select{flex:1 1 170px;padding:.55rem;border:1px solid #c9d3cc;border-radius:6px;font:inherit;background:#fff}
.finder button{background:#1f6f43;color:#fff;border:0;border-radius:6px;padding:.6rem 1.1rem;font-size:1rem;font-weight:600;cursor:pointer}
.co-cards{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:.8rem}
.co-card{display:flex;gap:1rem;justify-content:space-between;background:#fff;border:1px solid #e1e1e8;border-radius:10px;padding:.9rem 1rem}
.co-card h3{margin:0 0 .25rem;font-size:1.12rem}
.co-card p{margin:.15rem 0;font-size:.93rem}
.co-src{font-size:.8rem!important;color:#666;margin-top:.45rem!important}
.co-map{flex:0 0 240px;height:170px;border:1px solid #ddd;border-radius:8px}
.empty{background:#fff8e1;border:1px solid #f0d78a;border-radius:8px;padding:.7rem 1rem}
.steps li{margin:.35rem 0}
.related{columns:2 220px;padding-left:1.1rem}
.call-slot{display:inline-block;font-size:.85rem;color:#555}
@media (max-width:760px){.hero{grid-template-columns:1fr}.co-card{flex-direction:column}.co-map{flex-basis:auto;width:100%}}
