/* Shared editorial typography. 글꼴 자체는 fonts.css(생성 파일, 자체 호스팅 조각) — 본문 고딕 Pretendard JP Variable(SIL OFL 1.1, fonts/LICENSE.txt),
 * zh 본문 Noto Sans TC · 제목 명조 Noto Serif KR/JP/TC(SIL OFL 1.1, fonts/LICENSE-NOTO-OFL.txt). 0.24.46(2026-09-26, Owner): 0.18.0~0.24.45 는 이 파일이
 * 모든 글자를 Pretendard 로 강제(!important)해 style.css 의 명조(제목)/고딕(본문) 구분이 화면에서 사라져 있었다 — 강제 규칙을 걷고 변수만 잇는다. */
:root {
  --koc-reading-font:var(--koc-sans);
  --wp--preset--font-family--body:var(--koc-sans);
  --wp--preset--font-family--heading:var(--koc-serif);
  --koc-paragraph-gap:32px; --koc-section-gap:64px; --koc-heading-gap:24px;
}
body { font-family:var(--koc-sans); }
body :is(input,button,select,textarea) { font-family:var(--koc-sans); }
html:lang(ko) { font-feature-settings:'ss05' 1; }
body { line-height:1.8; }
body :is(h1,h2,h3,h4,h5,h6) { line-height:1.4; font-weight:650; }
body .wp-block-post-title { margin-block:40px 24px; font-size:clamp(34px,3.2vw,50px); }

/* Apply rhythm to reading surfaces, not every nested layout div. */
body :is(.koc-article-body,.koc-cast-content) { font-size:18px; line-height:1.85; }
body :is(.koc-article-body,.koc-cast-content) :is(p,li,dt,dd) { line-height:1.85; }
body :is(.koc-article-body,.koc-cast-content) p { margin-block:0 var(--koc-paragraph-gap); }
body :is(.koc-article-body,.koc-cast-content) h2 { font-size:28px; line-height:1.45; margin-block:var(--koc-section-gap) var(--koc-heading-gap); }
body :is(.koc-article-body,.koc-cast-content) h3 { font-size:23px; line-height:1.5; margin-block:40px 20px; }
body :is(.koc-article-body,.koc-cast-content) h4 { font-size:20px; margin-block:32px 16px; }
body :is(.koc-article-body,.koc-cast-content) :is(ul,ol) { margin-block:24px 32px; }
body :is(.koc-article-body,.koc-cast-content) li + li { margin-top:14px; }
body :is(.koc-article-body,.koc-cast-content) :is(ul,ol) :is(ul,ol) { margin-block:12px 16px; }
body :is(.koc-article-body,.koc-cast-content) :is(ul,ol) + p { margin-top:32px; }
body :is(.koc-article-body,.koc-cast-content) > section + :is(p,ul,ol) { margin-top:32px; }
body :is(.koc-article-body,.koc-cast-content) > section + section { margin-top:var(--koc-section-gap); }
body :is(.koc-article-body,.koc-cast-content) :is(figure,blockquote,table) { margin-block:36px; }
body :is(.koc-article-body,.koc-cast-content) figcaption { font-size:15px; line-height:1.75; padding-top:14px; }
body :is(.koc-article-body,.koc-cast-content) :is(th,td) { padding:16px 18px; line-height:1.75; }
body :is(.koc-article-body,.koc-cast-content) > :first-child,
body :is(.koc-article-body,.koc-cast-content) > section > h2:first-child { margin-top:0; }

/* Character header, disclosure and questions are distinct blocks. */
body .entry-content > .koc-cast-role { margin-block:0 24px; font-size:15px; line-height:1.75; }
body .entry-content > .koc-disclosure-box { max-width:none; margin:0 0 48px; padding:24px 28px; font-size:16px; line-height:1.85; }
body .koc-cast-content > section { margin-top:var(--koc-section-gap); }
body .koc-cast-content > section:first-child { margin-top:0; }
body .koc-cast-questions ul { margin:0; padding:0; }
body .koc-cast-questions li { padding:20px 0; margin:0; line-height:1.85; }
body .koc-cast-questions li + li { margin-top:0; }
body .koc-cast-questions { margin-bottom:32px; }
body .koc-cast-content .koc-cast-disclosure p { font-size:16px; line-height:1.85; }

/* Story and route supporting information gets room without enlarging the page chrome. */
body :is(.koc-cue-card,.koc-route-card,.koc-verified-note,.koc-backup,.koc-pov) { padding:24px; line-height:1.8; }
body :is(.koc-cue-card,.koc-route-card,.koc-verified-note,.koc-backup,.koc-pov) :is(p,ul,ol):last-child { margin-bottom:0; }
body :is(.koc-stopcard,.koc-stop) { margin-block:32px; }
body .koc-stop-unv { padding:20px 24px; margin-top:24px; font-size:16px; line-height:1.8; }
body .koc-stop-kv { row-gap:20px; padding-top:20px; margin-top:24px; }
body .koc-stop-cols { gap:24px; }
body .koc-card-body { padding-top:20px; }
body .koc-card-body h3 { margin-block:10px 16px; line-height:1.5; }
body .koc-card-body > p { margin-block:0 16px; line-height:1.8; }
body .koc-card-body .koc-card-meta { font-size:14px; margin-bottom:12px; line-height:1.7; }
body .koc-archive-head h1 { margin-bottom:20px; }
body .koc-archive-desc { font-size:18px; line-height:1.85; }
body .koc-chip-row { margin-top:24px; row-gap:12px; }
body .koc-footer :is(p,a) { font-size:16px; line-height:1.85; }
body .koc-footer-nav, body .koc-footer-links { row-gap:16px; }

/* Standard WordPress information pages outside custom article containers. */
body .entry-content > :is(p,ul,ol,blockquote) { font-size:18px; line-height:1.85; margin-block:0 32px; }
body .entry-content > :is(h2,h3) { margin-block:64px 24px; line-height:1.5; }
body .entry-content > :is(ul,ol) > li + li { margin-top:14px; }
body main .entry-content.wp-block-post-content > :is(p,ul,ol,blockquote):not(.koc-cast-role):not(.koc-eyebrow) { font-size:18px !important; line-height:1.85 !important; }
body :is(.koc-eyebrow,.koc-textlink,.koc-cap,.koc-note-label,.koc-note-source,.koc-pov-label,.koc-card-meta) { font-size:14px; line-height:1.75; }
body .koc-card-body > p:not(.koc-card-meta) { font-size:16px; }
@media(max-width:760px) {
  :root { --koc-paragraph-gap:32px; --koc-section-gap:64px; --koc-heading-gap:20px; }
  body .wp-block-post-title { margin-block:28px 20px; font-size:34px; }
  body :is(.koc-article-body,.koc-cast-content), body .entry-content > :is(p,ul,ol,blockquote) { font-size:17px; line-height:1.85; }
  body :is(.koc-article-body,.koc-cast-content) h2 { font-size:25px; }
  body :is(.koc-article-body,.koc-cast-content) h3 { font-size:21px; margin-top:32px; }
  body .entry-content > .koc-disclosure-box { padding:20px; margin-bottom:32px; }
  body .koc-cast-questions li { padding:18px 0; }
  body :is(.koc-cue-card,.koc-route-card,.koc-verified-note,.koc-backup,.koc-pov) { padding:20px; }
  body .entry-content > :is(h2,h3) { margin-block:64px 20px; }
  body main .entry-content.wp-block-post-content > :is(p,ul,ol,blockquote):not(.koc-cast-role):not(.koc-eyebrow) { font-size:17px !important; }
}
