/* ============================================================
   文字を、絵に負けない強さに
   （色・余白は color.css のまま、級数と濃さだけ底上げ）
   ============================================================ */

:root {
  --ink-2: #1a242c;      /* 本文 */
  --ink-3: #35434d;      /* 補足 */
}

body { font-size: clamp(15px, 1.05vw, 17px); color: var(--ink-2); font-weight: 500; line-height: 1.95; }
p, li, dd, figcaption { color: var(--ink-2); }
.note, .sec-head p, .card p, .tile p, .steps p, .lean-d, .profile .rows dd, .shots figcaption { color: var(--ink-3); }

/* 見出しを一段大きく、太く */
.sec-head h2 { font-size: clamp(30px, 5vw, 62px); font-weight: 700; line-height: 1.3; letter-spacing: .04em; }
.sec-head .en { font-size: 12px; font-weight: 700; letter-spacing: .22em; }
.sec-head p { font-size: clamp(14px, 1.45vw, 17px); line-height: 2.05; }
.page-hero h1 { font-size: clamp(38px, 7vw, 100px); font-weight: 700; }
.page-hero p { font-size: clamp(14px, 1.6vw, 19px); color: #fff; }
.index-list .head h2 { font-size: clamp(30px, 4.6vw, 60px); font-weight: 700; }
.index-list .head .lead-under { font-size: clamp(14px, 1.45vw, 17px); color: var(--ink-3); }

/* 成果（身につく力）：札を大きく、文字を強く */
.gains { gap: clamp(16px, 2vw, 22px); }
.gains li {
  font-size: clamp(15px, 1.5vw, 17.5px); font-weight: 500; line-height: 1.95; color: var(--ink-2);
  padding: clamp(24px, 2.8vw, 34px); box-shadow: 0 0 0 1px rgba(18, 24, 28, .14);
  background: #fff;
}
.gains li::before { height: 3px; }
.js .gains li.on::before { width: 56px; }

/* カード・タイル */
.card h3 { font-size: clamp(20px, 2.2vw, 27px); font-weight: 700; }
.card p { font-size: clamp(14px, 1.4vw, 16px); line-height: 2; }
.card .kind { font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.tile h4 { font-size: clamp(14.5px, 1.5vw, 17px); font-weight: 700; }
.tile p { font-size: clamp(13px, 1.3vw, 14.5px); line-height: 1.95; }

/* 流れ */
.steps h3 { font-size: clamp(18px, 2vw, 25px); font-weight: 700; }
.steps p { font-size: clamp(14px, 1.4vw, 16px); line-height: 2; }
.steps > li::before { font-size: clamp(18px, 2vw, 26px); opacity: .7; }

/* 表 */
.facts dt { font-size: 12px; }
.facts dd { font-size: clamp(14px, 1.4vw, 16px); line-height: 2; }

/* 講師 */
.profile .name { font-size: clamp(24px, 3vw, 38px); font-weight: 700; }
.profile .lead { font-size: clamp(15px, 1.6vw, 19px); color: var(--ink-2); }
.profile .rows dd { font-size: clamp(13.5px, 1.35vw, 15px); }
.profile .tags li { font-size: 12px; font-weight: 700; }

/* 代表挨拶 */
.message .body > p { font-size: clamp(15px, 1.55vw, 18px); color: var(--ink-2); }
.pull p { font-size: clamp(22px, 3vw, 38px); font-weight: 700; }

/* 設計の考え方 */
.block-lab { font-size: 12px; }
.what-grid h4 { font-size: clamp(16px, 1.8vw, 20px); font-weight: 700; }
.what-grid p { font-size: clamp(13px, 1.35vw, 15px); color: var(--ink-3); }
.how-grid h4 { font-size: clamp(15px, 1.6vw, 18px); font-weight: 700; }
.how-grid p { font-size: clamp(13px, 1.35vw, 15px); color: var(--ink-3); }
.how-grid a { font-size: 13px; }
.design-eq .box .ttl { font-size: clamp(18px, 2.1vw, 24px); }
.design-eq .box .sub { font-size: 13px; color: var(--ink-3); }

/* 一覧の行 */
.row-link .t { font-size: clamp(20px, 2.6vw, 34px); font-weight: 700; }
.row-link .note2 { font-size: clamp(13px, 1.35vw, 15px); color: var(--ink-3); }
.row-link .n, .row-link .k { font-size: 12px; font-weight: 700; }

/* ボタン */
.btn { font-size: 14px; font-weight: 700; }
.btn.big { font-size: 15px; }
.btn-line { font-size: 14px; }
.subnav a { font-size: 13px; font-weight: 700; }

/* 全画面の一文 */
.statement-screen q { font-size: clamp(32px, 5.6vw, 76px); font-weight: 700; }
.statement-screen .by { font-size: clamp(14px, 1.5vw, 18px); color: rgba(255, 255, 255, .88); }
.chapter h2 { font-size: clamp(34px, 6vw, 82px); font-weight: 700; }
.chapter p { font-size: clamp(14px, 1.55vw, 18px); color: rgba(255, 255, 255, .88); }
.oneline p { font-size: clamp(30px, 6vw, 86px); font-weight: 700; }
.oneline .tail { font-size: clamp(14px, 1.5vw, 17px); color: rgba(255, 255, 255, .85); }
.hero .note-line { font-size: clamp(15px, 1.6vw, 20px); color: rgba(255, 255, 255, .9); }
.closing-screen h2 { font-size: clamp(34px, 6vw, 84px); font-weight: 700; }
.closing-screen p { font-size: clamp(14px, 1.5vw, 18px); color: rgba(255, 255, 255, .88); }
.cta-band h2 { font-size: clamp(30px, 4.6vw, 58px); font-weight: 700; }
.cta-band p { font-size: clamp(14px, 1.45vw, 17px); color: rgba(255, 255, 255, .86); }

/* 濃い面の文字も強く */
section.ink .facts dd, section.ink .gains li { color: rgba(255, 255, 255, .92); }
section.ink .gains li { background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 1px rgba(255, 255, 255, .2); }
.vtx b { font-size: clamp(20px, 2.4vw, 28px); }
.vtx .d { font-size: clamp(13.5px, 1.4vw, 16px); color: rgba(255, 255, 255, .85); }
.philo-note { font-size: clamp(19px, 2.4vw, 28px); }
.philo-close { font-size: clamp(14px, 1.45vw, 17px); color: rgba(255, 255, 255, .85); }
.lean-n { font-size: clamp(21px, 2.4vw, 30px); font-weight: 700; }
.lean-t { font-size: 12px; }
.lean-d { font-size: clamp(13.5px, 1.4vw, 15.5px); }

/* 透かしの番号は少し濃く、絵に負けないように */
.head-row .bignum { opacity: .22; }

/* 透かしの番号と見出しが重なりすぎないように */
.head-row .bignum { font-size: clamp(64px, 11vw, 150px); left: -.02em; top: -.02em; }
.head-row .sec-head { padding-left: clamp(10px, 7vw, 120px); }
@media (max-width: 720px) { .head-row .sec-head { padding-left: 0; } }

/* 流れの行：番号・見出し・説明の幅を px で固定して、説明を見出しのすぐ右に */
.steps > li { grid-template-columns: 76px minmax(150px, 230px) minmax(0, 1fr); column-gap: clamp(16px, 2.4vw, 36px); }
.steps > li p { max-width: 42em; }
