/* 中学受験DB — 淡グレーの地に白いカード・最小表示・高密度一覧（derubato-ui）。モバイル優先・ダークモード非対応。
   トークンはこの :root だけに置く。schedule.css はこのファイルの後に読まれ、同じトークンを使う。
   階層: ページ背景(--bg) < カード(--card, 1px線) 。影は使わない。主操作の色(--accent)は1画面に1つ。 */
:root{
  --bg:#f7f8fa; --paper:#eef0f3; --card:#fff;
  --ink:#1f2328; --ink-soft:#5b6470; --line:#e5e7eb; --line-strong:#c9ced4;
  --navy:#1f3a5f; --blue:#2c5e9e; --blue-hover:#1f3a5f;
  --accent:#c9302c; --accent-hover:#a8231f;
  --green:#2f7a4b; --orange:#b8651f; --gold:#b58a1c; --red:#c0392b; --red-bg:#fdeceb;
  --radius:8px; --radius-s:6px; --radius-xs:4px;
  --tag-bg:#f2f3f5;
  --fs-s:13px; --fs-m:15px; --fs-l:20px; --fs-xl:28px;
  --maxw:56rem;
  --font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font); font-size:var(--fs-m); line-height:1.7;
}
a{color:var(--blue); text-underline-offset:2px}
a:hover{color:var(--blue-hover)}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px; border-radius:2px}
img{max-width:100%; height:auto}

/* 共通ヘッダー: ロゴ＝「中学受験DB」（ネイビー太字）＋ 入口2つ（「学校を探す」「併願スケジューラ」）。
   「デルバト」はヘッダーに出さない（傘ブランドにしない。2026-09 決定）。375px でも1行・横スクロールなし・サイト名は欠けない。 */
.site-header{background:var(--card); border-bottom:1px solid var(--line)}
.site-header-in{
  max-width:var(--maxw); margin:0 auto; padding:.55rem 1rem;
  display:flex; align-items:center; gap:.8rem; flex-wrap:nowrap;
}
.site-header .site-name{font-weight:700; color:var(--navy); text-decoration:none; white-space:nowrap; flex:0 0 auto}
.site-nav{display:flex; align-items:center; gap:.8rem; margin-left:auto; min-width:0; font-size:var(--fs-s); white-space:nowrap}
.site-nav a{color:var(--ink-soft); text-decoration:none; padding:.2rem 0}
.site-nav a:hover{color:var(--navy)}
@media (max-width:40rem){
  .site-header-in{padding:.5rem .6rem; gap:.5rem}
  .site-nav{gap:.8rem}
  .site-nav a{padding:.5rem 0}
}
/* 360px 以下（320px 機など）ではナビを「学校を探す」「併願」に縮める。サイト名は縮めない */
@media (max-width:22.5rem){
  .site-nav .nav-rest{display:none}
}
.site-footer .footer-sister{margin:.3rem 0 0}

/* 白いカード（表・フォーム・主要な情報の箱に使う） */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:.8rem 1rem}
.card > h2:first-child,.card > h3:first-child{margin-top:0}

main{max-width:var(--maxw); margin:0 auto; padding:1rem 1rem 3rem}

h1,h2,h3,h4{line-height:1.3; margin:0 0 .6rem; color:var(--navy)}
.page-title{font-size:var(--fs-l); margin-top:.4rem}
.page-lede{color:var(--ink-soft); margin:0 0 1rem}
h2{font-size:var(--fs-l)}
h3{font-size:var(--fs-m); margin-top:1rem}
h4{font-size:var(--fs-m)}

.crumbs{font-size:var(--fs-s); color:var(--ink-soft); margin-bottom:.5rem}
.crumbs a{color:var(--ink-soft)}
.source-line{font-size:var(--fs-s); color:var(--ink-soft); margin:.2rem 0 1rem}
.kicker{font-size:var(--fs-s); color:var(--ink-soft); margin:.4rem 0 0}
.kicker + .page-title{margin-top:0}

/* セクションは箱にせず、上の1本線で区切る */
.panel{margin:1.5rem 0; padding-top:1rem; border-top:1px solid var(--line)}
.panel > h2:first-child{margin-top:0}

.facts{margin:.2rem 0; font-size:var(--fs-s); color:var(--ink-soft)}
.official{margin:.2rem 0; font-size:var(--fs-s)}
/* 校名変更のお知らせ（h1 直下の1行） */
.rename-notice{margin:.3rem 0 .5rem; font-size:var(--fs-s); color:var(--ink-soft)}
.coverage{margin:.6rem 0}

