/* Per-page fixed backgrounds — content scrolls over; tab title stays visible */

.has-page-bg {
  background: transparent;
}

.has-page-bg::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -2;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

.has-page-bg::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(18, 18, 18, 0.06);
  pointer-events: none;
}

.page-home::before { background-image: url('../HomeImage.jpeg'); }
.page-rooms::before { background-image: url('../OverheadRooms.jpeg'); }
.page-dining::before { background-image: url('../BeefySnack.jpeg'); }
.page-facilities::before { background-image: url('../PoolArea.jpg'); }
.page-conferences::before { background-image: url('../Conference1.jpeg'); }
.page-gallery::before { background-image: url('../AnimalStatue.jpg'); }
.page-about::before { background-image: url('../Greenery.jpg'); }
.page-contact::before { background-image: url('../RestaurantandReception.jpeg'); }
.page-privacy::before { background-image: url('../RestaurantandReception.jpeg'); }
.page-shuttle::before { background-image: url('../ShuttleService1.jpeg'); }

/* Semi-transparent sections so the fixed background stays visible while scrolling */
.has-page-bg .section--light {
  background: rgba(245, 245, 240, 0.78);
}

.has-page-bg .section--light .text-body,
.has-page-bg .section--white .text-body,
.has-page-bg .section--light .facility-card__desc,
.has-page-bg .section--white .facility-card__desc,
.has-page-bg .section--light .event-card__desc,
.has-page-bg .section--white .event-card__desc {
  color: var(--color-charcoal);
}

.has-page-bg .section--white {
  background: rgba(255, 255, 255, 0.8);
}

.has-page-bg .section--dark {
  background: rgba(44, 44, 44, 0.74);
}

.has-page-bg .stats-strip {
  background: rgba(44, 44, 44, 0.72);
}

.has-page-bg .site-footer {
  background: rgba(26, 26, 26, 0.86);
}

.has-page-bg .page-banner {
  overflow: visible;
}

.has-page-bg .page-banner__veil {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(
    to top,
    rgba(26, 26, 26, 0.72) 0%,
    rgba(26, 26, 26, 0.28) 55%,
    rgba(26, 26, 26, 0.08) 100%
  );
  pointer-events: none;
}

.has-page-bg .page-banner__sticky-wrap {
  position: sticky;
  top: calc(var(--nav-height) + var(--accent-bar-height));
  z-index: 30;
  width: 100%;
  margin-top: auto;
  background: rgba(26, 26, 26, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 2px solid var(--color-gold);
}

.has-page-bg .page-banner__sticky-wrap .page-banner__content {
  padding-top: 28px;
  padding-bottom: 28px;
}

.has-page-bg .page-banner--media .page-banner__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.has-page-bg .page-banner--media .page-banner__sticky-wrap {
  z-index: 30;
}

@media (max-width: 768px) {
  .has-page-bg .page-banner__sticky-wrap {
    position: relative;
    top: auto;
  }

  .has-page-bg .page-banner__sticky-wrap .page-banner__content {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .has-page-bg .page-banner__title {
    font-size: clamp(32px, 7vw, 48px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .has-page-bg::before,
  .has-page-bg::after {
    position: absolute;
  }
}
