/* ===== Módulo de consulta de textos normativos · clases cv- bajo .cv-doc =====
   Compartido por: convenio colectivo, Orden 2680/2024, Acuerdo Marco y esquema ENAC.
   ================================================================== */
.cv-doc{ padding:0 0 88px; }
.cv-doc .cv-cols{ display:grid; grid-template-columns:252px minmax(0,1fr); gap:46px; align-items:start; }

/* --- banda de cifras clave --- */
.cv-banda{ background:var(--gris-suave); border-bottom:1px solid #e3eaee; padding:34px 0 36px; }
.cv-cifras{ display:grid; grid-template-columns:repeat(auto-fit,minmax(158px,1fr)); gap:14px; }
.cv-cifra{
  background:var(--blanco); border:1px solid #e0e8ec; border-radius:var(--radio);
  padding:16px 18px 15px; position:relative; overflow:hidden;
}
.cv-cifra::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--ambar); }
.cv-cifra dt{
  font-size:.68rem; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--ambar-oscuro); font-weight:700; margin:0 0 8px; line-height:1.3;
}
.cv-cifra dd{ margin:0; }
.cv-cifra .cv-dato{
  font-family:'Fraunces',Georgia,serif; font-size:1.72rem; font-weight:700;
  color:var(--azul-oscuro); line-height:1; display:block; font-variant-numeric:tabular-nums;
}
.cv-cifra .cv-pie{ display:block; margin-top:7px; font-size:.8rem; color:var(--gris-texto); line-height:1.4; }
.cv-cifra .cv-pie em{ font-style:normal; color:#8ba0ab; }

/* --- barra de herramientas --- */
.cv-barra{
  position:sticky; top:98px; z-index:40; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.6) blur(8px); -webkit-backdrop-filter:saturate(1.6) blur(8px);
  border-bottom:1px solid #e3eaee; padding:14px 0;
}
.cv-barra-int{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.cv-search{ position:relative; flex:1 1 320px; min-width:0; }
.cv-search input{
  width:100%; padding:12px 14px 12px 42px; font:inherit; font-size:1rem;
  color:var(--gris-texto); background:var(--blanco);
  border:1px solid #d5dee3; border-radius:var(--radio);
}
.cv-search input:focus-visible{ outline:2px solid var(--ambar); outline-offset:1px; border-color:var(--ambar); }
.cv-search .cv-lupa{ position:absolute; left:15px; top:50%; transform:translateY(-50%); color:#8ba0ab; }
.cv-search .cv-atajo{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  font-size:.7rem; color:#9fb0b9; border:1px solid #dbe4e8; border-radius:5px;
  padding:2px 7px; background:var(--gris-suave); pointer-events:none;
}
.cv-acciones{ display:flex; gap:8px; align-items:center; }
.cv-btn{
  font:inherit; font-size:.83rem; font-weight:600; color:var(--azul-oscuro);
  background:var(--blanco); border:1px solid #d5dee3; border-radius:var(--radio);
  padding:10px 14px; cursor:pointer; white-space:nowrap;
}
.cv-btn:hover{ background:var(--azul-claro); border-color:#c3d5de; }
.cv-hits{ font-size:.82rem; color:#8ba0ab; margin:0; white-space:nowrap; }
.cv-hits.cv-cero{ color:var(--ambar-oscuro); font-weight:600; }

/* --- índice --- */
.cv-doc .cv-toc{ position:sticky; top:180px; max-height:calc(100vh - 205px); overflow-y:auto; padding-top:30px; }
.cv-doc .cv-toc ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1px; }
.cv-doc .cv-toc li{ margin:0; padding:0; }
.cv-doc .cv-toc li::before{ content:none; }
.cv-doc .cv-toc a{
  display:flex; gap:10px; align-items:baseline; padding:7px 10px; border-radius:8px;
  text-decoration:none; color:var(--gris-texto); font-size:.85rem; line-height:1.35;
  border:none; white-space:normal; font-weight:500; transition:none;
}
.cv-doc .cv-toc a:hover{ background:var(--gris-suave); color:var(--azul-oscuro); }
.cv-doc .cv-toc a.cv-on{ background:var(--azul-claro); color:var(--azul-oscuro); font-weight:700; }
.cv-doc .cv-toc a span{ font-size:.72rem; color:#9fb0b9; font-variant-numeric:tabular-nums; flex:0 0 auto; min-width:34px; }
.cv-doc .cv-toc a.cv-on span{ color:var(--azul); }
.cv-doc .cv-toc a.cv-apagado{ opacity:.35; }
.cv-doc .cv-toc b{ margin-left:auto; font-size:.7rem; color:var(--ambar-oscuro); font-weight:700; }

/* --- contenido --- */
.cv-doc main{ min-width:0; display:flex; flex-direction:column; gap:40px; padding-top:30px; }
.cv-doc .cv-seccion{ scroll-margin-top:180px; padding:0; }
.cv-doc .cv-sechead{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding-bottom:11px; border-bottom:2px solid var(--azul-oscuro); margin-bottom:0;
}
.cv-doc .cv-sechead h2{
  font-family:'Fraunces',Georgia,serif; font-size:1.55rem; font-weight:600;
  color:var(--azul-oscuro); margin:0; line-height:1.2;
}
.cv-doc .cv-arts{
  font-size:.72rem; color:var(--ambar-oscuro); letter-spacing:1.2px;
  text-transform:uppercase; font-weight:700; white-space:nowrap; margin-left:auto;
}
.cv-doc .cv-items{ display:flex; flex-direction:column; }
.cv-doc .cv-item{
  display:grid; grid-template-columns:86px minmax(0,1fr); gap:18px;
  padding:17px 0; border-bottom:1px solid #e9eff2; scroll-margin-top:180px;
}
.cv-doc .cv-item > *{ min-width:0; }
.cv-doc .cv-item:last-child{ border-bottom:none; }
.cv-doc .cv-item:target{ background:rgba(232,161,60,.09); box-shadow:-14px 0 0 rgba(232,161,60,.09), 14px 0 0 rgba(232,161,60,.09); }
.cv-doc .cv-ref{ font-size:.78rem; font-weight:700; color:var(--azul); padding-top:4px; letter-spacing:.2px; }
.cv-doc .cv-enlace{
  display:block; margin-top:6px; font-size:.7rem; color:#b7c4cb; background:none;
  border:0; padding:0; cursor:pointer; font-family:inherit; text-align:left; opacity:0; transition:opacity .15s;
}
.cv-doc .cv-item:hover .cv-enlace, .cv-doc .cv-enlace:focus-visible{ opacity:1; }
.cv-doc .cv-enlace:hover{ color:var(--ambar-oscuro); }
.cv-doc .cv-item h3{
  font-family:'Fraunces',Georgia,serif; font-size:1.05rem; font-weight:600;
  color:var(--azul-oscuro); margin:0 0 6px;
}
.cv-doc .cv-item p{ margin:0; color:var(--gris-texto); font-size:.95rem; line-height:1.66; max-width:74ch; }
.cv-doc .cv-item p + p{ margin-top:9px; }
.cv-doc .cv-item ul{ margin:9px 0 0; padding-left:20px; list-style:disc; max-width:74ch; }
.cv-doc .cv-item li{ margin:0 0 5px; color:var(--gris-texto); font-size:.95rem; line-height:1.62; padding-left:0; }
.cv-doc .cv-item li::before{ content:none; }
.cv-doc .cv-item li:last-child{ margin-bottom:0; }

/* Listas largas con la numeración original de la norma (protocolos, registros):
   el número queda fuera del texto, en ámbar, para poder citar «el protocolo 14». */
.cv-doc .cv-item ol.cv-num-lista{
  margin:12px 0 0; padding:0; list-style:none; counter-reset:cvn; max-width:74ch;
}
.cv-doc .cv-item ol.cv-num-lista > li{
  counter-increment:cvn; position:relative; padding:6px 0 6px 42px;
  border-bottom:1px solid #f0f5f7; margin:0;
}
.cv-doc .cv-item ol.cv-num-lista > li:last-child{ border-bottom:none; }
.cv-doc .cv-item ol.cv-num-lista > li::before{
  content:counter(cvn); position:absolute; left:0; top:6px;
  min-width:26px; text-align:right;
  font-size:.78rem; font-weight:700; color:var(--ambar-oscuro);
  font-variant-numeric:tabular-nums; line-height:1.62;
}
.cv-doc .cv-item ol.cv-num-lista > li.cv-vacio{ color:#a8b6bd; }
.cv-doc .cv-item ol.cv-num-lista > li.cv-vacio::before{ color:#c3ced4; }
@media (max-width:640px){
  .cv-doc .cv-item ol.cv-num-lista > li{ padding-left:34px; }
  .cv-doc .cv-item ol.cv-num-lista > li::before{ min-width:22px; }
}
.cv-doc .cv-item strong, .cv-doc .cv-item b{ color:var(--azul-oscuro); font-weight:600; }
.cv-doc mark{ background:rgba(232,161,60,.38); color:inherit; border-radius:2px; padding:0 1px; }

/* --- avisos --- */
.cv-doc .cv-note{
  background:rgba(232,161,60,.09); border-left:3px solid var(--ambar);
  padding:16px 20px; border-radius:0 var(--radio) var(--radio) 0; max-width:74ch;
}
.cv-doc .cv-note .cv-lbl{
  display:block; font-size:.72rem; letter-spacing:1.8px; text-transform:uppercase;
  color:var(--ambar-oscuro); font-weight:700; margin-bottom:8px;
}
.cv-doc .cv-note p{ margin:0; font-size:.93rem; }
.cv-doc .cv-note p + p{ margin-top:9px; }

/* --- tablas --- */
.cv-doc .cv-scroller{ overflow-x:auto; border:1px solid #e0e8ec; border-radius:var(--radio); background:var(--blanco); }
.cv-doc table{ border-collapse:collapse; width:100%; font-size:.87rem; min-width:520px; margin:0; }
.cv-doc caption{
  text-align:left; padding:13px 16px; font-size:.72rem; letter-spacing:1.8px;
  text-transform:uppercase; color:var(--ambar-oscuro); font-weight:700; border-bottom:1px solid #e9eff2;
}
.cv-doc th, .cv-doc td{ padding:9px 15px; text-align:left; border-bottom:1px solid #eef3f5; vertical-align:top; }
.cv-doc thead th{
  font-size:.7rem; letter-spacing:1px; text-transform:uppercase; color:var(--azul);
  font-weight:700; background:var(--gris-suave);
}
.cv-doc tbody tr:last-child td{ border-bottom:none; }
.cv-doc tbody tr:hover td, .cv-doc tbody tr:hover th{ background:rgba(232,241,245,.5); }
.cv-doc tbody th{ font-weight:600; color:var(--azul-oscuro); }
.cv-doc td.cv-n, .cv-doc th.cv-n{ text-align:right; font-variant-numeric:tabular-nums; }
.cv-doc .cv-num{ font-variant-numeric:tabular-nums; }

.cv-doc .cv-hidden{ display:none !important; }
/* modo mapa: solo los titulares de cada materia */
.cv-doc.cv-plegado .cv-items{ display:none; }
.cv-doc.cv-plegado main{ gap:0; }
.cv-doc.cv-plegado .cv-sechead{ border-bottom-width:1px; padding:14px 0; margin:0; }

/* --- ficha y avisos finales --- */
.cv-doc .cv-idgrid{
  display:grid; gap:1px; background:#e0e8ec; border:1px solid #e0e8ec;
  border-radius:var(--radio); overflow:hidden; margin:0 0 22px;
  grid-template-columns:repeat(auto-fit,minmax(175px,1fr));
}
.cv-doc .cv-idgrid > div{ background:var(--blanco); padding:13px 16px; }
.cv-doc .cv-idgrid dt{ font-size:.68rem; letter-spacing:1.4px; text-transform:uppercase; color:#9fb0b9; margin:0 0 5px; font-weight:700; }
.cv-doc .cv-idgrid dd{ margin:0; font-size:.9rem; font-weight:600; color:var(--azul-oscuro); line-height:1.35; }
.cv-doc .cv-cierre{ margin-top:52px; padding-top:34px; border-top:1px solid #e3eaee; }
.cv-doc .cv-cierre h2{ font-family:'Fraunces',Georgia,serif; font-size:1.2rem; color:var(--azul-oscuro); margin:0 0 16px; }
.cv-doc .cv-revision{ color:#8ba0ab; font-size:.86rem; max-width:78ch; }
.cv-doc .cv-revision p{ margin:0 0 9px; color:inherit; font-size:inherit; line-height:1.6; }

/* --- volver arriba --- */
.cv-arriba{
  position:fixed; right:22px; bottom:22px; z-index:60;
  width:46px; height:46px; border-radius:50%; border:1px solid #d5dee3;
  background:var(--blanco); color:var(--azul-oscuro); box-shadow:var(--sombra);
  cursor:pointer; font-size:1.05rem; line-height:1; display:none;
}
.cv-arriba.cv-ver{ display:block; }
.cv-arriba:hover{ background:var(--azul-oscuro); color:var(--blanco); border-color:var(--azul-oscuro); }

@media (max-width:880px){
  .cv-doc .cv-cols{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .cv-doc .cv-toc{ position:static; max-height:none; padding-top:22px; }
  .cv-doc .cv-toc ol{ display:grid; grid-template-columns:repeat(auto-fill,minmax(152px,1fr)); gap:3px; }
  .cv-doc main{ padding-top:6px; }
  .cv-doc .cv-item{ grid-template-columns:minmax(0,1fr); gap:4px; }
  .cv-doc .cv-ref{ padding-top:0; }
  .cv-doc .cv-enlace{ display:none; }
  .cv-search .cv-atajo{ display:none; }

  /* El índice se pliega en móvil: 17 secciones ocupaban toda la pantalla
     antes de llegar al texto del convenio. */
  .cv-doc .cv-toc-plegable > summary{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    cursor:pointer; list-style:none; padding:13px 16px; margin:0;
    background:var(--gris-suave); border:1px solid #dfe7ec; border-radius:10px;
    font-weight:700; font-size:.92rem; color:var(--azul-oscuro);
  }
  .cv-doc .cv-toc-plegable > summary::-webkit-details-marker{ display:none; }
  .cv-doc .cv-toc-plegable > summary::after{
    content:"▾"; font-size:.9rem; color:var(--azul); transition:transform .2s ease;
  }
  .cv-doc .cv-toc-plegable[open] > summary::after{ transform:rotate(180deg); }
  .cv-doc .cv-toc-plegable[open] > summary{ border-radius:10px 10px 0 0; border-bottom:none; }
  .cv-doc .cv-toc-plegable > ol{
    border:1px solid #dfe7ec; border-top:none; border-radius:0 0 10px 10px;
    padding:10px 12px;
  }
}

/* El logo se reduce a 24px por debajo de 640px y la cabecera encoge:
   la barra de búsqueda debe subir con ella para no quedar tapada. */
@media (max-width:640px){
  .cv-barra{ top:78px; }
  .cv-doc .cv-toc ol{ grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); }
  .cv-arriba{ right:14px; bottom:14px; }
}


/* ===== Respuestas rápidas a preguntas frecuentes ===== */
.cv-preguntas{ display:flex; flex-wrap:wrap; gap:7px; margin:20px 0 4px; align-items:center; }
.cv-preguntas .cv-pq{ font-size:.74rem; color:#8ba0ab; margin-right:2px; white-space:nowrap; }
.cv-preguntas button{
  font:inherit; font-size:.8rem; padding:5px 12px; border-radius:100px; cursor:pointer;
  border:1px solid #dbe4ea; background:var(--blanco); color:var(--azul);
  transition:var(--transicion); white-space:nowrap;
}
.cv-preguntas button:hover{ background:var(--azul-claro); border-color:#b9cdd8; }
.cv-respuesta{
  margin:18px 0 4px; background:var(--blanco); border:1px solid #dfe9ef;
  border-left:4px solid var(--ambar); border-radius:0 var(--radio) var(--radio) 0;
  padding:20px 24px; display:none;
}
.cv-respuesta.cv-ver{ display:block; }
.cv-respuesta h3{
  font-family:'Fraunces',Georgia,serif; font-size:1.08rem; color:var(--azul-oscuro);
  margin:0 0 8px; font-weight:600;
}
.cv-respuesta p{ margin:0 0 12px; font-size:.96rem; line-height:1.6; }
.cv-respuesta .cv-fuente-art{
  display:inline-block; font-size:.78rem; font-weight:700; color:var(--azul);
  text-decoration:none; border-bottom:2px solid var(--ambar); padding-bottom:1px;
}
.cv-respuesta .cv-fuente-art:hover{ color:var(--ambar-oscuro); }
.cv-respuesta .cv-cerrar-r{
  float:right; background:none; border:0; font-size:1.2rem; color:#9fb0b9;
  cursor:pointer; line-height:1; padding:0 0 0 10px;
}
@media (max-width:640px){
  .cv-preguntas{ gap:6px; }
  .cv-preguntas button{ font-size:.76rem; padding:5px 10px; }
  .cv-respuesta{ padding:16px 18px; }
}


/* En móvil solo se ven las primeras preguntas: el resto se despliega */
@media (max-width:640px){
  .cv-preguntas{ margin:14px 0 2px; }
  .cv-barra .cv-acciones, .contenedor > .cv-acciones{ margin-top:18px; }
  .cv-preguntas.cv-corto button:nth-of-type(n+6){ display:none; }
  .cv-preguntas .cv-mas{
    border-style:dashed; color:var(--ambar-oscuro); border-color:#e3cda6; background:rgba(232,161,60,.07);
  }
}
@media (min-width:641px){ .cv-preguntas .cv-mas{ display:none; } }

/* En escritorio el índice está siempre visible: el <details> no se pliega */
@media (min-width:881px){
  .cv-doc .cv-toc-plegable > summary{ display:none; }
  .cv-doc .cv-toc-plegable{ display:block; }
}

/* Las tablas se desplazan de lado en pantallas estrechas: se avisa */
.cv-scroller{ position:relative; }
.cv-scroller::after{
  content:"Deslice la tabla para ver el resto →";
  display:none; font-size:.76rem; color:#8ba0ab; padding:8px 14px 10px;
  border-top:1px dashed #e4ecf0; background:var(--gris-suave);
}
@media (max-width:880px){
  .cv-scroller::after{ display:block; }
}

@media (prefers-reduced-motion:reduce){ .cv-doc *, .cv-arriba{ transition:none !important; animation:none !important; } }

@media print{
  header, .hero, footer, .cv-banda, .cv-barra, .cv-arriba, .cv-doc .cv-toc, .cv-doc .cv-enlace{ display:none !important; }
  .cv-doc .cv-cols{ display:block; }
  .cv-doc{ padding:0; }
  .cv-doc .cv-item{ break-inside:avoid; page-break-inside:avoid; }
  .cv-doc .cv-sechead{ break-after:avoid; }
  .cv-doc .cv-scroller{ overflow:visible; }
  .cv-doc table{ min-width:0; font-size:.75rem; }
  a{ text-decoration:none; color:inherit; }
}
