/* Floripa Aventura motion system.
   Visual-only layer: no booking, checkout, payment, or calendar logic lives here. */

:root {
  --fa-motion-ease: var(--fa-ease, cubic-bezier(.22, 1, .36, 1));
  --fa-motion-fast: var(--fa-dur-fast, 140ms);
  --fa-motion-med: var(--fa-dur-med, 240ms);
  --fa-motion-slow: 620ms;
  --fa-motion-distance: 22px;
}

.fa-motion-ready .fa-reveal {
  opacity: 0;
  transform: translate3d(0, var(--fa-motion-distance), 0);
  transition:
    opacity var(--fa-motion-slow) var(--fa-motion-ease),
    transform var(--fa-motion-slow) var(--fa-motion-ease);
  transition-delay: var(--fa-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.fa-motion-ready .fa-reveal.is-visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

.fa-motion-ready .fa-reveal[data-fa-motion="fade"] {
  transform: none;
}

.fa-motion-ready .fa-reveal[data-fa-motion="rise-soft"] {
  --fa-motion-distance: 14px;
}

.fa-motion-ready .fa-reveal[data-fa-motion="hero"] {
  --fa-motion-distance: 30px;
  transition-duration: 760ms;
}

.fa-motion-ready .fa-reveal[data-fa-motion="card"] {
  --fa-motion-distance: 18px;
}

.fa-motion-ready .fa-reveal[data-fa-motion="aside"] {
  --fa-motion-distance: 26px;
}

.fa-premium-hover {
  position: relative;
  transition:
    transform var(--fa-motion-med) var(--fa-motion-ease),
    box-shadow 360ms var(--fa-motion-ease),
    filter var(--fa-motion-fast) var(--fa-motion-ease);
}

.fa-premium-hover:hover {
  transform: translateY(-3px);
}

.fa-premium-hover:focus-within {
  transform: translateY(-2px);
}

.fa-premium-media img {
  transition: transform 560ms var(--fa-motion-ease);
}

.fa-premium-media:hover img {
  transform: scale(1.045);
}

.fa-premium-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition:
    transform var(--fa-motion-fast) var(--fa-motion-ease),
    filter var(--fa-motion-fast) var(--fa-motion-ease),
    box-shadow var(--fa-motion-med) var(--fa-motion-ease);
}

.fa-premium-cta::after {
  content: "";
  position: absolute;
  inset: -40% -70%;
  z-index: 0;
  background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.34) 50%, transparent 65%);
  opacity: 0;
  transform: translate3d(-32%, 0, 0) rotate(8deg);
  transition:
    opacity var(--fa-motion-fast) var(--fa-motion-ease),
    transform 620ms var(--fa-motion-ease);
  pointer-events: none;
}

.fa-premium-cta:hover {
  transform: translateY(-2px);
  filter: brightness(1.045);
}

.fa-premium-cta:hover::after {
  opacity: .28;
  transform: translate3d(32%, 0, 0) rotate(8deg);
}

.fa-premium-cta:active {
  transform: translateY(1px) scale(.99);
}

.fa-foot a {
  transition:
    color var(--fa-motion-fast) var(--fa-motion-ease),
    opacity var(--fa-motion-fast) var(--fa-motion-ease),
    transform var(--fa-motion-fast) var(--fa-motion-ease);
}

.fa-foot a:hover {
  transform: translateX(2px);
}

.fa-site-nav__links a,
.fa-site-nav__mobile-panel a,
.fa-site-nav__icon,
.fa-site-nav__menu-button,
.fa-site-nav__cta {
  transition:
    color var(--fa-motion-fast) var(--fa-motion-ease),
    background var(--fa-motion-fast) var(--fa-motion-ease),
    border-color var(--fa-motion-fast) var(--fa-motion-ease),
    transform var(--fa-motion-fast) var(--fa-motion-ease),
    box-shadow var(--fa-motion-med) var(--fa-motion-ease);
}

.fa-site-nav__links a:hover,
.fa-site-nav__icon:hover,
.fa-site-nav__menu-button:hover,
.fa-site-nav__cta:hover {
  transform: translateY(-1px);
}

.fa-motion-ready .fa-site-nav {
  animation: fa-nav-settle 520ms var(--fa-motion-ease) both;
}

@keyframes fa-nav-settle {
  from {
    opacity: 0;
    transform: translate3d(0, -10px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

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

  .fa-motion-ready .fa-reveal,
  .fa-motion-ready .fa-reveal.is-visible,
  .fa-premium-hover,
  .fa-premium-media img,
  .fa-premium-cta,
  .fa-premium-cta::after,
  .fa-foot a,
  .fa-site-nav__links a,
  .fa-site-nav__mobile-panel a,
  .fa-site-nav__icon,
  .fa-site-nav__menu-button,
  .fa-site-nav__cta,
  .fa-motion-ready .fa-site-nav {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}
