/* ============================================================
   style-zh-common.css — Shared Simplified Chinese typography
   ------------------------------------------------------------
   Loaded on EVERY Simplified Chinese page, AFTER the Japanese
   stylesheets so it wins on the cascade.

   Why this exists:
   The Japanese CSS applies `line-break: anywhere` to p/li and
   related text blocks to pull Japanese lines flush to the right
   edge. Chinese, like Japanese, has no word spacing, so character-
   by-character wrapping is natural for Chinese text. The only issue
   is Latin words embedded in Chinese text (brand names, "MIRAGE II",
   "NMN", INCI terms), which `line-break: anywhere` could split at an
   awkward point ("MIRA / GE"). Here we keep whole Latin words
   together while still allowing Chinese to wrap normally between
   characters.

   Typography: headings use Playfair Display (Latin display face) for
   the decorative English eyebrows/numerals in the design, with Noto
   Serif SC carrying Chinese text; body text uses Noto Serif SC with
   a serif fallback.

   Scope: everything is under html[lang="zh-CN"], so Japanese and
   other languages are completely unaffected.
   ============================================================ */

/* --- Core rule: allow Chinese to wrap per-character, keep Latin words whole --- */
html[lang="zh-CN"] body,
html[lang="zh-CN"] p,
html[lang="zh-CN"] li,
html[lang="zh-CN"] dd,
html[lang="zh-CN"] dt,
html[lang="zh-CN"] td,
html[lang="zh-CN"] th,
html[lang="zh-CN"] a,
html[lang="zh-CN"] span,
html[lang="zh-CN"] em,
html[lang="zh-CN"] b,
html[lang="zh-CN"] strong,
html[lang="zh-CN"] small,
html[lang="zh-CN"] h1,
html[lang="zh-CN"] h2,
html[lang="zh-CN"] h3,
html[lang="zh-CN"] h4,
html[lang="zh-CN"] blockquote,
html[lang="zh-CN"] figcaption {
  word-break: normal !important;     /* Chinese wraps per-char; Latin words stay whole */
  overflow-wrap: break-word;         /* only break truly unbreakable long tokens */
  word-wrap: break-word;
  -webkit-hyphens: none;
  hyphens: none;
  line-break: auto !important;       /* cancel the JA `line-break: anywhere` */
}

/* --- Cancel line-break:anywhere everywhere it was applied by the JA base --- */
html[lang="zh-CN"] .info-section p,
html[lang="zh-CN"] .info-section td,
html[lang="zh-CN"] .info-section li,
html[lang="zh-CN"] .news-article p,
html[lang="zh-CN"] .news-article__body p,
html[lang="zh-CN"] .cannes-lead__catch,
html[lang="zh-CN"] .cannes-lead__sub,
html[lang="zh-CN"] .cannes-lead__body,
html[lang="zh-CN"] .cannes-quote__lead,
html[lang="zh-CN"] .cannes-founder__text p,
html[lang="zh-CN"] .cannes-founder__pull,
html[lang="zh-CN"] .cannes-lead-line,
html[lang="zh-CN"] .cannes-next p,
html[lang="zh-CN"] .cannes-voices__note,
html[lang="zh-CN"] .cannes-summary__row dd,
html[lang="zh-CN"] .site-footer__notes p,
html[lang="zh-CN"] .channel-card-large__title-ja,
html[lang="zh-CN"] .channel-card-large__sub,
html[lang="zh-CN"] .channel-card-large__desc,
html[lang="zh-CN"] .channel-card-large__list,
html[lang="zh-CN"] .why-card__text,
html[lang="zh-CN"] .event-card__desc,
html[lang="zh-CN"] .event-card__meta,
html[lang="zh-CN"] .process-step__desc {
  line-break: auto !important;
  word-break: normal !important;
  overflow-wrap: break-word;
}
