/* REVEAL GENÉRICO */
[data-reveal]{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}
[data-reveal].is-visible{ opacity: 1; transform: none; }

/* VARIANTES OPCIONAIS */
[data-reveal="fade-left"]{  transform: translateX(16px); }
[data-reveal="fade-right"]{ transform: translateX(-16px); }
[data-reveal="zoom"]{       transform: scale(.96); }
[data-reveal="fade-left"].is-visible,
[data-reveal="fade-right"].is-visible,
[data-reveal="zoom"].is-visible{ transform: none; }

/* PARALLAX DO HERO (usa --py setada via JS) */
[data-parallax] .parallax-bg{
  transform: translateY(var(--py, 0));
  transition: transform .12s linear;
  will-change: transform;
}

/* HOVERS DO HERO */
.hero-title{
  transition: transform .35s ease, text-shadow .35s ease, letter-spacing .35s ease;
  will-change: transform;
}
.hero-title:hover{
  transform: translateY(-2px) scale(1.01);
  letter-spacing: .2px;
  text-shadow: 0 8px 22px rgba(0,0,0,.25);
}

.tilt-card{
  transform-style: preserve-3d;
  transition: transform .35s ease, box-shadow .35s ease, filter .35s ease;
  will-change: transform;
}
.tilt-card:hover{
  transform: translateY(-6px) rotateX(2deg) rotateY(-2deg);
  box-shadow: 0 30px 60px rgba(11,26,51,.35);
  filter: saturate(1.05);
}

/* selo/flutuante do hero */
.float-badge{ animation: floatY 3.5s ease-in-out infinite; }
@keyframes floatY{
  0%,100%{ transform: translate3d(0,0,0); }
  50%{     transform: translate3d(0,-6px,0); }
}

/* leve zoom do bg ao passar o mouse no herói */
[data-parallax]:hover .parallax-bg{
  transform: translateY(var(--py,0)) scale(1.02);
  transition: transform .6s ease;
}

/* Acessibilidade */
@media (prefers-reduced-motion: reduce){
  .hero-title, .tilt-card, [data-parallax] .parallax-bg, .float-badge{
    transition: none !important;
    animation: none !important;
  }
}
/* FAB do WhatsApp: flutuar + anel pulsante */
.whatsapp-fab{
  position: fixed;            /* já vem dos utilitários, mas garantimos */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  will-change: transform, filter;
  transform: translateZ(0);   /* ativa aceleração */
  animation: wa-bob 3.8s ease-in-out infinite;
  /* deixa o pseudo-elemento visível */
  overflow: visible;
}

/* anel pulsante */
.whatsapp-fab::after{
  content: "";
  position: absolute;
  inset: 0;                   /* cobre o botão */
  border-radius: inherit;
  pointer-events: none;       /* não bloqueia cliques */
  box-shadow: 0 0 0 0 rgba(37,211,102,0.35); /* #25D366 com alpha */
  transform: scale(1);
  opacity: .5;
  animation: wa-pulse 2.4s ease-out infinite;
}

/* hover dá um "pop" */
.whatsapp-fab:hover{
  transform: translateY(-2px) scale(1.05) rotate(-2deg);
  transition: transform .25s ease;
}

/* keyframes */
@keyframes wa-bob{
  0%,100%{ transform: translateY(0) }
  50%    { transform: translateY(-6px) }
}
@keyframes wa-pulse{
  0%   { transform: scale(1);   opacity:.5; box-shadow: 0 0 0 0   rgba(37,211,102,0.35); }
  70%  { transform: scale(1.75);opacity:0;  box-shadow: 0 0 0 22px rgba(37,211,102,0.00); }
  100% { opacity:0; }
}

/* acessibilidade: respeita redução de movimento */
@media (prefers-reduced-motion: reduce){
  .whatsapp-fab,
  .whatsapp-fab::after{
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}