/**
 * MOBILE CONTRAST + TYPOGRAPHY — Task #1327415
 * WCAG AA compliance: 4.5:1 for body text, 3:1 for large text (18pt+ or 14pt+ bold)
 * Targets: ALL pages at 375px and 428px mobile breakpoints
 * MUST load LAST — after ALL other stylesheets including contrast-final-1315473.css
 * and mobile-premium-1320165.css. Every rule uses !important for cascade authority.
 *
 * Sections:
 *   1. Global text contrast enforcement (all pages)
 *   2. Global mobile typography (font sizes, line heights)
 *   3. Global touch target enforcement (44px minimum)
 *   4. Homepage-specific fixes
 *   5. Settlement browse page fixes
 *   6. Settlement detail page fixes
 *   7. Pricing page fixes
 *   8. Auth pages fixes (login/signup)
 *   9. Quiz page fixes
 *  10. Filing flow fixes
 *  11. Footer fixes
 *  12. Header/nav mobile fixes
 *  13. Inline style overrides (attribute selectors)
 */

/* ═══════════════════════════════════════════════════════════
   1. GLOBAL TEXT CONTRAST — Nuclear enforcement on ALL pages
   Override every known low-contrast color to WCAG AA passing
   ═══════════════════════════════════════════════════════════ */

/* --- #6b7280 → #4b5563 (gray-600 → gray-700: 7.5:1 on white) --- */
[style*="color:#6b7280"],
[style*="color: #6b7280"],
[style*="color:#6B7280"],
[style*="color: #6B7280"] {
  color: #4b5563 !important;
  -webkit-text-fill-color: #4b5563 !important;
}

