/* ja-contracts.css — jp-ui-contracts (media profile)
 * 日本語組版の契約 CSS。:lang(ja) に絞って既存 CSS を上書きせず追加する。
 * Kit: ~/Claude/assets/jp-ui-contracts/
 * Profile: media
 * Docs: see ../DESIGN.md
 *
 * このファイルに普通の見た目調整（色・フォント・サイズ等）を足さないこと。
 * 日本語組版の破綻防止（word-break / line-break / overflow-wrap / mixed-script）に限定する。
 */

/* ---- 1. ja-text: html:lang(ja) と本文要素の既定 --------------------- */
html:lang(ja) {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
  font-kerning: auto;
  font-feature-settings: normal;
}

:lang(ja) p,
:lang(ja) li,
:lang(ja) dd {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* reading width（本文コンテナに限定。既存の .container 系は触らない） */
:lang(ja) :where(article, .prose, .content) p {
  max-width: 42em;
}

/* ---- 2. headings: 見出しの折り返し戦略 ------------------------------- */
:lang(ja) h1,
:lang(ja) h2,
:lang(ja) h3,
:lang(ja) h4 {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
  font-kerning: auto;
}

:lang(ja) h1 { line-height: 1.35; }
:lang(ja) h2 { line-height: 1.4; }
:lang(ja) h3 { line-height: 1.45; }

/* ---- 3. mixed-script: 和欧混植 --------------------------------------- */
html:lang(ja) {
  text-autospace: normal;
}

:lang(ja) em,
:lang(ja) strong,
:lang(ja) a,
:lang(ja) .latin,
:lang(ja) .product-name {
  word-break: normal;
  overflow-wrap: anywhere;
}

/* 見出しは auto-phrase で文節ベースに折る（対応ブラウザのみ） */
:lang(ja) h1,
:lang(ja) h2,
:lang(ja) h3 {
  word-break: auto-phrase;
}

/* ---- 4. forms: 本文ルールからの分離 ---------------------------------- */
:lang(ja) label,
:lang(ja) input,
:lang(ja) textarea,
:lang(ja) select,
:lang(ja) button {
  line-break: strict;
  word-break: normal;
}

:lang(ja) input,
:lang(ja) textarea,
:lang(ja) select {
  line-height: 1.5;
}

:lang(ja) .form-help,
:lang(ja) .form-error {
  line-height: 1.5;
  overflow-wrap: anywhere;
}