.badge{
  display:inline-block; border-radius:var(--radius-s); padding:0 .4rem;
  font-size:var(--fs-s); line-height:1.6; white-space:nowrap; border:1px solid transparent; font-weight:400;
}
.badge-ok{background:#eaf5ee; color:#2f6b45; border-color:#c8e3d2}
.badge-wait{background:#fdf1e3; color:#96581b; border-color:#f0d6b4}
.badge-none{background:var(--paper); color:var(--ink-soft); border-color:var(--line)}
.badge-ref2026{background:#fbf3d8; color:#7d6112; border-color:#ecdca3}
.badge-ambiguous{background:#fdeaea; color:#9d3a3a; border-color:#f0c8c8}
.badge-returnee{background:#e8f0fa; color:#2c5d96; border-color:#c6d9ef}
/* タグ（科目数 2科・4科、回の種類 帰国生・英語・プレゼン 等）: 状態ではないので押せない見た目にする（BACKLOG 15）。
   線なし・淡グレーの塗り・角丸4px・13px。文字 --ink-soft は --tag-bg 地で 5.4:1。
   状態の例外（2026年度実績・要確認・未公表）は上の .badge-* のまま */
.tag{
  display:inline-block; padding:0 .5rem; border-radius:var(--radius-xs); background:var(--tag-bg);
  color:var(--ink-soft); font-size:var(--fs-s); font-weight:400; line-height:1.6; white-space:nowrap; vertical-align:baseline;
}

/* 表: 横線だけ・1行36px前後・数字は桁揃え */
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:.5rem 0}
table{border-collapse:collapse; width:100%; font-size:var(--fs-s); line-height:1.5; font-variant-numeric:tabular-nums; background:var(--card)}
th,td{border-bottom:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top}
th:first-child,td:first-child{padding-left:0}
thead th{font-weight:600; white-space:nowrap; color:var(--ink-soft); border-bottom-color:var(--line-strong)}
tbody th{font-weight:600}
tbody th a{text-decoration:none}
tbody th a:hover{text-decoration:underline}
td{white-space:nowrap}
td.wrap{white-space:normal}
.sub{display:block; font-size:var(--fs-s); font-weight:400; color:var(--ink-soft)}
tr.is-ambiguous{background:#fdf6f6}
.legend{font-size:var(--fs-s); color:var(--ink-soft); margin:.5rem 0 0}
/* 表を入れる白カード（都県一覧・日付・条件・検索結果）。表の左右 padding は 0 のままなので、カード側で寄せる。
   最終行の下線はカードの枠線と重ねない。見出し（午前／都県名）はカードの中に 15px で置く */
.list-card{padding:.15rem .9rem .25rem; margin:.5rem 0 1rem}
.list-card .table-wrap{margin:0}
.list-card tbody tr:last-child > th,.list-card tbody tr:last-child > td{border-bottom:none}
.list-card-h{font-size:var(--fs-m); font-weight:600; margin:.55rem 0 .1rem}
.list-card > .list-card-h:first-child{margin-top:.55rem}
/* 長い一覧のグループ（日付ページ = 時間帯の見出しの下に都県ごと、帰国生ページ = 月ごと。BACKLOG 24）。
   各グループは <details>（行は HTML に全部残し、既定では最初のグループだけ開く。開いている行は LIST_OPEN_MAX 以下）。
   見出し行は 15px・件数は 13px の薄い色。開閉の状態は list.js が URL（?open=）に持たせる */
details.list-group{border-top:1px solid var(--line)}
.list-card-h + details.list-group{border-top-color:var(--line-strong)}
details.list-group > summary{
  display:flex; align-items:baseline; gap:.5rem; cursor:pointer; list-style:none;
  min-height:44px; padding:.55rem 0; font-size:var(--fs-m); font-weight:600; color:var(--navy);
}
details.list-group > summary::-webkit-details-marker{display:none}
details.list-group > summary::before{content:"▸"; flex:0 0 1em; color:var(--ink-soft); font-weight:400}
details.list-group[open] > summary::before{content:"▾"}
details.list-group > summary:hover .lg-name{text-decoration:underline}
.lg-n{font-size:var(--fs-s); font-weight:400; color:var(--ink-soft); font-variant-numeric:tabular-nums}
details.list-group[hidden]{display:none}
details.list-group > .table-wrap{margin:0 0 .4rem}
details.list-group > .chips{margin:0 0 .4rem}
/* グループの中の表は列見出し（学校／集合）を毎回出さない（読み上げ用に残す） */
.list-table.in-group thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
.lg-hint{color:var(--ink-soft)}
.list-card-h.lg-session{margin-top:1rem}
.list-card > .list-card-h.lg-session:first-child{margin-top:.55rem}
/* 検索結果: 結果が空のあいだはカードを出さない */
/* 検索結果カードは search.js が hidden を付け外しする（Safari は :has(:empty) の再評価が不安定なので CSS では判定しない） */

/* 学校ページ: 上部の文字階層。校名は 28px（スマホでも）、事実は 13px の薄い色で1行 */
body.page-school .page-title{font-size:var(--fs-xl); margin-top:.2rem}
.school-head{margin-bottom:2rem}
.school-head .facts{margin:.4rem 0 .2rem}
.school-head .facts-site{margin-left:.6rem; color:var(--blue)}
.school-head .facts-addr{display:block}
.school-head .source-line{margin:0}

/* 学校ページ: 次の締切 */
/* 概要カード（1枚の白カード）: 1行目 校名 28px＋区分 13px / 2行目 住所・公式サイト 13px /
   3行目「公式サイトの記載より／確認 日付」は 13px 灰色の素のテキスト（標準なので目立たせない。例外の未公表・要確認だけバッジ）/
   下半分に次の出願締切。数字はネイビー 28px、ラベルと回名は 13px。赤は使わない */
.school-overview{margin:0 0 1rem; padding:.9rem 1rem 1rem}
.school-overview .overview-title{display:flex; flex-wrap:wrap; align-items:baseline; gap:.1rem .7rem; margin:0 0 .2rem}
.school-overview .page-title{margin:0}
.school-overview .facts{margin:0}
.school-overview .facts-line{margin:0 0 .5rem; font-size:var(--fs-s); color:var(--ink-soft)}
.school-overview .facts-site{margin-left:.6rem; color:var(--blue); white-space:nowrap}
.school-overview .rename-notice{margin:.1rem 0 .3rem}
.school-overview .source-line{display:flex; flex-wrap:wrap; gap:.3rem .5rem; margin:0}
.school-overview .source-line .badge{white-space:normal; line-height:1.5}
/* --ink-soft #5b6470: 白地 6.0:1・#f7f8fa 地 5.7:1 */
.school-overview .source-note{font-size:var(--fs-s); color:var(--ink-soft); line-height:1.5; font-variant-numeric:tabular-nums}
/* 出願書類の1行（出典行の直前。SPEC §10-8）: 項目名 13px 灰色＋値 15px、補足（書類名・どの回か・合格後の提出 等）は 13px の薄い色で1つずつ改行 */
.school-overview .doc-line{display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .6rem; margin:0 0 .4rem; line-height:1.5}
.doc-k{font-size:var(--fs-s); color:var(--ink-soft)}
.doc-v{font-size:var(--fs-m); color:var(--ink)}
.doc-line .doc-note{flex:1 0 100%; min-width:0; font-size:var(--fs-s); color:var(--ink-soft); overflow-wrap:anywhere}
.next-deadline{
  display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:0 .8rem;
  margin:.9rem 0 0; padding-top:.8rem; border-top:1px solid var(--line); font-variant-numeric:tabular-nums;
}
.nd-label{grid-column:1/-1; font-size:var(--fs-s); color:var(--ink-soft)}
.nd-days{font-size:var(--fs-xl); font-weight:700; line-height:1.3; color:var(--navy)}
.nd-days small{font-size:var(--fs-m); font-weight:400; margin-left:.15rem}
.nd-what{font-size:var(--fs-s); color:var(--ink)}

/* 学校ページ: ページ内タブ（上に貼り付く。スマホでは横スクロール）。帯と同じく画面の端まで白く塗る */
.page-tabs{
  position:sticky; top:0; z-index:5; display:flex; gap:0 1.2rem;
  margin:0 0 .5rem; padding:0; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  background:var(--card); border-bottom:1px solid var(--line);
  box-shadow:0 0 0 100vmax var(--card); clip-path:inset(0 -100vmax -1px);
  font-size:var(--fs-m); white-space:nowrap;
}
.page-tabs::-webkit-scrollbar{display:none}
.page-tabs a{
  flex:0 0 auto; padding:.6rem 0; color:var(--ink-soft); text-decoration:none;
  border-bottom:2px solid transparent; margin-bottom:-1px;
}
.page-tabs a:hover{color:var(--navy)}
.page-tabs a[aria-current]{color:var(--navy); font-weight:600; border-bottom-color:var(--navy)}
body.page-school .panel{scroll-margin-top:3rem}

/* 学校ページ: ブロックは1本線ではなく背景差で区切る。--paper の帯は画面の端まで塗る
   （box-shadow は影ではなく横方向の塗り足し。clip-path で上下には出さない） */
body.page-school .panel{border-top:0; margin:0; padding:1.4rem 0 1.6rem}
body.page-school .panel-paper{
  background:var(--paper); box-shadow:0 0 0 100vmax var(--paper); clip-path:inset(0 -100vmax);
  margin:.6rem 0; padding:1.6rem 0 1.8rem;
}
body.page-school .panel-paper + .panel{padding-top:1.2rem}

/* 学校ページ: 入試回カード（白カード。日付は 20px ネイビー、回名は 13px） */
.rounds{display:grid; gap:.6rem; grid-template-columns:repeat(auto-fill,minmax(16rem,1fr)); margin:.5rem 0}
.round{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:.7rem .9rem .8rem; font-variant-numeric:tabular-nums}
.round-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:.1rem .5rem; margin:0 0 .4rem}
.round-date{font-size:var(--fs-l); font-weight:600; color:var(--navy)}
.round-name{font-size:var(--fs-s); color:var(--ink-soft)}
.round-subj{font-size:var(--fs-s); color:var(--ink-soft); border:1px solid var(--line); border-radius:var(--radius-s); padding:0 .35rem; line-height:1.5}
.round-facts{display:grid; grid-template-columns:auto 1fr; gap:.1rem .7rem; margin:0; font-size:var(--fs-s); line-height:1.6}
.round-facts dt{color:var(--ink-soft)}
.round-facts dd{margin:0}
.round-note{margin:.3rem 0 0; font-size:var(--fs-s); color:var(--ink-soft)}
/* 帰国生入試だけ公表済みの学校: 一般入試の日付なしの枠を1枚にまとめたカード（BACKLOG 25） */
.round-pending-t{font-size:var(--fs-m); font-weight:600; color:var(--navy)}
.round-pending .round-name{font-weight:400}
.round-pending .dev-summary{margin-top:.35rem}
.round-pending details.more{margin:.3rem 0 0}
.dev-round{margin-top:.35rem; padding-top:.35rem; border-top:1px dashed var(--line); font-size:var(--fs-s)}
details.more{margin:.6rem 0}
details.more > summary{cursor:pointer; color:var(--blue); font-size:var(--fs-s); padding:.3rem 0}
details.more[open] > summary{margin-bottom:.4rem}
/* 学校ページ: 3ブロック（受験する／学校を知る／対策する）の中の小見出し */
.panel > h3{margin-top:1.2rem}
.panel > h3:first-of-type{margin-top:.8rem}
/* 学校ページ: 入試回カードの「＋ 併願表に追加」= このページ唯一の主操作（.btn-accent の塗り、小さめ）。
   追加済みは枠線だけの表示に変える（赤にしない） */
.round-actions{margin:.55rem 0 0}
.round-actions .round-add{font-size:var(--fs-s); line-height:1.6; padding:.3rem .7rem; white-space:nowrap}
.round-actions .round-add.is-added,.round-actions .round-add.is-added:hover{
  background:var(--card); border-color:var(--line-strong); color:var(--ink-soft);
}
.round-add.is-added::before{content:"✓ "}
/* 学校ページ: 画面下の固定バー（併願表に N 回追加済み）。school.js が hidden を外したときだけ出る */
.sched-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding:.55rem 1rem; padding-bottom:calc(.55rem + env(safe-area-inset-bottom));
  background:var(--bg); border-top:1px solid var(--line); font-size:var(--fs-s);
  font-variant-numeric:tabular-nums;
}
.sched-bar[hidden]{display:none}
.sched-bar-text{color:var(--ink-soft)}
.sched-bar-text [data-sched-count]{color:var(--ink); font-weight:700; font-size:var(--fs-m)}
.sched-bar-link{
  display:inline-block; padding:.35rem .9rem; border-radius:var(--radius-s);
  background:var(--navy); color:#fff; text-decoration:none; white-space:nowrap;
}
.sched-bar-link:hover{background:var(--blue-hover); color:#fff}
body.has-sched-bar{padding-bottom:calc(3.2rem + env(safe-area-inset-bottom))}
@media print{.sched-bar{display:none}}
/* 学校ページ: 偏差値の出典注記を畳んだもの（class は dev で始める = 検査8） */
.dev-about{margin:.6rem 0 0}
.dev-about > summary.dev-more{color:var(--blue)}
/* 学校ページ: 併願候補（--paper の帯。入試回ごとに「同日午後／翌日午前」の切り替え、偏差値で近い学校を行で3件＋「あと N 校」、
   全件は条件ページへのリンクだけ）。主操作（赤）は入試回カードの「＋ 併願表に追加」なので、ここのボタンは枠線だけ */
.cand-how{margin:0 0 .4rem}
.cand-how .note{margin:0}
.cand-base{margin:1.2rem 0 0}
.cand-base-row{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.3rem .8rem; margin:0 0 .5rem}
.cand-base-head{margin:0; font-size:var(--fs-m); font-weight:600}
.cand-make{
  display:inline-block; font-size:var(--fs-s); line-height:1.6; padding:.3rem .7rem; white-space:nowrap;
  color:var(--navy); text-decoration:none; background:var(--card); border:1px solid var(--line-strong); border-radius:var(--radius-s);
}
.cand-make:hover{border-color:var(--navy); color:var(--navy)}
.dev-near-head{margin:.4rem 0 .3rem; font-size:var(--fs-s); color:var(--ink-soft)}
.dev-near-head .cand-count{margin-left:.4rem}
.dev-near-empty{margin:.4rem 0; font-size:var(--fs-s); color:var(--ink-soft)}
/* 切り替えボタンは JS があるとき（.is-tabbed）だけ出す。JS 無しでは両方の枠をそのまま出す */
.cand-tabs{display:none; gap:.4rem; margin:0 0 .6rem}
.cand-base.is-tabbed .cand-tabs{display:flex; flex-wrap:wrap}
.cand-tab{
  display:inline-flex; align-items:baseline; gap:.3rem; margin:0; padding:.25rem .7rem; min-height:32px;
  font:inherit; font-size:var(--fs-s); line-height:1.5; color:var(--ink); cursor:pointer;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-s);
}
.cand-tab:hover{border-color:var(--navy)}
/* 押した状態は色だけでなく「✓」でも伝える */
.cand-tab[aria-pressed="true"]{border-color:var(--navy); color:var(--navy); font-weight:600}
.cand-tab[aria-pressed="true"]::before{content:"✓"; font-weight:400}
.cand-tab .cand-count{font-weight:400}
.cand-base.is-tabbed .cand-slot-head{display:none}
.cand-slot-head{margin:.6rem 0 .3rem; font-size:var(--fs-s); color:var(--ink-soft); font-variant-numeric:tabular-nums}
.cand-slot[hidden]{display:none}
.cand-rest{margin:.5rem 0 .3rem}
.cand-rest > summary{padding:.35rem 0}
.cand-rest[open] > summary{margin-bottom:.4rem}

/* 偏差値（各社公表値をそのまま。class は dev で始める = verify 検査8の対象） */
.dev-summary{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.35rem .9rem;
  margin:.4rem 0 .2rem; font-variant-numeric:tabular-nums;
}
.dev-head{display:none}
.dev-item{display:inline-flex; gap:.35rem; align-items:baseline; white-space:nowrap}
.dev-item .dev-p{font-size:var(--fs-s); color:var(--ink-soft)}
.dev-item .dev-v{font-weight:600}
.dev-more{font-size:var(--fs-s); color:var(--ink-soft)}
td.dev{white-space:nowrap}
.dev-line{display:block; line-height:1.5}
.dev-line .dev-p{font-size:var(--fs-s); color:var(--ink-soft); display:inline-block; min-width:3.2em}
th.dev .dev-note{display:block; font-weight:400; font-size:var(--fs-s)}
.dev-source{font-size:var(--fs-s); color:var(--ink-soft); margin:.6rem 0 0; line-height:1.6}
.dev-inline{display:block; font-size:var(--fs-s); color:var(--ink-soft); font-variant-numeric:tabular-nums}
/* 社会の出題傾向（--paper の帯。横棒と「多め／少なめ」と練習リンクを白カードに。円グラフ・赤ボタンは使わない） */
.kk-lead{margin:.2rem 0 .8rem}
.kk-domains.card{display:grid; gap:.35rem; margin:0 0 .6rem; max-width:28rem}
.kk-dom{display:grid; grid-template-columns:3em 1fr 3.5em; align-items:center; gap:.5rem; font-size:var(--fs-s)}
.kk-dom-l{color:var(--ink-soft)}
.kk-bar{display:block; height:.5rem; background:var(--navy); border-radius:2px; min-width:2px}
.kk-dom-v{font-variant-numeric:tabular-nums; text-align:right}
.kk-attrs{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(11rem,1fr)); gap:.5rem}
.kk-attr{display:flex; flex-direction:column; gap:.1rem; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:.5rem .8rem}
.kk-attr-l{font-size:var(--fs-s); color:var(--ink-soft)}
.kk-attr-v{font-weight:700}
.kk-many .kk-attr-v{color:#a44a24}
.kk-few .kk-attr-v{color:#2f6b45}
.kk-attr-n{font-size:var(--fs-s); color:var(--ink-soft); font-variant-numeric:tabular-nums}
.kk-more{margin:.8rem 0 .2rem}
/* 社会の出題傾向の専用ページ（SPEC §12）: 数字の表。項目は左、数字は右揃え。幅は読める範囲に抑える */
.kk-table{max-width:34rem}
.kk-table td,.kk-table thead th:not(:first-child){text-align:right; white-space:nowrap}
.kk-table th[scope="row"]{font-weight:400}
.kk-papers thead th:nth-child(2),.kk-papers thead th:first-child{text-align:left}
.kk-papers td.kk-dno{text-align:left; width:2.5rem; padding-left:0}
.kk-theme{display:block}
.kk-dparts{display:block; font-size:var(--fs-s); color:var(--ink-soft)}
.kk-paper-n{font-size:var(--fs-s); font-weight:400; color:var(--ink-soft); margin-left:.5rem; font-variant-numeric:tabular-nums}
/* 学校別の一覧（/nyushi/shakai/）: 校名は1行に収め、数字5列を右に */
.kk-index{max-width:40rem; table-layout:fixed}
.kk-index th[scope="row"]{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.kk-index thead th:not(:first-child),.kk-index td{width:3.2rem}
details.list-group > .table-wrap > .kk-index{margin:0}
@media (max-width:40rem){
  .kk-index thead th:not(:first-child),.kk-index td{width:2.55rem; padding-left:2px; padding-right:3px}
}
.kk-rank{margin:.3rem 0 .6rem; padding-left:1.6rem; font-variant-numeric:tabular-nums}
.kk-rank li{margin:.15rem 0}
.kk-hl{margin:.3rem 0 .6rem; padding-left:1.2rem}
.kk-hl-med{font-size:var(--fs-s); color:var(--ink-soft); margin-left:.2rem; font-variant-numeric:tabular-nums}
.kk-practice{margin:1rem 0 0}
.kk-practice > h3{margin-top:0}
.kk-practice .unit-list{margin-bottom:.2rem}

/* 併願候補の行（白い1枚のリストに1本線で区切る。校名／都県・性別／試験日・時間帯／比較した会社の値／「＋ 併願表に追加」は枠線だけ） */
.cand-slot{margin:.4rem 0 .6rem}
.cand-count{font-weight:400; font-size:var(--fs-s); color:var(--ink-soft)}
.cand-list{
  list-style:none; padding:0 .8rem; margin:0;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
}
.cand-row{
  display:grid; grid-template-columns:1fr auto; grid-template-areas:"main add" "sub add"; align-items:center; gap:0 .8rem;
  padding:.5rem 0; border-top:1px solid var(--line); font-variant-numeric:tabular-nums;
}
.cand-row:first-child{border-top:0}
.cand-main{grid-area:main; display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .5rem; min-width:0}
.cand-name{font-weight:600; text-decoration:none}
.cand-meta{font-size:var(--fs-s); color:var(--ink-soft)}
.cand-sub{grid-area:sub; display:flex; flex-wrap:wrap; gap:0 .8rem; font-size:var(--fs-s); color:var(--ink)}
.cand-sub .dev-inline{display:inline}
.cand-add{
  grid-area:add; font-size:var(--fs-s); line-height:1.6; padding:.25rem .6rem; white-space:nowrap;
  color:var(--navy); text-decoration:none; border:1px solid var(--line-strong); border-radius:var(--radius-s);
}
.cand-add:hover{border-color:var(--navy); color:var(--navy)}
.cand-rest .cand-list{margin-top:.3rem}
.cand-more{margin:.5rem 0 0; font-size:var(--fs-s)}

/* 条件ページ */
.cond-links{font-size:var(--fs-s); color:var(--ink-soft); margin:0 0 .8rem}
.cond-links a{margin-right:.5rem; white-space:nowrap}
.cond-row{display:flex; gap:.6rem; align-items:flex-start; margin:.35rem 0}
.cond-sess{flex:0 0 3.2em; font-size:var(--fs-s); font-weight:600; padding-top:.2rem}
.cond-chips,.chips{display:flex; flex-wrap:wrap; gap:.35rem}
.cond-chip,.date-strip a{
  display:inline-flex; gap:.35rem; align-items:baseline; background:var(--bg); border:1px solid var(--line);
  border-radius:var(--radius-s); padding:.15rem .6rem; font-size:var(--fs-s); text-decoration:none; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.cond-chip:hover,.date-strip a:hover{border-color:var(--blue)}
.cond-n{font-size:var(--fs-s); color:var(--ink-soft)}
.empty-note{color:var(--ink-soft)}
/* 日付の一覧ページ /nyushi/date/: 日付チップ（白カード・1px線）。1/10〜2/5 は大きく、それ以外は小さく月ごとに */
.date-cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr)); gap:.5rem; margin:.3rem 0 1rem}
.date-cards-s{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr)); gap:.4rem}
.date-card{
  display:flex; flex-direction:column; gap:0; padding:.45rem .7rem; min-width:0;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); color:var(--ink); text-decoration:none;
  font-variant-numeric:tabular-nums;
}
.date-card:hover{border-color:var(--blue); color:var(--ink)}
.date-card-d{font-size:var(--fs-l); font-weight:600; color:var(--navy); line-height:1.3}
.date-card-s .date-card-d{font-size:var(--fs-m)}
.date-card-n{font-size:var(--fs-s); color:var(--ink-soft); line-height:1.5}
.date-month{font-size:var(--fs-s); color:var(--ink-soft); margin:.6rem 0 .3rem}
/* 学校数3校未満で単独ページを作らない日: カードにせず、この行に学校名を直接並べる（オーナー判断 2026-09-29） */
.date-fold-list{list-style:none; margin:.2rem 0 1rem; padding:0}
.date-fold-row{display:flex; flex-wrap:wrap; align-items:baseline; column-gap:.6rem; row-gap:.1rem; padding:.4rem 0; border-bottom:1px solid var(--line); font-size:var(--fs-s)}
.date-fold-row:last-child{border-bottom:none}
.date-fold-row:target{background:var(--paper)}
.date-fold-d{flex:0 0 auto; font-weight:600; color:var(--navy); font-variant-numeric:tabular-nums}
.date-fold-schools{flex:1 1 14rem; color:var(--ink-soft)}
.date-fold-sess{color:var(--ink-soft); margin-left:.15rem}

