/* ICGS design tokens (from handoff/icgs-tokens.css, unchanged except font paths).
   Loaded after Bootstrap. Do not edit colours here without updating design/. */
/* ICGS design tokens, v1. Public site (light) */
:root {
  /* Brand */
  --icgs-primary: #0858C8;
  --icgs-primary-hover: #0848B8;
  --icgs-primary-active: #083AA8;
  --icgs-primary-dark: #082898;
  --icgs-navy: #06174D;
  --icgs-accent: #0878F8;
  --icgs-ice: #E8F8F8;
  --icgs-gold: #EDBE20;
  --icgs-gold-deep: #DDA203;
  --icgs-gold-soft: #FDDA50;
  --icgs-gold-tint: #FDF3CC;
  --icgs-blue-50: #EBF3FE;
  --icgs-blue-100: #D6E7FC;
  --icgs-sky: #7DB4FF;

  /* Neutrals */
  --icgs-n-50: #F5F7FB;
  --icgs-n-100: #ECF0F7;
  --icgs-n-200: #DCE2EE;
  --icgs-n-300: #C2CBDC;
  --icgs-n-400: #7A88A3;
  --icgs-n-500: #5F6C85;
  --icgs-n-600: #4B5770;
  --icgs-n-700: #363F54;
  --icgs-n-800: #232B3E;
  --icgs-n-900: #131A2B;

  /* Semantic */
  --icgs-success-solid: #0F7B4F;
  --icgs-success-fg: #0B6140;
  --icgs-success-bg: #E6F5EE;
  --icgs-success-border: #9AD5B7;
  --icgs-warning-solid: #B35400;
  --icgs-warning-fg: #7A4300;
  --icgs-warning-bg: #FFF0DB;
  --icgs-warning-border: #F2C78B;
  --icgs-danger-solid: #C4281C;
  --icgs-danger-fg: #A11D14;
  --icgs-danger-bg: #FDECEA;
  --icgs-danger-border: #F0AAA4;
  --icgs-info-solid: #0B6B8C;
  --icgs-info-fg: #08566F;
  --icgs-info-bg: #E3F4F8;
  --icgs-info-border: #93CFE0;

  /* Roles */
  --icgs-bg: #FFFFFF;
  --icgs-surface: var(--icgs-n-50);
  --icgs-surface-ice: var(--icgs-ice);
  --icgs-surface-navy: var(--icgs-navy);
  --icgs-border-subtle: var(--icgs-n-200);
  --icgs-border: var(--icgs-n-300);
  --icgs-border-control: var(--icgs-n-400);
  --icgs-overlay: rgba(6, 23, 77, 0.6);
  --icgs-text: var(--icgs-n-900);
  --icgs-text-2: var(--icgs-n-700);
  --icgs-text-muted: var(--icgs-n-600);
  --icgs-text-subtle: var(--icgs-n-500);
  --icgs-link: var(--icgs-primary);
  --icgs-focus: var(--icgs-primary);
}

/* Admin dark mode. Same names, dark values */
[data-bs-theme="dark"] {
  --icgs-bg: #080F24;
  --icgs-surface: #0F1937;
  --icgs-surface-raised: #172350;
  --icgs-surface-hover: #1D2B5E;
  --icgs-border-subtle: #263568;
  --icgs-border-control: #5B6EAE;
  --icgs-text: #E9EEF9;
  --icgs-text-2: #A7B3D0;
  --icgs-text-muted: #A7B3D0;
  --icgs-text-subtle: #8F9CC0;
  --icgs-link: #7DB4FF;
  --icgs-focus: #7DB4FF;
  --icgs-success-fg: #5BD69B;
  --icgs-success-bg: #0E2B25;
  --icgs-warning-fg: #F5B95C;
  --icgs-warning-bg: #33260F;
  --icgs-danger-fg: #FF8A80;
  --icgs-danger-bg: #38151A;
  --icgs-info-fg: #5CC8E6;
  --icgs-info-bg: #0C2A38;
  /* Primary stays a fill (white text 6.48:1). It is never dark-mode text. */
}

