/* ========================================
   ANIMATIONS - Zenoteks
   AOS overrides, GSAP helpers, custom keyframes
   ======================================== */

/* AOS CUSTOM OVERRIDES */
[data-aos] { transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }
[data-aos="fade-up"] { transform: translate3d(0, 40px, 0); }
[data-aos="fade-down"] { transform: translate3d(0, -40px, 0); }
[data-aos="fade-left"] { transform: translate3d(40px, 0, 0); }
[data-aos="fade-right"] { transform: translate3d(-40px, 0, 0); }
[data-aos="zoom-in"] { transform: scale(0.85); }

/* COUNTER ANIMATION */
.counter-animate { opacity: 0; transform: translateY(20px); transition: opacity 0.6s, transform 0.6s; }
.counter-animate.visible { opacity: 1; transform: translateY(0); }

/* HERO TEXT REVEAL */
.hero-text-reveal { opacity: 0; transform: translateY(30px); }
.hero-text-reveal.active { opacity: 1; transform: translateY(0); transition: opacity 0.8s ease, transform 0.8s ease; }

/* STAGGER CHILDREN */
.stagger-children > * { opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; }
.stagger-children.animate > *:nth-child(1) { transition-delay: 0s; }
.stagger-children.animate > *:nth-child(2) { transition-delay: 0.1s; }
.stagger-children.animate > *:nth-child(3) { transition-delay: 0.2s; }
.stagger-children.animate > *:nth-child(4) { transition-delay: 0.3s; }
.stagger-children.animate > *:nth-child(5) { transition-delay: 0.4s; }
.stagger-children.animate > *:nth-child(6) { transition-delay: 0.5s; }
.stagger-children.animate > * { opacity: 1; transform: translateY(0); }

/* PULSE */
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.pulse-hover:hover { animation: pulse 1s ease infinite; }

/* FLOAT */
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.float-anim { animation: float 3s ease-in-out infinite; }

/* SHIMMER / SKELETON */
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
.shimmer { background: linear-gradient(90deg, var(--light-gray) 25%, var(--off-white) 50%, var(--light-gray) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; }

/* GRADIENT SHIFT */
@keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
.gradient-shift { background-size: 200% 200%; animation: gradientShift 4s ease infinite; }

/* SLIDE IN FROM LEFT/RIGHT */
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: translateX(0); } }
.slide-in-left { animation: slideInLeft 0.8s ease forwards; }
.slide-in-right { animation: slideInRight 0.8s ease forwards; }

/* SCALE UP */
@keyframes scaleUp { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } }
.scale-up { animation: scaleUp 0.6s ease forwards; }

/* UNDERLINE GROW */
.underline-grow { position: relative; display: inline-block; }
.underline-grow::after { content: ''; position: absolute; bottom: -2px; left: 50%; width: 0; height: 2px; background: var(--primary); transition: width 0.3s ease, left 0.3s ease; }
.underline-grow:hover::after { width: 100%; left: 0; }

/* WHATSAPP BOUNCE */
@keyframes whatsappBounce { 0%, 100% { transform: scale(1); } 25% { transform: scale(1.1); } 50% { transform: scale(1); } 75% { transform: scale(1.05); } }
.whatsapp-float { animation: whatsappBounce 3s ease-in-out infinite; }
.whatsapp-float:hover { animation: none; transform: scale(1.1); }

/* FLAG WAVE (for flag showcase) */
@keyframes flagWave {
  0% { transform: perspective(500px) rotateY(0deg); }
  25% { transform: perspective(500px) rotateY(2deg); }
  75% { transform: perspective(500px) rotateY(-2deg); }
  100% { transform: perspective(500px) rotateY(0deg); }
}
.flag-wave { animation: flagWave 4s ease-in-out infinite; }

/* ICON ROTATE ON HOVER */
.icon-rotate:hover i { transform: rotate(360deg); transition: transform 0.6s ease; }

/* BORDER GLOW */
@keyframes borderGlow {
  0%, 100% { box-shadow: 0 0 5px rgba(244, 207, 0, 0.3); }
  50% { box-shadow: 0 0 20px rgba(244, 207, 0, 0.6); }
}
.border-glow { animation: borderGlow 2s ease-in-out infinite; }

/* TYPEWRITER (for hero subtitle) */
@keyframes blink { 50% { border-color: transparent; } }
.typewriter-cursor { border-right: 2px solid var(--white); animation: blink 0.7s step-end infinite; }

/* PARALLAX FADE */
.parallax-fade { opacity: 0; transition: opacity 1s ease; }
.parallax-fade.in-view { opacity: 1; }

