/* Keep the copy readable without bleaching the carousel artwork. */
.carousel-hero::before {
  filter: none;
  background-image: linear-gradient(90deg, #fff 0%, #fffffff0 30%, #ffffffbf 40%, #ffffff1a 56%, #fff0 66%);
}

.carousel-hero::after {
  background: none;
}

.carousel-hero .hero-slide {
  filter: none;
}

/* Shared banners: preserve the original image and protect only the copy. */
.subpage-hero::before,
.resource-hero::before,
.contact-hero::before {
  filter: none;
  background-image: linear-gradient(90deg, #fffffffa 0%, #fffffff0 30%, #ffffffcc 44%, #ffffff52 58%, #fff0 70%), var(--hero-image);
}

.subpage-hero::after,
.resource-hero::after,
.contact-hero::after {
  background: none;
}

.subpage-hero h1,
.resource-hero h1,
.contact-hero h1 {
  max-width: min(640px, 52vw);
}

@media (max-width: 780px) {
  .carousel-hero::before {
    background-image: linear-gradient(180deg, #fffffff5 0%, #ffffffe6 42%, #ffffffa6 65%, #ffffff26 100%);
  }

  .subpage-hero::before,
  .resource-hero::before,
  .contact-hero::before {
    background-image: linear-gradient(180deg, #fffffff5 0%, #ffffffe6 40%, #ffffffad 65%, #ffffff26 100%), var(--hero-image);
  }

  .subpage-hero h1,
  .resource-hero h1,
  .contact-hero h1 {
    max-width: 100%;
  }
}
