/* El currículum en sí: tamaño A4, medidas en mm y pt para que el PDF salga igual que en pantalla.
   Letra Arial/Helvetica y texto real (no imagen) para que lo lean bien los programas de selección.
   --cv-acento es el color principal; el usuario puede cambiarlo (ver COLORES en plantillas.js). */

.cv-pagina {
  --cv-tinta: #1c2230;
  --cv-suave: #59616f;
  --cv-linea: #dfe2e7;
  --cv-acento: #1f5f8b;
  width: 210mm;
  min-height: 297mm;
  background: #fff;
  color: var(--cv-tinta);
  font-family: "Helvetica Neue", Helvetica, Arial, "Liberation Sans", sans-serif;
  font-size: 10pt;
  line-height: 1.45;
  text-align: left; /* que no herede el centrado de la página donde se muestre */
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.cv-pagina * { box-sizing: border-box; margin: 0; padding: 0; }

.cv-pagina h1 { font-size: 25pt; line-height: 1.1; font-weight: 700; letter-spacing: -0.015em; }
.cv-por-rellenar { color: #b3b9c3; }
.cv-puesto { margin-top: 1.5mm; color: var(--cv-acento); font-size: 12.5pt; font-weight: 600; }

/* Contacto con iconos */
.cv-contacto { display: flex; flex-wrap: wrap; gap: 1.5mm 5mm; margin-top: 3.5mm; list-style: none; color: var(--cv-suave); font-size: 9pt; }
.cv-contacto li { display: inline-flex; align-items: center; gap: 1.5mm; min-width: 0; }
.cv-contacto span { overflow-wrap: anywhere; }
.cv-icono { flex: none; width: 3.4mm; height: 3.4mm; color: var(--cv-acento); }

/* Secciones */
.cv-seccion { margin-top: 6.5mm; }
.cv-seccion h2 {
  display: flex;
  align-items: center;
  gap: 2mm;
  margin-bottom: 3mm;
  padding-bottom: 1.5mm;
  border-bottom: 0.3mm solid var(--cv-linea);
  color: var(--cv-acento);
  font-size: 10pt;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cv-seccion h2::before { content: ""; flex: none; width: 2.2mm; height: 2.2mm; border-radius: 0.5mm; background: currentColor; }
.cv-seccion p + p { margin-top: 2mm; }

.cv-item { position: relative; margin-bottom: 4.5mm; break-inside: avoid; }
.cv-item:last-child { margin-bottom: 0; }
.cv-item-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 4mm; }
.cv-item h3 { font-size: 10.5pt; font-weight: 700; }
.cv-fecha { flex: none; color: var(--cv-suave); font-size: 9pt; white-space: nowrap; }
.cv-sub { color: var(--cv-acento); font-size: 9.5pt; font-weight: 600; }
.cv-item ul { margin: 1.5mm 0 0 4.5mm; }
.cv-item li { margin-bottom: 0.8mm; }
.cv-item li::marker { color: var(--cv-acento); }

.cv-lista { list-style: none; }
.cv-lista li { margin-bottom: 1.2mm; }

/* Idiomas con puntos de nivel */
.cv-idiomas { display: grid; gap: 2mm; list-style: none; }
.cv-idioma { display: flex; align-items: center; justify-content: space-between; gap: 3mm; }
.cv-puntos { display: inline-flex; gap: 1mm; }
.cv-puntos i { width: 2.4mm; height: 2.4mm; border-radius: 50%; background: var(--cv-linea); }
.cv-puntos i.lleno { background: var(--cv-acento); }
.cv-nivel { display: block; color: var(--cv-suave); font-size: 8.5pt; }

.cv-etiquetas { display: flex; flex-wrap: wrap; gap: 1.5mm; list-style: none; }
.cv-etiquetas li { padding: 0.7mm 2.2mm; border-radius: 1mm; background: #f1f3f6; font-size: 9pt; }

.cv-dos-columnas { display: grid; grid-template-columns: 1fr 1fr; gap: 0 9mm; }

/* Foto */
.cv-foto { flex: none; width: 34mm; height: 34mm; border-radius: 2mm; object-fit: cover; }
.cv-foto-vacia {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  overflow: hidden;
  border: 0.4mm dashed #c3c9d2;
  background: #eef1f4;
  color: #b9c1cc;
}
.cv-foto-vacia svg { width: 70%; height: 70%; margin-bottom: -2mm; }
.cv-foto-vacia small {
  position: absolute;
  bottom: 50%;
  transform: translateY(50%);
  padding: 0.5mm 2mm;
  border-radius: 1mm;
  background: rgba(255, 255, 255, 0.9);
  color: #6b7380;
  font-size: 7pt;
  font-weight: 600;
  white-space: nowrap;
}

.cv-pista {
  margin-top: 8mm;
  padding: 5mm;
  border: 0.3mm dashed var(--cv-linea);
  border-radius: 2mm;
  color: var(--cv-suave);
  text-align: center;
}

/* ---------- Clásico: franja de color arriba, foto a la derecha ---------- */

.plantilla-clasica { padding: 14mm 18mm 16mm; border-top: 3.5mm solid var(--cv-acento); }
.plantilla-clasica .cv-cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8mm;
  padding-bottom: 5mm;
  border-bottom: 0.5mm solid var(--cv-tinta);
}
.plantilla-clasica .cv-cabecera-texto { flex: 1; min-width: 0; }

/* ---------- Moderno: columna lateral de color ---------- */

.plantilla-moderna {
  --cv-acento: #1d6b5a;
  display: grid;
  grid-template-columns: 66mm minmax(0, 1fr);
  /* El fondo va en la página para que la columna siga coloreada en la segunda hoja */
  background: linear-gradient(to right, var(--cv-acento) 66mm, #fff 66mm);
}
.plantilla-moderna .cv-lateral { padding: 14mm 8mm 14mm 9mm; color: #fff; font-size: 9.5pt; }
.plantilla-moderna .cv-lateral .cv-foto { display: block; width: 44mm; height: 44mm; margin: 0 auto 2mm; border: 1mm solid rgba(255, 255, 255, 0.85); border-radius: 50%; }
.plantilla-moderna .cv-lateral .cv-foto-vacia { display: flex; border: 0.5mm dashed rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.45); }
.plantilla-moderna .cv-lateral .cv-seccion h2 { color: #fff; border-bottom-color: rgba(255, 255, 255, 0.3); }
.plantilla-moderna .cv-lateral .cv-contacto { flex-direction: column; gap: 2mm; margin-top: 0; color: #fff; }
.plantilla-moderna .cv-lateral .cv-icono { color: #fff; opacity: 0.85; }
.plantilla-moderna .cv-lateral .cv-etiquetas li { background: rgba(255, 255, 255, 0.16); color: #fff; }
.plantilla-moderna .cv-lateral .cv-puntos i { background: rgba(255, 255, 255, 0.28); }
.plantilla-moderna .cv-lateral .cv-puntos i.lleno { background: #fff; }
.plantilla-moderna .cv-lateral .cv-nivel { color: rgba(255, 255, 255, 0.8); }
.plantilla-moderna .cv-principal { padding: 15mm 14mm 14mm 10mm; }
.plantilla-moderna .cv-principal .cv-cabecera { padding-bottom: 1mm; }
.plantilla-moderna.sin-foto .cv-lateral { padding-top: 15mm; }
.plantilla-moderna.sin-foto .cv-lateral > .cv-seccion:first-child { margin-top: 0; }

/* ---------- Compacto: banda oscura arriba ---------- */

.plantilla-compacta { --cv-acento: #a0461b; }
.plantilla-compacta .cv-banda {
  display: flex;
  align-items: center;
  gap: 7mm;
  padding: 12mm 16mm;
  background: color-mix(in srgb, var(--cv-acento) 30%, #1b1f26);
  color: #fff;
}
.plantilla-compacta .cv-banda .cv-cabecera-texto { min-width: 0; }
.plantilla-compacta .cv-banda .cv-puesto { color: rgba(255, 255, 255, 0.85); }
.plantilla-compacta .cv-banda .cv-contacto { color: rgba(255, 255, 255, 0.85); }
.plantilla-compacta .cv-banda .cv-icono { color: #fff; }
.plantilla-compacta .cv-banda .cv-por-rellenar { color: rgba(255, 255, 255, 0.4); }
.plantilla-compacta .cv-banda .cv-foto { width: 32mm; height: 32mm; border: 1mm solid #fff; border-radius: 50%; }
.plantilla-compacta .cv-banda .cv-foto-vacia { border: 0.5mm dashed rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.4); }
.plantilla-compacta .cv-cuerpo { padding: 2mm 16mm 14mm; }

/* ---------- Carta de presentación (usa la cabecera del Clásico) ---------- */

.cv-carta .carta-cuerpo { margin-top: 10mm; font-size: 10.5pt; line-height: 1.6; }
.cv-carta .carta-cuerpo p + p { margin-top: 4mm; }
.cv-carta .carta-destinatario { color: var(--cv-suave); }
.cv-carta .carta-fecha { text-align: right; color: var(--cv-suave); }
.cv-carta .carta-saludo { margin-top: 8mm !important; font-weight: 700; }
.cv-carta .carta-despedida { margin-top: 8mm !important; }
.cv-carta .carta-firma { margin-top: 10mm !important; color: var(--cv-acento); font-size: 13pt; font-weight: 700; }
.cv-carta .carta-firma.con-firma { margin-top: 1mm !important; }
.cv-carta .carta-firma-img { display: block; height: 20mm; max-width: 70mm; margin-top: 5mm; object-fit: contain; object-position: left center; }

/* ---------- En el PDF ---------- */

@media print {
  .cv-pagina { min-height: 296mm; }
  .cv-pista, .cv-foto-vacia { display: none !important; }
}

/* Guía de entrevista */
.cv-guion .guion-cuerpo { margin-top: 8mm; font-size: 10pt; line-height: 1.5; color: var(--cv-tinta); }
.cv-guion .guion-portada { margin: 0; font-size: 16pt; font-weight: 800; color: var(--cv-acento); }
.cv-guion .guion-oferta { margin: 1mm 0 0; color: var(--cv-suave); }
.cv-guion .guion-seccion { margin-top: 6mm; break-inside: avoid-page; }
.cv-guion .guion-titulo { margin: 0 0 2mm; padding-bottom: 1mm; border-bottom: 1px solid var(--cv-linea); font-size: 11pt; font-weight: 800; color: var(--cv-acento); text-transform: uppercase; letter-spacing: 0.04em; }
.cv-guion ul, .cv-guion ol { margin: 0; padding-left: 5mm; }
.cv-guion li { margin-bottom: 2mm; }
.cv-guion .guion-preguntas li { break-inside: avoid; }
.cv-guion .guion-pregunta { margin: 0; font-weight: 700; }
.cv-guion .guion-respuesta { margin: 1mm 0 0; padding: 2mm 3mm; border-left: 2px solid var(--cv-acento); background: #f5f7f9; color: var(--cv-tinta); }
.cv-guion .guion-privado { margin: 0 0 3mm; padding: 1.5mm 3mm; border-radius: 2mm; background: #fff4d6; color: #6b4a00; font-size: 9pt; font-weight: 700; }
.cv-guion .guion-cabecera { padding-bottom: 5mm; border-bottom: 2px solid var(--cv-acento); }
.cv-guion .guion-cabecera .guion-portada { font-size: 10pt; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.cv-guion .guion-empresa { margin: 1mm 0 0; font-size: 24pt; line-height: 1.1; font-weight: 800; color: var(--cv-tinta); }
.cv-guion .guion-cabecera .guion-oferta { margin-top: 1.5mm; font-size: 12pt; color: var(--cv-suave); }

/* QR del CV en internet, en la esquina de abajo a la derecha */
.cv-pagina { position: relative; }
.cv-qr { position: absolute; right: 12mm; bottom: 10mm; display: grid; justify-items: center; gap: 1mm; width: 22mm; }
.cv-qr svg { width: 22mm; height: 22mm; display: block; }
.cv-qr span { font-size: 6.5pt; line-height: 1.2; text-align: center; color: var(--cv-suave, #59616f); }