/* --- #94a3b8 → #475569 (slate-400 → slate-600: 7.0:1 on white) --- */
[style*="color:#94a3b8"],
[style*="color: #94a3b8"],
[style*="color:#94A3B8"],
[style*="color: #94A3B8"] {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* --- #9ca3af → #4b5563 (gray-400 → gray-700: 7.5:1 on white) --- */
[style*="color:#9ca3af"],
[style*="color: #9ca3af"],
[style*="color:#9CA3AF"],
[style*="color: #9CA3AF"] {
  color: #4b5563 !important;
  -webkit-text-fill-color: #4b5563 !important;
}

/* --- #aeaeb2 → #636366 (iOS gray → accessible gray: 5.0:1) --- */
[style*="color:#aeaeb2"],
[style*="color: #aeaeb2"] {
  color: #636366 !important;
  -webkit-text-fill-color: #636366 !important;
}

/* --- #cbd5e1 on dark backgrounds → #e2e8f0 (slate-300 → slate-200: 10:1 on navy) --- */
[style*="color:#cbd5e1"],
[style*="color: #cbd5e1"] {
  color: #e2e8f0 !important;
  -webkit-text-fill-color: #e2e8f0 !important;
}

/* --- Low opacity white text → higher opacity for readability --- */
[style*="color:rgba(255,255,255,0.3)"],
[style*="color: rgba(255,255,255,0.3)"],
[style*="color:rgba(255,255,255,0.35)"],
[style*="color: rgba(255,255,255,0.35)"],
[style*="color:rgba(255, 255, 255, 0.3)"],
[style*="color:rgba(255, 255, 255, 0.35)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

[style*="color:rgba(255,255,255,0.45)"],
[style*="color: rgba(255,255,255,0.45)"],
[style*="color:rgba(255, 255, 255, 0.45)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

[style*="color:rgba(255,255,255,0.5)"],
[style*="color: rgba(255,255,255,0.5)"],
[style*="color:rgba(255, 255, 255, 0.5)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

[style*="color:rgba(255,255,255,0.55)"],
[style*="color: rgba(255,255,255,0.55)"],
[style*="color:rgba(255, 255, 255, 0.55)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

[style*="color:rgba(255,255,255,0.6)"],
[style*="color: rgba(255,255,255,0.6)"],
[style*="color:rgba(255, 255, 255, 0.6)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

[style*="color:rgba(255,255,255,0.7)"],
[style*="color: rgba(255,255,255,0.7)"],
[style*="color:rgba(255, 255, 255, 0.7)"] {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

/* --- Low opacity green text (DNA section) → solid green --- */
[style*="color:rgba(110,231,183,0.5)"],
[style*="color: rgba(110,231,183,0.5)"],
[style*="color:rgba(110, 231, 183, 0.5)"] {
  color: #34d399 !important;
  -webkit-text-fill-color: #34d399 !important;
}

/* --- CSS class-based muted text overrides --- */
.text-muted,
.text-secondary,
.text-gray-400,
.text-gray-500,
.text-slate-400,
.text-slate-500 {
  color: #4b5563 !important;
  -webkit-text-fill-color: #4b5563 !important;
}

/* ═══════════════════════════════════════════════════════════
   2. GLOBAL MOBILE TYPOGRAPHY — Font sizes, line heights
   Body text ≥ 16px, no iOS auto-zoom, line-height ≥ 1.5
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Base body text */
  body,
  p,
  li,
  td,
  th,
  dd,
  dt {
    font-size: max(16px, 1rem) !important;
    line-height: 1.55 !important;
  }

  /* Headings — already large text, ensure contrast at 3:1 */
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.25 !important;
  }

  /* Prevent iOS auto-zoom on inputs — must be ≥ 16px */
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="number"],
  input[type="search"],
  input[type="url"],
  select,
  textarea {
    font-size: 16px !important;
  }

  /* Small text overrides — enforce 13px minimum for labels/badges,
     14px minimum for readable content */
  small,
  .small,
  figcaption,
  caption {
    font-size: max(13px, 0.8125rem) !important;
  }

  /* Override dangerous inline font-size:0.7rem and 0.72rem */
  [style*="font-size:0.7rem"],
  [style*="font-size: 0.7rem"],
  [style*="font-size:0.72rem"],
  [style*="font-size: 0.72rem"] {
    font-size: 0.8125rem !important; /* 13px */
  }

  /* Override inline font-size:0.75rem (12px → 14px) */
  [style*="font-size:0.75rem"],
  [style*="font-size: 0.75rem"],
  [style*="font-size:12px"],
  [style*="font-size: 12px"] {
    font-size: 0.875rem !important; /* 14px */
  }

  /* Override inline font-size:0.78rem, 0.77rem (12.5px → 14px) */
  [style*="font-size:0.78rem"],
  [style*="font-size: 0.78rem"],
  [style*="font-size:0.77rem"],
  [style*="font-size: 0.77rem"] {
    font-size: 0.875rem !important; /* 14px */
  }

  /* Override inline font-size:0.8rem (12.8px → 14px) */
  [style*="font-size:0.8rem"],
  [style*="font-size: 0.8rem"],
  [style*="font-size:13px"],
  [style*="font-size: 13px"] {
    font-size: 0.875rem !important; /* 14px */
  }

  /* Override inline font-size:0.82rem (13.1px → 14px) */
  [style*="font-size:0.82rem"],
  [style*="font-size: 0.82rem"] {
    font-size: 0.875rem !important; /* 14px */
  }

  /* Override inline font-size:0.85rem (13.6px → 14px for body text) */
  [style*="font-size:0.85rem"],
  [style*="font-size: 0.85rem"] {
    font-size: 0.875rem !important; /* 14px */
  }

  /* Override inline font-size:0.65rem (10.4px → 13px) */
  [style*="font-size:0.65rem"],
  [style*="font-size: 0.65rem"] {
    font-size: 0.8125rem !important; /* 13px */
  }
}

/* ═══════════════════════════════════════════════════════════
   3. GLOBAL TOUCH TARGET ENFORCEMENT — 44px × 44px minimum
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* All interactive elements */
  a[href],
  button,
  [role="button"],
  input[type="submit"],
  input[type="button"],
  input[type="reset"],
  select {
    min-height: 44px !important;
    min-width: 44px !important;
  }

  /* Specific close/dismiss buttons — ensure tappable */
  [aria-label="Close"],
  [aria-label="Dismiss"],
  [aria-label="close"],
  [aria-label="dismiss"] {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Links in text content need adequate padding for touch */
  article a,
  .content a,
  p a {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   4. HOMEPAGE — specific contrast + typography fixes
   ═══════════════════════════════════════════════════════════ */

/* Hero section text */
.sr-hero__subtitle,
.hero-subtitle,
[class*="hero-sub"] {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}

/* Stats/social proof numbers on white bg */
.srd-pill,
.sr-stat-label,
.sr-social-proof-text {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Missed claims / settlement count labels */
.sr-mc-label,
.sr-mc-sub,
[class*="missed-claim"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Card meta text — deadlines, categories */
.sr-card__meta,
.sr-card__desc,
.settlement-meta {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Countdown timer labels */
.sr-countdown-label,
.countdown-label,
[class*="timer-label"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Feature stat labels */
[class*="feature-stat-label"],
[class*="stat-label"],
.sr-feat-label {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Section headers/labels */
[class*="section-label"],
[class*="sec-label"],
.sr-section-label {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Settlement drop section */
.sr-drop-label,
[class*="drop-label"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

@media (max-width: 768px) {
  /* Home page cards — enforce readable sizes */
  .sr-card__title {
    font-size: 1rem !important;
    line-height: 1.4 !important;
  }

  .sr-card__company {
    font-size: 0.875rem !important; /* 14px */
  }

  .sr-card__payout {
    font-size: 1rem !important;
    font-weight: 700 !important;
  }

  .sr-card__deadline {
    font-size: 0.875rem !important; /* 14px */
  }
}

/* ═══════════════════════════════════════════════════════════
   5. SETTLEMENT BROWSE (/settlements) — contrast fixes
   ═══════════════════════════════════════════════════════════ */

/* Browse page filter labels */
.sr-filter-label,
.sr-browse-label,
.browse-filter-text {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Result count / pagination text */
.sr-result-count,
.sr-pagination-text,
[class*="result-count"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Category badges */
.sr-cat-badge,
.category-badge,
[class*="cat-badge"] {
  color: #374151 !important;
}

/* Sort/filter dropdowns */
@media (max-width: 768px) {
  .sr-filter-select,
  .sr-sort-select,
  select.browse-filter {
    font-size: 16px !important;
    min-height: 44px !important;
    color: #1e293b !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   6. SETTLEMENT DETAIL — contrast fixes
   ═══════════════════════════════════════════════════════════ */

/* Detail page meta text */
.sd-meta,
.sd-label,
.settlement-detail-meta,
[class*="detail-meta"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Detail page description/body text */
.sd-body,
.sd-description,
.settlement-body,
[class*="settlement-desc"] {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

/* Pro upsell text on detail page */
.sd-pro-banner,
.sd-pro-text,
[class*="pro-upsell"] p,
[class*="pro-banner"] p {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Source citation links */
.sd-source-link,
.source-ref-link,
[class*="source-link"] {
  color: #2563eb !important;
}

/* Legal disclaimer text */
.sd-disclaimer,
[class*="disclaimer"] {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* "Did You Know?" cards */
.dyk-card p,
.dyk-card-text,
[class*="did-you-know"] p {
  color: #1e293b !important;
}

@media (max-width: 768px) {
  /* Settlement detail — mobile readable sizes */
  .sd-body p,
  .settlement-body p,
  .settlement-description p {
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  .sd-payout-amount,
  .settlement-payout-amount {
    font-size: 1.25rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   7. PRICING PAGE — contrast + typography
   ═══════════════════════════════════════════════════════════ */

/* Pricing plan description text */
.pr-plan-tagline,
.pr-plan-desc,
.pr-billing-note {
  color: #475569 !important; /* slate-600: 7.0:1 */
  -webkit-text-fill-color: #475569 !important;
}

/* Pricing feature list items */
.pr-feature-item,
.pr-feature-text {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

/* Pricing section subtitles */
.pr-section-sub,
.pr-subtitle {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Plan labels and names */
.pr-plan-label,
.pr-plan-name {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

/* DIY comparison table */
@media (max-width: 768px) {
  .pr-diy-table td,
  .pr-diy-table th {
    font-size: 0.875rem !important; /* 14px — was 0.8rem (12.8px) */
    padding: 0.75rem 0.5rem !important;
    color: #1e293b !important;
  }

  .pr-diy-table td.td-feature {
    font-size: 0.875rem !important; /* 14px — was 0.8rem */
  }

  .pr-diy-table th {
    color: #1e293b !important;
    opacity: 1 !important; /* was 0.7 */
  }

  /* Pricing cards — ensure readable */
  .pr-plan-price,
  .pr-price-amount {
    font-size: 1.5rem !important;
    color: #0f172a !important;
  }

  .pr-cta--blue,
  .pr-cta--purple,
  .pr-cta--gold {
    min-height: 48px !important; /* Larger touch target for CTAs */
    font-size: 1rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   8. AUTH PAGES — login/signup contrast + typography
   ═══════════════════════════════════════════════════════════ */

/* Auth form labels */
.auth-label,
.auth-form label,
.login-label,
.signup-label,
[class*="auth-"] label {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
  font-size: 0.9375rem !important; /* 15px */
}

/* Auth helper text */
.auth-helper,
.auth-hint,
.auth-form .helper-text,
[class*="auth-"] .text-sm {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Auth links (forgot password, switch to signup, etc.) */
.auth-link,
.auth-form a,
[class*="auth-"] a:not([class*="btn"]) {
  color: #2563eb !important;
}

/* Auth error messages */
.auth-error,
.auth-form .error,
[class*="auth-"] .error {
  color: #dc2626 !important;
  -webkit-text-fill-color: #dc2626 !important;
}

/* Auth submit buttons */
@media (max-width: 768px) {
  .auth-form button[type="submit"],
  .auth-btn,
  [class*="auth-"] .btn-primary {
    min-height: 48px !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
  }

  .auth-form input,
  .auth-form select {
    min-height: 48px !important;
    font-size: 16px !important;
    color: #1e293b !important;
  }

  /* Placeholder text in auth forms */
  .auth-form input::placeholder {
    color: #64748b !important; /* 4.6:1 on white — passes AA */
  }
}

/* ═══════════════════════════════════════════════════════════
   9. QUIZ PAGE — contrast + typography
   ═══════════════════════════════════════════════════════════ */

/* Quiz progress label */
.qz-progress-label {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Quiz brand category label */
.qz-brand-cat-label {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Quiz comparison table */
@media (max-width: 768px) {
  .qz-compare-table th {
    font-size: 0.8125rem !important; /* 13px — was 0.75rem (12px) */
    color: #1e293b !important;
  }

  .qz-compare-table td {
    font-size: 0.875rem !important; /* 14px — was 0.78rem (12.5px) */
    color: #1e293b !important;
  }
}

/* Quiz CTA buttons */
.qz-cta,
[class*="qz-"][class*="-cta"] {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

@media (max-width: 768px) {
  .qz-cta,
  [class*="qz-"][class*="-cta"] {
    font-size: 0.9375rem !important; /* 15px — was 0.82rem (13px) */
    min-height: 48px !important;
  }
}

/* Quiz badge text */
[class*="qz-"][class*="-badge"] {
  font-size: max(13px, 0.8125rem) !important;
}

/* Quiz free link */
.qz-free-link {
  font-size: 0.875rem !important; /* 14px — was 0.75rem */
  color: #2563eb !important;
}

/* Quiz upgrade nudge subtitle */
.qz-upgrade-nudge-sub {
  color: #e2e8f0 !important; /* slate-200: high contrast on dark */
  -webkit-text-fill-color: #e2e8f0 !important;
}

/* Quiz email capture */
.qz-email-capture p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

@media (max-width: 768px) {
  .qz-email-capture p {
    font-size: 0.875rem !important; /* 14px — was 0.77rem */
  }
}

/* Quiz bundle CTA */
.qz-bundle-cta {
  font-size: 0.9375rem !important; /* 15px */
}

/* ═══════════════════════════════════════════════════════════
   10. FILING FLOW — contrast + typography
   ═══════════════════════════════════════════════════════════ */

/* Filing flow pro banner subtitle */
.ff-pro-banner-sub {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Filing flow feature text */
.gfl-feature-text p,
.gfl-feature-text,
.ff-feature-desc {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Filing comparison table */
@media (max-width: 768px) {
  .gfl-compare-table td,
  .gfl-compare-table th {
    font-size: 0.875rem !important; /* 14px — was 0.7-0.8rem */
    padding: 0.75rem 0.5rem !important;
    color: #1e293b !important;
  }
}

/* Filing divider / helper text */
.ff-divider-text,
.ff-helper,
.gfl-helper {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Filing pricing subtext */
.ff-price-sub,
.gfl-price-sub {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* Filing step indicators */
.ff-step-label,
.gfl-step-label {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

@media (max-width: 768px) {
  .ff-pro-banner-sub,
  .gfl-feature-text p {
    font-size: 0.875rem !important; /* 14px — was 0.8rem */
  }
}

/* ═══════════════════════════════════════════════════════════
   11. FOOTER — contrast + typography + touch targets
   ═══════════════════════════════════════════════════════════ */

/* Footer text — ensure readable on white/light bg */
.sr-ramsey-footer,
.sr-ramsey-footer p,
.sr-ft-about-brand,
.sr-ft-copy,
.sr-ft-address {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Footer nav links */
.sr-ft-nav-col a,
.sr-ft-legal a,
.sr-ft-terms-links a,
.sr-ramsey-footer a {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

.sr-ft-nav-col a:hover,
.sr-ramsey-footer a:hover {
  color: #2563eb !important;
  -webkit-text-fill-color: #2563eb !important;
}

/* Footer column headings */
.sr-ft-nav-title {
  color: #111827 !important;
  -webkit-text-fill-color: #111827 !important;
  font-weight: 700 !important;
}

/* Footer email capture labels */
.sr-ft-email-headline,
.sr-ft-email-sub {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Footer trust badges text */
.sr-ft-trust-item,
.sr-ft-trust-text {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

/* Footer legal/copyright — was 0.72rem */
@media (max-width: 768px) {
  .sr-ft-copy,
  .sr-ft-address,
  .sr-ft-terms-links a {
    font-size: 0.8125rem !important; /* 13px — was 0.72rem (11.5px) */
  }

  /* Footer links touch targets */
  .sr-ft-nav-col a,
  .sr-ft-legal a,
  .sr-ft-terms-links a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }

  .sr-ft-email-input {
    font-size: 16px !important;
    min-height: 44px !important;
  }
}

/* Attorney badge text — was 0.72rem */
[class*="attorney-badge"],
.sr-ft-attorney-badge {
  font-size: 0.8125rem !important; /* 13px */
  color: #374151 !important;
}

/* Google translate widget */
@media (max-width: 768px) {
  .sr-ft-translate select,
  #google_translate_element select {
    font-size: 16px !important; /* Prevent iOS zoom */
    min-height: 44px !important;
  }

  .sr-ft-translate .helper-text {
    color: #475569 !important;
    font-size: 0.8125rem !important; /* 13px — was 0.7rem */
  }
}

/* Footer CTA banner — white text on dark/blue bg */
.sr-footer-cta-banner .sr-ft-cta-sub,
.sr-footer-cta-banner p {
  color: rgba(255, 255, 255, 0.9) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.9) !important;
}

/* Security/compliance text in footer */
.sr-ft-security-text,
.sr-ft-disclaimer {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

@media (max-width: 768px) {
  .sr-ft-security-text,
  .sr-ft-disclaimer {
    font-size: 0.875rem !important; /* 14px — was 0.82rem */
  }
}

/* ═══════════════════════════════════════════════════════════
   12. HEADER / NAV — mobile contrast + touch targets
   ═══════════════════════════════════════════════════════════ */

/* Mobile nav menu links */
@media (max-width: 900px) {
  .nav-mobile-link,
  .nav-mobile-accordion-trigger,
  .sr-menu-overlay__item {
    min-height: 48px !important;
    font-size: 1rem !important;
    color: #1e293b !important;
    -webkit-text-fill-color: #1e293b !important;
  }

  .nav-mobile-link:hover,
  .nav-mobile-accordion-trigger:hover {
    color: #2563eb !important;
  }

  /* Hamburger button touch target */
  .nav-hamburger,
  .nav-mobile-toggle,
  [class*="hamburger"] {
    min-height: 44px !important;
    min-width: 44px !important;
  }

  /* Mobile search */
  #navHeaderSearchInput {
    font-size: 16px !important;
    min-height: 44px !important;
  }
}

/* Nav CTA buttons */
.nav-cta-go-pro,
.nav-mobile-cta-pro,
.nav-mobile-go-pro {
  background: #2563eb !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  min-height: 44px !important;
  font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════════════
   13. INLINE STYLE ATTRIBUTE OVERRIDES — catch remaining
   ═══════════════════════════════════════════════════════════ */

/* Override dangerously small inline font-size values at mobile */
@media (max-width: 768px) {
  /* Catch-all for very small text */
  [style*="font-size:0.6"],
  [style*="font-size: 0.6"] {
    font-size: 0.8125rem !important; /* 13px minimum */
  }

  [style*="font-size:10px"],
  [style*="font-size: 10px"],
  [style*="font-size:11px"],
  [style*="font-size: 11px"] {
    font-size: 13px !important;
  }
}

/* Override low opacity that reduces contrast */
[style*="opacity:0.3"],
[style*="opacity: 0.3"] {
  opacity: 0.7 !important;
}

[style*="opacity:0.35"],
[style*="opacity: 0.35"] {
  opacity: 0.7 !important;
}

[style*="opacity:0.4"],
[style*="opacity: 0.4"] {
  opacity: 0.7 !important;
}

/* ═══════════════════════════════════════════════════════════
   14. MODAL / OVERLAY TEXT — paywall, upsell, popups
   ═══════════════════════════════════════════════════════════ */

/* Paywall modal text */
#srPaywallModal p,
#srPaywallModal span {
  color: rgba(255, 255, 255, 0.85) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
}

#srPaywallModal h2 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Paywall subtext — was very faint */
#srPaywallSubtext {
  color: rgba(255, 255, 255, 0.75) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important;
}

/* Paywall toggle label */
#srPaywallToggleLabel {
  color: #94a3b8 !important; /* On dark bg this is ~6:1 */
  -webkit-text-fill-color: #94a3b8 !important;
}

/* Upsell banners in footer */
.sr-upsell-subtitle,
.sr-upsell-sub {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

@media (max-width: 768px) {
  .sr-upsell-subtitle,
  .sr-upsell-sub {
    font-size: 0.875rem !important; /* 14px — was 0.79rem */
  }
}

/* Trust subtext in upsells */
.sr-upsell-trust-sub,
[class*="upsell"] [class*="trust"] {
  color: #475569 !important;
  font-size: 0.8125rem !important; /* 13px — was 0.7rem */
}

/* ═══════════════════════════════════════════════════════════
   15. CONSISTENT MOBILE SPACING — 8px grid
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 428px) {
  /* Ensure no horizontal overflow at 375px */
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }

  main,
  #main-content,
  section,
  .sr-container {
    max-width: 100vw !important;
    overflow-x: hidden !important;
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  /* Card text shouldn't overflow */
  .sr-card,
  .settlement-card,
  [class*="card"] {
    overflow: hidden !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Tables — prevent overflow */
  table {
    width: 100% !important;
    table-layout: fixed !important;
  }

  td, th {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   16. ANNOUNCEMENT BAR / PROMO BAR — always readable
   ═══════════════════════════════════════════════════════════ */

.announce-bar,
.announce-bar *,
.announce-bar a,
.promo-bar,
.promo-bar * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

@media (max-width: 768px) {
  .announce-bar,
  .promo-bar {
    font-size: 0.875rem !important; /* 14px */
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   17. KEYBOARD SHORTCUT HINT — tiny text fix
   ═══════════════════════════════════════════════════════════ */

#sr-kbd-hint kbd {
  font-size: 0.75rem !important; /* 12px acceptable for kbd elements */
  color: #4b5563 !important;
}

/* ═══════════════════════════════════════════════════════════
   18. CHECKOUT / PAYMENT PAGES
   ═══════════════════════════════════════════════════════════ */

.checkout-summary,
.checkout-item-text,
.checkout-total-label {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

.checkout-helper,
.checkout-terms {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

@media (max-width: 768px) {
  .checkout-btn,
  .checkout-submit,
  [class*="checkout"] button[type="submit"] {
    min-height: 48px !important;
    font-size: 1rem !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   19. SCORE / LEADERBOARD PAGES
   ═══════════════════════════════════════════════════════════ */

.score-card p,
.score-description {
  color: #374151 !important;
  -webkit-text-fill-color: #374151 !important;
}

.score-label,
.score-meta {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

@media (max-width: 768px) {
  .score-card p,
  .score-description {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   20. BLOG / CONTENT PAGES — ensure readable body text
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  .blog-post-body,
  .content-body,
  .guide-content,
  [class*="article-body"],
  [class*="post-body"] {
    font-size: 1rem !important;
    line-height: 1.65 !important;
    color: #1e293b !important;
  }

  .blog-meta,
  .blog-date,
  .blog-author,
  .article-meta {
    font-size: 0.875rem !important; /* 14px */
    color: #475569 !important; /* 7.0:1 on white */
  }
}

/* ═══════════════════════════════════════════════════════════
   21. MOBILE BOTTOM TAB BAR — ensure labels readable
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 900px) {
  #srTabBar .tab-label,
  #srTabBar span {
    font-size: max(11px, 0.6875rem) !important; /* Tab labels can be smaller */
    color: #64748b !important; /* 5.2:1 on white */
  }

  #srTabBar .tab-active .tab-label,
  #srTabBar .tab-active span {
    color: #d4af37 !important; /* Gold active state — 3.5:1 on white, passes for large */
  }
}

/* ═══════════════════════════════════════════════════════════
   22. SEO LANDING PAGES — #94a3b8 text fixes
   ═══════════════════════════════════════════════════════════ */

.seo-landing-body p,
.seo-content p,
[class*="class-action-landing"] p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

[class*="class-action-landing"] label,
.seo-landing-label {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

@media (max-width: 768px) {
  .seo-landing-body p,
  .seo-content p,
  [class*="class-action-landing"] p {
    font-size: 1rem !important;
    line-height: 1.55 !important;
  }
}
