/* Finch Criminal Law — colour system.
   Base values are taken verbatim from the brand guidelines (p.9).
   Everything else is a derived tint/shade of those four values. */
:root{
  /* --- Brand base (guidelines) --- */
  --navy-900:#06131D;   /* gradient dark stop  RGB 6 19 29 */
  --navy-800:#091C2A;   /* PRIMARY / font base RGB 9 28 42 */
  --navy-700:#0C273A;   /* gradient light stop RGB 12 39 58 */
  --maroon-700:#5F1920; /* SECONDARY          RGB 95 25 32 */
  --bone-50:#FBFAF9;    /* neutral bg/accent   RGB 251 250 249 */

  /* --- Derived navy ramp (tints of --navy-800 on bone) --- */
  --navy-600:#143850;
  --navy-500:#1B4761;
  --navy-400:#41607A;
  --navy-300:#7B8FA1;
  --navy-200:#B4C0C9;
  --navy-100:#DDE3E8;
  --navy-050:#EEF1F4;

  /* --- Derived maroon ramp --- */
  --maroon-900:#3D0F14;
  --maroon-800:#4C1419;
  --maroon-600:#7A2129;
  --maroon-500:#9A3039;
  --maroon-300:#C99097;
  --maroon-100:#EBD6D8;
  --maroon-050:#F7EEEF;

  /* --- Warm neutrals (from the bone accent) --- */
  --bone-100:#F4F2F0;
  --bone-200:#E8E4E0;
  --bone-300:#D6D1CB;
  --bone-400:#B3ABA3;
  --white:#FFFFFF;

  /* --- Brand gradient (guidelines p.9) --- */
  --gradient-brand:linear-gradient(155deg,var(--navy-700) 0%,var(--navy-900) 100%); /* @kind color */
  --gradient-brand-h:linear-gradient(90deg,var(--navy-700) 0%,var(--navy-900) 100%); /* @kind color */
  /* Legibility scrim for text over photography */
  --gradient-scrim:linear-gradient(180deg,rgba(6,19,29,0) 0%,rgba(6,19,29,.55) 45%,rgba(6,19,29,.92) 100%); /* @kind color */
  --gradient-scrim-left:linear-gradient(90deg,rgba(6,19,29,.94) 0%,rgba(6,19,29,.72) 45%,rgba(6,19,29,0) 100%); /* @kind color */

  /* ============ Semantic aliases ============ */
  /* Surfaces */
  --surface-page:var(--bone-50);
  --surface-card:var(--white);
  --surface-sunken:var(--bone-100);
  --surface-inverse:var(--navy-800);
  --surface-inverse-deep:var(--navy-900);
  --surface-accent:var(--maroon-700);
  --surface-accent-soft:var(--maroon-050);
  --surface-overlay:rgba(6,19,29,.72);

  /* Text */
  --text-heading:var(--navy-800);
  --text-body:#2A3A45;
  --text-muted:#5E6E78;
  --text-subtle:var(--navy-300);
  --text-accent:var(--maroon-700);
  --text-on-dark:var(--bone-50);
  --text-on-dark-muted:#9FAFBB;
  --text-on-accent:var(--bone-50);
  --text-link:var(--maroon-700);
  --text-link-hover:var(--maroon-500);

  /* Lines */
  --border-hairline:rgba(9,28,42,.10);
  --border-default:rgba(9,28,42,.16);
  --border-strong:rgba(9,28,42,.32);
  --border-on-dark:rgba(251,250,249,.18);
  --border-accent:var(--maroon-700);
  --rule-brand:var(--maroon-700);

  /* Interaction */
  --action-primary:var(--navy-800);
  --action-primary-hover:var(--navy-700);
  --action-primary-active:var(--navy-900);
  --action-accent:var(--maroon-700);
  --action-accent-hover:var(--maroon-600);
  --action-accent-active:var(--maroon-800);
  --focus-ring:var(--maroon-500);
  --disabled-bg:var(--bone-200);
  --disabled-text:var(--bone-400);

  /* Status — muted, professional; never bright/candy */
  --status-info:var(--navy-500);
  --status-info-bg:var(--navy-050);
  --status-success:#2F6B4F;
  --status-success-bg:#E9F1ED;
  --status-warning:#8A6212;
  --status-warning-bg:#F6F0E1;
  --status-danger:var(--maroon-700);
  --status-danger-bg:var(--maroon-050);
}
