/* Rate Ranger design tokens — the single source of truth for the palette.
 *
 * Every landing page used to declare this block itself, 70 copies of it, and they
 * drifted: --muted was the AA-corrected #656c7d on the homepage and the failing
 * #7a8194 on the other 69, while amber-as-text existed under two names with two
 * values. A page must never redeclare a token below. Add it here or not at all.
 *
 * Variable names are the ones the codebase already uses (--yellow, --surface, --ink).
 * They are internal, and renaming them across 70 pages plus buttons.css, nav.css and
 * booking-form.css would be risk bought for no reader's benefit.
 *
 * System reference: .mikedesign/DESIGN.md
 *
 * NOTE: /shared/* is served with no Cache-Control header, so editing this file
 * requires bumping the ?v= query on every <link> that loads it. A CloudFront
 * invalidation alone will not reach a browser that already cached it.
 */

:root {
    /* Android's Auto Dark Theme targets pages that declare no colour scheme,
       inverting the ground while leaving hardcoded dark text dark. Every page in
       this system is designed light-only, so declaring it is a fix, not a limit. */
    color-scheme: light;

    /* ---- Accent: Lantern -------------------------------------------------
       The only colour permitted to mean "act here" (the Single Signal Rule).
       Replaced Tailwind yellow-400 (#FACC15) on 2026-08-17: a signature colour
       should not be a framework default, and the extra warmth carries the
       night-watch idea the identity is built on.
       10.8:1 against midnight, and midnight text on it is the same 10.8:1. */
    --yellow: #F7BE1E;

    /* Hover/pressed fill. A FILL, RULE AND ICON COLOUR ONLY — 1.97:1 on warm
       paper, so it can never carry text or a focus ring on a light surface. */
    --yellow-dark: #E4AA08;

    /* Amber as readable text or a focus ring on a light ground. Same hue as
       --yellow, 4.70:1 on warm paper and 4.98:1 on white. This is the token the
       Text Shade Rule points at; reaching for --yellow-dark instead has shipped
       twice and was unreadable both times. */
    --yellow-text: #8E6A05;

    --yellow-glow: rgba(247, 190, 30, 0.25);
    --yellow-subtle: rgba(247, 190, 30, 0.08);

    /* ---- Ground ---------------------------------------------------------- */
    --midnight: #0c1425;        /* dark bookends: hero, footer, header bars */
    --midnight-light: #131d33;  /* depth within a midnight section */
    --surface: #faf8f5;         /* default light ground — warm, never pure white */
    --surface-warm: #f5f0ea;    /* one step warmer, to set a section apart */
    --white: #ffffff;           /* cards and inputs sitting on --surface */

    /* ---- Text ------------------------------------------------------------ */
    --ink: #1c2639;             /* primary body text on light */
    --ink-light: #374259;       /* secondary, in longer-form copy */

    /* Tertiary text: captions, helper text, secondary copy. Was #7a8194, which
       measured 3.67:1 on warm paper while carrying most of the light sections'
       body copy. 4.96:1 — the floor, not a target. Do not lighten it. */
    --muted: #656c7d;

    --border: #e4dfd8;          /* the only border and divider colour */

    /* ---- Meaning-bound. Never decorative, never interchangeable. ---------- */

    /* Errors and required fields. --coral is a BORDER OR GRAPHIC (3.41:1 on
       paper, which clears the 3:1 non-text UI needs); --coral-text is the same
       meaning set as type, at 4.66:1. */
    --coral: #e05c4d;
    --coral-text: #c8412f;

    /* A price that has FALLEN — and nothing else. Not a success colour, not a
       confirmation colour, never a CTA. A price drop is an outcome rather than
       an action, which is why it cannot wear the accent. --drop-green is a
       graphic (3.19:1); --drop-green-deep carries white text at 5.14:1. */
    --drop-green: #0E9F6E;
    --drop-green-deep: #0B7D57;
    --drop-green-wash: rgba(14, 159, 110, 0.13);

    /* ---- Type ------------------------------------------------------------ */
    --serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;
    --sans: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
}
