/* Banner contrast, v117.
   The banner itself is dark on every page. Light navigation cards and gold
   buttons retain their own foreground/background pairs. Scope excludes all
   reading sections, the site header, dialogs, and the contact form. */
@media screen {
  body[data-page] [data-motion-banner] {
    --banner-readable-link: #f6d995;
    --banner-readable-hover: #fff8ef;
    --banner-readable-label: #e1d4e9;
    --banner-readable-focus: #ffe1a3;
  }

  /* Text links on the dark surface: including visited links and new inline
     phone/guide links. Explicit classes avoid recoloring light card interiors. */
  body[data-page] [data-motion-banner] :is(
    .breadcrumb a, .text-link, .banner-wayfinding, .prism-discover,
    .prism-guide-link, .business-workspace-link, .contact-details a,
    .approach-page-links a, .review-page-links a, .privacy-page-links a,
    .resources-page-links a, .results-page-links a, .services-page-links a,
    .homeowner-hero-tools a, .homeowners-hero-tools a,
    .identity-hero-tools a, .individuals-hero-tools a,
    .lemon-hero-tools a, .loan-hero-tools a
  ):is(:link, :visited) {
    color: var(--banner-readable-link);
    text-decoration-line: underline;
    text-decoration-color: currentColor;
    text-decoration-thickness: 1px;
    text-underline-offset: .24em;
  }

  body[data-page] [data-motion-banner] :is(
    .breadcrumb a, .text-link, .banner-wayfinding, .prism-discover,
    .prism-guide-link, .business-workspace-link, .contact-details a,
    .approach-page-links a, .review-page-links a, .privacy-page-links a,
    .resources-page-links a, .results-page-links a, .services-page-links a,
    .homeowner-hero-tools a, .homeowners-hero-tools a,
    .identity-hero-tools a, .individuals-hero-tools a,
    .lemon-hero-tools a, .loan-hero-tools a
  ):is(:hover, :focus-visible) {
    color: var(--banner-readable-hover);
    text-decoration-thickness: 2px;
  }

  /* Page-navigation labels and publication dates are text, not disabled UI. */
  body[data-page] [data-motion-banner] :is(
    .approach-page-links, .review-page-links, .privacy-page-links,
    .resources-page-links, .results-page-links, .services-page-links
  ) > span,
  body[data-page] [data-motion-banner] .privacy-updated {
    color: var(--banner-readable-label);
    opacity: 1;
  }

  /* Dark teaser cards already have light copy; lock visited/hover colors to
     that theme, and keep the accompanying small copy and icons readable. */
  body[data-page] [data-motion-banner] :is(
    .home-explorer-entry, .business-cases-entry,
    .businesses-hero-tools a, .consumer-hero-tools a, .contact-save
  ):is(:link, :visited) {
    color: #fff8ef;
  }

  body[data-page] [data-motion-banner] :is(
    .home-explorer-entry, .business-cases-entry,
    .businesses-hero-tools a, .consumer-hero-tools a, .contact-save
  ):is(:hover, :focus-visible) {
    color: #fff8ef;
    border-color: #ffe1a3;
  }

  body[data-page] [data-motion-banner] :is(
    .home-explorer-entry, .business-cases-entry,
    .businesses-hero-tools a, .consumer-hero-tools a, .contact-save
  ) svg {
    color: var(--banner-readable-link);
  }

  /* The contact-card icon used to inherit the purple intended for white cards. */
  body[data-page] [data-motion-banner] .contact-save {
    background-color: #ffffff08;
  }
  body[data-page] [data-motion-banner] .contact-save:is(:hover, :focus-visible) {
    background-color: #ffffff12;
  }
  body[data-page] [data-motion-banner] .contact-save small {
    color: var(--banner-readable-label);
  }

  /* Gold primary buttons and outlined secondary buttons keep paired colors. */
  body[data-page] [data-motion-banner] .btn-primary:is(:link, :visited) {
    color: #261336;
    background-color: #eed094;
  }
  body[data-page] [data-motion-banner] .btn-primary:is(:hover, :focus-visible) {
    color: #22122e;
    background-color: #fff1ce;
  }
  body[data-page] [data-motion-banner] .btn-light:is(:link, :visited) {
    color: #fff8ef;
    background-color: #ffffff06;
  }
  body[data-page] [data-motion-banner] .btn-light:is(:hover, :focus-visible) {
    color: #ffffff;
    background-color: #ffffff15;
    border-color: #ecd0f7;
  }

  /* Terms and Thank You intentionally use light navigation cards. */
  body[data-page] [data-motion-banner] :is(.terms-page-links, .thanks-page-links) a:is(:link, :visited) {
    color: #2c123f;
    background-color: #fffefa;
  }
  body[data-page] [data-motion-banner] :is(.terms-page-links, .thanks-page-links) a:is(:hover, :focus-visible) {
    color: #2c123f;
    background-color: #f5e9cb;
    border-color: #4e177f;
  }
  body[data-page] [data-motion-banner] :is(.terms-page-links, .thanks-page-links) a > span {
    color: #4e177f;
  }

  /* This ring sits outside each link/button, against the dark banner surface.
     It overrides the later page styles that used a low-contrast purple ring. */
  body[data-page] [data-motion-banner] :is(a, button):focus-visible {
    outline: 3px solid var(--banner-readable-focus);
    outline-offset: 5px;
  }
}

/* Let the user's contrast palette control foregrounds and focus indicators. */
@media screen and (forced-colors: active) {
  body[data-page] [data-motion-banner] {
    --banner-readable-link: LinkText;
    --banner-readable-hover: LinkText;
    --banner-readable-label: CanvasText;
    --banner-readable-focus: Highlight;
  }
  body[data-page] [data-motion-banner] :is(a, button):focus-visible {
    outline-color: Highlight;
  }
}
