/* ==========================================================================
   全ページ共通の作法（2026-10-02）── トップ v20 と同じ言葉で、下層・ヘッダー・比較トレイ・学校カードを揃える
   作法: 白地／大きな余白／太い見出し（700）／英字の小見出しは等幅の細字／色は紺1色＋コーラルは押すものだけ
         角丸 12〜18・薄い線・薄く広い影／左線アクセントは使わない／動きは短く、reduce なら出さない
   読み込み: main.css のあと（functions.php）。トップは home.css がさらに上に重なる
   ========================================================================== */
:root{
  --s-ink:#16233A; --s-ink-2:#3C4A5E; --s-muted:#5E6B7E;
  --s-navy:var(--navy,#1A315D); --s-navy-deep:var(--navy-deep,#12264A);
  --s-accent:var(--coral-btn,#E45742); --s-accent-h:var(--coral-hover,#D94D38);
  --s-line:#E6EBF1; --s-tint:#F6F8FB;
  --s-r:18px; --s-r-sm:12px;
  --s-shadow:0 1px 2px rgba(16,32,64,.04),0 18px 40px -18px rgba(16,32,64,.18);
  --s-mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  --s-pad:clamp(20px,4vw,40px);
  --s-ease:cubic-bezier(.22,1,.36,1);
  --wrap:1160px;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.rgd-header{background:rgba(255,255,255,.82);border-bottom:1px solid transparent;
  transition:box-shadow .3s var(--s-ease),border-color .3s,background .3s}
.rgd-header.is-scrolled{background:rgba(255,255,255,.92);border-bottom-color:var(--s-line);box-shadow:0 8px 24px -18px rgba(16,32,64,.35)}
.rgd-header-in{max-width:1160px;padding:0 var(--s-pad);height:68px;transition:height .3s var(--s-ease)}
.rgd-header.is-scrolled .rgd-header-in{height:58px}
.rgd-nav{gap:2px}
.rgd-nav a{position:relative;font-size:13.5px;font-weight:700;color:var(--s-ink);padding:10px 14px;border-radius:999px;background:none}
.rgd-nav a:not(.rgd-nav-cta)::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:1.5px;border-radius:2px;
  background:var(--s-navy);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--s-ease)}
.rgd-nav a:not(.rgd-nav-cta):hover{background:none}
.rgd-nav a:not(.rgd-nav-cta):hover::after,.rgd-nav a[aria-current="page"]:not(.rgd-nav-cta)::after{transform:scaleX(1)}
.rgd-nav a[aria-current="page"]{color:var(--s-navy)}
.rgd-nav-cta{margin-left:10px;border:1.5px solid var(--s-navy);color:var(--s-navy) !important;padding:9px 18px !important;
  transition:background .2s,color .2s}
.rgd-nav-cta:hover{background:var(--s-navy) !important;color:#fff !important}
.rgd-nav a:focus-visible,.rgd-menu-btn:focus-visible{outline:2px solid var(--s-navy);outline-offset:2px}

/* スマホのメニュー（JS があるときだけボタンが出る） */
.rgd-menu-btn{display:none;appearance:none;border:0;background:none;width:42px;height:42px;margin-left:2px;border-radius:50%;cursor:pointer;
  align-items:center;justify-content:center;color:var(--s-ink)}
.rgd-menu-btn[hidden]{display:none !important}
.rgd-menu-ic{position:relative;width:18px;height:12px;display:block}
.rgd-menu-ic i{position:absolute;left:0;right:0;height:1.8px;border-radius:2px;background:currentColor;transition:transform .3s var(--s-ease),top .3s var(--s-ease)}
.rgd-menu-ic i:first-child{top:2px}
.rgd-menu-ic i:last-child{top:9px}
.rgd-header.is-menu .rgd-menu-ic i:first-child{top:5.5px;transform:rotate(45deg)}
.rgd-header.is-menu .rgd-menu-ic i:last-child{top:5.5px;transform:rotate(-45deg)}
.rgd-menu{border-top:1px solid var(--s-line);background:#fff;box-shadow:0 24px 40px -24px rgba(16,32,64,.35)}
.rgd-menu ul{list-style:none;margin:0 auto;padding:8px var(--s-pad) 18px;max-width:1160px}
.rgd-menu li+li{border-top:1px solid var(--s-line)}
.rgd-menu a{display:flex;justify-content:space-between;align-items:center;padding:16px 2px;font-size:15px;font-weight:700;color:var(--s-ink);text-decoration:none}
.rgd-menu a i{font-style:normal;color:var(--s-muted)}
.rgd-menu a[aria-current="page"]{color:var(--s-navy)}
.rgd-menu:not([hidden]){animation:rgdMenuIn .28s var(--s-ease)}
@keyframes rgdMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:720px){
  .rgd-menu-btn:not([hidden]){display:inline-flex}
  .rgd-header-in{height:58px}
  .rgd-header.is-scrolled .rgd-header-in{height:54px}
  .rgd-nav a{padding:8px 10px}
  .rgd-nav a:not(.rgd-nav-cta)::after{left:10px;right:10px;bottom:3px}
  .rgd-nav-cta{margin-left:4px;padding:7px 13px !important}
}
@media (min-width:721px){ .rgd-menu{display:none !important} }
@media (max-width:360px){ .rgd-nav a:not(.rgd-nav-cta){display:none} }

/* ==========================================================================
   比較トレイ（画面下に浮く角丸のトレイ・3枠）
   ========================================================================== */
.rgd-tray{left:50%;right:auto;bottom:max(14px,env(safe-area-inset-bottom));width:min(760px,calc(100% - 24px));
  transform:translate(-50%,calc(100% + 40px));border:1px solid var(--s-line);border-radius:22px;background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 2px 6px rgba(16,32,64,.06),0 28px 60px -24px rgba(16,32,64,.45);
  padding-bottom:0;transition:transform .45s var(--s-ease)}
.rgd-tray.is-open{transform:translate(-50%,0)}
.rgd-tray-in{max-width:none;padding:12px 12px 12px 20px;gap:12px;flex-wrap:nowrap}
.rgd-tray-label{display:flex;align-items:baseline;gap:2px;font-size:12px;color:var(--s-muted)}
.rgd-tray-count{display:inline-block;margin-left:8px;font-size:18px;font-weight:700;color:var(--s-navy);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}
.rgd-tray-count.is-bump{animation:rgdBump .45s var(--s-ease)}
@keyframes rgdBump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.rgd-tray-list{flex-wrap:nowrap;gap:8px}
.rgd-tray-slot{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:4px;height:40px;
  padding:0 4px 0 14px;border-radius:999px;background:#EEF3FA;color:var(--s-ink);font-size:12.5px;font-weight:700;
  border:1px solid transparent;transition:background .2s,border-color .2s}
.rgd-tray-slot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:none}
.rgd-tray-slot.is-empty{background:transparent;border:1.5px dashed #CDD6E2;justify-content:center;padding:0;color:#A3AEBD;font-weight:500}
.rgd-tray-slot.is-in{animation:rgdSlotIn .5s var(--s-ease)}
@keyframes rgdSlotIn{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.06);opacity:1}100%{transform:scale(1)}}
.rgd-tray-slot.is-out{transition:transform .18s ease-in,opacity .18s ease-in;transform:scale(.7);opacity:0}
.rgd-tray-remove{width:30px;height:30px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
.rgd-tray-remove:hover{background:rgba(178,58,72,.1);color:var(--crit,#B23A48)}
.rgd-tray-go.rgd-btn{flex:none;min-height:44px;padding:0 22px;border-radius:999px;font-size:14px;gap:10px;white-space:nowrap}
.rgd-tray-go i{font-style:normal;transition:transform .2s}
.rgd-tray-go:hover i{transform:translateX(3px)}
.rgd-tray-go.is-disabled{background:#E9EDF3 !important;color:var(--s-muted) !important;opacity:1;box-shadow:none}
.rgd-tray-go.is-ready{animation:rgdReady .6s var(--s-ease)}
@keyframes rgdReady{0%{transform:scale(.92)}50%{transform:scale(1.05)}100%{transform:scale(1)}}
.rgd-tray.is-full{animation:rgdShake .4s ease}
@keyframes rgdShake{0%,100%{transform:translate(-50%,0)}25%{transform:translate(calc(-50% - 6px),0)}75%{transform:translate(calc(-50% + 6px),0)}}
/* トレイが出ている間は、ページの末尾がトレイの裏に隠れないように */
html.rgd-tray-on body{padding-bottom:96px}
@media (max-width:600px){
  .rgd-tray{border-radius:18px;bottom:max(10px,env(safe-area-inset-bottom))}
  .rgd-tray-in{flex-wrap:wrap;padding:10px 10px 10px 14px;gap:8px}
  .rgd-tray-label{order:0}
  .rgd-tray-list{order:2;flex:1 0 100%}
  .rgd-tray-slot{height:36px;padding-left:10px;font-size:12px}
  .rgd-tray-go.rgd-btn{order:1;margin-left:auto;width:auto;min-height:38px;padding:0 16px;font-size:13px}
  html.rgd-tray-on body{padding-bottom:130px}
}
/* 「比較に追加」を押した手応え */
.rgd-compare-add.is-pop{animation:rgdBump .4s var(--s-ease)}
@media (prefers-reduced-motion:reduce){
  .rgd-header,.rgd-header-in,.rgd-nav a::after,.rgd-menu-ic i,.rgd-tray{transition:none !important}
  .rgd-menu:not([hidden]),.rgd-tray-count.is-bump,.rgd-tray-slot.is-in,.rgd-tray-go.is-ready,.rgd-tray.is-full,.rgd-compare-add.is-pop{animation:none !important}
}

/* ==========================================================================
   学校カード（全ページ）── 写真の代わりの英字（CEBU 等）は「作りかけ」に見えるので出さない
   ========================================================================== */
.rgd-school-card.rgd-sc6{border:1px solid var(--s-line);border-radius:var(--s-r);background:#fff;overflow:hidden;
  transition:box-shadow .25s,transform .25s var(--s-ease),border-color .25s}
.rgd-school-card.rgd-sc6:hover{border-color:#D3DBE6;box-shadow:var(--s-shadow);transform:translateY(-2px)}
.rgd-sc6-media{height:auto;min-height:0;padding:22px 24px 0;background:none}
.rgd-sc6-media::before,.rgd-sc6-media::after{display:none}
.rgd-sc6-city{display:none}
.rgd-sc6-area{position:static;display:inline-block;background:none;border:0;padding:0;box-shadow:none;
  font-family:var(--s-mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;color:var(--s-navy)}
.rgd-sc6-body{padding:10px 24px 20px}
.rgd-sc6-name{font-size:18px;min-height:0}
.rgd-sc6-lede{font-size:13.5px;margin-top:10px}
.rgd-sc6-specs{margin-top:18px;border-top-color:var(--s-line)}
.rgd-sc6-specs>div{border-bottom-color:var(--s-line)}
.rgd-sc6-tags li{background:#F3F6FA;border:0}
.rgd-sc6-tags li.is-why::before{background:var(--s-navy)}
.rgd-sc6-foot{background:#fff;border-top:1px solid var(--s-line);padding:18px 24px 24px}
.rgd-sc6-pval{color:var(--s-navy)}
.rgd-sc6-pval .tabnum{font-family:"Helvetica Neue",Helvetica,Arial,var(--font-sans,sans-serif);letter-spacing:-.01em}
.rgd-sc6-punit{background:#EEF3FA;color:var(--s-navy)}
.rgd-sc6-detail.rgd-btn.rgd-btn-primary{background:#fff;color:var(--s-ink);border:1.5px solid var(--s-ink);box-shadow:none}
.rgd-sc6-detail.rgd-btn.rgd-btn-primary:hover{background:var(--s-ink);color:#fff}
.rgd-sc6 .rgd-compare-add{border:1px solid var(--s-line);background:#fff;color:var(--s-ink-2);border-radius:999px}
.rgd-sc6 .rgd-compare-add.is-added{background:var(--s-navy);border-color:var(--s-navy);color:#fff}
.rgd-school-grid{gap:20px}
@media (prefers-reduced-motion:reduce){ .rgd-school-card.rgd-sc6{transition:none} }

/* ==========================================================================
   下層ページ（body:not(.home)）
   ========================================================================== */
body:not(.home){background:#fff;color:var(--s-ink)}
body:not(.home) main{background:#fff}
body:not(.home) .rgd-wrap{max-width:1160px;padding-left:var(--s-pad);padding-right:var(--s-pad);box-sizing:border-box}
body:not(.home) .rgd-wrap.rgd-narrow{max-width:820px}

/* パンくず・小見出し・見出し・リード */
body:not(.home) .rgd-breadcrumb{font-size:12px;color:var(--s-muted);padding:28px 0 0;margin:0 0 18px;letter-spacing:.02em}
body:not(.home) .rgd-breadcrumb a{color:var(--s-muted);text-decoration:none;border-bottom:1px solid #D7DEE8}
body:not(.home) .rgd-breadcrumb a:hover{color:var(--s-navy);border-bottom-color:var(--s-navy)}
body:not(.home) .rgd-eyebrow{font-family:var(--s-mono);font-size:11.5px;font-weight:500;letter-spacing:.22em;color:var(--s-navy);opacity:.85}
body:not(.home) .rgd-eyebrow::before,body:not(.home) .rgd-eyebrow::after{display:none}
body:not(.home) .rgd-h1{font-size:clamp(28px,3.6vw,46px);font-weight:700;line-height:1.35;letter-spacing:.01em;color:var(--s-ink);
  margin:14px 0 0;word-break:keep-all;overflow-wrap:anywhere}
body:not(.home) .rgd-h2{font-size:clamp(22px,2.4vw,30px);font-weight:700;line-height:1.45;letter-spacing:.01em;color:var(--s-ink);word-break:keep-all;overflow-wrap:anywhere}
body:not(.home) .rgd-h3{font-size:clamp(17px,1.6vw,19px);font-weight:700;color:var(--s-ink)}
body:not(.home) .rgd-lead{font-size:clamp(15px,1.3vw,16.5px);line-height:1.95;color:var(--s-ink-2);max-width:40em}
body:not(.home) .rgd-muted{color:var(--s-muted)}
body:not(.home) .rgd-fine{font-size:12.5px;line-height:1.85;color:var(--s-muted)}
/* ページの頭の余白をそろえる（見出しの上下に呼吸） */
body:not(.home) main > .rgd-wrap:first-child,body:not(.home) main > section:first-child{padding-top:8px}
body:not(.home) .rgd-h1 + .rgd-lead,body:not(.home) .rgd-h1 + p{margin-top:20px}

/* ボタン：押すもの＝コーラルの塊／その他＝線 */
body:not(.home) .rgd-btn{border-radius:999px;font-weight:700;letter-spacing:.02em;min-height:50px;padding:0 26px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .2s,color .2s,border-color .2s,transform .2s}
body:not(.home) .rgd-btn:active{transform:translateY(1px)}
body:not(.home) .rgd-btn-primary{background:var(--s-accent);color:#fff;border:0;box-shadow:none}
body:not(.home) .rgd-btn-primary:hover{background:var(--s-accent-h);color:#fff}
body:not(.home) .rgd-btn-ghost,body:not(.home) .rgd-btn-secondary,body:not(.home) .rgd-btn-line{background:#fff;color:var(--s-ink);border:1.5px solid var(--s-ink)}
body:not(.home) .rgd-btn-ghost:hover,body:not(.home) .rgd-btn-secondary:hover,body:not(.home) .rgd-btn-line:hover{background:var(--s-ink);color:#fff}

/* カード：白・薄い線・角丸18・影は触ったときだけ */
body:not(.home) .rgd-card{background:#fff;border:1px solid var(--s-line);border-radius:var(--s-r);box-shadow:none}

/* 表：狭い幅では横に送る（本文の表も） */
body:not(.home) .rgd-table-scroll,body:not(.home) .rgd-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--s-r-sm)}
body:not(.home) .rgd-table th,body:not(.home) .rgd-table td{border-color:var(--s-line)}
body:not(.home) .rgd-table thead th{background:var(--s-tint);color:var(--s-ink);font-weight:700}
body:not(.home) .rgd-legal-body table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* FAQ（/faq/ と各ページ共通の部品） */
body:not(.home) .rgd-faq-item{background:#fff;border:1px solid var(--s-line);border-radius:var(--s-r-sm)}
body:not(.home) .rgd-faq-item summary{font-weight:700;color:var(--s-ink)}
body:not(.home) .rgd-faq-item[open]{border-color:#D3DBE6;box-shadow:var(--s-shadow)}

/* 本文（固定ページの本文・規約類）：親テーマ SWELL が h2 に付ける濃い緑青の帯をやめ、静かな見出しに */
body:not(.home) .post_content h2,body:not(.home) .rgd-legal-body h2,body:not(.home) main .entry-content h2{
  background:none !important;color:var(--s-ink) !important;padding:0 0 12px !important;border:0;border-bottom:1px solid var(--s-line);
  font-size:clamp(19px,2vw,23px);line-height:1.5;margin:48px 0 18px}
body:not(.home) .post_content h2::before,body:not(.home) .post_content h2::after,
body:not(.home) .rgd-legal-body h2::before,body:not(.home) .rgd-legal-body h2::after{display:none !important}
body:not(.home) .post_content h3{border:0;padding:0;font-size:17px;margin:32px 0 12px;color:var(--s-ink)}
body:not(.home) .post_content h3::before,body:not(.home) .post_content h3::after{display:none !important}

/* 箇条書き（/free-sim/ の注意書きが 390 で 17px はみ出していた） */
body:not(.home) .rgd-notes li{min-width:0;overflow-wrap:anywhere;word-break:normal}

/* リンクの下線は細く、少し離す */
body:not(.home) main a:not(.rgd-btn):not(.rgd-nav-cta){text-underline-offset:3px;text-decoration-thickness:1px}

/* 閉じたトレイは画面の外へ動かすだけだと、Tab でボタンに入れてしまう → 動き終わってから見えなくする */
.rgd-tray{visibility:hidden;transition:transform .45s var(--s-ease),visibility 0s linear .45s}
.rgd-tray.is-open{visibility:visible;transition:transform .45s var(--s-ease),visibility 0s}
/* スマホで見出しの最後の1字だけが次の行に落ちた（/schools/「す」）→ 最小の字を一段下げる */
body:not(.home) .rgd-h1{font-size:clamp(25px,3.6vw,46px)}

/* 改行の検査（360/390/1440・2026-10-02）で出た「最後の1〜2字だけが次の行へ」の型をまとめて抑える。
   見出しは行の長さをそろえ（balance）、本文は最後の行を短くしすぎない（pretty）。
   🔴 折れてよい場所は U+2060 の防具（i18n.php）が決めている。ここは「どこで折るか」の選び方だけ */
body:not(.home) main h1,body:not(.home) main h2,body:not(.home) main h3,body:not(.home) .rgd-h1,body:not(.home) .rgd-h2{text-wrap:balance}
/* 🔴 pretty は長い文の器だけ。/cost/ の金額の行（.rgd-st-value）にまで掛けたら「259,000|円」と単位が落ちた */
body:not(.home) .post_content :is(p,li),body:not(.home) .rgd-legal-body :is(p,li,dd),body:not(.home) .rgd-lead,
body:not(.home) .rgd-muted,body:not(.home) .rgd-fine,body:not(.home) .rgd-faq-a{text-wrap:pretty}
/* 390 前後で見出しの最後の1〜2字だけが落ちた（「人へ|。」「な|ら」）→ 狭い幅では一段小さく */
@media (max-width:420px){
  body:not(.home) .rgd-h1{font-size:23px}
  body:not(.home) .rgd-h2{font-size:20px}
}
@media (max-width:380px){ body:not(.home) .rgd-h1{font-size:21px} }
