/* ==========================================================================
   Electbase candidate-site tokens
   --------------------------------------------------------------------------
   Two layers:

   1. ELECTBASE DEFAULTS (--eb-*)  — the platform baseline. Fixed. These are
      the civic-editorial defaults every new site starts from.

   2. CANDIDATE BRAND OVERRIDES (--brand-*) — set per-site from the AZ44-lite
      brand intake (logo, colors, fonts). Every block reads --brand-* with a
      fallback to the Electbase default, so a site re-skins by overriding a
      handful of variables in a single `.site` scope — nothing in blocks.css
      needs to change.

   In Puck (Phase 2) these --brand-* values become the Root component fields
   (accent, ink, paper, fonts). Swapping them is the whole "brand intake".
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Hanken+Grotesk:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=Public+Sans:wght@400;500;600;700;800&family=Source+Sans+3:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600;6..72,700&family=Libre+Franklin:wght@400;500;600;700;800;900&family=Anton&family=Oswald:wght@500;600;700&family=Barlow+Condensed:wght@500;600;700&family=Archivo:wght@700;800;900&family=Bebas+Neue&family=Yellowtail&family=Merriweather+Sans:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Bitter:wght@500;600;700;800&family=Nunito+Sans:wght@400;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&family=Lora:wght@500;600;700&family=Open+Sans:wght@400;600;700&family=Playfair+Display:wght@600;700;800;900&family=Work+Sans:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=Barlow:wght@400;500;600;700&family=Cormorant+Garamond:wght@500;600;700&family=Alegreya+Sans:wght@500;700;800&family=Manrope:wght@500;600;700;800&family=Sora:wght@500;600;700;800&family=Lato:wght@400;700&family=DM+Serif+Display&family=DM+Sans:wght@400;500;600;700&family=Eczar:wght@500;600;700&family=Karla:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&family=Assistant:wght@400;500;600;700&display=swap');

:root {
  /* --- Electbase platform defaults (baseline) --- */
  --eb-ink:        #0a1020;   /* primary text / dark surfaces */
  --eb-ink-soft:   #141c30;
  --eb-paper:      #f6f6f2;   /* warm off-white page */
  --eb-paper-warm: #efeee6;
  --eb-slate:      #3a4256;   /* secondary text */
  --eb-muted:      #6c7488;
  --eb-line:       #d9d8cf;   /* hairlines on paper */
  --eb-line-dark:  #20283d;   /* hairlines on ink */
  --eb-accent:     #3a6bff;   /* electric blue */
  --eb-accent-2:   #f59e0b;   /* amber CTA */
  --eb-accent-3:   #ef6f61;   /* coral warmth */
  --eb-on-accent:  #ffffff;

  --eb-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --eb-body:    'Hanken Grotesk', system-ui, sans-serif;
  --eb-mono:    'Spline Sans Mono', ui-monospace, monospace;

  /* fluid type scale (shared by all templates) */
  --step--1: clamp(.82rem, .79rem + .15vw, .92rem);
  --step-0:  clamp(1rem, .95rem + .25vw, 1.15rem);
  --step-1:  clamp(1.25rem, 1.15rem + .5vw, 1.6rem);
  --step-2:  clamp(1.6rem, 1.4rem + 1vw, 2.3rem);
  --step-3:  clamp(2.1rem, 1.7rem + 2vw, 3.4rem);
  --step-4:  clamp(2.8rem, 2rem + 4vw, 5.4rem);
  --step-5:  clamp(3.4rem, 2.2rem + 6vw, 6.6rem);

  --maxw:   1140px;
  --gutter: clamp(1.2rem, 4vw, 3rem);
  --radius: 14px;
  --radius-sm: 9px;
  --shadow-sm: 0 1px 2px rgba(10,16,32,.06), 0 2px 8px rgba(10,16,32,.05);
  --shadow-md: 0 12px 30px -12px rgba(10,16,32,.28);
}

/* --------------------------------------------------------------------------
   Per-site brand scope.
   A published candidate site wraps everything in `.site` and sets its own
   --brand-* overrides here (or inline on the element). Anything left unset
   falls through to the Electbase default. This is the ONLY place a site
   differs — the block CSS is untouched.
   -------------------------------------------------------------------------- */
.site {
  --brand-ink:        var(--eb-ink);
  --brand-ink-soft:   var(--eb-ink-soft);
  --brand-paper:      var(--eb-paper);
  --brand-paper-warm: var(--eb-paper-warm);
  --brand-slate:      var(--eb-slate);
  --brand-muted:      var(--eb-muted);
  --brand-line:       var(--eb-line);
  --brand-line-dark:  var(--eb-line-dark);
  --brand-accent:     var(--eb-accent);
  --brand-accent-2:   var(--eb-accent-2);
  --brand-on-accent:  var(--eb-on-accent);

  --brand-display: var(--eb-display);
  --brand-body:    var(--eb-body);
  --brand-mono:    var(--eb-mono);

  /* derived — sites rarely override these directly */
  --brand-hero-ink:  var(--brand-paper);      /* text on the dark hero */
  --brand-focus:     var(--brand-accent);
}
