:root {
  /* === Primary — Navy === */
  --color-primary: #0B1A2E;
  --color-primary-mid: #1A3050;
  --color-primary-light: #2A4A6E;

  /* === Theme — Blue === */
  --color-theme: #4D8EC8;
  --color-theme-light: #6BA3D6;
  --color-theme-pale: #E8F0F8;

  /* === Grayscale === */
  --color-text: #333;
  --color-text-sub: #666;
  --color-text-light: #999;
  --color-border: #ddd;
  --color-border-light: #eee;
  --color-bg: #fff;
  --color-bg-alt: #F8FAFC;
  --color-bg-block: #f5f5f5;

  /* === Functional === */
  --color-white: #fff;
  --color-black: #111;
  --color-attention: #C81E1E;
  --color-success: #2E7D32;

  /* === Dark BG Text === */
  --color-on-dark: #fff;
  --color-on-dark-sub: rgba(255, 255, 255, 0.7);
  --color-on-dark-muted: rgba(255, 255, 255, 0.5);

  /* === Fonts (benchmark: nipponchikudenchi.co.jp) === */
  --font-gothic: "Roboto", "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --font-mincho: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-english: "Libre Baskerville", Georgia, serif;

  --fw-thin: 200;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;

  --fs-hero: clamp(2.4rem, 5vw, 3.75rem);
  --fs-page-title: clamp(2.4rem, 4vw, 3.75rem);
  --fs-h1: clamp(1.7rem, 3vw, 2.8rem);
  --fs-h2: clamp(1.25rem, 2vw, 1.75rem);
  --fs-h3: clamp(1rem, 1.5vw, 1.25rem);
  --fs-body: 1rem;
  --fs-body-large: 1.125rem;
  --fs-small: 0.875rem;
  --fs-caption: 0.75rem;

  --lh-heading: 1.24;
  --lh-body: 1.8;
  --lh-compact: 1.5;

  --ls-heading: -0.02em;
  --ls-body: 0.05em;
  --ls-wide: 0.15em;
  --ls-english: 0.02em;

  /* === Layout === */
  --max-width: 1200px;
  --max-width-narrow: 800px;
  --max-width-wide: 1400px;
  --content-padding: 50px;
  --content-padding-sp: 6%;

  --section-gap: clamp(80px, 10vw, 150px);
  --section-padding: clamp(60px, 8vw, 120px);
  --section-padding-sm: clamp(40px, 5vw, 80px);

  --header-height: 90px;
  --header-height-sp: 60px;

  /* === Z-index === */
  --z-header: 100;
  --z-menu-overlay: 200;
  --z-modal: 300;
  --z-toast: 400;
}
