/* 和文フォントの指定。
 *
 * テーマ（theme_style.css）は本文に "DM Sans"、見出しに "Poppins" を指定するが、
 * どちらも和文グリフを持たないため、日本語は sans-serif フォールバック
 * （macOS はヒラギノ角ゴ、Windows は Yu Gothic）で描画され、OS ごとに
 * 字面と字幅が変わっていた。欧文はテーマの書体のままにしつつ、和文だけを
 * Noto Sans JP に固定する。
 *
 * font-family は先に一致したフォントがグリフを持つ文字だけを描画し、
 * 持たない文字は次の候補へ送られる。そのため "DM Sans" → "Noto Sans JP"
 * の順に並べれば、英数字は DM Sans、かな・漢字は Noto Sans JP になる。
 *
 * このファイルは theme_style.css より後に読み込むこと（templates/base.html）。
 * 先に読み込むとテーマの指定に上書きされて効かない。
 */

:root,
[data-bs-theme=light],
[data-bs-theme=dark] {
  --bs-body-font-family: "DM Sans", "Noto Sans JP", sans-serif;
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "Poppins", "Noto Sans JP", sans-serif;
}

/* ボタン・フォーム部品はブラウザ既定の書体を継承するため、明示的に body に揃える。
 *
 * ただしアイコンクラスを直接付けた要素は除く。Font Awesome の .fa-solid などは
 * 要素自身に icon フォントを指定するので、ここで本文の書体を後から当てると
 * アイコンが豆腐（□）になる。現在そう書いている箇所は無いが、
 * `<button class="btn fa-solid fa-x">` と書かれた瞬間に壊れるため塞いでおく（#557）。
 * Bootstrap Icons は ::before に !important 付きで指定するので元から影響を受けない。
 */
.btn:not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab),
.form-control,
.form-select,
.form-label,
input,
select,
textarea,
button:not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab) {
  font-family: var(--bs-body-font-family);
}
