/* Estilos personalizados para animaciones, iframe responsive y efectos visuales */
@keyframes customPulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 4px 15px rgba(47, 102, 117, 0.3);
    }
    50% {
        transform: scale(1.04);
        box-shadow: 0 10px 25px rgba(47, 102, 117, 0.5);
    }
}
.cta-pulse {
    animation: customPulse 2.5s infinite ease-in-out;
}

/* Clases de utilidad para el Intersection Observer (Animación al scrolear) */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Estilización para el contenedor adaptativo del iframe */
.iframe-container {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 600px;
    height: 440px;
    margin: 0 auto;
}
.iframe-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 12px;
}
