/* 学校のエアコン整備くらべ(reibo-ds 0.1.0・テーマ reibo-classroom)
   朝の教室の方眼ノート: 白い紙に淡い水色の方眼、紺の見出し。設備は 空色(普通教室)・若葉色(特別教室)・夕焼け色(体育館等)に、
   「教」「特」「体」の記号と名称を必ず添える(色だけで区別しない)。外部の資源・フォントは読まない */
:root{--ink:#0e2a47;--base:#f6fafd;--paper:#fff;--line:#d5e3f0;--grid:#e6f0f9;--muted:#4a5d70;--accent:#1769c2;--sun:#f4b400;--focus:#b45309;
  --c-futsu:#1769c2;--c-toku:#0f8a6a;--c-gym:#c2410c;--t-futsu:#e3effb;--t-toku:#def3ec;--t-gym:#fbe9df;--hatch:#b9c8d8;
  --r:14px;--fs:16px;--ff:system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Meiryo",sans-serif;--fn:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--base);color:var(--ink);font:400 var(--fs)/1.75 var(--ff);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}
a{color:var(--accent);text-underline-offset:.18em}
a:hover{color:#0d4f99}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:20}
.skip:focus{left:12px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
main{display:block;outline:none}
h1,h2,h3{line-height:1.35;letter-spacing:.01em;color:var(--ink)}
h1{font-size:clamp(1.55rem,1.1rem + 2.2vw,2.5rem);margin:.2em 0 .45em;font-weight:800}
h2{font-size:clamp(1.25rem,1.05rem + .9vw,1.65rem);margin:0 0 .6em;font-weight:800;display:flex;align-items:center;gap:.5em}
h2::before{content:"";flex:0 0 auto;width:.5em;height:1.1em;border-radius:3px;background:linear-gradient(var(--c-futsu) 0 33%,var(--c-toku) 33% 66%,var(--c-gym) 66%)}
h3{font-size:1.08rem;margin:1.2em 0 .5em;font-weight:700}
.u{font-size:.62em;font-weight:600;margin-left:.12em;color:var(--muted)}
.note{color:var(--muted);font-size:.93rem}
.sub{display:block;font-size:.78rem;color:var(--muted);font-weight:400;white-space:nowrap}

/* ヘッダー: 黒板消しの紺の帯ではなく、白い紙の上の時間割の見出し */
.hd{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(6px);border-bottom:1px solid var(--line);box-shadow:0 1px 0 #fff}
.hdIn{display:flex;align-items:center;gap:18px;min-height:64px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.mark{width:38px;height:38px;flex:0 0 auto}
.brandTx{display:flex;flex-direction:column;line-height:1.25}
.brandName{font-weight:800;font-size:1.05rem}
.brandSub{font-size:.74rem;color:var(--muted)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 4px}
.nav a{display:block;padding:6px 10px;border-radius:999px;text-decoration:none;color:var(--ink);font-size:.88rem;font-weight:600}
.nav a:hover{background:var(--t-futsu)}
.nav .navNat{background:var(--ink);color:#fff}
.nav .navNat:hover{background:#163d66;color:#fff}

/* 冒頭 */
.hero{padding:26px 0 30px;background:linear-gradient(180deg,#fff 0,rgba(255,255,255,.75) 70%,rgba(255,255,255,0));border-bottom:1px solid var(--line)}
.heroSm{padding-bottom:22px}
.pageHead{padding:22px 0 24px;background:#fff;border-bottom:1px solid var(--line)}
.crumb ol{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:.82rem;color:var(--muted)}
.crumb li+li::before{content:"›";margin:0 6px 0 2px;color:var(--hatch)}
.eyebrow{display:inline-block;margin:6px 0 0;padding:3px 12px;border-radius:999px;background:var(--t-futsu);color:#0d4f99;font-size:.8rem;font-weight:700}
.lead{font-size:1.04rem;max-width:62em;margin:.4em 0 1em}
.src{font-size:.84rem;color:var(--muted);margin:.8em 0 0}

/* 数字の札(付箋) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:18px 0 6px;padding:0}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px 14px;position:relative;box-shadow:0 2px 0 var(--line)}
.kpi::after{content:"";position:absolute;left:16px;top:-1px;width:38px;height:4px;border-radius:0 0 4px 4px;background:var(--sun)}
.kpi dt{font-size:.84rem;color:var(--muted);font-weight:600}
.kpi dd{margin:2px 0 0}
.kv{display:block;font:800 clamp(1.7rem,1.3rem + 1.4vw,2.3rem)/1.15 var(--fn);font-variant-numeric:tabular-nums;color:var(--ink)}
.ks{display:block;font-size:.8rem;color:var(--muted)}

/* 設備の札(記号+名称。色だけにしない) */
.fx{display:inline-flex;align-items:center;gap:5px;font-weight:700;white-space:nowrap}
.fxSym{display:inline-grid;place-items:center;width:1.45em;height:1.45em;border-radius:5px;font-size:.78em;color:#fff;font-weight:800;line-height:1}
.fx-futsu .fxSym{background:var(--c-futsu)}
.fx-toku .fxSym{background:var(--c-toku)}
.fx-gym .fxSym{background:var(--c-gym)}

/* 節 */
.sec{padding:34px 0}
.sec.alt{background:rgba(255,255,255,.82);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:22px 34px}
.prose{max-width:820px}
.prose li{margin:.3em 0}

/* 設置率の横棒: 塗り=設置済み・斜線=未設置・中央の目盛り=50% */
.gSet{display:grid;gap:10px;margin:0 0 18px;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.gRow{display:grid;grid-template-columns:minmax(150px,220px) 1fr minmax(150px,190px);align-items:center;gap:6px 14px}
.gL{margin:0;display:flex;flex-direction:column;line-height:1.3}
.gLab{font-size:.78rem;color:var(--muted)}
.gauge{position:relative;height:22px;border-radius:6px;overflow:hidden;border:1px solid var(--line);
  background:repeating-linear-gradient(135deg,#eef3f8 0 4px,var(--hatch) 4px 5.5px)}
.gFill{position:absolute;left:0;top:0;bottom:0;border-right:2px solid #fff}
.fill-futsu{background:var(--c-futsu)}
.fill-toku{background:var(--c-toku)}
.fill-gym{background:var(--c-gym)}
.gTick{position:absolute;top:-2px;bottom:-2px;width:0;border-left:1px dashed rgba(14,42,71,.5)}
.gV{margin:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.gR{font:800 1.35rem/1 var(--fn);font-variant-numeric:tabular-nums}
.gC{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.gNa{margin:0;color:var(--muted);font-size:.88rem}

/* 順位の一覧 */
.rk{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.rk li{display:grid;grid-template-columns:2.4em minmax(7em,11em) 1fr auto;grid-template-areas:"n name bar v" "n name bar s";align-items:center;column-gap:10px;padding:5px 8px;background:var(--paper);border:1px solid var(--line);border-radius:9px}
.rkN{grid-area:n;font:800 .95rem/1 var(--fn);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.rk li:nth-child(-n+3) .rkN{color:var(--ink)}
.rkName{grid-area:name;font-weight:600;font-size:.93rem;overflow-wrap:anywhere}
.rkBar{grid-area:bar;height:12px;border-radius:4px;background:repeating-linear-gradient(135deg,#eef3f8 0 4px,#d3dde8 4px 5px);overflow:hidden}
.rkBar i{display:block;height:100%;border-radius:4px}
.rkV{grid-area:v;font:800 1rem/1.1 var(--fn);text-align:right;font-variant-numeric:tabular-nums}
.rkS{grid-area:s;font-size:.74rem;color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

/* 分布 */
.dist{margin:0;padding:14px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.dist figcaption{font-weight:700;margin-bottom:8px;font-size:.95rem}
.distL{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.distL li{display:grid;grid-template-columns:8.5em 1fr 3.4em;align-items:center;gap:10px;font-size:.88rem}
.dBar{height:14px;background:var(--grid);border-radius:4px;overflow:hidden}
.dBar i{display:block;height:100%}
.dN{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}

/* 表 */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.t{border-collapse:collapse;width:100%;font-size:.92rem;font-variant-numeric:tabular-nums}
.t caption{text-align:left;padding:10px 14px;font-weight:700;color:var(--ink);border-bottom:1px solid var(--line);background:#fbfdff}
.t th,.t td{padding:7px 12px;border-bottom:1px solid var(--grid);text-align:left;vertical-align:top}
.t thead th{background:#f1f7fd;font-size:.82rem;color:var(--ink);font-weight:700;white-space:nowrap;position:sticky;top:0}
.t tbody tr:hover{background:#f6fbff}
.t .num{text-align:right}
.t tbody th{font-weight:600;white-space:nowrap}
.rateC{font-weight:800}
.sb{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:2px 0;border-radius:4px}
.sb:focus-visible{outline:3px solid var(--focus)}
.sbI::after{content:"↕";font-size:.85em;color:var(--hatch)}
.sb[aria-sort="ascending"] .sbI::after,th[aria-sort="ascending"] .sbI::after{content:"▲";color:var(--accent)}
th[aria-sort="descending"] .sbI::after{content:"▼";color:var(--accent)}
.t tr[hidden]{display:none}
.dtab{margin:12px 0}
.dtab summary{cursor:pointer;font-weight:700;color:var(--accent);padding:6px 0}

/* 避難所指定校 */
.evac{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 16px}
.evacC{background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--c-gym);border-radius:var(--r);padding:12px 16px}
.evacE{border-left-style:double;border-left-width:8px;background:var(--t-gym)}
.evacH{margin:0;font-size:.85rem;font-weight:700;color:var(--muted)}
.evacV{margin:2px 0;font:800 1.9rem/1.1 var(--fn);font-variant-numeric:tabular-nums}
.evacS{margin:0;font-size:.82rem;color:var(--muted)}

/* 札・ボタン・タブ */
.btn{display:inline-block;padding:9px 18px;border-radius:999px;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;border:0;font:inherit;font-weight:700;cursor:pointer;margin:4px 6px 4px 0}
.btn:hover{background:#0d4f99;color:#fff}
.btnS{background:#fff;color:var(--accent);border:2px solid var(--accent);padding:7px 16px}
.btnS:hover{background:var(--t-futsu);color:#0d4f99}
.tabs ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tabs a,.tabs span{display:inline-block;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}
.tabs span[aria-current]{border:2px solid var(--ink);box-shadow:0 2px 0 var(--ink)}
.tbs{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px}
.tb{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;border-top:5px solid var(--c-futsu)}
.tb-toku{border-top-color:var(--c-toku)}.tb-gym{border-top-color:var(--c-gym)}
.tb h3{margin:0 0 4px}
.tbV{margin:0 0 8px;font-size:.82rem;color:var(--muted)}

/* 都道府県の一覧 */
.pg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}
.pg a{display:flex;flex-direction:column;padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.pg a:hover{border-color:var(--accent);background:#f6fbff}
.pgN{font-weight:700}
.pgV{font:700 .92rem/1.3 var(--fn);font-variant-numeric:tabular-nums;color:var(--c-gym)}
.pgK{font:600 .7rem var(--ff);color:var(--muted);margin-right:4px}

/* 検索・比較 */
.finder{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.finder label{font-weight:700;width:100%}
.finder input{flex:1 1 220px}
input[type=search],input[type=number],select{font:inherit;padding:8px 10px;border:1px solid #9fb6cc;border-radius:10px;background:#fff;color:var(--ink);min-height:44px;max-width:100%}
.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:10px 14px;align-items:end;margin:0 0 12px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.filters label{display:flex;flex-direction:column;font-size:.85rem;font-weight:700;gap:4px}
.count{margin:0;font-size:.88rem;color:var(--muted);align-self:center}
.results{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:8px}
.results li{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.results a{font-weight:700}
.results .rP{display:block;font-size:.78rem;color:var(--muted)}
.results .rV{display:block;font:700 .95rem var(--fn);font-variant-numeric:tabular-nums}
.cmp{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.cmp>*{min-width:0}
.cmpBar select{min-width:0;max-width:100%}
.cmpBar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.cmpBar label{display:flex;flex-direction:column;font-size:.85rem;font-weight:700;gap:4px;flex:1 1 200px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chips li{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:999px;background:var(--t-futsu);font-weight:600}
.chips button{font:inherit;border:0;background:#fff;border-radius:999px;width:30px;height:30px;cursor:pointer;color:var(--ink)}

/* 事実・近い市区町村 */
.facts{margin:0;padding:0 0 0 1.2em}
.facts li{margin:.4em 0}
.near{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:8px}
.near li{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}
.near span{font-size:.82rem;color:var(--muted)}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0 0 18px}
.dl dt{font-weight:700}
.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.hash{font-size:.7rem;word-break:break-all}

/* 注意・フッター */
.safety{background:#fff8e1;border-top:3px solid var(--sun);border-bottom:1px solid #f1dfa6;padding:22px 0}
.safetyH{font-size:1.05rem;margin:0 0 6px}
.safetyH::before{background:var(--sun)}
.safety ul{margin:0;padding-left:1.2em;font-size:.9rem}
.safety li{margin:.25em 0}
.ft{background:var(--ink);color:#e7f0f9;padding:28px 0 22px;font-size:.88rem}
.ft a{color:#cfe4fa}
.ftTop{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between}
.ftName{font-weight:800;font-size:1.05rem;margin:0}
.ftLead{margin:2px 0 0;color:#b9cde2}
.ftLinks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:4px 26px}
.disc{margin:18px 0 6px;color:#b9cde2;font-size:.8rem;max-width:70em}
.ftLast{margin:0;color:#9db5cd;font-size:.78rem}

@media (max-width:760px){
  .wrap{padding:0 16px}
  .hd{position:static}
  html{scroll-padding-top:8px}
  .hdIn{gap:6px}
  .nav ul{gap:2px}
  .nav a{padding:5px 8px;font-size:.82rem}
  .gRow{grid-template-columns:1fr auto;grid-template-areas:"l v" "g g"}
  .gL{grid-area:l}.gauge{grid-area:g}.gV{grid-area:v;justify-content:flex-end}
  .rk li{grid-template-columns:2em 1fr auto;grid-template-areas:"n name v" "n bar s"}
  .ftLinks{grid-template-columns:1fr}
  .dl{grid-template-columns:1fr}
  .t{font-size:.86rem}
  .t th,.t td{padding:6px 9px}
}
@media (prefers-reduced-motion:no-preference){.gFill,.rkBar i{transition:width .4s ease}}
@media print{.hd,.nav,.filters,.finder{display:none}body{background:#fff}}
