@charset "utf-8";
/**
 * demo-harigraft 웹폰트 (자체 호스팅 — CDN 미사용)
 *
 * 사이트에 실제로 쓰이는 글자만 남겨 서브셋한 woff2 다. 전체 CJK 폰트는 그대로 서빙할 수 없다.
 *   일본어 BIZ UDPGothic(Regular·Bold 2벌) / 중국어 Noto Sans SC(가변) / 한국어 Pretendard(가변)
 *   JP(Zen Kaku Gothic New) 5굵기 합계 390KB / SC 196KB / KO(Pretendard) 1.7MB
 *
 * 글자 목록은 languages/{ja,zh}-skin.po 의 번역문 + PHP 소스의 비번역 리터럴에서 뽑는다.
 * 문구를 바꾸거나 번역을 추가하면 assets/fonts/build-fonts.py 를 다시 실행해야
 * 새 글자가 폰트에 포함된다(빠진 글자는 시스템 폰트로 폴백되어 자형이 섞인다).
 *
 * 실제로 쓰는 굵기는 300·400·500·700·900. 가변폰트(SC·Pretendard)는 파일 하나가 전 굵기를 덮지만,
 * BIZ UDPGothic 은 Regular/Bold 뿐이라 일본어에서는 제목 굵기를 700 으로 낮춰 맞춘다(아래 규칙).
 */

/* 일본어 — BIZ UDPGothic (모리사와 UD, OFL). Regular/Bold 두 벌만 존재한다. */
@font-face { font-family:'BIZ UDPGothic'; font-style:normal; font-weight:400; font-display:swap;
    src:url('/assets/fonts/BIZUDPGothic-400-subset.woff2') format('woff2'); }
@font-face { font-family:'BIZ UDPGothic'; font-style:normal; font-weight:700; font-display:swap;
    src:url('/assets/fonts/BIZUDPGothic-700-subset.woff2') format('woff2'); }

@font-face {
    font-family: 'Noto Sans SC';
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url('/assets/fonts/NotoSansSC-subset.woff2') format('woff2');
}

/* 한국어는 Pretendard(OFL). 한글은 조합 범위가 넓어 완성형 음절 전체를 담았다(1.7MB).
   ko 는 현재 서비스 언어가 아니라 실제로 내려받히지 않는다 — 열게 되면 상용 음절만 남겨 줄일 것. */
@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url('/assets/fonts/Pretendard-subset.woff2') format('woff2');
}

/*
 * 로케일별 폰트 — <html lang> 으로 분기한다.
 * 같은 한자라도 언어별 자형이 다르고(한자 통합), 가나는 일본어 폰트에만 제대로 들어 있다.
 * @font-face 는 실제로 매칭될 때만 다운로드되므로 페이지당 한 벌만 내려받는다.
 * Bootstrap 이 body 에 --bs-body-font-family 를 쓰기 때문에 변수도 함께 지정한다.
 */
html[lang^="ja"],
html[lang^="ja"] body {
    font-family: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', system-ui, sans-serif;
}
html[lang^="ja"] {
    --bs-body-font-family: 'BIZ UDPGothic', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', system-ui, sans-serif;
}

html[lang^="zh"],
html[lang^="zh"] body {
    font-family: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
}
html[lang^="zh"] {
    --bs-body-font-family: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
}

html[lang^="ko"],
html[lang^="ko"] body {
    font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif;
}
html[lang^="ko"] {
    --bs-body-font-family: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif;
}

/* lang 이 없거나 다른 값일 때의 기본값 — 사이트 기본 언어(ja) 기준 */
:root {
    --bs-body-font-family: 'BIZ UDPGothic', system-ui, -apple-system, sans-serif;
}

/*
 * 일본어 굵기 보정 — BIZ UDPGothic 에는 300·500·900 이 없다.
 * 그대로 두면 브라우저가 가짜 굵기를 합성해 자형이 뭉개지므로, ja 에서만 실제 있는 굵기로 낮춘다.
 */
html[lang^="ja"] .h2c,
html[lang^="ja"] .hero h1,
html[lang^="ja"] .page-title,
html[lang^="ja"] .legacy-title,
html[lang^="ja"] .cost-title,
html[lang^="ja"] .stat-band .num,
html[lang^="ja"] .kicker,
html[lang^="ja"] .btn-channel { font-weight: 700; }
html[lang^="ja"] .hero p,
html[lang^="ja"] .legacy p { font-weight: 400; }
