/* Shared reading colour: black copy on light surfaces, white on dark panels.
   Headings, brand lettering, decorative accents and button colours stay separate. */
:root { --reading-ink: #000; --muted: #000; }

:is(.announcement, .home-visit, .home-contact, .contact, .journey-intro,
    .journal-offer, .journal-photo figcaption, .page-next, .visit-practical,
    .fees-information, .first-visit-overview, .visit-preparation,
    .policy-hero, .faq-intro, .concern-card-conversation, .hero-identity,
    .image-caption, .palette-emerald, .palette-navy) {
  --reading-ink: #fff;
}
.care-page .care-item:nth-child(2),
.care-page .care-item:nth-child(3),
.contact-page .arrival-note,
.news-page .newsletter-document,
.testimonial-featured:not(.premium-panel) {
  --reading-ink: #fff;
}
.journey-panel, .faq-intro > .text-link { --reading-ink: #000; }

body :is(main, footer) :is(
  p:not(.about-subheading, .services-subheading, .fee-price, .wl-price),
  li, dt, dd, address, small, label, figcaption
),
body :is(main, footer) :is(p, li, dt, dd, address, small, label, figcaption)
  :is(a:not(.button), strong, em),
body :is(main, footer) :is(
  .text-link, .guide-link, .guide-approach-link, .guide-eyebrow,
  .service-status, .patient-breadcrumb, .patient-breadcrumb a,
  .guide-breadcrumb, .guide-breadcrumb a, .wl-offer-label,
  .about-jump-links a, .about-biography summary, .about-person-role span,
  .professional-identity > span, .team-qualification span,
  .home-registration, .team-registration, .team-qualification,
  .journal-breadcrumb, .journal-byline, .journal-edition,
  .journal-contents a, .journal-endnotes a,
  .news-feature-edition, .news-feature-byline,
  .newsletter-document-label, .newsletter-document-action,
  .care-step-label, .travel-step-label, .concern-action,
  .route-action, .hero-availability, .hero-foot, .hero-address,
  .footer-link-column > a, .footer-connect a, .footer-email, .footer-base,
  .footer-opening-note, .footer-appointment-note,
  .wl-consent, .wl-location, .wl-fine
) {
  color: var(--reading-ink) !important;
}

/* Small form text remains crisp; error messages retain their distinct colour. */
main :is(input:not([type=checkbox], [type=radio]), select, textarea) {
  color: #000;
}
main :is(input, textarea)::placeholder { color: #000; opacity: 1; }
.wl-error { --reading-ink: #7c2920; }
.journey-progress li[aria-current="step"] > span { color: #fff; }

