﻿@keyframes btnShimmer {
  0% { transform: translateX(-140%) skewX(-18deg); }
  100% { transform: translateX(360%) skewX(-18deg); }
}

@keyframes btnPulseGlow {
  0% { box-shadow: 0 8px 18px rgba(255, 128, 0, 0.22); }
  50% { box-shadow: 0 16px 28px rgba(255, 128, 0, 0.42); }
  100% { box-shadow: 0 8px 18px rgba(255, 128, 0, 0.22); }
}

@keyframes neSkeletonShimmer {
  0% { transform: translateX(-90%); }
  100% { transform: translateX(220%); }
}

.ne-anim--final {
  --al-btn-shimmer-duration: 1.35s;
  --mg-btn-swap-duration: 0.9s;
}

.ne-anim--final.ne-preload .hero__title,
.ne-anim--final.ne-preload .hero__text,
.ne-anim--final.ne-preload .hero__cta,
.ne-anim--final.ne-preload .stat-card,
.ne-anim--final.ne-preload .section__title,
.ne-anim--final.ne-preload .section__text,
.ne-anim--final.ne-preload .section__accent,
.ne-anim--final.ne-preload .team-card,
.ne-anim--final.ne-preload .faq-module__header,
.ne-anim--final.ne-preload .faq-module__item,
.ne-anim--final.ne-preload .journey-cta__card,
.ne-anim--final.ne-preload .link-fab {
  opacity: 0 !important;
}

.ne-anim--final .hero__cta,
.ne-anim--final .journey-cta__btn,
.ne-anim--final .link-fab {
  position: relative;
  overflow: hidden;
}

.ne-anim--final .link-fab.link-fab--floating {
  position: fixed;
  right: 18px;
  bottom: 120px;
  z-index: 1030;
}

.ne-anim--final .hero__bg {
  transform: translate3d(var(--hero-parallax-x, 0px), var(--hero-parallax-y, 0px), 0) scale(1.02);
  transition: transform 0.15s ease-out;
  will-change: transform;
}

