/* ============================================================
   tokens.css — the whole design system lives here.
   The brand colour is FPG's own #12003A, taken from the old site's declared
   palette (Elementor global kit, --e-global-color-secondary). White ground,
   indigo accent, black type. No warm mid-browns: cream and sand read as brown
   at page scale, which is the thing the palette is meant to avoid.
   ============================================================ */
:root {
  /* — brand —
     #12003A is rgb(18,0,58): almost black. It carries weight well (fills, links,
     headings) but cannot be a light graphic accent the way a mid-tone can — a
     hairline in it just reads as a black line. Hence the scale: the brand value
     for anything with mass, lifting toward periwinkle for rules and hairlines. */
  --indigo:#12003A;          /* the brand value — fills, links, headings */
  --indigo-mid:#3A2A72;      /* rules, nav underline, graphic marks */
  --indigo-line:#5C4E96;     /* hairlines, icon strokes on light ground */
  --indigo-tint:#F0EEF6;     /* tinted panels */

  /* — surfaces & ink — */
  --bg:#F6F5F9; --surface:#FFFFFF; --sand:#E3E0EC;
  --ink:#16121F; --ink-soft:#453F55; --ink-muted:#6A6480;

  /* — accent —
     `--accent` is the per-community override target; the community blocks at the
     bottom of this file re-point it. Everything else should read --accent, not
     --indigo, so a community page recolours correctly. */
  --accent:var(--indigo);
  --accent-deep:#2A1A5E;     /* hover goes LIGHTER — #12003A is already near the floor */
  --accent-line:var(--indigo-line);
  --on-accent:#FFFFFF;       /* text on an accent fill; the old brass took dark ink */

  /* Legacy aliases. The system was built on brass names and they are referenced in
     ~100 places across six stylesheets; re-pointing them here moves the whole
     palette in one edit and leaves nothing stranded. Prefer --accent* in new code. */
  --brass:var(--indigo-mid); --brass-deep:var(--indigo); --brass-ink:#0B0026;

  /* — per-community identity hues —
     Drawn from the core-values artwork, which is the brand's own accent family.
     The old terracotta was the last warm tone in the system; plum replaces it. */
  --plum:#6E526E; --plum-deep:#553E55;
  --olive:#5C6049; --slate-blue:#4A5A6E;

  /* — semantic — */
  --success:#2E6B4F; --success-bg:#E4EFE9;
  --warning:#8A6410; --warning-bg:#F5EBD6;
  --danger:#A32B3A;  --danger-bg:#F7E4E7;
  --info:#3A5A7A;

  /* — type — */
  --font-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --fs-mega:clamp(3.25rem,9vw,8rem); --fs-display:clamp(2.6rem,6.4vw,5.25rem); --fs-h1:clamp(2.1rem,4.2vw,3.4rem);
  --fs-h2:clamp(1.9rem,3.2vw,2.6rem); --fs-h3:clamp(1.35rem,2vw,1.6rem); --fs-h4:1.2rem;
  --fs-lead:clamp(1.15rem,1.6vw,1.4rem); --fs-body:1.0625rem; --fs-sm:.9375rem;
  --fs-caption:.8125rem; --fs-overline:.75rem;

  /* — spacing (4px base) — */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  --space-24:96px; --space-32:128px;
  --gutter:clamp(20px,5vw,64px);
  /* Height of the fixed site header. Measured, not guessed — the first-block clearance
     rule in blocks-a.css hard-codes 96px and is 16px out. */
  --fpg-nav-h:80px;

  /* — containers — */
  --container-xl:1280px; --container-lg:1080px;
  --container-md:760px; --container-sm:520px;

  /* — radius — */
  --radius-sm:6px; --radius-md:12px; --radius-lg:20px;
  --radius-pill:999px;

  /* — borders, shadows, motion —
     Shadows are tinted with the brand indigo rather than black: a neutral shadow
     over a cool ground goes muddy. */
  --rule:1px solid var(--accent-line);
  --border-hair:1px solid var(--sand);
  --border-soft:1px solid rgba(22,18,31,.10);
  --border-strong:1px solid var(--ink-soft);
  --shadow-1:0 1px 2px rgba(18,0,58,.05),0 2px 8px rgba(18,0,58,.06);
  --shadow-2:0 4px 12px rgba(18,0,58,.08),0 12px 32px rgba(18,0,58,.09);
  --shadow-3:0 12px 32px rgba(18,0,58,.13),0 24px 64px rgba(18,0,58,.13);
  --focus-ring:0 0 0 3px rgba(58,42,114,.45);
  --ease:cubic-bezier(.22,.61,.36,1);   /* ease-out, "light arriving" */

  /* The near-black used for dark grounds: the hero bed, the footer, scrims.
     Derived from the brand rather than neutral, so dark sections read as the
     same family instead of as a hole in the page. */
  --ground:#0E0028;
  --ground-rgb:10,4,26;
}

/* Dark theme — used by CTA bands + footer (scoped via [data-theme="dark"]).
   Not an inversion: the accent LIGHTENS, because #12003A on a dark ground is
   invisible. */
[data-theme="dark"]{
  --bg:#140B24; --surface:#1E1433; --sand:#2A1F42;
  --ink:#F4F2FA; --ink-soft:#CFC9E2; --ink-muted:#A099BD;
  --brass:#8E7ED0; --brass-deep:#A99CE0;
  --accent:#6A57C4; --accent-deep:#8E7ED0; --accent-line:#8E7ED0;
  --on-accent:#FFFFFF;
  --border-hair:1px solid rgba(244,242,250,.10);
  --border-soft:1px solid rgba(244,242,250,.14);
}

/* per-community accent — unity at the portfolio, individuality per place */
[data-community="vista-del-sol"],[data-community="hidden-creek"],
[data-community="the-sands"],[data-community="san-lorenzo"]{ --accent:var(--plum); --accent-deep:var(--plum-deep); }
[data-community="sheridan-square"],[data-community="the-orchards"],
[data-community="autumn-ridge"],[data-community="timbercreek-east"]{ --accent:var(--olive); --accent-deep:#474B38; }
[data-community="estates-at-brentwood-lake"],[data-community="cedar-ridge"],
[data-community="lake-forest"],[data-community="cedar-brooke"]{ --accent:var(--slate-blue); --accent-deep:#3A4858; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}
