/******* Do not edit this file *******
Woody Code Snippets CSS and JS
Saved: Jan 26 2026 | 14:24:58 */
<style>
/* ===============================
   Selección de texto – dinámico
   Toma Primary y Secondary de Elementor
================================ */

/* Navegadores modernos */
::selection{
  background-color: var(--e-global-color-primary);
  color: var(--e-global-color-secondary);
}

/* Firefox */
::-moz-selection{
  background-color: var(--e-global-color-primary);
  color: var(--e-global-color-secondary);
}

/* ======================================================
   ANIMACIONES PARA BOTONES – ELEMENTOR
   Clases disponibles:

   BOUNCE:
   - bounce-1  (suave)
   - bounce-2  (clásico CTA)
   - bounce-3  (fuerte / atención)

   PULSE:
   - pulse-1   (suave)
   - pulse-2   (medio)
   - pulse-3   (intenso)
====================================================== */

/* Base común */
.bounce-1, .bounce-2, .bounce-3,
.pulse-1, .pulse-2, .pulse-3{
  transform-origin: center bottom;
  will-change: transform;
}

/* =======================
   BOUNCE 1 – SUAVE
   ======================= */
.bounce-1{
  animation: bounceSoft 2.8s infinite ease-in-out;
}

@keyframes bounceSoft{
  0%,100%{ transform: translateY(0); }
  45%    { transform: translateY(-6px); }
}

/* =======================
   BOUNCE 2 – CTA CLÁSICO
   ======================= */
.bounce-2{
  animation: bounceClassic 1.9s infinite;
}

@keyframes bounceClassic{
  0%   { transform: translateY(0); }
  20%  { transform: translateY(0); }
  40%  { transform: translateY(-12px); }
  50%  { transform: translateY(0); }
  60%  { transform: translateY(-5px); }
  80%  { transform: translateY(0); }
  100% { transform: translateY(0); }
}

/* =======================
   BOUNCE 3 – FUERTE
   ======================= */
.bounce-3{
  animation: bounceStrong 1.4s infinite cubic-bezier(.28,.84,.42,1);
}

@keyframes bounceStrong{
  0%   { transform: translateY(0); }
  30%  { transform: translateY(-18px); }
  45%  { transform: translateY(0); }
  60%  { transform: translateY(-8px); }
  75%  { transform: translateY(0); }
  100% { transform: translateY(0); }
}

/* =======================
   PULSE 1 – SUAVE
   ======================= */
.pulse-1{
  animation: pulseSoft 3s infinite ease-in-out;
}

@keyframes pulseSoft{
  0%,100%{ transform: scale(1); }
  50%    { transform: scale(1.04); }
}

/* =======================
   PULSE 2 – MEDIO
   ======================= */
.pulse-2{
  animation: pulseMedium 2.2s infinite ease-in-out;
}

@keyframes pulseMedium{
  0%,100%{ transform: scale(1); }
  50%    { transform: scale(1.07); }
}

/* =======================
   PULSE 3 – INTENSO
   ======================= */
.pulse-3{
  animation: pulseStrong 1.6s infinite ease-in-out;
}

@keyframes pulseStrong{
  0%,100%{ transform: scale(1); }
  50%    { transform: scale(1.1); }
}

/* =======================
   ACCESIBILIDAD
   ======================= */
@media (prefers-reduced-motion: reduce){
  .bounce-1, .bounce-2, .bounce-3,
  .pulse-1, .pulse-2, .pulse-3{
    animation: none !important;
  }
}
</style>