.feature-list{margin:.2rem 0 .6rem; padding-left:1.2rem}
.feature-list li{margin:.15rem 0}
.club-list{font-size:var(--fs-s); color:var(--ink-soft)}
.unit-list{margin:.4rem 0; padding-left:1.2rem}
.note{font-size:var(--fs-s); color:var(--ink-soft)}

/* トップ: h1 はスマホでも 28px（他ページの .page-title は 20px → 40rem 以上で 28px） */
.home-title{font-size:var(--fs-xl); margin-top:.2rem}
.source-line .dev-word,.home-lede .dev-word{color:inherit}
/* 説明は1行（15px）。その下に13pxの灰色で「2027年度・データ更新 M月D日」 */
.home-lede{margin:.2rem 0 0; color:var(--ink)}
.home-fresh{margin:.1rem 0 .9rem; font-size:var(--fs-s); color:var(--ink-soft); font-variant-numeric:tabular-nums}

/* トップ: 検索カード（白）。上にタブ「学校名から」「条件から」、下に選んだパネル。主役はこの1枚だけ */
.home-search{margin:0 0 .8rem}
/* トップだけ: 上部に弱い青灰のグラデーションを敷き、検索カードを半透明＋ぼかしにする（影なし・角丸はそのまま）。
   透明感が出るのは静止した面では弱いが、ここはページの顔なので例外的に入れる。透明を減らす設定では白に戻す */
