/* FORMULARIO DE CONTACTO (modal5) */

.formulario {
    display: flex;
    flex-direction: column;
    width: 90%;
    gap: 18px;
    padding-top: 20px;
}

.campo {
    display: flex;
    flex-direction: column;
    gap: 6px;

    span {
        color: var(--gris_claro);
        font-size: .95em;
    }

    input, textarea {
        font-family: 'lato', serif;
        font-size: 1em;
        color: var(--blanco);
        background-color: rgba(255, 255, 255, .06);
        border: solid 1px var(--gris);
        border-radius: 4px;
        padding: 12px;
        outline: none;
        transition: all .3s ease-in-out;
    }

    input:focus, textarea:focus {
        border-color: var(--azulclaro);
        background-color: rgba(255, 255, 255, .1);
    }

    textarea {
        resize: vertical;
        min-height: 110px;
    }
}

/* Campo inválido, sólo tras intentar enviar (lo marca js/contacto.js) */
.formulario.validar :invalid {
    border-color: #ff6b6b;
}

.consentimiento {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--gris_claro);
    font-size: .9em;
    cursor: pointer;

    input {
        margin-top: 3px;
        accent-color: var(--azulclaro);
        cursor: pointer;
    }
}

/* Honeypot antispam: fuera de la vista y del foco, pero no display:none,
   que algunos bots detectan. */
.trampa {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.aviso_form {
    font-size: .95em;
    min-height: 1.2em;
    text-align: center;
    transition: all .3s ease-in-out;
}

.aviso_form.ok    { color: var(--azulclaro); }
.aviso_form.error { color: #ff6b6b; }

/* El botón de enviar es un <button>; hereda .boton pero necesita reset */
.formulario .boton {
    font-family: 'lato', serif;
    font-size: 1em;
    border: none;
    cursor: pointer;
}

.formulario .boton[disabled] {
    opacity: .5;
    cursor: wait;
}

@media only screen and (min-width:350px) and (max-width:1200px) {
    .formulario {
        width: 100%;
    }
}
