/* CTA + Modal demo */
.cta-demo-wrap{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 30px 0 10px 0;
    text-align: center;
}
.cta-demo-btn{
    width: 60%;
    appearance: none;
    border: 0;
    cursor: pointer;
    padding: 14px 22px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: .2px;
    color: #fff;
    background: green;
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
    transform: translateY(0);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.cta-demo-btn:hover{
    transform: translateY(-1px);
    box-shadow: 0 14px 32px rgba(0,0,0,.22);
    filter: saturate(1.05);
}
.cta-demo-btn:active{
    transform: translateY(0);
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
}
.cta-demo-sub{
    margin: 0;
    font-size: 13px;
    opacity: .85;
}

/* Modal */
.modal-demo{
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none; /* oculto por defecto */
}
.modal-demo.is-open{
    display: block;
}
.modal-demo__backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(4px);
}
.modal-demo__panel{
    position: relative;
    width: min(920px, calc(100% - 24px));
    margin: 7vh auto;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(0,0,0,.35);
    overflow: hidden;
    transform: translateY(10px);
    opacity: 0;
    transition: transform .18s ease, opacity .18s ease;
}
.modal-demo.is-open .modal-demo__panel{
    transform: translateY(0);
    opacity: 1;
}
.modal-demo__header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(0,0,0,.08);
}
.modal-demo__header h3{
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--color-oscuro, #111);
}
.modal-demo__close{
    appearance: none;
    border: 0;
    background: transparent;
    cursor: pointer;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 24px;
    line-height: 1;
    color: var(--color-oscuro, #111);
    transition: background .15s ease;
}
.modal-demo__close:hover{
    background: rgba(0,0,0,.06);
}
.modal-demo__body{
    padding: 18px;
}

/* Formulario (dentro del modal) */
.formulario{
    width: 100%;
    border: 2px solid var(--color-oscuro);
    border-radius: 18px;
    padding: 18px;
}
@media (max-width: 820px) {
    .modal-demo__panel{
        margin: 5vh auto;
    }
    .modal-demo__body{
        padding: 14px;
    }
    .formulario{
        padding: 14px;
        border-radius: 16px;
    }
}

/* Evita scroll del fondo con el modal abierto */
body.modal-open{
    overflow: hidden;
}
