/* ═══════════════════════════════════════════════════════════════════════════
   AGENT-ROOFING ("Kestrel") — THEME. Colour and type, and nothing else. No
   layout: no display, no grid, no padding, no margin, no width. Only :root.

   Because everything below is a token and layout.css names no colour and no
   family, a palette or a typeset can replace this file wholesale and the
   design survives — which is the only reason the picker in the header can ever
   work on a client's live site.

   PALETTE — ten colours, not a hundred and thirty-one. A near-black slate,
   three greys, a hairline, a warm surface, an off-white ground, white, and one
   clay red taken off a tile roof. Measured on the rendered pages, all 1 679
   text nodes clear WCAG 2.2 AA and the WORST pair on the whole site is 5.06:1
   against a 4.5:1 requirement:

     ink         on bg 17.12 · on surface 15.14 · on card 17.99
     body        on bg  8.67 · on surface  7.67 · on card  9.11
     muted       on bg  5.73 · on surface  5.06 · on card  6.02
     accent-dark on bg  7.46 · on surface  6.60 · on card  7.84
     on-accent   on accent 5.87 · on accent-dark 7.56
     bg on ink 17.12 · derived muted-inv on ink 9.09 · accent-tint on ink 8.06

   TYPE — exactly two families, both self-hosted SIL OFL faces declared in
   base.css. Archivo at 800 for headings: a wide, flat-sided grotesque that
   reads as signage and equipment rather than as a boutique. IBM Plex Sans for
   everything else — humanist, unfussy and built for numbers, which is most of
   what a roofing site says.

   h1 ÷ body = 76.8px ÷ 18px = 4.27, inside the 3.8–4.4 band the premium tier
   clusters in. Every clamp() in the template has max ÷ min ≤ 2.5 (the widest
   is 1.92), so nothing collapses at 500% zoom where vw stops scaling.
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --ink:#14171a;
  --body:#43494f;
  --muted:#5c646b;
  --line:#d8d3cb;
  --surface:#efebe4;
  --bg:#fbf9f6;
  --card:#ffffff;

  --accent:#a4451f;
  --accent-dark:#8a3917;
  --on-accent:#fffaf6;

  --font-head:Archivo,'Helvetica Neue',Arial,sans-serif;
  --font-body:'IBM Plex Sans','Segoe UI',system-ui,sans-serif;
  --font-num:Archivo,'Helvetica Neue',Arial,sans-serif;

  --head-weight:800;
  --head-lead:1.08;
  --head-track:-0.025em;
  --lead:1.6;

  /* Squared off. A roof is a set of straight lines and a soft radius fights it. */
  --radius:2px;
  --btn-radius:2px;

  --step-0:clamp(1rem,0.955rem + 0.22vw,1.125rem);        /* 16.1 → 18   */
  --step-6:clamp(2.5rem,1.547rem + 4.07vw,4.8rem);        /* 40   → 76.8 */
}
