/* ==========================================================================
   ANIMATIONS & MOTION SYSTEM (GSAP & Lenis Enhancements)
   ========================================================================== */

/* Lenis Recommended CSS */
html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/* Stagger & Text Masking */
.reveal-wrap {
  overflow: hidden;
  display: block;
}

.reveal-inner {
  display: block;
  transform: translateY(110%);
  opacity: 0;
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.8s ease;
}

.reveal-inner.is-inview {
  transform: translateY(0);
  opacity: 1;
}

/* Floating Badges */
@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

.floating-elem {
  animation: floatSlow 5s ease-in-out infinite;
}

/* Shimmer / Skeleton Loader */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.shimmer-effect {
  background: linear-gradient(90deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.03) 100%);
  background-size: 200% 100%;
  animation: shimmer 2.5s infinite;
}

/* Joakim-Style Scroll-Reactive Image Zoom & Parallax System */
[data-scroll-zoom],
.img-parallax-container,
.hero-card,
.pinned-images-wrap,
.ambiance-img-wrap,
.swiper-slide,
.img-1-sec-3-wrapper,
.img-2-sec-3wrapper {
  overflow: hidden !important;
  position: relative;
}

[data-scroll-zoom] img,
.img-parallax-container img,
.hero-card img,
.pinned-images-wrap img,
.ambiance-img-wrap img,
.swiper-slide img,
.img-1-sec-3-wrapper img,
.img-2-sec-3wrapper img {
  will-change: transform;
  transform-origin: center center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Notification Toast */
.booking-toast {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--color-bg-card);
  color: var(--color-text-primary);
  border: 1px solid var(--color-border);
  padding: 1rem 2rem;
  border-radius: 999px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
  font-family: var(--font-mono);
  font-size: 0.85rem;
  z-index: 1100;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s var(--ease-out-expo);
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.booking-toast.is-active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  visibility: visible;
}
