@keyframes bounce {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-8px);
  }
  60% {
    transform: translateY(-4px);
  }
}

@keyframes pulse {
  0% {
    box-shadow: 0 8px 25px rgba(255, 107, 53, 0.4);
  }
  50% {
    box-shadow: 0 12px 35px rgba(255, 107, 53, 0.6);
  }
  100% {
    box-shadow: 0 8px 25px rgba(255, 107, 53, 0.4);
  }
}

.cta-btn:hover {
  background: linear-gradient(45deg, #e55a2b, #e8861a) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 15px 40px rgba(255, 107, 53, 0.6) !important;
  animation: pulse 1.5s infinite !important;
}

.cta-btn:active {
  transform: translateY(-1px) !important;
}

.cta-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  transition: left 0.5s;
}

.cta-btn:hover::before {
  left: 100%;
}

/* Responsive Design */
@media (max-width: 1200px) {
  .cta-btn {
    font-size: 1.6rem !important;
    padding: 16px 22px !important;
  }
  .cta-btn i {
    font-size: 1.8rem !important;
  }
}

@media (max-width: 992px) {
  .cta-btn {
    font-size: 1.4rem !important;
    padding: 15px 20px !important;
  }
  .cta-btn i {
    font-size: 1.6rem !important;
  }
}

@media (max-width: 768px) {
  .cta-btn {
    font-size: 1.3rem !important;
    padding: 14px 18px !important;
    letter-spacing: 0.5px !important;
  }
  .cta-btn i {
    font-size: 1.5rem !important;
    margin-right: 10px !important;
  }
}

@media (max-width: 576px) {
  .cta-btn {
    font-size: 1.2rem !important;
    padding: 12px 16px !important;
    border-radius: 10px !important;
  }
  .cta-btn i {
    font-size: 1.4rem !important;
    margin-right: 8px !important;
  }
}

@media (max-width: 480px) {
  .cta-btn {
    font-size: 1.1rem !important;
    padding: 12px 15px !important;
    letter-spacing: 0px !important;
  }
  .cta-btn i {
    font-size: 1.3rem !important;
  }
}

@media (max-width: 360px) {
  .cta-btn {
    font-size: 1rem !important;
    padding: 10px 12px !important;
  }
  .cta-btn i {
    font-size: 1.2rem !important;
    margin-right: 6px !important;
  }
}

/* Contenedor responsive */
@media (max-width: 768px) {
  .cta-btn {
    width: 95% !important;
  }
}

@media (max-width: 480px) {
  .cta-btn {
    width: 98% !important;
  }
}
