/* ============================================================
   AMERICA HEALTH ASSURANCE — Foundation Tokens
   Black-canvas precision aesthetic, patriotic accents.
   ============================================================ */

/* ----- Fonts -----------------------------------------------------
   BMW Type Next Latin is licensed; we substitute Inter (closest open
   match) and pair it with Saira Condensed for very large display.
   Replace these @imports + font-family with the licensed face when
   available.
------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Saira+Condensed:wght@500;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* ===== Brand & Accent ========================================= */
  --aha-primary:        #ffffff; /* Primary type + CTA ink on dark   */
  --aha-red:            #B91C1C; /* Patriot Red — left stop of stripe */
  --aha-red-bright:     #DC2626; /* Hover/active red                 */
  --aha-blue:           #1E3A8A; /* Patriot Blue — right stop        */
  --aha-blue-bright:    #1D4ED8; /* Interactive / link blue          */
  --aha-blue-deep:      #0F1F4D; /* Deep navy — masthead, anchor     */

  /* ===== Canvas / Dark Surface ================================== */
  --aha-canvas:           #000000; /* True black — hero floor        */
  --aha-surface-soft:     #0D0D0D;
  --aha-surface-card:     #1A1A1A;
  --aha-surface-elevated: #262626;
  --aha-carbon:           #2B2B2B; /* Spec-card tone                 */

  /* ===== Light Surface (dual mode) ============================== */
  --aha-paper:            #FFFFFF; /* Light-canvas content sections  */
  --aha-paper-soft:       #F6F6F4; /* Off-white body                 */
  --aha-paper-card:       #FFFFFF;
  --aha-paper-elevated:   #FAFAF8;
  --aha-stone:            #EFEFEC; /* Quiet panel                    */

  /* ===== Hairlines / Borders ==================================== */
  --aha-hairline-dark:    #3C3C3C; /* On dark                        */
  --aha-hairline-strong:  #262626;
  --aha-hairline-light:   #E5E5E2; /* On light                       */
  --aha-hairline-mid:     #C9C9C4;

  /* ===== Text Tokens ============================================ */
  /* on dark */
  --aha-on-dark:          #FFFFFF;
  --aha-body-on-dark:     #BBBBBB;
  --aha-body-strong-dark: #E6E6E6;
  --aha-muted-on-dark:    #7E7E7E;
  /* on light */
  --aha-on-light:         #0A0A0A;
  --aha-body-on-light:    #3A3A3A;
  --aha-body-strong-light:#1A1A1A;
  --aha-muted-on-light:   #767672;

  /* ===== Semantic =============================================== */
  --aha-success:          #0FA336;
  --aha-warning:          #F4B400;
  --aha-error:            #DC2626;
  --aha-info:             #1D4ED8;

  /* ===== Stripe ================================================= */
  --aha-stripe: linear-gradient(
    90deg,
    var(--aha-red)  0%,
    var(--aha-red)  33.33%,
    #ffffff         33.33%,
    #ffffff         66.66%,
    var(--aha-blue) 66.66%,
    var(--aha-blue) 100%
  );

  /* ===== Typography ============================================= */
  --aha-font-display: 'Saira Condensed', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --aha-font-sans:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --aha-font-mono:    'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Type Scale */
  --aha-fs-display-xl: 80px;
  --aha-fs-display-lg: 56px;
  --aha-fs-display-md: 40px;
  --aha-fs-display-sm: 32px;
  --aha-fs-title-lg:   24px;
  --aha-fs-title-md:   20px;
  --aha-fs-title-sm:   18px;
  --aha-fs-body-md:    16px;
  --aha-fs-body-sm:    14px;
  --aha-fs-caption:    12px;
  --aha-fs-label:      14px;
  --aha-fs-button:     14px;

  --aha-lh-display:    1.0;
  --aha-lh-tight:      1.1;
  --aha-lh-snug:       1.3;
  --aha-lh-normal:     1.5;

  --aha-tracking-tight:  -0.01em;
  --aha-tracking-normal: 0;
  --aha-tracking-label:  1.5px;
  --aha-tracking-caption: 0.5px;

  /* ===== Spacing (base 4px) ===================================== */
  --aha-space-xxs: 4px;
  --aha-space-xs:  8px;
  --aha-space-sm:  12px;
  --aha-space-md:  16px;
  --aha-space-lg:  24px;
  --aha-space-xl:  40px;
  --aha-space-xxl: 64px;
  --aha-space-section: 96px;

  /* ===== Radii ================================================== */
  --aha-radius-none: 0px;
  --aha-radius-xs:   2px;
  --aha-radius-sm:   4px;
  --aha-radius-md:   6px;
  --aha-radius-full: 9999px;

  /* ===== Containers ============================================= */
  --aha-max:       1440px;
  --aha-max-text:  720px;

  /* ===== Elevation (sparingly) ================================== */
  --aha-shadow-none:  none;
  --aha-shadow-card:  0 1px 0 var(--aha-hairline-light); /* light-mode card */
  --aha-shadow-pop:   0 12px 32px rgba(0,0,0,0.18);

  /* ===== Motion ================================================= */
  --aha-ease-out:   cubic-bezier(.2,.7,.2,1);
  --aha-ease-in:    cubic-bezier(.5,0,.85,.25);
  --aha-dur-fast:   140ms;
  --aha-dur-base:   240ms;
  --aha-dur-slow:   420ms;
}

