/**
 * ==============================================================================
 * ANIMAÇÕES E TRANSIÇÕES - DR. JEFFERSON FREITAS
 * ==============================================================================
 */

/* Scroll Reveal */
.rv {
  opacity: 0;
  transform: translateY(24px);
  transition: 
    opacity var(--anim-reveal-duration) cubic-bezier(0.16, 1, 0.3, 1),
    transform var(--anim-reveal-duration) cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.rv.is-revealed,
.rv.in {
  opacity: 1;
  transform: translateY(0);
}

.rv--scale {
  transform: scale(0.95);
}
.rv--scale.is-revealed,
.rv--scale.in {
  transform: scale(1);
}

.rv-d1 { transition-delay: 0.12s; }
.rv-d2 { transition-delay: 0.22s; }
.rv-d3 { transition-delay: 0.32s; }
.rv-d4 { transition-delay: 0.44s; }

/* Pulso suave para botões e destaques */
@keyframes pulseGlowWhats {
  0%, 100% {
    box-shadow: 0 8px 24px var(--color-whatsapp-glow);
  }
  50% {
    box-shadow: 0 12px 34px rgba(37, 211, 102, 0.65);
  }
}

.pulse-whats {
  animation: pulseGlowWhats 3s infinite ease-in-out;
}

/* Shimmer luminoso nos botões */
@keyframes shimmerPass {
  0% { transform: translateX(-150%) skewX(-20deg); }
  100% { transform: translateX(250%) skewX(-20deg); }
}

.btn-whats {
  position: relative;
  overflow: hidden;
}

.btn-whats::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.32) 50%, transparent 100%);
  transform: translateX(-150%) skewX(-20deg);
  pointer-events: none;
}

.btn-whats:hover::after {
  animation: shimmerPass 1.2s ease-in-out infinite;
}

/* Flutuação suave */
@keyframes floatSoft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.float-anim {
  animation: floatSoft 4s ease-in-out infinite;
}

/* Cursor piscando na Hero badge */
@keyframes lcBlink {
  0%, 50% { opacity: 1; }
  50.01%, 100% { opacity: 0; }
}

.cursor-blink {
  animation: lcBlink 1s infinite;
}

/* Acordeão do FAQ */
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
  opacity: 0;
}

.faq-answer > div {
  overflow: hidden;
}

.faq-item.is-open .faq-answer {
  grid-template-rows: 1fr;
  opacity: 1;
}

.faq-icon {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.faq-item.is-open .faq-icon {
  transform: rotate(180deg);
}

/* Barra Sticky */
.sticky-mobile-bar {
  transform: translateY(120%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.sticky-mobile-bar.is-visible {
  transform: translateY(0);
}

/* Acessibilidade */
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .rv {
    opacity: 1 !important;
    transform: none !important;
  }
}

body[data-animations="false"] .rv {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

body[data-animations="false"] * {
  animation: none !important;
}
