/* ============================================================
   COMERCIAL BARBOSA — GRUPO VIP
   ANIMATIONS.CSS
   ============================================================ */

@keyframes scrollX {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes popIn {
  from { opacity: 0; transform: scale(.88); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes shimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}
@keyframes pulseGreen {
  0%,100% { box-shadow: 0 0 12px rgba(0,168,89,.6), 0 0 32px rgba(0,168,89,.28), 0 6px 24px rgba(0,168,89,.4); }
  50%     { box-shadow: 0 0 28px rgba(0,168,89,1),  0 0 64px rgba(0,168,89,.55), 0 6px 46px rgba(0,168,89,.5); }
}
@keyframes pulseGreenBorder {
  0%,100% { border-color: rgba(0,168,89,.45); }
  50%     { border-color: rgba(0,168,89,.9); }
}
@keyframes pulseDot {
  0%,100% { box-shadow: 0 0 6px  #00A859, 0 0 14px rgba(0,168,89,.4); }
  50%     { box-shadow: 0 0 14px #00A859, 0 0 28px rgba(0,168,89,.7); }
}
@keyframes greenFlare {
  0%,100% { opacity: .5;  transform: translate(-50%,-50%) scale(1); }
  50%     { opacity: .8;  transform: translate(-50%,-50%) scale(1.1); }
}
@keyframes starFloat {
  0%   { opacity: 0; transform: translateY(0) translateX(0); }
  6%   { opacity: 1; }
  94%  { opacity: .5; }
  100% { opacity: 0; transform: translateY(var(--ty,-80px)) translateX(var(--tx,20px)); }
}
@keyframes borderGlow {
  0%,100% { border-color: rgba(0,168,89,.2); }
  50%     { border-color: rgba(0,168,89,.58); }
}
@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── HERO ENTRANCE ───────────────────────────────────────────── */
.event-badge      { animation: fadeDown .5s  .07s ease both, pulseGreenBorder 3s ease infinite; }
.event-badge .dot { animation: pulseDot  2s       ease infinite; }
.hero-seal        { animation: popIn    .62s .14s ease both; }
.event-name       { animation: fadeDown .58s .20s ease both; }
.hero-headline    { animation: fadeDown .68s .26s ease both; }
.members-proof    { animation: fadeUp   .60s .34s ease both; }
.btn-vip          { animation: popIn    .70s .42s ease both, pulseGreen 2.4s .42s ease infinite; }
.btn-note         { animation: fadeUp   .60s .54s ease both; }
.carousel-section { animation: fadeUp   .68s .68s ease both; }

/* ── SHIMMER on button ───────────────────────────────────────── */
.btn-vip::before {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  background-size: 200% 100%;
  animation: shimmer 2.2s linear infinite;
}

/* ── HERO GLOW ───────────────────────────────────────────────── */
.hero-glow { animation: greenFlare 5s ease-in-out infinite; }

/* ── STAR PARTICLES ──────────────────────────────────────────── */
.star { animation: starFloat ease-in-out infinite; }

/* ── TRIGGER BORDER GLOW STAGGER ────────────────────────────── */
.trigger-item:nth-child(1) { animation: borderGlow 4s ease 0.0s infinite; }
.trigger-item:nth-child(2) { animation: borderGlow 4s ease 0.5s infinite; }
.trigger-item:nth-child(3) { animation: borderGlow 4s ease 1.0s infinite; }
.trigger-item:nth-child(4) { animation: borderGlow 4s ease 1.5s infinite; }
.trigger-item:nth-child(5) { animation: borderGlow 4s ease 2.0s infinite; }
.trigger-item:nth-child(6) { animation: borderGlow 4s ease 2.5s infinite; }
.trigger-item:nth-child(7) { animation: borderGlow 4s ease 3.0s infinite; }
.trigger-item:hover        { animation: none; }

/* ── STAT CARDS ENTRANCE ─────────────────────────────────────── */
.stat-card:nth-child(1) .stat-number { animation: countUp .6s .1s ease both; }
.stat-card:nth-child(2) .stat-number { animation: countUp .6s .2s ease both; }
.stat-card:nth-child(3) .stat-number { animation: countUp .6s .3s ease both; }
.stat-card:nth-child(4) .stat-number { animation: countUp .6s .4s ease both; }
