/* ==================================================================
   EL BLOG PUBLICO

   Hoja aparte y no dentro de app.css a proposito. Esto lo carga gente
   que no es cliente, desde un telefono, muchas veces con mala conexion,
   y lo primero que decide si se quedan es cuanto tarda en pintarse.
   app.css lleva el sistema entero -menus, tablas, formularios, punto de
   venta- y aqui no hace falta nada de eso.

   Sin JavaScript. Una pagina de leer no necesita ninguno.
   ================================================================== */

:root {
  --blog-tinta:      #16202c;
  --blog-tinta-baja: #5b6b7d;
  --blog-fondo:      #ffffff;
  --blog-suave:      #f5f7fa;
  --blog-linea:      #e2e8f0;
  --blog-marca:      #1f6feb;
  --blog-ancho:      44rem;
}

@media (prefers-color-scheme: dark) {
  :root {
    --blog-tinta:      #e8eef5;
    --blog-tinta-baja: #9fb0c2;
    --blog-fondo:      #10161d;
    --blog-suave:      #17202a;
    --blog-linea:      #24313e;
    --blog-marca:      #6aa6ff;
  }
}

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

body.blog {
  margin: 0;
  background: var(--blog-fondo);
  color: var(--blog-tinta);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

.blog-ancho {
  max-width: var(--blog-ancho);
  margin: 0 auto;
  padding: 0 1.25rem;
}

a { color: var(--blog-marca); }

/* ---- La barra de arriba ---- */
.blog-barra {
  border-bottom: 1px solid var(--blog-linea);
  background: var(--blog-fondo);
  position: sticky;
  top: 0;
  z-index: 5;
}

.blog-barra__caja {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding-top: 0.9rem;
  padding-bottom: 0.9rem;
}

.blog-barra__marca {
  font-weight: 700;
  text-decoration: none;
  color: var(--blog-tinta);
  font-size: 1.05rem;
}
.blog-barra__marca span { color: var(--blog-tinta-baja); font-weight: 400; }

.blog-barra__temas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  font-size: 0.9rem;
  margin-right: auto;
}
.blog-barra__temas a {
  color: var(--blog-tinta-baja);
  text-decoration: none;
}
.blog-barra__temas a:hover,
.blog-barra__temas a[aria-current="page"] {
  color: var(--blog-marca);
}

.blog-barra__entrar {
  font-size: 0.9rem;
  text-decoration: none;
  border: 1px solid var(--blog-linea);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
  white-space: nowrap;
}

/* En un telefono la barra ocupaba MEDIA PANTALLA y encima se quedaba
   pegada arriba al bajar: cinco temas en tres lineas, la marca y el
   boton de entrar. Visto en 375 de ancho, que es lo que tiene la mitad
   de la gente.

   Aqui los temas van en UNA linea que se arrastra de lado, y la barra
   deja de ser pegajosa: en una pantalla asi, medio alto para navegar es
   un precio que no vale la pena. */
@media (max-width: 39.99rem) {
  .blog-barra { position: static; }

  .blog-barra__temas {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    width: 100%;
    order: 3;
    padding-bottom: 0.15rem;
  }
  .blog-barra__temas::-webkit-scrollbar { display: none; }
  .blog-barra__temas a { white-space: nowrap; }

  .blog-barra__marca  { margin-right: auto; }
  .blog-barra__entrar { order: 2; }
}

/* ---- Cabeceras ---- */
.blog-cabecera { padding: 2.5rem 0 1.5rem; }
.blog-cabecera h1 {
  font-size: clamp(1.7rem, 5vw, 2.4rem);
  line-height: 1.2;
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}
.blog-cabecera__linea { color: var(--blog-tinta-baja); margin: 0; }
.blog-cabecera__pagina { color: var(--blog-tinta-baja); font-weight: 400; font-size: 1rem; }

.blog-migas {
  font-size: 0.85rem;
  color: var(--blog-tinta-baja);
  padding-top: 1.5rem;
}
.blog-migas a { color: var(--blog-tinta-baja); text-decoration: none; }
.blog-migas a:hover { color: var(--blog-marca); }
.blog-migas span { margin: 0 0.4rem; }

/* ---- La lista ---- */
.blog-lista { display: flex; flex-direction: column; gap: 2.25rem; }

.blog-tarjeta {
  display: grid;
  gap: 1rem;
  padding-bottom: 2.25rem;
  border-bottom: 1px solid var(--blog-linea);
}
.blog-lista .blog-tarjeta:last-child { border-bottom: 0; }

@media (min-width: 40rem) {
  .blog-tarjeta:has(.blog-tarjeta__foto) {
    grid-template-columns: 12rem 1fr;
    align-items: start;
  }
}

.blog-tarjeta__foto img {
  width: 100%;
  height: auto;
  border-radius: 0.6rem;
  display: block;
  background: var(--blog-suave);
}

.blog-tarjeta__tema { margin: 0 0 0.15rem; font-size: 0.8rem; }
.blog-tarjeta__tema a { text-decoration: none; }

