/* Portal layout: shared reading sizes, topic directory and navigation. */
:root { --muted: #59685f; --line: #d9ded5; }
.shell { width: min(1280px, calc(100% - 80px)); }
.preview-strip { font-size: 12px; padding-block: 8px; }
.topline { font-size: 11px; }
.masthead { height: 104px; }
.brand { font-size: 36px; letter-spacing: -1.4px; }
.brand small, .masthead-note > span { font-size: 12px; }
.masthead-note { font-size: 13px; }
.primary-nav { gap: 34px; font-size: 14px; }
.primary-nav > a { padding-block: 16px; }
.primary-nav > a:hover { color: var(--green); }
.edition-heading { padding-block: 27px 22px; font-size: 11px; }
.hero-grid { grid-template-columns: minmax(0, 2.65fr) minmax(270px, 1fr); gap: 32px; }
.hero-story { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); border-radius: 8px; }
.hero-content { padding: 36px 12px 34px 36px; }
.hero-content h1 { font-size: clamp(32px, 2.9vw, 44px); line-height: 1.14; margin-block: 22px 18px; }
.hero-content > p { font-size: 14px; line-height: 1.75; max-width: 440px; color: #4e6557; }
.hero-meta { flex-wrap: wrap; font-size: 11px; gap: 8px; }
.hero-tags { font-size: 12px; }
.pill { font-size: 11px; padding: 5px 10px; }
.button { font-size: 13px; min-height: 46px; border-radius: 4px; }
.hero-art { background: linear-gradient(125deg, #eaf0e7, #c4d9c8); }
.hero-art-label { font-size: 11px; }
.art-footnote { font-size: 10px; left: 14%; }
.section-kicker { font-size: 11px; }
.focus-item { gap: 14px; padding-block: 21px; }
.focus-item h2 { font-size: 21px; line-height: 1.25; margin-block: 7px 12px; }
.eyebrow { font-size: 11px; letter-spacing: .075em; }
.small-meta { font-size: 12px; }
.focus-all { font-size: 13px; min-height: 44px; }
.principles-strip { padding-block: 27px; margin-top: 14px; }
.principles-strip strong { font-size: 13px; }
.principles-strip small { font-size: 12px; }
.home-section { margin-top: 56px; }
.section-heading h2 { font-size: 36px; }
.text-link { font-size: 13px; min-height: 40px; }
.section-note { color: var(--muted); font-size: 13px; line-height: 1.6; margin: 0; }
.topics-section { scroll-margin-top: 24px; }
.topics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.topic-card { display: flex; flex-direction: column; position: relative; min-width: 0; padding: 23px 22px; border: 1px solid var(--line); border-radius: 6px; background: #f5f5ee; transition: background .18s, border-color .18s; }
.topic-card:hover, .topic-card:focus-visible { background: var(--mint); border-color: #89a795; color: var(--deep); }
.topic-icon { display: flex; color: var(--green); margin-bottom: 22px; }
.topic-icon .icon { width: 27px; height: 27px; }
.topic-card h3 { font-size: 16px; line-height: 1.3; font-weight: 600; margin: 0 0 9px; }
.topic-card p { font-size: 12px; line-height: 1.6; color: var(--muted); margin: 0; padding-right: 12px; }
.topic-arrow { position: absolute; right: 17px; top: 24px; color: #698575; }
.topic-arrow .icon { width: 18px; height: 18px; }
.topic-checkups { background: #f4f0e7; }
.topic-research { background: #f0eef4; }
.topic-professionals { background: #edf2ee; }
.card-art { border-radius: 6px; }
.art-format { font-size: 11px; padding: 4px 9px; }
.art-caption { font-size: 10px; }
.art-document { background: #e9e8df; }
.card-body h3 { font-size: 26px; line-height: 1.22; margin-block: 10px 13px; }
.card-body > p { font-size: 14px; line-height: 1.7; }
.card-meta { font-size: 12px; gap: 10px 16px; }
.draft-badge { color: #795c2d; }
.news-section { padding-top: 34px; }
.news-item h3 { font-size: 23px; line-height: 1.28; }
.news-date span { font-size: 11px; }
.news-arrow { display: grid; place-items: center; min-width: 36px; min-height: 44px; }
.editorial-banner { border-radius: 6px; padding: 40px; }
.editorial-banner h2 { font-size: 34px; }
.editorial-banner p { font-size: 14px; }
.footer-brand small, .footer-top p, .rss-link, .footer-links, .footer-bottom { font-size: 12px; }
.footer-links { gap: 12px 25px; }
.footer-links a, .privacy-settings { min-height: 32px; display: inline-flex; align-items: center; }
.breadcrumbs, .archive-count { font-size: 13px; }
.archive-description { font-size: 16px; max-width: 760px; }
.library-nav { display: flex; flex-wrap: wrap; gap: 8px; border-block: 1px solid var(--line); padding-block: 18px; margin-block: 28px; }
.library-nav a { font-size: 13px; line-height: 1.5; padding: 9px 14px; border: 1px solid var(--line); border-radius: 4px; background: #fffdf8; }
.library-nav a:hover { border-color: var(--green); }
.library-nav a[aria-current] { color: white; background: var(--deep); border-color: var(--deep); }
.library-format { font-weight: 600; }
.article-toc a { font-size: 13px; }
.review-status strong, .article-byline strong { font-size: 13px; }
.review-status small, .article-byline div > span, .article-byline, .article-notice { font-size: 12px; }
.sources-block li { font-size: 14px; }
.sources-block li > span, .article-disclaimer, .share-row, .copy-link { font-size: 12px; }
.start-panel { padding: 28px; border: 1px solid var(--line); border-radius: 6px; }
.start-panel h2 { font-family: var(--serif); font-size: 30px; line-height: 1.2; font-weight: 400; }
.start-panel p { color: var(--muted); font-size: 14px; }
.start-panel .search-form { flex-wrap: wrap; }
.start-panel input { flex-basis: 100%; }
@media (max-width: 1100px) {
  .shell { width: calc(100% - 48px); }
  .primary-nav { gap: 26px; font-size: 13px; }
  .hero-grid { grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: 24px; }
  .hero-story { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .hero-content { padding: 28px 4px 28px 28px; }
  .hero-content h1 { font-size: 34px; }
  .focus-item h2 { font-size: 20px; }
  .principles-strip { gap: 22px; }
  .principles-strip > div { border: 0; gap: 10px; }
  .principles-strip small { display: block; }
  .topics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-story { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
  .hero-content { padding: 32px; }
  .hero-content h1 { font-size: 40px; }
  .focus-item { padding-block: 18px; }
  .focus-item h2 { font-size: 20px; }
  .card-body h3 { font-size: 23px; }
  .principles-strip small { font-size: 11px; }
  .editorial-banner > .button { margin-left: 0; }
}
@media (max-width: 700px) {
  .shell { width: calc(100% - 32px); }
  .preview-strip { font-size: 10px; line-height: 1.5; padding: 7px 20px; }
  .topline { height: 34px; font-size: 9px; letter-spacing: .02em; }
  .topline time { font-size: 9px; }
  .masthead { height: 88px; gap: 3px; }
  .brand { font-size: 27px; gap: 9px; letter-spacing: -1.2px; }
  .brand-symbol { width: 36px; height: 36px; font-size: 28px; }
  .brand-symbol > span { font-size: 18px; right: -5px; }
  .brand small { font-size: 10px; margin-top: 6px; }
  .icon-button { width: 40px; height: 44px; }
  .menu-toggle { display: none; }
  .has-js .menu-toggle { display: grid; }
  .primary-nav { font-size: 14px; }
  .has-js .primary-nav:not(.is-expanded) { display: none; }
  .primary-nav.is-expanded { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; padding-block: 12px; }
  .primary-nav.is-expanded > a { padding: 12px 0; min-height: 44px; white-space: normal; }
  .search-panel { padding-block: 16px; }
  .search-form input { font-size: 14px; }
  .search-form .button { font-size: 13px; }
  .edition-heading { padding-block: 20px 16px; font-size: 9px; }
  .edition-heading > span:last-child { font-size: 12px; }
  .hero-story { grid-template-columns: 1fr; }
  .hero-content { padding: 27px 24px; }
  .hero-content h1 { font-size: 35px; letter-spacing: -.85px; margin-block: 21px 18px; }
  .hero-content > p { font-size: 14px; }
  .hero-meta { font-size: 11px; }
  .hero-art { min-height: 180px; }
  .art-footnote { left: 24px; bottom: 27px; }
  .hero-art-label { font-size: 10px; }
  .hero-orbit { width: 190px; height: 190px; }
  .orbit-two { width: 140px; height: 220px; }
  .orbit-three { width: 220px; height: 140px; }
  .section-kicker { font-size: 11px; }
  .focus-list { gap: 0; }
  .focus-item { padding-block: 20px; }
  .focus-item h2 { font-size: 23px; margin-block: 6px 9px; }
  .eyebrow { font-size: 10px; }
  .focus-all { font-size: 13px; }
  .principles-strip { padding-block: 24px; gap: 19px; }
  .principles-strip strong { font-size: 13px; }
  .principles-strip small { font-size: 12px; }
  .home-section { margin-top: 38px; }
  .section-heading { gap: 13px; }
  .section-heading h2 { font-size: 32px; }
  .section-heading > .text-link { font-size: 13px; }
  .section-note { font-size: 13px; }
  .section-note br { display: none; }
  .topics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .topic-card { padding: 19px 16px; }
  .topic-icon { margin-bottom: 20px; }
  .topic-card h3 { font-size: 15px; }
  .topic-card p { font-size: 12px; padding: 0; }
  .topic-arrow { top: 22px; right: 13px; }
  .card-body h3 { font-size: 27px; }
  .card-body > p { font-size: 14px; }
  .card-meta { font-size: 12px; }
  .cards-grid { gap: 34px; }
  .news-grid { gap: 0; }
  .news-item h3 { font-size: 23px; }
  .news-item { gap: 13px; padding-block: 23px; }
  .news-arrow { min-width: 26px; }
  .small-meta { font-size: 12px; }
  .editorial-banner { padding: 28px 24px; }
  .editorial-banner h2 { font-size: 31px; }
  .editorial-banner p { font-size: 14px; }
  .editorial-banner > .button { font-size: 13px; margin-top: 23px; }
  .footer-top { gap: 20px; }
  .footer-brand { font-size: 28px; }
  .footer-top p { font-size: 12px; }
  .footer-links, .footer-bottom { font-size: 12px; }
  .footer-bottom { flex-wrap: wrap; }
  .breadcrumbs, .archive-count { font-size: 12px; }
  .archive-description { font-size: 15px; }
  .library-nav { gap: 7px; margin-block: 24px; }
  .library-nav a { padding: 9px 12px; font-size: 12px; }
  .article-header h1 { font-size: 36px; }
  .article-toc a { font-size: 14px; }
  .article-byline strong { font-size: 12px; }
  .article-byline div > span { font-size: 11px; }
  .sources-block li { font-size: 14px; }
  .review-status small { font-size: 12px; }
}
@media (max-width: 370px) {
  .brand { font-size: 24px; }
  .brand-symbol { display: none; }
  .hero-content h1 { font-size: 31px; }
  .topline > span { font-size: 8px; }
  .topic-card { padding-inline: 13px; }
  .topic-card h3 { font-size: 14px; }
}
@media print {
  .shell { width: 100%; }
  .topics-section, .library-nav, .start-panel { display: none; }
}
