/* ==========================================================
   ELEVATE — DESIGN TOKENS
   Source: memory/business_advisor/identity.md v1.6 (2026-04-23)
   Locked palette: 6 brand hex codes only (rgba derivatives OK)
   Locked typography: Bebas Neue + Inter + Prompt
   ========================================================== */

:root {
  /* ===== BRAND PALETTE ===== */
  --navy: #034B6F;          /* Primary dark — Consultant pillar */
  --deep-navy: #023752;     /* Surface dark — Capital pillar */
  --heritage-teal: #0E7C86; /* UpLevel pillar */
  --elevate-gold: #C9A449;  /* Accent — CTAs, rules, emphasis */
  --signal-blue: #00A9F4;   /* Bright highlight — App teasers */
  --cool-grey: #E5E7EB;     /* Soft surface */
  --white: #FFFFFF;
  --black-ink: #0B1220;     /* Text on light backgrounds */

  /* ===== SURFACE OVERLAYS (rgba derivatives) ===== */
  --glass-light: rgba(255, 255, 255, 0.06);
  --glass-light-hover: rgba(255, 255, 255, 0.12);
  --glass-border: rgba(255, 255, 255, 0.18);
  --glass-border-soft: rgba(255, 255, 255, 0.08);
  --glass-dark: rgba(2, 55, 82, 0.5);
  --shadow-soft: 0 2px 16px rgba(3, 75, 111, 0.06);
  --shadow-card: 0 8px 32px rgba(3, 75, 111, 0.12);
  --shadow-discreet: 0 8px 40px rgba(3, 75, 111, 0.08);

  /* ===== TYPOGRAPHY ===== */
  --font-display-en: "Bebas Neue", "Helvetica Neue", sans-serif;
  --font-body-en: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-display-th: "Prompt", "Helvetica Neue", sans-serif;
  --font-body-th: "Prompt", "Helvetica Neue", sans-serif;

  /* Type scale — fluid clamp() per identity.md v1.6 */
  --hero-size: clamp(3rem, 9vw, 8rem);
  --title-size: clamp(2.5rem, 6vw, 5rem);
  --h2-size: clamp(1.75rem, 4vw, 3rem);
  --h3-size: clamp(1.1rem, 2vw, 1.5rem);
  --body-size: clamp(0.875rem, 1.2vw, 1.05rem);
  --caption-size: clamp(0.7rem, 0.9vw, 0.85rem);

  /* Bilingual sizing rule: TH = EN × 1.30, leading 1.65 */
  --th-scale: 1.30;
  --th-leading: 1.65;
  --en-leading: 1.45;

  /* ===== SPACING + LAYOUT ===== */
  --section-padding: clamp(1.5rem, 5vw, 5rem);
  --section-padding-y: clamp(4rem, 10vw, 8rem);
  --max-content: 1300px;
  --max-grid: 1500px;
  --nav-height: 4rem;

  /* ===== MOTION ===== */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
  --duration-fast: 0.2s;
  --duration-base: 0.4s;
  --duration-slow: 0.8s;
  --duration-cinematic: 1.1s;

  /* ===== Z-INDEX SCALE ===== */
  --z-base: 1;
  --z-content: 2;
  --z-nav: 90;
  --z-overlay: 95;
  --z-modal: 100;
}

/* ===== Bilingual sizing — applies wherever lang="th" is set ===== */
:lang(th) {
  font-family: var(--font-body-th);
  font-size: calc(1em * var(--th-scale));
  line-height: var(--th-leading);
  font-style: normal !important; /* TH must NEVER italicize */
}
