h3{
text-align:center;
}

.vp-contenedor{
max-width:1200px;
margin:40px auto;
padding:35px;
background:#ffffff;
border-radius:12px;
box-shadow:0 15px 35px rgba(0,0,0,0.08);
font-family:Arial;
}

.vp-contenedor h2{
text-align:center;
margin-bottom:25px;
color:#2f7d32;
}

.vp-contenedor input{
width:100%;
padding:10px;
border:1px solid #ccc;
border-radius:6px;
}

/* GRID TARJETON */

.vp-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px;
margin-top:20px;
}

/* BOTON */

.vp-contenedor button{
width:100%;
margin-top:20px;
padding:14px;
background:#2f7d32;
color:white;
border:none;
border-radius:8px;
font-size:16px;
cursor:pointer;
}

.vp-contenedor button:hover{
background:#1b5e20;
}

/* FOTO */

.vp-foto{
object-fit:cover;
margin:10px auto;
width:160px;
height:190px;
border-radius:20px;
box-shadow:0 8px 18px rgba(0,0,0,0.25);
transition:transform .3s;
}

.vp-foto:hover{
transform:scale(1.1);
}

/* TARJETA CANDIDATO */

.vp-candidato-card{
display:block;
padding:20px;
border-radius:12px;
background:#fff;
box-shadow:0 10px 20px rgba(0,0,0,0.1);
cursor:pointer;
transition:.25s;
text-align:center;
position:relative;
}

.vp-candidato-card:hover{
transform:scale(1.05);
}

/* NUMERO TARJETON */

.vp-numero-tarjeton{
font-size:60px;
font-weight:bold;
color:#111;
margin-bottom:10px;
}

.vp-error{
color:#dc2626;
font-weight:bold;
}

.vp-exito{
color:#16a34a;
font-weight:bold;
}

.vp-propuesta{
font-size:14px;
color:#555;
margin-top:8px;
}

/* RESPONSIVE */

@media(max-width:900px){

.vp-grid{
grid-template-columns:repeat(2,1fr);
}

}

@media(max-width:500px){

.vp-grid{
grid-template-columns:1fr;
}

.vp-numero-tarjeton{
font-size:40px;
}

}
