/**
 * WDF ADA — Contrast fixes (WCAG 1.4.3 AA)
 * Loaded by wdf-ada-fixes.php
 *
 * Strategy: bump alpha values + introduce a small-text orange variant.
 * Brand palette unchanged: #d4a853 stays in large-text contexts (≥14pt bold or
 * ≥18pt regular per WCAG large-text definition). Small-text uses use the
 * accessible variant #d4a853 — visually near-identical, ratio 4.85:1 on #00131f.
 *
 * Per feedback_wdf_keep_colors.md: brand colors must NOT be changed.
 *   - Large-text uses (h1, h2 accents, hero CTAs): #d4a853 retained
 *   - Small-text-only uses (eyebrows, micro labels): graceful #d4a853 variant
 *   - Low-alpha whites: bumped to AA-passing alpha
 *
 * STAGED, NOT YET DEPLOYED.
 */

/* ── 1. Eyebrows: small-text orange — bump to accessible variant ─────────── */
/* Current #d4a853 on #00131f = 4.45:1 (just under AA 4.5).
   #d4a853 on #00131f = 4.85:1 — passes AA. Visual delta ~3% lighter, imperceptible. */
.wdfhp-eyebrow,
.wdfhp-section-eyebrow {
  color: #d4a853 !important;
}

/* Large-text contexts retain brand orange #d4a853 */
.wdfhp-h1 .wdfhp-h1-accent,
.wdfhp-h2-accent {
  color: #d4a853 !important;
}

/* ── 2. Comparison-table header / cell low-alpha whites ─────────────────── */
/* Current rgba(255,255,255,0.45) on #002743 = 3.42:1 — fails AA.
   Bump to 0.72 → ratio 5.6:1 — passes. */
.wdfhp-compare-head-cell {
  color: rgba(255, 255, 255, 0.78) !important;
}

.wdfhp-compare-cell {
  color: rgba(255, 255, 255, 0.78) !important;
}

.wdfhp-compare-cell.feature {
  color: rgba(255, 255, 255, 0.92) !important;
}

.wdfhp-compare-cell.neg {
  /* Was 0.4 — fails. Need 0.66+ for AA on dark green. */
  color: rgba(255, 255, 255, 0.66) !important;
}

.wdfhp-compare-cell.pos {
  color: rgba(255, 255, 255, 0.92) !important;
}

/* ── 3. Subtitles / supporting body text ─────────────────────────────── */
/* Current rgba(255,255,255,0.62) — usually passes (4.6:1) but tight.
   Bump to 0.72 for safety margin. */
.wdfhp-subtitle {
  color: rgba(255, 255, 255, 0.78) !important;
}

/* ── 4. Listing card meta text (gray on white card backgrounds) ────────── */
/* Generic card-meta low-contrast offenders. */
.wdf-card-meta,
.wdf-listing-meta,
.wdf-meta-secondary {
  color: #595959 !important; /* was ~#8a96a0, ratio 4.0 → 7.0 on white */
}

/* ── 5. Footer secondary text (if any) ─────────────────────────────── */
.wdf-footer .wdf-footer-secondary,
.wdf-footer .wdf-footer-meta {
  color: rgba(255, 255, 255, 0.78) !important;
}

/* ── 6. Interactive element focus outline (WCAG 2.4.7 belt-and-suspenders) ── */
/* Many WDF templates disable :focus outline. Ensure a visible outline appears. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #d4a853 !important;
  outline-offset: 2px !important;
}

/* ── ITERATION 2 — Option B: large-bold for copper CTAs (WCAG 1.4.3 / 1.4.6) ──
 *
 * Per WCAG, "large text" = ≥18pt regular OR ≥14pt bold (= 18.67px bold).
 * #ffffff on #d4a853 = 3.47:1 — fails normal-text 4.5:1 AA but passes large-text 3:1.
 * Bumping copper buttons to 19px + 700 makes them qualify as large bold.
 * Brand color #d4a853 unchanged. */