/* ============================================================
   Semantic helpers — base type rules
   ============================================================ */

.aha-h1, .aha-display-xl {
  font-family: var(--aha-font-display);
  font-weight: 700;
  font-size: var(--aha-fs-display-xl);
  line-height: var(--aha-lh-display);
  letter-spacing: var(--aha-tracking-tight);
  text-transform: uppercase;
}

.aha-h2, .aha-display-lg {
  font-family: var(--aha-font-display);
  font-weight: 700;
  font-size: var(--aha-fs-display-lg);
  line-height: 1.05;
  letter-spacing: var(--aha-tracking-tight);
  text-transform: uppercase;
}

.aha-h3, .aha-display-md {
  font-family: var(--aha-font-display);
  font-weight: 700;
  font-size: var(--aha-fs-display-md);
  line-height: var(--aha-lh-tight);
  text-transform: uppercase;
}

.aha-h4, .aha-display-sm {
  font-family: var(--aha-font-display);
  font-weight: 700;
  font-size: var(--aha-fs-display-sm);
  line-height: 1.15;
  text-transform: uppercase;
}

.aha-title-lg {
  font-family: var(--aha-font-sans);
  font-weight: 700;
  font-size: var(--aha-fs-title-lg);
  line-height: var(--aha-lh-snug);
}

.aha-title-md {
  font-family: var(--aha-font-sans);
  font-weight: 400;
  font-size: var(--aha-fs-title-md);
  line-height: 1.4;
}

.aha-title-sm {
  font-family: var(--aha-font-sans);
  font-weight: 400;
  font-size: var(--aha-fs-title-sm);
  line-height: 1.4;
}

.aha-body-md, .aha-p {
  font-family: var(--aha-font-sans);
  font-weight: 300;
  font-size: var(--aha-fs-body-md);
  line-height: var(--aha-lh-normal);
}

.aha-body-sm {
  font-family: var(--aha-font-sans);
  font-weight: 300;
  font-size: var(--aha-fs-body-sm);
  line-height: var(--aha-lh-normal);
}

.aha-caption {
  font-family: var(--aha-font-sans);
  font-weight: 400;
  font-size: var(--aha-fs-caption);
  line-height: 1.4;
  letter-spacing: var(--aha-tracking-caption);
}

.aha-label, .aha-label-uppercase {
  font-family: var(--aha-font-sans);
  font-weight: 700;
  font-size: var(--aha-fs-label);
  line-height: 1.3;
  letter-spacing: var(--aha-tracking-label);
  text-transform: uppercase;
}

.aha-button-label {
  font-family: var(--aha-font-sans);
  font-weight: 700;
  font-size: var(--aha-fs-button);
  line-height: 1;
  letter-spacing: var(--aha-tracking-label);
  text-transform: uppercase;
}

.aha-nav-link {
  font-family: var(--aha-font-sans);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: var(--aha-tracking-caption);
}

/* The M-stripe equivalent — patriot stripe divider */
.aha-stripe {
  display: block;
  width: 100%;
  height: 4px;
  background: var(--aha-stripe);
}

/* Surface modes */
.aha-dark   { background: var(--aha-canvas);     color: var(--aha-on-dark);  }
.aha-light  { background: var(--aha-paper);      color: var(--aha-on-light); }
.aha-paper  { background: var(--aha-paper-soft); color: var(--aha-on-light); }
