/* =========================================
   ANIMAÇÕES — keyframes
   ========================================= */
@keyframes spz-spin{
  to{transform:rotate(360deg);}
}

@keyframes spz-fade-up{
  from{opacity:0; transform:translateY(28px);}
  to{opacity:1; transform:translateY(0);}
}

@keyframes spz-fade-in{
  from{opacity:0;}
  to{opacity:1;}
}

@keyframes spz-scale-in{
  from{opacity:0; transform:scale(.94);}
  to{opacity:1; transform:scale(1);}
}

@keyframes spz-float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}

/* =========================================
   SCROLL REVEAL
   Elementos com [data-reveal] começam ocultos
   e são animados via animations.js (IntersectionObserver)
   quando entram na viewport, adicionando a classe
   .is-visible.
   ========================================= */
[data-reveal]{
  opacity:0;
  will-change:transform, opacity;
}
[data-reveal="up"]{transform:translateY(28px);}
[data-reveal="fade"]{transform:none;}
[data-reveal="scale"]{transform:scale(.94);}

[data-reveal].is-visible{
  animation:spz-fade-up var(--duracao-lenta) var(--ease-base) forwards;
}
[data-reveal="fade"].is-visible{
  animation:spz-fade-in var(--duracao-lenta) var(--ease-base) forwards;
}
[data-reveal="scale"].is-visible{
  animation:spz-scale-in var(--duracao-media) var(--ease-base) forwards;
}

/* Atraso escalonado para grids de cards (até 6 itens) */
[data-reveal-group] > *:nth-child(1){transition-delay:0ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(1){animation-delay:0ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(2){animation-delay:90ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(3){animation-delay:180ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(4){animation-delay:270ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(5){animation-delay:360ms;}
[data-reveal-group] > [data-reveal].is-visible:nth-child(6){animation-delay:450ms;}

/* =========================================
   HEADER — leve reação ao rolar a página
   ========================================= */
.nav-inner.is-scrolled{
  background:rgba(18,38,25,.82);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}

/* =========================================
   MICRO-INTERAÇÕES
   ========================================= */
.wa-float{
  animation:spz-float 3.2s ease-in-out infinite;
}
.wa-float:hover{
  animation-play-state:paused;
}

.logo-img{
  transition:transform var(--duracao-media) var(--ease-base);
}
.logo:hover .logo-img{
  transform:scale(1.05);
}

.icon-badge{
  transition:transform var(--duracao-rapida) var(--ease-base), background var(--duracao-rapida) var(--ease-base);
}
.card:hover .icon-badge{
  transform:scale(1.08);
  background:var(--green-accent);
  color:var(--forest-900);
}

/* Contador animado das estatísticas (valor final trocado via animations.js) */
.stats-grid .num{
  font-variant-numeric:tabular-nums;
}

@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1 !important; transform:none !important; animation:none !important;}
  .wa-float{animation:none;}
}
