/* Figma で指定されている書体のうち Google Fonts にないものを self-host する。
   フォントファイルは public/fonts/（デザイナーから受領した otf/ttf を woff2 に変換したもの）。
   Noto Sans JP / Zen Antique Soft は Layout.astro で Google Fonts から読み込む。

   Sass ではなく public/ の静的 CSS にしているのは、ページ遷移（ClientRouter）のため。
   ClientRouter は遷移ごとに <head> を入れ替え、href が同じ <link rel="stylesheet"> だけを残す。
   dev では Vite が CSS を <style> で注入するので、@font-face がその中にあると遷移のたびに再宣言され、
   フォントが一瞬代替書体になる（ヘッダーの文字がチラつく）。固定 href の <link> なら dev でも本番でも残る。 */

/* Syncro: ナビ・見出し・UI（Figma の "Syncro Mono"） */
@font-face {
  font-family: 'Syncro';
  src: url('/fonts/Syncro-Mono.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Syncro: 商品名（Figma の "Syncro Italic"） */
@font-face {
  font-family: 'Syncro';
  src: url('/fonts/Syncro-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Syncro Mono Italic: ナビの現在ページ（Figma の "Syncro Mono Italic"）。
   'Syncro' の italic は商品名用の Syncro Italic（プロポーショナル）に割り当て済みなので、別の family 名で置く */
@font-face {
  font-family: 'Syncro Mono';
  src: url('/fonts/Syncro-Mono-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Syncro Book: プロポーショナルの正体（Figma の "Syncro Book"。Top / Space のタグライン）。
   'Syncro' の normal は Syncro Mono に割り当て済みなので、別の family 名で置く */
@font-face {
  font-family: 'Syncro Book';
  src: url('/fonts/Syncro-Book.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Alte Haas Grotesk: 本文（英字） */
@font-face {
  font-family: 'Alte Haas Grotesk';
  src: url('/fonts/AlteHaasGrotesk-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Alte Haas Grotesk Bold（リッチテキストの strong。600 を指定すると Alte は 400 / 700 しか無いのでこれが選ばれる） */
@font-face {
  font-family: 'Alte Haas Grotesk';
  src: url('/fonts/AlteHaasGrotesk-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ── 和文と英字を混ぜるときの英字 ──
   サイズは英字の値（本文 Alte 14 など）で指定する。和文（Noto Sans JP・Zen Antique Soft）は face の size-adjust で縮む
   （14 → 13.5、20 → 19.3。public/fonts-ja.css。scripts/gen-fonts-ja.mjs が生成）。
   英字の face は等倍。unicode-range で英数字・基本記号だけをこの face に割り当て、
   それ以外の文字（和文・全角記号・「・」）は font-family の次の和文 face に落ちる。 */

/* 本文: $font-jp（src/styles/_variables.scss）が 'kiiks Latin Body', 'kiiks JP Body' の順になっている */
@font-face {
  font-family: 'kiiks Latin Body';
  src: url('/fonts/AlteHaasGrotesk-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  /* ASCII の英数字・記号、ラテン 1 補助（é など）、ダッシュ・引用符・三点リーダー。全角記号や「・」は含めない */
  unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-201D, U+2026;
}

/* 太字（リッチテキストの strong、600）。Alte Haas Grotesk Bold を同じ範囲で割り当てる（無いと英字が合成の太字になる）。
   和文は Noto Sans JP 可変の 600 */
@font-face {
  font-family: 'kiiks Latin Body';
  src: url('/fonts/AlteHaasGrotesk-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-201D, U+2026;
}

/* 和文混じりの見出し: $font-heading-mixed（Journal・Policy。和文は Zen）と $font-heading-sans（FAQ。和文は Noto）が 'kiiks Heading Latin', 'Zen Antique Soft' の順。
   font-size は英字の値（20 / 28）。和文は Zen Antique Soft の size-adjust で 19.3 / 27 になる（Figma は 19 / 26）。
   範囲は Syncro Mono が持つ英字・記号（ラテン拡張の ō・€・™・→ など）。範囲内でも Syncro に無い字は Zen に落ちる。
   $font-mono（末尾が generic の monospace）に和文を足すと、和文 Windows では和文が MS ゴシックになるので、和文混じりはこちらを使う */
@font-face {
  font-family: 'kiiks Heading Latin';
  src: url('/fonts/Syncro-Mono.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range:
    U+0020-007E, U+00A0-036F, U+0394, U+03A9, U+03BC, U+03C0, U+1E00-1EFF, U+2013-2014, U+2018-2022, U+2026, U+2030,
    U+2039-203A, U+2044, U+2070-209F, U+20A0-20CF, U+2113, U+2122, U+212E, U+215B-215E, U+2190-2199, U+2202-2265,
    U+25CA, U+FB01-FB02;
}
