/* ════════════════════════════════════════════════════════════
   CV Design — Estilos de las 20 plantillas del currículum
   Se alimentan de variables CSS (--cv-*) que fija el motor
   común a partir del diseño elegido por el usuario.
   ════════════════════════════════════════════════════════════ */

.cv-pagina{
  width:210mm; min-height:297mm; height:auto; flex:0 0 auto;
  background:var(--cv-fondo,#fff); color:var(--cv-txt,#222);
  font-family:var(--cv-fuente,"Segoe UI",sans-serif);
  font-size:var(--cv-tam-txt,10.5pt); line-height:var(--cv-interlineado,1.4);
  box-shadow:0 6px 24px rgba(15,25,50,.18); border-radius:2px;
  position:relative; overflow:hidden; display:flex; flex-direction:column;
  counter-reset:pagina;
}
.cv-pagina *{box-sizing:border-box; margin:0; padding:0}
.cv-pagina a{color:var(--cv-enlace,#2b5bd7); text-decoration:var(--cv-link-deco,none); text-underline-offset:var(--cv-link-offset,2px); word-break:break-all}
.cv-pagina a:hover{text-decoration:underline}
.cv-pagina [data-bind]{outline:none; border-radius:2px; transition:background .12s; min-width:4px; display:inline-block}
/* Los campos editables que son de bloque deben seguir siéndolo (título encima de su texto, listas apiladas…) */
.cv-pagina [data-bind]:is(h1,h2,h3,h4,h5,p,div,li){display:block}
.cv-pagina [data-bind]:hover{background:rgba(59,98,217,.10); cursor:text}
.cv-pagina [data-bind]:focus{background:rgba(59,98,217,.14); box-shadow:0 0 0 1px #3b62d9}
.cv-pagina [data-bind]:empty::before{content:attr(data-vacio); color:#9aa7bd; font-style:italic}

.cv-num-pagina{
  position:absolute; bottom:6mm; right:var(--cv-margen-der,18mm); font-size:8.5pt;
  color:var(--cv-sec-2,#98a2b3); z-index:5;
}

/* ───── Estructuras ───── */
.cv-cabecera{flex:0 0 auto}
.cv-cuerpo{flex:1 1 auto; display:flex; min-height:0; gap:var(--cv-gap-cols,0mm)}
.cv-lateral{
  position:relative; isolation:isolate;
  flex:0 0 auto; padding:var(--cv-esp-sec,6mm) 6mm;
  background:transparent;
}
.cv-lateral::before{
  content:""; position:absolute; z-index:-1; left:0; right:0; top:0; bottom:0;
  background-color:var(--cv-fondo-lat,transparent);
  background-image:var(--cv-fondo-lat-img,none);
}
.cv-lateral.lateral-extiende-arriba::before{top:calc(-1 * var(--cv-lateral-ext-sup,0mm))}
.cv-lateral.lateral-extiende-abajo::before{bottom:calc(-1 * var(--cv-lateral-ext-inf,0mm))}
.cv-lateral.lateral-extiende-arriba.lateral-extiende-abajo::before{
  top:calc(-1 * var(--cv-lateral-ext-sup,0mm)); bottom:calc(-1 * var(--cv-lateral-ext-inf,0mm));
}
.cv-principal{flex:1 1 auto; min-width:0; padding:0; background-color:var(--cv-fondo-principal,transparent); background-image:var(--cv-fondo-principal-img,none)}
.cv-flujo{flex:1 1 auto}

/* v04.24 — Zona de cabecera (cabecera de plantilla + epígrafes de cabecera) */
.cv-zona-cabecera{flex:0 0 auto; display:block}
.cv-zona-cabecera>.cv-sec{margin-bottom:0}
.cv-zona-cabecera>.cv-sec+.cv-sec{margin-top:var(--cv-esp-sec,5mm)}

/* v04.24 — BARRA LATERAL A LA DERECHA (estructura real, no inversión visual) */
.cv-cuerpo.barra-derecha>.cv-lateral{order:2}
.cv-cuerpo.barra-derecha>.cv-principal{order:1}
/* Ajustes de detalles direccionales cuando la barra pasa a la derecha */
.barra-derecha.tpl-t11 .cv-lateral,.barra-derecha.tpl-t16 .cv-lateral{box-shadow:inset .3mm 0 0 var(--cv-linea,#b7c9d6)}
.barra-derecha.tpl-t6 .cv-lateral,.barra-derecha.tpl-t12 .cv-lateral,
.barra-derecha.tpl-t18 .cv-lateral,.barra-derecha.tpl-t27 .cv-lateral{border-radius:0 0 0 4mm;margin:0 6mm 6mm 0}
.barra-derecha.tpl-t19 .cv-lateral{box-shadow:inset .3mm 0 0 rgba(0,0,0,.35)}

/* v04.24 — Epígrafes personalizados */
.cv-epi{break-inside:avoid; page-break-inside:avoid}
.cv-epi-tit{display:flex;align-items:center;gap:1.6mm;flex-wrap:wrap}
.cv-epi-icono{flex:0 0 auto;line-height:1}
.cv-epi-cuerpo{white-space:pre-wrap; text-align:var(--cv-alinear-txt,start); word-break:break-word}
/* Epígrafes en la barra lateral heredan sus colores */
.cv-lateral .cv-epi-tit{color:var(--cv-color-tit-lat,var(--cv-tit))}
.cv-lateral .cv-epi-cuerpo{color:var(--cv-color-lat,var(--cv-txt))}

/* v04.24 — Indicadores de arrastrar y soltar estructural */
.cv-sec{position:relative}
.cv-drag-handle{
  position:absolute; top:0; left:-5.5mm; width:4.5mm; height:7mm; line-height:6mm;
  text-align:center; font-size:3mm; color:var(--cv-prim,#3b62d9); cursor:grab;
  opacity:0; transition:opacity .12s; user-select:none; z-index:3;
}
.cv-sec:hover>.cv-drag-handle{opacity:.85}
.cv-drag-handle:active{cursor:grabbing}
.cv-sec-arrastrando{opacity:.4}
.cv-sec-antes{box-shadow:0 -2.5px 0 0 var(--cv-prim,#3b62d9)!important}
.cv-sec-despues{box-shadow:0 2.5px 0 0 var(--cv-prim,#3b62d9)!important}
.cv-zona-activa{outline:1.5px dashed var(--cv-prim,#3b62d9); outline-offset:2px}
.cv-lateral[data-zona]:empty,.cv-principal[data-zona]:empty{min-height:18mm}
@media print{ .cv-drag-handle{display:none!important} }

/* ───── Bloques y secciones ───── */
.cv-sec{margin:0 0 var(--cv-esp-sec,5mm); break-inside:avoid; page-break-inside:avoid}
.cv-sec-tit{
  color:var(--cv-tit,#1c2534); font-size:var(--cv-tam-tit,13pt); font-weight:var(--cv-peso-tit,700);
  margin-bottom:calc(var(--cv-esp-item,3mm) * .8);
  text-transform:var(--cv-mayus,none); letter-spacing:var(--cv-track-tit,normal);
}
.cv-item{margin-bottom:var(--cv-esp-item,3mm); break-inside:avoid}
.cv-item:last-child{margin-bottom:0}
.cv-item-cab{display:flex; justify-content:space-between; align-items:baseline; gap:8px}
.cv-item-titulo{font-size:var(--cv-tam-sub,11pt); font-weight:var(--cv-peso-sub,600); color:var(--cv-sub,#33405a)}
.cv-item-fechas{
  font-size:var(--cv-tam-fecha,9pt); color:var(--cv-prim,#3b62d9); white-space:nowrap;
  font-family:var(--cv-fuente-fecha,var(--cv-fuente)); font-style:var(--cv-estilo-fecha,normal);
}
.cv-item-sub{font-size:var(--cv-tam-sec,9.5pt); color:var(--cv-prim,#3b62d9); font-weight:600; margin-top:.4mm}
.cv-item-sub .cv-ciudad{color:var(--cv-sec-2,#7b8798); font-weight:400}
.cv-item-desc{margin-top:1mm; text-align:var(--cv-alinear-txt,start); white-space:pre-wrap; word-break:break-word}
.cv-lista{margin:.8mm 0 0 4.5mm; list-style:none}
.cv-lista li{position:relative; margin-bottom:.6mm; padding-left:1mm}
.cv-lista li::before{content:var(--cv-vineta,"•"); position:absolute; left:-3.4mm; color:var(--cv-prim,#3b62d9); font-weight:700}
/* v04.40 — líneas añadidas desde «Modo corrección fina» con un tipo propio */
.cv-lista li.cv-linea-titulo{font-weight:700;font-size:1.08em;color:var(--cv-tit,inherit)}
.cv-lista li.cv-linea-subtitulo{font-weight:600;font-style:italic;color:var(--cv-sub,inherit)}
.cv-lista li.cv-linea-enlace a{color:var(--cv-enlace,#2b5bd7);text-decoration:var(--cv-link-deco,none)}
.cv-lista.logros li::before{content:"✔"; font-size:.85em}

/* ───── Perfil / texto largo ───── */
.cv-perfil-txt{text-align:var(--cv-alinear-txt,start); white-space:pre-wrap}

/* ───── Cabeceras comunes ───── */
.cv-nombre{
  font-size:var(--cv-tam-nombre,26pt); font-weight:var(--cv-peso-nombre,700);
  color:var(--cv-nombre-color,var(--cv-color-nombre,var(--cv-tit,#1c2534))); font-family:var(--cv-fuente-nombre,var(--cv-fuente)); line-height:1.12; letter-spacing:var(--cv-track-nombre,normal); text-align:var(--cv-nombre-align,center);
  margin-top:var(--cv-nombre-msup,0mm); margin-bottom:var(--cv-nombre-minf,0mm);
}
.cv-titular{font-size:calc(var(--cv-tam-tit,13pt) + 1pt); color:var(--cv-color-titular,var(--cv-prim,#3b62d9)); font-weight:600; margin-top:var(--cv-titular-msup,1.2mm); margin-bottom:var(--cv-titular-minf,0mm)}
.cv-contacto{list-style:none; display:flex; flex-wrap:wrap; gap:1.4mm 5mm; margin-top:2.6mm}
.cv-contacto li{display:flex; align-items:center; gap:1.6mm; font-size:var(--cv-tam-sec,9.5pt)}
.cv-contacto .ic{color:var(--cv-icono,var(--cv-prim,#3b62d9)); display:inline-flex; width:4mm; justify-content:center}
.cv-contacto .ic svg{width:var(--ic-size,3.6mm);height:var(--ic-size,3.6mm);fill:currentColor}
.cv-foto{flex:0 0 auto; overflow:hidden; background:transparent} /* v04.27 — respeta la transparencia de la foto */
.cv-foto img{width:100%;height:100%;object-fit:cover;display:block}
.cv-foto.forma-circulo{border-radius:50%}
.cv-foto.forma-redondeada{border-radius:4mm}

/* ───── Habilidades: variantes ───── */
.cv-hab{display:flex;flex-wrap:wrap;gap:1.6mm}
.cv-hab .hab{font-size:var(--cv-tam-sec,9.5pt)}
.cv-hab.lista{flex-direction:column;gap:.8mm}
.cv-hab.lista .hab{display:flex;justify-content:space-between;gap:4mm;align-items:flex-start}
.cv-hab.lista .hab .hab-nombre{flex:1;min-width:0;word-break:break-word}
.cv-hab .pts{color:var(--cv-prim,#3b62d9); letter-spacing:1px; white-space:nowrap; flex-shrink:0; align-self:flex-start}
.cv-hab.chips .hab{
  background:var(--cv-prim,#3b62d9); color:var(--cv-color-chip,#fff); padding:1mm 2.8mm;
  border-radius:999px; font-weight:600;
}
.cv-hab.tags .hab{
  border:1px solid var(--cv-prim,#3b62d9); color:var(--cv-prim,#3b62d9); padding:.8mm 2.4mm; border-radius:1.4mm;
  font-family:var(--cv-fuente-fecha,var(--cv-fuente));
}
.cv-idiomas .idi{display:flex;justify-content:space-between;gap:4mm;margin-bottom:1mm;font-size:var(--cv-tam-sec,9.5pt)}
.cv-idiomas .idi-bandera{margin:0 1.5mm;font-size:1.1em;line-height:1}
.cv-idiomas .idi .niv{color:var(--cv-sec-2,#7b8798)}
/* Idiomas: código MCER, porcentaje, barra */
.cv-idiomas .niv-cefr{font-weight:700;color:var(--cv-prim,#3b62d9);letter-spacing:.5px}
.cv-idiomas .niv-pct{font-weight:700;color:var(--cv-prim,#3b62d9)}
.cv-idiomas.estilo-barra .idi{flex-direction:column;align-items:stretch;gap:1mm;margin-bottom:2.6mm}
.cv-idiomas .idi-det{color:var(--cv-sec-2,#7b8798);font-size:calc(var(--cv-tam-sec,9.5pt) - 1pt);margin-top:.2mm}
/* Barras de nivel (idiomas y habilidades) */
.niv-barra{
  display:block;width:100%;max-width:44mm;height:2.3mm;border-radius:99px;overflow:hidden;
  background:rgba(122,134,154,.22); background:color-mix(in srgb, var(--cv-prim,#3b62d9) 16%, transparent);
}
.niv-barra>span{display:block;height:100%;background:var(--cv-prim,#3b62d9);border-radius:99px}
.cv-hab.barras{flex-direction:column;gap:2mm}
.cv-hab .hab-barra{display:flex;flex-direction:column;gap:.8mm}
.cv-item .sep{color:var(--cv-sec-2,#7b8798)}
.cv-credencial{font-size:calc(var(--cv-tam-sec,9.5pt) - .5pt);text-decoration:underline;display:inline-block;margin-top:.6mm;word-break:break-all}

/* ───── Estilos de título de sección ───── */
.estilo-tit-linea .cv-sec-tit{border-bottom:2px solid var(--cv-linea,var(--cv-prim,#3b62d9)); padding-bottom:1.2mm}
.estilo-tit-banda .cv-sec-tit{background:var(--cv-fondo-dest,var(--cv-prim)); color:var(--cv-color-banda,#fff); padding:1.6mm 3mm; border-radius:1.6mm}
.estilo-tit-cuadrado .cv-sec-tit{display:flex;align-items:center;gap:2.4mm}
.estilo-tit-cuadrado .cv-sec-tit::before{content:"";width:2.8mm;height:2.8mm;background:var(--cv-prim);flex:0 0 auto;border-radius:.6mm}
.estilo-tit-fino .cv-sec-tit{border-bottom:.4px solid var(--cv-linea,#d5dbe5); padding-bottom:1.6mm; font-weight:500}
.estilo-tit-doble .cv-sec-tit{border-top:1px solid var(--cv-linea,var(--cv-prim)); border-bottom:1px solid var(--cv-linea,var(--cv-prim)); padding:1.4mm 0; text-align:center}
.estilo-tit-lateral .cv-sec-tit{border-left:3px solid var(--cv-prim); padding-left:2.6mm}

/* Fondo personalizado de los títulos de sección (va tras todos los estilos para imponerse) */
.cv-pagina.fondo-sec .cv-sec-tit{
  background:var(--cv-fondo-sec); color:var(--cv-color-tit-sec,var(--cv-tit));
  padding:1.4mm 3mm; border-radius:1.4mm;
}

/* ════════════════════════════════════════════════
   T1 · PROFESIONAL CLÁSICO — 1 columna, cabecera centrada
   ════════════════════════════════════════════════ */
.tpl-t1 .cab-clasica{text-align:center; margin-bottom:var(--cv-esp-sec,6mm); position:relative}
.tpl-t1 .cab-clasica .cv-contacto{justify-content:center}
.tpl-t1 .cab-clasica .cv-foto{position:absolute; top:0; right:0}
.tpl-t1.foto-izquierda .cab-clasica .cv-foto{right:auto;left:0}
.tpl-t1 .cab-clasica::after{content:"";display:block;height:1.2mm;background:var(--cv-prim);margin-top:4mm;border-radius:2px}

/* ════════════════════════════════════════════════
   T2 · ELEGANTE — 1 columna, banda izquierda de acento
   ════════════════════════════════════════════════ */
.tpl-t2 .cv-flujo{border-left:1.6mm solid var(--cv-prim); padding-left:7mm}
.tpl-t2 .cab-elegante, .tpl-t14 .cab-elegante{display:flex;gap:7mm;align-items:center;margin-bottom:var(--cv-esp-sec,6mm)}
.tpl-t2 .cab-elegante .cv-datos-cab, .tpl-t14 .cab-elegante .cv-datos-cab{flex:1}
.tpl-t2 .cab-elegante .cv-nombre, .tpl-t14 .cab-elegante .cv-nombre{letter-spacing:.5px}

/* ════════════════════════════════════════════════
   T3 · MODERNO — dos columnas, barra lateral oscura
   ════════════════════════════════════════════════ */
.tpl-t3 .cv-lateral, .tpl-t11 .cv-lateral, .tpl-t13 .cv-lateral, .tpl-t16 .cv-lateral{color:var(--cv-color-lat,#eef2fb)}
.tpl-t3 .cv-lateral .cv-sec-tit, .tpl-t11 .cv-lateral .cv-sec-tit, .tpl-t13 .cv-lateral .cv-sec-tit, .tpl-t16 .cv-lateral .cv-sec-tit{color:var(--cv-color-tit-lat,#ffffff);font-size:calc(var(--cv-tam-tit) - 1.5pt);letter-spacing:.8px;border-color:var(--cv-linea-lat,rgba(255,255,255,.35))}
.tpl-t3 .cv-lateral .cv-item-titulo, .tpl-t11 .cv-lateral .cv-item-titulo, .tpl-t13 .cv-lateral .cv-item-titulo, .tpl-t16 .cv-lateral .cv-item-titulo{color:var(--cv-color-tit-lat,#fff)}
.tpl-t3 .cv-lateral .cv-idiomas .idi .niv,
.tpl-t3 .cv-lateral .cv-item-sub, .tpl-t3 .cv-lateral .cv-item-fechas,
.tpl-t11 .cv-lateral .cv-idiomas .idi .niv,
.tpl-t11 .cv-lateral .cv-item-sub, .tpl-t11 .cv-lateral .cv-item-fechas,
.tpl-t13 .cv-lateral .cv-idiomas .idi .niv,
.tpl-t13 .cv-lateral .cv-item-sub, .tpl-t13 .cv-lateral .cv-item-fechas,
.tpl-t16 .cv-lateral .cv-idiomas .idi .niv,
.tpl-t16 .cv-lateral .cv-item-sub, .tpl-t16 .cv-lateral .cv-item-fechas{color:var(--cv-color-sec-lat,#b9c6e2)}
.tpl-t3 .cv-lateral .cv-contacto, .tpl-t11 .cv-lateral .cv-contacto, .tpl-t13 .cv-lateral .cv-contacto, .tpl-t16 .cv-lateral .cv-contacto{flex-direction:column;gap:2.2mm;margin-top:0}
.tpl-t3 .cv-lateral .cv-contacto li, .tpl-t11 .cv-lateral .cv-contacto li, .tpl-t13 .cv-lateral .cv-contacto li, .tpl-t16 .cv-lateral .cv-contacto li{color:inherit;font-size:var(--cv-tam-sec,9.5pt);word-break:break-word}
.tpl-t3 .cv-lateral .cv-contacto .ic, .tpl-t11 .cv-lateral .cv-contacto .ic, .tpl-t13 .cv-lateral .cv-contacto .ic, .tpl-t16 .cv-lateral .cv-contacto .ic{color:var(--cv-icono)}
.tpl-t3 .cv-lateral .pts, .tpl-t11 .cv-lateral .pts, .tpl-t13 .cv-lateral .pts, .tpl-t16 .cv-lateral .pts{color:var(--cv-icono,#8fb0ff)}
.tpl-t3 .cab-lateral, .tpl-t11 .cab-lateral, .tpl-t13 .cab-lateral{display:flex;flex-direction:column;align-items:var(--cv-nombre-align,center);text-align:var(--cv-nombre-align,center);margin-bottom:var(--cv-esp-sec,6mm)}
.tpl-t3 .cab-lateral .cv-nombre, .tpl-t11 .cab-lateral .cv-nombre, .tpl-t13 .cab-lateral .cv-nombre{font-size:calc(var(--cv-tam-nombre) - 5pt);color:var(--cv-nombre-color,var(--cv-color-tit-lat,#fff));font-family:var(--cv-fuente-nombre,var(--cv-fuente));margin-top:var(--cv-nombre-msup,4mm)}
.tpl-t3 .cab-lateral .cv-titular, .tpl-t11 .cab-lateral .cv-titular, .tpl-t13 .cab-lateral .cv-titular{color:var(--cv-color-sec-lat,#c4d1ee)}
.tpl-t3 .cv-principal, .tpl-t11 .cv-principal, .tpl-t13 .cv-principal{padding-top:0}

/* ════════════════════════════════════════════════
   T4 · CORPORATIVO — banda de cabecera + 1 columna
   ════════════════════════════════════════════════ */
.tpl-t4 .cab-banda, .tpl-t10 .cab-banda, .tpl-t15 .cab-banda{
  background-color:var(--cv-fondo-cab,var(--cv-prim));
  background-image:var(--cv-fondo-cab-img,none);
  color:var(--cv-color-cab,#fff);
  display:flex;align-items:center;gap:6mm;padding:7mm 8mm;margin-bottom:var(--cv-esp-sec,6mm);
}
.tpl-t4 .cab-banda .cv-nombre, .tpl-t10 .cab-banda .cv-nombre, .tpl-t15 .cab-banda .cv-nombre{color:var(--cv-color-cab,#fff)}
.tpl-t4 .cab-banda .cv-titular, .tpl-t10 .cab-banda .cv-titular, .tpl-t15 .cab-banda .cv-titular{color:var(--cv-color-cab-sec,#d7e2ff)}
.tpl-t4 .cab-banda .cv-contacto li,.tpl-t4 .cab-banda .cv-contacto a,
.tpl-t10 .cab-banda .cv-contacto li,.tpl-t10 .cab-banda .cv-contacto a,
.tpl-t15 .cab-banda .cv-contacto li,.tpl-t15 .cab-banda .cv-contacto a{color:var(--cv-color-cab,#fff)}
.tpl-t4 .cab-banda .cv-contacto .ic, .tpl-t10 .cab-banda .cv-contacto .ic, .tpl-t15 .cab-banda .cv-contacto .ic{color:var(--cv-color-cab-sec,#d7e2ff)}
.tpl-t4.foto-izquierda .cab-banda, .tpl-t10.foto-izquierda .cab-banda, .tpl-t15.foto-izquierda .cab-banda{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t4 .cv-flujo, .tpl-t10 .cv-flujo, .tpl-t15 .cv-flujo{padding:0 1mm}

/* ════════════════════════════════════════════════
   T5 · MINIMALISTA — aire, grises finos
   ════════════════════════════════════════════════ */
.tpl-t5{font-weight:400}
.tpl-t5 .cab-minimal, .tpl-t20 .cab-minimal{margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.4); display:flex; justify-content:space-between; align-items:flex-start; gap:6mm}
.tpl-t5 .cab-minimal .cv-nombre{font-weight:300; letter-spacing:1px}
.tpl-t5 .cab-minimal .cv-titular, .tpl-t20 .cab-minimal .cv-titular{font-weight:400; letter-spacing:2.5px; text-transform:uppercase; font-size:calc(var(--cv-tam-sec,9.5pt) + .5pt)}
.tpl-t5 .cab-minimal .cv-contacto, .tpl-t20 .cab-minimal .cv-contacto{margin-top:3mm;color:var(--cv-sec-2,#7b8798)}
.tpl-t5 .cv-item-fechas{color:var(--cv-sec-2,#8a94a6)}
.tpl-t5 .cv-item-sub{color:var(--cv-txt,#222);font-weight:600}

/* ════════════════════════════════════════════════
   T6 · CREATIVO — cabecera con fondo destacado + 2 columnas
   ════════════════════════════════════════════════ */
.tpl-t6 .cab-creativa, .tpl-t12 .cab-creativa, .tpl-t18 .cab-creativa{
  background-color:var(--cv-fondo-cab,var(--cv-prim));
  background-image:var(--cv-fondo-cab-img,none);
  display:flex;align-items:center;gap:6mm;
  padding:7mm 8mm; margin-bottom:var(--cv-esp-sec,6mm); color:var(--cv-color-cab,#fff);
}
.tpl-t6 .cab-creativa .cv-nombre, .tpl-t12 .cab-creativa .cv-nombre, .tpl-t18 .cab-creativa .cv-nombre{color:var(--cv-color-cab,#fff)}
.tpl-t6 .cab-creativa .cv-titular, .tpl-t12 .cab-creativa .cv-titular, .tpl-t18 .cab-creativa .cv-titular{
  display:inline-block;background:var(--cv-sec,#f4a259);color:var(--cv-color-chip,#fff);
  padding:1mm 3.4mm;border-radius:999px;margin-top:2mm;font-size:var(--cv-tam-sub,11pt);
}
.tpl-t6.foto-izquierda .cab-creativa, .tpl-t12.foto-izquierda .cab-creativa, .tpl-t18.foto-izquierda .cab-creativa{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t6 .cv-lateral, .tpl-t12 .cv-lateral, .tpl-t18 .cv-lateral{border-radius:0 4mm 4mm 0;margin:0 4mm 4mm 0}
.tpl-t6 .cv-lateral .cv-sec-tit, .tpl-t12 .cv-lateral .cv-sec-tit, .tpl-t18 .cv-lateral .cv-sec-tit{font-size:calc(var(--cv-tam-tit) - 1pt)}

/* ════════════════════════════════════════════════
   T7 · TECNOLÓGICO — banda superior oscura + lateral estrecho
   ════════════════════════════════════════════════ */
.tpl-t7 .cab-tecnica, .tpl-t16 .cab-tecnica, .tpl-t19 .cab-tecnica{
  background-color:var(--cv-fondo-cab,#101828);
  background-image:var(--cv-fondo-cab-img,none);
  color:var(--cv-color-cab,#f2f6ff);
  display:flex;align-items:center;gap:6mm;padding:6mm 8mm;margin-bottom:var(--cv-esp-sec,6mm);
  border-bottom:1.4mm solid var(--cv-prim,#35d07f);
}
.tpl-t7 .cab-tecnica .cv-nombre, .tpl-t16 .cab-tecnica .cv-nombre, .tpl-t19 .cab-tecnica .cv-nombre{color:var(--cv-color-cab,#f2f6ff);font-family:var(--cv-fuente-fecha,var(--cv-fuente))}
.tpl-t7 .cab-tecnica .cv-titular, .tpl-t16 .cab-tecnica .cv-titular, .tpl-t19 .cab-tecnica .cv-titular{color:var(--cv-prim,#35d07f);font-family:var(--cv-fuente-fecha,var(--cv-fuente))}
.tpl-t7 .cab-tecnica .cv-contacto li,.tpl-t7 .cab-tecnica .cv-contacto a,
.tpl-t16 .cab-tecnica .cv-contacto li,.tpl-t16 .cab-tecnica .cv-contacto a,
.tpl-t19 .cab-tecnica .cv-contacto li,.tpl-t19 .cab-tecnica .cv-contacto a{color:var(--cv-color-cab,#f2f6ff)}
.tpl-t7 .cab-tecnica .cv-contacto .ic, .tpl-t16 .cab-tecnica .cv-contacto .ic, .tpl-t19 .cab-tecnica .cv-contacto .ic{color:var(--cv-prim,#35d07f)}
.tpl-t7.foto-izquierda .cab-tecnica, .tpl-t16.foto-izquierda .cab-tecnica, .tpl-t19.foto-izquierda .cab-tecnica{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t7 .cv-lateral, .tpl-t16 .cv-lateral, .tpl-t19 .cv-lateral{color:var(--cv-color-lat,#3c4760)}
.tpl-t7 .cv-lateral .cv-sec-tit, .tpl-t16 .cv-lateral .cv-sec-tit, .tpl-t19 .cv-lateral .cv-sec-tit{font-family:var(--cv-fuente-fecha,var(--cv-fuente));font-size:calc(var(--cv-tam-tit) - 2pt)}
.tpl-t7 .cv-item-fechas, .tpl-t16 .cv-item-fechas, .tpl-t19 .cv-item-fechas{font-family:var(--cv-fuente-fecha,Consolas,monospace)}

/* ════════════════════════════════════════════════
   T8 · PREMIUM — centrado, doble filete, foto circular
   ════════════════════════════════════════════════ */
.tpl-t8 .cab-premium{text-align:center;margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.1);display:flex;flex-direction:column;align-items:center;gap:4mm}
.tpl-t8 .cab-premium .marco-nombre{border-top:.6px solid var(--cv-linea,#c9a24d);border-bottom:.6px solid var(--cv-linea,#c9a24d);padding:3mm 10mm;position:relative}
.tpl-t8 .cab-premium .marco-nombre::before{content:"";position:absolute;inset:1.2mm;border:.5px solid var(--cv-linea,#c9a24d);pointer-events:none}
.tpl-t8 .cab-premium .cv-contacto{justify-content:center}
.tpl-t8 .estilo-tit-doble .cv-sec-tit,.tpl-t8 .cv-sec-tit{text-transform:var(--cv-mayus,uppercase)}

/* ───── Rellenos internos de plantillas de banda/dos columnas ───── */
.cv-contacto.en-columna{flex-direction:column;gap:2.2mm;align-items:flex-start}
.cv-contacto.en-columna li{word-break:break-word}
.tpl-t3 .cv-lateral,.tpl-t6 .cv-lateral,.tpl-t7 .cv-lateral,
.tpl-t11 .cv-lateral,.tpl-t12 .cv-lateral,.tpl-t13 .cv-lateral,.tpl-t16 .cv-lateral,
.tpl-t18 .cv-lateral,.tpl-t19 .cv-lateral{padding:10mm 6mm}
.tpl-t3 .cv-principal, .tpl-t11 .cv-principal, .tpl-t13 .cv-principal{padding:12mm 8mm 0 7mm}
.tpl-t6 .cv-principal, .tpl-t12 .cv-principal, .tpl-t18 .cv-principal{padding:0 8mm 0 6mm}
.tpl-t7 .cv-principal, .tpl-t16 .cv-principal, .tpl-t19 .cv-principal{padding:0 7mm 0 5mm}
.tpl-t4 .cv-flujo, .tpl-t10 .cv-flujo, .tpl-t15 .cv-flujo{padding:0 10mm}
.tpl-t4 .cab-banda, .tpl-t10 .cab-banda, .tpl-t15 .cab-banda{padding:7mm 10mm}
.tpl-t7 .cab-tecnica, .tpl-t16 .cab-tecnica, .tpl-t19 .cab-tecnica{padding:6mm 10mm}
.tpl-t6 .cab-creativa, .tpl-t12 .cab-creativa, .tpl-t18 .cab-creativa{padding:7mm 10mm}
.tpl-t6 .cv-lateral, .tpl-t12 .cv-lateral, .tpl-t18 .cv-lateral{margin:0 0 6mm 6mm;border-radius:0 0 4mm 4mm}

/* ════════════════════════════════════════════════
   T9 · ACADÉMICO — 1 columna, cabecera centrada con doble filete
   ════════════════════════════════════════════════ */
.tpl-t9 .cab-clasica{text-align:center; margin-bottom:var(--cv-esp-sec,6mm); position:relative}
.tpl-t9 .cab-clasica .cv-contacto{justify-content:center}
.tpl-t9 .cab-clasica .cv-foto{position:absolute; top:0; right:0}
.tpl-t9.foto-izquierda .cab-clasica .cv-foto{right:auto;left:0}
/* Doble filete fino bajo la cabecera (más delicado que la barra gruesa de t1) */
.tpl-t9 .cab-clasica::after{
  content:""; display:block; height:2.2mm; margin-top:4mm;
  border-top:.55mm solid var(--cv-linea,#a88968);
  border-bottom:.22mm solid var(--cv-linea,#a88968);
}
.tpl-t9 .cv-item-fechas{color:var(--cv-prim)}

/* ════════════════════════════════════════════════
   T10 · EJECUTIVO — banda antracita con borde inferior cobre
   ════════════════════════════════════════════════ */
.tpl-t10 .cab-banda{border-bottom:1.2mm solid var(--cv-prim,#b56a3c); margin-bottom:calc(var(--cv-esp-sec,6mm) * .9)}
.tpl-t10 .estilo-tit-lateral .cv-sec-tit, .tpl-t10 .cv-sec-tit{letter-spacing:1.2px}

/* ════════════════════════════════════════════════
   T11 · NÓRDICO — lateral claro con filete de separación
   ════════════════════════════════════════════════ */
.tpl-t11 .cv-lateral{box-shadow:inset -0.3mm 0 0 var(--cv-linea,#b7c9d6)}
.tpl-t11 .cv-lateral .cv-sec-tit{letter-spacing:1.4px}

/* ════════════════════════════════════════════════
   T12 · AURORA — esmeralda + ámbar, etiquetas redondeadas
   ════════════════════════════════════════════════ */
.tpl-t12 .cv-hab.tags .hab{border-radius:999px;border-width:1.2px}

/* ════════════════════════════════════════════════
   T13 · EUROPA — barra azul institucional, acentos oro
   ════════════════════════════════════════════════ */
.tpl-t13 .cv-lateral .cv-sec-tit{letter-spacing:1.1px;border-bottom:.4px solid var(--cv-linea-lat,rgba(255,255,255,.35));padding-bottom:1.4mm}
.cv-lateral-vacia{background:transparent!important; background-image:none!important; min-height:0!important}
.tpl-t13 .cab-lateral .cv-nombre{letter-spacing:.4px}
/* Enlaces de contacto en oro dentro de la barra azul */
.tpl-t13 .cv-lateral .cv-contacto a{color:var(--cv-icono,#d9a62e)}

/* ════════════════════════════════════════════════
   T14 · EDITORIAL — serif de revista y lomo fino al margen
   ════════════════════════════════════════════════ */
.tpl-t14 .cv-flujo{border-left:1mm solid var(--cv-linea,#c6c3a3); padding-left:7mm}
.tpl-t14 .cab-elegante .cv-nombre{letter-spacing:.8px}
.tpl-t14 .estilo-tit-linea .cv-sec-tit{letter-spacing:1.6px}

/* ════════════════════════════════════════════════
   T15 · IMPACTO — banda carmesí con filete negro grueso
   ════════════════════════════════════════════════ */
.tpl-t15 .cab-banda{border-bottom:1.4mm solid var(--cv-prim,#20232b); margin-bottom:calc(var(--cv-esp-sec,6mm) * .9)}
.tpl-t15 .cv-sec-tit{letter-spacing:1.2px}
.tpl-t15 .cv-hab.chips .hab{border-radius:1.6mm}   /* chips casi cuadrados, más contundentes */

/* ════════════════════════════════════════════════
   T16 · CONSOLA — fechas y etiquetas monoespaciadas, aire terminal
   ════════════════════════════════════════════════ */
.tpl-t16 .cv-lateral{box-shadow:inset -0.3mm 0 0 var(--cv-linea,#cfe0de)}
.tpl-t16 .cv-sec-tit{letter-spacing:1.4px}

/* ════════════════════════════════════════════════
   T17 · LEGAL — cabecera centrada Palatino, doble filete verde botella
   ════════════════════════════════════════════════ */
.tpl-t17 .cab-clasica{text-align:center; margin-bottom:var(--cv-esp-sec,6mm); position:relative}
.tpl-t17 .cab-clasica .cv-contacto{justify-content:center}
.tpl-t17 .cab-clasica .cv-foto{position:absolute; top:0; right:0}
.tpl-t17.foto-izquierda .cab-clasica .cv-foto{right:auto;left:0}
.tpl-t17 .cab-clasica::after{
  content:""; display:block; height:2.2mm; margin-top:4mm;
  border-top:.5mm solid var(--cv-prim,#2e4f3e);
  border-bottom:.22mm solid var(--cv-prim,#2e4f3e);
}
.tpl-t17 .cab-clasica .cv-nombre{letter-spacing:1.1px}

/* ════════════════════════════════════════════════
   T18 · DINÁMICO — naranja + azul noche, lateral con marco fino
   ════════════════════════════════════════════════ */
.tpl-t18 .cv-lateral{border:0.35mm solid var(--cv-linea,#f2cfa8)}
.tpl-t18 .cv-sec-tit{letter-spacing:1px}

/* ════════════════════════════════════════════════
   T19 · NEÓN — barra oscura violeta (colores por contraste automático)
   ════════════════════════════════════════════════ */
.tpl-t19 .cv-lateral{color:var(--cv-color-lat,#eef2fb)}
.tpl-t19 .cv-lateral .cv-sec-tit,.tpl-t19 .cv-lateral .cv-item-titulo{color:var(--cv-color-tit-lat,#fff)}
.tpl-t19 .cv-lateral .cv-sec-tit{border-color:var(--cv-linea-lat,rgba(255,255,255,.35))}
.tpl-t19 .cv-lateral .cv-idiomas .idi .niv,.tpl-t19 .cv-lateral .cv-item-sub,.tpl-t19 .cv-lateral .cv-item-fechas{color:var(--cv-color-sec-lat,#c9c4e2)}
.tpl-t19 .cv-lateral .cv-contacto{flex-direction:column;gap:2.2mm;margin-top:0}
.tpl-t19 .cv-lateral .cv-contacto li{color:inherit;word-break:break-word}
.tpl-t19 .cv-lateral .cv-contacto .ic{color:var(--cv-icono)}
.tpl-t19 .cv-lateral .pts{color:var(--cv-icono,#a78bfa)}
.tpl-t19 .cv-lateral{box-shadow:inset -0.3mm 0 0 rgba(0,0,0,.35)}
.tpl-t19 .cv-hab.tags .hab{border-width:1.2px}

/* ════════════════════════════════════════════════
   T20 · AMERICANO — Book Antiqua con barras pizarra de sección
   ════════════════════════════════════════════════ */
.tpl-t20 .cab-minimal .cv-nombre{font-weight:700;letter-spacing:.6px}
.tpl-t20.estilo-tit-banda .cv-sec-tit{border-radius:.8mm}   /* tpl y estilo van en el MISMO elemento */
.tpl-t20 .cv-sec-tit{letter-spacing:1.4px}

/* ════════════════════════════════════════════════════════════
   PLANTILLAS NUEVAS v04.24 (t21–t30)
   ════════════════════════════════════════════════════════════ */

/* ───── T21 · CORPORATIVO GLOBAL — banda azul + 2 columnas ───── */
.tpl-t21 .cab-banda{
  background-color:var(--cv-fondo-cab,var(--cv-prim));
  background-image:var(--cv-fondo-cab-img,none);
  color:var(--cv-color-cab,#fff);
  display:flex;align-items:center;gap:6mm;padding:7mm 10mm;margin-bottom:var(--cv-esp-sec,6mm);
  border-bottom:1mm solid var(--cv-sec,#5f7386);
}
.tpl-t21 .cab-banda .cv-nombre{color:var(--cv-color-cab,#fff)}
.tpl-t21 .cab-banda .cv-titular{color:var(--cv-color-cab-sec,#cfdce8)}
.tpl-t21 .cab-banda .cv-contacto li,.tpl-t21 .cab-banda .cv-contacto a{color:var(--cv-color-cab,#fff)}
.tpl-t21 .cab-banda .cv-contacto .ic{color:var(--cv-color-cab-sec,#cfdce8)}
.tpl-t21.foto-izquierda .cab-banda{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t21 .cv-lateral{padding:9mm 6mm; box-shadow:inset -0.25mm 0 0 var(--cv-linea,#c2cfd9)}
.tpl-t21 .cv-principal{padding:0 8mm 0 6mm}
.tpl-t21 .cv-lateral .cv-sec-tit{font-size:calc(var(--cv-tam-tit) - 1.5pt);letter-spacing:1px}

/* ───── T22 · EJECUTIVO DIRECCIÓN — doble filete superior ───── */
.tpl-t22 .cab-clasica{text-align:center; margin-bottom:var(--cv-esp-sec,6mm); position:relative}
.tpl-t22 .cab-clasica .cv-contacto{justify-content:center}
.tpl-t22 .cab-clasica .cv-foto{position:absolute; top:8mm; right:0}
.tpl-t22.foto-izquierda .cab-clasica .cv-foto{right:auto;left:0}
.tpl-t22 .cab-clasica::before{
  content:""; display:block; height:3.2mm; margin-bottom:6mm;
  border-top:1.1mm solid var(--cv-prim,#1c2b4a);
  border-bottom:.3mm solid var(--cv-prim,#1c2b4a);
}
.tpl-t22 .cv-sec-tit{border-left-width:1.2mm!important}
.tpl-t22 .cv-item-fechas{font-weight:700}

/* ───── T23 · NORDIKA — minimalismo nórdico, mucho aire ───── */
.tpl-t23{font-weight:400}
.tpl-t23 .cab-minimal{margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.6); display:flex; justify-content:space-between; align-items:flex-start; gap:6mm}
.tpl-t23 .cab-minimal .cv-nombre{font-weight:300; letter-spacing:2.5px}
.tpl-t23 .cab-minimal .cv-titular{font-weight:400; letter-spacing:3.5px; text-transform:uppercase; font-size:calc(var(--cv-tam-sec,9.5pt) + .5pt)}
.tpl-t23 .cab-minimal .cv-contacto{margin-top:4mm;color:var(--cv-sec-2,#93a1ad)}
.tpl-t23 .cv-sec-tit{letter-spacing:3px; font-weight:400}
.tpl-t23 .cv-item-fechas{color:var(--cv-sec-2,#93a1ad); letter-spacing:.6px}
.tpl-t23 .cv-item-sub{color:var(--cv-txt,#222); font-weight:600}

/* ───── T24 · GRAFITO — barra lateral oscura (derecha por defecto) ───── */
.tpl-t24 .cv-lateral{color:var(--cv-color-lat,#eef2fb); padding:10mm 6mm}
.tpl-t24 .cv-lateral .cv-sec-tit{color:var(--cv-color-tit-lat,#ffffff);font-size:calc(var(--cv-tam-tit) - 1.5pt);letter-spacing:.8px;border-color:var(--cv-linea-lat,rgba(255,255,255,.35))}
.tpl-t24 .cv-lateral .cv-item-titulo{color:var(--cv-color-tit-lat,#fff)}
.tpl-t24 .cv-lateral .cv-idiomas .idi .niv,
.tpl-t24 .cv-lateral .cv-item-sub, .tpl-t24 .cv-lateral .cv-item-fechas{color:var(--cv-color-sec-lat,#b9c6e2)}
.tpl-t24 .cv-lateral .cv-contacto{flex-direction:column;gap:2.2mm;margin-top:0}
.tpl-t24 .cv-lateral .cv-contacto li{color:inherit;font-size:var(--cv-tam-sec,9.5pt);word-break:break-word}
.tpl-t24 .cv-lateral .cv-contacto .ic{color:var(--cv-icono)}
.tpl-t24 .cv-lateral .pts{color:var(--cv-icono,#ff8a75)}
.tpl-t24 .cab-lateral{display:flex;flex-direction:column;align-items:var(--cv-nombre-align,center);text-align:var(--cv-nombre-align,center);margin-bottom:var(--cv-esp-sec,6mm)}
.tpl-t24 .cab-lateral .cv-nombre{font-size:calc(var(--cv-tam-nombre) - 5pt);color:var(--cv-nombre-color,var(--cv-color-tit-lat,#fff));font-family:var(--cv-fuente-nombre,var(--cv-fuente));margin-top:var(--cv-nombre-msup,4mm)}
.tpl-t24 .cab-lateral .cv-titular{color:var(--cv-color-sec-lat,#ffb3a6)}
.tpl-t24 .cv-principal{padding:12mm 7mm 0 8mm}

/* ───── T25 · BOUTIQUE — premium rosada, marco fino ───── */
.tpl-t25 .cab-premium{text-align:center;margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.1);display:flex;flex-direction:column;align-items:center;gap:4mm}
.tpl-t25 .cab-premium .marco-nombre{border-top:.5px solid var(--cv-linea,#d9b8ae);border-bottom:.5px solid var(--cv-linea,#d9b8ae);padding:3mm 12mm;position:relative}
.tpl-t25 .cab-premium .marco-nombre::before{content:"";position:absolute;inset:1.2mm;border:.4px solid var(--cv-linea,#d9b8ae);pointer-events:none}
.tpl-t25 .cab-premium .cv-contacto{justify-content:center}
.tpl-t25 .cv-sec-tit{letter-spacing:2.6px; text-align:center}
.tpl-t25 .cv-item-titulo{font-weight:600}

/* ───── T26 · CIRCUITO — banda noche con borde cian ───── */
.tpl-t26 .cab-tecnica{
  background-color:var(--cv-fondo-cab,#0e1c33);
  background-image:var(--cv-fondo-cab-img,none);
  color:var(--cv-color-cab,#f2f6ff);
  display:flex;align-items:center;gap:6mm;padding:6mm 10mm;margin-bottom:var(--cv-esp-sec,6mm);
  border-bottom:1.2mm solid var(--cv-prim,#22c3e6);
}
.tpl-t26 .cab-tecnica .cv-nombre{color:var(--cv-color-cab,#f2f6ff)}
.tpl-t26 .cab-tecnica .cv-titular{color:var(--cv-prim,#22c3e6); font-family:var(--cv-fuente-fecha,var(--cv-fuente))}
.tpl-t26 .cab-tecnica .cv-contacto li,.tpl-t26 .cab-tecnica .cv-contacto a{color:var(--cv-color-cab,#f2f6ff)}
.tpl-t26 .cab-tecnica .cv-contacto .ic{color:var(--cv-prim,#22c3e6)}
.tpl-t26.foto-izquierda .cab-tecnica{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t26 .cv-lateral{padding:9mm 6mm; box-shadow:inset -0.3mm 0 0 var(--cv-prim,#22c3e6)}
.tpl-t26 .cv-principal{padding:0 7mm 0 5mm}
.tpl-t26 .cv-item-fechas{font-family:var(--cv-fuente-fecha,Consolas,monospace)}
.tpl-t26 .cv-lateral .cv-sec-tit{font-size:calc(var(--cv-tam-tit) - 1.5pt)}

/* ───── T27 · ESTUDIO — cabecera fresa con chip lima ───── */
.tpl-t27 .cab-creativa{
  background-color:var(--cv-fondo-cab,var(--cv-prim));
  background-image:var(--cv-fondo-cab-img,none);
  display:flex;align-items:center;gap:6mm;
  padding:7mm 10mm; margin-bottom:var(--cv-esp-sec,6mm); color:var(--cv-color-cab,#fff);
}
.tpl-t27 .cab-creativa .cv-nombre{color:var(--cv-color-cab,#fff)}
.tpl-t27 .cab-creativa .cv-titular{
  display:inline-block;background:var(--cv-sec,#7cb342);color:var(--cv-color-chip,#fff);
  padding:1mm 3.4mm;border-radius:999px;margin-top:2mm;font-size:var(--cv-tam-sub,11pt);
}
.tpl-t27 .cab-creativa .cv-contacto li,.tpl-t27 .cab-creativa .cv-contacto a{color:var(--cv-color-cab,#fff)}
.tpl-t27 .cab-creativa .cv-contacto .ic{color:var(--cv-color-cab-sec,#f3b8cd)}
.tpl-t27.foto-izquierda .cab-creativa{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t27 .cv-lateral{border-radius:0 0 4mm 0;margin:0 0 6mm 6mm;padding:10mm 6mm}
.tpl-t27 .cv-principal{padding:0 8mm 0 6mm}
.tpl-t27 .cv-lateral .cv-sec-tit{font-size:calc(var(--cv-tam-tit) - 1pt)}

/* ───── T28 · PORTADA — gran cabecera destacada ───── */
.tpl-t28 .cab-banda{
  background-color:var(--cv-fondo-cab,var(--cv-prim));
  background-image:var(--cv-fondo-cab-img,none);
  color:var(--cv-color-cab,#fff);
  display:flex;align-items:center;gap:7mm;padding:12mm 10mm;margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.2);
}
.tpl-t28 .cab-banda .cv-nombre{color:var(--cv-color-cab,#fff)}
.tpl-t28 .cab-banda .cv-titular{color:var(--cv-color-cab-sec,#d9d0f2); font-size:calc(var(--cv-tam-tit,13pt) + 1pt)}
.tpl-t28 .cab-banda .cv-contacto li,.tpl-t28 .cab-banda .cv-contacto a{color:var(--cv-color-cab,#fff)}
.tpl-t28 .cab-banda .cv-contacto .ic{color:var(--cv-color-cab-sec,#d9d0f2)}
.tpl-t28.foto-izquierda .cab-banda{flex-direction:row-reverse;justify-content:flex-end}
.tpl-t28 .cv-flujo{padding:0 10mm}
.tpl-t28 .cab-banda .cv-foto{border:.8mm solid rgba(255,255,255,.6)}

/* ───── T29 · GACETA — editorial de prensa ───── */
.tpl-t29 .cab-clasica{text-align:center; margin-bottom:var(--cv-esp-sec,6mm); position:relative}
.tpl-t29 .cab-clasica .cv-contacto{justify-content:center}
.tpl-t29 .cab-clasica .cv-foto{position:absolute; top:6mm; right:0}
.tpl-t29.foto-izquierda .cab-clasica .cv-foto{right:auto;left:0}
.tpl-t29 .cab-clasica::before{content:"";display:block;height:2.4mm;margin-bottom:4mm;border-top:.7mm solid var(--cv-linea,#404040);border-bottom:.25mm solid var(--cv-linea,#404040)}
.tpl-t29 .cab-clasica::after{content:"";display:block;height:1.6mm;margin-top:4mm;border-top:.3mm solid var(--cv-linea,#404040);border-bottom:.6mm solid var(--cv-linea,#404040)}
.tpl-t29 .cab-clasica .cv-nombre{letter-spacing:1px; font-style:normal}
.tpl-t29 .cab-clasica .cv-titular{font-style:italic; font-weight:400}
.tpl-t29 .cv-item-fechas{color:var(--cv-txt,#3a3a3a)}

/* ───── T30 · COMPACTO PRO — alta densidad ───── */
.tpl-t30 .cab-minimal{margin-bottom:calc(var(--cv-esp-sec,6mm) * 1.1); display:flex; justify-content:space-between; align-items:flex-start; gap:6mm}
.tpl-t30 .cab-minimal .cv-nombre{letter-spacing:.3px}
.tpl-t30 .cab-minimal .cv-titular{font-weight:600; letter-spacing:1.6px; text-transform:uppercase; font-size:var(--cv-tam-sec,9.5pt)}
.tpl-t30 .cab-minimal .cv-contacto{margin-top:2mm}
.tpl-t30 .cv-sec-tit{letter-spacing:1.1px}

/* ───── Estados de impresión ───── */
@media print{
  *{ -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .cv-pagina{box-shadow:none;border-radius:0; -webkit-print-color-adjust: exact; print-color-adjust: exact}
  .cv-pagina [data-bind]:hover{background:none}
  .cv-pagina [data-bind]{outline:none!important}
}

/* ════════════ Código QR (v2.6) — Prueba en vivo ════════════ */
.cv-qr{flex:none;line-height:0;background:#fff;padding:1.1mm;border-radius:1.4mm}
.cv-qr img{display:block;width:100%;height:100%}
/* Cabeceras centradas (Clásico, Académico, Legal…): QR centrado debajo */
.cab-clasica>.cv-qr{display:block;margin:3mm auto 0}
/* Cabeceras en fila (banda/creativa/tecnica/minimal/elegante/premium): item flex */
.cv-cabecera>.cv-qr{align-self:center}
/* Bloques de flujo (columna lateral o final del CV) */
.cv-qr-bloque{display:flex;justify-content:center;margin-top:4mm}
.cv-lateral .cv-qr-bloque{margin-top:5mm}
.cv-qr-pie{margin-top:6mm}
/* v02.60 — mover textos + espaciado corregido */
.cv-sec[draggable]{cursor:grab}
.cv-sec[draggable]:active{cursor:grabbing}
.cv-sec:hover{outline:1px dashed color-mix(in srgb, var(--cv-prim,#3b62d9) 35%, transparent)}
.modo-arrastre [data-bind]{cursor:text}
.modo-arrastre [data-bind]:hover{background:rgba(59,98,217,.10)}

/* ═══ v04.26 — Posición de la foto universal (selector siempre operativo) ═══ */
/* Cabeceras tipo fila cuyo DOM es «datos, foto»: invertir = foto a la izquierda */
.foto-izquierda .cab-banda,.foto-izquierda .cab-creativa,.foto-izquierda .cab-tecnica,.foto-izquierda .cab-minimal{flex-direction:row-reverse;justify-content:flex-end}
/* Cabecera elegante (DOM «foto, datos»): invertir = foto a la derecha */
.foto-derecha .cab-elegante{flex-direction:row-reverse;justify-content:flex-end}
/* Centrada: foto arriba en el centro, textos centrados debajo */
.foto-centro .cab-banda,.foto-centro .cab-creativa,.foto-centro .cab-tecnica,.foto-centro .cab-minimal,.foto-centro .cab-elegante{flex-direction:column;align-items:center;text-align:center}
.foto-centro .cab-banda .cv-foto,.foto-centro .cab-creativa .cv-foto,.foto-centro .cab-tecnica .cv-foto,.foto-centro .cab-minimal .cv-foto,.foto-centro .cab-elegante .cv-foto{order:-1;margin-bottom:3mm}
.foto-centro .cab-banda .cv-datos-cab,.foto-centro .cab-creativa .cv-datos-cab,.foto-centro .cab-tecnica .cv-datos-cab,.foto-centro .cab-minimal .cv-datos-cab,.foto-centro .cab-elegante .cv-datos-cab{flex:none;width:100%}
.foto-centro .cab-banda .cv-contacto,.foto-centro .cab-creativa .cv-contacto,.foto-centro .cab-tecnica .cv-contacto,.foto-centro .cab-minimal .cv-contacto,.foto-centro .cab-elegante .cv-contacto{justify-content:center}
/* Centrada en cabecera clásica (foto flotante absoluta en algunas plantillas) */
.foto-centro .cab-clasica .cv-foto{position:static !important;margin:0 auto 3mm}
.foto-centro .cab-clasica{text-align:center}
/* Cabecera premium ya es centrada por naturaleza */
.cab-premium .cv-foto{margin:0 auto}
/* En cabeceras que viven en la barra lateral la «posición» alinea la foto dentro de la barra */
.foto-izquierda .cab-lateral .cv-foto{align-self:flex-start}
.foto-centro .cab-lateral .cv-foto{align-self:center}
.foto-derecha .cab-lateral .cv-foto{align-self:flex-end}
/* Foto colocada a mano al principio de la barra lateral */
.cv-foto-lateral{display:flex;justify-content:center}

/* ═══ v04.26 — Color independiente de los enlaces de la cabecera ═══ */
.cab-link-custom .cv-cabecera a,.cab-link-custom .cab-lateral a{color:var(--cv-link-color-cab) !important}

/* v04.26 — Alineación independiente del titular (variable en la página) */
.cv-titular{text-align:var(--cv-titular-align,inherit);width:var(--cv-titular-w,auto)}

/* ═══ v04.27 — Titular profesional: tipografía y altura propias ═══ */
.titular-cust-f .cv-titular{font-family:var(--cv-titular-fuente) !important}
.titular-cust-t .cv-titular{font-size:var(--cv-titular-tam) !important}

/* v04.27 — Titular: color de texto propio (presentación «Texto») */
.cv-titular.tit-pres-texto .tit-in{color:var(--cv-titular-txt,inherit)}

/* v04.27 — Titular: presentación «Chip de color» y «Banda a todo el ancho» */
.cv-titular.tit-pres-chip .tit-in{display:inline-block;background:var(--cv-titular-bg,var(--cv-prim,#3b62d9));color:var(--cv-titular-txt,#ffffff);padding:.8mm 3.2mm;border-radius:3mm;line-height:1.4}
.cv-titular.tit-pres-banda{display:block;width:100%}
.cv-titular.tit-pres-banda .tit-in{display:block;background:var(--cv-titular-bg,var(--cv-prim,#3b62d9));color:var(--cv-titular-txt,#ffffff);padding:1.1mm 3mm;border-radius:1mm}

/* ═══ v04.27 — Efectos de texto y tipografía (nombre / titular / títulos) ═══ */
/* Sombra */
.fx-nombre-sombra .cv-nombre{text-shadow:.4mm .5mm 1.2mm var(--fx-nombre-c1,rgba(15,23,42,.45))}
.fx-titular-sombra .cv-titular{text-shadow:.35mm .4mm 1mm var(--fx-titular-c1,rgba(15,23,42,.4))}
.fx-titulos-sombra .cv-sec-tit{text-shadow:.3mm .35mm .9mm var(--fx-titulos-c1,rgba(15,23,42,.4))}
/* Contorno */
.fx-nombre-contorno .cv-nombre{-webkit-text-stroke:.5pt var(--fx-nombre-c1,#33415e);paint-order:stroke fill}
.fx-titular-contorno .cv-titular{-webkit-text-stroke:.4pt var(--fx-titular-c1,#33415e);paint-order:stroke fill}
.fx-titulos-contorno .cv-sec-tit{-webkit-text-stroke:.4pt var(--fx-titulos-c1,#33415e);paint-order:stroke fill}
/* Degradado (en el titular solo con presentación «Texto»; chip/banda conservan su fondo) */
.fx-nombre-degradado .cv-nombre{background-image:linear-gradient(92deg,var(--fx-nombre-c1,#3b62d9),var(--fx-nombre-c2,#8b5cf6));-webkit-background-clip:text;background-clip:text;color:transparent !important;-webkit-text-fill-color:transparent}
.fx-titular-degradado .cv-titular:not(.tit-pres-chip):not(.tit-pres-banda){background-image:linear-gradient(92deg,var(--fx-titular-c1,#3b62d9),var(--fx-titular-c2,#8b5cf6));-webkit-background-clip:text;background-clip:text}
.fx-titular-degradado .cv-titular:not(.tit-pres-chip):not(.tit-pres-banda) .tit-in{color:transparent !important;-webkit-text-fill-color:transparent}
.fx-titulos-degradado .cv-sec-tit{background-image:linear-gradient(92deg,var(--fx-titulos-c1,#3b62d9),var(--fx-titulos-c2,#8b5cf6));-webkit-background-clip:text;background-clip:text;color:transparent !important;-webkit-text-fill-color:transparent}
/* Iluminado (resplandor) */
.fx-nombre-iluminado .cv-nombre{text-shadow:0 0 1.6mm var(--fx-nombre-c1,#ffd166),0 0 4mm var(--fx-nombre-c2,rgba(255,209,102,.6))}
.fx-titular-iluminado .cv-titular{text-shadow:0 0 1.4mm var(--fx-titular-c1,#ffd166),0 0 3.5mm var(--fx-titular-c2,rgba(255,209,102,.55))}
.fx-titulos-iluminado .cv-sec-tit{text-shadow:0 0 1.3mm var(--fx-titulos-c1,#ffd166),0 0 3mm var(--fx-titulos-c2,rgba(255,209,102,.55))}

/* v05.04 — subrayado propio por dato de contacto («6 Detalle → Contacto»),
   fijado por encima del interruptor general «Subrayar hipervínculos»
   (que se aplica por JS en render.js, así que aquí basta con !important
   para ganarle a ese estilo en línea). */
.cv-contacto a.cc-subrayado-si, .cv-contacto span.cc-subrayado-si{text-decoration:underline !important}
.cv-contacto a.cc-subrayado-no, .cv-contacto span.cc-subrayado-no{text-decoration:none !important}