body.page-home{background:linear-gradient(180deg,#e9eff6 0,#f2f5f9 320px,var(--bg) 640px) no-repeat, var(--bg)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body.page-home .home-search{background:rgba(255,255,255,.72); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); border-color:rgba(255,255,255,.85)}
}
@media (prefers-reduced-transparency:reduce){ body.page-home .home-search{background:var(--card); -webkit-backdrop-filter:none; backdrop-filter:none; border-color:var(--line)} }
/* タブ列（セグメント型）。JS があるとき（.is-tabbed）だけ出す。淡グレー（--paper）の容器に2つのセグメント、
   選択中だけ白＋1px線。影なし。太字も併用して色だけに頼らない。高さは各セグメント44px（タップ領域） */
.home-tabs{display:none; gap:2px; margin:0 0 .8rem; padding:3px; background:var(--paper); border-radius:var(--radius)}
.home-search.is-tabbed .home-tabs{display:flex}
.home-tabs [role="tab"]{
  flex:1 1 0; min-height:44px; padding:.4rem .6rem;
  background:transparent; border:1px solid transparent; border-radius:var(--radius-s);
  font:inherit; font-size:var(--fs-m); color:var(--ink-soft); cursor:pointer;
}
.home-tabs [role="tab"]:hover{color:var(--navy)}
.home-tabs [role="tab"][aria-selected="true"]{background:var(--card); border-color:var(--line-strong); color:var(--navy); font-weight:700}
.home-tabs [role="tab"]:focus-visible{outline:2px solid var(--blue); outline-offset:1px}
/* パネル。JS 無しでは両方を縦に並べ、見出し（p）で区切る。JS ありでは見出しを消してタブに任せる */
.home-tabpanel[hidden]{display:none}
.home-tab-h{font-size:var(--fs-m); font-weight:700; color:var(--navy); margin:0 0 .5rem}
.home-tabpanel + .home-tabpanel{margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line)}
.home-search.is-tabbed .home-tab-h{display:none}
.home-search.is-tabbed .home-tabpanel + .home-tabpanel{margin-top:0; padding-top:0; border-top:0}
/* 学校名から: 入力欄と「検索」（ネイビー）を横並び。結果一覧もこのカードの中 */
.search-row{display:flex; gap:.5rem}
.search-row input[type="search"]{flex:1 1 auto; min-width:0}
.search-row .btn{flex:0 0 auto; padding:.45rem 1rem; white-space:nowrap}
.home-search .search-count{margin:.5rem 0 0}
.home-search .school-list{margin-top:.2rem}
.home-search .school-list li:last-child{border-bottom:none}
/* 条件から: 4項目を2列。「この条件で探す」= このページで唯一の .btn-accent */
.home-search .cond-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.cond-form .cond-submit{margin-top:.3rem}
.home-cond-links{margin:.6rem 0 0}

