/* FIXD — design tokens.
   Palette, type scale, rhythm and motion timing in one place.
   The whole system is deliberately square: no radii larger than 2px anywhere,
   because rounded cards are what a generic contractor template looks like. */

:root {
  /* --- palette -------------------------------------------------------- */
  --black:    #0B0B0A;   /* near black — structural */
  --graphite: #242424;   /* raised surfaces on black */
  --white:    #F7F7F3;   /* warm white — structural */
  --grey:     #D8D8D3;   /* soft grey — rules on light */
  --yellow:   #FFD900;   /* FIXD yellow — the one accent */
  --blue:     #3DA7FF;   /* technical blue — electrical micro-cues only */

  --black-92: rgba(11, 11, 10, .92);
  --black-70: rgba(11, 11, 10, .70);
  --black-55: rgba(11, 11, 10, .55);
  --black-12: rgba(11, 11, 10, .12);
  --white-72: rgba(247, 247, 243, .72);
  --white-48: rgba(247, 247, 243, .48);
  --white-16: rgba(247, 247, 243, .16);
  --white-08: rgba(247, 247, 243, .08);

  /* section-local roles; flipped by .is-dark and .is-yellow */
  --bg: var(--white);
  --fg: var(--black);
  --muted: rgba(11, 11, 10, .62);
  --rule: rgba(11, 11, 10, .14);

  /* --- typography ------------------------------------------------------
     Archivo carries a width axis, so the display face is genuinely condensed
     rather than a normal grotesk squeezed by transform. */
  --font-display: 'Archivo', 'Archivo Narrow', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Inter Tight', 'Archivo', system-ui, -apple-system, sans-serif;
  --wdth-tight: 82;
  --wdth-normal: 100;

  --t-mega:  clamp(3.1rem, 13.4vw, 12.5rem);   /* full-width typographic breaks */
  --t-hero:  clamp(3rem, 10.4vw, 7.4rem);      /* hero + closing headline, which share a column */
  --t-huge:  clamp(2.4rem, 7.4vw, 6.4rem);     /* section headlines */
  --t-big:   clamp(1.9rem, 4.6vw, 3.6rem);     /* service titles */
  --t-mid:   clamp(1.25rem, 2.2vw, 1.75rem);   /* card titles */
  --t-lede:  clamp(1.02rem, 1.3vw, 1.28rem);
  --t-body:  clamp(.95rem, 1.02vw, 1.04rem);
  --t-small: .88rem;
  --t-label: .7rem;                            /* uppercase micro labels */

  --track-mega: -.035em;
  --track-huge: -.028em;
  --track-label: .2em;

  /* --- rhythm ---------------------------------------------------------- */
  --gutter: clamp(1.15rem, 4vw, 4rem);
  --maxw: 1440px;
  --maxw-text: 58ch;
  --sect-y: clamp(4.5rem, 10vh, 8.5rem);
  --gap: clamp(1rem, 1.8vw, 1.75rem);

  --header-h: 74px;

  /* squared-off geometry */
  --r: 2px;
  --rule-w: 1px;
  --line-w: 3px;      /* the signature FIXD yellow line */

  /* --- motion ----------------------------------------------------------
     Fast and mechanical. Nothing here is allowed to float. */
  --ease-snap: cubic-bezier(.2, .8, .2, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --dur-xs: .12s;
  --dur-sm: .2s;
  --dur-md: .38s;
  --dur-lg: .6s;

  --img-zoom: 1.025;   /* the whole site's image hover contract */
}

@media (min-width: 900px) {
  :root { --header-h: 88px; }
}
