/* Fast, reliable paint: content is never hidden while JavaScript initializes. */
.reveal,
.reveal.is-visible,
.hero-content.reveal,
.hero-content.reveal.is-visible,
.booking-panel.reveal,
.booking-panel.reveal.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
  transition-delay: 0ms !important;
  will-change: auto !important;
}

/* Keep the real toucan in the hero, but remove the costly canvas particles. */
.nature-depth-canvas {
  display: none !important;
}

.ambient-wallpaper-image,
.ambient-wallpaper-shade,
.ambient-page-tint {
  animation: none !important;
  will-change: auto !important;
}

/* Hidden gallery categories and inactive carousel frames occupy no space. */
.gallery-panel[hidden] {
  display: none !important;
}

.property-window-slide:not(.is-active),
.light-story-slide:not(.is-active) {
  pointer-events: none;
}

.property-window-slide.is-active,
.light-story-slide.is-active {
  opacity: 1 !important;
  visibility: visible !important;
}

/* The live calendar replaces this message as soon as Your.Rentals responds. */
.yr-widget-direct-booking:empty {
  display: grid;
  min-height: 190px;
  place-items: center;
  padding: 1.25rem;
  color: #34554d;
  background: #edf5f1;
  border: 1px solid rgba(52, 85, 77, 0.2);
  text-align: center;
}

.yr-widget-direct-booking:empty::before {
  content: "Loading live availability / Cargando disponibilidad";
  font: 500 0.9rem/1.5 var(--font-sans, sans-serif);
  letter-spacing: 0;
}

.gallery-reel-controls button {
  font-size: 1.8rem;
  line-height: 1;
}
/* Complete photographs on clean, bright surfaces without black bars. */
.property-window,
.property-window-stage,
.light-story-stage,
.gallery-feature,
.gallery-photo {
  background-color: #edf5f1 !important;
}

.property-window-slide img,
.light-story-slide img,
.gallery-feature img,
.gallery-photo img {
  background: transparent !important;
  filter: none !important;
}

/* Reduce repaint work in repeated content while preserving every item. */
.gallery-photo,
.concierge-card,
.amenity,
.trust-card,
.sync-card,
.guest-highlight {
  contain: layout paint style;
}

@media (max-width: 900px) {
  .gallery-showcase,
  .day-journey .section-heading,
  .light-story {
    grid-template-columns: 1fr !important;
  }

  .gallery-photo-grid {
    scroll-snap-type: x mandatory;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }
}