/* GKS LATAM shared motion system */
body:not(.gks-motion-off) section:not(.hero) > .container > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) main > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .service-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .plan-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .brand-item:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .case-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .office-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .info-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .sw-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .faq-item:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .edu-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .problem-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .benefit-item:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .fw-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .sl-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .wv-step:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .media-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .image-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .case-media:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .how-step:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .how-visual-img:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .cfia-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .contact-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .stat-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .feature-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .pillar-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .process-step:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .nem-brand-card:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .access-link:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) .ct-item:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) footer .footer-inner > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) [class*="-grid"] > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) [class*="-cards"] > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) [class*="-list"] > *:not(.visible):not(.on):not([data-gks-animated="1"]),
body:not(.gks-motion-off) section:not(.hero) [class*="-programs"] > *:not(.visible):not(.on):not([data-gks-animated="1"]) {
  opacity: 0;
  transform: translateY(32px);
}

.reveal,
.fade-in {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .72s ease, transform .72s ease;
  will-change: opacity, transform;
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity .72s ease, transform .72s ease;
  will-change: opacity, transform;
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .72s ease, transform .72s ease;
  will-change: opacity, transform;
}

.reveal.visible,
.reveal.on,
.reveal-left.visible,
.reveal-left.on,
.reveal-right.visible,
.reveal-right.on,
.fade-in.visible,
.fade-in.on {
  opacity: 1;
  transform: none;
}

.floating {
  animation: gksFloat 7s ease-in-out infinite;
  will-change: transform;
}

.floating-slow {
  animation: gksFloat 11s ease-in-out infinite;
  will-change: transform;
}

.motion-hover,
.card,
.service-card,
.plan-card,
.brand-item,
.case-card,
.info-card,
.office-card,
.pillar-card,
.sw-card {
  transition-timing-function: ease;
}

@keyframes gksFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@media (max-width: 768px) {
  .reveal-left,
  .reveal-right {
    transform: translateY(28px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-left,
  .reveal-right,
  .fade-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .floating,
  .floating-slow {
    animation: none !important;
  }
}
