/* ==========================================
   FORMULARIO INTERNO NOPAL - CONTACT FORM 7
========================================== */

.nopal-form-interno{
    width:100%;
    max-width:570px;
    margin:0;
    font-family:"Public Sans", sans-serif;
    color:#4C4B4B;
}

/* Quitar espacios automáticos */
.nopal-form-interno p{
    margin:0;
}

.nopal-form-interno .wpcf7-form-control-wrap{
    display:block;
    width:100%;
}

/* ==========================================
   SELECT
========================================== */

.nopal-form-interno__select{
    position:relative;
    width:100%;
    margin-bottom:22px;
}

/* Flecha personalizada */
.nopal-form-interno__select::after{
    content:"";
    position:absolute;
    top:50%;
    right:8px;
    width:9px;
    height:9px;

    border-right:2px solid #4C4B4B;
    border-bottom:2px solid #4C4B4B;

    transform:
        translateY(-70%)
        rotate(45deg);

    pointer-events:none;
}

.nopal-form-interno select{
    width:100%;
    height:42px;
    margin:0;
    padding:0 38px 7px 0;

    appearance:none;
    -webkit-appearance:none;

    border:0;
    border-bottom:1px solid #8C8C8C;
    border-radius:0;

    background:transparent;
    box-shadow:none;

    font-family:"Public Sans", sans-serif;
    font-size:18px;
    line-height:1.2;
    font-weight:400;
    color:#4C4B4B;

    outline:none;
    cursor:pointer;

    transition:border-color .25s ease;
}

.nopal-form-interno select:focus{
    border-bottom-color:#2F2F2F;
}

/* ==========================================
   GRID
========================================== */

.nopal-form-interno__grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    column-gap:24px;
    row-gap:18px;
}

/* Campos */
.nopal-form-interno__campo{
    width:100%;
    min-width:0;
}

/* Inputs */
.nopal-form-interno input[type="text"],
.nopal-form-interno input[type="email"],
.nopal-form-interno input[type="tel"]{
    width:100%;
    height:38px;
    margin:0;
    padding:0 0 7px;

    border:0;
    border-bottom:1px solid #8C8C8C;
    border-radius:0;

    background:transparent;
    box-shadow:none;

    font-family:"Public Sans", sans-serif;
    font-size:16px;
    line-height:1.2;
    font-weight:400;
    color:#4C4B4B;

    outline:none;

    transition:border-color .25s ease;
}

/* Placeholder */
.nopal-form-interno input::placeholder{
    color:#777777;
    opacity:1;
}

/* Focus */
.nopal-form-interno input[type="text"]:focus,
.nopal-form-interno input[type="email"]:focus,
.nopal-form-interno input[type="tel"]:focus{
    border-bottom-color:#2F2F2F;
}

/* ==========================================
   CHECKBOXES
========================================== */

.nopal-form-interno__checks{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-top:22px;
}

.nopal-form-interno__check .wpcf7-list-item{
    margin:0;
}

.nopal-form-interno__check label{
    display:flex;
    align-items:flex-start;
    gap:7px;

    font-family:"Public Sans", sans-serif;
    font-size:12px;
    line-height:1.3;
    font-weight:400;
    color:#4C4B4B;

    cursor:pointer;
}

/* Checkbox */
.nopal-form-interno__check input[type="checkbox"]{
    width:11px;
    height:11px;
    min-width:11px;
    margin:2px 0 0;

    appearance:none;
    -webkit-appearance:none;

    border:1px solid #777777;
    border-radius:0;
    background:transparent;

    cursor:pointer;
}

/* Marcado */
.nopal-form-interno__check input[type="checkbox"]:checked{
    background:#555555;
    box-shadow:inset 0 0 0 2px #fff;
}

/* ==========================================
   BOTÓN
========================================== */

.nopal-form-interno__boton{
    margin-top:22px;
}

.nopal-form-interno input[type="submit"]{
    min-width:88px;
    padding:8px 16px;

    border:0;
    border-radius:0;

    background:#555555;
    color:#FFFFFF;

    font-family:"Public Sans", sans-serif;
    font-size:16px;
    line-height:1;
    font-weight:400;

    cursor:pointer;

    transition:
        background-color .25s ease,
        color .25s ease;
}