.blog-tarjeta__titulo { margin: 0 0 0.4rem; font-size: 1.35rem; line-height: 1.3; }
.blog-tarjeta__titulo a { color: var(--blog-tinta); text-decoration: none; }
.blog-tarjeta__titulo a:hover { color: var(--blog-marca); }

.blog-tarjeta__resumen { margin: 0 0 0.5rem; color: var(--blog-tinta-baja); }
.blog-tarjeta__pie { margin: 0; font-size: 0.82rem; color: var(--blog-tinta-baja); }

.blog-vacio { padding: 2rem 0 3rem; color: var(--blog-tinta-baja); }

/* ---- Paginas ---- */
.blog-paginas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 2.5rem 0;
  border-top: 1px solid var(--blog-linea);
  margin-top: 2rem;
}
.blog-paginas a { text-decoration: none; }
.blog-paginas__cuenta { color: var(--blog-tinta-baja); font-size: 0.85rem; }

/* ---- Una entrada ---- */
.blog-entrada { padding-bottom: 3rem; }

.blog-entrada__cabecera h1 {
  font-size: clamp(1.8rem, 5.5vw, 2.6rem);
  line-height: 1.18;
  letter-spacing: -0.022em;
  margin: 1.25rem 0 0.75rem;
}

.blog-entrada__datos {
  margin: 0 0 1.25rem;
  font-size: 0.85rem;
  color: var(--blog-tinta-baja);
}

.blog-entrada__entradilla {
  font-size: 1.2rem;
  line-height: 1.55;
  color: var(--blog-tinta-baja);
  margin: 0 0 2rem;
}

.blog-entrada__portada { margin: 0 0 2rem; }
.blog-entrada__portada img {
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  display: block;
  background: var(--blog-suave);
}
.blog-entrada__portada figcaption {
  font-size: 0.82rem;
  color: var(--blog-tinta-baja);
  margin-top: 0.5rem;
}

.blog-entrada__cuerpo > *:first-child { margin-top: 0; }
.blog-entrada__cuerpo p { margin: 0 0 1.3rem; }

.blog-entrada__cuerpo h2 {
  font-size: 1.45rem;
  line-height: 1.3;
  margin: 2.5rem 0 0.9rem;
  letter-spacing: -0.015em;
}

.blog-entrada__cuerpo ul,
.blog-entrada__cuerpo ol { margin: 0 0 1.3rem; padding-left: 1.3rem; }
.blog-entrada__cuerpo li { margin-bottom: 0.4rem; }

.blog-entrada__cuerpo blockquote {
  margin: 1.8rem 0;
  padding: 0.9rem 1.2rem;
  border-left: 3px solid var(--blog-marca);
  background: var(--blog-suave);
  border-radius: 0 0.5rem 0.5rem 0;
  color: var(--blog-tinta);
}
.blog-entrada__cuerpo blockquote p:last-child { margin-bottom: 0; }

.blog-entrada__cuerpo strong { font-weight: 650; }

/* Una imagen dentro del texto. Se sale un poco del ancho de lectura a
   los lados -pero solo cuando hay sitio- porque una captura de pantalla
   metida en una columna de 44rem se ve pequena para lo que tiene que
   ensenar. */
.blog-entrada__figura {
  margin: 2rem 0;
}
.blog-entrada__figura img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--blog-linea);
  border-radius: 0.6rem;
  background: var(--blog-suave);
}
.blog-entrada__figura figcaption {
  font-size: 0.85rem;
  color: var(--blog-tinta-baja);
  margin-top: 0.55rem;
  line-height: 1.5;
}

@media (min-width: 56rem) {
  .blog-entrada__figura {
    width: calc(100% + 6rem);
    margin-left: -3rem;
  }
}

/* ---- Seguir leyendo ---- */
.blog-siguiente {
  border-top: 1px solid var(--blog-linea);
  padding: 2rem 0 3rem;
}
.blog-siguiente h2 { font-size: 1.1rem; margin: 0 0 1rem; }
.blog-siguiente__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.blog-siguiente__lista a {
  display: block;
  text-decoration: none;
  padding: 0.85rem 1rem;
  border: 1px solid var(--blog-linea);
  border-radius: 0.6rem;
}
.blog-siguiente__lista a:hover { border-color: var(--blog-marca); }
.blog-siguiente__tema {
  display: block;
  font-size: 0.75rem;
  color: var(--blog-tinta-baja);
  margin-bottom: 0.1rem;
}
.blog-siguiente__titulo { display: block; color: var(--blog-tinta); font-weight: 550; }

/* ---- El pie ---- */
.blog-pie {
  border-top: 1px solid var(--blog-linea);
  padding: 2rem 0 3rem;
  font-size: 0.85rem;
  color: var(--blog-tinta-baja);
}
.blog-pie p { margin: 0 0 0.5rem; }
.blog-pie__nota { max-width: 34rem; }

/* Imprimir una entrada tiene que dar una hoja legible, no la barra de
   navegacion y tres cajas vacias. */
@media print {
  .blog-barra, .blog-siguiente, .blog-paginas, .blog-migas { display: none; }
  body.blog { font-size: 11pt; color: #000; background: #fff; }
}
