/* Shared reading rhythm for current and archived blog/news articles. */
.article-detail {
  --article-paragraph-gap: 1.25rem;
  --article-section-gap: 2.25rem;
  --article-heading-gap: 0.875rem;
}

.article-detail .article-title {
  font-size: clamp(2rem, 4vw, 3.125rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.article-detail .article-lead {
  margin: 0 0 1.75rem;
  font-size: 1.25rem;
  line-height: 1.65;
  font-weight: 700;
}

.article-detail .article-body {
  font-size: 1.05rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.article-detail .article-body p,
.article-detail .article-body ul,
.article-detail .article-body ol,
.article-detail .article-body blockquote,
.article-detail .article-body figure {
  margin-top: 0;
  margin-bottom: var(--article-paragraph-gap);
}

.article-detail .article-body :is(h2, h3, h4, h5, h6) {
  margin-top: var(--article-section-gap);
  margin-bottom: var(--article-heading-gap);
  line-height: 1.3;
}

.article-detail .article-body h2 { font-size: clamp(1.625rem, 3vw, 2.125rem); }
.article-detail .article-body h3 { font-size: clamp(1.375rem, 2.5vw, 1.75rem); }
.article-detail .article-body h4 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
.article-detail .article-body h5 { font-size: 1.125rem; }
.article-detail .article-body h6 { font-size: 1rem; }
.article-detail .article-body > :first-child { margin-top: 0; }
.article-detail .article-body > :last-child { margin-bottom: 0; }
.article-detail .article-body li > :last-child { margin-bottom: 0; }
.article-detail .article-body :is(ul, ol) :is(ul, ol) { margin-bottom: 0; }

.article-detail .article-lead > :last-child,
.article-detail .article-body p > img:last-child,
.article-detail .article-body figure img { margin-bottom: 0; }
.article-detail .article-body figcaption {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-light);
}
