/* Shared Chinese fixes used by every variant. Applies only while the page is in Chinese
   (:root:not([data-lang="en"])), so the English version is untouched. */
:root:not([data-lang="en"]) {
  /* CJK font first after the system UI font, no Arial/Segoe UI in between:
     Latin and digits inside Chinese text use the Chinese font's own Latin, so heights and weights match. */
  --font: -apple-system, BlinkMacSystemFont, "PingFang HK", "PingFang TC", "Noto Sans TC", "Noto Sans CJK TC",
          "Source Han Sans TC", "Microsoft JhengHei", sans-serif;
  --font-latin: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Noto Serif TC", "Noto Serif CJK TC", "Source Han Serif TC", "Songti TC", "Songti SC", "PMingLiU", "MingLiU", serif;
}
:root:not([data-lang="en"]) body { line-break: strict; }
/* No 1–3 character orphan lines, avoid punctuation-only last lines */
:root:not([data-lang="en"]) p,
:root:not([data-lang="en"]) li { text-wrap: pretty; hanging-punctuation: allow-end; }
/* Headings break between words (at spaces / punctuation), balanced line lengths */
:root:not([data-lang="en"]) :is(h1, h2, h3, h4, .quote) { text-wrap: balance; }
/* statement is body-like; wrap naturally (not balance) */
:root:not([data-lang="en"]) :is(h1, h2, h3, h4) { word-break: keep-all; overflow-wrap: anywhere; letter-spacing: .02em; }
:root:not([data-lang="en"]) .hero h1 .accent { letter-spacing: -0.01em; }
/* Trim the extra half-width of full-width brackets at line start / between adjacent punctuation */
:root:not([data-lang="en"]) body { text-spacing-trim: trim-start; }
/* Small Chinese labels: 13px + wide Latin tracking reads as noise; give them 14px and less tracking */
:root:not([data-lang="en"]) :is(.label, .scope-title, .facts h3, .areas-title, .product .kicker, .contact-list .k) {
  font-size: 14px; letter-spacing: .08em;
}
:root:not([data-lang="en"]) .label .num { letter-spacing: .04em; }
/* Body / explanatory copy: natural wrapping (owner: 具体说明自然折行). Keep phrase integrity via keep-all;
   do not force balanced line lengths — that looked like awkward mid-sentence breaks. */