.nopal-form-interno input[type="submit"]:hover,
.nopal-form-interno input[type="submit"]:focus{
    background:#333333;
    color:#FFFFFF;
}

/* ==========================================
   MENSAJES CF7
========================================== */

.nopal-form-interno .wpcf7-not-valid-tip{
    margin-top:4px;

    font-family:"Public Sans", sans-serif;
    font-size:11px;
    line-height:1.2;
}

.nopal-form-interno .wpcf7-response-output{
    margin:20px 0 0 !important;
    padding:10px 12px !important;

    font-family:"Public Sans", sans-serif;
    font-size:12px;
}

.nopal-form-interno .wpcf7-spinner{
    margin:0 0 0 8px;
}

/* ==========================================
   TABLET
========================================== */

@media (max-width:1024px){

    .nopal-form-interno{
        max-width:520px;
    }

    .nopal-form-interno select{
        font-size:17px;
    }

    .nopal-form-interno input[type="text"],
    .nopal-form-interno input[type="email"],
    .nopal-form-interno input[type="tel"]{
        font-size:15px;
    }
}

/* ==========================================
   MOBILE
========================================== */

@media (max-width:767px){

    .nopal-form-interno{
        max-width:none;
        width:100%;
    }

    /* Select */
    .nopal-form-interno__select{
        margin-bottom:12px;
    }

    .nopal-form-interno select{
        height:32px;
        padding:0 30px 4px 0;

        font-size:12px;
        line-height:1.1;
    }

    .nopal-form-interno__select::after{
        right:4px;
        width:7px;
        height:7px;
        border-width:1.5px;
    }

    /* Campos en una sola columna */
    .nopal-form-interno__grid{
        grid-template-columns:1fr;
        row-gap:8px;
    }

    .nopal-form-interno__campo{
        min-height:0;
    }

    /* Inputs más bajos */
    .nopal-form-interno input[type="text"],
    .nopal-form-interno input[type="email"],
    .nopal-form-interno input[type="tel"]{
        height:30px;
        padding:0 0 4px;

        font-size:12px;
        line-height:1.1;
    }

    /* Placeholder */
    .nopal-form-interno input::placeholder{
        font-size:12px;
        line-height:1.1;
    }

    /* Checkboxes */
    .nopal-form-interno__checks{
        gap:4px;
        margin-top:10px;
    }

    .nopal-form-interno__check label{
        gap:5px;

        font-size:9px;
        line-height:1.25;
    }

    .nopal-form-interno__check input[type="checkbox"]{
        width:10px;
        height:10px;
        min-width:10px;
        margin-top:1px;
    }

    /* Botón */
    .nopal-form-interno__boton{
        margin-top:14px;
    }

    .nopal-form-interno input[type="submit"]{
        min-width:74px;
        padding:7px 13px;

        font-size:12px;
    }

    /* Mensajes CF7 */
    .nopal-form-interno .wpcf7-not-valid-tip{
        margin-top:3px;
        font-size:8px;
    }

    .nopal-form-interno .wpcf7-response-output{
        margin-top:12px !important;
        padding:8px 10px !important;
        font-size:9px;
    }
}

/* ==========================================
   FORMULARIO PALACIOS — AJUSTE MOBILE
========================================== */

@media (max-width:767px){

    /* Aceptaciones ubicadas en la mitad derecha */
    .nopal-form-palacios .nopal-form-interno__checks{
        width:55%;
        max-width:235px;
        margin-top:22px;
        margin-left:auto;
        margin-right:0;
    }

    /* Botón alineado con las aceptaciones */
    .nopal-form-palacios .nopal-form-interno__boton{
        width:55%;
        max-width:235px;
        margin-top:16px;
        margin-left:auto;
        margin-right:0;
        text-align:left;
    }

    /* Mantener el spinner junto al botón */
    .nopal-form-palacios .wpcf7-spinner{
        margin-left:6px;
    }
}