/* Chinese edition: typography only. Layout and visual tokens stay in site.css. */
html[lang="zh-Hant-TW"] body { font-family: "Jost", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; font-size: 15px; line-height: 1.8; }
html[lang="zh-Hant-TW"] h1, html[lang="zh-Hant-TW"] h2, html[lang="zh-Hant-TW"] h3, html[lang="zh-Hant-TW"] .service-detail h2 { font-family: "Jost", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; letter-spacing: -.045em; }
html[lang="zh-Hant-TW"] h1 { font-size: clamp(1.88rem, 5.05vw, 3.38rem); line-height: 1.2; }
html[lang="zh-Hant-TW"] .sub { font-size: 1rem; line-height: 1.8; }
html[lang="zh-Hant-TW"] .card h3 { font-size: 1.08rem; line-height: 1.45; }
html[lang="zh-Hant-TW"] .card p, html[lang="zh-Hant-TW"] .contact-note p { font-size: 14px; line-height: 1.8; }
html[lang="zh-Hant-TW"] .proof .card p, html[lang="zh-Hant-TW"] .work-category, html[lang="zh-Hant-TW"] .mock-sub { line-height: 1.7; }
html[lang="zh-Hant-TW"] .eyebrow, html[lang="zh-Hant-TW"] .section-head h2, html[lang="zh-Hant-TW"] .exclusion h2, html[lang="zh-Hant-TW"] .tag, html[lang="zh-Hant-TW"] .work-label { letter-spacing: .06em; }
html[lang="zh-Hant-TW"] .links a, html[lang="zh-Hant-TW"] .btn { letter-spacing: .02em; }
html[lang="zh-Hant-TW"] .prose p, html[lang="zh-Hant-TW"] .prose li { line-height: 1.9; }
html[lang="zh-Hant-TW"] .diagram-desktop text, html[lang="zh-Hant-TW"] .diagram-mobile text { font-family: "Jost", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif; }


/* --- Diagram labels ---------------------------------------------------
   diagrams.css sets the SVG label font to "Jost", sans-serif. Jost has no
   CJK glyphs, so Chinese labels were falling through to whatever generic
   sans the browser picked, which did not match the rest of the page. */
.system-diagram text {
  font-family: "Jost", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
}

/* --- Heading line breaks ----------------------------------------------
   Chinese has no inter-word spaces, so a browser will break a heading at
   any character. The English hero could only break between words; the
   Chinese one split 同一組人 across two lines. Clauses are kept whole and
   the break is pushed to the punctuation, where a reader expects it. */
.hero h1,
.page-intro h1,
.contact-panel h2,
.section-head h2 {
  text-wrap: balance;
  line-break: strict;
}
.hero h1 .clause,
.page-intro h1 .clause { white-space: nowrap; }