/* トップ: 併願を組む（白カード1枚・左に3pxのネイビー線・影なし）。検索カードの直下 */
.entry-wide{display:block; text-decoration:none; color:var(--ink); border-left:3px solid var(--navy)}
.entry-wide:hover{border-color:var(--blue); border-left-color:var(--navy); color:var(--ink)}
.home-schedule{display:flex; flex-direction:column; gap:.1rem; margin:0 0 1.2rem}
.entry-title{font-weight:600; color:var(--navy)}
.entry-sub{font-size:var(--fs-s); color:var(--ink-soft); line-height:1.5}
.entry-sub .dev-word{color:inherit}

/* トップ: 補助導線（よく使われる日程・都県から探す）。小見出しは 15px に下げる */
.home-sub{margin:1.2rem 0 0; padding-top:.8rem; border-top:1px solid var(--line)}
.home-sub > h2{font-size:var(--fs-m); margin:0 0 .2rem}
.home-more{margin:.4rem 0 0}
.home-areas{font-size:var(--fs-s); color:var(--ink-soft); margin:1rem 0 0; line-height:2}
.home-areas a{margin-right:.7rem; white-space:nowrap}

.date-strip{display:flex; flex-wrap:wrap; gap:.35rem; margin:.5rem 0}
/* トップ: 既定で出す5つの日付チップ */
.date-quick{margin:.3rem 0 .2rem}
.date-quick a{padding:.3rem .7rem; font-size:var(--fs-m); background:var(--card)}
.date-nav{display:flex; justify-content:space-between; gap:1rem; margin:.5rem 0; font-size:var(--fs-s)}
.date-group{margin:.4rem 0}
.date-group-label{font-size:var(--fs-s); color:var(--ink-soft); margin:0 0 .2rem}

.area-list{display:flex; flex-wrap:wrap; gap:.35rem .9rem; margin:.3rem 0; padding:0; list-style:none}
/* 一覧ページ（都県・日付・条件）の h1 は 28px */
.list-title{font-size:var(--fs-xl)}
/* 都県別一覧の日程の概要（SPEC §3-4）。地の上の素のテキスト（カードにしない）。下に1pxの線 */
.area-overview{margin:.2rem 0 .9rem; padding:0 0 .8rem; border-bottom:1px solid var(--line)}
.ao-lead{margin:0 0 .5rem}
.ao-dates{display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem .6rem; margin:0 0 .4rem; font-size:var(--fs-s)}
.ao-label{color:var(--ink-soft); white-space:nowrap}
.ao-dates .cond-chips{gap:.3rem}
.ao-line{margin:0 0 .3rem; font-size:var(--fs-s); line-height:1.7}
.ao-line:last-child{margin-bottom:0}
.ao-note{color:var(--ink-soft)}
/* 一覧の行（都県一覧・日付・条件・帰国生・検索結果で共通 = .list-table。BACKLOG 23）。
   PC幅: 1行（約36px）。左に 校名（.row-main。区分・タグ・状態バッジは校名の横）→ 同じ行に都県・性別・選択中1社の偏差値
   （.dev-row／.sub、13px の薄い色）、右列に試験日／集合。.sub は折り返さない塊なので、入りきらない行だけ .sub ごと次の行に落ちる。
   スマホ幅（下の @media）: 2行（約44px ＝ タップ領域）。校名は1行で、長い校名は末尾を「…」で切る（リンク文字列は全文のまま） */
