/* =========================================================
   ANIMATIONS.CSS — Keyframes & micro-interactions
   Works alongside AOS (fade-up/left/right/zoom via data-aos attrs)
========================================================= */

@keyframes pulse{
  0%   { box-shadow: 0 0 0 0 rgba(74,155,38,.45); }
  70%  { box-shadow: 0 0 0 14px rgba(74,155,38,0); }
  100% { box-shadow: 0 0 0 0 rgba(74,155,38,0); }
}
.fab--whatsapp{ animation: pulse 2.4s infinite; }

@keyframes floatY{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-8px); }
}
.why-image__stat-card{ animation: floatY 4s ease-in-out infinite; }

@keyframes badgeDot{
  0%,100%{ opacity:1; } 50%{ opacity:.4; }
}
.hero__badge .dot{ animation: badgeDot 1.8s ease-in-out infinite; }

/* Hover lift utility */
.hover-lift{ transition: transform .25s ease, box-shadow .25s ease; }
.hover-lift:hover{ transform: translateY(-6px); }

/* Accordion open state (max-height set inline via JS) */
.accordion__item.is-open .accordion__panel{ }

/* Image zoom on hover for cards containing .zoom-img */
.zoom-img{ overflow:hidden; }
.zoom-img img{ transition: transform .5s ease; }
.zoom-img:hover img{ transform: scale(1.06); }

/* Button press feedback */
.btn:active{ transform: scale(.97); }

/* Fade-in for form success state */
.form-success{ animation: fadeIn .4s ease; }
@keyframes fadeIn{ from{ opacity:0; transform: translateY(8px);} to{ opacity:1; transform:translateY(0);} }

/* Counter number pop (triggered class added by JS) */
.stat-item__number.is-counted{ animation: countPop .4s ease; }
@keyframes countPop{ 0%{ transform: scale(.9); } 60%{ transform: scale(1.05); } 100%{ transform: scale(1); } }
