@charset "UTF-8";


/* -----------------------------------------------------------
   1) ベーススタイル
   ----------------------------------------------------------- */
html {
  font-size: 100%;
  /* 1rem = 16px（ユーザー設定尊重） */
}

body {
  font-size: 1rem;
  font-weight: 400;
  font-kerning: normal;
  font-variant-east-asian: proportional-width;
  -webkit-font-feature-settings: "palt"1, "pkna"1, "kern"1;
  font-feature-settings: "palt"1, "pkna"1, "kern"1;
  -webkit-text-size-adjust: 100%;
  /* iOSの自動拡大抑止 */
  text-size-adjust: 100%;
}

b,
strong {
  font-weight: 700;
}


/* -----------------------------------------------------------
   2) デフォルトのフォントスタック
   ----------------------------------------------------------- */
html {
  font-variant-numeric: tabular-nums;
}

html:lang(ja) {
  font-family: "Noto Sans JP", "Noto Sans", "Noto Sans SC",
    system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

html:lang(en) {
  font-family: "Noto Sans", "Noto Sans JP", "Noto Sans SC",
    system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

html:lang(zh-cmn-Hans) {
  font-family: "Noto Sans SC", "Noto Sans", "Noto Sans JP",
    system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}


/* -----------------------------------------------------------
   欧文サンセリフ
   ----------------------------------------------------------- */
@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-300.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-500.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-800.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}

@font-face {
  font-family: "Noto Sans";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSans-900.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F, U+20A0-20CF, U+2150-218F;
}


/* -----------------------------------------------------------
   日本語サンセリフ
   ----------------------------------------------------------- */
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-300.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-400.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-500.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-600.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-700.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-800.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansJP-900.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}


/* -----------------------------------------------------------
   中国語（簡体字）サンセリフ
   ----------------------------------------------------------- */
@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-300.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
  /* Ext-B(20000-) は必要時のみ */
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-400.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-500.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-600.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-700.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-800.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSansSC-900.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}


/* -----------------------------------------------------------
   欧文セリフ
   ----------------------------------------------------------- */
@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-300.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-500.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Noto Serif";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}


/* -----------------------------------------------------------
   日本語セリフ（latin抜き）
   ----------------------------------------------------------- */
@font-face {
  font-family: "Noto Serif JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-400.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Serif JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-500.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}

@font-face {
  font-family: "Noto Serif JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-700.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF,
    U+4E00-9FFF, U+FF01-FF60, U+FF61-FF9F, U+FFE0-FFEE;
}


/* -----------------------------------------------------------
   中国語（簡体字）セリフ（latin抜き）
   ----------------------------------------------------------- */

@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-400.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-500.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-700.woff2") format("woff2");
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}


/* -----------------------------------------------------------
   3) Alias Serif（見た目合わせ用エイリアス）
   - ラテンのみ-100、言語固定、セリフのみ
   ----------------------------------------------------------- */
/* Alias Serif JP-only */
@font-face {
  /* 400 */
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-300.woff2") format("woff2");
  /* Latin=300 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-400.woff2") format("woff2");
  /* JP=400 */
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  /* 500 */
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-400.woff2") format("woff2");
  /* Latin=400 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-500.woff2") format("woff2");
  /* JP=500 */
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  /* 700 */
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-600.woff2") format("woff2");
  /* Latin=600 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif JP";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifJP-700.woff2") format("woff2");
  /* JP=700 */
  unicode-range: U+3000-303F, U+3040-309F, U+30A0-30FF, U+31F0-31FF, U+4E00-9FFF, U+FF00-FFEF;
}

/* Alias Serif SC-only */
@font-face {
  /* 400 */
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-300.woff2") format("woff2");
  /* Latin=300 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-400.woff2") format("woff2");
  /* SC=400 */
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  /* 500 */
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-400.woff2") format("woff2");
  /* Latin=400 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-500.woff2") format("woff2");
  /* SC=500 */
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

@font-face {
  /* 700 */
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-600.woff2") format("woff2");
  /* Latin=600 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  font-family: "Alias Serif SC";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerifSC-700.woff2") format("woff2");
  /* SC=700 */
  unicode-range: U+3000-303F, U+3400-4DBF, U+4E00-9FFF, U+FF00-FFEF;
}

/* Alias Serif EN-only */
@font-face {
  /* 400 */
  font-family: "Alias Serif EN";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-300.woff2") format("woff2");
  /* Latin=300 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  /* 500 */
  font-family: "Alias Serif EN";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-400.woff2") format("woff2");
  /* Latin=400 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}

@font-face {
  /* 700 */
  font-family: "Alias Serif EN";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/common/fonts/NotoSerif-600.woff2") format("woff2");
  /* Latin=600 */
  unicode-range: U+0000-00FF, U+0100-024F, U+2000-206F;
}


/* -----------------------------------------------------------
   4) Alias Serif 切替ユーティリティ（.alias-serif）
   - 太さは要素側で指定（inherit）
   ----------------------------------------------------------- */
.alias-serif {
  font-weight: inherit;
}

html:lang(ja) .alias-serif {
  font-family: "Alias Serif JP", serif;
}

html:lang(zh-cmn-Hans) .alias-serif {
  font-family: "Alias Serif SC", serif;
}

html:lang(en) .alias-serif {
  font-family: "Alias Serif EN", serif;
}


/* -----------------------------------------------------------
   5) その他のフォント
   ----------------------------------------------------------- */
/* Lato-400 / 700 */
@font-face {
  font-display: swap;
  font-family: "Lato";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/common/fonts/Lato-400.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  src: url("/assets/common/fonts/Lato-700.woff2") format("woff2");
}

/* Bodoni Moda 400 / 500 / 700 */
@font-face {
  font-display: swap;
  font-family: "Bodoni Moda";
  font-style: normal;
  font-weight: 400;
  src: url("/assets/common/fonts/BodoniModa-400.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Bodoni Moda";
  font-style: normal;
  font-weight: 500;
  src: url("/assets/common/fonts/BodoniModa-500.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Bodoni Moda";
  font-style: normal;
  font-weight: 700;
  src: url("/assets/common/fonts/BodoniModa-700.woff2") format("woff2");
}