.n-rounds{color:var(--ink-soft)}
.list-table tbody th{white-space:normal; min-width:10rem}
.list-table tbody th,.list-table tbody td{padding-top:8px; padding-bottom:8px}
.list-table tbody .row-main{display:inline}
.list-table tbody th > .sub{display:inline-block; margin-left:.6rem; white-space:nowrap}
.list-table .row-main .badge,.list-table td .badge{line-height:1.3}
.kind{font-size:var(--fs-s); font-weight:400; color:var(--ink-soft); white-space:nowrap}
.list-table td{width:1%; text-align:right; vertical-align:top}
.list-table .cell-date{text-align:left}
.area-table td .first-date{display:inline-block; min-width:5.5em; text-align:left}
.area-table tbody tr{scroll-margin-top:calc(var(--list-sticky-h,2.6rem) + .5rem)}
/* 都県一覧: 右端の状態の印。確認済は 13px で薄く（✓ と文字を併記し、色だけに頼らない）。例外はバッジ（.badge-wait / .badge-none） */
.mark-ok,.area-table td .badge{margin-left:.5rem; vertical-align:baseline}
.mark-ok{display:inline-block; font-size:var(--fs-s); line-height:1.6; padding:0 .35rem; border-radius:var(--radius-s); color:var(--green); background:#eef6f0; white-space:nowrap}
/* 375px では「校名＋試験日＋全N回」で行幅が埋まり、確認済の印を足すと校名が2行に折れて行高の中央値が 52px になる（実測）。
   狭い画面では「標準は書かず例外だけ書く」に戻し、未公表・外部入試なしのバッジだけ出す。確認済の印は 40rem 以上でだけ出す */
@media (max-width:39.99rem){ .mark-ok{display:none} }
/* 都県一覧・帰国生ページ: 絞り込み（白カード。貼り付かない）。会社の切り替え・並び替えはこの下の .list-sort-bar。
   2026-09-29: 以前はこのカードごと貼り付けていたが、375px で 153px を占めた（BACKLOG 6）。
   貼り付くのは表の直上の .list-sticky（件数＋あかさたなの1行、約40px）だけにした */
.area-filter{
  margin:0 0 .5rem;
  display:flex; flex-direction:column; gap:.3rem;
}
.area-filter.card{padding:.45rem .7rem .3rem}
/* 貼り付く1行: 左に件数、右にあかさたな。折り返さず、入りきらない幅では横にスクロール */
.list-sticky{
  position:sticky; top:0; z-index:2; margin:.5rem 0 0;
  display:flex; align-items:center; gap:.6rem; padding:0 .7rem;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  font-size:var(--fs-s);
}
.list-sticky .kana-index{flex:1 1 auto; justify-content:flex-end; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; min-width:0}
.list-sticky .kana-index::-webkit-scrollbar{display:none}
.list-sticky + .list-card{margin-top:.4rem}
/* 貼り付く部品だけガラス（白 0.8＋ぼかし 12px、影なし、角丸・1px線はそのまま）。半透明が「透けている」と分かるのは
   下を中身がスクロールして通るときだけなので、静止したパネルは白のまま（トップの検索カードは例外、上を参照）。
   .page-tabs の横の塗り足し（box-shadow）は同じ白 0.8 に合わせる（ぼかしは要素の箱にしか掛からないが、余白には文字が流れない）。
   ヘッダーは貼り付かせない（375px でロゴ行の下に貼り付く部品の top をずらす必要が出るため）ので白のまま。
   backdrop-filter 非対応と「透明を減らす」設定では不透明に戻す（--sched-bar は --bg に） */
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .list-sticky,.page-tabs,.sched-bar{background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px)}
  .page-tabs{box-shadow:0 0 0 100vmax rgba(255,255,255,.8)}
  @media (prefers-reduced-transparency:reduce){
    .list-sticky,.page-tabs{background:var(--card); -webkit-backdrop-filter:none; backdrop-filter:none}
    .page-tabs{box-shadow:0 0 0 100vmax var(--card)}
    .sched-bar{background:var(--bg); -webkit-backdrop-filter:none; backdrop-filter:none}
  }
}
.area-filter input[type="search"]{padding:.35rem .6rem}
.area-filter .chips{gap:.3rem}
/* 帰国生ページ: 日付チップは多い（約60日）ので畳めるようにする */
.chips-more{margin:0}
.chips-more > summary{padding:.15rem 0; font-size:var(--fs-s)}
.chips-more[open] > summary{margin-bottom:.3rem}
.chips-date .chip{padding:.1rem .45rem; min-height:26px}
.chip{
  display:inline-flex; align-items:center; gap:.25rem; margin:0; padding:.1rem .6rem; min-height:28px;
  font:inherit; font-size:var(--fs-s); line-height:1.5; color:var(--ink); cursor:pointer;
  background:var(--card); border:1px solid var(--line-strong); border-radius:var(--radius-s);
}
.chip:hover{border-color:var(--navy)}
/* 押した状態はネイビー塗り＋白文字。色だけでなく「✓」でも伝える */
.chip[aria-pressed="true"]{background:var(--navy); border-color:var(--navy); color:#fff}
.chip[aria-pressed="true"]::before{content:"✓"; font-weight:400}
.area-filter-foot{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.2rem .8rem; font-size:var(--fs-s)}
.area-count{color:var(--ink-soft); font-variant-numeric:tabular-nums; white-space:nowrap}
.kana-index{display:flex; flex-wrap:wrap; gap:0 .15rem}
.kana-index a,.kana-index .kana-off{display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-width:1.9em; min-height:36px; padding:0; text-decoration:none; border-radius:var(--radius-s)}
.kana-index a:hover{background:var(--paper)}
.kana-index .kana-off{color:var(--ink-soft); opacity:.45}
/* 一覧の上の操作行（list.js / search.js）: 「四谷｜日能研｜首都圏」の1社切り替え（表示と偏差値順の基準を兼ねる）と並び替え。
   偏差値の語を含む要素は class を dev で始める（検査8） */
.area-filter-head{display:flex; gap:.4rem; min-width:0}
.area-filter-head input[type="search"]{flex:1 1 auto; min-width:0}
.list-sort-bar{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.4rem .8rem; margin:.5rem 0 0}
.dev-prov-switch{display:inline-flex; border:1px solid var(--line-strong); border-radius:var(--radius-s); overflow:hidden; background:var(--card)}
.dev-prov{
  margin:0; padding:.2rem .7rem; min-height:32px; font:inherit; font-size:var(--fs-s); line-height:1.5; color:var(--ink);
  background:transparent; border:0; border-left:1px solid var(--line-strong); cursor:pointer; white-space:nowrap;
}
.dev-prov:first-child{border-left:0}
.dev-prov:hover{color:var(--navy)}
/* 押した状態はネイビー塗り＋白文字。色だけでなく「✓」でも伝える */
.dev-prov[aria-pressed="true"]{background:var(--navy); color:#fff}
.dev-prov[aria-pressed="true"]::before{content:"✓ "; font-weight:400}
.dev-prov:focus-visible{outline-offset:-2px}
.dev-sort-ctl{flex:0 0 auto; display:flex; align-items:center}
.dev-sort-ctl select{width:auto; max-width:100%; padding:.3rem .4rem; color:var(--ink)}
/* 2行目（都県・性別・選択中1社の値）。値は list.js / search.js が data-devtext-<社> から差し替える。375px で横に溢れないよう折り返しは許す */
.dev-row{font-size:var(--fs-s); font-weight:400; color:var(--ink-soft); font-variant-numeric:tabular-nums; line-height:1.5}
.list-table .row-main .badge,.list-table .row-main .tag{margin-left:.3rem}
/* 375px では校名の列が狭く、2行目が3〜4行に折れて行高が伸びる（実測。旧版は中央値 52px・最大 73px）。
   狭い画面では各行をグリッドにし、1行目＝校名（.row-main）＋右の列（試験日／集合）、
   2行目＝都県・性別・値（.dev-row／.sub、行幅いっぱい）にして、ちょうど2行（13px×行間1.35×2＋上下4px＝約44px）に揃える。
   長い校名は2行に折らず「…」で切る: 行高が一定（44px）になり、校名は頭の部分で見分けがつく（学校種別の語は末尾に来る）。
   リンクの文字列は全文のままなので、読み上げ・検索・コピーでは全文が使える。試験日と集合が両方ある表は右列を2段にする */
@media (max-width:39.99rem){
  .list-table,.list-table thead,.list-table tbody{display:block}
  .list-table tr{display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:.5rem; align-content:center; padding:4px 8px; line-height:1.35; border-bottom:1px solid var(--line)}
  .list-table tbody tr[hidden]{display:none}
  .list-table thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
  .list-table th,.list-table td{display:block; padding:0; border:0; width:auto; min-width:0}
  .list-table tbody th,.list-table tbody td{padding:0}
  .list-table tbody th{display:contents}
  .list-table tbody .row-main{grid-column:1; grid-row:1; display:flex; align-items:baseline; gap:0 .3rem; min-width:0; white-space:nowrap; overflow:hidden}
  .list-table tbody .row-main > a{flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; padding:0; margin:0}
  .list-table tbody .row-main > :not(a){flex:none}
  /* 区分・全N回（.kind）は校名より先に縮める（「千代田区…」のように校名が切れすぎないように）。状態バッジ・タグは縮めない */
  .list-table tbody .row-main > .kind{flex:0 20 auto; min-width:2.5em; overflow:hidden; text-overflow:ellipsis}
  .list-table .row-main .badge,.list-table .row-main .tag{margin-left:0; line-height:1.3}
  .list-table tbody th > .sub{grid-column:1/-1; grid-row:2; display:block; margin:0; min-width:0; line-height:1.35; overflow:hidden; text-overflow:ellipsis}
  .list-table tbody td{grid-column:2; grid-row:1; white-space:nowrap; text-align:right}
  .list-table tbody td.cell-date + td.cell-time{grid-row:2; color:var(--ink-soft)}
  .list-table.has-date tbody .sub{grid-column:1}
  .list-card .list-table tbody tr:last-child{border-bottom:none}
  /* 行全体をタップ対象にする（校名のリンクの当たり判定を行いっぱいに広げる。行に他のリンクは置かない）。
     見た目の行は薄いまま、1行だけの行でも 44px を確保する */
  .list-table tbody tr{position:relative; min-height:44px}
  .list-table tbody .row-main a::after{content:""; position:absolute; inset:0}
}
/* 出願書類の一覧（/nyushi/exam/no-documents/）: 「4科・2科などの回なら提出なし」の行の下に、
   「{必要な回}は{書類}が必要」を 13px で1行（短い言葉なので切らない。狭い幅では折り返す） */
.list-table .doc-row-note{display:block; margin-top:.1rem; font-size:var(--fs-s); font-weight:400; line-height:1.5; color:var(--ink-soft); overflow-wrap:anywhere}
.list-table .doc-row-tags{margin-top:.2rem}
.list-table .doc-row-tags .tag{margin-left:0}
@media (max-width:39.99rem){
  .list-table tbody th > .doc-row-note{grid-column:1/-1; grid-row:4; min-width:0}
  .list-table tbody th > .doc-row-tags{grid-row:3}

}
/* 偏差値順のときは順序が五十音でないので、あかさたなを無効にする */
.list-sticky.is-sorted .kana-index{opacity:.45; pointer-events:none}
.area-empty{color:var(--ink-soft); font-size:var(--fs-s); margin:.5rem 0}
.area-empty[hidden]{display:none}
.visually-hidden{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}

.search-form{display:flex; flex-direction:column; gap:.5rem}
.field-label{display:block; font-size:var(--fs-s); color:var(--ink-soft)}
/* 入力欄は16px（iOS Safari のフォーカス時ズームを防ぐ） */
input[type="search"],input[type="text"],input[type="number"],select,textarea{
  width:100%; font:inherit; font-size:16px; padding:.45rem .6rem; border:1px solid #c9ced4;
  border-radius:var(--radius-s); background:var(--bg); color:var(--ink);
}
.filters{display:flex; gap:.6rem; flex-wrap:wrap}
.filters label{flex:1 1 8rem}
.search-count{font-size:var(--fs-s); color:var(--ink-soft); margin:.6rem 0 .2rem}
/* 375px 幅（本文 約21rem）で主要4項目が2列×2行に収まる幅 */
.search-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr)); gap:.6rem .8rem; align-items:end}
.search-grid .field-label{margin:0}
.search-grid .cond-submit{grid-column:1/-1; margin:.2rem 0 0}
.search-grid .search-more{grid-column:1/-1; margin:0}
.search-grid .search-more[open] > summary{margin-bottom:.6rem}
.search-grid select,.search-grid input[type="number"]{margin-top:.2rem}
.search-grid fieldset.dev-filter{grid-column:1/-1; display:grid; grid-template-columns:2fr 1fr 1fr; gap:.6rem; border:1px solid var(--line); border-radius:var(--radius); padding:.4rem .7rem .6rem; margin:0; min-width:0}
.search-grid fieldset.dev-filter legend{font-size:var(--fs-s); color:var(--ink-soft); padding:0 .3rem}
.field-check{display:flex; gap:.4rem; align-items:center; grid-column:1/-1}
/* 検索: 出願書類の select（選択肢の文言が長いので1行ぶん使う）と、脇の一覧ページへのリンク */
.search-grid .field-doc{grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:end; gap:.2rem .8rem; min-width:0}
.search-grid .field-doc .field-label{flex:1 1 16rem; min-width:0}
.field-link{font-size:var(--fs-s); padding:.45rem 0}
.school-list{list-style:none; padding:0; margin:0}
.school-list li{display:flex; flex-wrap:wrap; align-items:baseline; gap:0 .6rem; padding:.4rem 0; border-bottom:1px solid var(--line)}
.school-list a{font-weight:600; text-decoration:none}
.school-list .meta{font-size:var(--fs-s); color:var(--ink-soft)}

