/* =====================================================
   FORMULARIO HOME LGP
   CONTACT FORM 7
===================================================== */

.lgp-form-home{
    width:100%;
    max-width:100%;
    font-family:"Felbridge Std", sans-serif;
    color:#4B4E99;
}

/* Eliminar márgenes automáticos de CF7 */
.lgp-form-home p{
    margin:0;
}

.lgp-form-home .wpcf7-form-control-wrap{
    display:block;
    width:100%;
}

/* =====================================================
   DISTRIBUCIÓN GENERAL
===================================================== */

.lgp-form-home__campos{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 170px;
    column-gap:40px;
    row-gap:16px;
    align-items:start;
}

/* Campos principales */
.lgp-form-home__campo{
    grid-column:1 / 3;
    position:relative;
}

/* Aceptaciones */
.lgp-form-home__aceptaciones{
    grid-column:1;
    display:flex;
    flex-direction:column;
    gap:10px;
}

/* Botón lateral */
.lgp-form-home__boton{
    grid-column:2;
    grid-row:5 / span 2;
    align-self:end;
    transform:translateY(-22px);
}

/* =====================================================
   INPUTS Y SELECT
===================================================== */

.lgp-form-home input[type="text"],
.lgp-form-home input[type="tel"],
.lgp-form-home input[type="email"],
.lgp-form-home select{
    display:block;
    width:100%;
    height:62px;

    margin:0;
    padding:0 18px;

    font-family:"Felbridge Std", sans-serif;
    font-size:19px;
    line-height:1.2;
    font-weight:600;

    color:#4B4E99;
    background:#ffffff;

    border:2px solid #4B4E99;
    border-radius:0;
    outline:none;

    box-shadow:none;
    box-sizing:border-box;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

/* Focus */
.lgp-form-home input[type="text"]:focus,
.lgp-form-home input[type="tel"]:focus,
.lgp-form-home input[type="email"]:focus,
.lgp-form-home select:focus{
    border-color:#F6AF33;
    box-shadow:0 0 0 1px #F6AF33;
}

/* Placeholder */
.lgp-form-home input::placeholder{
    color:#4B4E99;
    opacity:1;
}

.lgp-form-home input::-moz-placeholder{
    color:#4B4E99;
    opacity:1;
}

/* Opciones */
.lgp-form-home select option{
    color:#4B4E99;
    background:#ffffff;
}

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

.lgp-form-home__select{
    position:relative;
}

.lgp-form-home__select select{
    height:60px;
    padding-right:55px;

    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;

    cursor:pointer;
}

/* Flecha naranja */
.lgp-form-home__select::after{
    content:"";
    position:absolute;

    top:50%;
    right:15px;

    width:0;
    height:0;

    border-left:13px solid transparent;
    border-right:13px solid transparent;
    border-top:13px solid #F6AF33;

    transform:translateY(-35%);
    pointer-events:none;
    z-index:2;
}

/* Ocultar flecha nativa en navegadores antiguos */
.lgp-form-home__select select::-ms-expand{
    display:none;
}

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

.lgp-form-home__aceptacion .wpcf7-list-item{
    display:block;
    margin:0;
}

.lgp-form-home__aceptacion label{
    display:flex;
    align-items:flex-start;
    gap:10px;

    margin:0;

    font-family:"Felbridge Std", sans-serif;
    font-size:15px;
    line-height:1.35;
    font-weight:400;

    color:#4B4E99;
    cursor:pointer;
}

.lgp-form-home__aceptacion .wpcf7-list-item-label{
    display:block;
    flex:1;
}

/* =====================================================
   ENLACE POLÍTICAS DE PRIVACIDAD
===================================================== */

.lgp-form-home__aceptacion a{
    position:relative;
    display:inline;

    color:#4B4E99;
    text-decoration:none;

    background-image:linear-gradient(#4B4E99, #4B4E99);
    background-size:100% 1px;
    background-position:0 100%;
    background-repeat:no-repeat;

    cursor:pointer;

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

/* Hover */
.lgp-form-home__aceptacion a:hover{
    color:#F6AF33;

    background-image:linear-gradient(#F6AF33, #F6AF33);
    background-size:100% 2px;
}

/* Navegación con teclado */
.lgp-form-home__aceptacion a:focus-visible{
    color:#F6AF33;

    background-image:linear-gradient(#F6AF33, #F6AF33);

    outline:2px solid #F6AF33;
    outline-offset:3px;
}

/* Checkbox personalizado */
.lgp-form-home input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;

    flex:0 0 20px;

    width:20px;
    min-width:20px;
    max-width:20px;

    height:20px;
    min-height:20px;
    max-height:20px;

    margin:2px 0 0;
    padding:0;

    display:inline-grid;
    place-content:center;

    background:#ffffff;
    border:1px solid #9CA4D4;
    border-radius:0;

    box-sizing:border-box;
    cursor:pointer;
}

/* Check blanco */
.lgp-form-home input[type="checkbox"]::before{
    content:"";

    width:10px;
    height:6px;

    border-left:2px solid #ffffff;
    border-bottom:2px solid #ffffff;

    transform:rotate(-45deg) scale(0);
    transition:transform .15s ease;
}

/* Checkbox seleccionado */
.lgp-form-home input[type="checkbox"]:checked{
    background:#4B4E99;
    border-color:#4B4E99;
}

.lgp-form-home input[type="checkbox"]:checked::before{
    transform:rotate(-45deg) scale(1);
}

/* Focus accesible */
.lgp-form-home input[type="checkbox"]:focus-visible{
    outline:2px solid #F6AF33;
    outline-offset:2px;
}

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

.lgp-form-home__boton input[type="submit"]{
    display:flex;
    align-items:center;
    justify-content:center;

    width:170px;
    height:54px;

    margin:0;
    padding:0 18px;

    font-family:"Foco", sans-serif;
    font-size:21px;
    line-height:1;
    font-weight:800;

    color:#ffffff;
    background:#4B4E99;

    border:0;
    border-radius:0;
    outline:none;

    clip-path:polygon(
        12px 0,
        100% 0,
        100% calc(100% - 12px),
        calc(100% - 12px) 100%,
        0 100%,
        0 12px
    );

    cursor:pointer;
    box-shadow:none;

    transition:
        transform .25s ease,
        opacity .25s ease;
}

.lgp-form-home__boton input[type="submit"]:hover{
    color:#ffffff;
    background:#4B4E99;
    transform:translateY(-2px);
    opacity:.88;
}

.lgp-form-home__boton input[type="submit"]:focus{
    color:#ffffff;
    background:#4B4E99;
    box-shadow:none;
}

/* Spinner de Contact Form 7 */
.lgp-form-home__boton .wpcf7-spinner{
    position:absolute;
    margin:10px 0 0;
}

/* =====================================================
   VALIDACIONES Y RESPUESTAS
===================================================== */

.lgp-form-home .wpcf7-not-valid{
    border-color:#d63638 !important;
}

.lgp-form-home .wpcf7-not-valid-tip{
    margin-top:5px;

    font-family:"Felbridge Std", sans-serif;
    font-size:12px;
    line-height:1.3;

    color:#d63638;
}

.lgp-form-home .wpcf7-response-output{
    margin:18px 0 0 !important;
    padding:10px 14px !important;

    grid-column:1 / 3;

    font-family:"Felbridge Std", sans-serif;
    font-size:14px;
    line-height:1.4;

    color:#4B4E99;
    border:1px solid #4B4E99 !important;
}

/* =====================================================
   DESKTOP PEQUEÑO
   1025px A 1200px
===================================================== */

@media (min-width:1025px) and (max-width:1200px){

    .lgp-form-home__campos{
        grid-template-columns:minmax(0, 1fr) 145px;
        column-gap:24px;
        row-gap:12px;
    }

    .lgp-form-home input[type="text"],
    .lgp-form-home input[type="tel"],
    .lgp-form-home input[type="email"],
    .lgp-form-home select{
        height:50px;

        padding-left:15px;
        padding-right:15px;

        font-size:16px;
        border-width:2px;
    }

    .lgp-form-home__select select{
        height:50px;
        padding-right:44px;
    }

    .lgp-form-home__select::after{
        right:13px;

        border-left-width:10px;
        border-right-width:10px;
        border-top-width:10px;
    }

    .lgp-form-home__aceptaciones{
        gap:7px;
    }

    .lgp-form-home__aceptacion label{
        gap:8px;
        font-size:12px;
        line-height:1.25;
    }

    .lgp-form-home input[type="checkbox"]{
        flex-basis:16px;

        width:16px;
        min-width:16px;
        max-width:16px;

        height:16px;
        min-height:16px;
        max-height:16px;

        margin-top:1px;
    }

    .lgp-form-home input[type="checkbox"]::before{
        width:8px;
        height:5px;
    }

    .lgp-form-home__boton{
        transform:translateY(-15px);
    }

    .lgp-form-home__boton input[type="submit"]{
        width:145px;
        height:44px;

        padding:0 14px;
        font-size:17px;

        clip-path:polygon(
            10px 0,
            100% 0,
            100% calc(100% - 10px),
            calc(100% - 10px) 100%,
            0 100%,
            0 10px
        );
    }

    .lgp-form-home .wpcf7-not-valid-tip{
        margin-top:3px;
        font-size:10px;
    }

    .lgp-form-home .wpcf7-response-output{
        margin-top:12px !important;
        padding:8px 11px !important;
        font-size:12px;
    }

}

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

@media (max-width:1024px){

    .lgp-form-home__campos{
        grid-template-columns:minmax(0, 1fr) 150px;
        column-gap:25px;
        row-gap:14px;
    }

    .lgp-form-home input[type="text"],
    .lgp-form-home input[type="tel"],
    .lgp-form-home input[type="email"],
    .lgp-form-home select{
        height:56px;
        font-size:17px;
    }

    .lgp-form-home__select select{
        height:56px;
    }

    .lgp-form-home__aceptacion label{
        font-size:13px;
    }

    .lgp-form-home__boton{
        transform:translateY(-18px);
    }

    .lgp-form-home__boton input[type="submit"]{
        width:150px;
        height:48px;
        font-size:19px;
    }

}

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

@media (max-width:767px){

    /* Mantener distribución desktop */
    .lgp-form-home__campos{
        grid-template-columns:minmax(0,1fr) 118px;
        column-gap:14px;
        row-gap:10px;
        align-items:start;
    }

    .lgp-form-home__campo{
        grid-column:1 / 3;
    }

    .lgp-form-home__aceptaciones{
        grid-column:1;
        gap:6px;
    }

    .lgp-form-home__boton{
        grid-column:2;
        grid-row:5 / span 2;
        align-self:end;
        justify-self:end;

        margin:0;
        transform:translateY(-8px);
    }

    /* Campos más bajos */
    .lgp-form-home input[type="text"],
    .lgp-form-home input[type="tel"],
    .lgp-form-home input[type="email"],
    .lgp-form-home select{
        height:42px;

        padding:0 12px;

        font-size:13px;
        border-width:2px;
    }

    .lgp-form-home__select select{
        height:42px;
        padding-right:38px;
    }

    .lgp-form-home__select::after{
        right:12px;

        border-left:8px solid transparent;
        border-right:8px solid transparent;
        border-top:8px solid #F6AF33;
    }

    /* Textos de aceptación */
    .lgp-form-home__aceptacion label{
        gap:6px;

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

    /* Checkbox */
    .lgp-form-home input[type="checkbox"]{
        flex:0 0 13px;

        width:13px;
        min-width:13px;
        max-width:13px;

        height:13px;
        min-height:13px;
        max-height:13px;

        margin-top:1px;
    }

    .lgp-form-home input[type="checkbox"]::before{
        width:6px;
        height:4px;
    }

    /* Botón lateral pequeño */
    .lgp-form-home__boton input[type="submit"]{
        width:118px;
        height:36px;

        padding:0 10px;

        font-size:15px;

        clip-path:polygon(
            8px 0,
            100% 0,
            100% calc(100% - 8px),
            calc(100% - 8px) 100%,
            0 100%,
            0 8px
        );
    }

}