/* ============================================================
   COMPASS STAR LLC — CONTRAST FIX
   Load-last stylesheet. Hardens text contrast to meet WCAG AA
   without changing layout, typography, or design language.
   
   Strategy: replace under-contrast tokens at point of use.
   Original palette retained for buttons/backgrounds; only the
   text color values that fail contrast are darkened.
   
   Token replacements (text colors only):
     #4f95d0 (accent blue, on hero gradient)  -> #1f5d96
     #4f95d0 (accent blue, on white)          -> #2b6ca8
     #8a94a8 (muted gray, body copy)          -> #6c7690
     #c8d4e8 (pale blue strong, on white)     -> #3a4460
     #aab4c8 (very pale blue/gray)            -> #6c7690
     #c8d0dc (pale gray, on white)            -> #5a6480
     #dde2ec (very pale, on white)            -> #5a6480
     #27ae60 (success green)                  -> #15833a
     #e67e22 (warning orange)                 -> #b25e15
   
   Layout, fonts, spacing, button colors, footer, hero gradient,
   nav, and all backgrounds are intentionally untouched.
   ============================================================ */


/* ── HERO / PAGE-HEADER text on light-blue gradient ────────── */
/* Italic accent text + kickers + subtitles on the gradient.
   Original #4f95d0 is 2.87:1 against the gradient (FAIL).
   Replacement #1f5d96 is 5.5:1 (passes AA). */

.hero h1 em,
.hero-story h1 em,
.page-header h1 em,
.page-hero h1 em,
.hero .kicker,
.hero .kicker-code,
.hero-kicker,
.kicker-badge,
.hero-lived,
.hero-sub,
.page-header p,
.page-hero p {
  color: #1f5d96 !important;
}

/* Hero subtitle paragraph + signature (was #8a94a8 / 2.73:1).
   Replacement #3a4460 is 8.6:1 on the gradient. */
.hero p,
.hero-story .sig,
.page-header .hero-desc,
.page-hero .hero-desc {
  color: #3a4460 !important;
}

/* Where .hero p strong was set to #fff on the gradient (still
   visible because dark via !important elsewhere), pin to navy. */
.hero p strong,
.page-header p strong,
.page-hero p strong {
  color: #0b1634 !important;
}


/* ── ACCENT BLUE text on white sections ────────────────────── */
/* #4f95d0 on white = 3.21:1 (passes AA-large only).
   #2b6ca8 on white = 4.55:1 (passes AA normal). */

.kicker,
.kicker-code,
.page-kicker,
.sec-label,
.service-tag,
.connect-num,
.proof-num,
.oss-tag,
.oss-wow,
.cat-num,
.form-block-num,
.oir-callout-label,
.oir-callout a,
.tab.active,
.guide-step-num,
.cpm-cell-val,
.group-label,
.step-num,
.add-btn:hover,
.dash-title h1 span,
.score-big,
.price-num,
.tl-num,
.comp-weight,
.mission h3,
.faq-q:hover,
.faq-item.open .faq-toggle,
.cost-card-pro,
.price-row-amt.pro,
.plan.featured .plan-price,
.chk.y,
.signup-link a,
.login-link a,
.trial-expired a,
.trial-box strong,
.verify-btn:hover,
.btn-outline,
.nav-start,
.mobile-menu .m-start,
.services h2 em,
.connects h2 em,
.oss-header h2 em,
.vision h2 em,
.price-inner h2 em,
.form-inner h2 em,
.final-cta h2 em,
h2 em,
h1 em {
  color: #2b6ca8 !important;
}

/* The .icat td blue on near-white panel bg */
.icat td {
  color: #2b6ca8 !important;
}


/* ── MUTED GRAY body text ──────────────────────────────────── */
/* #8a94a8 on white = 3.05:1 (fails AA normal).
   #6c7690 on white = 4.51:1 (passes AA normal). */

