.vacantes{ padding:70px 0 20px; }
.postular{ padding:20px 0 90px; }

.vacantes-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;
}
@media (max-width: 980px){ .vacantes-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 620px){ .vacantes-grid{ grid-template-columns:1fr; } }

.vacante-card{
  background:#fff; border-radius:14px; padding:22px; display:flex; flex-direction:column; gap:8px;
  box-shadow:0 10px 26px -18px rgba(0,0,0,.4);
}
.vacante-tag{
  align-self:flex-start; font-size:.7rem; font-weight:600; padding:4px 10px; border-radius:20px;
  background:var(--paper-2); color:var(--magenta-dark);
}
.vacante-card h3{ font-size:1.05rem; margin-top:6px; }
.vacante-area{ font-size:.8rem; color:var(--text-soft); }
.vacante-desc{ font-size:.86rem; color:var(--text); flex:1; margin:6px 0 14px; }
.vacante-card .btn-pill{ justify-content:center }

.aviso-postulacion{
  margin:18px 0 -30px; padding:14px 18px; border-radius:12px; font-size:.9rem; font-weight:600;
}
.aviso-ok{ background:#E6F7F0; color:#137A52; }
.aviso-error{ background:#FDEAEE; color:#B02A45; }

.form-postular{
  background:#fff; border-radius:16px; padding:32px; box-shadow:0 10px 26px -18px rgba(0,0,0,.4);
  max-width:820px; margin:0 auto;
}
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media (max-width: 620px){ .form-grid{ grid-template-columns:1fr; } }

.form-postular input[type="text"],
.form-postular input[type="email"],
.form-postular input[type="tel"]{
  border:1px solid var(--line); border-radius:8px; padding:11px 14px; font-size:.9rem;
  font-family:'Work Sans', sans-serif; color:var(--text); background:var(--paper);
}
.form-postular input:focus{ outline:2px solid var(--orange); outline-offset:1px; }

.form-file{
  display:flex; flex-direction:column; gap:6px; min-width:0; font-size:.8rem; color:var(--text-soft);
}
.form-file input[type="file"]{
  width:100%; max-width:100%; min-width:0;
  border:1px dashed var(--line); border-radius:8px; padding:10px; font-size:.82rem; background:var(--paper);
}

.form-postular > .btn-pill{ margin-top:6px; }

/* Honeypot: fuera de vista para una persona, pero sigue siendo un campo
   real del DOM (no display:none) — algunos bots ignoran justo los que
   tienen display:none, así que se saca de la pantalla en vez de ocultarlo. */
.hp-field{ position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }
