/* Rumbo Design System 1.0.0 — site token bridge.
   GENERATED by design-system/scripts/emit-site-tokens.ts. Do not edit.

   Maps the marketing site's long-standing variable names onto governed design
   system tokens. Every colour below is contrast-validated — see
   design-system/docs/accessibility/contrast.md. */

:root {
  /* ---- brand / structure ------------------------------------------------ */
  --navy: #041E42;            /* #041E42 — unchanged, already the brand navy */
  --navy-deep: #0D1320;  /* deepest band */
  --navy-700: #2A3E59;       /* gradient midpoint */

  /* ---- action ----------------------------------------------------------- */
  --blue: #0055F1;
  --blue-hover: #0043C1;
  --blue-press: #003193;
  --blue-link: #0055F1;
  --sky: #9ABEFF;        /* accent ON navy bands */

  /* ---- surfaces --------------------------------------------------------- */
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --band: #F3F5F8;
  --wash: #EFF6FF;

  /* ---- text ------------------------------------------------------------- */
  --text: #041E42;
  --muted: #606881;          /* 5.53:1 — was #5A6572 */

  /* ---- lines ------------------------------------------------------------ */
  --line: #D1D7E8;
  --line-soft: #E7EBF2;

  /* ---- status ----------------------------------------------------------- */
  --success: #006153;
  --error: #C40039;

  /* ---- legacy gold aliases. Yellow is retired sitewide; these resolve to
         the action blues so any stylesheet still naming them stays correct. -- */
  --gold: #0055F1;
  --gold-bright: #9ABEFF;
  --gold-deep: #003193;

  /* ---- type ------------------------------------------------------------- */
  /* Source Sans 3 is the brand typeface per the official brand board. */
  --font: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  /* rumbo-shell.css (the admin rail) references --sans/--serif, which were
     never defined anywhere — those rules silently fell back to the browser
     default. Defining them here fixes a pre-existing bug. */
  --sans: var(--font);
  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;

  /* ---- radius ----------------------------------------------------------- */
  --r-card: 0.75rem;
  --r-btn: 0.5rem;
  --r-sm: 0.5rem;
  --r-chip: 9999px;

  /* ---- elevation -------------------------------------------------------- */
  --shadow-sm: 0 1px 2px 0 rgb(4 30 66 / 0.06);
  --shadow-md: 0 4px 12px -2px rgb(4 30 66 / 0.10), 0 2px 4px -2px rgb(4 30 66 / 0.06);
  --shadow-lg: 0 12px 32px -8px rgb(4 30 66 / 0.14), 0 4px 8px -4px rgb(4 30 66 / 0.08);
  --shadow-gold: 0 4px 12px -2px rgb(4 30 66 / 0.10), 0 2px 4px -2px rgb(4 30 66 / 0.06);   /* legacy name — action-blue shadow */

  /* ---- spacing (8px base, unchanged values, now sourced from tokens) ----- */
  --s1: 0.25rem; --s2: 0.5rem;  --s3: 0.75rem; --s4: 1rem;
  --s5: 1.5rem; --s6: 2rem;  --s7: 3rem; --s8: 4rem;
  --s9: 6rem; --s10: 8rem;

  /* ---- gradients -------------------------------------------------------- */
  /* Full four-stop gradient: large surfaces only (hero washes, rules, bars).
     Its aqua and lime stops are 2.26:1 and 1.18:1 against white, so white text
     must never sit on them. */
  --rumbo-gradient: linear-gradient(90deg, #005BFF 0%, #6B2CFF 34%, #00C2A8 70%, #C8FF00 100%);
  /* Departure → transition. The sanctioned two-stop subset for small surfaces
     such as buttons: white is 5.33:1 on electric blue and 6.12:1 on violet, so
     the label stays legible across the whole sweep. */
  --rumbo-gradient-action: linear-gradient(90deg, #005BFF 0%, #6B2CFF 100%);
}

/* ---------------------------------------------------------------------------
   Design-system surface treatments.
   --------------------------------------------------------------------------- */

/* The primary action carries the gradient's DEPARTURE segment, not the full
   four stops. The full gradient ends in aqua and lime, where a white label is
   2.26:1 and 1.18:1 — illegible. Blue → violet keeps every point of the sweep
   above 5:1, so the button stays branded and readable at rest and on hover. */
.btn-gold,
.btn-primary,
a.cta-primary {
  background-image: var(--rumbo-gradient-action);
  background-size: 180% 180%;
  background-position: 0% 50%;
  border-color: transparent;
  transition: background-position .4s cubic-bezier(.22,1,.36,1), box-shadow .2s;
}
.btn-gold:hover,
.btn-primary:hover,
a.cta-primary:hover { background-position: 100% 50%; }

.btn-gold, .btn-primary, a.cta-primary { color: #FFFFFF; font-weight: 600; }

/* The FULL gradient belongs on large surfaces where nothing sits on top of it:
   section rules, progress bars, the hero hairline. */
.rumbo-rule, .grad-rule, .progress-bar > i {
  background-image: var(--rumbo-gradient);
}

/* Brand glow on the mark, as rendered on the board. */
.logo .rose { filter: drop-shadow(0 0 10px rgb(0 91 255 / .45)); }

/* Section eyebrows pick up the brand accent instead of plain grey. */
.eyebrow, .kicker, .sec-kicker { color: var(--blue); letter-spacing: .16em; }
