/* R23: one academic type system for the site, reader and editor. */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400..900&family=Source+Serif+4:opsz,wght@8..60,400..900&display=swap');

:root {
    --font-academic: 'Source Serif 4', 'Noto Serif SC', 'Songti SC', 'SimSun', Georgia, serif;
    --font-heading: var(--font-academic);
    --font-body: var(--font-academic);
    --font-ui: var(--font-academic);
    --reading-font-size: 17px;
    --reading-line-height: 1.9;
}

body { font-family: var(--font-body); font-optical-sizing: auto; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); }
button, input, select, textarea, summary { font-family: var(--font-ui); }

/* Keep document typography equal at equal widths, without overriding math/code spans. */
.module-content,
.admin-page .module-content,
.ce-document.module-content,
.ce-preview.module-content {
    font-family: var(--font-body);
    font-size: var(--reading-font-size);
    line-height: var(--reading-line-height);
}
.module-content :is(h1, h2, h3, h4, h5, h6),
.ce-document.module-content :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.5;
    margin: 28px 0 14px;
}
.module-content h1, .ce-document.module-content h1 { font-size: 28px; }
.module-content h2, .ce-document.module-content h2 { font-size: 24px; }
.module-content h3, .ce-document.module-content h3 { font-size: 20px; }
.module-content h4, .ce-document.module-content h4 { font-size: 18px; }
.module-content h5, .ce-document.module-content h5,
.module-content h6, .ce-document.module-content h6 { font-size: 17px; }
.module-content > :first-child { margin-top: 0; }
.module-content p { font-size: inherit; line-height: inherit; margin: 0 0 16px; }
.module-content ul, .module-content ol { margin: 0 0 16px; padding-left: 1.6em; }
.module-content ul { list-style: disc; }
.module-content ul ul { list-style: circle; }
.module-content ol { list-style: decimal; }
.module-content ul li { padding: 0; }
.module-content ul li::before { content: none; }
.module-content li { font-size: inherit; line-height: inherit; margin: 0 0 8px; }
.module-content blockquote { margin: 20px 0; padding: 12px 18px; border-left-width: 3px; }
.module-content table {
    display: table;
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
    font-size: inherit;
    line-height: inherit;
    margin: 20px 0;
}
.module-content td, .module-content th { padding: 10px 14px; }
.module-content th { font-weight: 600; }

.home-page .dl-row-desc,
.home-page .about-dept-card-desc { font-size: 14px; line-height: 1.7; }
.home-page .dl-row-hint,
.home-page .about-dept-card-en,
.home-page .section-tag,
.entry-count { font-size: 13px; }
.home-page .about-dept-tag { font-size: 12px; }

@media (max-width: 560px) {
    .home-page .dl-row-desc,
    .home-page .about-dept-card-desc { font-size: 14px; line-height: 1.75; }
}
