/* Delfino Design Tokens — 単一源（色・タイポ・余白・シェイプ）。
 * 全ページ共通で参照。ここを変えると全ページに波及する。
 */

:root {
  /* ---------- Colors (Delfino Precision & Empathy) ---------- */
  --color-navy: #001A33;
  --color-navy-2: #003666;
  --color-on-navy: #FFFFFF;
  --color-primary: #F39800;              /* Orange - primary action */
  --color-primary-strong: #FFAF33;
  --color-primary-soft: #FFDDBA;
  --color-on-primary: #FFFFFF;
  --color-blue: #006699;                 /* Supportive blue */
  --color-secondary: #4A607C;
  --color-on-surface: #1A1C1C;
  --color-on-surface-variant: #534434;
  --color-surface: #F9F9F9;
  --color-surface-container-lowest: #FFFFFF;
  --color-surface-container-low: #F3F3F4;
  --color-surface-container: #EEEEEE;
  --color-surface-container-high: #E8E8E8;
  --color-surface-container-highest: #E2E2E2;
  --color-outline: #867461;
  --color-outline-variant: #D9C3AD;
  --color-footer-bg: #F3F4F6;
  --color-footer-border: #E2E8F0;
  --color-footer-text: #4A607C;
  --color-footer-title: #001A33;
  --color-on-navy-muted: #CBD5E1;
  --color-scrim-navy-06: rgba(0, 26, 51, 0.06);
  --color-scrim-navy-08: rgba(0, 26, 51, 0.08);
  --color-scrim-navy-12: rgba(0, 26, 51, 0.12);
  --color-scrim-navy-20: rgba(0, 26, 51, 0.20);
  --color-header-surface: rgba(255, 255, 255, 0.95);
  --color-on-navy-scrim-08: rgba(255, 255, 255, 0.08);
  --color-on-navy-scrim-10: rgba(255, 255, 255, 0.10);
  --color-on-navy-scrim-20: rgba(255, 255, 255, 0.20);
  --color-hero-scrim-45: rgba(255, 255, 255, 0.85);
  --color-hero-dark-scrim-60: rgba(0, 26, 51, 0.60);
  --color-hero-dark-scrim-80: rgba(0, 26, 51, 0.85);
  --color-primary-scrim-12: rgba(243, 152, 0, 0.12);
  --color-primary-scrim-24: rgba(243, 152, 0, 0.24);
  --color-primary-scrim-40: rgba(243, 152, 0, 0.40);
  --color-form-border: #C8CCD1;
  --color-form-bg: #FFFFFF;
  --color-error: #BA1A1A;

  /* ---------- Typography ---------- */
  --font-display: "Manrope", "Noto Sans JP", system-ui, sans-serif;
  --font-body: "Work Sans", "Noto Sans JP", system-ui, sans-serif;
  --font-ja: "Noto Sans JP", "Work Sans", system-ui, sans-serif;

  --fs-headline-xl: 48px;
  --fs-headline-lg: 32px;
  --fs-headline-md: 24px;
  --fs-body-lg: 18px;
  --fs-body-md: 16px;
  --fs-label-md: 14px;
  --fs-label-sm: 12px;

  --lh-tight: 1.2;
  --lh-heading: 1.4;
  --lh-body: 1.7;
  --lh-body-lg: 1.8;

  --ls-tight: -0.02em;
  --ls-heading: -0.01em;
  --ls-label: 0.05em;
  --ls-label-sm: 0.1em;

  /* ---------- Spacing ---------- */
  --space-xs: 4px;
  --space-base: 8px;
  --space-sm: 12px;
  --space-md: 24px;
  --space-lg: 48px;
  --space-xl: 80px;
  --space-gutter: 24px;
  --space-margin: max(24px, 5vw);

  /* ---------- Shape / radius ---------- */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
  --radius-3xl: 2rem;
  --radius-full: 9999px;

  /* ---------- Elevation ---------- */
  --shadow-sm: 0 1px 2px 0 var(--color-scrim-navy-06);
  --shadow-md: 0 4px 12px 0 var(--color-scrim-navy-08);
  --shadow-lg: 0 12px 32px 0 var(--color-scrim-navy-12);
  --shadow-cta: 0 8px 20px 0 rgba(0, 0, 0, 0.12);
  --focus-ring: 0 0 0 3px var(--color-primary-scrim-24);
  --focus-outline-width: 2px;
  --focus-outline-offset: 3px;

  /* ---------- Layout ---------- */
  --header-height: 72px;
  --container-max: 1280px;
}

@media (max-width: 768px) {
  :root {
    --fs-headline-lg: 28px;
  }
}