:root:not([data-lang="en"]) :is(.hero .lede, .statement, .sub, .feature-body p, .callout p, .outcome, .role, .scope li, .roles li, .area h4, .area p, .book p, .facts p, .consult-tag, .consult-payer, .consult-note, .product p, .bio p, .minor p) {
  word-break: keep-all; overflow-wrap: anywhere; text-wrap: wrap; text-align: start;
}
/* Consult / area titles: override heading balance so card titles wrap naturally in narrow columns */
:root:not([data-lang="en"]) .area h4 {
  text-wrap: wrap;
}
/* Pure Latin bits keep a Latin font: in CJK fonts the middle dot "·" is full-width and leaves big gaps ("AI ・ Web3") */
:root:not([data-lang="en"]) :is(.hero h1 .accent, .eyebrow) { font-family: var(--font-latin); }
:root:not([data-lang="en"]) .eyebrow [lang="zh-Hant-HK"] { font-family: var(--font); }
/* 方案 C｜極簡科技: one sans family, only Regular + Medium, big headings, short left-aligned lines, two text colours */
:root:not([data-lang="en"]) body { font-size: 17px; line-height: 1.8; letter-spacing: 0; }
:root:not([data-lang="en"]) :is(h1, h2, h3, h4, .quote, .founder h2, .minor h3) { font-weight: 500; letter-spacing: 0; }
:root:not([data-lang="en"]) .hero h1 { font-size: clamp(48px, 8vw, 116px); line-height: 1.12; }
:root:not([data-lang="en"]) .hero h1 [lang="zh-Hant-HK"] { letter-spacing: 0; }
:root:not([data-lang="en"]) .h2 { font-size: clamp(36px, 4.6vw, 60px); line-height: 1.2; }
:root:not([data-lang="en"]) .feature-head h3 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.2; letter-spacing: 0; }
:root:not([data-lang="en"]) .quote { font-size: clamp(36px, 5.2vw, 70px); }
:root:not([data-lang="en"]) .quote [lang="zh-Hant-HK"] { letter-spacing: 0; line-height: 1.25; }
:root:not([data-lang="en"]) .statement { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.6; max-width: 36em; font-weight: 400; }
/* fewer sizes: body 17 / small 15; lead = body size, only colour differs */
:root:not([data-lang="en"]) .feature-body .lead { font-size: 19px; line-height: 1.7; font-weight: 500; }
:root:not([data-lang="en"]) :is(.feature-body p, .product p, .callout p, .sub, .bio, .hero .lede, .book p) { max-width: 40em; }
:root:not([data-lang="en"]) :is(.feature-body p, .product p, .bio p, .area p, .book p, .sub, .roles li) { color: var(--ink); }
:root:not([data-lang="en"]) .scope li { font-size: 17px; line-height: 1.5; }
:root:not([data-lang="en"]) :is(.outcome, .area p, .minor p, .book .about-line) { font-size: 15px; }
:root:not([data-lang="en"]) .area h4 { font-size: 20px; line-height: 1.4; }
:root:not([data-lang="en"]) .callout h3 { font-size: 20px; }
:root:not([data-lang="en"]) .founder h2 { font-size: clamp(40px, 4.6vw, 60px); }
:root:not([data-lang="en"]) :is(.label, .scope-title, .facts h3, .areas-title, .product .kicker, .contact-list .k) {
  font-size: 14px; letter-spacing: 0; color: var(--ink); font-weight: 500;
}
:root:not([data-lang="en"]) :is(.label .num, .feature-head .n, .area .n) { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: 0; }

/* Hero lede + body copy: natural wrapping (owner requests 2026-10-03 / 2026-10-12) */
:root:not([data-lang="en"]) .hero .lede, :root:not([data-lang="en"]) .hero .lede[lang] { word-break: normal; text-wrap: wrap; max-width: 40em; }
:root:not([data-lang="en"]) .statement { text-wrap: wrap; }

/* Consulting section (#advisory / #consult): natural CJK wrap.
   keep-all + overflow-wrap:anywhere in ~148–235px columns produced orphan
   punctuation and mid-phrase breaks (团队/上线 split). Full-width stack +
   normal break rules fix it. */
:root:not([data-lang="en"]) #advisory :is(.sub, .outcome, .facts p, .facts li, .area h4, .area p, .consult-tag, .consult-payer, .consult-note, .price),
:root:not([data-lang="en"]) #consult :is(.area h4, .area p, .consult-tag, .consult-payer, .price) {
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: wrap;
  line-break: auto;
  max-width: none;
}
:root:not([data-lang="en"]) #advisory .area h4,
:root:not([data-lang="en"]) #consult .area h4 {
  text-wrap: wrap;
  word-break: normal;
}

/* Trust band CJK wrap */
:root:not([data-lang="en"]) #trust :is(.sub, .logo-caption, .area h4, .area p, .trust-notes-lead, .trust-note-links a) {
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: wrap;
  line-break: auto;
}
:root:not([data-lang="en"]) #trust .logo-wall li {
  letter-spacing: 0;
}
:root:not([data-lang="en"]) #trust .areas-title {
  font-size: 14px; letter-spacing: 0; color: var(--ink); font-weight: 500;
}
:root:not([data-lang="en"]) .founder.team .member { font-weight: 500; }

/* c47 — mobile hero: slightly more leading (48px @ 1.12 felt cramped) */
@media (max-width: 760px) {
  :root:not([data-lang="en"]) .hero h1 {
    line-height: 1.2;
  }
  :root:not([data-lang="en"]) .hero .lede {
    line-height: 1.75;
  }
}