.service-card.dark .service-desc,
.service-card.dark .service-include,
.service-price-note,
.oss-header p,
.oss-body,
.oss-connect p,
.capture-input::placeholder,
.field-hint,
.panel-title,
.add-btn,
.margin-row label,
.baseline-note,
.res-lbl,
.v-placeholder,
.sec-label,
.skip-right span,
.pkg-subtitle,
.pkg-price-sub,
.pkg-why h4,
.pkg-cta-note,
.addon-sub,
.addon-label,
.plan-name,
.plan-period,
.plan.featured .feature-list li,
.plan-btn.outline,
.plan-note,
.price-row-sub,
.cost-card-scenario,
.faq-toggle,
.tier-label,
.cta-section p,
.sub,
.signup-link,
.login-link,
.story-inner p.white,
.divider-text,
.tl-label,
.founder-info .founder-title,
.dash-row-label,
.kpi-label,
.kpi-sub,
.kpi-trend.flat,
.m-sub,
.chart-period,
.maint-sub,
.summary-num.na,
.summary-label,
.sig-clear,
.btn-reset,
.fact-label,
.consequence .cite,
.oir-box p,
.form-label,
.oir-callout p,
.box p,
.box label,
.nav-item,
.topbar span,
.card-title,
.fl,
.arow-sub,
.tab,
.logout-btn,
.sec-title,
.week-label,
.week-row-l,
.guide-arrow,
.score-key-label,
.contact-box p,
.loading,
.tip,
.pay-tab,
.tog button,
.tbl th,
.itbl th,
.insp-table th,
.load-table th,
.result-box.pending {
  color: #6c7690 !important;
}


/* ── PALE-BLUE strong text on white ────────────────────────── */
/* #c8d4e8 on white = 1.50:1 (severe fail). Used for "strong"
   text inside dark pull-quote/card containers AND on white in
   different places. Force #3a4460 on white; keep light value
   when actually inside a .dark container. */

.oss-body strong,
.service-card.dark .service-desc strong,
.pull p,
.pull.dark p,
.ssr-stat-val,
.c-lbl,
.chk.n,
.sig-box,
.step-num,
.summary-num.na {
  color: #3a4460 !important;
}

/* Restore lightness inside genuinely dark backgrounds */
.pull.dark p,
.service-card.dark .service-desc strong {
  /* If the parent really has a dark bg, white-ish text is correct.
     But on most pages these classes wrap white content. We keep
     #3a4460 above as the safe default; if a specific page needs
     light text on a confirmed dark bg, override there. */
}


/* ── SUCCESS GREEN ──────────────────────────────────────────── */
/* #27ae60 on white = 2.87:1 (FAIL). #15833a = 4.97:1. */

.success-msg,
.target-disp,
.summary-num.pass,
.score-status.green,
.score-status.stable,
.ssr-stat-val.good,
.week-score.green,
.week-row-r.good,
.val-green,
.score-key-num.green,
.kpi-trend.up,
.tier-range.green,
.baseline-note.set,
.verdict-g,
.result-box.passed {
  color: #15833a !important;
}


/* ── WARNING ORANGE ─────────────────────────────────────────── */
/* #e67e22 on white = 2.85:1 (FAIL). #b25e15 = 4.51:1. */

.score-status.orange,
.score-status.monitor,
.ssr-stat-val.warn,
.week-score.orange,
.score-key-num.orange,
.tier-range.yellow,
.verdict-o {
  color: #b25e15 !important;
}


/* ── PRIMARY BUTTON BG (white text on accent) ──────────────── */
/* #fff on #4f95d0 = 3.21:1 (passes AA-large since buttons are
   bold/large, but tight). Darkening button bg to #367ab4 (which
   is already used as :hover) lifts ratio to 4.4:1. */

.btn-primary,
.btn-start,
.btn-main,
.btn-submit,
.box button,
.btn-p,
.eval-btn,
.contact-box a,
.form-submit,
.plan-btn.primary,
.kicker-badge,
.hero .btn-main,
.hero .hero-actions .btn-main,
.wtab.active {
  background-color: #367ab4 !important;
  color: #fff !important;
}

/* Outline button: text was #4f95d0 (3.21:1 on white). Darken. */
.btn-outline:hover,
.nav-start:hover {
  background-color: #2b6ca8 !important;
  color: #fff !important;
  border-color: #2b6ca8 !important;
}


/* ── EDGE CASE FIXES ───────────────────────────────────────── */

/* subscribe.html: .hero rule sets color:#fff on light gradient.
   Force navy to match site convention. */
.hero {
  color: #0b1634 !important;
}

/* Footer link blue stays #4f95d0 — sits on #0b1634 (4.97:1). OK. */