/* Type, space, shape, motion, layout */
:root {
  --icgs-font-heading: 'Sora', 'Segoe UI', system-ui, sans-serif;
  --icgs-font-body: 'Public Sans', 'Segoe UI', system-ui, sans-serif;
  --icgs-fw-regular: 400;  --icgs-fw-semibold: 600;  --icgs-fw-bold: 700;

  /* Mobile-first sizes, size / line height */
  --icgs-fs-display: 40px;  --icgs-lh-display: 44px;
  --icgs-fs-h1: 34px;  --icgs-lh-h1: 40px;
  --icgs-fs-h2: 28px;  --icgs-lh-h2: 34px;
  --icgs-fs-h3: 22px;  --icgs-lh-h3: 30px;
  --icgs-fs-h4: 19px;  --icgs-lh-h4: 26px;
  --icgs-fs-h5: 17px;  --icgs-lh-h5: 24px;
  --icgs-fs-lead: 18px;  --icgs-lh-lead: 28px;
  --icgs-fs-body: 16px;  --icgs-lh-body: 26px;
  --icgs-fs-small: 14px;  --icgs-lh-small: 22px;
  --icgs-fs-label: 13px;  --icgs-lh-label: 18px;

  /* Spacing, 4 px base */
  --icgs-space-1: 4px;
  --icgs-space-2: 8px;
  --icgs-space-3: 12px;
  --icgs-space-4: 16px;
  --icgs-space-5: 24px;
  --icgs-space-6: 32px;
  --icgs-space-7: 48px;
  --icgs-space-8: 64px;
  --icgs-space-9: 96px;
  --icgs-space-10: 128px;

  /* Radius */
  --icgs-radius-xs: 4px;
  --icgs-radius-sm: 8px;
  --icgs-radius-md: 12px;
  --icgs-radius-lg: 20px;
  --icgs-radius-pill: 999px;

  /* Elevation, navy tinted */
  --icgs-shadow-0: none;
  --icgs-shadow-1: 0 1px 2px rgba(6, 23, 77, 0.06), 0 1px 3px rgba(6, 23, 77, 0.08);
  --icgs-shadow-2: 0 4px 12px rgba(6, 23, 77, 0.08), 0 2px 4px rgba(6, 23, 77, 0.05);
  --icgs-shadow-3: 0 12px 32px rgba(6, 23, 77, 0.12), 0 4px 8px rgba(6, 23, 77, 0.06);
  --icgs-shadow-4: 0 24px 64px rgba(6, 23, 77, 0.24), 0 8px 16px rgba(6, 23, 77, 0.08);

  /* Motion */
  --icgs-dur-fast: 120ms;
  --icgs-dur-base: 200ms;
  --icgs-dur-slow: 320ms;
  --icgs-dur-reveal: 480ms;
  --icgs-dur-count: 1200ms;
  --icgs-ease-out: cubic-bezier(0.2, 0, 0, 1);
  --icgs-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --icgs-ease-in: cubic-bezier(0.4, 0, 1, 1);

  /* Layout */
  --icgs-container: 1200px;  --icgs-gutter: 16px;  --icgs-section-y: 48px;
  --icgs-touch: 44px;  --icgs-field-h: 48px;
  --icgs-z-header: 100;  --icgs-z-float: 400;  --icgs-z-modal: 600;  --icgs-z-toast: 700;
}
@media (min-width: 768px) {
  :root { --icgs-gutter: 24px;  --icgs-section-y: 64px; }
}
@media (min-width: 992px) {
  :root {
    --icgs-fs-display: 64px;  --icgs-lh-display: 68px;
    --icgs-fs-h1: 48px;  --icgs-lh-h1: 56px;
    --icgs-fs-h2: 36px;  --icgs-lh-h2: 44px;
    --icgs-fs-h3: 28px;  --icgs-lh-h3: 36px;
    --icgs-fs-h4: 22px;  --icgs-lh-h4: 30px;
    --icgs-fs-h5: 18px;  --icgs-lh-h5: 26px;
    --icgs-fs-lead: 20px;  --icgs-lh-lead: 32px;
    --icgs-section-y: 96px;
  }
}

/* Bootstrap 5.3 mapping */
:root {
  --bs-primary: var(--icgs-primary);
  --bs-primary-rgb: 8, 88, 200;
  --bs-success: var(--icgs-success-solid);
  --bs-warning: var(--icgs-warning-solid);
  --bs-danger: var(--icgs-danger-solid);
  --bs-info: var(--icgs-info-solid);
  --bs-body-font-family: var(--icgs-font-body);
  --bs-body-color: var(--icgs-text);
  --bs-body-bg: var(--icgs-bg);
  --bs-heading-color: var(--icgs-navy);
  --bs-link-color: var(--icgs-link);
  --bs-link-hover-color: var(--icgs-primary-hover);
  --bs-border-color: var(--icgs-border-subtle);
  --bs-border-radius: var(--icgs-radius-sm);
  --bs-border-radius-lg: var(--icgs-radius-md);
  --bs-focus-ring-color: rgba(8, 88, 200, 0.25);
}
.btn-primary {
  --bs-btn-bg: var(--icgs-primary);        --bs-btn-border-color: var(--icgs-primary);
  --bs-btn-hover-bg: var(--icgs-primary-hover);  --bs-btn-hover-border-color: var(--icgs-primary-hover);
  --bs-btn-active-bg: var(--icgs-primary-active); --bs-btn-active-border-color: var(--icgs-primary-active);
}
.btn-gold {  /* on navy only */
  --bs-btn-color: var(--icgs-navy);  --bs-btn-bg: var(--icgs-gold);  --bs-btn-border-color: var(--icgs-gold);
  --bs-btn-hover-color: var(--icgs-navy);  --bs-btn-hover-bg: var(--icgs-gold-deep);
}

/* Fonts: four files, self-hosted, Latin subset */
@font-face { font-family: 'Sora'; font-weight: 600; font-display: swap;
  src: url("../../vendor/fonts/sora-latin-600-normal.7300e271ae8e.woff2") format('woff2'); }
@font-face { font-family: 'Sora'; font-weight: 700; font-display: swap;
  src: url("../../vendor/fonts/sora-latin-700-normal.1b6d947c799f.woff2") format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 400; font-display: swap;
  src: url("../../vendor/fonts/public-sans-latin-400-normal.60715978fab2.woff2") format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 600; font-display: swap;
  src: url("../../vendor/fonts/public-sans-latin-600-normal.6b1fe1f62892.woff2") format('woff2'); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;  animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;  scroll-behavior: auto !important;
  }
}

:focus-visible { outline: 2px solid var(--icgs-focus); outline-offset: 2px; }
