/* ============================================================
   ANIMATIONS.CSS — Reveal animations, transitions
============================================================ */

/* Initial hidden states */
.reveal-up {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal-left {
  opacity: 0;
  transform: translateX(-36px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal-right {
  opacity: 0;
  transform: translateX(36px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal-fade {
  opacity: 0;
  transition: opacity 0.8s ease;
}

/* Visible state — added by JS */
.reveal-up.is-visible,
.reveal-left.is-visible,
.reveal-right.is-visible,
.reveal-fade.is-visible {
  opacity: 1;
  transform: none;
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .reveal-up, .reveal-left, .reveal-right, .reveal-fade {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---- Modal open/close animation ---- */
.modal-overlay {
  animation: modalFadeIn 0.2s ease;
}
.modal-box {
  animation: modalSlideUp 0.25s ease;
}
@keyframes modalFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes modalSlideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---- Page load fade ---- */
body { animation: pageFadeIn 0.4s ease; }
@keyframes pageFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ---- Pulse animation for floating WA ---- */
.floating-wa::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(37,211,102,0.5);
  animation: waPulse 2.5s ease-out infinite;
}
@keyframes waPulse {
  0%   { transform: scale(1); opacity: 0.7; }
  70%  { transform: scale(1.35); opacity: 0; }
  100% { transform: scale(1.35); opacity: 0; }
}

/* ---- Image hover zoom (model cards) ---- */
.modelo-card__image-wrap { will-change: transform; }

/* ---- Smooth section transitions ---- */
section { will-change: auto; }
