:root {
    /* ── Brand color tokens ── */
    --brand-darkest: #0f3457;
    /* darkest navy, use for text on light bg */
    --brand-dark: #1e4e7b;
    /* logo base, navbar bg */
    --brand-mid: #1f68ad;
    /* primary buttons, links */
    --brand-light: #529be0;
    /* hover states, secondary elements */
    --brand-pale: #a8cdf0;
    /* backgrounds, badges, borders */

    --accent-teal: #26afd9;
    /* info, highlights */
    --accent-cyan: #26d9d6;
    /* decorative pops */
    --accent-pink: #d92682;
    /* warnings, alerts, CTAs needing contrast */
    --accent-green: #82d926;
    /* success states */

    /* ── Override Bootstrap semantic tokens ── */
    --bs-primary: var(--brand-mid);
    --bs-primary-rgb: 31, 104, 173;

    --bs-link-color: var(--brand-mid);
    --bs-link-color-rgb: 31, 104, 173;
    --bs-link-hover-color: var(--brand-dark);

    --bs-success: #5aa820;
    /* toned-down version of accent-green */
    --bs-info: var(--accent-teal);
    --bs-danger: var(--accent-pink);
}

/* ── Primary button ── */
.btn-primary {
    --bs-btn-bg: var(--brand-mid);
    --bs-btn-border-color: var(--brand-mid);
    --bs-btn-hover-bg: var(--brand-dark);
    --bs-btn-hover-border-color: var(--brand-dark);
    --bs-btn-active-bg: var(--brand-darkest);
}

/* ── Outline primary button ── */
.btn-outline-primary {
    --bs-btn-color: var(--brand-mid);
    --bs-btn-border-color: var(--brand-mid);
    --bs-btn-hover-bg: var(--brand-mid);
    --bs-btn-hover-border-color: var(--brand-mid);
}

/* ── Navbar with brand dark ── */
.navbar-brand-vu {
    background-color: var(--brand-dark);
}

/* ── Custom badge for brand pale ── */
.badge-brand {
    background-color: var(--brand-pale);
    color: var(--brand-darkest);
}

/* ── Card accent border ── */
.card-brand {
    border-top: 3px solid var(--brand-mid);
}

/* ── Focus ring ── */
:focus-visible {
    outline: 2px solid var(--brand-light);
    outline-offset: 2px;
}

/* ── Link colors in body text ── */
a {
    color: var(--brand-mid);
}

a:hover {
    color: var(--brand-dark);
}