/* ============================================================
   base.css — リセット・本文の基本・共通の文字組み
   🚨 本文18px／行間2.05 は意図的。読者に高齢の方が含まれるので小さくしない。
   ============================================================ */

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 2.05;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a {
  color: var(--blue-deep);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
a:hover { color: var(--blue); }

img, svg { max-width: 100%; }
svg { display: block; }

input, textarea, select, button { font-family: inherit; }

[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
}

/* ── 見出し ── */
.h-sec {
  margin: 0 0 16px;
  font-size: clamp(25px, 3.6vw, 34px);
  line-height: 1.55;
  font-weight: 900;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.h-sec--tight { margin-bottom: clamp(28px, 3.5vw, 40px); }

.sec-desc {
  margin: 0 0 clamp(30px, 4vw, 44px);
  color: var(--text-sub);
  font-size: 17px;
  line-height: 1.95;
  max-width: 44em;
}

/* ── 本文段落 ── */
.p { margin: 0 0 1.4em; font-size: 18px; line-height: 2.1; }
.p:last-child { margin-bottom: 0; }
.p strong { font-weight: 800; }

/* ── 数字を揃える ── */
.num { font-variant-numeric: tabular-nums; }

/* ── ラベル（英字の小見出し） ── */
.eyebrow {
  margin: 0 0 14px;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .18em;
  color: var(--blue);
}
