
:root{--ink:#1f1d1a;--paper:#f5f0e6;--ai:#2b4a6f;--shu:#a3402f;--moss:#5d6b4a;--line:#d8cfbd}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 'Iowan Old Style','Palatino Linotype',Georgia,serif}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;letter-spacing:.02em}
a{color:var(--ai)}header{display:flex;justify-content:space-between;align-items:center;padding:18px 6vw;border-bottom:1px solid var(--line)}
.brand{font-family:'Cormorant Garamond',serif;font-size:1.6em;text-decoration:none;color:var(--ink)}.brand span{color:var(--shu)}
nav a{margin-left:22px;text-decoration:none;color:var(--ink);font-size:.9em;letter-spacing:.12em;text-transform:uppercase}
main{max-width:1100px;margin:auto;padding:30px 6vw}
.hero{padding:90px 6vw 70px;background:linear-gradient(180deg,#e9e1d0,#f5f0e6);text-align:center;border-bottom:1px solid var(--line)}
.hero h1{font-size:3.4em;margin:.1em 0}.hero p{max-width:640px;margin:auto;color:#4a453d}.kanji{color:var(--shu);letter-spacing:.4em}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.card{background:#fbf8f1;border:1px solid var(--line);padding:20px 22px}.card h3{margin:.1em 0 .3em;font-size:1.35em}
.tag{display:inline-block;font-size:.72em;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);padding:1px 8px;margin:0 4px 4px 0;color:var(--moss)}
.tag.u{color:var(--shu);border-color:var(--shu)}.warn{color:var(--shu);font-size:.85em}
#map{height:72vh;border:1px solid var(--line)}select{font:inherit;background:#fbf8f1;border:1px solid var(--line);padding:6px;margin-right:10px}
.tl{border-left:2px solid var(--shu);padding-left:24px}.tl div{margin-bottom:18px}.tl b{font-family:'Cormorant Garamond',serif;font-size:1.3em;color:var(--shu)}
footer{border-top:1px solid var(--line);padding:24px 6vw;font-size:.85em;color:#6b655b}
.tagline{margin:.2em 0 0;font-style:italic;opacity:.8;font-size:.9em}
