/* v4 responsive: preserve hierarchy instead of shrinking desktop layouts. */
@media (max-width: 1100px) {
  .edition-index, .choice-atlas, .editorial-note { grid-template-columns: 1fr; gap: 3rem; padding-block: 5rem; }
  .lead-spread { grid-template-columns: 1fr; gap: 1.75rem; }
  .spread-meta { display: grid; grid-template-columns: 1fr auto; min-height: 0; gap: 1rem; }
  .spread-meta .kicker { grid-column: 1 / -1; }
  .spread-meta > span { font-size: 4.2rem; }
  .lead-story { grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .92fr); }
}

@media (max-width: 900px) {
  :root { --article-frame: min(100% - 40px, 1320px); }
  .masthead, .site-footer { padding-inline: 20px; }
  .masthead-main { min-height: 82px; align-items: center; padding-block: 14px; }
  .wordmark-english { font-size: clamp(1.8rem, 8vw, 3rem); }
  .wordmark-lens { font-size: .5rem; letter-spacing: .08em; }
  .archive-search-toggle { justify-content: center; min-width: 44px; }
  .archive-search-toggle > span { display: none; }
  .archive-search-panel { right: 20px; left: 20px; }
  .header-search-form { grid-template-columns: 1fr auto auto; }
  .header-search-form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
  .edition-menu { display: flex; width: max-content; min-width: max-content; }
  .edition-menu li:first-child a, .edition-menu li:last-child a { text-align: left; }
  .edition-menu a { padding: .82rem 1rem; font-size: .76rem; }
  .art-cover { grid-template-columns: 1fr; min-height: 0; margin-top: 1.25rem; }
  .cover-copy { min-height: 31rem; padding: 2rem; }
  .cover-copy h1 { font-size: clamp(2.8rem, 13vw, 4.6rem); }
  .cover-art { min-height: 29rem; }
  .cover-art > img { min-height: 29rem; object-position: 64% 35%; }
  .hero-category-strip { right: .8rem; bottom: .8rem; left: .8rem; display: flex; overflow-x: auto; }
  .hero-category-strip a { flex: 0 0 auto; padding: .75rem .8rem; }
  .moving-type span { font-size: clamp(2.3rem, 11vw, 4.8rem); }
  .edition-item { grid-template-columns: 2.5rem minmax(0, 1fr) 1.25rem; min-height: 7.2rem; }
  .edition-item p { display: none; }
  .atlas-steps li { grid-template-columns: 2.7rem 1fr; min-height: 8rem; }
  .atlas-steps span { grid-column: 2; }
  .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
  .section-intro.split { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > section:first-child { grid-column: 1 / -1; }
  .footer-meta { align-items: flex-start; flex-direction: column; }
  .article-head h1 { max-width: none; }
  .article-content { font-size: 1rem; }
}

@media (max-width: 760px) {
  .lead-story { grid-template-columns: 1fr; }
  .lead-image, .lead-image img { min-height: 22rem; }
}

@media (max-width: 520px) {
  :root { --article-frame: min(100% - 32px, 1320px); }
  .masthead, .site-footer { padding-inline: 16px; }
  .masthead-main { gap: .5rem; }
  .wordmark-english { max-width: 100%; font-size: 1.75rem; }
  .wordmark-lens { max-width: 20rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cover-copy { justify-content: flex-start; min-height: 29rem; padding: 7.2rem 1.5rem 1.5rem; }
  .cover-signature { top: 1.5rem; left: 1.5rem; }
  .cover-copy .kicker { display: none; }
  .cover-copy h1 { font-size: clamp(2.45rem, 10.8vw, 3.2rem); }
  .cover-art, .cover-art > img { min-height: 24rem; }
  .art-caption { right: 1rem; bottom: 4rem; font-size: .52rem; }
  .edition-index, .choice-atlas, .editorial-note { padding-block: 4rem; }
  .index-heading h2, .atlas-intro h2, .section-intro h2, .promise-heading h2 { font-size: clamp(2.2rem, 10vw, 3rem); }
  .edition-item h3 { font-size: 2rem; }
  .lead-content { padding: 1.35rem; }
  .lead-content h2 { font-size: 2.2rem; }
  .story-grid { grid-template-columns: 1fr; gap: 2rem; }
  .atlas-icons { gap: .7rem; }
  .atlas-icon { width: 4rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-wordmark { font-size: clamp(2.15rem, 10.5vw, 3rem); }
  .article-wrap { padding-block: 2rem 4.5rem; }
  .article-head h1 { max-width: none; font-size: clamp(2rem, 8.4vw, 2.3rem); }
  .article-content h2 { font-size: clamp(1.5rem, 6.4vw, 1.75rem); }
  .article-content h3 { font-size: 1.2rem; }
  .article-content blockquote { margin-inline: 0; padding: 1rem; font-size: 1.25rem; }
  .article-content table { font-size: .82rem; }
  .article-content th, .article-content td { min-width: 7.5rem; padding: .65rem; }
  .article-content .article-cta { width: 100%; }
  .article-content table[data-mobile-cards="true"] { display: block; overflow: visible; }
  .article-content .fm-table-wrap table[data-mobile-cards="true"] caption,
  .article-content table[data-mobile-cards="true"] caption { display: block; box-sizing: border-box; width: 100%; max-width: 100%; margin: 0 0 .7rem; padding: .75rem .8rem; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: .78rem; font-weight: 700; line-height: 1.45; white-space: normal; overflow-wrap: normal; word-break: keep-all; }
  .article-content table[data-mobile-cards="true"] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
  .article-content table[data-mobile-cards="true"] tbody { display: grid; gap: .7rem; }
  .article-content table[data-mobile-cards="true"] tr { display: grid; gap: .2rem; padding: .75rem; border: 1px solid var(--line); background: var(--paper-strong); }
  .article-content table[data-mobile-cards="true"] th, .article-content table[data-mobile-cards="true"] td { display: grid; grid-template-columns: minmax(5.5rem, .7fr) minmax(0, 1.3fr); gap: .5rem; min-width: 0; padding: .2rem 0; border: 0; }
  .article-content table[data-mobile-cards="true"] td::before, .article-content table[data-mobile-cards="true"] th::before { color: var(--muted); content: attr(data-label); font-size: .7rem; font-weight: 700; }
  .article-related__grid { grid-template-columns: 1fr; }
}

@media (max-width: 370px) {
  .wordmark { width: 13.75rem; }
  .wordmark-english { font-size: 1.48rem; }
  .wordmark-lens { max-width: 100%; }
}
