/* =========================================================
   ja-base.css（kiso.css の後に読み込む）
   日本語の文字間・文字詰め・改行位置を、Safari / Chrome / Edge / Firefox で揃えるための土台。
   ========================================================= */

/* 日本語：Noto Sans JP（ページで使う文字＋かな・英数・約物だけのサブセット。tools/build_fonts.py で生成）
   固定の太さ 400 / 700 の 2 ファイル（Windows 版 WebKit で可変フォントの太さが反映されないため） */
@font-face{
  font-family:"Noto Sans JP";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/noto-sans-jp-400.woff2") format("woff2");
}
@font-face{
  font-family:"Noto Sans JP";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/noto-sans-jp-700.woff2") format("woff2");
}
/* 英数字の等幅：IBM Plex Mono（ラテン文字だけ。日本語は Noto Sans JP に回る） */
@font-face{
  font-family:"IBM Plex Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --font-ja:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",YuGothic,"Noto Sans CJK JP",Meiryo,sans-serif;
}

/* kiso の既定値を上書き・追加（line-break / overflow-wrap / text-size-adjust は kiso のまま） */
html{
  font-family:var(--font-ja);          /* kiso: sans-serif */
  line-height:1.8;                     /* kiso: 1.5 */
  letter-spacing:.04em;
  text-spacing-trim:space-all;         /* kiso: trim-start。Chrome だけ約物が詰まるのを防ぐ */
  text-autospace:no-autospace;         /* kiso: normal */
  font-kerning:normal;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}

/* 見出し・UI：palt で詰める */
:where(h1,h2,h3,h4,h5,h6,button,label,th,summary,caption,figcaption,nav a,.badge,.btn,.logo,.palt){
  -webkit-font-feature-settings:"palt" 1;font-feature-settings:"palt" 1;
  letter-spacing:.04em;
}

/* 本文はブラウザ既定の折り返し（kiso が英語の段落に入れる pretty も打ち消す。Safari で行末に余白が出るため） */
:where(p,li,dd,td,figcaption,blockquote,caption){text-wrap:wrap}

/* 見出し・FAQ の質問・帯だけ文節で改行：文節ごとの <span class="ib">（tools/phrase-breaks.mjs が BudouX で生成） */
.ib{display:inline-block}

/* 中央寄せの見出し・帯・バッジだけ行の長さをそろえる（左寄せには使わない） */
:where(.is-center h1,.is-center h2,.is-center h3,.badge){text-wrap:balance}

/* 電話番号・金額・割引率・時間などは折り返さない */
.nowrap,[href^="tel:"] .num{white-space:nowrap}

/* iOS Safari の入力時の拡大を防ぐ */
:where(input,select,textarea){font-size:max(16px,1em)}

/* 本文の箇条書きは印を戻す（kiso が消すため） */
:where(.prose) :where(ul){list-style-type:disc;padding-inline-start:1.5em}
:where(.prose) :where(ol){list-style-type:decimal;padding-inline-start:1.5em}

/* カラム落ちしない並べ方 */
.cards{
  display:grid;gap:var(--gap,24px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min,280px)),1fr));
}
.cols{display:grid;gap:var(--gap,24px);grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){ .cols{grid-template-columns:repeat(var(--cols,2),minmax(0,1fr))} }
.row{display:flex;flex-wrap:wrap;gap:var(--gap,16px)}
.row > *{min-width:0}

/* 使わないもの：text-align: justify / word-break: keep-all / <wbr> / 本文の text-wrap: pretty / 文章の max-width / 全幅の 100vw */
