.blog-page .site-header { background: var(--paper); border-bottom-color: var(--line); }
.blog-main { max-width: 1240px; margin: 0 auto; padding: 124px 40px 76px; }
.blog-intro { max-width: 840px; margin-bottom: 38px; }
.blog-page h1 { font-family: var(--serif); font-size: clamp(36px, 4.6vw, 62px); font-weight: 400; line-height: 1.08; letter-spacing: -0.035em; margin: 16px 0 24px; text-wrap: balance; }
.blog-page h2 { font-family: var(--serif); font-weight: 400; font-size: 30px; line-height: 1.2; letter-spacing: -0.02em; scroll-margin-top: 100px; }
.article-summary { font-size: 19px; line-height: 1.6; max-width: 780px; }
.audience-nav { display: flex; flex-wrap: wrap; gap: 10px; padding: 25px 0 35px; border-top: 1px solid var(--line); }
.audience-nav a { padding: 9px 14px; border: 1px solid var(--line); border-radius: 24px; text-decoration: none; font-size: 13px; }
.audience-nav a:hover, .audience-nav a:focus-visible { background: var(--mint); }
.article-group { margin-top: 42px; }
.article-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.article-card { border: 1px solid var(--line); border-radius: 16px; padding: 26px; background: rgba(255,255,255,.25); }
.article-card h3 { font-size: 21px; font-family: var(--serif); font-weight: 400; line-height: 1.3; margin: 0 0 15px; }
.article-card h3 a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.article-card p { font-size: 14px; line-height: 1.65; margin-bottom: 0; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; margin-bottom: 32px; }
.article-header { max-width: 850px; padding-bottom: 24px; }
.article-byline { font-size: 13px; margin-top: 24px; }
.article-layout { display: grid; grid-template-columns: 230px minmax(0, 740px); gap: 62px; padding-top: 30px; border-top: 1px solid var(--line); align-items: start; }
.article-contents { position: sticky; top: 100px; }
.article-contents p { margin-top: 0; font-size: 13px; font-weight: 650; }
.article-contents ol { margin: 0; padding-left: 18px; }
.article-contents li { padding: 7px 0 7px 4px; font-size: 13px; line-height: 1.5; }
.article-contents a { text-decoration-color: var(--line); text-underline-offset: 3px; }
.article-body { font-size: 17px; line-height: 1.8; overflow-wrap: anywhere; }
.article-body section { margin-bottom: 38px; }
.article-body section:first-child h2 { margin-top: 0; }
.article-body h2 { margin: 35px 0 18px; }
.article-body p { margin: 0 0 18px; }
.article-body li { margin-bottom: 10px; }
.article-body a { text-underline-offset: 3px; }
.article-table { overflow-x: auto; margin: 20px 0; }
.article-table table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.6; }
.article-table th, .article-table td { text-align: left; vertical-align: top; padding: 12px; border: 1px solid var(--line); }
.article-table th { background: var(--paper-dark); }
.article-sources { font-size: 14px; padding-top: 10px; border-top: 1px solid var(--line); }
.article-cta { margin-top: 38px; border-radius: 16px; padding: 28px; background: var(--mint); }
.article-cta h2 { margin-top: 0; font-size: 28px; }
.article-cta p { max-width: 74ch; margin: 0 0 22px; font-size: 17px; line-height: 1.7; }
.related-articles { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); }
.blog-page a:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
@media (max-width: 1000px) {
  .article-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 30px; }
  .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .blog-main { padding: 106px 22px 40px; }
  .article-grid, .article-layout { grid-template-columns: minmax(0, 1fr); }
  .article-contents { position: static; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
  .article-contents ol { columns: 1; }
  .article-body { font-size: 16px; }
  .article-summary { font-size: 18px; }
}
@media print {
  .blog-page .site-header, .blog-page .site-footer, .article-contents, .article-cta, .related-articles, .breadcrumbs { display: none; }
  .blog-main { padding: 0; }
  .article-layout { display: block; }
  .blog-page h1 { font-size: 30px; }
  .article-body { font-size: 11pt; }
}

.article-cta .text-link {
  margin-left: 1.25rem;
}
