:root { --ink:#1e2d29; --muted:#65716d; --paper:#fbfaf6; --line:#e6e3d9; --accent:#d67662; --sage:#d9e4d1; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif; line-height:1.65; }
.hero { padding:72px max(24px,calc((100% - 1120px)/2)); background:linear-gradient(135deg,#e9efe2,#f8eee8); }
.eyebrow { margin:0; letter-spacing:.15em; font-size:.75rem; font-weight:700; color:#5d6d60; }
h1 { margin:.2rem 0; font-size:clamp(2.3rem,5vw,4rem); line-height:1.2; }
.hero-copy { max-width:620px; margin:.4rem 0 0; color:var(--muted); }
main { width:min(1120px,calc(100% - 48px)); margin:32px auto 64px; }
.notice { border-left:4px solid var(--accent); padding:8px 18px; background:#fff7f3; color:#4b5451; }
.filters { display:flex; gap:16px; flex-wrap:wrap; margin:28px 0; }
label { font-size:.9rem; font-weight:700; } select { margin-left:8px; border:1px solid var(--line); border-radius:8px; padding:8px; background:white; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:22px; }
.card { overflow:hidden; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:0 8px 24px rgba(52,63,56,.06); }
.map { position:relative; height:178px; overflow:hidden; background:#c5dfed; isolation:isolate; }
.map::before { content:""; position:absolute; width:130%; height:135%; left:-16%; top:-30%; background:#dbe6d0; border-radius:45% 60% 40% 55%; transform:rotate(-12deg); }
.map::after { content:""; position:absolute; width:45%; height:48%; background:rgba(222,117,93,.52); border:2px solid rgba(255,255,255,.9); border-radius:44% 56% 45% 52%; }
.map span { position:absolute; z-index:2; left:20px; top:18px; padding:5px 10px; border-radius:999px; background:rgba(255,255,255,.85); color:#405249; font-size:.78rem; font-weight:700; }
.map i,.map b { position:absolute; z-index:1; display:block; border:2px solid rgba(255,255,255,.8); border-radius:50%; }
.map i { width:180px; height:180px; right:-35px; bottom:-95px; }.map b { width:130px; height:130px; left:-55px; bottom:-55px; }
.map-kanto::after { left:34%; top:34%; }.map-kansai::after { left:46%; top:27%; }.map-tokai::after { left:53%; top:43%; }.map-shikoku::after { left:23%; top:49%; }
.card-body { padding:18px; }.meta { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:.77rem; }.status { border-radius:999px; padding:2px 9px; font-weight:700; }.status-公開中 { background:#dff1e2; color:#25633b; }.status-確認中 { background:#fff0cf; color:#88620b; }.status-将来候補 { background:#e3ecfb; color:#315b93; }
h2 { margin:12px 0; font-size:1.05rem; line-height:1.45; } dl { display:flex; gap:20px; margin:0; } dt { font-size:.73rem; color:var(--muted); } dd { margin:0; font-weight:700; font-size:.88rem; }.points { font-size:.9rem; color:#43514c; }.contact { margin:14px 0 0; padding-top:12px; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted); }
footer { padding:24px; text-align:center; color:var(--muted); font-size:.8rem; border-top:1px solid var(--line); }
