/* Site-wide typography: the same system-font pairing as the home page.
   Important family declarations bridge legacy page-specific CSS only. */
:root {
    --font-body: Arial, Helvetica, sans-serif;
    --font-heading: Georgia, 'Times New Roman', serif;
    --font-primary: Arial, Helvetica, sans-serif;
    --font-mono: 'Courier New', monospace;
}
body { font-family: var(--font-body) !important; text-rendering: optimizeLegibility; }
body :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--font-heading) !important;
    line-height: 1.25;
    letter-spacing: -.025em;
    text-transform: none !important;
    overflow-wrap: break-word;
}
body :is(button, input, select, textarea, label, .nav, .nav-links, .nav-logo, .logo-text, .breadcrumb, .article-meta-bar, .tag, .badge, .notification) {
    font-family: var(--font-body) !important;
}
body :is(code, pre, kbd, samp) { font-family: var(--font-mono); }
body:not(.editorial) :is(.page-header h1, .blog-hero h1, .bib-hero h1) {
    font-size: clamp(2rem, 3.6vw, 3.25rem);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: -.035em;
    max-width: 950px;
}
body .page-header {
    background: #f5f4ef !important;
    border-bottom: 1px solid #dce3e7 !important;
    padding-block: clamp(32px, 5vw, 56px);
}
body .page-header h1 { color: #132f46; }
body .page-header :is(p, .breadcrumb, .breadcrumb a) { color: #536573; }
body .page-header .tag { color: #132f46; background: #e7e9e4; }
body .page-header .tag--accent { background: #eee2c9; color: #70470c; }
body :is(.main-content, .article-content, .page-content) {
    min-width: 0;
    font-size: 1.0625rem;
    line-height: 1.8;
    overflow-wrap: break-word;
}
body :is(.main-content, .article-content, .page-content) :is(p, li) { line-height: 1.8; }
body :is(.main-content, .article-content, .page-content) h2 {
    font-size: clamp(1.55rem, 2.6vw, 2rem);
    margin-block: 2.25rem 1rem;
    scroll-margin-top: 95px;
}
body :is(.main-content, .article-content, .page-content) h3 {
    font-size: clamp(1.2rem, 2vw, 1.45rem);
    margin-block: 1.5rem .75rem;
}
body :is(.main-content, .article-content, .page-content) > :is(p, ul, ol) { max-width: 76ch; }
body :is(.main-content, .article-content, .page-content) a { text-underline-offset: .2em; }
body :is(.main-content, .article-content, .page-content) :is(p, li, td) a:not([class]),
body a.category-link { color: #215477; }
body .faq-item > button.faq-question {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    width: 100%; padding: 18px 20px; background: transparent; border: 0;
    color: #132f46; font-size: 1rem; font-weight: 600; line-height: 1.5;
    text-align: left; cursor: pointer;
}
body .faq-item > button.faq-question:hover { background: #f5f7f8; }
body :is(.article-meta-bar, .article-meta-item, .bi-date) { color: #536573; }
body .footer :is(p, .footer-bottom) { color: #bacbd8; }
body .footer h4 { font-family: var(--font-body) !important; letter-spacing: .08em; }
body .nav-item:focus-within .nav-dropdown { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
body .reading-table-scroll { max-width: 100%; overflow-x: auto; margin-block: 1.5rem; }
body .reading-table-scroll table { margin-block: 0; }
body .reading-table-scroll:focus-visible { outline: 3px solid #a56c12; outline-offset: 3px; }
body .site-mobile-menu { display: none; }
@media (max-width: 1000px) {
    body .header .nav { display: none; }
    body .site-mobile-menu { display: block; margin-left: auto; position: relative; }
    body .site-mobile-menu summary { padding: 12px; cursor: pointer; font-weight: 700; color: #132f46; }
    body .site-mobile-menu nav { position: absolute; top: 48px; right: 0; width: min(270px, 85vw); background: white; border: 1px solid #dce3e7; padding: 12px; box-shadow: 0 8px 24px #132f4615; max-height: 75vh; overflow-y: auto; }
    body .site-mobile-menu a { display: block; padding: 12px; color: #132f46; font-size: .95rem; line-height: 1.4; }
}
@media (max-width: 700px) {
    body :is(.main-content, .article-content, .page-content) { font-size: 1rem; }
    body :is(input, select, textarea) { font-size: max(1em, 16px); }
    body :is(.main-content, .article-content, .page-content) h2 { margin-top: 1.75rem; }
    body .reading-table-scroll table { min-width: 480px; }
    body :is(.content-area, .content-layout, .content-grid, .main-content, .sidebar) { min-width: 0; }
}
