/**
 * AA-contrast overrides for LUCO's own brand red (#ed1847) AND the mirror's
 * `gray` rating-label color — loaded AFTER
 * app.css (app/layout.tsx), so a plain selector of equal specificity wins
 * the cascade by source order alone, same convention mobile-overrides.css
 * already established; no `!important` needed except where app.css's own
 * rule already used it (`.btn.btn-red`'s `border`, see below). Kept as its
 * own file (not an edit to app.css, which stays byte-for-byte untouched —
 * docs/clone-inventory.md §9/§10) and outside purge-css.mjs's reach (that
 * script only ever rewrites the built `out/mirror/css/app.css`, never any
 * other stylesheet), so this survives the build unpurged regardless of
 * usage on any given page.
 *
 * WHY: Lighthouse/PageSpeed accessibility audit flags `color-contrast` on
 * LUCO's own brand red, on white — measured 4.35:1, just under WCAG AA's
 * 4.5:1 threshold for normal-size text (docs/clone-inventory.md §10/§14.5,
 * "left alone, on purpose" until now — approved to fix). Contrast ratio is
 * symmetric (doesn't depend on which side is foreground vs. background), so
 * white-on-`#ed1847` (`.btn.btn-red`'s button label) measures the SAME
 * ~4.3-4.35:1 and fails for the identical reason — one new, minimally-darker
 * red fixes both directions at once.
 *
 * NEW COLOR: #e81040 (was #ed1847). Computed with the standard WCAG relative-
 * luminance formula (script: same darken-by-lightness search documented in
 * the PR), holding hue/saturation constant and only reducing HSL lightness
 * (51.2% -> 48.6%, a ~5% relative shift — imperceptible side-by-side, see
 * docs/screenshots/a11y-contrast-after-{desktop,mobile}.png):
 *
 *   #ed1847 (orig) vs #fff -> 4.355:1  (FAIL, <4.5)
 *   #e81040 (new)  vs #fff -> 4.586:1  (PASS, with headroom above the
 *                                       threshold for browser/Lighthouse
 *                                       rounding differences — #ea1242, the
 *                                       barest darkening that clears 4.5,
 *                                       measured 4.503:1, too close to the
 *                                       line to trust across renderers)
 *
 * SCOPE: only the app.css CLASS-based selector shapes Lighthouse actually
 * flagged — red text on white (`.text-security`, incl. its `hover:` variant)
 * and white text on red background (`.btn.btn-red`, incl. its `:hover`
 * state). Brand imagery/logos are untouched (this is a CSS color value,
 * never applied to `<img>`/`<svg>` assets). `.text-danger`/`.btn-link.btn-red`
 * (same #ed1847 value in app.css) are UNUSED by any of the 77 crawled pages
 * (verified: `grep -rl text-danger scripts/crawl/mirror/*.html` and the
 * `.btn-link.btn-red` equivalent both return zero matches) — left alone
 * rather than touching CSS with no live surface to fix.
 *
 * The SAME brand red also fails from two OTHER mechanisms an external
 * stylesheet can't reach — see docs/clone-inventory.md's a11y-fix section for
 * the full writeup of both:
 *   - literal inline `style="color: #ed1847"` / `style="background:
 *     #ed1847!important"` baked into the crawled WYSIWYG body copy itself —
 *     fixed at transform time (`lib/mirror-transform.ts`'s inline-style
 *     darkening pass), not here (no stylesheet, however loaded, can win a
 *     cascade fight against an inline style).
 *   - `@hiveras/ui-luco`'s `<Button>`/`<Chip>` components (LeadForm's submit
 *     button, etc.) read the raw `--luco-red` CSS custom property from the
 *     package's own `tokens.css`, not any Tailwind utility — fixed in
 *     `app/globals.css` (`:root{--luco-red:#D6113D}`), reusing the value
 *     already computed/vetted for HIV-2148 F17's Tailwind-utility fix rather
 *     than inventing a second one.
 *
 * GRAY: the homepage/contact Google-reviews rating label (`.rating-container`/
 * `.rating-text`, app.css) uses the plain CSS keyword `gray` — the literal
 * sRGB value `#808080`, 3.95:1 on white, also below AA. Same darkening
 * approach as the red above: only reduce the value, hue/saturation N/A
 * (achromatic gray) — `#757575`, 4.61:1 (chosen over the bare-minimum
 * `#767676`, 4.54:1, for the same rounding-headroom reason the red override
 * picked #e81040 over #ea1242). Reused for `LeadForm.module.css`'s
 * `.reassurance` (a project component, not the mirror — fixed directly in
 * that file, not here) and `tailwind.config.ts`'s `luco-gray-500` token
 * (BudgetCalculator/CasesGrid/AircoCalc/ScanQuiz captions) so every "muted
 * gray text" consumer on the site ends up the same AA-safe shade — see
 * docs/clone-inventory.md §15 for the full ratio table. No inline `#808080`/
 * `color:gray` was found baked into any of the 77 crawled pages' own markup
 * (checked the same way as the red inline-style sweep) — nothing for
 * `lib/mirror-transform.ts`'s inline-style pass to rewrite here.
 */

.text-security,
.hover\:text-security:hover {
  --text-opacity: 1;
  color: #e81040;
  color: rgba(232, 16, 64, var(--text-opacity));
}

.btn.btn-red {
  background-color: #e81040;
  /* app.css's own `.btn.btn-red` sets `border` with `!important` — matching
     border and background here so the button doesn't render a two-tone
     (old-red border / new-red fill) edge. */
  border-color: #e81040 !important;
}

.btn-red:hover {
  color: #e81040;
}

.rating-container,
.rating-text {
  color: #757575;
}
