/* manuelmartinacosta.es
   Línea de imagen aprobada para HSE (METODOLOGIA_carruseles_capitulos.md):
   fondo #0A0A0A, texto #EDEDED, gris apagado para lo secundario, rojo #FF5B4F
   solo para cifras de pérdida, Geist Sans y Geist Mono del paquete oficial de Vercel,
   cápsulas con fondo oscuro teñido del color de la etiqueta. */

@font-face {
  font-family: "Geist";
  src: url("../fonts/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Geist Mono";
  src: url("../fonts/GeistMono-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --fondo: #0a0a0a;
  --texto: #ededed;
  --apagado: #a1a1a1;
  --linea: #262626;
  --linea-suave: #1c1c1c;
  --rojo: #ff5b4f;
  --rojo-fondo: #2a1210;
  --rojo-borde: #5a2420;
  --gris-fondo: #171717;
  --gris-borde: #2e2e2e;
  --medida: 42rem;
  --borde: 1.25rem;
  color-scheme: dark;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--fondo);
  color: var(--texto);
  font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

a {
  color: var(--texto);
  text-decoration-line: underline;
  text-decoration-color: #5c5c5c;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
a:hover { text-decoration-color: var(--texto); }
a:focus-visible { outline: 2px solid var(--texto); outline-offset: 3px; border-radius: 3px; }

.saltar {
  position: absolute; left: -999px; top: 0;
  background: var(--texto); color: var(--fondo); padding: .5rem 1rem; z-index: 10;
}
.saltar:focus { left: 1rem; }

/* Placa HSE: el mismo lenguaje que el pie de marca de los carruseles */
.placa {
  display: inline-grid; place-items: center;
  width: 2.25rem; height: 2.25rem; border-radius: .45rem;
  background: var(--texto); color: var(--fondo);
  font-weight: 900; font-size: .78rem; letter-spacing: -.02em;
  flex: none;
}

/* Cabecera */
.cabecera {
  padding: 1rem var(--borde);
  border-bottom: 1px solid var(--linea-suave);
}
.cabecera__dentro {
  max-width: 64rem; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .75rem 1.5rem;
}
.marca {
  display: inline-flex; align-items: center; gap: .65rem;
  color: var(--texto); text-decoration: none; font-weight: 600; letter-spacing: -.01em;
}
.menu { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.menu a { color: var(--apagado); text-decoration: none; font-size: .95rem; }
.menu a:hover, .menu a[aria-current="page"] { color: var(--texto); }

main { padding: 0 var(--borde); }
.pieza { max-width: 64rem; margin: 0 auto; }
.texto { max-width: var(--medida); }

h1, h2, h3 { color: var(--texto); }
h1 {
  font-weight: 900;
  font-size: clamp(2.6rem, 9vw, 5.25rem);
  line-height: .95;
  letter-spacing: -.045em;
  margin: 0 0 1.25rem;
}
h2 {
  font-weight: 800;
  font-size: clamp(1.5rem, 4.2vw, 2.1rem);
  line-height: 1.1;
  letter-spacing: -.03em;
  margin: 3.5rem 0 1rem;
}
h3 { font-size: 1.05rem; font-weight: 600; margin: 1.75rem 0 .35rem; }

p { margin: 0 0 1.1rem; }
.apagado { color: var(--apagado); }

.subtitulo { font-size: clamp(1.2rem, 3.5vw, 1.5rem); font-weight: 500; letter-spacing: -.015em; margin: 0 0 .35rem; }
.firma { color: var(--apagado); margin-bottom: 1.75rem; }
.entrada { font-size: 1.15rem; line-height: 1.55; }

/* Cápsulas */
.capsula {
  display: inline-block;
  font-family: "Geist Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: .78rem; font-weight: 500; line-height: 1.3;
  padding: .32rem .7rem; border-radius: 999px;
  background: var(--gris-fondo); color: var(--apagado); border: 1px solid var(--gris-borde);
}
.capsula--roja { background: var(--rojo-fondo); color: var(--rojo); border-color: var(--rojo-borde); }

/* Portada de autor */
.autor { display: grid; gap: 1.5rem; padding-top: 2.75rem; }
.retrato {
  width: 9.5rem; height: 9.5rem; object-fit: cover;
  border-radius: .9rem;
  border: 1px solid var(--linea);
}
@media (min-width: 48rem) {
  .autor { grid-template-columns: 11rem 1fr; gap: 2.75rem; align-items: start; padding-top: 4rem; }
  .retrato { width: 11rem; height: 11rem; }
}

/* Libro en pequeño (inicio) */
.libro-breve { display: grid; gap: 1.25rem; }
.libro-breve img { width: 8rem; border-radius: .3rem; }
@media (min-width: 40rem) {
  .libro-breve { grid-template-columns: 8.5rem 1fr; gap: 1.75rem; }
  .libro-breve img { width: 8.5rem; }
}

/* Cabecera de la ficha del libro */
.libro { display: grid; gap: 2rem; padding-top: 2.75rem; }
.libro__portada { width: min(17rem, 72vw); border-radius: .35rem; }
@media (min-width: 52rem) {
  .libro { grid-template-columns: 18rem 1fr; gap: 3.25rem; padding-top: 4rem; }
  .libro__portada { width: 18rem; }
}

/* Tarjeta de cifra (tipo Stat de los carruseles) */
.cifra { margin: 2rem 0 2.25rem; padding: 1.5rem 0 1.25rem; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
.cifra__numero {
  display: block;
  font-weight: 900;
  font-size: clamp(4rem, 19vw, 7.5rem);
  line-height: .9;
  letter-spacing: -.06em;
  margin: .9rem 0 .7rem;
  font-variant-numeric: tabular-nums;
}
.cifra__numero--rojo { color: var(--rojo); }
.cifra__texto { font-size: 1.15rem; margin: 0 0 1rem; max-width: 30rem; }

/* Tarjeta documental (tipo Document de los carruseles) */
.documento {
  margin: 2rem 0;
  padding: 1.25rem 1.25rem 1.4rem;
  border: 1px solid var(--gris-borde);
  border-radius: .9rem;
  max-width: 30rem;
}
.documento p {
  font-family: "Geist Mono", ui-monospace, Menlo, Consolas, monospace;
  font-size: .98rem; line-height: 1.6; margin: .9rem 0 0;
}
.documento strong { font-weight: 700; color: var(--texto); }

/* Tablas */
.tabla-ancha { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; margin: .75rem 0 1.5rem; font-size: .97rem; }
caption { text-align: left; color: var(--apagado); font-size: .88rem; padding-bottom: .5rem; }
th, td { text-align: left; padding: .65rem .9rem .65rem 0; border-bottom: 1px solid var(--linea); vertical-align: top; }
th { font-weight: 600; color: var(--apagado); font-size: .85rem; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; padding-right: 0; }
tr.esp td { font-weight: 700; }
tr.esp td.num { color: var(--rojo); }
.id { white-space: nowrap; font-family: "Geist Mono", ui-monospace, Menlo, Consolas, monospace; font-size: .88rem; }

.ficha { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.5rem; margin: .5rem 0 1.5rem; }
.ficha dt { color: var(--apagado); }
.ficha dd { margin: 0; }
@media (max-width: 30rem) {
  .ficha { grid-template-columns: 1fr; gap: .1rem; }
  .ficha dd { margin-bottom: .6rem; }
}

.indice, .indice ul { list-style: none; padding: 0; margin: 0; }
.indice > li { padding: .3rem 0; }
.indice .parte { font-weight: 700; margin-top: 1rem; }
.indice ul { margin: .35rem 0 .2rem; padding-left: 1rem; border-left: 1px solid var(--linea); }
.indice ul li { padding: .18rem 0; font-weight: 400; color: var(--texto); }

.enlaces { list-style: none; padding: 0; margin: .5rem 0 0; border-top: 1px solid var(--linea); }
.enlaces li { padding: .75rem 0; border-bottom: 1px solid var(--linea); display: flex; flex-wrap: wrap; gap: .2rem .75rem; align-items: baseline; justify-content: space-between; }
.enlaces li span { color: var(--apagado); font-size: .92rem; }

.fuentes { padding-left: 1.1rem; }
.fuentes li { margin-bottom: .6rem; }
.nota { color: var(--apagado); font-size: .93rem; }

/* Pie con la marca */
.pie {
  margin-top: 5rem;
  border-top: 1px solid var(--linea-suave);
  padding: 2rem var(--borde) 3rem;
  font-size: .92rem;
}
.pie__dentro { max-width: 64rem; margin: 0 auto; display: grid; gap: 1.25rem; }
.pie__marca { display: flex; align-items: center; gap: .8rem; }
.pie__marca > span:not(.placa) { display: block; line-height: 1.25; }
.pie__marca strong { font-weight: 800; letter-spacing: -.01em; }
.pie p { margin: 0; color: var(--apagado); }
.pie a { color: var(--apagado); }

@media print {
  body { background: #fff; color: #000; }
  .menu, .saltar { display: none; }
}

article.texto { padding-top: 2.75rem; }
@media (min-width: 48rem) { article.texto { padding-top: 4rem; } }
.capsula { border-radius: 1rem; }

/* Áreas táctiles de al menos 32 px de alto en móvil */
.menu a { display: inline-block; padding: .4rem 0; }
.enlaces li a { display: inline-block; padding: .2rem 0; }
@media (max-width: 30rem) { .capsula { font-size: .8rem; } }
td a { display: inline-block; padding: .3rem 0; }
.enlaces li a { min-width: 2.75rem; }
.enlaces li a { text-decoration: none; }
.enlaces li a .n { text-decoration: underline; text-decoration-color: #5c5c5c; text-underline-offset: .2em; }
.enlaces li a:hover .n { text-decoration-color: var(--texto); }
.enlaces li a .d { color: var(--apagado); font-size: .92rem; margin-left: .35rem; }

@media print {
  h1, h2, h3, p, li, dt, dd, td, th, caption, a, .apagado, .nota, .firma, .marca, .pie p { color: #000 !important; }
  .capsula { background: none !important; color: #000 !important; border-color: #000 !important; }
  .capsula--roja { color: #b00 !important; border-color: #b00 !important; }
  .placa { background: #000 !important; color: #fff !important; }
  .cabecera, .pie { border-color: #999 !important; }
}
.nif { display: inline-block; vertical-align: -0.2em; color: var(--texto); }
