/* ============================================================
   style-ko-common.css — Shared Korean typography foundation
   ------------------------------------------------------------
   Loaded on EVERY Korean 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. Japanese has no word spacing, so that is fine for Japanese.
   Korean, however, uses word spacing (분かち書き / spacing between
   eojeol), so `line-break: anywhere` can split a Korean word across
   lines at an awkward point. Here we restore proper Korean line-
   breaking: keep whole Korean words together (word-break: keep-all)
   and only wrap at spaces; Latin words never split mid-word either.

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

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

/* --- Core rule: keep Korean words whole; never break inside a word --- */
html[lang="ko"] body,
html[lang="ko"] p,
html[lang="ko"] li,
html[lang="ko"] dd,
html[lang="ko"] dt,
html[lang="ko"] td,
html[lang="ko"] th,
html[lang="ko"] a,
html[lang="ko"] span,
html[lang="ko"] em,
html[lang="ko"] b,
html[lang="ko"] strong,
html[lang="ko"] small,
html[lang="ko"] h1,
html[lang="ko"] h2,
html[lang="ko"] h3,
html[lang="ko"] h4,
html[lang="ko"] blockquote,
html[lang="ko"] figcaption {
  word-break: keep-all !important;   /* keep Korean eojeol / Latin words 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="ko"] .info-section p,
html[lang="ko"] .info-section td,
html[lang="ko"] .info-section li,
html[lang="ko"] .news-article p,
html[lang="ko"] .news-article__body p,
html[lang="ko"] .cannes-lead__catch,
html[lang="ko"] .cannes-lead__sub,
html[lang="ko"] .cannes-lead__body,
html[lang="ko"] .cannes-quote__lead,
html[lang="ko"] .cannes-founder__text p,
html[lang="ko"] .cannes-founder__pull,
html[lang="ko"] .cannes-lead-line,
html[lang="ko"] .cannes-next p,
html[lang="ko"] .cannes-voices__note,
html[lang="ko"] .cannes-summary__row dd,
html[lang="ko"] .site-footer__notes p,
html[lang="ko"] .channel-card-large__title-ja,
html[lang="ko"] .channel-card-large__sub,
html[lang="ko"] .channel-card-large__desc,
html[lang="ko"] .channel-card-large__list,
html[lang="ko"] .why-card__text,
html[lang="ko"] .event-card__desc,
html[lang="ko"] .event-card__meta,
html[lang="ko"] .process-step__desc {
  line-break: auto !important;
  word-break: keep-all !important;
  overflow-wrap: break-word;
}

/* --- Korean web-font overrides for decorative quote blocks ---
   The Japanese base styles these with Latin (Cormorant) or Japanese
   (Noto Serif JP) faces. When Korean text sits in them, force the
   Korean serif so hangul renders in the correct typeface. */
html[lang="ko"] .cannes-quote__en,
html[lang="ko"] .cannes-quote__lead,
html[lang="ko"] .cannes-quote__word,
html[lang="ko"] .cannes-founder__pull,
html[lang="ko"] .cannes-voice-card__en,
html[lang="ko"] .news-article__subtitle {
  font-family: "Noto Serif KR", "Playfair Display", serif !important;
  font-style: normal;
}
