/* Zip-Floors responsive banner media — 2026-07-19.
   Loaded after the page-specific stylesheet so the migration remains isolated. */

.zf-page-hero,
.zf-cta-banner {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-color: #292725;
  background-image: none !important;
}

.zf-banner-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.zf-banner-media img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.zf-page-hero > .page-title-overlay,
.zf-cta-banner > .cta-overlay {
  z-index: 1;
}

.zf-page-hero > .container,
.zf-cta-banner > .container {
  position: relative;
  z-index: 2;
}

.zf-page-hero > .page-title-overlay {
  opacity: 1;
  background: linear-gradient(
    90deg,
    rgba(19, 18, 17, 0.66) 0%,
    rgba(19, 18, 17, 0.48) 38%,
    rgba(19, 18, 17, 0.22) 72%,
    rgba(19, 18, 17, 0.18) 100%
  );
}

.zf-page-hero h1,
.zf-page-hero .page-title-subtitle,
.zf-page-hero .breadcrumbs {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.34);
}

.zf-cta-banner > .cta-overlay {
  opacity: 1;
  background: linear-gradient(
    90deg,
    rgba(18, 17, 16, 0.57) 0%,
    rgba(18, 17, 16, 0.36) 48%,
    rgba(18, 17, 16, 0.43) 100%
  );
}

.zf-cta-banner .cta-heading {
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

@media (max-width: 1000px) {
  .zf-page-hero > .page-title-overlay {
    background: linear-gradient(
      90deg,
      rgba(17, 16, 15, 0.68) 0%,
      rgba(17, 16, 15, 0.53) 58%,
      rgba(17, 16, 15, 0.31) 100%
    );
  }

  .zf-cta-banner > .cta-overlay {
    background: linear-gradient(
      90deg,
      rgba(16, 15, 14, 0.38) 0%,
      rgba(16, 15, 14, 0.22) 100%
    );
  }
}

@media (prefers-reduced-data: reduce) {
  .zf-banner-media img {
    image-rendering: auto;
  }
}

