/* ---------- tipografias locales ----------
   Source Serif 4 (cuerpo) y Source Sans 3 (interfaz), variables 400-600.
   Estan aqui dentro a proposito: el sitio no debe depender de Google Fonts. */
@font-face{
  font-family:'Source Sans 3';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(fuentes/source-sans-3-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Source Sans 3';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(fuentes/source-sans-3-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Source Serif 4';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(fuentes/source-serif-4-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Source Serif 4';font-style:normal;font-weight:400 600;font-display:swap;
  src:url(fuentes/source-serif-4-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --papel:#ffffff;
  --shell:#eceef1;
  --tinta:#16202a;
  --suave:#5d6b78;
  --linea:#d5dae0;
  --acento:#7c2a38;
  --realce:#fdf3d6;
  --serif:'Source Serif 4',Charter,Georgia,serif;
  --sans:'Source Sans 3',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--papel);color:var(--tinta);
  font-family:var(--serif);font-size:18px;line-height:1.65;
}
a{color:var(--acento)}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--acento);outline-offset:2px
}

/* ---------- estructura ---------- */
.envoltura{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:100vh}
.indice{
  background:var(--shell);border-right:1px solid var(--linea);
  padding:28px 22px 40px;position:sticky;top:0;height:100vh;overflow-y:auto;
  font-family:var(--sans);font-size:15px;
}
.lienzo{padding:56px 40px 96px;min-width:0}
.columna{max-width:40rem;margin:0 auto}

/* ---------- indice lateral ---------- */
.marca{display:block;text-decoration:none;color:inherit;margin-bottom:24px}
.marca img{display:block;width:190px;max-width:100%;height:auto;margin-bottom:8px}
.marca span{color:var(--suave);font-size:13px}
.buscar{
  width:100%;padding:9px 11px;border:1px solid var(--linea);border-radius:3px;
  background:var(--papel);font:inherit;font-size:14px;color:var(--tinta);margin-bottom:6px;
}
.pista{color:var(--suave);font-size:12.5px;min-height:1.2em;margin:0 0 14px}
.indice ol{list-style:none;margin:0;padding:0;counter-reset:cap}
.indice li{border-top:1px solid var(--linea)}
.indice li a{
  display:grid;grid-template-columns:2.1rem 1fr;gap:8px;
  padding:9px 2px;text-decoration:none;color:var(--tinta);line-height:1.35;
}
.indice li a:hover{color:var(--acento)}
.indice li a i{font-style:normal;color:var(--suave);font-variant-numeric:tabular-nums;font-size:13.5px;padding-top:1px}
.indice li.activo a{color:var(--acento);font-weight:600}
.indice li.oculto{display:none}

/* ---------- capitulo ---------- */
.cabecera{border-bottom:1px solid var(--linea);padding-bottom:22px;margin-bottom:34px}
.cabecera .cap{font-family:var(--sans);font-size:14px;color:var(--suave);margin:0 0 6px}
.cabecera h1{font-size:2rem;line-height:1.2;font-weight:600;margin:0}
.cuerpo p{margin:0 0 1.15em}
.cuerpo h2,.cuerpo h3,.cuerpo h4{font-weight:600;line-height:1.3;margin:1.9em 0 .6em}
.cuerpo h2{font-size:1.4rem}
.cuerpo h3{font-size:1.18rem}
.cuerpo ul,.cuerpo ol{padding-left:1.3em;margin:0 0 1.15em}
.cuerpo li{margin-bottom:.35em}
.cuerpo table{
  width:100%;border-collapse:collapse;margin:1.5em 0;
  font-family:var(--sans);font-size:15px;display:block;overflow-x:auto;
}
.cuerpo td,.cuerpo th{border:1px solid var(--linea);padding:7px 10px;text-align:left;vertical-align:top}
.cuerpo blockquote{margin:1.5em 0;padding-left:1.1em;border-left:3px solid var(--linea);color:var(--suave)}
.figura{margin:1.8em 0}
.figura img{max-width:100%;height:auto;display:block;border:1px solid var(--linea)}
.figura figcaption{
  margin-top:8px;font-family:var(--sans);font-size:14px;line-height:1.45;
  color:var(--suave);
}
.figura.falta{
  border:1px dashed var(--acento);background:#faf6f7;
  padding:22px;text-align:center;border-radius:3px;
}
.figura.falta p{
  margin:0;font-family:var(--sans);font-size:14px;color:var(--acento);
  word-break:break-all;
}
a.adjunto{font-family:var(--sans);font-size:15px;font-weight:600}
mark{background:var(--realce);color:inherit;padding:0 1px}