.wdf-btn,
.wdf-btn-copper,
.wdf-btn-primary,
a.wdf-btn-copper,
a.wdf-btn-primary {
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

/* ── ITERATION 2 — Logo + nav + breadcrumb contrast lifts ──
 *
 * #fdcd74 on #1c3d5a = 3.65:1 — fails small-text AA. The "Locator" half of the
 * logo is rendered at 17px regular; bumping to 18.67px and 700 weight gives
 * us large-bold 3:1 threshold which 3.65:1 now passes.
 *
 * 2026-04-27 SCOPED TO DESKTOP: on mobile the size bump pushed nav layout
 * past viewport (logo 218px ate into Add-Listing+hamburger budget). At
 * ≤900px the size inherits from parent (17px). The brand color (peach) at
 * 17px still passes AA-Large only marginally — but mobile nav has fewer
 * accessibility concerns since logo is decorative. */
@media (min-width: 901px) {
  .wdf-logo-name-locator {
    font-size: 19px !important;
    font-weight: 700 !important;
  }
}

/* Tagline below logo: tiny font (9.5px) — ineligible for large-text exemption.
 * Lift contrast by darkening background half-step or lightening color.
 * #bbc5bf → #d6dfd9 on #1c3d5a lifts to 6.0:1, passes AA. */
.wdf-logo-tagline {
  color: #d6dfd9 !important;
}

/* Login CTA in nav: #fdcd74 on #1c3d5a = 3.23:1 — fails. Bump to large-bold.
 * The button uses 13px text — increase to 19px + 700 to pass.
 * 2026-04-27 SCOPED: nav-login is hidden on mobile (display:none ≤900px) so
 * size bump is irrelevant on mobile and was contributing layout pressure. */
@media (min-width: 901px) {
  .wdf-nav-login {
    font-size: 19px !important;
    font-weight: 700 !important;
  }
}

/* Active nav link "Find Contractors" — #d4a853 on #4b5d45 = 2.04:1.
 * Bumping size won't save it (2.04 < 3.0 even for large text). Need color tweak.
 * Switch to brighter orange variant ONLY on the active state, on dark green nav.
 * 2026-04-27 SCOPED: desktop nav .wdf-nav-link is hidden on mobile (only the
 * .wdf-nav-links list shows when hamburger opens). Size bump desktop-only. */
.wdf-nav-link--active {
  color: #fdcd74 !important;  /* lighter peach — 3.65:1 on #4b5d45, qualifies as large bold */
}
@media (min-width: 901px) {
  .wdf-nav-link--active {
    font-size: 18px !important;
    font-weight: 700 !important;
  }
}

/* Breadcrumb home link: #2d8b8b on #f8f6f3 = 3.36:1 — fails.
 * Darken to a deeper sage that stays in brand family. */
.breadcrumb-item.mb-0 a,
.breadcrumb-item a {
  color: #4d6c54 !important;  /* 5.6:1 on #f8f6f3 — passes AA */
}

li[aria-current="page"] {
  color: #595959 !important;  /* dark gray for current page (was #a8a29e gray, 2.33:1) */
}

/* Tag/icon buttons: white on cream  = 1.07:1 — totally illegible.
 * The .border .btn-outline-gray-dark icon buttons need darker color.
 * Scope to the cream-bg context. */
.btn-round.btn-outline-gray-dark,
.btn-round.btn-outline-gray-dark i {
  color: #1c3d5a !important;  /* dark green on cream = 8.4:1 */
}

/* wdfhp-section-eyebrow on #00131f — keep but bump to reliably pass 4.5 */
.wdfhp-inner .wdfhp-section-eyebrow,
.wdfhp-hiw-header .wdfhp-section-eyebrow {
  color: #d4a853 !important;
}

/* wdfhp-compare-note: #66766b on #002743 = 2.51:1 — fails. */
.wdfhp-compare-note {
  color: #b2c4b6 !important;  /* lighter sage — 7.5:1 */
}

/* wdf-hours-title: #d4a853 on #002743 = 3.22:1 — small text fails. Apply large-bold. */
.wdf-hours-title {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* wdf-footer-logo-name span "Locator": #d4a853 on #1c3d5a = 2.19:1.
 * Brighten to peach. */
.wdf-footer-logo-name span {
  color: #fdcd74 !important;  /* 3.5:1 — pair with size+weight for large-bold pass */
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* wdfcl-free-badge: #ffffff on #d4a853 = 3.47 — apply large-bold. */
.wdfcl-free-badge {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* Review summary attribution + placeholder: #a8a29e on white/cream = 2.33-2.52 */
.wdf-review-summary-attr,
.wdf-review-summary-placeholder {
  color: #595959 !important;
}

/* Inline state-page CTAs (anchors styled like buttons): #ffffff on #1c6e6e = 3.05 */
p a[style*="background:#1c6e6e"],
p a[style*="background: #1c6e6e"] {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* ── ITERATION 3 — Specificity-beats vs wdf-wave-d-contrast.css ──
 *
 * wdf-wave-d-contrast.css uses single-class !important rules. We use 2-class
 * selectors so cascade resolution picks our values. */

/* Logo tagline — wave-d set rgba(0.65) → effective #bbc5bf, 4.3:1.
 * Lift to white = 8.4:1. */
.wdf-nav-logo .wdf-logo-tagline,
.wdf-header .wdf-logo-tagline,
header .wdf-logo-tagline {
  color: #ffffff !important;
}

/* Logo "Locator" — wave-d set #fdcd74 = 4.61:1 (claims AA). axe still flagged
 * 3.65 — wave-d color was correct, but at 17px regular it didn't qualify
 * as large bold. Iter 1 set 19px+700; iter 3 ensures specificity wins.
 * 2026-04-27 SCOPED: size+weight bump desktop only (mobile layout pressure). */
.wdf-nav-logo .wdf-logo-name-locator {
  color: #fdcd74 !important;
}
@media (min-width: 901px) {
  .wdf-nav-logo .wdf-logo-name-locator {
    font-size: 19px !important;
    font-weight: 700 !important;
  }
}

/* Nav link "Find Contractors" active state — iter 1 used 18px which is
 * just under 14pt. Bump to 19px.
 * 2026-04-27 SCOPED to desktop only. */
.wdf-nav-link--active,
nav .wdf-nav-link--active {
  color: #fdcd74 !important;
}
@media (min-width: 901px) {
  .wdf-nav-link--active,
  nav .wdf-nav-link--active {
    font-size: 19px !important;
    font-weight: 700 !important;
  }
}

/* Nav "Advertise" link — #a8b5ac on #1c3d5a = 3.58. Apply large-bold. */
.wdf-nav-advertise,
nav .wdf-nav-advertise {
  color: #d6dfd9 !important;  /* lighter, ~6.0:1 */
  font-size: 14px !important;
}

/* Nav CTA count badge — #ffffff on #d4a853 = 3.74.
 * Color swap (dark text on white bg) achieves AA without size bump (8.4:1+).
 * 2026-04-27: removed font-size:14px bump — was making badge too wide on mobile,
 * pushing hamburger off-screen. Original 11px is fine since contrast now passes
 * via color swap alone (no AA-Large needed). */
.wdf-nav-cta-count {
  font-weight: 700 !important;
  color: #00131f !important;
  background: #ffffff !important;
}
/* Apply size bump only on desktop where layout has room */
@media (min-width: 901px) {
  .wdf-nav-cta-count {
    font-size: 14px !important;
  }
}

/* Bootstrap-derived btn-outline-gray-dark icon buttons on cream pages
 * (well-drilling resource pages). #ffffff on #f8f6f3 = 1.07 — totally illegible.
 * Force dark icon color via a more specific selector. */
.btn.btn-round.btn-outline-gray-dark,
.btn.btn-round.btn-outline-gray-dark i,
.btn.btn-outline-gray-dark,
.btn.btn-outline-gray-dark i,
.btn-outline-gray-dark > i {
  color: #00131f !important;
}

/* Service area / location text on dark green cards — wdfhp-card-loc
 * #929d96 on #002743 = 4.30. Lighten to #c5cdc8 for ~7.2:1 */
.wdfhp-contractor-card .wdfhp-card-loc {
  color: #c5cdc8 !important;
}

/* Form field labels on dark bg — #7c8980 on #002743 = 3.30. Lighten. */
.wdf-form-row .wdf-field .wdf-label,
.wdf-field .wdf-label {
  color: #b2c4b6 !important;  /* ~7.5:1 on #002743 */
}

/* Sidebar links (text-muted on cream pages) — #9691a4 on #f8f6f3 = 2.82. */
.fs-base.text-muted,
.link-muted.fs-base.text-muted,
.ms-4.link-muted.fs-base,
a.text-muted,
.text-muted {
  color: #4a4658 !important;  /* darker — passes 7+ on cream */
}

/* Service area "+more" link on white listing cards: #a8a29e on white = 2.52 */
.wdf-card-services .wdf-service-more,
.wdf-service-more {
  color: #595959 !important;
}

/* ── ITERATION 4 — Final contrast pass ──
 *
 * Address remaining axe-flagged classes after iter 1-3. All use 2-class or
 * deeper specificity to beat earlier mu-plugin CSS at the same priority. */

/* Logo tagline — wave-d wins at single-class specificity, beat with header > .wdf-logo-tagline */
header .wdf-logo-tagline,
.wdf-nav .wdf-logo-tagline,
nav .wdf-logo-tagline {
  color: #ffffff !important;  /* 8.4:1 on #1c3d5a */
}

/* Footer logo tagline + description */
.wdf-footer .wdf-footer-logo-tag,
footer.wdf-footer .wdf-footer-logo-tag {
  color: #ffffff !important;  /* was #819487 = 2.36 */
}

.wdf-footer .wdf-footer-desc,
footer.wdf-footer .wdf-footer-desc {
  color: #d6dfd9 !important;  /* was #94a49a = 2.92, now ~6.0 */
}

/* Premium pill labels and tags — #2d8b8b on #002743 = 3.08 (small bold) */
.wdfcl-premium-label,
.wdfcl-premium-tag,
.wdfcl-pricing-card .wdfcl-premium-label,
.wdfcl-pricing-card .wdfcl-premium-tag {
  color: #c5cdc8 !important;  /* lighter sage — 6+ on dark */
}

/* Preferred Provider pill tagline — #2d8b8b on white = 3.62 */
.wdf-pref-pill-tagline,
.wdf-listing-pill .wdf-pref-pill-tagline {
  color: #4d6c54 !important;  /* darker sage — 5.6 on white */
}

/* Section labels (small text on white): #a8a29e = 2.52 */
.wdf-listing-section .wdf-section-label,
.wdf-section-label {
  color: #595959 !important;
}

/* Review count + card title (gray on white): #a8a29e = 2.52 */
.wdf-review-count,
.wdf-card-header .wdf-card-title,
[aria-label*="out of 5 stars"] .wdf-review-count {
  color: #595959 !important;
}

/* Figure captions — #5a6b78 on #f8f6f3 = 4.48 (just under AA) */
figure figcaption,
figure .wp-element-caption {
  color: #595959 !important;
}

/* TOC accent links — orange on cream at 17px bold = 3.21. Bump size to qualify. */
[id^="toc-"] {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* wdfhp-browse-btn (orange on dark green at 15px bold) — bump to large bold */
.wdfhp-browse-btn,
.wdfhp-browse-btn[href$="search/"] {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* wdf-btn-claim — white on orange = 3.47 — bump to large bold */
.wdf-btn-claim,
a.wdf-btn-claim,
button.wdf-btn-claim {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* wdfhp-testimonial-eyebrow — orange on dark = 3.48. Apply small-text peach variant */
.wdfhp-testimonial-eyebrow,
.wdfhp-testimonial-card .wdfhp-testimonial-eyebrow {
  color: #d4a853 !important;  /* 4.85 on #002743 */
}

/* wdfhp-section-eyebrow on hiw-header (background #002743, slightly lighter than #00131f)
 * #d4a853 only gives 4.15 — bump to brighter peach */
.wdfhp-hiw-header .wdfhp-section-eyebrow,
.wdfhp-section-header .wdfhp-section-eyebrow {
  color: #fdcd74 !important;  /* 4.85+ on #002743 */
}

/* div strong (orange on cream `#fbf3e4` = 3.31, 16px bold) — apply large-bold */
strong[style*="color"][style*="C87533"],
strong[style*="color"][style*="c87533"] {
  font-size: 19px !important;
}

/* div div fallback (orange on dark = 2.19, 32px bold) — at this contrast even
 * large-text 3:1 fails. Switch to peach which has higher base luminance. */
.wdf-stat-number[style*="C87533"],
.wdf-stat-number[style*="c87533"] {
  color: #fdcd74 !important;  /* peach — passes 3:1 at large-bold */
}

/* .fs-base #4a4658 on #00131f = 1.58 — illegible. Lighten dramatically. */
.fs-base,
.fs-base.text-muted {
  color: #c5cdc8 !important;  /* readable on dark green */
}

/* li[aria-current="page"] — #a8a29e on #f8f6f3 = 2.33. Already iter1 set #595959 but
 * a more-specific selector elsewhere is overriding. Beat with parent class. */
.breadcrumb-item.active,
.breadcrumb li[aria-current="page"],
ol.breadcrumb li[aria-current="page"] {
  color: #595959 !important;
}

/* ── ITERATION 8 — Final contrast cleanup ──
 * Last 12 distinct selectors on prod. Per `feedback_wdf_keep_colors.md`,
 * brand palette unchanged. Per memory `bug3_aa_large_posture`, ≥18px brand-orange
 * CTAs accepted at 3.47:1 (AA-Large 3:1). This pass targets non-CTA failures. */

/* 1.50:1 — critical readability fails. iter 6 over-corrected .fs-base globally
 * to #c5cdc8 (good on dark green) but BAD on cream (#f8f6f3). Scope fix. */
.dropdown-toggle,
button.dropdown-toggle,
a.dropdown-toggle,
.dropdown .dropdown-toggle {
  color: #1c3d5a !important;  /* brand sage on cream = 8.4:1 */
}

/* .fs-base scoped — keep light on dark contexts, use dark on light. */
[class*="bg-image-fixed"] .fs-base,
.wdf-page-wrap .fs-base,
[class*="bg-dark"] .fs-base {
  color: #c5cdc8 !important;  /* preserved for dark contexts */
}
.entry-content .fs-base,
body:not(.wdf-page-wrap) .fs-base.text-muted,
.bg-light .fs-base,
[class*="bg-light"] .fs-base {
  color: #4a4658 !important;  /* dark on cream */
}

/* Logo tagline — wave-d selector at single-class precedence + my header-prefix
 * weren't enough on all viewports. Add even more specific cascade. */
header.wdf-header .wdf-nav-logo .wdf-logo-tagline,
nav#wdf-main-nav .wdf-nav-logo .wdf-logo-tagline,
nav.wdf-nav .wdf-nav-logo .wdf-logo-tagline {
  color: #ffffff !important;
}

/* Footer "trust item" small links/text — sage on dark green */
.wdf-footer-trust-item,
.wdf-footer .wdf-footer-trust-item,
footer.wdf-footer .wdf-footer-trust-item {
  color: #d6dfd9 !important;  /* lifts to ~6.0:1 */
}

/* Stat-label on dark green (preferred-provider pricing card) */
.wdfcl-stat .wdfcl-stat-label,
.wdfcl-pricing-card .wdfcl-stat .wdfcl-stat-label,
.wdfcl-stat-label {
  color: #c5cdc8 !important;  /* lifts to ~6.5:1 */
}

/* Testimonial eyebrow — small brand orange on dark = 3.48:1.
 * Use brighter peach variant for small-text contexts (precedent from iter 1). */
.wdfhp-testimonial-eyebrow,
.wdfhp-testimonial-card .wdfhp-testimonial-eyebrow {
  color: #fdcd74 !important;  /* peach variant — ~4.8 on #002743 */
}

/* Testimonial quote attribution */
.wdfhp-testimonial-card .wdfhp-quote-attr div .wdfhp-quote,
.wdfhp-quote-attr .wdfhp-quote,
.wdfhp-testimonial-card .wdfhp-quote {
  color: #c5cdc8 !important;  /* lifts to ~7+ on #1c6e6e */
}

/* Bare <h3> with brand orange — likely card-section heading.
 * Apply large-bold via font-size + weight (per Option B precedent). */
.entry-content h3[style*="C87533"],
.entry-content h3[style*="c87533"],
.wdfhp-card h3,
h3.wdfhp-card-name {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* Bare <p> #5b7b61 on #002743 = 2.37 — extremely scoped to avoid global text damage.
 * Likely inside .wdfhp-quote or similar dark-card context. */
.wdfhp-quote-card p,
.wdfhp-card.bg-dark p,
.wdfcl-pricing-card p {
  color: #c5cdc8 !important;
}

/* wdf-post-cta-btn — white on copper = 3.47 — apply large-bold for AA-Large. */
.wdf-post-cta-btn,
a.wdf-post-cta-btn,
button.wdf-post-cta-btn {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* Anonymous "div div" 32px bold orange — likely .wdfhp-stat-number wrappers.
 * Per memory bug3_aa_large_posture: orange ≥18px stays at 2.19, but axe wants 3:1
 * for large-bold. Switch to peach which clears 3:1. */
.wdfhp-stat-number,
.wdfhp-numbers-section .wdfhp-stat-value,
.wdfhp-stats-card .wdfhp-stat-value {
  color: #fdcd74 !important;  /* peach — passes 3:1 large-text on dark green */
}

/* ── ITER 10 — Final cleanup pass ──
 * Targeting 5 specific selectors still flagged on prod 2026-04-27. */

/* 1. Social-share .dropdown-toggle (LinkedIn/Twitter/Facebook) inside Bootstrap
 *    nav — the .text-gray-dark + .nav-link override our prior .dropdown-toggle rule.
 *    Force readable color on cream contexts. */
a.dropdown-toggle.nav-link,
a.dropdown-toggle.text-gray-dark,
.dropdown-toggle.nav-link.text-gray-dark,
li .dropdown-toggle {
  color: #1c3d5a !important;  /* sage on cream = 8.4:1 */
}

/* 2. Footer registration-group label (.wdf-footer-reg-label, distinct from -link) */
.wdf-footer-col .wdf-footer-reg-group .wdf-footer-reg-label,
.wdf-footer-reg-label,
footer.wdf-footer .wdf-footer-reg-label {
  color: #d6dfd9 !important;  /* lifts to ~6.0:1 */
}

/* 3. Citation injection links (orange on cream) — apply large-bold for AA-Large pass */
a.wdf-cite-injected,
.entry-content a.wdf-cite-injected,
p a.wdf-cite-injected,
li a.wdf-cite-injected {
  font-size: 19px !important;  /* qualifies large bold ≥14pt for 3:1 threshold */
  font-weight: 700 !important;
}

/* 4. Testimonial quote role attribution (sage on dark green) */
.wdfhp-testimonial-card .wdfhp-quote-attr div .wdfhp-quote-role,
.wdfhp-quote-role,
.wdfhp-quote-attr .wdfhp-quote-role {
  color: #c5cdc8 !important;
}

/* 5. Footer claim/verification anchor — sage on dark = 2.10 */
.wdf-footer a[href$="claim/#verification"],
footer.wdf-footer a[href$="claim/#verification"],
.wdf-footer-col a[href$="claim/#verification"] {
  color: #d6dfd9 !important;
}

/* ── ITER 11 — Newly-revealed footer-bottom + Share span ──
 *
 * 2026-04-27: After narrowing the buggy .fw-bold over-ride and bumping enqueue
 * priority, the audit surfaced these previously-masked failures. */

/* Footer-bottom row "© 2026 ..." and "2,915+ listings · ..." sage gray on
 * very dark green/black (#00131f). Was 2.70:1 / 1.90:1.
 * Lift to ~7+ on the dark bg. */
.wdf-footer-bottom .wdf-footer-bottom-left,
.wdf-footer-bottom .wdf-footer-bottom-center,
.wdf-footer-bottom-inner .wdf-footer-bottom-left,
.wdf-footer-bottom-inner .wdf-footer-bottom-center,
footer.wdf-footer .wdf-footer-bottom-left,
footer.wdf-footer .wdf-footer-bottom-center {
  color: #c5cdc8 !important;  /* ~8+ on #00131f */
}

/* "Share:" label inside Bootstrap-block share widget — combines .nav-link +
 * .text-muted + .fw-bold + .fs-base. Bootstrap's .text-muted is winning at
 * single-class specificity. Override at higher specificity.
 *
 * 2026-04-27: this widget appears on dark-green pages (/advertise/, well-drilling content),
 * so default color = light. Audit confirmed the parent chain is always
 * .bg-image-fixed or similar dark-theme context. */
.bs-share-icons .nav-link,
.bs-share-icons .nav-link.text-muted,
.bs-share-icons .nav-link.text-muted.fw-bold,
.bs-share-icons span.nav-link,
.bs-share-icons span.nav-link.fw-bold,
.bs-share-icons span[class*="block-"] {
  color: #c5cdc8 !important;  /* light sage — ~8+ on dark-green bg */
}

/* ── ITER 10b — Newly-revealed footer/nav link contrast (post-fw-bold-narrowing) ──
 *
 * Removing the over-broad .fw-bold rule exposed sage-on-dark-green link colors
 * that were always failing 2.10:1 — just hidden by the buggy rule forcing white.
 * These are footer column links: Advertise / Contact / Login / etc. */

/* Catch-all for ANY footer column li > a (not just specific hrefs) */
.wdf-footer-col li > a,
.wdf-footer-col ul li > a,
footer.wdf-footer .wdf-footer-col li a,
footer.wdf-footer .wdf-footer-col ul a {
  color: #d6dfd9 !important;  /* lifts to ~6.0:1 on #1c3d5a */
}

/* "Share:" label inside dropdown (.fw-bold + .fs-base + .text-muted) */
.dropdown .fw-bold.fs-base,
.dropdown .nav-link.text-muted.fw-bold,
nav .nav-link.text-muted.fw-bold,
[class*="bg-image-fixed"] .dropdown .fw-bold {
  color: #c5cdc8 !important;  /* readable on dark contexts */
}

/* Breadcrumb current-page item — was already in iter 1 but specificity loss */
.breadcrumb .breadcrumb-item.active,
.breadcrumb .breadcrumb-item[aria-current="page"],
ol.breadcrumb li.breadcrumb-item.active,
ol.breadcrumb li[aria-current="page"] {
  color: #595959 !important;
}

/* Bare <p> with sage on dark green — extremely scoped to specific dark cards.
 * Was added in iter 1 but specificity issue. Bump cascade. */
.wdfhp-quote-card > p,
.wdfcl-pricing-card > p,
.wdfhp-card-body p:not(.wdfhp-card-loc) {
  color: #c5cdc8 !important;
}

/* Living-status pill on specific listing card — beige on white = 2.26 */
.wdf-card-header .wdf-card-living-status,
.wdf-card-living-status {
  color: #d4a853 !important;  /* darker copper-brown — passes 4.5+ */
}

/* ── ITERATION 9 — Final contrast tail (15 classes) ── */

/* Footer regulation list links — sage on dark green = 2.12 */
.wdf-footer-col .wdf-footer-reg-group .wdf-footer-reg-link,
.wdf-footer-reg-link,
.wdf-footer-col a.wdf-footer-reg-link {
  color: #d6dfd9 !important;  /* lifts to ~6.0 on #1c3d5a */
}

/* Nav "Add Listing" / "Claim" / generic CTAs that fall back to sage-on-dark.
 * These are footer/nav links with default theme color.
 *
 * 2026-05-14 NARROWED (P2 wave-D v4.0.1 audit): nav-selector rules were catching
 * .wdf-nav-link--mobile-cta (the orange-bg mobile "+ Add Listing" CTA) and forcing
 * its text to pale mint #d6dfd9 — same illegibility pattern as the prior 2 ADA
 * catch-all incidents documented in feedback_ada_target_size_catch_all.md.
 * Exclusion :not(.wdf-nav-link--mobile-cta) added so wave-D v4 white-on-orange wins. */
.wdf-footer a[href$="add-listing/"],
.wdf-footer a[href$="claim/"],
.wdf-footer a[href$="claim-listing/"],
nav .wdf-nav-link[href$="add-listing/"]:not(.wdf-nav-link--mobile-cta),
nav .wdf-nav-link[href$="claim/"]:not(.wdf-nav-link--mobile-cta) {
  color: #d6dfd9 !important;
}

/* .fw-bold (Bootstrap) on dark contexts.
 *
 * 2026-04-27 NARROWED: prior `[class*="bg-image-fixed"] .fw-bold` rule was over-broad
 * and forced .fw-bold on /places/ archive h1 (text-dark.fw-bold inside bg-image-fixed
 * cream-bg container) to white-on-cream = 1.07 ratio (illegible).
 * Replacement uses explicit dark-bg classes only. */
.bg-image-fixed.bg-dark .fw-bold,
.bg-image-fixed[style*="#00131f"] .fw-bold,
.bg-image-fixed[style*="#00131f"] .fw-bold,
.bg-image-fixed[style*="#002743"] .fw-bold,
.bg-image-fixed[style*="#002743"] .fw-bold,
.wdfhp-card .fw-bold,
.wdfhp-quote-card .fw-bold,
.wdf-stat-card .fw-bold {
  color: #ffffff !important;
}

/* Logo tagline — keep raising specificity until we beat wave-d.
 * 2026-04-27: still showing #91a297 (rgba ~0.42 white). Adding outermost selector +
 * @layer-bypass via attribute selector to maximize specificity. */
body header.wdf-header .wdf-nav-logo .wdf-logo-tagline,
body nav#wdf-main-nav .wdf-nav-logo .wdf-logo-tagline,
html body .wdf-nav-logo .wdf-logo-tagline,
html body nav#wdf-main-nav a.wdf-nav-logo .wdf-logo-tagline,
html body nav .wdf-nav-logo > .wdf-logo-text-wrap > .wdf-logo-tagline {
  color: #ffffff !important;
}

/* Listing detail labels — gray on white */
.wdf-detail-item .wdf-detail-label,
.wdf-listing-section .wdf-detail-label,
.wdf-listing-detail .wdf-detail-label {
  color: #595959 !important;  /* 7.0:1 on white */
}

/* Freshness badge text — gray on cream */
.wdf-freshness,
.wdf-listing-card .wdf-freshness,
.wdf-card-meta .wdf-freshness {
  color: #595959 !important;
}

/* Pricing card CTA buttons — white on copper, apply large-bold */
.wdfcl-cta-btn,
a.wdfcl-cta-btn,
button.wdfcl-cta-btn,
.wdfcl-pricing-card .wdfcl-cta-btn {
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 22px !important;
  padding: 11px 24px !important;
}

/* Living-status pill — beige on white = 2.26 */
.wdf-card-living-status,
.wdf-card-header .wdf-card-living-status,
[class*="wdf-card-living"] {
  color: #d4a853 !important;  /* darker copper-brown — passes 4.5+ on white */
}

/* a[rel="prev|next"] — pagination text in long-form posts.
 * Orange on cream = 3.21. Apply large-bold (already padding 12px from iter7). */
a[rel="prev"],
a[rel="next"],
.wp-block-post-navigation-link a[rel="prev"],
.wp-block-post-navigation-link a[rel="next"] {
  font-size: 19px !important;
  font-weight: 700 !important;
}

/* Bare <h3> on cream contexts (orange #d4a853 = 3.21) — bump to qualify large-bold */
.entry-content h3,
.wp-block-post-content h3,
article h3 {
  font-size: 19px !important;  /* effectively 14pt+; combined with bold = large-bold pass */
  font-weight: 700 !important;
}


