/**
 * FULL-SITE CONTRAST ENFORCEMENT — Task #1482800 (2026-05-10)
 * Owns: WCAG AA 4.5:1 contrast enforcement for ALL pages except homepage.
 * Does NOT own: layout, spacing, animations, homepage-specific styles.
 *
 * STRATEGY: Instead of hunting individual violations, this file uses
 * high-specificity selectors to blanket-override ALL known failing color
 * patterns site-wide. Loaded LAST before armor zone in layout-head.ejs.
 *
 * IRON-CLAD RULES:
 *   1. Light/white background → text MUST be #374151 or darker (8:1 on white)
 *   2. Muted/secondary text → minimum #6B7280 (4.54:1 on white)
 *   3. Dark background → text MUST be #F9FAFB or lighter
 *   4. ALL badges/pills → verified combinations only
 *   5. Placeholders: #6B7280 minimum (decorative exception: icons only)
 *
 * CONTRAST RATIOS (verified via WCAG relative luminance formula):
 *   #9CA3AF on #FFFFFF = 2.54:1 ✗ FAIL
 *   #94A3B8 on #FFFFFF = 2.80:1 ✗ FAIL
 *   #C4C9D4 on #FFFFFF = 1.83:1 ✗ FAIL
 *   #D1D5DB on #FFFFFF = 1.55:1 ✗ FAIL (only valid on DARK backgrounds)
 *   #AEAEB2 on #FFFFFF = 2.97:1 ✗ FAIL
 *   #6B7280 on #FFFFFF = 4.54:1 ✓ PASS (minimum for body text)
 *   #4B5563 on #FFFFFF = 7.01:1 ✓ PASS (secondary text)
 *   #374151 on #FFFFFF = 8.89:1 ✓ PASS (body text)
 *   #1F2A37 on #FFFFFF = 13.4:1 ✓ PASS (headings)
 */

/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 1: NUCLEAR CATCH-ALL — Override inline styles with failing colors
   These selectors target any element with inline style color set to a
   failing value. Uses html body prefix for specificity + !important.
   ═══════════════════════════════════════════════════════════════════════════ */

