/* ===========================================================================
   TOKENS — Gabriella Licari. Two brand colors only: navy + gold.
   Typography: Sora (display/headings) + Inter (body), via Google Fonts.
   =========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700&display=swap");

:root {
  /* Ink ramp — near-black replaces navy as the dark ground. Reads far more
     contemporary than corporate navy. */
  --navy-900: #0e1013;   /* deepest — dark sections, footer */
  --navy-800: #1a1d23;   /* ink — primary buttons, strong borders */
  --navy-700: #2b2f38;   /* hover */
  --navy-600: #2340e8;   /* electric cobalt — links, secondary emphasis */
  --navy-200: #c3ccdd;
  --navy-100: #e3e7ef;
  --navy-050: #f3f5f9;

  /* Accent — electric cobalt. The single brand accent, used sparingly. */
  --gold-500: #2340e8;   /* accent (solid fills, book bar) */
  --gold-600: #1b31b8;   /* accent, darker — accent text on light grounds */
  --gold-300: #8098ff;   /* accent, lighter — accent text on dark grounds */
  --gold-100: #e5e9ff;

  /* Editorial neutrals — warm paper keeps the ink from feeling sterile */
  --cream: #f5f3ee;
  --cream-line: #e2ded4;

  /* Neutrals (structural, not brand accents) */
  --ink-900:  #14161f;
  --grey-600: #5b6272;
  --grey-400: #9aa0ae;
  --grey-300: #cfd3db;
  --grey-200: #e6e9ee;
  --grey-100: #f4f5f8;
  --white:    #ffffff;

  --status-danger: #d64545;
  --status-success: #1f9d63;

  /* Semantic */
  --text-strong: var(--ink-900);
  --text-body:   #2b2f3a;
  --text-muted:  var(--grey-600);
  --text-faint:  var(--grey-400);
  --text-inverse: var(--white);
  --text-brand:  var(--navy-800);
  --text-link:   var(--navy-700);

  --surface-page:  var(--white);
  --surface-card:  var(--white);
  --surface-wash:  var(--navy-050);
  --surface-brand: var(--navy-800);
  --surface-brand-dark: var(--navy-900);

  --border-hairline: var(--grey-300);
  --border-soft: var(--grey-200);
  --border-strong: var(--navy-800);
  --border-focus: var(--gold-500);

  --action-bg: var(--navy-800);
  --action-bg-hover: var(--navy-700);
  --action-fg: var(--white);

  /* Fonts — Archivo (grotesque, newspaper DNA) for display and labels,
     Inter for body copy. */
  --font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --font-sans: "Inter", "Segoe UI", system-ui, sans-serif;
  --font-label: "Archivo", "Helvetica Neue", Arial, sans-serif;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;
  --fw-black: 800;

  --text-2xs: 0.75rem;
  --text-xs:  0.75rem;
  --text-sm:  0.875rem;
  --text-base: 1.0625rem;
  --text-md:  1.0625rem;
  --text-lg:  1.375rem;
  --text-xl:  1.75rem;
  --text-2xl: 2.375rem;
  --text-3xl: 2.875rem;
  --text-4xl: 3.75rem;
  --text-5xl: 4.5rem;

  --leading-tight: 1.08;
  --leading-snug: 1.25;
  --leading-normal: 1.6;
  --leading-relaxed: 1.7;

  --tracking-label: 0.1em;
  --tracking-tight: -0.02em;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --space-8: 3.5rem;
  --space-9: 5rem;
  --space-10: 7rem;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 3px rgba(0, 15, 45, 0.08), 0 1px 2px rgba(0, 15, 45, 0.06);
  --shadow-md: 0 8px 24px rgba(0, 15, 45, 0.12), 0 2px 6px rgba(0, 15, 45, 0.06);
  --shadow-lg: 0 20px 50px rgba(0, 15, 45, 0.18), 0 6px 14px rgba(0, 15, 45, 0.08);
  --shadow-gold: 0 8px 20px rgba(242, 182, 0, 0.35);
  --shadow-focus: 0 0 0 3px rgba(242, 182, 0, 0.45);

  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --dur-fast: 120ms;
  --dur-normal: 220ms;

  /* Reading measure for running prose. About 75 characters at 17px, the
     upper end of the comfortable range, which suits justified text: a
     wider line gives the browser more room to place word gaps. */
  --measure: 640px;
  /* Structural column: FAQ rows, insight list, contact blocks,
     article header. Prose inside one fills it. */
  --column: 820px;

  --container-max: 1200px;
  --header-h: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  color: var(--text-strong);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 0.4em;
}

p { margin: 0 0 1em; }
a { color: var(--text-link); text-decoration: none; }
a:hover { text-decoration: underline; }
strong, b { font-weight: var(--fw-bold); }
img, svg { display: block; max-width: 100%; }

.eyebrow {
  font-family: var(--font-label);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  font-size: var(--text-xs);
  color: var(--gold-600);
}
