/*
 * RUBIRIS Concept i18n 보조 스타일 (SPEC-I18N-001 REQ-I18N-060 ~ 063).
 *
 * 불변식:
 * - 모든 최상위 규칙이 ko 로케일에서 무효다. 게이트 셀렉터는
 *   html:not([lang="ko"]) / html[lang="ja"] / html[lang^="zh"] 세 종류뿐이며
 *   셀렉터 목록의 모든 항목에 게이트가 붙어야 한다 (test_i18n_css 가 검증).
 * - 기존 12개 CSS 파일과 템플릿 인라인 <style> 은 한 줄도 수정하지 않는다.
 *   html:not([lang="ko"]) 접두사는 type+attribute 조합이라 특이도가 인라인
 *   <style> 의 단순 셀렉터보다 높아 순서에 관계없이 이긴다 (REQ-I18N-063).
 * - 외부 웹폰트를 추가하지 않는다 — CSP font-src 'self' data: 제약이다.
 *   아래 CJK 폰트는 전부 OS 기본 face 다.
 * - zh 규칙은 접두 일치 html[lang^="zh"] 를 쓴다. 출력되는 lang 값은
 *   zh-CN 이라 정확 일치 html[lang="zh"] 는 절대 매치되지 않는다 (REQ-I18N-061).
 */

/* ── 1. 일본어 글리프 보장 (REQ-I18N-083) ─────────────────────────────────
 * 각 스택 맨 앞에 해당 문자권 CJK face 를 두고, 기존 한국어 스택을 맨 뒤에
 * 그대로 남긴다 — 미번역 화면(admin·결제·법률)과 한국어로 저장된 AI 산출물의
 * 글리프를 보존하기 위해서다. --font(landing/marketing)와
 * --font-display/--font-body(workspace) 변수명을 모두 재정의한다. */
/* [재검증 D-8] face 순서를 Persona(globals.css:80-85)와 동일하게 Noto 선두로
   정렬했다 — 같은 기기에서 두 서비스의 글리프가 일치해야 제품군 시각이 통일된다.
   한국어 스택 꼬리(REQ-I18N-062)와 Concept 자체 display face(Sora)는 유지. */
html[lang="ja"] {
    --font: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Pretendard Variable", "SUIT Variable", "Noto Sans KR", -apple-system, sans-serif;
    --font-display: "Sora", "Noto Sans JP", "Hiragino Sans", "Pretendard Variable", "Noto Sans KR", sans-serif;
    --font-body: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Pretendard Variable", "SUIT Variable", "Noto Sans KR", sans-serif;
}

/* ── 2. 중국어(간체) 글리프 보장 (REQ-I18N-083) ───────────────────────────
 * 접두 일치임에 유의: html[lang^="zh"] (출력값 zh-CN 매칭). */
/* [재검증 D-8] Persona(globals.css:73-78)와 동일한 Noto Sans SC 선두 순서. */
html[lang^="zh"] {
    --font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Pretendard Variable", "SUIT Variable", "Noto Sans KR", -apple-system, sans-serif;
    --font-display: "Sora", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Pretendard Variable", "Noto Sans KR", sans-serif;
    --font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Pretendard Variable", "SUIT Variable", "Noto Sans KR", sans-serif;
}

/* ── 3. 비한국어 줄바꿈 해제 (REQ-I18N-060, R11) ──────────────────────────
 * 현행 CSS 는 word-break:keep-all + overflow-wrap:normal + hyphens:none 의
 * 한국어 전용 조판이며(전역 114곳), 이 조합에서는 영어 긴 단어·URL 이 줄바
 * 꿈되지 않아 컨테이너를 넘친다. non-ko 로케일에서만 한국어 전용 규칙을
 * 해제한다. ko 에서는 이 규칙이 한 줄도 적용되지 않는다. */
html:not([lang="ko"]) h1,
html:not([lang="ko"]) h2,
html:not([lang="ko"]) h3,
html:not([lang="ko"]) h4,
html:not([lang="ko"]) h5,
html:not([lang="ko"]) h6,
html:not([lang="ko"]) p,
html:not([lang="ko"]) li,
html:not([lang="ko"]) a,
html:not([lang="ko"]) span,
html:not([lang="ko"]) strong,
html:not([lang="ko"]) td,
html:not([lang="ko"]) th,
html:not([lang="ko"]) dd,
html:not([lang="ko"]) dt,
html:not([lang="ko"]) label,
html:not([lang="ko"]) summary,
html:not([lang="ko"]) button {
    word-break: normal;
    overflow-wrap: anywhere;
    line-break: auto;
}

/* 영어 하이픈 연결은 브라우저 자동(hyphens:auto)에 맡긴다. zh/ja 는
 * 하이픈 규칙이 없어 사실상 no-op 다. */
html:not([lang="ko"])[lang="en"] h1,
html:not([lang="ko"])[lang="en"] h2,
html:not([lang="ko"])[lang="en"] h3,
html:not([lang="ko"])[lang="en"] p,
html:not([lang="ko"])[lang="en"] li,
html:not([lang="ko"])[lang="en"] td,
html:not([lang="ko"])[lang="en"] dd,
html:not([lang="ko"])[lang="en"] dt {
    hyphens: auto;
}
