/* R42: readable long-form two-column sections across every article.
   Scope: geometry and typography only; loaded after each page's existing stylesheet. */
.article-body .boundary,
.article-body .alert {
  width: min(1120px, calc(100vw - 64px));
  max-width: none;
  margin-left: 50%;
  transform: translateX(-50%);
  grid-template-columns: minmax(340px, .85fr) minmax(0, 1.35fr);
  gap: clamp(40px, 5vw, 72px);
}
.article-body .boundary > div,
.article-body .alert > div,
.article-body .boundary .registry-grid,
.article-body .boundary .registry-item { min-width: 0; }
.article-body :is(.boundary, .alert) > div:first-child > h2 {
  font-size: clamp(2.15rem, 3vw, 2.85rem);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.article-body .boundary .registry-grid {
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 18px;
}
.article-body .boundary .registry-item h2 {
  font-size: clamp(1.55rem, 2vw, 2rem);
  line-height: 1.08;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
@media (max-width: 1080px) {
  .article-body .boundary,
  .article-body .alert {
    width: min(820px, calc(100vw - 48px));
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
@media (max-width: 680px) {
  .article-body .boundary,
  .article-body .alert {
    width: min(calc(100vw - 28px), var(--max));
    gap: 18px;
  }
  .article-body .boundary .registry-grid { grid-template-columns: 1fr; }
  .article-body :is(.boundary, .alert) > div:first-child > h2 {
    font-size: clamp(1.85rem, 9vw, 2.7rem);
  }
}
