/* Base palette — sourced from the brand palette card (assets/brand/color-palette-reference.jpeg)
   and sampled from the live site (theresiliencelabtn.com). */
:root{
--blue-50:#eaf6fd;--blue-100:#cfebfa;--blue-200:#9dd6f4;--blue-300:#6cc0ee;--blue-400:#4aade5;
--blue-500:#2d9cdb;--blue-600:#2287c1;--blue-700:#1b6c9b;--blue-800:#155476;--blue-900:#0f3b53;
--ink-900:#000000;--ink-800:#101010;--ink-700:#1a1a1a;--ink-600:#242424;--ink-500:#4a4a4a;
--grey-400:#6f6f6f;--grey-300:#9b9b9b;--grey-200:#d6d6d6;--grey-100:#eaeaea;--grey-50:#f0f0f0;
--white:#ffffff;

/* Neutral greys, cool-leaning. These are the ONLY neutrals in the system — there is
   no warm/tan/sand family. If a layout needs to sit with the clinic's warm interior,
   it does so through photography, not through palette. */
--gold-500:#f2b830;--green-500:#2f9e6b;--red-500:#d1483a;

/* Semantic — surfaces.
   BLACK IS THE BASE. --surface-page is black; --surface-light is the exception used
   sparingly for contrast or long-form reading. Cards default to ink; --surface-card-light
   is the deliberate light variant. */
--surface-page:var(--ink-900);
--surface-page-raised:var(--ink-700);
--surface-muted:var(--ink-800);
--surface-light:var(--white);
--surface-light-muted:var(--grey-50);
--surface-card:var(--ink-700);
--surface-card-raised:var(--ink-600);
--surface-card-light:var(--white);
--surface-card-muted:var(--grey-100);
--surface-inverse:var(--ink-700);
--surface-inverse-deep:var(--ink-900);
--surface-brand:var(--blue-500);
--surface-brand-soft:var(--blue-50);
--border-subtle:rgba(255,255,255,.16);
--border-subtle-on-light:var(--grey-200);
--border-strong:var(--white);
--border-brand:var(--blue-500);

/* Semantic — text.
   Default text is white, because the default surface is black. The *-on-light roles
   are for the occasional white section. */
--text-strong:var(--white);
--text-body:var(--grey-200);
--text-muted:var(--grey-300);
--text-brand:var(--blue-500);
--text-strong-on-light:var(--ink-800);
--text-body-on-light:var(--ink-500);
--text-muted-on-light:var(--grey-400);
--text-on-dark:var(--white);
--text-on-dark-muted:var(--grey-200);
--text-on-brand:var(--white);
--text-on-brand-muted:var(--blue-100);

/* Semantic — interactive */
--action-primary:var(--blue-500);
--action-primary-hover:var(--blue-600);
--action-primary-active:var(--blue-700);
--action-dark:var(--ink-700);
--action-dark-hover:var(--ink-900);
--focus-ring:var(--blue-400);

/* Semantic — status */
--status-positive:var(--green-500);
--status-warning:var(--gold-500);
--status-critical:var(--red-500);
--rating-star:var(--gold-500);
}