.doc-list{padding-left:1.2rem; font-size:var(--fs-s)}
.doc-list li{margin:.15rem 0}
.doc-year{color:var(--ink-soft)}
/* 学校ページ: 塾別合格者数（SPEC §13）。行は薄く（36px前後）、人数は右揃えの等幅数字。区分（帰国・直営 など）は 13px の薄い色 */
.juku-table{table-layout:auto}
.juku-table th,.juku-table td{padding:7px 8px; line-height:1.4}
.juku-table thead th.n,.juku-table td.n{text-align:right}
.juku-table tbody th{font-weight:400; white-space:normal}
.juku-table td.n{min-width:3.5rem}
.juku-var{display:inline-block; margin-left:.4rem; font-size:var(--fs-s); color:var(--ink-soft)}
.juku-notes{padding-left:1.2rem; font-size:var(--fs-s); margin:.2rem 0}
.juku-notes li{margin:.4rem 0}
.juku-who{font-weight:600}
.juku-rule,.juku-scope{margin:.1rem 0; color:var(--ink-soft)}
.juku-norule{font-style:normal}


.btn{
  display:inline-block; background:var(--navy); color:#fff; text-decoration:none;
  border:1px solid var(--navy); border-radius:var(--radius-s); padding:.4rem .9rem; font:inherit; cursor:pointer;
}
.btn:hover{background:var(--blue-hover); color:#fff}
/* 主操作（1画面に1つ）: 「＋ 併願表に追加」「この条件で探す」など */
.btn-accent{background:var(--accent); border-color:var(--accent)}
.btn-accent:hover{background:var(--accent-hover); border-color:var(--accent-hover)}

.verified-at{font-size:var(--fs-s); color:var(--ink-soft); margin-top:1.2rem}
/* PR表記（SPEC §11-2）: アフィリエイトのリンクがあるページの上部に1行。13px。--ink-soft は --bg 地で 5.6:1 */
.pr-note{font-size:var(--fs-s); color:var(--ink-soft); margin:.4rem 0 0}
.pr-note a{color:var(--ink-soft)}
.pr-label{margin-left:.4rem; vertical-align:middle}
.page-lede + .verified-at{margin-top:0}
/* 過去問題集（Amazon の商品リンク。SPEC §11-5）: 文字のリンクだけ。画像・ボタンは置かない */
.book-list{margin:.4rem 0; padding-left:1.2rem}
.book-list li{margin:.2rem 0}
.book-pub{font-size:var(--fs-s); color:var(--ink-soft); margin-left:.3rem; white-space:nowrap}
.site-footer{
  max-width:var(--maxw); margin:0 auto; padding:1rem 1rem 2rem;
  border-top:1px solid var(--line); font-size:var(--fs-s); color:var(--ink-soft);
}
.site-footer a{color:var(--ink-soft)}
.disclaimer{margin:.3rem 0 0}

@media (min-width:40rem){
  .page-title{font-size:var(--fs-xl)}
  main{padding:1.5rem 1rem 3rem}
}
/* タッチ端末では一覧の行をタップしやすく（見た目の行は薄いまま、当たり判定を広げる） */
@media (pointer:coarse){
  tbody th a,.school-list a,.cand-list a{display:inline-block; padding:.35rem 0; margin:-.35rem 0}
  .book-list a{display:inline-block; padding:.7rem 0; margin:-.5rem 0}
}
@media print{
  .site-header,.site-footer,.no-print,.date-strip,.crumbs{display:none}
  .panel{border:none}
}
.search-sort-bar{margin:.6rem 0 0}

/* 塾の一覧（/nyushi/juku/、SPEC §14）。絞り込みは白カード、表は行を薄く。順位を思わせる番号・強調は付けない */
.jk-controls{display:grid; gap:.5rem; margin:.5rem 0 1rem}
.jk-row{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .7rem; margin:0; padding:0; border:0; font-size:var(--fs-s)}
.jk-row legend{float:left; margin-right:.7rem; color:var(--ink-soft)}
.jk-row > label{color:var(--ink-soft)}
.jk-row select{width:auto; max-width:100%; font-size:16px; padding:.25rem .4rem; border:1px solid var(--line-strong); border-radius:var(--radius-s); background:var(--card); color:var(--ink)}
.jk-chip{display:inline-flex; align-items:center; gap:.25rem; color:var(--ink); min-height:32px}
.jk-count{margin-left:auto; color:var(--ink-soft); font-variant-numeric:tabular-nums}
.juku-list th,.juku-list td{padding:7px 8px; line-height:1.45}
.juku-list tbody th{font-weight:400; white-space:normal}
.juku-list .row-main a{font-weight:600}
.juku-list td.n,.juku-list th.n{text-align:right}
.jk-sub,.jk-fact{display:block; font-size:var(--fs-s); color:var(--ink-soft)}
.jk-fee,.jk-res{color:var(--ink-soft)}
.jk-fact{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:34rem}
@media (max-width:640px){.jk-fee,.juku-list thead th:nth-child(3),.jk-fact{display:none}}
/* 塾ごとのページ */
.jk-camps{list-style:none; margin:.2rem 0 .6rem; padding:0; font-size:var(--fs-s)}
.jk-camps li{padding:.35rem 0; border-bottom:1px solid var(--line)}
.jk-cname{font-weight:600; margin-right:.6rem; font-size:var(--fs-m)}
.jk-addr,.jk-st{display:block; color:var(--ink-soft)}
.jk-fees th,.jk-fees td,.jk-res-table th,.jk-res-table td{padding:6px 8px}
.jk-fees td.n,.jk-res-table td.n,.jk-res-table th.n{text-align:right}
.jk-res-table tbody th{font-weight:400}
.jk-fees td.n{font-variant-numeric:tabular-nums; white-space:nowrap}
.jk-std tbody th{font-weight:400; white-space:nowrap}
.jk-std .muted{color:var(--ink-soft); font-size:var(--fs-s)}
.jk-std .jk-total th,.jk-std .jk-total td{border-top:1px solid var(--line-strong); font-weight:600}
.jk-calc,.jk-raw{font-size:var(--fs-s); margin:.4rem 0}
.jk-calc summary,.jk-raw summary{color:var(--blue); cursor:pointer}
.jk-fee{font-variant-numeric:tabular-nums; white-space:nowrap}
.jk-dl{display:grid; grid-template-columns:auto 1fr; gap:.3rem .9rem; margin:.3rem 0}
.jk-dl dt{color:var(--ink-soft); font-size:var(--fs-s)}
.jk-dl dd{margin:0}
@media (max-width:640px){.jk-std th,.jk-std td{padding:6px 4px}}
/* 学校群の過去問題集（条件ページ・併願候補。SPEC §11-5）: 校名は文字、出版社名がリンク */
.book-group .book-school{margin-right:.4rem}
.book-release{font-size:var(--fs-s); color:var(--ink-soft); margin-left:.3rem; white-space:nowrap}
/* 学校ページ「関連ページ」: デルバトのお試しへの1行（SPEC §6。テキストリンクだけ。ボタンにしない） */
.try-link{margin:.4rem 0 0}
.try-link .note{display:inline-block; margin-left:.4em}
/* 学校ページ: 「日程をカレンダーに入れる（.ics）」の1行（入試回カードの下。SPEC §3-2 の 2。テキストリンクだけ） */
.ics-line{margin:.6rem 0 0; font-size:var(--fs-s)}
.ics-line .note{display:inline-block; margin-left:.4em}
/* 入試当日の持ち物リスト（/nyushi/checklist/、SPEC §11-7）: 1行＝チェック＋品名（15px）＋補足（13px）＋Amazon の検索リンク（13px） */
.check-list{list-style:none; margin:.2rem 0 .8rem; padding:0}
.check-list li{display:flex; align-items:flex-start; gap:.6rem; padding:.45rem 0; border-top:1px solid var(--line)}
.check-list li:last-child{border-bottom:1px solid var(--line)}
.check-list label{flex:1 1 auto; display:flex; gap:.6rem; align-items:flex-start; cursor:pointer; min-width:0}
.check-list input[type="checkbox"]{flex:0 0 auto; width:18px; height:18px; margin:.3rem 0 0; accent-color:var(--navy)}
.check-list .ck{display:block; min-width:0}
.check-list .ck-sub{display:block; font-size:var(--fs-s); color:var(--ink-soft)}
.check-list .buy{flex:0 0 auto; font-size:var(--fs-s); white-space:nowrap; padding:.2rem 0; margin-top:.1rem}
.checklist-link{margin:.4rem 0 0}
.checklist-link .note{display:inline-block; margin-left:.4em}
/* スマホ幅: リンクを右の列にせず、補足の下に置く（本文の幅を取らない） */
@media (max-width:40rem){
  .check-list li{flex-wrap:wrap; gap:.2rem .6rem}
  .check-list label{flex:1 1 100%}
  .check-list .buy{margin:0 0 0 calc(18px + .6rem)}
}
@media print{.check-list .buy,.pr-note{display:none}}
/* 学校ページ: 「出願〜手続きのチェック」（.ics の1行の下。SPEC §3-2 の 2b）。1行＝チェック（印刷用・JS なし）＋出願締切・試験日・発表・手続き・提出物 */
.apply-check{margin:.9rem 0 0}
.apply-check h3{margin:.2rem 0 0}
.apply-check>.note{margin:.1rem 0 .2rem}
.apply-table td,.apply-table th{vertical-align:top}
.apply-table td.wrap{white-space:normal; min-width:11em}
.apply-table .apply-ck{width:18px; padding-right:2px}
.apply-table input[type="checkbox"]{display:block; width:18px; height:18px; margin:1px 0 0; accent-color:var(--navy)}
.apply-table .apply-exam{display:block; color:var(--navy); font-weight:600; white-space:nowrap}
.apply-table .apply-exam-cell{min-width:12em}
.apply-table .apply-doc-cell{white-space:nowrap}
.apply-doc{margin:.5rem 0 0; font-size:var(--fs-s); color:var(--ink-soft); overflow-wrap:anywhere}
.apply-doc-k{color:var(--ink); margin-right:.4em}
/* 説明会・公開行事（SPEC §15）: 学校ページの節（入試情報の末尾）と月別ページ。横線だけの表、1行36px前後。
   行事名・対象だけ折り返し、ほかは1行。終了した行事は details に畳む。グループの中の表は列見出しを読み上げ用に残して隠す */
.events-block{margin:1.2rem 0 0}
.events-block h3{margin:.2rem 0 0}
.events-block>.note{margin:.1rem 0 .2rem}
.events-table td.wrap{white-space:normal}
.events-table .ev-title{min-width:12em}
.events-table .ev-target{min-width:9em; color:var(--ink-soft)}
.events-table .ev-school{white-space:nowrap}
.events-table .ev-school a{text-decoration:none}
.events-table .ev-school a:hover{text-decoration:underline}
.events-table .ev-time,.events-table .ev-date{font-variant-numeric:tabular-nums}
.events-table .ev-status[data-status="cancelled"],.events-table .ev-status[data-status="full"]{color:var(--ink)}
.events-table.in-group thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
.events-table.in-group th.ev-school{font-weight:600}
.events-past{margin:.4rem 0 0}
.events-past[open] > summary{margin-bottom:0}
.events-src,.events-more,.events-cols,.events-none{margin:.3rem 0 0}
.events-groups .lg-hint{font-weight:400; font-size:var(--fs-s)}
