/* ==========================================================================
   News article body — editorial prose typography
   Layered on top of Bulma's .content baseline.
   Scoped entirely to .news-article-body.
   ========================================================================== */

/* ---- Prose base ---- */

.news-article-body {
  line-height: 1.7; /* token-ok: unitless ratio, no length token covers line-height */
  color: var(--arp-text-primary);
}

.news-article-body > p {
  margin-bottom: var(--arp-space-5);
}

/* ---- Headings ---- */

.news-article-body h2 {
  font-size: var(--bulma-size-3);
  font-weight: 700;
  margin-top: var(--arp-space-10);
  margin-bottom: var(--arp-space-4);
  padding-bottom: var(--arp-space-2);
  border-bottom: 2px solid var(--arp-border);
  color: var(--arp-text-primary);
  line-height: 1.3; /* token-ok */
}

.news-article-body h3 {
  font-size: var(--bulma-size-4);
  font-weight: 600;
  margin-top: var(--arp-space-8);
  margin-bottom: var(--arp-space-3);
  color: var(--arp-text-primary);
  line-height: 1.4; /* token-ok */
}

/* ---- Blockquote ---- */

.news-article-body blockquote {
  border-left: 4px solid var(--arp-accent);
  background: var(--arp-surface-muted);
  margin: var(--arp-space-6) 0;
  padding: var(--arp-space-4) var(--arp-space-6);
  border-radius: 0 var(--arp-radius-sm) var(--arp-radius-sm) 0;
  font-style: italic;
  color: var(--arp-text-secondary);
}

.news-article-body blockquote p:last-child {
  margin-bottom: 0;
}

/* ---- Lists ---- */

.news-article-body ul,
.news-article-body ol {
  margin: var(--arp-space-4) 0 var(--arp-space-5) var(--arp-space-6);
}

.news-article-body li {
  margin-bottom: var(--arp-space-2);
  line-height: 1.7; /* token-ok */
}

.news-article-body li:last-child {
  margin-bottom: 0;
}

/* ---- Links ---- */

.news-article-body a {
  color: var(--arp-accent);
  text-decoration: underline;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.15s ease;
}

.news-article-body a:hover {
  text-decoration-color: var(--arp-accent);
}

/* ---- Inline code ---- */

.news-article-body :not(pre) > code {
  font-family: var(--arp-font-mono);
  font-size: var(--bulma-size-small);
  background: var(--arp-surface-sunken);
  border: 1px solid var(--arp-border);
  border-radius: var(--arp-radius-xs);
  padding: var(--arp-space-0-5) var(--arp-space-2);
  color: var(--arp-text-primary);
  font-style: normal;
}

/* ---- Code blocks ---- */

.news-article-body pre {
  background: var(--arp-surface-sunken);
  border: 1px solid var(--arp-border);
  border-radius: var(--arp-radius-sm);
  padding: var(--arp-space-4) var(--arp-space-5);
  overflow-x: auto;
  margin: var(--arp-space-5) 0;
}

.news-article-body pre code {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--arp-font-mono);
  font-size: var(--bulma-size-small);
  color: inherit;
  border-radius: 0;
  font-style: normal;
}

/* ---- Images ---- */

.news-article-body img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: var(--arp-space-8) auto;
  border-radius: var(--arp-radius-md);
  box-shadow: var(--arp-shadow-md);
}

/* ---- Horizontal rule ---- */

.news-article-body hr {
  border: none;
  border-top: 1px solid var(--arp-border);
  margin: var(--arp-space-8) 0;
}

/* ---- Tables ---- */

.news-article-body table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--arp-space-5) 0;
  font-size: var(--bulma-size-normal);
}

.news-article-body th,
.news-article-body td {
  padding: var(--arp-space-2) var(--arp-space-3);
  border: 1px solid var(--arp-border);
  text-align: left;
}

.news-article-body th {
  background: var(--arp-surface-muted);
  font-weight: 600;
  color: var(--arp-text-secondary);
}

.news-article-body tr:nth-child(even) td {
  background: var(--arp-surface-muted);
}