/* ---------- pie de navegacion ---------- */
.saltos{
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border-top:1px solid var(--linea);margin-top:56px;padding-top:22px;
  font-family:var(--sans);font-size:15px;
}
.saltos a{max-width:46%;text-decoration:none;line-height:1.35}
.saltos a span{display:block;color:var(--suave);font-size:13px;margin-bottom:2px}
.saltos a:last-child{text-align:right;margin-left:auto}
.saltos a:hover{text-decoration:underline}

/* ---------- portada ---------- */
.portada{border-bottom:1px solid var(--linea);padding-bottom:30px;margin-bottom:12px}
.portada h1{font-size:2.6rem;line-height:1.12;font-weight:600;margin:0 0 12px;letter-spacing:-.01em}
.portada .sub{font-family:var(--sans);color:var(--suave);font-size:16px;margin:0;max-width:34rem}
.aviso{
  font-family:var(--sans);font-size:14.5px;line-height:1.55;color:var(--suave);
  background:var(--shell);border-radius:3px;padding:16px 18px;margin:30px 0 0;
}
.aviso b{color:var(--tinta);font-weight:600}
.sumario{list-style:none;margin:34px 0 0;padding:0}
.sumario li{border-top:1px solid var(--linea)}
.sumario li:last-child{border-bottom:1px solid var(--linea)}
.sumario a{
  display:grid;grid-template-columns:3rem 1fr;gap:14px;align-items:baseline;
  padding:14px 4px;text-decoration:none;color:var(--tinta);
}
.sumario a:hover{background:var(--shell)}
.sumario a i{font-style:normal;color:var(--suave);font-variant-numeric:tabular-nums;font-family:var(--sans);font-size:15px}
.sumario a b{font-weight:400;line-height:1.35}
.sumario li.oculto{display:none}
.creditos{
  margin-top:56px;padding-top:22px;border-top:1px solid var(--linea);
  font-family:var(--sans);font-size:13.5px;color:var(--suave);
}
.creditos a{color:var(--suave);text-decoration:none;border-bottom:1px solid var(--linea)}
.creditos a:hover{color:var(--acento);border-bottom-color:var(--acento)}
.vacio{font-family:var(--sans);color:var(--suave);font-size:15px;padding:22px 4px;display:none}

/* ---------- movil ---------- */
.abrir{display:none}
@media (max-width:920px){
  body{font-size:17px}
  .envoltura{grid-template-columns:1fr}
  .indice{
    position:fixed;inset:0 auto 0 0;width:290px;z-index:20;
    transform:translateX(-100%);transition:transform .22s ease;
  }
  .indice.visible{transform:none;box-shadow:0 0 0 100vmax rgba(22,32,42,.35)}
  .abrir{
    display:inline-flex;align-items:center;gap:7px;position:sticky;top:0;z-index:10;
    background:var(--papel);border:0;border-bottom:1px solid var(--linea);
    width:100%;padding:13px 20px;font-family:var(--sans);font-size:15px;
    color:var(--tinta);cursor:pointer;
  }
  .lienzo{padding:26px 20px 72px}
  .cabecera h1{font-size:1.6rem}
  .portada h1{font-size:2rem}
  .sumario a{grid-template-columns:2.4rem 1fr;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
}
@media print{
  .indice,.saltos,.abrir{display:none}
  .envoltura{display:block}
  body{font-size:11pt}
}