/* ============================================================================
   RWS Budget FY27 — v5 Brand Tokens
   Source of truth: raywhitesherwood.com.au (extracted in v4/_chrome/).
   Real palette + real fonts. Yellow is an ACCENT only — never a background wash.
   Concepts may add their own variables but must not redefine these core values.
   ========================================================================== */

:root {
  /* --- Ray White brand (verbatim from live site) --- */
  --rw-yellow:      #FFE512;   /* the real RW yellow (27 uses in live CSS) */
  --rw-yellow-deep: #F8DC00;   /* hover / pressed */
  --rw-yellow-dark: #EDD300;   /* secondary hover */

  /* --- Ink / neutrals (from live site) --- */
  --ink:        #171E1A;       /* near-black green-black: text + dark sections */
  --ink-soft:   #2A312D;       /* raised dark surface */
  --white:      #FFFFFF;
  --off-white:  #F8F8F9;       /* page background, light */
  --paper:      #FCFCFC;       /* card inset */
  --grey-100:   #EFEFEF;       /* light panel / fill */
  --grey-200:   #E3E3E3;
  --border:     #D8D8D8;       /* hairlines, dividers */
  --grey-500:   #9B9B9B;       /* muted labels */
  --grey-700:   #525252;       /* secondary body text */
  --soft-red:   #E66C6C;       /* sparing: deadlines / warnings */

  /* --- Semantic --- */
  --bg:         var(--off-white);
  --surface:    var(--white);
  --text:       var(--ink);
  --text-muted: var(--grey-700);
  --text-faint: var(--grey-500);
  --accent:     var(--rw-yellow);
  --hairline:   var(--border);

  /* --- Type (real site: Playfair Display + Lato) --- */
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:    'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;

  /* fluid type scale */
  --fs-mega:  clamp(2.6rem, 1.6rem + 4.6vw, 5.2rem);
  --fs-h1:    clamp(2.0rem, 1.4rem + 2.6vw, 3.4rem);
  --fs-h2:    clamp(1.5rem, 1.2rem + 1.4vw, 2.1rem);
  --fs-h3:    clamp(1.2rem, 1.05rem + 0.6vw, 1.45rem);
  --fs-lead:  clamp(1.05rem, 0.98rem + 0.5vw, 1.3rem);
  --fs-body:  1.0625rem;       /* 17px */
  --fs-small: 0.875rem;        /* 14px */
  --fs-kicker:0.75rem;         /* 12px — uppercase labels */

  --lh-tight: 1.08;
  --lh-snug:  1.25;
  --lh-body:  1.6;
  --tracking-kicker: 0.16em;

  /* --- Spacing scale (8pt) --- */
  --s-1: 0.25rem; --s-2: 0.5rem;  --s-3: 0.75rem; --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;    --s-7: 3rem;    --s-8: 4rem;
  --s-9: 6rem;    --s-10: 8rem;

  /* --- Layout --- */
  --maxw:       1140px;   /* matches v4 system + real site rhythm */
  --maxw-prose: 720px;
  --side-pad:   clamp(1.25rem, 0.5rem + 3vw, 3rem);
  --header-h:   60px;

  /* --- Radius / elevation (kept restrained) --- */
  --r-sm: 6px; --r-md: 10px; --r-lg: 16px; --r-pill: 999px;
  --shadow-1: 0 1px 2px rgba(23,30,26,0.05);
  --shadow-2: 0 6px 24px rgba(23,30,26,0.08);
  --shadow-3: 0 18px 48px rgba(23,30,26,0.12);

  --ease: cubic-bezier(0.4, 0, 0.2, 1);
}
