
/* 落ち着いた色（生成りの背景・青緑の基調色）。種類の色はピンの色に合わせる */
:root{--bg:#f7f5f0;--card:#fff;--fg:#2b3138;--muted:#66707a;--line:#e4dfd5;--accent:#2b7a80;--accent-soft:#e2f0f0;
--warn-bg:#fdf1ec;--warn-line:#f0cbbd;--warn-fg:#a8462c;--hl:#e3f2ec;--ye:#6a4bb3;
--c-sun:#3a74c9;--c-hol:#3a74c9;--c-eve:#8657c2;--c-sat:#d9741c;--c-dent:#2d8f55;--c-pha:#b38a0e;--c-map:#2b7a80;--c-list:#2b7a80;--c-hospital:#c2463a}
@media (prefers-color-scheme: dark){:root{--bg:#16191d;--card:#1f2328;--fg:#e7eaee;--muted:#a6aeb8;--line:#333a42;--accent:#6cc2c7;--accent-soft:#1d3335;
--warn-bg:#2c201b;--warn-line:#6a3c2e;--warn-fg:#f2a68f;--hl:#1e3530;--ye:#b9a3f0;
--c-sun:#7fb0f5;--c-hol:#7fb0f5;--c-eve:#bb98ef;--c-sat:#f2a35c;--c-dent:#6fcf95;--c-pha:#e5c35a;--c-map:#6cc2c7;--c-list:#6cc2c7;--c-hospital:#f08f84}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-wrap:break-word;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.8;font-size:16px}
main{max-width:980px;margin:0 auto;padding:12px 16px 24px}
a{color:var(--accent);text-underline-offset:3px}
.ic{width:1.25em;height:1.25em;flex:none;vertical-align:-.25em}
.site-header{background:var(--card);border-bottom:1px solid var(--line)}
.hd{max-width:980px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.site-name{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:1.08rem;text-decoration:none;color:var(--fg)}
.site-name .logo{width:30px;height:30px;color:#fff;background:var(--accent);border-radius:10px;padding:4px}
.tagline{font-size:.8rem;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);background:var(--card);padding:18px 16px;font-size:.82rem;color:var(--muted)}
.site-footer p{max-width:948px;margin:.4em auto}
h1{font-size:1.45rem;line-height:1.45;margin:.5em 0 .4em;letter-spacing:.02em}
h2{font-size:1.15rem;line-height:1.5;margin:2em 0 .7em}
h2.sec{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--line)}
h2.sec .ic{width:34px;height:34px;padding:6px;border-radius:50%;color:#fff;background:var(--c-k,var(--accent))}
h3{font-size:1.05rem;margin:1.4em 0 .4em}
.crumb{font-size:.82rem;color:var(--muted);margin-top:4px}
.lead{font-size:1rem}
.hero{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:6px 18px 16px;margin:12px 0}
.hero-grid{display:grid;grid-template-columns:1fr 400px;gap:18px;align-items:center}
.hero-art{margin-top:14px}
.hero-img{display:block;width:100%;height:auto;border-radius:14px}
@media (max-width:700px){.hero-grid{grid-template-columns:1fr;gap:4px}.hero-art{order:-1;margin-top:12px}}
.c-sun{--c-k:var(--c-sun)}.c-hol{--c-k:var(--c-hol)}.c-eve{--c-k:var(--c-eve)}.c-sat{--c-k:var(--c-sat)}
.c-dent{--c-k:var(--c-dent)}.c-pha{--c-k:var(--c-pha)}.c-map{--c-k:var(--c-map)}.c-list{--c-k:var(--c-list)}.c-hospital{--c-k:var(--c-hospital)}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0}
@media (min-width:700px){.chips{grid-template-columns:repeat(3,1fr)}}
.chip{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--c-k);border-radius:12px;padding:8px 10px;color:var(--fg);text-decoration:none;font-size:.86rem;line-height:1.35}
.chip .ic{color:var(--c-k);width:22px;height:22px}
.chip .ch-l{flex:1}
.chip b{font-size:1.1rem;color:var(--c-k)}
a.chip:hover,button.chip:hover{background:var(--accent-soft)}
button.chip{font:inherit;font-size:.86rem;text-align:left;cursor:pointer;width:100%}
button.chip[aria-pressed="true"]{background:var(--c-k);border-color:var(--c-k);color:#fff}
button.chip[aria-pressed="true"] .ic,button.chip[aria-pressed="true"] b{color:#fff}
.chips-hint{font-size:.82rem;color:var(--muted);margin:-4px 2px 8px}
@media (max-width:480px){.chip{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:0}.chip .ic{grid-row:span 2}.chip b{grid-column:2}}
.kfilter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:12px;padding:8px 12px;margin:8px 0;font-size:.9rem;scroll-margin-top:12px}
.kfilter[hidden]{display:none}
.kfilter button{font:inherit;font-size:.85rem;border:1px solid var(--accent);background:var(--card);color:var(--accent);border-radius:999px;padding:3px 12px;cursor:pointer}
.chips-map{margin:-2px 0 8px;font-size:.9rem}
.chips-map a{display:inline-flex;align-items:center;gap:6px}
.emergency{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:16px;padding:12px 14px;margin:16px 0}
.em-title{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-weight:700;color:var(--warn-fg)}
.em-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.em>a,.em-119{display:flex;gap:10px;align-items:flex-start;height:100%;background:var(--card);border:1px solid var(--warn-line);border-radius:12px;padding:10px 12px;color:var(--fg);text-decoration:none}
.em .ic{width:30px;height:30px;color:var(--warn-fg);margin-top:2px}
.em b{display:block;font-size:1.25rem;line-height:1.3;color:var(--warn-fg)}
.em small{display:block;font-size:.8rem;line-height:1.5;color:var(--muted)}
.em-note{font-size:.8rem;color:var(--muted);margin:8px 2px 0}
.touban{margin:8px 0 12px}
.touban-btn{display:inline-flex;flex-direction:column;gap:2px;background:var(--accent);color:var(--card);border-radius:12px;padding:10px 16px;font-weight:700;text-decoration:none}
.touban-btn:hover{filter:brightness(1.08)}
.touban-btn small{font-weight:400;font-size:.78rem;opacity:.9}
.entry{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:16px 0}
.entry a{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;color:var(--fg);text-decoration:none}
.entry a:hover{border-color:var(--accent);background:var(--accent-soft)}
.entry .ic{width:40px;height:40px;padding:8px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.entry b{display:block}
.entry small{display:block;font-size:.8rem;color:var(--muted);line-height:1.5}
.note{font-size:.88rem;color:var(--muted)}
.note-box{display:flex;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:20px 0}
.note-box .ic{color:var(--accent);margin-top:3px}
.small{font-size:.84rem;color:var(--muted)}
.tbl{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;margin:10px 0}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{border-bottom:1px solid var(--line);padding:9px 10px;vertical-align:top;text-align:left}
tr:last-child td,tr:last-child th{border-bottom:0}
th{background:var(--accent-soft);font-weight:600;font-size:.86rem}
td+td,th+th{border-left:1px solid var(--line)}
.fac .nm a{font-weight:700}
.fac .hr{white-space:nowrap}
.week td,.week th{text-align:center;white-space:nowrap}
.week th:first-child{text-align:left;white-space:normal;min-width:6em}
.today{background:var(--hl);font-weight:700}
.kind{display:block;font-size:.75rem;color:var(--muted)}
.warn{display:block;font-size:.74rem;color:var(--warn-fg)}
.ye{display:block;font-size:.74rem;color:var(--ye)}
.wk{display:block;font-size:.74rem;color:var(--accent);font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--c-k,var(--accent));color:var(--c-k,var(--accent));background:var(--card);border-radius:999px;padding:2px 12px;font-size:.84rem}
.tag .ic{width:18px;height:18px}
.tag-kind{border-color:var(--line);color:var(--muted)}
.tag-ye{border-color:var(--ye);color:var(--ye)}
.kana{color:var(--muted);margin-top:-.5em;font-size:.85rem}
.links{padding-left:1.2em}
.links li{margin:4px 0}
.map{height:380px;border:1px solid var(--line);border-radius:14px;margin:10px 0;overflow:hidden}
.map-wide{height:480px}
.map-top{height:560px}
.legend{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.legend button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:999px;padding:4px 12px;font-size:.82rem;cursor:pointer;min-height:34px}
.legend button img{display:block}
.legend button b{font-weight:400;color:var(--muted)}
.legend button[aria-pressed="false"],.legend button[data-empty="true"]{opacity:.45;text-decoration:line-through}
.mcl{background:rgba(255,111,0,.35);border-radius:50%}
.mcl div{position:absolute;inset:4px;background:#ff6f00;color:#fff;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 12px/1 system-ui,sans-serif;text-shadow:0 0 2px rgba(0,0,0,.5)}
.pop div{margin-top:2px}
.ad-slot{border:1px dashed var(--line);color:var(--muted);text-align:center;font-size:.8rem;padding:18px;margin:18px 0}
.ad{margin:18px 0;min-height:100px}
.empty{color:var(--muted);padding:4px 2px}
details{margin:14px 0}
details>summary{cursor:pointer;color:var(--accent);font-weight:600;padding:6px 0}
.pref-table th{white-space:nowrap;width:7em;background:var(--accent-soft)}
.prefs{line-height:2}
.prefs a,.prefs span{display:inline-block;margin:0 12px 2px 0;white-space:nowrap}
.prefs b{font-weight:400;color:var(--muted);font-size:.85em}
.prefs a[aria-current="true"]{font-weight:700;text-decoration:none}
.ky-pref{scroll-margin-top:8px}
@media (max-width:640px){
 h1{font-size:1.3rem}
 .tagline{display:none}
 .chips{grid-template-columns:repeat(2,1fr)}
 .map-top{height:440px}
 /* 施設の表はスマホではカードにする */
 .tbl:has(table.fac){background:none;border:0;overflow:visible}
 table.fac,table.fac tbody,table.fac tr,table.fac td{display:block;width:100%}
 table.fac tr:first-child{display:none}
 table.fac tr{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:0 0 10px;padding:10px 14px}
 table.fac td{border:0;padding:2px 0}
 table.fac td+td{border-left:0}
 table.fac td[data-label]::before{content:attr(data-label) "：";color:var(--muted);font-size:.8rem}
 table.fac .nm a{font-size:1.04rem}
 table.fac td.hr::before{display:block}
 .pref-table th{width:5.5em;white-space:normal}
}
