/* Runtime states only; approved typography and responsive composition stay in the two source stylesheets. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.image-unavailable{display:grid;place-items:center;aspect-ratio:296/186;background:var(--soft);color:var(--muted);font-size:14px}
.follow-block a.preferred-source-link{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:20px;background:var(--blue);color:#fff;min-height:46px;padding:12px 10px;font-size:13px;font-weight:650;border-radius:6px}
@media(max-width:600px){.follow-block a.preferred-source-link{font-size:14px}}
.article-copy img{height:auto;max-width:100%;object-fit:contain}.article-copy table{display:block;overflow:auto;max-width:100%}
.comments-unavailable{padding:24px;background:var(--soft);border:1px solid var(--line);border-radius:8px;line-height:1.6}.comments-unavailable p+p{margin-top:8px}
.empty-feed{padding:40px 0;line-height:1.7}.empty-feed h2{margin-bottom:12px}.saved-item{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}.saved-item a{font-weight:600}.saved-item button{background:var(--soft);border:1px solid var(--line);padding:8px}
dialog{max-height:85vh;overflow:auto}.news-error{padding:80px 0;min-height:55vh}.news-error p{margin-top:20px}.news-error a{display:inline-block;margin-top:24px;color:var(--blue);text-decoration:underline}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.editor-align-left{text-align:left}.editor-align-right{text-align:right}.editor-align-center{text-align:center}.editor-align-justify{text-align:justify}

/* Desktop News refinement. Existing tablet and mobile rules remain authoritative. */
@media (min-width: 901px) {
  .article-page main.wrap {
    width: min(1112px, calc(100% - 80px));
  }
  .article-grid {
    grid-template-columns: minmax(0, 1fr) 296px;
    gap: 48px;
  }
  .article-intro {
    max-width: 1040px;
    margin-bottom: 26px;
  }
  .article-intro h1 {
    font-size: clamp(38px, 3.3vw, 48px);
    line-height: 1.15;
    margin-bottom: 22px;
  }
  .article-page .bread {
    margin-top: 24px;
    margin-bottom: 18px;
  }
  .article-tools {
    padding-block: 12px;
    margin-bottom: 24px;
  }
  .article-feature {
    margin-bottom: 24px;
  }
  .article-copy {
    max-width: none;
  }
  .article-copy > p:not(:has(img)),
  .article-copy > div:not(:has(img)) {
    max-width: 72ch;
  }
  .article-related {
    margin-top: 32px;
    padding-top: 28px;
  }
  .related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 24px;
  }
  .related-grid article,
  .related-grid article > a {
    min-width: 0;
  }
  .related-grid h3 {
    font-size: 22px;
    line-height: 1.3;
    margin-top: 12px;
  }
  .article-sidebar .sidebar-news {
    gap: 24px;
  }
  .article-sidebar .sidebar-news h3 {
    font-size: 20px;
    line-height: 1.3;
    margin-top: 10px;
  }
  .listing-page main.wrap {
    width: min(1184px, calc(100% - 80px));
  }
  .section-title {
    margin-top: 32px;
    margin-bottom: 24px;
  }
  .section-title h1 {
    font-size: 64px;
  }
  .topic-rail {
    margin-bottom: 28px;
  }
  .lead-story {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 32px;
    margin-bottom: 32px;
  }
  .lead-story h2 {
    font-size: clamp(30px, 2.55vw, 36px);
    line-height: 1.2;
    margin-bottom: 14px;
  }
  .lead-story p {
    font-size: 17px;
    line-height: 1.6;
  }
  .lead-bottom {
    margin-top: 20px;
  }
  .news-grid {
    gap: 36px;
  }
  .feed-grid {
    gap: 30px 24px;
  }
  .story-row h2 {
    font-size: 23px;
    line-height: 1.3;
  }
}
@media (min-width: 1200px) {
  .feed-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .story-row h2 {
    font-size: 21px;
  }
}
@media (min-width: 901px) and (max-width: 1150px) {
  .article-page main.wrap,
  .listing-page main.wrap {
    width: calc(100% - 56px);
  }
  .article-grid {
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 32px;
  }
  .news-grid {
    gap: 28px;
  }
  .lead-story {
    gap: 24px;
  }
  .lead-story h2 {
    font-size: 30px;
  }
}
