/* ==========================================================================
   KSF design tokens — single source of truth (from Figma: KFS Copy)
   ========================================================================== */
:root {
  /* ---- Brand colors (Figma variables) ---- */
  --c-green: #78AD2B;          /* Main green  */
  --c-green-ink: #5F8A22;      /* darker green for hover/active */
  --c-grey: #4C5355;           /* Main grey (header/footer) */
  --c-grey-900: #2F3436;       /* darker grey panels */
  --c-ink: #171A16;            /* near-black text */
  --c-green-050: #EDF5DE;      /* Light green (soft sections) */

  --c-white: #FFFFFF;
  --c-paper: #FFFFFF;
  --c-line: #E3E6E1;           /* hairline borders */
  --c-muted: #6B7270;          /* secondary text */
  --c-muted-on-dark: #C7CBC8;

  /* ---- Semantic ---- */
  --bg-body: var(--c-white);
  --bg-section-soft: var(--c-green-050);
  --bg-section-dark: var(--c-grey);
  --text-body: var(--c-ink);
  --text-on-dark: var(--c-white);
  --link: var(--c-green-ink);
  --focus-ring: var(--c-green);

  /* ---- Typography ---- */
  --font-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: "Montserrat", system-ui, sans-serif;

  --fs-xs: 0.75rem;    /* 12px utility bar / labels */
  --fs-sm: 0.875rem;   /* 14px small */
  --fs-base: 1rem;     /* 16px body */
  --fs-md: 1.125rem;   /* 18px lead */
  --fs-lg: 1.5rem;     /* 24px h3 */
  --fs-xl: 2rem;       /* 32px h2 */
  --fs-2xl: 2.75rem;   /* 44px h1 */
  --fs-3xl: 3.5rem;    /* 56px hero */

  --lh-tight: 1.1;
  --lh-snug: 1.25;
  --lh-normal: 1.6;

  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* ---- Layout ---- */
  --container: 1200px;         /* desktop (≥1400 viewport) */
  --content-max: 780px;        /* measure for long-form article text */
  --gutter: clamp(16px, 5vw, 64px);
  --radius: 4px;
  --radius-lg: 8px;

  /* ---- Spacing scale (8pt) ---- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 128px;

  --section-y: clamp(48px, 8vw, 64px);

  /* ---- Elevation ---- */
  --shadow-sm: 0 1px 2px rgba(23, 26, 22, 0.06);
  --shadow-md: 0 8px 24px rgba(23, 26, 22, 0.08);

  --header-h: 128px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Smaller desktops / laptops: narrower content container (tablet & mobile stay
   fluid via the gutter, so no further step is needed below this). */
@media (max-width: 1399.98px) {
  :root { --container: 992px; }
}
