
:root{--base:#0d4d4d;--accent:#e65100;--ink:#1a1a1a;--line:#cfd8d8;--bg:#ffffff;--soft:#eef5f5}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;color:var(--ink);line-height:1.8;background:var(--bg);font-size:1rem}
a{color:var(--base)}
header.site{background:var(--base);color:#fff}
header.site .in{max-width:1080px;margin:0 auto;padding:.9rem 1rem;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:baseline}
header.site .logo{color:#fff;font-weight:700;font-size:1.35rem;text-decoration:none}
header.site nav a{color:#fff;margin-right:1rem;text-decoration:none}
header.site .tag{font-size:.85rem}
main{max-width:1080px;margin:0 auto;padding:1rem}
h1{font-size:1.7rem;line-height:1.45;margin:.4rem 0 1rem}
.tagline{font-size:1.1rem;font-weight:700;color:var(--base);margin:0 0 1rem}
h2{font-size:1.3rem;border-left:.45rem solid var(--base);padding-left:.6rem;margin:2rem 0 .8rem;line-height:1.5}
h3{font-size:1.1rem;margin:1.4rem 0 .5rem}
.crumb{font-size:.9rem;margin:.6rem 0}
.crumb a{text-decoration:none}
.notice{background:#fff4e5;border:2px solid var(--accent);border-radius:.5rem;padding:.8rem 1rem;margin:1rem 0;font-weight:600}
.fresh{background:var(--soft);border:1px solid var(--line);border-radius:.5rem;padding:.7rem 1rem;margin:1rem 0}
.card{border:1px solid var(--line);border-radius:.7rem;padding:1rem 1.1rem;margin:0 0 1rem;background:#fff}
.card h3{margin:.2rem 0 .4rem;font-size:1.15rem}
.headline{font-size:2rem;font-weight:800;color:var(--base);line-height:1.3;margin:.2rem 0}
.badge{display:inline-block;border-radius:1rem;padding:.05rem .7rem;font-size:.85rem;font-weight:700;color:#fff;margin:.15rem .3rem .15rem 0;vertical-align:middle}
.b-half{background:#1565c0}.b-flat{background:#e65100}.b-free_full{background:#2e7d32}
.b-free_hours{background:#f9a825;color:#1a1a1a}.b-free_conditional{background:#6a1b9a}
.b-proc{background:#37474f}.b-mirairo{background:#00695c}.b-warn{background:#b71c1c}
.meta{font-size:.95rem}
.src{border:1px solid var(--line);border-radius:.5rem;padding:.8rem 1rem;background:var(--soft);font-size:.95rem;overflow-wrap:anywhere}
#map{height:420px;border:1px solid var(--line);border-radius:.7rem;z-index:0}
.filters{border:1px solid var(--line);border-radius:.7rem;padding:.9rem 1rem;margin:1rem 0;background:#fff}
.filters fieldset{border:1px solid var(--line);border-radius:.5rem;margin:.5rem 0}
.filters legend{font-weight:700;padding:0 .4rem}
.filters label{display:inline-block;margin:.25rem .8rem .25rem 0}
input[type=number],input[type=text],select{font-size:1rem;padding:.45rem;border:1px solid #8a9a9a;border-radius:.4rem;max-width:100%}
button,.btn{display:inline-block;background:var(--base);color:#fff;border:none;border-radius:.5rem;padding:.55rem 1.1rem;font-size:1rem;cursor:pointer;text-decoration:none}
button.sub{background:#fff;color:var(--base);border:2px solid var(--base)}
.calc{border:2px solid var(--base);border-radius:.7rem;padding:1rem 1.1rem;margin:1.2rem 0}
.calc .out{font-size:1.5rem;font-weight:800;color:var(--accent)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.grid a,.grid span{border:1px solid var(--line);border-radius:.5rem;padding:.6rem .8rem;text-decoration:none;display:block}
.grid span{color:var(--ink);background:var(--soft)}
.legend{font-size:.9rem;margin:.5rem 0}
.legend i{display:inline-block;width:.9rem;height:.9rem;border-radius:50%;margin:0 .25rem 0 .8rem;vertical-align:middle}
footer.site{border-top:1px solid var(--line);margin-top:3rem}
footer.site .in{max-width:1080px;margin:0 auto;padding:1.2rem 1rem;font-size:.92rem}
.dist{font-weight:700;color:var(--accent)}
.review-note{background:#fff4e5;border:1px solid var(--accent);border-radius:.5rem;padding:.7rem 1rem;margin:.6rem 0}
.review-empty{border:1px dashed var(--line);border-radius:.5rem;padding:.8rem 1rem;color:#444}
details.review-toggle{border:1px solid var(--line);border-radius:.7rem;padding:.6rem 1rem;margin:1rem 0}
details.review-toggle summary{font-weight:700;cursor:pointer;padding:.4rem 0}
.review-form fieldset{border:1px solid var(--line);border-radius:.5rem;margin:.7rem 0}
.review-form legend{font-weight:700;padding:0 .4rem}
.review-form label{display:block;margin:.35rem 0}
.review-form input[type=text],.review-form input[type=month],.review-form select,.review-form textarea{width:100%;font-size:1rem;padding:.45rem;border:1px solid #8a9a9a;border-radius:.4rem}
.review-form textarea{line-height:1.7}
.review-warn{background:#fff4e5;border:1px solid var(--accent);border-radius:.5rem;padding:.7rem 1rem;margin:.8rem 0;font-size:.95rem}
.turnstile-ph{border:2px dashed #8a9a9a;border-radius:.5rem;padding:.8rem 1rem;margin:.8rem 0;color:#555;background:var(--soft);font-size:.95rem}
.review-prep{font-weight:700}
button:disabled{background:#9db8b8;cursor:not-allowed}
.char-count{font-size:.9rem;color:#444;text-align:right;margin:.2rem 0}
.contact-form fieldset{border:1px solid var(--line);border-radius:.5rem;margin:.7rem 0}
.contact-form legend{font-weight:700;padding:0 .4rem}
.contact-form label{display:block;margin:.5rem 0}
.contact-form input[type=text],.contact-form input[type=email],.contact-form select,.contact-form textarea{width:100%;font-size:1rem;padding:.45rem;border:1px solid #8a9a9a;border-radius:.4rem}
.contact-form textarea{line-height:1.7}
@media (max-width:640px){#map{height:320px}h1{font-size:1.45rem}.headline{font-size:1.7rem}}
