/*
 * Festivitas design tokens ("Heraldic Classic").
 *
 * Primitive scales are the three heraldic tinctures of the seal: Azure (Noble Blue at 600), Argent (cool neutrals
 * from Heraldic White) and Or (gold, used sparingly). Components only use the semantic --fv-* tokens, which are
 * redefined for Midnight under [data-bs-theme="dark"]. All text pairs are checked for WCAG AA.
 */
:root {
    /* Azure */
    --fv-azure-50: #eef4fb;
    --fv-azure-100: #d7e5f4;
    --fv-azure-200: #b0cbe8;
    --fv-azure-300: #7faad6;
    --fv-azure-400: #4f87c2;
    --fv-azure-500: #2f6db0;
    --fv-azure-600: #004c8f; /* Noble Blue */
    --fv-azure-700: #003f77;
    --fv-azure-800: #00325f;
    --fv-azure-900: #062646;
    --fv-azure-950: #06172b;

    /* Argent */
    --fv-argent-0: #ffffff;
    --fv-argent-50: #f7f8fa;
    --fv-argent-100: #eff0f4; /* Heraldic White */
    --fv-argent-200: #e2e5ec;
    --fv-argent-300: #c9ced9;
    --fv-argent-400: #8a93a6;
    --fv-argent-500: #5a6377;
    --fv-argent-900: #14213a;

    /* Or */
    --fv-or-200: #f1e2b8;
    --fv-or-400: #d8b25a;
    --fv-or-500: #c9a043;
    --fv-or-600: #a8822a;
    --fv-or-700: #8a6414;

    /* Kept for templates that still use the old names */
    --noble-blue: var(--fv-azure-600);
    --heraldic-white: var(--fv-argent-100);

    /* Type */
    --fv-font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
    --fv-font-caps: "Cinzel", "Trajan Pro", "Times New Roman", serif;
    --fv-font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --fv-font-script: "Monsieur La Doulaise", "Snell Roundhand", "Apple Chancery", cursive;

    /* Shape and motion */
    --fv-radius-control: 6px;
    --fv-radius-panel: 10px;
    --fv-radius-pill: 999px;
    --fv-ease: cubic-bezier(.2, .7, .3, 1);
    --fv-duration: .15s;
    --fv-touch: 44px;
}

/* Heraldic (light) */
:root,
[data-bs-theme="light"] {
    --fv-bg: var(--fv-argent-100);
    --fv-surface: var(--fv-argent-0);
    --fv-raised: var(--fv-argent-50);
    --fv-line: var(--fv-argent-200);
    --fv-line-strong: var(--fv-argent-400);
    --fv-ink: var(--fv-argent-900);
    --fv-muted: var(--fv-argent-500);
    --fv-primary: var(--fv-azure-600);
    --fv-primary-hover: var(--fv-azure-700);
    --fv-primary-active: var(--fv-azure-800);
    --fv-on-primary: #ffffff;
    --fv-link: var(--fv-azure-600);
    --fv-link-hover: var(--fv-azure-800);
    --fv-subtle: #e3edf8;
    --fv-subtle-ink: var(--fv-azure-700);
    --fv-gold: var(--fv-or-500);
    --fv-gold-ui: var(--fv-or-600);
    --fv-gold-text: var(--fv-or-700);
    --fv-on-gold: var(--fv-argent-900);
    --fv-success: #1e7a4c;
    --fv-success-bg: #e3f3ea;
    --fv-danger: #b42318;
    --fv-danger-bg: #fbe8e6;
    --fv-danger-solid: #b42318;
    --fv-warning: #8f5106;
    --fv-warning-bg: #fbefd9;
    --fv-topbar: var(--fv-azure-600);
    --fv-topbar-ink: var(--fv-argent-100);
    --fv-topbar-dim: #cdd9ea;
    --fv-focus: var(--fv-azure-400);
    --fv-shadow-sm: 0 1px 2px rgb(6 23 43 / .06);
    --fv-shadow: 0 1px 2px rgb(6 23 43 / .06), 0 6px 18px rgb(6 23 43 / .07);
    --fv-shadow-lg: 0 4px 10px rgb(6 23 43 / .08), 0 18px 40px rgb(6 23 43 / .12);
    --fv-watermark: .06;
}

/* Midnight (dark) */
[data-bs-theme="dark"] {
    --fv-bg: var(--fv-azure-950);
    --fv-surface: #0b2240;
    --fv-raised: #112c50;
    --fv-line: #1e3a5f;
    --fv-line-strong: #5d7799;
    --fv-ink: var(--fv-argent-100);
    --fv-muted: #9fb0c8;
    --fv-primary: var(--fv-azure-500);
    --fv-primary-hover: #2a64a3;
    --fv-primary-active: #245a93;
    --fv-on-primary: #ffffff;
    --fv-link: #7fb0e6;
    --fv-link-hover: var(--fv-azure-200);
    --fv-subtle: #123a66;
    --fv-subtle-ink: var(--fv-azure-200);
    --fv-gold: var(--fv-or-400);
    --fv-gold-ui: var(--fv-or-400);
    --fv-gold-text: var(--fv-or-400);
    --fv-on-gold: var(--fv-azure-950);
    --fv-success: #5cc792;
    --fv-success-bg: #0f3a2c;
    --fv-danger: #f2877c;
    --fv-danger-bg: #3d1a1d;
    --fv-danger-solid: #b8372b;
    --fv-warning: #e8b04a;
    --fv-warning-bg: #3a2b10;
    --fv-topbar: #082340;
    --fv-topbar-ink: var(--fv-argent-100);
    --fv-topbar-dim: #b6c5da;
    --fv-focus: var(--fv-or-400);
    --fv-shadow-sm: 0 1px 2px rgb(0 0 0 / .3);
    --fv-shadow: 0 1px 2px rgb(0 0 0 / .3), 0 8px 24px rgb(0 0 0 / .35);
    --fv-shadow-lg: 0 4px 10px rgb(0 0 0 / .35), 0 18px 40px rgb(0 0 0 / .45);
    --fv-watermark: .08;
}