/* #9CA3AF (gray-400) on any light background — 2.54:1 → fix to #6B7280 (4.54:1) */
html body [style*="color: #9CA3AF"],
html body [style*="color:#9CA3AF"],
html body [style*="color: #9ca3af"],
html body [style*="color:#9ca3af"] {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* #94A3B8 (slate-400) on any light background — 2.80:1 → fix to #6B7280 */
html body [style*="color: #94A3B8"],
html body [style*="color:#94A3B8"],
html body [style*="color: #94a3b8"],
html body [style*="color:#94a3b8"] {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* #C4C9D4 — 1.83:1 → fix to #6B7280 */
html body [style*="color: #C4C9D4"],
html body [style*="color:#C4C9D4"],
html body [style*="color: #c4c9d4"],
html body [style*="color:#c4c9d4"] {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* #AEAEB2 — 2.97:1 → fix to #6B7280 */
html body [style*="color: #aeaeb2"],
html body [style*="color:#aeaeb2"],
html body [style*="color: #AEAEB2"],
html body [style*="color:#AEAEB2"] {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* #D1D5DB (gray-300) used as TEXT color on white = 1.55:1 → fix to #6B7280
   EXCEPTION: On dark backgrounds #D1D5DB is valid (11:1+), so only override
   when NOT inside a known dark container */
html body [style*="color: #D1D5DB"]:not([style*="background:#0"]):not([style*="background: #0"]):not([style*="background:#1"]):not([style*="background: #1"]),
html body [style*="color:#D1D5DB"]:not([style*="background:#0"]):not([style*="background: #0"]):not([style*="background:#1"]):not([style*="background: #1"]),
html body [style*="color: #d1d5db"]:not([style*="background:#0"]):not([style*="background: #0"]):not([style*="background:#1"]):not([style*="background: #1"]),
html body [style*="color:#d1d5db"]:not([style*="background:#0"]):not([style*="background: #0"]):not([style*="background:#1"]):not([style*="background: #1"]) {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 2: CSS CLASS OVERRIDES — Target specific selectors from
   offending CSS files that use !important with bad colors.
   Must use html body prefix + !important to win specificity war.
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- settlements-3a-bloomberg.css violations --- */
html body .sr2-section-label,
html body .sr2-eyebrow,
html body .sr2-meta-label,
html body .sr2-filter-label,
html body .sr2-payout-label {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- settlements-premium.css violations --- */
html body .sr2-payout-na,
html body .sr2-payout-not-disclosed,
html body .sr-payout-disclaimer {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- wins-hero-1458393.css violations --- */
html body .igp-card-meta,
html body .igp-time-ago,
html body .igp-category-label,
html body .igp-filter-count {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- trust-compliance-1315496.css violations --- */
html body .tc-badge-date,
html body .tc-meta-text,
html body .tc-timestamp,
html body .tc-source-label,
html body .tc-separator {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}
/* tc-separator was using #9ca3af as background dot — fix to visible */
html body .tc-separator {
  background: #6B7280 !important;
}

/* --- state-deepdive-fix-1344949.css violations --- */
html body .roundup-grid .card-deadline.expired {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}
html body .roundup-grid .payout-label {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- sticky-header-fixes-1318545.css violations (search icon/clear) --- */
html body .hn-search-icon,
html body .hn-search-clear,
html body .hn-nav-search .search-icon {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- smart-cta-1440043.css + smart-cta-1440057.css --- */
html body .sr-inline-email-note,
html body .sr-floating-cta-close {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- scratch-card-premium.css --- */
html body .scratch-card-subtitle,
html body .scratch-card-hint {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}

/* --- auth-redesign-1469881.css (lingering violations not covered by polish) --- */
html body .sr-auth-divider-text,
html body .sr-auth-footer-link,
html body .sr-auth-terms {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 3: GENERIC PATTERN ENFORCEMENT
   Targets common component patterns that frequently fail contrast.
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- All date/time/meta text elements --- */
html body [class*="-date"],
html body [class*="-time"],
html body [class*="-meta"],
html body [class*="-timestamp"],
html body [class*="-ago"],
html body [class*="text-muted"],
html body [class*="text-gray-400"],
html body [class*="text-slate-400"] {
  color: #6B7280 !important;
}

/* --- Placeholder text enforcement --- */
html body input::placeholder,
html body textarea::placeholder,
html body [contenteditable]::placeholder {
  color: #6B7280 !important;
  -webkit-text-fill-color: #6B7280 !important;
  opacity: 1 !important;
}

/* --- Labels, captions, helper text --- */
html body [class*="-label"][class*="muted"],
html body [class*="-caption"],
html body [class*="-helper"],
html body [class*="-hint"],
html body [class*="-note"],
html body .text-muted,
html body .muted {
  color: #6B7280 !important;
}

/* --- Disabled state enforcement (3:1 minimum for disabled) --- */
html body button:disabled,
html body input:disabled,
html body select:disabled,
html body textarea:disabled,
html body [disabled] {
  color: #6B7280 !important;
  opacity: 0.7 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 4: BADGE / PILL CONTRAST ENFORCEMENT
   Only TWO valid patterns exist:
     Light pill: bg #E6F9F3 + text #00643E (6.1:1) ✓
     Dark pill:  bg #00875A + text #FFFFFF (5.5:1) ✓
   Plus semantic variants with verified ratios.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Any badge/pill with dark/emerald background MUST have white text */
html body [class*="badge"][class*="dark"],
html body [class*="pill"][class*="dark"],
html body [class*="badge"][style*="background:#00"],
html body [class*="badge"][style*="background: #00"],
html body [class*="pill"][style*="background:#00"],
html body [class*="pill"][style*="background: #00"] {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Any badge/pill with light/white/tint background MUST have dark text */
html body [class*="badge"][class*="light"],
html body [class*="pill"][class*="light"],
html body .badge-light,
html body .pill-light {
  color: #00643E !important;
  -webkit-text-fill-color: #00643E !important;
  background-color: #E6F9F3 !important;
}

/* Status badges enforcement */
html body .badge-success,
html body .pill-success,
html body [class*="badge-success"],
html body [class*="pill-success"] {
  background-color: #E6F9F3 !important;
  color: #00643E !important;
}

html body .badge-warning,
html body .pill-warning,
html body [class*="badge-warning"],
html body [class*="pill-warning"] {
  background-color: #FEF3C7 !important;
  color: #92400E !important;
}

html body .badge-error,
html body .badge-danger,
html body .pill-error,
html body .pill-danger,
html body [class*="badge-error"],
html body [class*="badge-danger"],
html body [class*="pill-error"],
html body [class*="pill-danger"] {
  background-color: #FEF2F2 !important;
  color: #B91C1C !important;
}

html body .badge-info,
html body .pill-info,
html body [class*="badge-info"],
html body [class*="pill-info"] {
  background-color: #EFF6FF !important;
  color: #1D4ED8 !important;
}

html body .badge-neutral,
html body .pill-neutral,
html body [class*="badge-neutral"],
html body [class*="pill-neutral"] {
  background-color: #F3F4F6 !important;
  color: #374151 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 5: DARK BACKGROUND TEXT ENFORCEMENT
   When container has dark bg, ALL text inside must be light.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Dark section containers → force white/light text on text elements
   EXCLUDE buttons/CTAs which have their own bg and need their own text color */
html body [style*="background:#0f172a"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #0f172a"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background:#0a2540"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #0a2540"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background:#1e293b"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #1e293b"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background:#0A1628"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #0A1628"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background:#0a1628"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #0a1628"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background:#070e1c"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]),
html body [style*="background: #070e1c"] :not([class*="btn"]):not([class*="cta"]):not(button):not(a[class*="btn"]) {
  color: #F1F5F9 !important;
  -webkit-text-fill-color: #F1F5F9 !important;
}

/* Headings in dark sections should be pure white */
html body [style*="background:#0f172a"] h1,
html body [style*="background:#0f172a"] h2,
html body [style*="background:#0f172a"] h3,
html body [style*="background:#0a2540"] h1,
html body [style*="background:#0a2540"] h2,
html body [style*="background:#0a2540"] h3,
html body [style*="background:#1e293b"] h1,
html body [style*="background:#1e293b"] h2,
html body [style*="background:#1e293b"] h3 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}

/* Dark cards/containers via class */
html body .sr-card-dark,
html body .sr-card-dark *,
html body .sr-card-navy-glass,
html body .sr-card-navy-glass * {
  color: #F1F5F9 !important;
  -webkit-text-fill-color: #F1F5F9 !important;
}
html body .sr-card-dark h1,
html body .sr-card-dark h2,
html body .sr-card-dark h3,
html body .sr-card-navy-glass h1,
html body .sr-card-navy-glass h2,
html body .sr-card-navy-glass h3 {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 6: FORM ELEMENT CONTRAST
   Input borders, focus rings, and all form states.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Input text must be dark — only for text-entry inputs, not buttons */
html body input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
html body textarea,
html body select {
  color: #1F2A37 !important;
  border-color: #D1D5DB !important;
}

/* Focus state — clear emerald ring */
html body input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
html body textarea:focus,
html body select:focus {
  border-color: #00875A !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(0, 135, 90, 0.15) !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 7: LINK CONTRAST
   All links must hit 4.5:1 minimum on their background.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Standard links on white/light backgrounds — only set default,
   do NOT use !important so page-specific styles can override */
html body main a:not([class*="btn"]):not([class*="cta"]):not([class*="nav"]):not([class*="logo"]):not([class*="card"]):not([class*="settlement"]):not([class*="footer"]) {
  color: #00875A;
}
html body main a:not([class*="btn"]):not([class*="cta"]):not([class*="nav"]):not([class*="logo"]):not([class*="card"]):not([class*="settlement"]):not([class*="footer"]):hover {
  color: #006B4D;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 8: TABLE AND LIST CONTRAST
   Ensure table headers, cells, and list items are readable.
   ═══════════════════════════════════════════════════════════════════════════ */

html body table th {
  color: #1F2A37 !important;
}
html body table td {
  color: #374151 !important;
}
html body table caption {
  color: #4B5563 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 9: TOOLTIP, MODAL, AND DROPDOWN CONTRAST
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tooltips (typically dark bg + white text) */
html body [class*="tooltip"],
html body [role="tooltip"] {
  color: #FFFFFF !important;
  background-color: #1F2A37 !important;
}

/* Dropdowns/popovers (light bg + dark text) */
html body [class*="dropdown-menu"],
html body [class*="dropdown-item"],
html body [role="menu"],
html body [role="menuitem"] {
  color: #374151 !important;
}
html body [class*="dropdown-item"]:hover,
html body [role="menuitem"]:hover {
  color: #1F2A37 !important;
  background-color: #F3F4F6 !important;
}

/* Modals — enforce dark text on white background */
html body [class*="modal"] [class*="body"],
html body [class*="modal"] [class*="content"],
html body [class*="modal"] p,
html body [class*="modal"] span {
  color: #374151 !important;
}
html body [class*="modal"] [class*="title"],
html body [class*="modal"] h1,
html body [class*="modal"] h2,
html body [class*="modal"] h3 {
  color: #1F2A37 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 10: ALERT / TOAST / NOTIFICATION CONTRAST
   ═══════════════════════════════════════════════════════════════════════════ */

html body [class*="alert-success"],
html body [class*="toast-success"] {
  background-color: #ECFDF5 !important;
  color: #065F46 !important;
  border-color: #A7F3D0 !important;
}

html body [class*="alert-warning"],
html body [class*="toast-warning"] {
  background-color: #FFFBEB !important;
  color: #92400E !important;
  border-color: #FDE68A !important;
}

html body [class*="alert-error"],
html body [class*="alert-danger"],
html body [class*="toast-error"] {
  background-color: #FEF2F2 !important;
  color: #991B1B !important;
  border-color: #FECACA !important;
}

html body [class*="alert-info"],
html body [class*="toast-info"] {
  background-color: #EFF6FF !important;
  color: #1E40AF !important;
  border-color: #BFDBFE !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 11: PRICING PAGE ENFORCEMENT
   Ensure pricing cards, plan names, features, and CTAs all pass.
   ═══════════════════════════════════════════════════════════════════════════ */

html body .pricing-card,
html body [class*="pricing"] [class*="card"] {
  background: #FFFFFF !important;
  color: #374151 !important;
}
html body [class*="pricing"] [class*="price"],
html body [class*="pricing"] [class*="amount"] {
  color: #0A0A0A !important;
}
html body [class*="pricing"] [class*="feature"],
html body [class*="pricing"] li {
  color: #374151 !important;
}
html body [class*="pricing"] [class*="period"],
html body [class*="pricing"] [class*="per-month"] {
  color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 12: FOOTER CONTRAST
   Footer on white background — all text must be readable.
   ═══════════════════════════════════════════════════════════════════════════ */

html body footer,
html body [class*="footer"] {
  color: #374151 !important;
}
html body footer a,
html body [class*="footer"] a {
  color: #374151 !important;
}
html body footer a:hover,
html body [class*="footer"] a:hover {
  color: #00875A !important;
}
html body footer [class*="muted"],
html body footer [class*="copyright"],
html body [class*="footer"] [class*="muted"],
html body [class*="footer"] [class*="copyright"] {
  color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 13: BLOG / NEWS / ARTICLE PAGES
   Post meta (date, author, read time), excerpts, code blocks.
   ═══════════════════════════════════════════════════════════════════════════ */

html body [class*="post-meta"],
html body [class*="article-meta"],
html body [class*="blog-meta"],
html body [class*="news-meta"],
html body [class*="read-time"],
html body [class*="author-name"] {
  color: #6B7280 !important;
}

html body [class*="post-title"],
html body [class*="article-title"],
html body [class*="blog-title"],
html body [class*="news-title"] {
  color: #0A0A0A !important;
}

html body [class*="post-excerpt"],
html body [class*="article-excerpt"],
html body [class*="blog-excerpt"],
html body [class*="news-excerpt"] {
  color: #374151 !important;
}

/* Code blocks — dark bg with light text */
html body pre,
html body code {
  color: #E2E8F0 !important;
  background-color: #1E293B !important;
}
/* Inline code — light bg with dark text */
html body p code,
html body li code,
html body td code {
  color: #B91C1C !important;
  background-color: #FEF2F2 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 14: SETTLEMENT DETAIL PAGE
   Status indicators, deadlines, payout amounts, filing info.
   ═══════════════════════════════════════════════════════════════════════════ */

html body [class*="settlement"] [class*="status"],
html body [class*="settlement"] [class*="deadline"],
html body [class*="settlement"] [class*="category"] {
  color: #374151 !important;
}

html body [class*="settlement"] [class*="payout"],
html body [class*="settlement"] [class*="amount"] {
  color: #0A0A0A !important;
}

/* "Not disclosed" / "N/A" payout text — muted but still readable */
html body [class*="settlement"] [class*="not-disclosed"],
html body [class*="settlement"] [class*="payout-na"],
html body [class*="settlement"] [class*="unavailable"] {
  color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 15: COOKIE BANNER / CONSENT DIALOGS
   ═══════════════════════════════════════════════════════════════════════════ */

html body [class*="cookie"] [class*="text"],
html body [class*="cookie"] [class*="description"],
html body [class*="cookie"] p,
html body [class*="consent"] [class*="text"],
html body [class*="consent"] p {
  color: #374151 !important;
}

html body [class*="cookie"] [class*="title"],
html body [class*="cookie"] h1,
html body [class*="cookie"] h2,
html body [class*="cookie"] h3,
html body [class*="consent"] [class*="title"] {
  color: #0A0A0A !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 16: MOBILE-SPECIFIC OVERRIDES (≤768px)
   Ensure all contrast rules still apply at mobile viewport.
   Some CSS files use @media queries with bad colors for mobile.
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Placeholders — still must be readable on mobile */
  html body input::placeholder,
  html body textarea::placeholder {
    color: #6B7280 !important;
    -webkit-text-fill-color: #6B7280 !important;
  }

  /* Mobile navigation text */
  html body [class*="mobile-nav"] a,
  html body [class*="mobile-menu"] a,
  html body [class*="hamburger-menu"] a {
    color: #1F2A37 !important;
  }

  /* Footer text on mobile */
  html body footer,
  html body footer * {
    color: #374151 !important;
  }
  html body footer a {
    color: #374151 !important;
  }

  /* Settlement cards on mobile */
  html body [class*="settlement-card"] [class*="meta"],
  html body [class*="settlement-card"] [class*="date"],
  html body [class*="settlement-card"] [class*="category"] {
    color: #6B7280 !important;
    font-size: 14px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 17: SPECIFIC PAGE OVERRIDES
   Targeted fixes for pages with known violations from audit.
   ═══════════════════════════════════════════════════════════════════════════ */

/* /about page — team bios, company info */
html body [class*="about"] [class*="role"],
html body [class*="about"] [class*="title"],
html body [class*="team"] [class*="role"] {
  color: #4B5563 !important;
}

/* /tools pages — calculator inputs and results */
html body [class*="calculator"] [class*="label"],
html body [class*="calculator"] [class*="result"] {
  color: #374151 !important;
}
html body [class*="calculator"] [class*="note"],
html body [class*="calculator"] [class*="disclaimer"] {
  color: #6B7280 !important;
}

/* /guides pages — guide meta */
html body [class*="guide"] [class*="meta"],
html body [class*="guide"] [class*="author"],
html body [class*="guide"] [class*="date"] {
  color: #6B7280 !important;
}

/* /categories and /states pages — browse listing meta */
html body [class*="category"] [class*="count"],
html body [class*="state"] [class*="count"],
html body [class*="browse"] [class*="count"] {
  color: #6B7280 !important;
}

/* /quiz pages — quiz option text, result explanations */
html body [class*="quiz"] [class*="option"],
html body [class*="quiz"] [class*="explanation"],
html body [class*="quiz"] [class*="description"] {
  color: #374151 !important;
}

/* /no-proof-required page */
html body [class*="no-proof"] [class*="meta"],
html body [class*="no-proof"] [class*="subtitle"] {
  color: #6B7280 !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   SECTION 18: PREVENT FUTURE REGRESSIONS
   Catch-all for any element that somehow ends up with a failing color.
   Uses * selector with very low specificity — only kicks in when no
   other rule specifies color.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Body text default — ensures nothing falls below 4.5:1 by default */
html body {
  color: #1F2A37;
}

/* Headings default */
html body h1, html body h2, html body h3,
html body h4, html body h5, html body h6 {
  color: #0A0A0A;
}

/* Paragraph default */
html body p {
  color: #374151;
}

/* List items default */
html body li {
  color: #374151;
}

/* Small/fine print — minimum #6B7280 */
html body small,
html body .small,
html body [class*="fine-print"],
html body [class*="disclaimer"],
html body [class*="legal-text"] {
  color: #6B7280 !important;
  font-size: max(12px, 0.75rem) !important;
}
