/* ふぁみとら 共通スタイル（各ページの <style> のあとに読み込む） */

:root{
  --sky:#F2F8FC; --navy:#3D6A8A; --ink:#22405C; --gold:#E0A439; --sea:#2E8C9E;
  --paper:#FFFFFF; --line:#C9DCE9;
  --muted:#6E88A0;      /* 白背景で AA を満たす補助色 */
  --muted-dim:#8A94A0;  /* 準備中などの弱い状態 */
  --gold-ink:#9C7526;   /* 金色を文字に使うとき */
  --maru:"Hiragino Maru Gothic ProN","BIZ UDGothic","Yu Gothic",sans-serif;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",-apple-system,sans-serif;
  --mono:ui-monospace,"SF Mono","Courier New",monospace;
}

/* ---- 行間・幅の統一 ---- */
body{line-height:2}
.wrap{max-width:720px}

/* ---- 最小文字サイズ（12px 未満をなくす） ---- */
.tagline,.sec .tag,.pass-route,.pass-meta,.stub-gate,.stub-read,
.techo-sub,.techo-title,.peek-eyebrow,.peek-sub,.grade-tag,.badge-id,.badge-nick,
.period-note,.period-state,.lessoncount,.miles,.route,.ctag,.column .sign,
.mt-eyebrow,.mt-card-k,.mt-card-v,.mt-card-label,.mt-card-foot,.mt-edit-btn,
.exam-locked p,.exam-wait p,.exam-ready p,.techo-empty,.lock-notice,
.back,.tags span,.board-greet,.board-sub,.board-note,footer{
  font-size:.8rem;
}
.pass p,.column p,.sec-lead,.progress .top b,.period-label,.peek-title,
.about p,.intro p{font-size:.9rem}
.techo-title,.period-label,.peek-title{font-size:.95rem}
.miles,.route,.pass-route,.ctag{letter-spacing:.14em}

/* ---- コントラスト ---- */
.pass-meta,.techo-sub,.period-state,.lessoncount,.column .sign,
.sec-lead,.peek-sub,.mt-card-k,.techo-empty,footer{color:var(--muted)}
.period.soon{opacity:.85}
.period.soon .period-label{color:var(--muted-dim)}
.period.soon .period-go{color:var(--muted-dim)}

/* ---- リンク ---- */
a{color:inherit}
a:hover{color:var(--sea)}
a:focus-visible{outline:3px solid var(--sea);outline-offset:2px;border-radius:4px}

/* ---- ブランドバー（全ページ共通のヘッダー帯） ---- */
.fb-brandbar{border-bottom:1px solid var(--line);background:rgba(255,255,255,.72);
  backdrop-filter:saturate(1.2) blur(6px);position:sticky;top:0;z-index:50}
.fb-brandbar-in{max-width:720px;margin:0 auto;padding:8px 20px;
  display:flex;align-items:center;gap:10px}
.fb-brandbar img{height:34px;width:auto;display:block}
.fb-brandbar b{font-family:var(--maru);font-weight:800;color:var(--navy);
  font-size:.92rem;letter-spacing:.06em}
.fb-brandbar b span{color:var(--gold)}
.fb-brandbar .fb-here{margin-left:auto;font-size:.76rem;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- 案内板 ---- */
.fb-nav{margin-top:40px}
.fb-nav-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 22px 20px}
.fb-nav-head{display:flex;align-items:center;gap:8px;font-family:var(--maru);font-weight:800;
  color:var(--navy);font-size:.94rem;letter-spacing:.05em;margin-bottom:16px;
  border-left:4px solid var(--gold);padding-left:10px}
.fb-nav-group{margin-bottom:18px}
.fb-nav-group:last-child{margin-bottom:0}
.fb-nav-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;
  color:var(--gold-ink);margin-bottom:8px}
.fb-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:10px}
.fb-nav-item{display:flex;align-items:flex-start;gap:8px;background:var(--sky);
  border:1px solid var(--line);border-radius:10px;padding:11px 13px;
  text-decoration:none;color:var(--ink);line-height:1.5;transition:.15s}
.fb-nav-item:hover{border-color:var(--gold);background:#FDF7EA;color:var(--ink)}
.fb-nav-item .mi{margin-top:2px}
.fb-nav-item b{display:block;font-family:var(--maru);font-weight:800;color:var(--navy);font-size:.84rem}
.fb-nav-item span{display:block;font-size:.74rem;color:var(--muted);margin-top:1px}
.fb-nav-item[aria-current="page"]{background:#FDF7EA;border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.fb-nav-item[aria-current="page"] b::after{content:"いまここ";display:inline-block;margin-left:6px;font-size:.66rem;color:#FFF;background:var(--gold);border-radius:4px;padding:1px 5px;font-weight:400;vertical-align:1px}
.fb-nav-sub{display:flex;flex-wrap:wrap;gap:8px}
.fb-nav-chip{font-family:var(--maru);font-weight:800;font-size:.78rem;color:var(--navy);
  background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:7px 12px;
  text-decoration:none;transition:.15s}
.fb-nav-chip:hover{border-color:var(--gold);background:#FDF7EA;color:var(--navy)}
.fb-nav-chip[aria-current="page"]{background:#FDF7EA;border-color:var(--gold)}
.fb-nav-chip em{font-style:normal;color:var(--muted);font-weight:400;font-size:.72rem;margin-right:5px}

@media(max-width:480px){
  .fb-brandbar .fb-here{display:none}
  .fb-nav-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}

/* ---- トップのヒーロー ---- */
.hero p + p{margin-top:12px}
