/* ── KEYFRAMES ── */
@keyframes fadeInUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
@keyframes counterUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
@keyframes waPulse{0%,100%{transform:scale(1);box-shadow:0 4px 20px rgba(37,211,102,.5)}50%{transform:scale(1.06);box-shadow:0 8px 30px rgba(37,211,102,.7)}}
@keyframes slideRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* ── HERO ENTRANCE ── */
.hero-content>*:nth-child(1){animation:fadeInUp .65s var(--ease) .05s both}
.hero-content>*:nth-child(2){animation:fadeInUp .65s var(--ease) .15s both}
.hero-content>*:nth-child(3){animation:fadeInUp .65s var(--ease) .22s both}
.hero-content>*:nth-child(4){animation:fadeInUp .65s var(--ease) .30s both}
.hero-content>*:nth-child(5){animation:fadeInUp .65s var(--ease) .38s both}
.hero-content>*:nth-child(6){animation:fadeInUp .65s var(--ease) .46s both}
.hero-visual{animation:scaleIn .75s var(--ease) .2s both}

/* ── CHIPS FLOTANTES ── */
.chip:nth-child(1){animation:float 4s ease-in-out infinite 0s}
.chip:nth-child(2){animation:float 4s ease-in-out infinite .8s}
.chip:nth-child(3){animation:float 4s ease-in-out infinite 1.6s}

/* ── AVAILABILITY DOT ── */
.dot,.ob-dot{animation:dotPulse 2s ease-in-out infinite}

/* ── WHATSAPP FLOAT ── */
#whatsapp-float{animation:waPulse 2.5s ease-in-out infinite}
#whatsapp-float:hover{animation:none;transform:scale(1.1) translateY(-2px)}

/* ── SCROLL REVEAL ── */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.revealed{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.10s}
.reveal-delay-2{transition-delay:.20s}
.reveal-delay-3{transition-delay:.30s}
.reveal-delay-4{transition-delay:.40s}
.reveal-delay-5{transition-delay:.50s}

/* ── PRECIO COUNTER ── */
.dtv.updating{animation:counterUp .35s var(--ease)}

/* ── SERVICE CARD ICON ── */
.service-card:hover .sc-icon{animation:float 1.5s ease-in-out infinite}

/* ── STEP HOVER ── */
.step:hover .step-circle{transform:scale(1.08);transition:transform .3s var(--ease)}

/* ── PRICING ROW ── */
.pt-row{transition:background .18s,padding-left .2s}

/* ── TOAST ── */
#toast.visible{animation:slideRight .35s var(--ease)}

/* ── REDUCE MOTION ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
