/* =========================================================
   CONTACTENOS POPUP — DISEÑO
========================================================= */

:root{
    --contactenos-popup-vino:#7d0d2f;
    --contactenos-popup-vino-oscuro:#651026;
    --contactenos-popup-texto:#2d2d2d;
    --contactenos-popup-muted:#6d6d6d;
    --contactenos-popup-borde:#ded7d4;
    --contactenos-popup-fondo:#ffffff;
    --contactenos-popup-crema:#f8f4f1;
    --contactenos-popup-sombra:0 28px 90px rgba(28,18,20,.24);
}

.ContactenosPopupOverlay{
    position:fixed;
    inset:0;
    z-index:2147483000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(20,12,15,.52);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
        opacity .24s ease,
        visibility .24s ease;
}

.ContactenosPopupOverlay.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.ContactenosPopup{
    position:relative;
    width:min(820px,100%);
    max-height:min(88vh,860px);
    overflow:auto;
    padding:34px 34px 28px;
    border:1px solid rgba(125,13,47,.10);
    border-radius:18px;
    background:
        radial-gradient(circle at top left,rgba(125,13,47,.035),transparent 42%),
        linear-gradient(145deg,#fff,#faf6f4);
    box-shadow:var(--contactenos-popup-sombra);
    transform:translateY(18px) scale(.985);
    opacity:0;
    transition:
        transform .28s cubic-bezier(.2,.7,.2,1),
        opacity .24s ease;
}

.ContactenosPopupOverlay.is-open .ContactenosPopup{
    transform:translateY(0) scale(1);
    opacity:1;
}

.ContactenosPopupCerrar{
    position:absolute;
    top:18px;
    right:18px;
    width:40px;
    height:40px;
    border:1px solid rgba(125,13,47,.12);
    border-radius:50%;
    background:#fff;
    color:var(--contactenos-popup-vino);
    display:grid;
    place-items:center;
    font-size:18px;
    cursor:pointer;
    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease;
}

.ContactenosPopupCerrar:hover{
    transform:rotate(5deg);
    background:var(--contactenos-popup-vino);
    color:#fff;
}

.ContactenosPopupEncabezado{
    padding-right:54px;
    margin-bottom:24px;
}

.ContactenosPopupEyebrow{
    display:block;
    margin-bottom:8px;
    color:var(--contactenos-popup-vino);
    font-size:11px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.ContactenosPopupEncabezado h2{
    margin:0;
    color:var(--contactenos-popup-vino);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(30px,3vw,44px);
    font-weight:500;
    line-height:1.08;
}

.ContactenosPopupEncabezado p{
    max-width:620px;
    margin:10px 0 0;
    color:var(--contactenos-popup-muted);
    font-size:13px;
    line-height:1.55;
}

.ContactenosPopupLinea{
    display:block;
    width:44px;
    height:2px;
    margin-top:14px;
    background:var(--contactenos-popup-vino);
}

.ContactenosPopupGrid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px 18px;
}

.ContactenosPopupCampo{
    min-width:0;
}

.ContactenosPopupCampoCompleto{
    grid-column:1/-1;
}

.ContactenosPopupCampo label{
    display:block;
    margin-bottom:7px;
    color:var(--contactenos-popup-texto);
    font-size:12px;
    font-weight:600;
}

.ContactenosPopupCampo label b{
    color:var(--contactenos-popup-vino);
    font-weight:700;
}

.ContactenosPopupCampo input,
.ContactenosPopupCampo select,
.ContactenosPopupCampo textarea{
    width:100%;
    border:1px solid #d7d2cf;
    border-radius:7px;
    background:#fff;
    color:#303030;
    outline:none;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.ContactenosPopupCampo input,
.ContactenosPopupCampo select{
    height:45px;
    padding:0 13px;
}

.ContactenosPopupCampo textarea{
    min-height:100px;
    padding:12px 13px;
    resize:vertical;
}

.ContactenosPopupCampo input:focus,
.ContactenosPopupCampo select:focus,
.ContactenosPopupCampo textarea:focus{
    border-color:rgba(125,13,47,.75);
    box-shadow:0 0 0 3px rgba(125,13,47,.07);
}

.ContactenosPopupCampo.is-error input,
.ContactenosPopupCampo.is-error select,
.ContactenosPopupCampo.is-error textarea{
    border-color:#b3264d;
}

.ContactenosPopupAcciones{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    margin-top:20px;
}

.ContactenosPopupEnviar{
    min-height:46px;
    padding:0 24px;
    border:0;
    border-radius:7px;
    background:
        linear-gradient(
            135deg,
            var(--contactenos-popup-vino),
            var(--contactenos-popup-vino-oscuro)
        );
    color:#fff;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(125,13,47,.16);
    transition:
        transform .2s ease,
        filter .2s ease;
}

.ContactenosPopupEnviar:hover{
    transform:translateY(-1px);
    filter:brightness(1.05);
}

.ContactenosPopupPrivacidad{
    display:flex;
    align-items:center;
    gap:8px;
    color:#5f5f5f;
    font-size:11px;
}

.ContactenosPopupPrivacidad i{
    color:var(--contactenos-popup-vino);
}

.ContactenosPopupEstado{
    min-height:18px;
    margin:10px 0 0;
    color:var(--contactenos-popup-vino);
    font-size:12px;
    font-weight:600;
}

body.ContactenosPopupBloqueado{
    overflow:hidden;
}

@media(max-width:760px){

    .ContactenosPopupOverlay{
        align-items:flex-end;
        padding:0;
    }

    .ContactenosPopup{
        width:100%;
        max-height:94vh;
        padding:28px 18px 24px;
        border-radius:20px 20px 0 0;
        transform:translateY(36px);
    }

    .ContactenosPopupEncabezado{
        padding-right:46px;
    }

    .ContactenosPopupGrid{
        grid-template-columns:1fr;
        gap:13px;
    }

    .ContactenosPopupCampoCompleto{
        grid-column:auto;
    }

    .ContactenosPopupAcciones{
        align-items:flex-start;
        flex-direction:column;
    }

    .ContactenosPopupEnviar{
        width:100%;
    }
}

@media(max-width:420px){

    .ContactenosPopupEncabezado h2{
        font-size:29px;
    }

    .ContactenosPopup{
        padding-inline:15px;
    }

    .ContactenosPopupCampo input,
    .ContactenosPopupCampo select{
        height:43px;
    }
}
