/* tokens.css — Novodent brand tokens (from the brand pack).
 * Palette + gradient + type families per the handoff spec.
 * Fonts self-hosted (no runtime third-party request): Space Grotesk (display),
 * IBM Plex Sans (body), IBM Plex Mono (labels).
 */

/* ---- self-hosted fonts ---- */
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:500; font-display:swap; src:url("/static/fonts/space-grotesk-500.woff2") format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:600; font-display:swap; src:url("/static/fonts/space-grotesk-600.woff2") format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-style:normal; font-weight:700; font-display:swap; src:url("/static/fonts/space-grotesk-700.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:400; font-display:swap; src:url("/static/fonts/plex-sans-400.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:500; font-display:swap; src:url("/static/fonts/plex-sans-500.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:600; font-display:swap; src:url("/static/fonts/plex-sans-600.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:700; font-display:swap; src:url("/static/fonts/plex-sans-700.woff2") format("woff2"); }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:500; font-display:swap; src:url("/static/fonts/plex-mono-500.woff2") format("woff2"); }

:root {
  /* ---- blue (cerulean, from the logo) ---- */
  --brand:       #2f8fc9;   /* LOGO BLUE — mark + graphic fills ONLY */
  --brand-2:     #56a5df;   /* lighter — gradient start, hovers */
  --brand-deep:  #0c4a72;   /* deep ocean — dark surfaces, gradient end */
  --accent:      #176aa3;   /* links, buttons, blue TEXT on white (AA) */
  --accent-ink:  #ffffff;
  --hero: linear-gradient(135deg, #2f8fc9 0%, #176aa3 55%, #0c4a72 100%);

  /* ---- ink & neutrals ---- */
  --bg:          #ffffff;
  --surface:     #f4f7fa;
  --ink:         #0c2330;
  --ink-deep:    #001825;
  --muted:       #5c6b78;
  --line:        #dde5ec;
  --on-deep:     #eaf2f8;
  --on-deep-mut: #8fa6b5;

  /* ---- type ---- */
  --font-display: "Space Grotesk", system-ui, sans-serif;
  --font-sans:    "IBM Plex Sans", system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --fs-display: clamp(2.75rem, 6vw, 4.75rem);  /* 44 -> 76 */
  --fs-h1:      clamp(2.25rem, 4vw, 3rem);     /* 36 -> 48 */
  --fs-h2:      clamp(1.625rem, 3vw, 2rem);    /* 26 -> 32 */
  --fs-h3:      1.5rem;                         /* 24 */
  --fs-body-l:  1.1875rem;                      /* 19 */
  --fs-body:    1.0625rem;                      /* 17 */
  --fs-cap:     0.8125rem;                      /* 13 */
  --lh-display: 1.04;
  --lh-tight:   1.12;
  --lh-body:    1.6;
  --track-tight: -0.02em;

  /* ---- space ---- */
  --s1:0.25rem; --s2:0.5rem; --s3:0.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4.5rem; --s9:7rem;

  /* ---- radius / layout ---- */
  --radius-sm: 8px;
  --radius:    14px;
  --wrap:    74rem;
  --measure: 42rem;   /* ~68ch reading column */
}
