/* Post-build accessibility repair — quantaaconnect.com
   The app leans on Tailwind's slate-400 (#90a1b9) for micro-labels and slate-500
   (#62748e) for footers; both measure 2.5–4.4:1 on white/slate-50. These rules lift
   every occurrence to the nearest passing shade, keyed by token so they cover
   elements that appear only after interaction. */

/* slate-400 text → slate-600 (7.4:1 on white, 7.0:1 on slate-50) */
.text-slate-400 {
  color: #475569 !important;
}

/* slate-500 text → slate-600, which clears the 4.5:1 bar on white cards and #f8fafc */
.text-slate-500 {
  color: #475569 !important;
}

/* Coloured badge glyphs (#155dfc blue / #009966 green / #e17100 amber) sit on a 10%
   tint of themselves: lift the foreground only, the tint stays. */
div.w-6 > svg.text-blue-600,
.text-blue-600 { color: #1d4ed8 !important; }
div.w-6 > svg.text-emerald-600,
.text-emerald-600 { color: #047857 !important; }
div.w-6 > svg.text-amber-600,
.text-amber-600 { color: #b45309 !important; }

/* Near-invisible 1.48:1 captions (#cad5e2) were stat labels inside cards. Scope to spans
   inside cards only: a blanket .text-slate-300 rule darkens buttons on dark surfaces. */
div.grid span.text-slate-300,
div.relative span.text-slate-300 {
  color: #64748b !important;
}
/* Dark-surface buttons keep their own tone, restated so the rule above cannot leak in. */
button.text-slate-300 {
  color: #cbd5e1 !important;
}

/* Footer legal strip (#62748e on #0f172a = 4.23:1). */
footer .text-slate-400,
footer .text-slate-500 {
  color: #94a3b8 !important;
}

/* 5. Footer body copy and nav: #64748b on the #0f172a footer measures 4.23:1.
      slate-400 (#94a3b8) is 6.4:1 there and is the shade already used for
      secondary text inside the footer. */
footer a,
footer li a,
footer p,
footer span.inline-flex,
footer .text-slate-500,
footer .text-slate-400 {
  color: #94a3b8 !important;
}
footer a:hover {
  color: #ffffff !important;
}

/* 6. Belt-and-braces for footer content: the badges/spans above carry their colour via
      utility classes my named rules did not outrank. Any text in the footer that sits on
      the dark surface gets a passing shade regardless of which token produced it. */
footer [class*="text-slate-5"],
footer [class*="text-slate-4"],
footer [class*="text-gray-5"],
footer [class*="text-gray-4"] {
  color: #94a3b8 !important;
}

/* 7. Footer contact lines: only these two spans sit on the darkest footer surface
      (#020618) where slate-500 measures 4.23:1. Scoped to the text-slate-300 token
      inside the footer so the white heading and blue accent are left alone. */
footer span.text-slate-300,
footer .text-slate-300,
footer div.flex.flex-wrap > span {
  color: #a3b3c7 !important;
}
/* the wrapper div itself carries text-slate-300 in this build; overriding it leaks to
   children only where they do not set their own colour. */
footer div > div > span.inline-flex.text-slate-300 {
  color: #a3b3c7 !important;
}
/* keep the semantic accent colours intact (emerald = compliant, blue = links) */
footer span.text-emerald-400 { color: #34d399 !important; }
footer span.text-blue-400 { color: #60a5fa !important; }
