/* ==========================================================================
   NIIU — Diario (artículo y archivo) y páginas legales
   Usa los tokens de css/styles.css
   ========================================================================== */

.subpage-main { padding-top: var(--header-h); min-height: 70vh; }
.container--narrow { max-width: calc(720px + var(--margin) * 2); }

/* Tarjetas enlazadas (landing, archivo y relacionados): enlace estirado a toda la tarjeta */
.article { position: relative; }
.article__link { color: inherit; text-decoration: none; }
.article__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.article__link:focus-visible { outline: none; }
.article:has(.article__link:focus-visible) { outline: 2px solid var(--olive-deep); outline-offset: 3px; }
.article:has(.article__link) h2, .article:has(.article__link) h3 { transition: color var(--t-btn); }
.article:hover .article__link { color: var(--olive-deep); }
.article__foot--link { font-style: normal; font-weight: 600; color: var(--olive); }
.article--pending { box-shadow: none; border: 1px dashed var(--line-strong); }
.article__img--placeholder {
  display: grid;
  place-items: center;
  color: var(--taupe);
  background: linear-gradient(135deg, var(--ivory) 0%, var(--rose) 100%);
}
.archive__list h2 { font-size: 1.45rem; font-weight: 500; line-height: 1.25; }

/* Migas de pan */
.breadcrumbs { margin-bottom: var(--space-lg); font-size: 13px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; list-style: none; color: var(--ink-soft); }
.breadcrumbs li + li::before { content: "/"; margin-right: 0.35rem; color: var(--taupe); }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 32px; color: var(--olive); text-underline-offset: 3px; }
.breadcrumbs [aria-current="page"] { color: var(--ink-soft); }

/* Barra de progreso */
.read-progress { position: fixed; top: var(--header-h); left: 0; right: 0; height: 3px; z-index: 99; background: transparent; }
.read-progress span { display: block; height: 100%; background: var(--olive); transform: scaleX(0); transform-origin: left; }

.preview-banner {
  margin: 0;
  padding: 0.6rem var(--margin);
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: var(--rose);
  color: var(--ink);
}

/* Cabecera del artículo */
.post__head { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: var(--space-xl); }
.post__title {
  font-size: clamp(2.25rem, 3.6vw + 1rem, 3.5rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 1rem 0;
}
.post__lead { font-size: clamp(1.1rem, 0.4vw + 1rem, 1.3rem); line-height: 1.6; color: var(--ink-soft); margin-bottom: 1.25rem; }
.post__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; font-size: 14px; color: var(--ink-soft); margin-bottom: 1rem; }
.post__meta strong { color: var(--ink); font-weight: 600; }
.post__review {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  padding: 0.8rem 1rem;
  border-radius: var(--r);
  background: var(--sage);
  color: var(--olive-deep);
  font-size: 13.5px;
  line-height: 1.55;
}
.post__review .icon { margin-top: 2px; }
.post__review--pending { background: var(--rose); color: var(--ink); }

.post__cover { margin: 0 auto var(--space-2xl); }
.post__cover img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; border-radius: var(--r-xl); box-shadow: var(--shadow-2); background: var(--ivory-deep); }

/* Cuerpo editorial */
.prose { font-size: 1.0625rem; line-height: 1.8; color: var(--ink); }
.prose > * + * { margin-top: 1.25em; }
.prose h2 { font-size: clamp(1.6rem, 1vw + 1.2rem, 2rem); line-height: 1.2; font-weight: 500; margin-top: 2.2em; scroll-margin-top: calc(var(--header-h) + 16px); }
.prose h3 { font-size: 1.35rem; font-weight: 600; margin-top: 1.8em; }
.prose h4 { font-family: var(--font-sans); font-size: 1rem; font-weight: 700; margin-top: 1.6em; }
.prose h2 + *, .prose h3 + *, .prose h4 + * { margin-top: 0.6em; }
.prose a { color: var(--olive); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line-strong); }
.prose a:hover { color: var(--olive-deep); text-decoration-color: currentColor; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose ul { list-style: none; padding-left: 0; }
.prose ul li { position: relative; padding-left: 1.5em; }
.prose ul li::before { content: ""; position: absolute; left: 0.25em; top: 0.75em; width: 7px; height: 7px; border-radius: 50%; background: var(--taupe); }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: 0.5em; }
.prose strong { font-weight: 700; }
.prose code { font-size: 0.9em; padding: 0.1em 0.4em; border-radius: 6px; background: var(--ivory-deep); }
.prose blockquote {
  margin-inline: 0;
  padding: 0.25em 0 0.25em 1.25em;
  border-left: 2px solid var(--taupe);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.45rem;
  line-height: 1.45;
  color: var(--taupe-text);
}
.prose hr { border: 0; height: 1px; background: var(--line); margin-block: 2.5em; }
.prose-figure { margin-inline: 0; }
.prose-figure img { width: 100%; border-radius: var(--r-lg); background: var(--ivory-deep); }
.prose-figure figcaption { margin-top: 0.6rem; font-size: 13px; color: var(--ink-soft); text-align: center; }
@media (min-width: 900px) {
  .prose-figure { margin-inline: -4rem; }
}
.pending-mark { background: var(--rose); color: var(--ink); padding: 0.05em 0.35em; border-radius: 6px; font-weight: 600; }

/* Referencias */
.post__refs { margin-top: var(--space-2xl); padding-top: var(--space-lg); border-top: 1px solid var(--line); }
.post__refs h2 { font-size: 1.35rem; font-weight: 500; margin-bottom: 0.75rem; }
.post__refs ol { padding-left: 1.2em; font-size: 14px; color: var(--ink-soft); display: grid; gap: 0.4rem; }
.post__refs a { color: var(--olive); }

/* CTA */
.post__cta {
  display: grid;
  gap: 1rem;
  align-items: center;
  margin: var(--space-2xl) 0 var(--section-y);
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: var(--r-xl);
  background: var(--cream);
  box-shadow: var(--shadow-2);
  border: 1px solid rgba(164, 141, 120, 0.2);
}
.post__cta h2 { font-size: 1.6rem; font-weight: 500; }
.post__cta p { color: var(--ink-soft); font-size: 15px; }
@media (min-width: 720px) { .post__cta { grid-template-columns: auto 1fr auto; } }

/* Archivo */
.archive { padding-top: clamp(2rem, 5vw, 4rem); }
.archive__filters { margin-bottom: 0.75rem; }
.archive .filters__count { margin-bottom: var(--space-lg); }
.chip__count { font-size: 11px; opacity: 0.7; font-weight: 600; }
.chip[disabled] { opacity: 0.45; cursor: not-allowed; }
.archive__list li[hidden] { display: none; }

/* Páginas legales */
.legal { padding-top: clamp(2rem, 5vw, 4rem); }
.legal__notice { margin: var(--space-lg) 0 var(--space-xl); }
.legal .prose h2 { font-size: 1.6rem; }
.legal__actions { margin-top: var(--space-xl); }
