/*
 * デザイントークン
 * 配色・タイポグラフィ・余白・角丸・影・重なり順の値はすべて本ファイルで一元管理する。
 * 他のCSSファイルでは生の値を直接記述せず、必ず本ファイルの変数を参照すること。
 */
:root {
  /* ===== ブランドカラー：深いネイビー（信頼・知性） ===== */
  --color-navy-900: #08182a;
  --color-navy-800: #0e2740;
  --color-navy-700: #143557;
  --color-navy-600: #1d4a72;
  --color-navy-500: #2f6390;
  --color-navy-100: #e6ecf2;

  /* ===== アクセント：彩度を抑えた金銅色（権威・品位） ===== */
  --color-accent-700: #6f5527;
  --color-accent-600: #8a6b34;
  --color-accent-500: #a98a4f;
  --color-accent-400: #c4a877;
  --color-accent-200: #e3d5b8;
  --color-accent-100: #f0e8d8;

  /* ===== ニュートラル ===== */
  --color-ink: #16202b;
  --color-ink-secondary: #43505d;
  --color-ink-muted: #6b7784;
  --color-line: #ddd8ce;
  --color-line-soft: #ebe7de;
  --color-line-strong: #c6bfb2;
  --color-paper: #fbfaf7;
  --color-paper-alt: #f3f0e9;
  --color-surface: #ffffff;

  /* ===== 反転面（濃紺の背景上）で使う文字色 ===== */
  --color-text-on-dark: #eef2f6;
  --color-text-on-dark-muted: #a7b7c6;
  --color-line-on-dark: rgba(255, 255, 255, 0.16);

  /* ===== 状態色 ===== */
  --color-focus: #2f6390;
  --color-danger: #9c3a2f;

  /* ===== タイポグラフィ ===== */
  --font-serif: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
  --font-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", system-ui, sans-serif;

  /* 画面幅に応じて滑らかに変化する見出しサイズ */
  --font-size-display: clamp(2.125rem, 1.3rem + 3.5vw, 3.9rem);
  --font-size-h1: clamp(1.875rem, 1.25rem + 2.4vw, 3.05rem);
  --font-size-h2: clamp(1.5rem, 1.15rem + 1.5vw, 2.3rem);
  --font-size-h3: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);
  --font-size-h4: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);

  --font-size-xs: 0.75rem;
  --font-size-sm: 0.8125rem;
  --font-size-body-sm: 0.875rem;
  --font-size-body: 1rem;
  --font-size-lead: clamp(1rem, 0.94rem + 0.28vw, 1.1875rem);
  --font-size-stat: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --line-height-tight: 1.3;
  --line-height-heading: 1.45;
  --line-height-body: 1.9;
  --line-height-relaxed: 2.05;

  --letter-spacing-tight: 0.01em;
  --letter-spacing-body: 0.02em;
  --letter-spacing-wide: 0.08em;
  --letter-spacing-widest: 0.22em;

  /* ===== 余白スケール ===== */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* セクションの上下余白。画面幅に応じて伸縮する */
  --section-padding-block: clamp(4rem, 2.5rem + 6vw, 8.5rem);
  --section-padding-block-sm: clamp(3rem, 2rem + 4vw, 5.5rem);

  /* ===== レイアウト ===== */
  --container-max: 74rem;
  --container-narrow: 52rem;
  --container-wide: 84rem;
  --container-gutter: clamp(1.25rem, 4vw, 2.5rem);
  --header-height: 4.75rem;
  --header-height-compact: 4rem;

  /* ===== 角丸 ===== */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  /* ===== 影 ===== */
  --shadow-sm: 0 1px 2px rgba(8, 24, 42, 0.05);
  --shadow-md: 0 6px 24px -12px rgba(8, 24, 42, 0.22);
  --shadow-lg: 0 24px 60px -32px rgba(8, 24, 42, 0.38);
  --shadow-header: 0 1px 0 rgba(8, 24, 42, 0.08), 0 8px 24px -20px rgba(8, 24, 42, 0.4);

  /* ===== 境界線 ===== */
  --border-hairline: 1px solid var(--color-line);
  --border-hairline-soft: 1px solid var(--color-line-soft);
  --border-rule-accent: 2px solid var(--color-accent-500);

  /* ===== モーション ===== */
  --duration-fast: 160ms;
  --duration-base: 280ms;
  --duration-slow: 720ms;
  --easing-standard: cubic-bezier(0.22, 0.61, 0.36, 1);
  --easing-emphasized: cubic-bezier(0.16, 1, 0.3, 1);

  /* ===== 重なり順 ===== */
  --z-base: 1;
  --z-sticky: 50;
  --z-header: 100;
  --z-nav-overlay: 90;
  --z-skip-link: 200;
}