.ne-anim--final .mg-btn { position: relative; }
.ne-anim--final .mg-btn__inner { display: inline-flex; align-items: center; gap: 10px; }
.ne-anim--final .mg-btn__swap { position: relative; display: inline-grid; overflow: hidden; }
.ne-anim--final .mg-btn__swap-text {
  grid-area: 1 / 1;
  transition: transform var(--mg-btn-swap-duration, 0.42s) cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ne-anim--final .mg-btn__swap-text.is-absolute {
  position: absolute;
  inset: 0;
  transform: translate3d(0, 130%, 0);
}
.ne-anim--final .mg-btn:hover .mg-btn__swap-text.is-absolute,
.ne-anim--final .mg-btn:focus-visible .mg-btn__swap-text.is-absolute {
  transform: translate3d(0, 0, 0);
}
.ne-anim--final .mg-btn:hover .mg-btn__swap-text.is-relative,
.ne-anim--final .mg-btn:focus-visible .mg-btn__swap-text.is-relative {
  transform: translate3d(0, -130%, 0);
}
.ne-anim--final .mg-btn__icon {
  grid-area: 1 / 1;
  display: grid;
  place-items: center;
  transition: transform var(--mg-btn-swap-duration, 0.42s) cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ne-anim--final .mg-btn__icon.is-absolute {
  position: absolute;
  inset: 0;
  transform: translate3d(0, 130%, 0);
}
.ne-anim--final .mg-btn:hover .mg-btn__icon.is-absolute,
.ne-anim--final .mg-btn:focus-visible .mg-btn__icon.is-absolute {
  transform: translate3d(0, 0, 0);
}
.ne-anim--final .mg-btn:hover .mg-btn__icon.is-relative,
.ne-anim--final .mg-btn:focus-visible .mg-btn__icon.is-relative {
  transform: translate3d(0, -130%, 0);
}
.ne-anim--final .mg-btn__icon-wrap {
  width: var(--mg-icon-size, 16px);
  height: var(--mg-icon-size, 16px);
}
.ne-anim--final .mg-btn__icon svg { width: 100%; height: 100%; display: block; }

.ne-anim--final .al-btn-shimmer::after {
  content: "";
  position: absolute;
  top: -60%;
  left: -60%;
  width: 45%;
  height: 220%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transform: translateX(-140%) skewX(-18deg);
  pointer-events: none;
}

.ne-anim--final.is-loaded .al-btn-shimmer::after {
  animation: btnShimmer var(--al-btn-shimmer-duration, 1.05s) ease 0.25s 1;
}

.ne-anim--final .al-btn-shimmer:hover::after,
.ne-anim--final .al-btn-shimmer:focus-visible::after {
  animation: btnShimmer var(--al-btn-shimmer-duration, 1.05s) ease 0s 1;
}

.ne-anim--final .al-pulse-on-load {
  animation: btnPulseGlow 1.6s ease-in-out 2;
}

.ne-anim--final .hero__cta:not(.mg-btn) svg,
.ne-anim--final .team-card__link:not(.mg-btn),
.ne-anim--final .journey-cta__btn:not(.mg-btn),
.ne-anim--final .link-fab:not(.mg-btn) {
  transition: transform 0.2s ease, color 0.2s ease;
}

.ne-anim--final .hero__cta:not(.mg-btn):hover svg,
.ne-anim--final .hero__cta:not(.mg-btn):focus-visible svg,
.ne-anim--final .team-card__link:not(.mg-btn):hover,
.ne-anim--final .team-card__link:not(.mg-btn):focus-visible,
.ne-anim--final .journey-cta__btn:not(.mg-btn):hover,
.ne-anim--final .journey-cta__btn:not(.mg-btn):focus-visible,
.ne-anim--final .link-fab:not(.mg-btn):hover,
.ne-anim--final .link-fab:not(.mg-btn):focus-visible {
  transform: translateX(3px);
}

.ne-anim--final .al-reveal {
  opacity: 0;
  filter: blur(var(--reveal-blur, 0px));
  transform: translate3d(var(--reveal-x, 0px), var(--reveal-y, 18px), 0) scale(var(--reveal-scale, 1));
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.5s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: transform, opacity, filter;
}

.ne-anim--final .al-reveal.is-visible {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

.ne-anim--final .al-reveal--up { --reveal-y: 18px; }
.ne-anim--final .al-reveal--left { --reveal-x: -14px; --reveal-y: 0px; }
.ne-anim--final .al-reveal--right { --reveal-x: 14px; --reveal-y: 0px; }
@media (max-width: 767.98px) {
  /* Celular: sem deslocamento lateral antes de aparecer (evita rolagem horizontal). */
  .ne-anim--final .al-reveal--left,
  .ne-anim--final .al-reveal--right { --reveal-x: 0px; --reveal-y: 18px; }
}
.ne-anim--final .al-reveal--scale { --reveal-scale: 0.96; --reveal-y: 10px; }
.ne-anim--final .al-reveal--blur { --reveal-blur: 10px; --reveal-y: 10px; }

.ne-anim--final .js-img-skeleton {
  position: relative;
  overflow: hidden;
  background: #eef1f6;
}

.ne-anim--final .js-img-skeleton.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, 0.7) 45%, transparent 70%);
  transform: translateX(-90%);
  animation: neSkeletonShimmer 1.1s ease-in-out infinite;
  pointer-events: none;
}

.ne-anim--final .js-img-skeleton img {
  display: block;
}

.ne-anim--final .js-img-skeleton.is-loading img {
  opacity: 0;
  --team-card-photo-scale: 1.045;
  filter: saturate(0.96);
}

.ne-anim--final .js-img-skeleton.is-loaded img {
  opacity: 1;
  --team-card-photo-scale: 1.015;
  filter: none;
  transition:
    opacity 0.35s ease,
    transform 0.72s cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 0.45s ease;
}

.ne-anim--final .team-card:hover .js-img-skeleton.is-loaded img,
.ne-anim--final .team-card:focus-within .js-img-skeleton.is-loaded img {
  --team-card-photo-scale: 1.055;
}

@media (prefers-reduced-motion: reduce) {
  .ne-anim--final .al-btn-shimmer::after {
    display: none;
  }

  .ne-anim--final .hero__bg,
  .ne-anim--final .mg-btn__swap-text,
  .ne-anim--final .mg-btn__icon,
  .ne-anim--final .team-card__photo,
  .ne-anim--final .hero__cta svg,
  .ne-anim--final .team-card__link,
  .ne-anim--final .journey-cta__btn,
  .ne-anim--final .link-fab,
  .ne-anim--final .al-reveal {
    transition: none;
    animation: none;
    transform: none;
    opacity: 1;
    filter: none;
  }
}

@media (max-width: 575.98px) {
  .ne-anim--final .link-fab.link-fab--floating {
    right: 12px;
    bottom: 104px;
  }
}
