/* Scroll reveal — inspirado em Elementor / Good Agency */

.w2sat-reveal {
  opacity: 0;
  will-change: opacity, transform;
}

.w2sat-reveal.is-visible {
  animation-duration: var(--w2sat-reveal-duration, 1000ms);
  animation-delay: var(--w2sat-reveal-delay, 0ms);
  animation-fill-mode: both;
  animation-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1);
}

.w2sat-reveal--fadeIn.is-visible {
  animation-name: w2satFadeIn;
}

.w2sat-reveal--fadeInUp.is-visible,
.w2sat-reveal--fade-in-up.is-visible {
  animation-name: w2satFadeInUp;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--fadeInDown.is-visible,
.w2sat-reveal--fade-in-down.is-visible {
  animation-name: w2satFadeInDown;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--fadeInLeft.is-visible,
.w2sat-reveal--fade-in-left.is-visible {
  animation-name: w2satFadeInLeft;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--fadeInRight.is-visible,
.w2sat-reveal--fade-in-right.is-visible {
  animation-name: w2satFadeInRight;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--slideInLeft.is-visible {
  animation-name: w2satSlideInLeft;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--slideInRight.is-visible {
  animation-name: w2satSlideInRight;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.w2sat-reveal--zoomIn.is-visible,
.w2sat-reveal--zoom-in.is-visible {
  animation-name: w2satZoomIn;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@keyframes w2satFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes w2satFadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 56px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satFadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -40px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satFadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-48px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satFadeInRight {
  from {
    opacity: 0;
    transform: translate3d(48px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satSlideInLeft {
  from {
    opacity: 0;
    transform: translate3d(-72px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satSlideInRight {
  from {
    opacity: 0;
    transform: translate3d(72px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes w2satZoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.88, 0.88, 1);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .w2sat-reveal {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}
