/* =========================================================
   Contrast corrections — WCAG 2.1 AA
   Generated 2026-10-12 from rendered-page measurement.

   Loaded LAST on every page, after base.css and the page
   stylesheet, so these rules win the cascade on merit rather
   than needing !important or inflated selectors.

   Hue and saturation are preserved throughout; only lightness
   changes. Token values live in base.css :root.
   ========================================================= */

/* ---- Footer (background #080f18) ---- */
.foot-col h5,
.foot-areas h5,
.foot-phone-lbl,
.foot-ci-lbl{color:#8fa9c7}                    /* 1.86:1 -> 7.94:1 */

.foot-col ul li a,
.foot-areas-links a,
.foot-tagline,
.foot-ci-val,
.foot-ci-val a{color:#c8d7e6}                  /* 2.69:1 -> 13.11:1 */

.foot-col ul li a:hover,
.foot-areas-links a:hover,
.foot-ci-val a:hover{color:#ffffff}

.foot-copy,
.foot-lic-row span,
.foot-lic-row span strong{color:#8fa9c7}       /* 1.45:1 -> 7.94:1 */

.foot-phone,
.foot-brand-fallback span{color:var(--brand-on-dark)}
.foot-phone:hover{color:#ffffff}

/* ---- Topbar: the email link had no styling at all and fell back to
        the browser default link blue (#0000EE) on a near-black bar ---- */
.topbar-item a{color:#c8d7e6;text-decoration:none}
.topbar-item a:hover{color:#ffffff;text-decoration:underline}

/* ---- Muted text on dark panels (slate-800 / slate-900) ---- */
.hours-note,
.about-visual-sub,
.llms-faq-a,
.llms-testimony cite,
.on-dark-note{color:#8fa9c7}                   /* 1.54-2.49:1 -> 6.55:1+ */

.lic-lbl{color:#8fa9c7}                        /* 2.22:1 -> 6.55:1 */

/* ---- Brand blue on dark panels ---- */
.topbar-badge.lit,
.eyebrow-accent,
.post-hero .post-cat,
.blog-thumb-icon,
.award-pill-top,
.hours-time,
.llms-signal,
.llms-code{color:var(--brand-on-dark)}         /* 3.04-4.11:1 -> 4.76:1+ */
.topbar-badge.lit{border-color:var(--brand-on-dark)}

/* ---- CTA orange: white text on it was 3.72:1 ---- */
.float-tab,.float-submit{background:#bd5215}   /* -> 4.79:1 */
.float-tab:hover,.float-submit:hover{background:#a84813}

/* ---- Small muted labels on light panels ---- */
.float-direct-label{color:#586e86}

/* ---- Unstyled mailto/tel links fell back to the browser default
        link blue (#0000EE), which fails on every dark panel.
        Inheriting the surrounding text colour guarantees they match
        whatever background they sit on; the underline keeps them
        identifiable as links. ---- */
a[href^="mailto:"]:not([class]),
a[href^="tel:"]:not([class]){color:inherit;text-decoration:underline;text-underline-offset:2px}
a[href^="mailto:"]:not([class]):hover,
a[href^="tel:"]:not([class]):hover{color:#ffffff}

/* ---- Mobile drawer (visible below 900px only, so missed by a
        desktop-width sweep). Brand blue on slate-900 was 3.39:1. ---- */
.mob-drawer-title,
.mob-drawer-parent.active,
.mob-drawer-nav>a.active{color:var(--brand-on-dark)}
