
:root{
    --color-principal:#EAB830;
    --color-secundario:#444;
    --color-fondo:#f3f5f7;
    --color-borde:#d9d9d9;
    --color-exito:#198754;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:Segoe UI,Arial,sans-serif;
}

body{
    background:var(--color-fondo);
    padding:40px 20px;
}

.contenedor{

    max-width:850px;
    margin:auto;
    background:#fff;
    border-radius:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    overflow:hidden;

}

.encabezado{

    background:var(--color-principal);
    color:#fff;
    padding:30px;

}

.encabezado h1{

    font-size:30px;
    margin-bottom:10px;

}

.encabezado p{

    opacity:.95;

}

form{

    padding:35px;

}

.grupo{

    margin-bottom:22px;

}

label{

    display:block;
    font-weight:600;
    margin-bottom:8px;
    color:#333;

}

input,
select{

    width:100%;
    padding:12px 15px;
    border:1px solid var(--color-borde);
    border-radius:6px;
    font-size:15px;
    transition:.25s;

}

input:focus,
select:focus{

    outline:none;
    border-color:var(--color-principal);

}

.radio{

    display:flex;
    gap:25px;
    margin-top:8px;

}

.radio label{

    display:flex;
    align-items:center;
    gap:8px;
    font-weight:normal;

}

.radio input{

    width:auto;

}

.oculto{

    max-height:0;
    opacity:0;
    overflow:hidden;
    transform:translateY(-8px);
    transition:
        max-height .35s ease,
        opacity .30s ease,
        transform .30s ease,
        margin .30s ease;

    margin:0;

}

.visible{

    max-height:180px;
    opacity:1;
    transform:translateY(0);
    margin-bottom:22px;

}

small{

    color:#666;

}

.mensaje{

    margin-top:25px;
    padding:18px;
    border-radius:8px;
    text-align:center;
    font-weight:bold;
    color:#155724;
    background:#d4edda;
    border:1px solid #9fd3aa;

    opacity:0;
    transform:translateY(15px);

    transition:.35s;

}

.mensaje.mostrar{

    opacity:1;
    transform:translateY(0);

}

.agradecimiento{

    text-align:center;
    margin-top:35px;
    margin-bottom:20px;
    font-size:17px;
    color:#555;

}

button{

    width:100%;
    padding:15px;
    border:none;
    border-radius:8px;
    font-size:18px;
    font-weight:bold;
    color:white;
    background:linear-gradient(135deg,#b5121b,#d3202b);
    cursor:pointer;
    transition:.30s;

}

button:hover{

    transform:translateY(-2px);
    box-shadow:0 10px 20px rgba(181,18,27,.25);

}

button:active{

    transform:scale(.98);

}

@media(max-width:700px){

.radio{

    flex-direction:column;
    gap:12px;

}

}

input,
select{

    width:100%;
    padding:12px 15px;
    border:2px solid #d8d8d8;
    border-radius:6px;
    font-size:15px;
    transition:.25s;

}
input:focus,
select:focus{

    outline:none;
    border-color:#b5121b;
    box-shadow:0 0 0 4px rgba(181,18,27,.12);

}

/* Campo correcto */

input:valid,
select:valid{

    border-color:#198754;

}

/* Campo incorrecto */

input:invalid:not(:placeholder-shown),
select:invalid{

    border-color:#dc3545;

}

/* Evita que aparezca rojo apenas carga */

input:required:placeholder-shown{

    border-color:#d8d8d8;

}
#nombre{
    text-transform: uppercase;
}
	
/* mensaje DNI */
.estado-dni{

    margin-top:8px;
    font-size:14px;
    font-weight:bold;
    min-height:20px;

}

.estado-ok{

    color:#198754;

}

.estado-error{

    color:#dc3545;

}

.estado-info{

    color:#0d6efd;

}
	
button:disabled{
    background:#bfbfbf;
    cursor:not-allowed;
    box-shadow:none;
    transform:none;
    opacity:.7;
}
	
