/**
 * site.css — 全ページ共通スタイル（Xserver静的配信・ビルド工程なしの素CSS）
 *
 * 構成:
 *   1. tokens.css   デザイントークン（デザインdoc §6準拠。CSS変数・ダークモード切替・グローバルクラス）
 *   2. fonts.css     フォント変数の実体定義 + 自己ホスト@font-face群（woff2はassets/public/fonts/、GDPR対応で自己ホスト化）
 *   3. 各コンポーネント/ページ由来のセクション（web/components・web/app/[locale]の *.module.css を移植）
 *
 * 命名規則: CSS Modulesのスコープ分離をやめ、"{コンポーネント名のケバブケース}-{元クラス名のケバブケース}"
 *   で衝突を回避する（例: ControlBar.module.css の .wrapper → .control-bar-wrapper）。
 *   新規テンプレート実装時は、対応するコンポーネントのprefixを下記セクション見出しで確認し、
 *   同じ命名規則でHTML側にクラスを付与すること。
 *
 * /map専用の大きいスタイル（MapView/MapBranchList/LocateMeButton/mapページ）は map.css に分離。
 */


/* ---------- 1. tokens.css ---------- */
/**
 * デザイントークン（設計doc §6準拠）。
 * 角丸は --radius-sm(4px) / --radius-md(6px) の2種類のみ。8px超・pill形状は本プロジェクトで使用禁止。
 */
:root {
  /* --- Color: ライト基調 --- */
  --color-bg: #f4f6f9;
  --color-bg-subtle: #f7f8fa;
  --color-border: #dfe4ec;
  --color-text: #1a2330;
  --color-text-muted: #5d6d84;

  --color-primary: #1d3557;
  --color-primary-strong: #142744; /* hover用の濃色 */

  /* --- Accent: ベストレート強調・PR帯（ライト） --- */
  --color-accent-gold: #f0c64a;
  --color-accent-gold-soft: #f7e3a5;
  /* 上位ランキングカードの淡い背景（1位=ゴールド系tint / 2-3位=ネイビー系tint） */
  --color-card-best-bg: #faf0d4;
  /* 位置チップ(駅・エリア名): ネイビー系で場所情報だと一目で分かる配色 */
  --color-location-chip-bg: #cc6212;
  --color-location-chip-text: #ffffff;
  --color-card-rank-bg: #e7eef9; --color-card-rank-border: #c6d6ec;
  /* 3位カード=ごく薄いブロンズ(2026-09-04 ユーザー指示。1位ゴールド/2位シルバーブルーと並ぶメダル3色) */
  --color-card-bronze-bg: #f9efe6; --color-card-bronze-border: #e6cfb8;
  --color-label-bronze-bg: #ecd3b8; --color-label-bronze-hover-bg: #e0be9a; --color-label-bronze-text: var(--color-on-gold);
  --color-pr-band: #f6f0dd;
  --color-pr-border: #e9dfc0;

  --color-best: #0e8345;
  --color-best-bg: rgba(14, 131, 69, 0.04); /* ベスト行の背景tint 4% */

  --color-loss: #b0552e;

  /* --- Teal: 案内/見出し用アクセント（2026-09-04 トップページ刷新〜。仕様3。紺(--color-primary)を
     新規UIの既定色にしないため新設。目次ナビの見出しゾーン・モバイル帯等で使用） --- */
  --color-teal: #2b7f8b;
  --color-teal-deep: #23606a;
  /* /compare・guideアフィリ帯アイコン枠の淡色背景(2026-09 全面刷新〜。_shared.css --teal-soft と同一値)。 */
  --color-teal-soft: #e3f1f3;

  --color-freshness-fresh: #0e8345;
  --color-freshness-aging: #b8860b; /* 琥珀 */
  --color-freshness-stale: #9aa4b2; /* グレー */
  /* 外れ値ガード「要確認」バッジの背景tint（2026-09-03〜。--color-freshness-agingと同系色10%）。 */
  /* 要確認(異常値)専用の赤。--color-loss(茶赤)とは別トークン(2026-09-03 ユーザー指摘) */
  --color-suspect: #c62828;
  --color-suspect-bg: rgba(198, 40, 40, 0.07);
  --color-suspect-badge-bg: var(--color-suspect);
  --color-suspect-badge-text: #ffffff;
  /* 「要確認」バッジ・注記の文字色（2026-09-03〜。ライトは--color-freshness-aging(#b8860b)を
     --color-suspect-bg合成背景(rgb(248,243,231)相当)に重ねるとコントラスト比約2.94:1でWCAG AA
     (4.5:1)未達だったため、より濃い専用トークンを新設。#8a5c00は同背景で約5.25:1（計算値）。 */
  --color-suspect-text: var(--color-suspect);

  --color-surface: #ffffff;
  --color-shadow: rgba(16, 24, 40, 0.08);

  /* --- Header: ライト/ダーク共通で常にネイビー基調（モック仕様。テーマ切替の影響を受けない） --- */
  --color-header-bg: #1d3557;
  --color-header-border: #41598a;
  --color-header-text-muted: #c9d6ea;
  /* --- Hero（ヒーロー・ライブ更新パネル）: Headerと同じくネイビー固定。Main.dc.html/MainDark.dc.htmlで同一値 --- */
  --color-header-panel-bg: #142744;
  --color-header-text-subtle: #8ea6c9;
  --color-header-live-dot: #3ecf8e;
  /* --- Header/ネイビーパネル上の白文字: ヘッダー背景同様テーマ不変のため固定値のみでよい
     （2026-09 ガイド機能追加時にguides-page-featured-card-panel用に新設。dark側の再定義は不要）。 --- */
  --color-header-text: #ffffff;

  /* --- On-accent text: ゴールド系背景（--color-accent-gold/-soft）専用の固定濃色文字色。
     ゴールドはライト/ダーク共通値のため、文字色も固定でよい（テーマ切替で反転させると破綻するレビュー指摘対応）。 --- */
  --color-on-gold: #17253c;
  /* .station-best-card 専用の文字色。カード背景は--color-card-best-bgでテーマにより反転する
     （ライト#faf0d4=明色／ダーク#201d12=暗色）ため、--color-on-gold（固定濃色）をそのまま使うと
     ダークで1.10:1に破綻する。テーマ追従の専用トークンを新設（axe color-contrast対応。2026-09-14）。 */
  --color-on-station-best: var(--color-on-gold);

  /* --- On-white-chip text: 背景画像上に敷く白固定チップ（PRバッジ・アフィリCTAボタン）専用の
     固定濃色文字色。チップ背景は常に#ffffffでテーマ非依存だが、文字色に--color-text/--color-primary/
     --color-best/--color-location-chip-bg等のテーマ可変トークンを使うとダークで明色化し破綻する
     （axe color-contrast対応。2026-09-14。値はブランド色の塗り/線トークンは変更せず、文字専用に
     追加した固定色）。 */
  --color-pr-badge-on-white-text: #1a2330; /* pr-badge-on-photo / pr-teaser-badge-wrap 用。ライトの--color-textと同値 */
  --color-teaser-cta-primary-text: #1d3557; /* airalo-teaser-cta。ライトの--color-primaryと同値(12.36:1) */
  --color-teaser-cta-best-text: #0e8345; /* wise-teaser-cta。ライトの--color-bestと同値(4.83:1) */
  /* --color-location-chip-bg(#cc6212)は白地との組み合わせ（白文字chip背景／地の文字色としての
     直接使用）のどちらも3.94:1でAA未達。アイコン塗り等の純粋な装飾用途のトークン自体は変えず、
     「白文字を乗せる濃色チップ背景」「白地に乗せる文字色」の両方に使う一段濃い同系色を追加する
     （axe color-contrast対応。2026-09-14。5.79:1）。klook-teaser-cta/affiliate-cat-chip-klook/
     各種location系チップ・ホバー文字色で使用。 */
  --color-location-chip-strong: #a34d0e;
  /* モバイルのベストレートカード用(2026-09-04 案A「明るいゴールド強調」)。背景を鮮やかなゴールドの
     グラデーションにし、王冠は白丸バッジ+濃ゴールドで浮かせる。文字は--color-on-gold(紺)。
     ゴールド系はライト/ダーク共通値のため固定でよい */
  /* ランキング2位・3位タグのメダル色(2026-09-04)。ライト/ダーク共通の固定値
     (シルバーは明るい金属調グラデ #f7f9fc→#cdd5df × 紺(縁取り#aeb9c7でカード地色#e7eef9と分離) / ブロンズ #c17a3c × 白 3.4:1(太字13px) ・ダーク地 #1a2740 上でも判別可) */
  --color-medal-silver-from: #f7f9fc;
  --color-medal-silver-to: #cdd5df;
  --color-medal-silver-edge: #aeb9c7;
  --color-on-medal-silver: #17253c;
  --color-medal-bronze-from: #dda06a;
  --color-medal-bronze-to: #b5682c;
  --color-on-medal-bronze: #ffffff;
  --color-medal-gold-from: #fbe38f;
  --color-medal-gold-to: #e8b52a;
  --color-gold-card-from: #fbe08a;
  --color-gold-card-to: #f0c64a;
  --color-gold-border: #d9a521;
  --color-gold-icon: #c98a00;

  /* --- On-primary text: --color-primary背景（ボタン等）上の文字色。ダークでは--color-primaryが
     明色（#8fb4e3）に反転するため、on-primaryもテーマ対応させる（2026-09 ガイド機能追加時に新設。
     既存の他ボタン（control-bar-map-cta等）は影響範囲外のため据え置き）。 --- */
  --color-on-primary: #ffffff;

  /* --- On-best text: --color-best（レビュー指摘: ダークの#3ecf8e×白は2.07:1でNG）背景上の文字色。
     テーマごとにcolor-bestの明度が反転するため、on-bestもテーマ対応させる（ダークは背景上で読める濃色）。 --- */
  --color-on-best: #ffffff;

  /* --- On-teal text: --color-teal（ダークの#6fb3bd×白は2.37:1でNG）背景上の文字色。
     --color-on-best/--color-on-primaryと同じ理由でテーマ対応させる（axe color-contrast対応。2026-09-14）。 --- */
  --color-on-teal: #ffffff;

  /* --- Best-text: --color-best(#0e8345)を小さめ文字(12〜13px)で薄い背景(#ebf1f2/#f4f6f9/#faf0d4)に
     使う箇所（area-page-card-branch-badge/-status-best/freshness-badge fresh/guide-page-live/
     em[data-method=revolut]等）が4.22〜4.45:1でAA(4.5:1)未達だったため、文字専用に少し濃い値を追加する。
     --color-bestそのもの（金額強調等の大きい文字・グラフ線等）は変更しない。ダークの#3ecf8eは
     対象背景（#16202f/#0e1420）で8.21/9.23:1と余裕があるためそのまま使う（axe対応。2026-09-14）。 --- */
  --color-best-text: #0d7d42;

  /* --- Teal-deep-text: --color-teal-deep(#23606a固定・ダーク上書きなし)を薄い/白系背景の文字色に
     使う分には問題ないが、ダーク時にページ本体の暗背景（--color-surface #16202f・--color-bg #0e1420）
     の上でそのまま使うと2.3〜2.59:1に破綻する（station-sister-eyebrow/-names-row-walk・
     not-found-page-cta・news-page-filter-labelで発生）。--color-teal-deep自体は各所で
     背景色としても使われ続けるため値は変えず、文字用にテーマ追従する専用トークンを追加する
     （axe color-contrast対応。2026-09-14。ダークは--color-teal暗色値を流用、暗背景で7.77:1）。 --- */
  --color-teal-deep-text: #23606a;

  /* --- On-loss text: --color-loss背景（差額チップ）上の固定白文字が、ダークの#e08a6aで
     2.62:1に破綻するため、--color-on-best/--color-on-primaryと同じ理由でテーマ対応させる
     （axe color-contrast対応。2026-09-14）。 --- */
  --color-on-loss: #ffffff;

  /* --- ランキング上位カードの店名ラベル帯（実装追加分）: ネイビー×白は廃止し、
     各カードの背景色（1位=ゴールド系tint / 2-3位=ブルーグレー系tint）に馴染む濃色トーンにする。
     コントラストは4.5:1以上を確保（帯背景×文字色。検証済み: 光9.52/10.63・暗7.98/6.33）。 --- */
  --color-label-gold-bg: #e9c964;
  --color-label-gold-text: var(--color-on-gold);
  --color-label-blue-bg: #c9d8ec;
  /* 1〜3位カード店名帯の hover 色(同系で一段濃く。2026-09-03) */
  --color-label-gold-hover-bg: #d9ae2f;
  --color-label-blue-hover-bg: #a9c0e0;
  --color-label-blue-text: var(--color-on-gold);

  /* --- Radius: 最大6px。8px超・pill禁止 --- */
  --radius-sm: 4px; /* ボタン・入力・バッジ・タグ */
  --radius-md: 6px; /* テーブル・カード外枠 */

  /* --- Spacing: 4pxグリッド --- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* --- Row height --- */
  --row-height: 44px;
  --row-height-mobile: 48px;

  /* --- Typography scale ---
     現行コンポーネントで使われている値をそのままトークン化（視覚回帰防止）。
     5段階のスケールに収まらない一部の値（0.6875rem/0.8125rem/1rem/1.125rem等）は
     使用箇所が少なく無理に統合すると表示が変わるため、直値のまま据え置いている。 */
  --font-size-xs: 0.75rem; /* ラベル・メタ情報 */
  --font-size-sm: 0.875rem; /* ボタン・入力・テーブル行の既定サイズ */
  --font-size-md: 0.9375rem; /* 本文・イントロ文 */
  --font-size-lg: 1.0625rem; /* サブ見出し */
  --font-size-xl: 1.375rem; /* ページタイトル */

  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* --- Shadow: 1段のみ --- */
  --shadow-1: 0 1px 3px var(--color-shadow);
  /* エリア切替パネル用の強めシャドウ（2026-08-31追加。Main.dc.html準拠）。ライト/ダーク両方で定義。 */
  --shadow-2: 0 8px 28px rgba(16, 24, 40, 0.16);

  /* --- Motion --- */
  --transition-fast: 150ms ease;

  /* --- Breakpoint (JS/CSSコメント用の参照値。実際のメディアクエリには直値を使用) --- */
  --breakpoint-mobile: 640px;
}

/* ダーク配色を1箇所にまとめ、OS追従（prefers-color-scheme）と手動切替（data-theme）の両方から参照する */
@media (prefers-color-scheme: dark) {
  /* :root[data-theme="light"] が明示指定されている間はOS設定によるダーク化を打ち消す */
  :root:not([data-theme="light"]) {
    --color-bg: #0e1420;
    --color-bg-subtle: #1a2434;
    --color-border: #24324a;
    --color-text: #e8edf5;
    --color-text-muted: #93a3bd;

    --color-primary: #8fb4e3;
    --color-primary-strong: #aecbf0;

    --color-accent-gold: #f0c64a;
    --color-accent-gold-soft: #d9c078;
  --color-card-best-bg: #201d12;
  --color-location-chip-bg: #cc6212;
  --color-location-chip-text: #ffffff;
  --color-card-rank-bg: #1a2740; --color-card-rank-border: #2e3f5e;
  --color-card-bronze-bg: #261b12; --color-card-bronze-border: #4a3524;
  --color-label-bronze-bg: #6b4a2c; --color-label-bronze-hover-bg: #7d583a; --color-label-bronze-text: #e8edf5;
    --color-card-best-bg: #201d12;
    --color-location-chip-bg: #cc6212;
    --color-location-chip-text: #ffffff;
    --color-card-rank-bg: #1a2740; --color-card-rank-border: #2e3f5e;
    --color-card-bronze-bg: #261b12; --color-card-bronze-border: #4a3524;
    --color-label-bronze-bg: #6b4a2c; --color-label-bronze-hover-bg: #7d583a; --color-label-bronze-text: #e8edf5;
    --color-pr-band: #1c180d;
    --color-pr-border: #463d1e;

    --color-best: #3ecf8e;
    --color-best-bg: rgba(62, 207, 142, 0.08);
    --color-on-best: #0b2b1d; /* #3ecf8e×白は2.07:1でNGのため濃緑系に切替 */
    --color-best-text: #3ecf8e;
    --color-teal-deep-text: #6fb3bd;
    --color-on-loss: #142744; /* #e08a6a×白は2.62:1でNGのため紺系に切替 */

    --color-loss: #e08a6a;

    --color-teal: #6fb3bd;
    --color-on-teal: #142744; /* #6fb3bd×白は2.37:1でNGのため紺系に切替 */

    --color-freshness-fresh: #3ecf8e;
    --color-freshness-aging: #d9a13b;
    --color-freshness-stale: #7b8790;
    --color-suspect: #ef5350;
    --color-suspect-bg: rgba(239, 83, 80, 0.12);
    --color-suspect-badge-bg: var(--color-suspect);
    --color-suspect-badge-text: #0e1420;
    /* ダークは--color-freshness-aging(#d9a13b)自体で合成背景に対し約5.60:1（計算値）を確保できる
       ためライトのような濃色化は不要（W-2レビュー指摘対応）。 */
    --color-suspect-text: var(--color-suspect);

    --color-surface: #16202f;
    --color-shadow: rgba(0, 0, 0, 0.32);
    --shadow-2: 0 8px 28px rgba(0, 0, 0, 0.4);

    /* ダーク背景（--color-card-best-bg #201d12 / --color-card-rank-bg #1a2740）に
       馴染む濃色ラベル帯（検証済みコントラスト: 金7.98(×濃紺文字) / 青6.33(×明文字)） */
    --color-label-gold-bg: #d9b84a;
    --color-label-gold-text: #17253c;
    --color-label-blue-bg: #3a5586;
    --color-label-gold-hover-bg: #c9a53a;
    --color-label-blue-hover-bg: #4a6aa0;
    --color-label-blue-text: #e8edf5;
    --color-on-station-best: #e8edf5;

    --color-on-primary: var(--color-bg);
  }
}

:root[data-theme="dark"] {
  --color-bg: #0e1420;
  --color-bg-subtle: #1a2434;
  --color-border: #24324a;
  --color-text: #e8edf5;
  --color-text-muted: #93a3bd;

  --color-primary: #8fb4e3;
  --color-primary-strong: #aecbf0;

  --color-accent-gold: #f0c64a;
  --color-accent-gold-soft: #d9c078;
  /* 2026-09 ガイド機能追加時に判明した既存の抜け漏れを修正: 以下4トークンは@media
     (prefers-color-scheme: dark)側にのみ定義されており、手動data-theme="dark"切替時は
     ライト値のまま（明色背景に明色文字が乗り視認不能になる不具合）だった。OS追従側と同一値で追記する。 */
  --color-card-best-bg: #201d12;
  --color-location-chip-bg: #cc6212;
  --color-location-chip-text: #ffffff;
  --color-card-rank-bg: #1a2740;
  --color-card-rank-border: #2e3f5e;
  --color-card-bronze-bg: #261b12; --color-card-bronze-border: #4a3524;
  --color-label-bronze-bg: #6b4a2c; --color-label-bronze-hover-bg: #7d583a; --color-label-bronze-text: #e8edf5;
  --color-pr-band: #1c180d;
  --color-pr-border: #463d1e;

  --color-best: #3ecf8e;
  --color-best-bg: rgba(62, 207, 142, 0.08);
  --color-on-best: #0b2b1d; /* #3ecf8e×白は2.07:1でNGのため濃緑系に切替 */
  --color-best-text: #3ecf8e;
  --color-teal-deep-text: #6fb3bd;
  --color-on-loss: #142744; /* #e08a6a×白は2.62:1でNGのため紺系に切替 */

  --color-on-primary: var(--color-bg);

  --color-loss: #e08a6a;

  --color-teal: #6fb3bd;
  --color-on-teal: #142744; /* #6fb3bd×白は2.37:1でNGのため紺系に切替 */

  --color-freshness-fresh: #3ecf8e;
  --color-freshness-aging: #d9a13b;
  --color-freshness-stale: #7b8790;
  --color-suspect: #ef5350;
  --color-suspect-bg: rgba(239, 83, 80, 0.12);
  --color-suspect-badge-bg: var(--color-suspect);
  --color-suspect-badge-text: #0e1420;
  /* ダークは--color-freshness-aging(#d9a13b)自体で合成背景に対し約5.60:1（計算値）を確保できる
     ためライトのような濃色化は不要（W-2レビュー指摘対応）。 */
  --color-suspect-text: var(--color-suspect);

  --color-surface: #16202f;
  --color-shadow: rgba(0, 0, 0, 0.32);
  --shadow-2: 0 8px 28px rgba(0, 0, 0, 0.4);

  --color-label-gold-bg: #d9b84a;
  --color-label-gold-text: #17253c;
  --color-label-blue-bg: #3a5586;
  --color-label-gold-hover-bg: #c9a53a;
  --color-label-blue-hover-bg: #4a6aa0;
  --color-label-blue-text: #e8edf5;
  --color-on-station-best: #e8edf5;
}

* {
  box-sizing: border-box;
}

/* 修正必須項目13: サイト標準仕様。ヘッダー実高トークン（ヘッダーはposition:staticだが、
   アンカージャンプ時に視認性を確保するため常にヘッダー分+16pxの余白を空ける）。
   ブレークポイントは site-header-inner のpaddingが変わる箇所(767px/640px)に合わせる。 */
:root {
  --header-h: 84px;
}
@media (max-width: 1024px) {
  :root { --header-h: 68px; }
}
@media (max-width: 640px) {
  :root { --header-h: 60px; }
}

/* アンカーはスムーススクロール+ヘッダー分オフセットが標準（全ページ・全id共通）。 */
html {
  scroll-behavior: smooth;
}
[id] {
  scroll-margin-top: calc(var(--header-h) + 16px);
}

/* hoverは0.2sフェードが標準（既存の個別:hover色定義と併用。transitionのみ共通化し、
   色そのものは各コンポーネントの既存定義に委ねる＝重複するtransition宣言の一本化）。 */
a,
button,
.jump-nav-tile,
.jump-nav-mobile-item,
.rate-trend-pill,
.news-page-chip,
.news-home-item,
.footer-link,
.control-bar-map-cta {
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

/* 追加指摘19: 「ページトップへ」ボタン（全ページ共通・layout.php）。 */
.back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--color-teal);
  color: var(--color-on-teal);
  box-shadow: var(--shadow-1);
  /* JS無効時は常時表示（href="#top"のみで機能する）。JS有効時はcommon.jsが
     .back-to-top-hiddenを付け外ししてスクロール量400px連動の表示制御に切り替える。 */
  opacity: 1;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}
.back-to-top-hidden {
  opacity: 0;
  pointer-events: none;
}
.back-to-top:hover {
  background: var(--color-teal-deep);
}
@media (max-width: 767px) {
  .back-to-top {
    right: 16px;
    bottom: 16px;
    width: 40px;
    height: 40px;
  }
}

html,
body {
  padding: 0;
  margin: 0;
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family:
    var(--font-manrope),
    var(--font-zen-kaku),
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* 数字はタブラー数字必須（設計doc §6） */
.tabular-nums,
table {
  font-variant-numeric: tabular-nums;
}

/*
 * 共通アウトラインボタン（「公式サイト」「マップで確認」等の短いCTA用）。
 * RankingCards（トップのランキング帯）で確立したスタイルを全ページ共通化したもの。
 * area/station のレート表・カードリスト、compare の詳細CTAから参照する。
 */
.pill-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-primary);
  background: var(--color-surface);
  text-decoration: none;
  white-space: nowrap;
}

.pill-link:hover {
  background: var(--color-bg-subtle);
}

/* hover を伴う共通要素は 0.2s フェード(2026-09-03 ユーザー指示: hover はすべてフェード) */
.pill-link,
.site-header-link,
.footer-link,
.guide-page-main a,
.guides-page-main a,
.home-columns-card,
.related-columns-card,
.guide-page-sidebar-guide-list-row {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}


/* ---------- 2. fonts.css ---------- */
/**
 * フォントファミリー変数の実体定義 + 自己ホスト@font-face群。
 * next/font（web/app/[locale]/layout.tsx の Manrope/Zen_Kaku_Gothic_New）と同一ウェイト構成
 * （Manrope 500/600/700/800・Zen Kaku Gothic New 500/700）を Google Fonts CSS API から取得し、
 * GDPR対応（閲覧者IPのGoogleサーバー送信を避ける）のため woff2 を自己ホスト化したもの
 * （generator/assets/public/fonts/ に配置、layout.php からの Google Fonts <link> は撤去済み）。
 * unicode-range はGoogle Fonts生成時のまま維持しており、ブラウザは実際に使用する文字を含む
 * サブセットのみをダウンロードするため、素朴な結合フォントより転送量は増えない。
 * 再取得手順（フォント更新時）: curl -A "<モダンUAのChrome想定文字列>" \
 *   "https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Zen+Kaku+Gothic+New:wght@500;700&display=swap"
 */
:root {
  --font-manrope: "Manrope", sans-serif;
  --font-zen-kaku: "Zen Kaku Gothic New", sans-serif;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/manrope-500-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/manrope-600-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/manrope-700-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/manrope-800-latin.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-001.woff2) format('woff2');
  unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-002.woff2) format('woff2');
  unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-003.woff2) format('woff2');
  unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-004.woff2) format('woff2');
  unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-005.woff2) format('woff2');
  unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-006.woff2) format('woff2');
  unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-007.woff2) format('woff2');
  unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-008.woff2) format('woff2');
  unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-009.woff2) format('woff2');
  unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-010.woff2) format('woff2');
  unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-011.woff2) format('woff2');
  unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-012.woff2) format('woff2');
  unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-013.woff2) format('woff2');
  unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-014.woff2) format('woff2');
  unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-015.woff2) format('woff2');
  unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-016.woff2) format('woff2');
  unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-017.woff2) format('woff2');
  unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-018.woff2) format('woff2');
  unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-019.woff2) format('woff2');
  unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-020.woff2) format('woff2');
  unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-021.woff2) format('woff2');
  unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-022.woff2) format('woff2');
  unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-023.woff2) format('woff2');
  unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-024.woff2) format('woff2');
  unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-025.woff2) format('woff2');
  unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-026.woff2) format('woff2');
  unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-027.woff2) format('woff2');
  unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-028.woff2) format('woff2');
  unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-029.woff2) format('woff2');
  unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-030.woff2) format('woff2');
  unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-031.woff2) format('woff2');
  unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-032.woff2) format('woff2');
  unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-033.woff2) format('woff2');
  unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-034.woff2) format('woff2');
  unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-035.woff2) format('woff2');
  unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-036.woff2) format('woff2');
  unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-037.woff2) format('woff2');
  unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-038.woff2) format('woff2');
  unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-039.woff2) format('woff2');
  unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-040.woff2) format('woff2');
  unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-041.woff2) format('woff2');
  unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-042.woff2) format('woff2');
  unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-043.woff2) format('woff2');
  unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-044.woff2) format('woff2');
  unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-045.woff2) format('woff2');
  unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-046.woff2) format('woff2');
  unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-047.woff2) format('woff2');
  unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-048.woff2) format('woff2');
  unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-049.woff2) format('woff2');
  unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-050.woff2) format('woff2');
  unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-051.woff2) format('woff2');
  unicode-range: U+32b5-332b, U+332d-3394;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-052.woff2) format('woff2');
  unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-053.woff2) format('woff2');
  unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-054.woff2) format('woff2');
  unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-055.woff2) format('woff2');
  unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-056.woff2) format('woff2');
  unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-057.woff2) format('woff2');
  unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-058.woff2) format('woff2');
  unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-059.woff2) format('woff2');
  unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-060.woff2) format('woff2');
  unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-061.woff2) format('woff2');
  unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-062.woff2) format('woff2');
  unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-063.woff2) format('woff2');
  unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-064.woff2) format('woff2');
  unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-065.woff2) format('woff2');
  unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-066.woff2) format('woff2');
  unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-067.woff2) format('woff2');
  unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-068.woff2) format('woff2');
  unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-069.woff2) format('woff2');
  unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-070.woff2) format('woff2');
  unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-071.woff2) format('woff2');
  unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-072.woff2) format('woff2');
  unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-073.woff2) format('woff2');
  unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-074.woff2) format('woff2');
  unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-075.woff2) format('woff2');
  unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-076.woff2) format('woff2');
  unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-077.woff2) format('woff2');
  unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-078.woff2) format('woff2');
  unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-079.woff2) format('woff2');
  unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-080.woff2) format('woff2');
  unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-081.woff2) format('woff2');
  unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-082.woff2) format('woff2');
  unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-083.woff2) format('woff2');
  unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-084.woff2) format('woff2');
  unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-085.woff2) format('woff2');
  unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-086.woff2) format('woff2');
  unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-087.woff2) format('woff2');
  unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-088.woff2) format('woff2');
  unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-089.woff2) format('woff2');
  unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-090.woff2) format('woff2');
  unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-091.woff2) format('woff2');
  unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-092.woff2) format('woff2');
  unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-093.woff2) format('woff2');
  unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-094.woff2) format('woff2');
  unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-095.woff2) format('woff2');
  unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-096.woff2) format('woff2');
  unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-097.woff2) format('woff2');
  unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-098.woff2) format('woff2');
  unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-099.woff2) format('woff2');
  unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-100.woff2) format('woff2');
  unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-101.woff2) format('woff2');
  unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-102.woff2) format('woff2');
  unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-103.woff2) format('woff2');
  unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-104.woff2) format('woff2');
  unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-105.woff2) format('woff2');
  unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-106.woff2) format('woff2');
  unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-107.woff2) format('woff2');
  unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-108.woff2) format('woff2');
  unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-109.woff2) format('woff2');
  unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-110.woff2) format('woff2');
  unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-111.woff2) format('woff2');
  unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-112.woff2) format('woff2');
  unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-113.woff2) format('woff2');
  unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-114.woff2) format('woff2');
  unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-115.woff2) format('woff2');
  unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-116.woff2) format('woff2');
  unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-117.woff2) format('woff2');
  unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-118.woff2) format('woff2');
  unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-119.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-120.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/zen-kaku-500-121.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: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-122.woff2) format('woff2');
  unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-123.woff2) format('woff2');
  unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-124.woff2) format('woff2');
  unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-125.woff2) format('woff2');
  unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-126.woff2) format('woff2');
  unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-127.woff2) format('woff2');
  unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-128.woff2) format('woff2');
  unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-129.woff2) format('woff2');
  unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-130.woff2) format('woff2');
  unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-131.woff2) format('woff2');
  unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-132.woff2) format('woff2');
  unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-133.woff2) format('woff2');
  unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-134.woff2) format('woff2');
  unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-135.woff2) format('woff2');
  unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-136.woff2) format('woff2');
  unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-137.woff2) format('woff2');
  unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-138.woff2) format('woff2');
  unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-139.woff2) format('woff2');
  unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-140.woff2) format('woff2');
  unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-141.woff2) format('woff2');
  unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-142.woff2) format('woff2');
  unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-143.woff2) format('woff2');
  unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-144.woff2) format('woff2');
  unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-145.woff2) format('woff2');
  unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-146.woff2) format('woff2');
  unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-147.woff2) format('woff2');
  unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-148.woff2) format('woff2');
  unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-149.woff2) format('woff2');
  unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-150.woff2) format('woff2');
  unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-151.woff2) format('woff2');
  unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-152.woff2) format('woff2');
  unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-153.woff2) format('woff2');
  unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-154.woff2) format('woff2');
  unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-155.woff2) format('woff2');
  unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-156.woff2) format('woff2');
  unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-157.woff2) format('woff2');
  unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-158.woff2) format('woff2');
  unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-159.woff2) format('woff2');
  unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-160.woff2) format('woff2');
  unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-161.woff2) format('woff2');
  unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-162.woff2) format('woff2');
  unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-163.woff2) format('woff2');
  unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-164.woff2) format('woff2');
  unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-165.woff2) format('woff2');
  unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-166.woff2) format('woff2');
  unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-167.woff2) format('woff2');
  unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-168.woff2) format('woff2');
  unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-169.woff2) format('woff2');
  unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-170.woff2) format('woff2');
  unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-171.woff2) format('woff2');
  unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-172.woff2) format('woff2');
  unicode-range: U+32b5-332b, U+332d-3394;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-173.woff2) format('woff2');
  unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-174.woff2) format('woff2');
  unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-175.woff2) format('woff2');
  unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-176.woff2) format('woff2');
  unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-177.woff2) format('woff2');
  unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-178.woff2) format('woff2');
  unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-179.woff2) format('woff2');
  unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-180.woff2) format('woff2');
  unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-181.woff2) format('woff2');
  unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-182.woff2) format('woff2');
  unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-183.woff2) format('woff2');
  unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-184.woff2) format('woff2');
  unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-185.woff2) format('woff2');
  unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-186.woff2) format('woff2');
  unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-187.woff2) format('woff2');
  unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-188.woff2) format('woff2');
  unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-189.woff2) format('woff2');
  unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-190.woff2) format('woff2');
  unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-191.woff2) format('woff2');
  unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-192.woff2) format('woff2');
  unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-193.woff2) format('woff2');
  unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-194.woff2) format('woff2');
  unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-195.woff2) format('woff2');
  unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-196.woff2) format('woff2');
  unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-197.woff2) format('woff2');
  unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-198.woff2) format('woff2');
  unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-199.woff2) format('woff2');
  unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-200.woff2) format('woff2');
  unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-201.woff2) format('woff2');
  unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-202.woff2) format('woff2');
  unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-203.woff2) format('woff2');
  unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-204.woff2) format('woff2');
  unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-205.woff2) format('woff2');
  unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-206.woff2) format('woff2');
  unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-207.woff2) format('woff2');
  unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-208.woff2) format('woff2');
  unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-209.woff2) format('woff2');
  unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-210.woff2) format('woff2');
  unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-211.woff2) format('woff2');
  unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-212.woff2) format('woff2');
  unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-213.woff2) format('woff2');
  unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-214.woff2) format('woff2');
  unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-215.woff2) format('woff2');
  unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-216.woff2) format('woff2');
  unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-217.woff2) format('woff2');
  unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-218.woff2) format('woff2');
  unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-219.woff2) format('woff2');
  unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-220.woff2) format('woff2');
  unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-221.woff2) format('woff2');
  unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-222.woff2) format('woff2');
  unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-223.woff2) format('woff2');
  unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-224.woff2) format('woff2');
  unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-225.woff2) format('woff2');
  unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-226.woff2) format('woff2');
  unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-227.woff2) format('woff2');
  unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-228.woff2) format('woff2');
  unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-229.woff2) format('woff2');
  unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-230.woff2) format('woff2');
  unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-231.woff2) format('woff2');
  unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-232.woff2) format('woff2');
  unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-233.woff2) format('woff2');
  unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-234.woff2) format('woff2');
  unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-235.woff2) format('woff2');
  unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-236.woff2) format('woff2');
  unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-237.woff2) format('woff2');
  unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-238.woff2) format('woff2');
  unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-239.woff2) format('woff2');
  unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-240.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-241.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/zen-kaku-700-242.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;
}


/* ---------- 3. コンポーネント/ページ ---------- */

/* ===== web/components/CompareTop.module.css (prefix: compare-top-*) ===== */
.compare-top-main {
  min-height: 100vh;
  padding-bottom: var(--space-8);
}

/* ランキング直下の注記（各社公表の共通レートであり支店により異なる場合がある旨）。
   ranking-cards-wrapper と同じ1440px/56px幅に揃える。 */
.compare-top-branch-rate-notice {
  max-width: 1440px;
  margin: var(--space-5) auto 0;
  padding: 0 56px;
  color: var(--color-text);
  font-size: var(--font-size-sm);
  line-height: 1.7;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .compare-top-branch-rate-notice {
    padding: 0 24px;
  }
}

@media (max-width: 640px) {
  .compare-top-branch-rate-notice {
    padding: 0 var(--space-3);
  }
}


/* ===== web/components/ControlBar.module.css (prefix: control-bar-*) ===== */
.control-bar-wrapper {
  max-width: 1440px;
  margin: -60px auto 0;
  padding: 0 56px;
  position: relative;
  z-index: 5;
}

.control-bar-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 22px 26px;
}

.control-bar-primary-row {
  display: flex;
  align-items: center;
  gap: 18px;
}

.control-bar-divider {
  align-self: center;
  width: 1px;
  height: 46px;
  background: var(--color-border);
  flex-shrink: 0;
}

.control-bar-field {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}

.control-bar-field-grow {
  flex: 1;
  min-width: 0;
}

/* モックのflex配分: エリア1.1 / 金額1 / 通貨ペア1 */
.control-bar-field-area {
  flex: 1.1;
  min-width: 0;
}

.control-bar-label {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  font-weight: var(--font-weight-medium);
  margin-bottom: 5px;
}

.control-bar-field-caption {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  margin-top: 3px;
}

/* 表示エリア/通貨ペア: 実selectを透明オーバーレイにして重ね、可視部分はカスタム表示にする */
.control-bar-select-value {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}

.control-bar-select-text {
  font-size: 1.1875rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.control-bar-pin-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.control-bar-chevron {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.control-bar-hidden-select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  border: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  appearance: none;
  /* iOS Safariの自動ズーム抑止にはcomputed font-sizeが16px以上必要（不可視でも実際のselectに適用する必要がある） */
  font-size: max(1rem, var(--font-size-md));
}

.control-bar-hidden-select:disabled {
  cursor: default;
}

/* 編集可能であることを示す下線+鉛筆。focusで下線がprimaryに */
.control-bar-amount-row {
  border-bottom: 2px solid var(--color-border);
  padding-bottom: 2px;
  cursor: text;
  position: relative;

  display: flex;
  align-items: baseline;
  gap: 2px;
}

.control-bar-ccy-symbol {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-text);
}

.control-bar-amount-input {
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 0;
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--color-text);
  background: transparent;
  font-variant-numeric: tabular-nums;
  width: 100%;
  min-width: 0;
}

.control-bar-amount-row:focus-within {
  border-bottom-color: var(--color-primary);
}

.control-bar-amount-input:focus {
  outline: none;
}

.control-bar-edit-icon {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-muted);
  display: inline-flex;
}

.control-bar-cta-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}

.control-bar-map-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: var(--radius-md);
  padding: 14px 22px;
  /* 「両替所マップを見る」(9文字)/「近くの両替所」(6文字)の出し分けでボタン幅が跳ねないよう固定する */
  min-width: 200px;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-on-primary);
  background: var(--color-primary);
  text-decoration: none;
  white-space: nowrap;
}

.control-bar-map-cta:hover {
  background: var(--color-primary-strong);
}

.control-bar-cta-hint {
  max-width: 240px;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  text-align: right;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .control-bar-wrapper {
    padding: 0 24px;
  }
}

/* モバイル（追加修正16）: 横並び+縦区切り線をやめ、フィールドを縦積み1列にする。
   各フィールドは自身の下端に横罫線を持たせて区切る（区切り線1本ずつ）。 */
@media (max-width: 640px) {
  .control-bar-wrapper {
    margin-top: -40px;
    padding: 0 var(--space-3);
  }

  .control-bar-card {
    padding: 0;
  }

  .control-bar-primary-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .control-bar-divider {
    display: none;
  }

  .control-bar-field,
  .control-bar-field-area,
  .control-bar-field-grow {
    flex: none;
    width: 100%;
    min-width: 0;
    padding: 16px;
    border-bottom: 1px solid var(--color-bg-subtle);
  }

  .control-bar-cta-cell {
    width: 100%;
    align-items: center;
    padding: 16px;
    gap: var(--space-2);
  }

  .control-bar-map-cta {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }

  .control-bar-cta-hint {
    max-width: none;
    text-align: center;
  }
}


/* ===== web/components/Footer.module.css (prefix: footer-*) ===== */
.footer-footer {
  border-top: 1px solid var(--color-border);
  background: var(--color-bg-subtle);
  margin-top: var(--space-8);
  padding: var(--space-6) var(--space-4);
}

.footer-inner {
  max-width: 1120px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
}

.footer-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.footer-heading {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.footer-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

/* エリア一覧(19都市)・駅一覧(20駅)は縦1列だと長すぎるため、横流し込みのチップ状リストにする */
.footer-area-list,
.footer-station-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  max-width: 420px;
}

.footer-link {
  font-size: var(--font-size-sm);
  color: var(--color-text);
  text-decoration: none;
}

.footer-link:hover {
  color: var(--color-primary);
}

/* 「すべての駅を見る」等、一覧ページ自体への導線を他の個別リンクより視認しやすくする */
.footer-link-strong {
  font-weight: var(--font-weight-semibold);
}

.footer-related-sites {
  max-width: 1120px;
  margin: var(--space-6) auto 0;
  font-size: var(--font-size-xs);
}

.footer-related-sites .footer-link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
}

.footer-copyright {
  max-width: 1120px;
  margin: var(--space-2) auto 0;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .footer-inner {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .footer-footer {
    padding: var(--space-4) var(--space-3);
  }

  .footer-inner {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
}


/* ===== web/components/FreshnessBadge.module.css (prefix: freshness-badge-*) ===== */
.freshness-badge-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.freshness-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%; /* アイコンボタン等の円形は許可対象（角丸4/6pxルールの例外） */
  background: var(--color-freshness-fresh);
  flex-shrink: 0;
}

.freshness-badge-badge[data-freshness="aging"] .freshness-badge-dot {
  background: var(--color-freshness-aging);
}

.freshness-badge-badge[data-freshness="stale"] .freshness-badge-dot {
  background: var(--color-freshness-stale);
}

/* stale時のみ軽い強調（設計doc §6） */
.freshness-badge-badge[data-freshness="stale"] {
  font-weight: var(--font-weight-medium);
}

/* 外れ値ガード「要確認」バッジ（2026-09-03〜。RateValidator検出行専用。鮮度バッジと同系の
   小バッジだが独立コンポーネントにする＝鮮度バッジは常に1個/行だが、本バッジは追加で
   併記される場合があるため）。角丸は--radius-sm(4px)固定・ピル形状にしない。 */
/* 要確認バッジ: 赤系ベタ塗り(--color-loss)+余白を確保して視認性を優先(2026-09-03 ユーザー指摘)。角丸は規定の --radius-sm(4px) */
.suspect-badge-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: 0.04em;
  font-weight: var(--font-weight-bold);
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  background: var(--color-suspect-badge-bg);
  color: var(--color-suspect-badge-text);
  white-space: nowrap;
}


/* ===== web/components/Hero.module.css (prefix: hero-*) ===== */
.hero-hero {
  /* クリーンなネイビー地。写真は右側フェード配置(.heroPhoto)で全面暗幕にしない */
  background: linear-gradient(165deg, #22395f 0%, var(--color-header-bg) 55%);
  position: relative;
  overflow: hidden;
  padding: 40px 56px 100px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-6);
  /* 背景スカイライン(装飾)の基準 */
  position: relative;
  overflow: hidden;
}

/* ワット・アルン夕景(Pexels・商用可/帰属不要)。右端は鮮明、左へネイビーに溶けるフェード配置 */
.hero-hero-photo {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 62%;
  -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.92) 18%, transparent 92%);
  mask-image: linear-gradient(to left, rgba(0, 0, 0, 0.92) 18%, transparent 92%);
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}

/* 3枚のバンコク写真をゆっくりクロスフェード(24秒周期・CSSのみ) */
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  animation: heroFade 24s ease-in-out infinite;
}

/*
 * LCP最適化: 各画像はWebP(軽量)+JPEG(フォールバック)の2レイヤーで指定する。
 * image-set()未対応ブラウザは後勝ちの無効値を無視し、直前のurl()宣言(JPEG)を保持する
 * (CSSプロパティは1つでも不正な値を含む宣言全体が無視されるため、これが標準的な代替手段)。
 * 1枚目(hero-1)のみhome.php($preloads)でpreload(fetchPriority=high)しLCPを優先的に読み込む。
 * 2・3枚目は即時読込のままCSSで軽量化のみ対応(background-imageはpreloadなしでも
 * 1枚目よりリクエスト優先度が下がるため、追加のJS遅延読込は行わない)。
 */
.hero-slide1 {
  background-position: right 52%;
  background-size: auto 155%;
  background-repeat: no-repeat;
  background-image: url("/hero-1.jpg");
  background-image: -webkit-image-set(url("/hero-1.webp") 1x);
  background-image: image-set(url("/hero-1.webp") type("image/webp") 1x, url("/hero-1.jpg") type("image/jpeg") 1x);
  animation-name: heroFadeFirst;
}
.hero-slide2 {
  background-position: center 30%;
  background-size: cover;
  background-repeat: no-repeat;
  background-image: url("/hero-2.jpg");
  background-image: -webkit-image-set(url("/hero-2.webp") 1x);
  background-image: image-set(url("/hero-2.webp") type("image/webp") 1x, url("/hero-2.jpg") type("image/jpeg") 1x);
  animation-delay: 8s;
}
.hero-slide3 {
  background-position: 60% 45%;
  background-size: cover;
  background-repeat: no-repeat;
  background-image: url("/hero-3.jpg");
  background-image: -webkit-image-set(url("/hero-3.webp") 1x);
  background-image: image-set(url("/hero-3.webp") type("image/webp") 1x, url("/hero-3.jpg") type("image/jpeg") 1x);
  animation-delay: 16s;
}

@keyframes heroFade {
  0% { opacity: 0; }
  8% { opacity: 1; }
  33.3% { opacity: 1; }
  41.3% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes heroFadeFirst {
  0% { opacity: 1; }
  33.3% { opacity: 1; }
  41.3% { opacity: 0; }
  92% { opacity: 0; }
  100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide { animation: none; }
  .hero-slide1 { opacity: 1; }
}

.hero-hero > :not(.hero-hero-photo) {
  position: relative;
  z-index: 1;
}

.hero-hero-content {
  position: relative;
}

.hero-inner {
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 48px;
}

.hero-copy {
  max-width: 640px;
}

.hero-title {
  margin: 0 0 var(--space-3);
  font-size: 2.125rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
  line-height: 1.5;
}

.hero-title-accent {
  color: var(--color-accent-gold);
}

.hero-lead {
  margin: 0;
  font-size: 1rem;
  color: var(--color-header-text-muted);
  line-height: 1.9;
}

/* ヒーロー直下の免責(2026-09-03 ユーザー指示): 公表値の機械取得・店頭掲示優先 */
.hero-disclaimer {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-header-text-subtle);
}

.hero-disclaimer-badge {
  display: inline-block;
  margin-right: 8px;
  padding: 1px 6px;
  border: 1px solid var(--color-header-border);
  border-radius: var(--radius-sm);
  font-size: 11px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.04em;
  color: var(--color-header-text-muted);
  vertical-align: 1px;
}

.hero-panel {
  flex-shrink: 0;
  /* すりガラス: 背後の写真がうっすら透ける */
  background: rgba(16, 30, 54, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--color-header-border);
  border-radius: var(--radius-md);
  padding: 20px 26px;
  min-width: 280px;
}

.hero-live-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.hero-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%; /* アイコンの円形は角丸ルールの例外（設計doc §6） */
  background: var(--color-header-live-dot);
  flex-shrink: 0;
  animation: pulse 2s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .hero-live-dot {
    animation: none;
  }
}

.hero-live-label {
  color: var(--color-header-live-dot);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
}

.hero-updated-row {
  display: flex;
  align-items: center;
  color: #ffffff;
  font-size: var(--font-size-md);
  margin-bottom: var(--space-2);
}

.hero-updated-time {
  font-size: 1.625rem;
  font-weight: 800;
  margin-left: var(--space-2);
}

.hero-updated-tz-note {
  color: var(--color-header-text-subtle);
  font-size: var(--font-size-xs);
  margin-left: var(--space-2);
}

.hero-cadence {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  color: var(--color-header-text-subtle);
  font-size: var(--font-size-sm);
}

/* 「15分ごと自動収集」を次回更新時刻から視覚的に分離するラベル風チップ（ヒーローの暗い背景向け配色） */
.hero-cadence-chip {
  display: inline-flex;
  align-items: center;
  margin-left: var(--space-2);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-header-text-subtle);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  padding: 2px var(--space-2);
}

/* 時計アイコン（追加修正17）: currentColor継承で行の色にそのまま追従する */
.hero-row-icon {
  flex-shrink: 0;
  margin-right: 6px;
}

.hero-notice {
  color: var(--color-header-text-subtle);
  font-size: var(--font-size-xs);
  line-height: 1.6;
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-header-border);
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.4;
    transform: scale(0.8);
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  .hero-hero {
    padding: 40px 24px 100px;
  }
}

/* モバイル（追加修正16）: 縦積み・見出し縮小・ライブパネルはフル幅 */
@media (max-width: 640px) {
  .hero-hero {
    padding: 24px var(--space-3) 72px;
  }

  .hero-inner {
    flex-direction: column;
    gap: var(--space-4);
  }

  .hero-title {
    /* 2026-09-04 ユーザー指示: 狭幅で各文が折り返さないよう画面幅に追従させる。
       最長行は JA「受取バーツ額で比べれば迷わない。」15.96em / EN「Best exchange rates in Thailand?」15.90em
       (headless実測)。利用幅=100vw-左右padding24px を 16.1em で割った値を上限24pxでキャップ
       (360px→20.9px・340px→19.6px・390px→22.7px・412px以上→24px) */
    font-size: min(1.5rem, calc((100vw - 24px) / 16.1));
    line-height: 1.45;
  }

  .hero-lead {
    font-size: 0.875rem;
    line-height: 1.5;
  }

  .hero-panel {
    width: 100%;
    min-width: 0;
  }

  /* LCP最適化: モバイルはPC用(64-134KB)ではなく750px幅の軽量画像(20-60KB)を使う。
     PC版と同じ3段構成(jpg→webp単体→image-set)でWebP未対応ブラウザにJPEGフォールバックする */
  .hero-slide1 {
    background-image: url("/hero-1-mobile.jpg");
    background-image: -webkit-image-set(url("/hero-1-mobile.webp") 1x);
    background-image: image-set(url("/hero-1-mobile.webp") type("image/webp") 1x, url("/hero-1-mobile.jpg") type("image/jpeg") 1x);
  }
  .hero-slide2 {
    background-image: url("/hero-2-mobile.jpg");
    background-image: -webkit-image-set(url("/hero-2-mobile.webp") 1x);
    background-image: image-set(url("/hero-2-mobile.webp") type("image/webp") 1x, url("/hero-2-mobile.jpg") type("image/jpeg") 1x);
  }
  .hero-slide3 {
    background-image: url("/hero-3-mobile.jpg");
    background-image: -webkit-image-set(url("/hero-3-mobile.webp") 1x);
    background-image: image-set(url("/hero-3-mobile.webp") type("image/webp") 1x, url("/hero-3-mobile.jpg") type("image/jpeg") 1x);
  }
}


/* ===== web/components/LanguageSwitcher.module.css (prefix: language-switcher-*) ===== */
.language-switcher-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.language-switcher-chip {
  pointer-events: none;
  border: 1px solid var(--color-header-border);
  border-radius: var(--radius-sm);
  padding: 4px 12px;
  font-size: 0.8125rem;
  color: #ffffff;
  white-space: nowrap;
}

.language-switcher-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.language-switcher-hidden-label {
  position: absolute;
  inset: 0;
}

.language-switcher-select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  border: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  /* iOS Safariの自動ズーム抑止にはcomputed font-sizeが16px以上必要（不可視でも実際のselectに適用する必要がある） */
  font-size: max(1rem, var(--font-size-sm));
}

/* タップ領域44px以上（追加修正16）。チップ自体の見た目は変えずオーバーレイselectの当たり判定のみ拡張する */
@media (max-width: 640px) {
  .language-switcher-wrapper {
    min-height: 44px;
    min-width: 44px;
    justify-content: center;
  }
}


/* ===== web/components/NoteBand.module.css (prefix: note-band-*) ===== */
.note-band-band {
  max-width: 1120px;
  margin: var(--space-3) auto 0;
  padding: var(--space-2) var(--space-4);
  background: var(--color-bg-subtle);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.note-band-icon {
  color: var(--color-primary);
}

@media (max-width: 640px) {
  .note-band-band {
    margin: var(--space-2) var(--space-3) 0;
  }
}


/* ===== web/components/PrBadge.module.css (prefix: pr-badge-*) ===== */
.pr-badge-badge {
  display: inline-block;
  padding: 1px var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-size: 0.6875rem;
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.02em;
}

/* 写真背景カード（airalo-teaser/klook-teaser）上のPRバッジ: 背景に沈まないよう白背景チップに固定する */
.pr-badge-on-photo {
  font-size: 0.8125rem;
  padding: 3px 10px;
  background: #ffffff;
  border-color: #ffffff;
  color: var(--color-pr-badge-on-white-text);
}


/* ===== web/components/PrSections.module.css (prefix: pr-sections-*) ===== */
.pr-sections-section {
  background: var(--color-pr-band);
  border-top: 1px solid var(--color-pr-border);
  padding: var(--space-6) 0 var(--space-2);
  margin-top: var(--space-3);
}

.pr-sections-heading {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 var(--space-4) var(--space-1);
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.pr-sections-heading-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  margin: 0;
}

.pr-sections-heading-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.pr-sections-heading-note {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.pr-sections-method-grid {
  max-width: 1120px;
  margin: var(--space-3) auto 0;
  padding: 0 var(--space-4);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.pr-sections-method-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
}

.pr-sections-method-name {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--space-1);
}

.pr-sections-method-sub {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}

.pr-sections-method-amount {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
}

.pr-sections-method-diff-positive {
  font-size: var(--font-size-sm);
  color: var(--color-best);
  font-weight: var(--font-weight-bold);
  margin-left: var(--space-2);
}

.pr-sections-method-diff-negative {
  font-size: var(--font-size-sm);
  color: var(--color-loss);
  font-weight: var(--font-weight-bold);
  margin-left: var(--space-2);
}

.pr-sections-method-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.pr-sections-method-note {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  line-height: 1.7;
}

/* methodFooter は space-between のため、ボタンが note に押し潰されないよう固定幅にする */
.pr-sections-cta-link {
  flex-shrink: 0;
}

.pr-sections-prep-grid {
  max-width: 1120px;
  margin: var(--space-3) auto 0;
  padding: 0 var(--space-4) var(--space-6);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.pr-sections-prep-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
}

.pr-sections-prep-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  margin-bottom: 3px;
}

.pr-sections-prep-desc {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

@media (max-width: 640px) {
  .pr-sections-heading {
    padding: 0 var(--space-3) var(--space-1);
  }

  .pr-sections-method-grid,
  .pr-sections-prep-grid {
    grid-template-columns: 1fr;
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }
}


/* ===== web/components/PrTeaser.module.css (prefix: pr-teaser-*) =====
 * 2026-08-28再設計（第2版）: 写真背景カード＋補足情報の2カラム → 単一の統合帯（.pr-teaser-band）へ再統合。
 * 帯全体に写真背景（wise-teaser-card / AffiliateCards内と同一画像）を敷き、アイコン+タイトル+バッジ／
 * 差額訴求テキスト／CTAボタンを横一列（640px以下は縦積み）に並べる。
 */
.pr-teaser-wrapper {
  max-width: 1440px;
  margin: var(--space-3) auto 0;
  padding: 0 56px;
}

.pr-teaser-band {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 88px;
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-md);
  overflow: hidden;
  background-image: linear-gradient(rgba(10, 15, 25, 0.4), rgba(10, 15, 25, 0.75)), url("/cta-wise.webp");
  background-size: cover;
  background-position: center 15%;
}

.pr-teaser-heading-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 0 0 auto;
}

.pr-teaser-icon {
  flex-shrink: 0;
  color: #ffffff;
}

.pr-teaser-title {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
  white-space: nowrap;
}

.pr-teaser-badge-wrap {
  flex-shrink: 0;
}

.pr-teaser-badge-wrap .pr-badge-badge {
  font-size: 0.8125rem;
  padding: 3px 10px;
  background: #ffffff;
  border-color: #ffffff;
  color: var(--color-pr-badge-on-white-text);
}

.pr-teaser-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0 var(--space-4);
}

.pr-teaser-info-title {
  margin: 0;
  font-size: 1rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
  line-height: 1.35;
}

.pr-teaser-info-amount {
  color: var(--color-accent-gold);
}

.pr-teaser-info-note {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--font-size-sm);
  line-height: 1.35;
}

.pr-teaser-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  flex-shrink: 0;
  padding: 8px var(--space-4);
  border-radius: var(--radius-sm);
  background: var(--color-primary);
  color: var(--color-on-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.pr-teaser-cta:hover {
  background: var(--color-primary-strong);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .pr-teaser-wrapper {
    padding: 0 24px;
  }

  .pr-teaser-info {
    padding: 0 var(--space-3);
  }
}

@media (max-width: 640px) {
  .pr-teaser-wrapper {
    padding: 0 var(--space-3);
  }

  .pr-teaser-band {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    min-height: 0;
  }

  .pr-teaser-heading-row {
    flex: 0 0 auto;
  }

  .pr-teaser-info {
    padding: 0;
  }

  .pr-teaser-info-title {
    font-size: 0.875rem;
  }

  .pr-teaser-info-note {
    font-size: 0.8125rem;
  }

  .pr-teaser-cta {
    align-self: flex-start;
  }
}


/* ===== web/components/AffiliateCards.module.css (prefix: affiliate-cards-*) ===== */
.affiliate-cards-wrapper {
  max-width: 1440px;
  margin: 40px auto 48px;
  padding: 0 56px;
}

.affiliate-cards-heading {
  margin: 0 0 var(--space-2);
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
}

.affiliate-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.affiliate-cards-double {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.affiliate-cards-single {
  grid-template-columns: minmax(0, 480px);
}

.affiliate-cards-quad {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (min-width: 641px) and (max-width: 1024px) {
  .affiliate-cards-wrapper {
    padding: 0 24px;
  }

  .affiliate-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1024px) {
  .affiliate-cards-grid,
  .affiliate-cards-double,
  .affiliate-cards-single {
    grid-template-columns: 1fr;
  }

  .affiliate-cards-quad {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .affiliate-cards-wrapper {
    padding: 0 var(--space-3);
  }

  .affiliate-cards-quad {
    grid-template-columns: 1fr;
  }
}

/* ===== web/components/AiraloTeaser.module.css (prefix: airalo-teaser-*) ===== */
.airalo-teaser-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: 180px;
  height: 100%;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-md);
  overflow: hidden;
  background-image: linear-gradient(
      90deg,
      rgba(5, 8, 15, 0.7) 0%,
      rgba(5, 8, 15, 0.4) 42%,
      rgba(5, 8, 15, 0.05) 65%,
      rgba(5, 8, 15, 0) 100%
    ),
    url("/cta-airalo.webp");
  background-size: cover;
  background-position: center;
}

.airalo-teaser-heading-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-right: 48px;
}

.airalo-teaser-icon {
  flex-shrink: 0;
  color: #ffffff;
}

.airalo-teaser-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
}

.airalo-teaser-badge-wrap {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
}

.airalo-teaser-bottom {
  display: flex;
  flex-direction: column;
}

.airalo-teaser-desc {
  position: relative;
  margin: 0;
  color: #ffffff;
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.airalo-teaser-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  align-self: flex-start;
  margin-top: var(--space-1);
  padding: 10px var(--space-5);
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: var(--color-teaser-cta-primary-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.airalo-teaser-cta:hover {
  background: var(--color-primary);
  color: var(--color-on-primary);
}

.airalo-teaser-arrow {
  display: inline-block;
  transition: transform 0.15s ease;
}

.airalo-teaser-cta:hover .airalo-teaser-arrow {
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .airalo-teaser-card {
    padding: var(--space-4);
    background-image: linear-gradient(rgba(29, 53, 87, 0.55), rgba(10, 15, 25, 0.80)), url("/cta-airalo.webp");
    background-position: 58% center;
  }
}

/* ===== web/components/KlookTeaser.module.css (prefix: klook-teaser-*) ===== */
.klook-teaser-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: 180px;
  height: 100%;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-md);
  overflow: hidden;
  background-image: linear-gradient(rgba(204, 98, 18, 0.55), rgba(60, 25, 5, 0.82)), url("/cta-klook.webp");
  background-size: cover;
  background-position: center;
}

.klook-teaser-heading-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-right: 48px;
}

.klook-teaser-icon {
  flex-shrink: 0;
  color: #ffffff;
}

.klook-teaser-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
}

.klook-teaser-badge-wrap {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
}

.klook-teaser-bottom {
  display: flex;
  flex-direction: column;
}

.klook-teaser-desc {
  position: relative;
  margin: 0;
  color: #ffffff;
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.klook-teaser-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  align-self: flex-start;
  margin-top: var(--space-1);
  padding: 10px var(--space-5);
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: var(--color-location-chip-strong);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.klook-teaser-cta:hover {
  background: var(--color-location-chip-strong);
  color: #ffffff;
}

.klook-teaser-arrow {
  display: inline-block;
  transition: transform 0.15s ease;
}

.klook-teaser-cta:hover .klook-teaser-arrow {
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .klook-teaser-card {
    padding: var(--space-4);
  }
}

/* ===== expedia-teaser.php (prefix: expedia-teaser-*)。klook-teaser-*の複製（2026-09 Expedia追加時に新設） ===== */
.expedia-teaser-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: 180px;
  height: 100%;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-md);
  overflow: hidden;
  background-image: linear-gradient(rgba(184, 134, 11, 0.55), rgba(55, 38, 5, 0.82)), url("/cta-expedia.webp");
  background-size: cover;
  background-position: center;
}

.expedia-teaser-heading-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-right: 48px;
}

.expedia-teaser-icon {
  flex-shrink: 0;
  color: #ffffff;
}

.expedia-teaser-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
}

.expedia-teaser-badge-wrap {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
}

.expedia-teaser-bottom {
  display: flex;
  flex-direction: column;
}

.expedia-teaser-desc {
  position: relative;
  margin: 0;
  color: #ffffff;
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.expedia-teaser-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  align-self: flex-start;
  margin-top: var(--space-1);
  padding: 10px var(--space-5);
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: #8a5c00;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.expedia-teaser-cta:hover {
  background: #b8860b;
  color: #ffffff;
}

.expedia-teaser-arrow {
  display: inline-block;
  transition: transform 0.15s ease;
}

.expedia-teaser-cta:hover .expedia-teaser-arrow {
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .expedia-teaser-card {
    padding: var(--space-4);
  }
}

/* ===== web/components/WiseTeaser.module.css (prefix: wise-teaser-*) ===== */
.wise-teaser-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: 180px;
  height: 100%;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-md);
  overflow: hidden;
  background-image: linear-gradient(rgba(14, 131, 69, 0.55), rgba(5, 40, 22, 0.82)), url("/cta-wise.webp");
  background-size: cover;
  background-position: center;
}

.wise-teaser-heading-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding-right: 48px;
}

.wise-teaser-icon {
  flex-shrink: 0;
  color: #ffffff;
}

.wise-teaser-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: #ffffff;
}

.wise-teaser-badge-wrap {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
}

.wise-teaser-bottom {
  display: flex;
  flex-direction: column;
}

.wise-teaser-desc {
  position: relative;
  margin: 0;
  color: #ffffff;
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.wise-teaser-desc-note {
  position: relative;
  margin: 2px 0 0;
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--font-size-sm);
  line-height: 1.35;
}

.wise-teaser-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  align-self: flex-start;
  margin-top: var(--space-1);
  padding: 10px var(--space-5);
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: var(--color-teaser-cta-best-text);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
}

.wise-teaser-cta:hover {
  background: var(--color-best);
  color: var(--color-on-best);
}

.wise-teaser-arrow {
  display: inline-block;
  transition: transform 0.15s ease;
}

.wise-teaser-cta:hover .wise-teaser-arrow {
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .wise-teaser-card {
    padding: var(--space-4);
  }
}

/* ===== sister-site-hotel.php（prefix: sister-hotel-*）。姉妹サイトRuamThai Hotelへの導線セクション。
   affiliate-cards-wrapper（PR帯）の直下に独立配置し、広告カードと混同されないよう明るい写真+
   白地カード（PRカードの暗い写真背景+白文字とは反転）にする（2026-09-08新設）。 ===== */
.sister-hotel-wrapper {
  max-width: 1440px;
  margin: 0 auto 48px;
  padding: 0 56px;
}

.sister-hotel-card {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  overflow: hidden;
}

.sister-hotel-photo {
  position: relative;
  flex: 0 0 32%;
  min-height: 180px;
}

/* 写真は絶対配置で本文の高さに追従させる（height:100%は親高さautoでは効かず、画像の縦横比でカードが伸びるため） */
.sister-hotel-photo-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sister-hotel-photo-credit {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 4px var(--space-2);
  background: rgba(0, 0, 0, 0.4);
  color: #ffffff;
  font-size: 12px;
  text-decoration: none;
}

.sister-hotel-photo-credit:hover {
  text-decoration: underline;
}

.sister-hotel-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--space-2);
  flex: 1 1 auto;
  min-width: 0;
  padding: var(--space-5) var(--space-6);
}

.sister-hotel-label {
  margin: 0;
  color: var(--color-teal);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-bold);
}

.sister-hotel-title {
  margin: 0;
  color: var(--color-text);
  font-size: 22px;
  line-height: 1.3;
  font-weight: 900;
}

.sister-hotel-desc {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.sister-hotel-cta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  margin-top: var(--space-1);
  padding: 0 var(--space-5);
  height: 44px;
  border: 1px solid var(--color-primary);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.sister-hotel-cta:hover {
  background: var(--color-primary);
  color: var(--color-on-primary);
}

.sister-hotel-cta-arrow {
  display: inline-block;
  transition: transform 0.15s ease;
}

.sister-hotel-cta:hover .sister-hotel-cta-arrow {
  transform: translate(2px, -2px);
}

@media (max-width: 1024px) {
  .sister-hotel-wrapper {
    padding: 0 24px;
  }
}

@media (max-width: 640px) {
  .sister-hotel-wrapper {
    padding: 0 var(--space-3);
  }

  .sister-hotel-card {
    flex-direction: column;
  }

  .sister-hotel-photo {
    flex: 0 0 auto;
    height: 160px;
    min-height: 160px;
  }

  .sister-hotel-title { font-size: 18px; }

  .sister-hotel-body {
    padding: var(--space-4);
  }
}


/* ===== web/components/RankingCards.module.css (prefix: ranking-cards-*) ===== */
.ranking-cards-wrapper {
  max-width: 1440px;
  margin: 32px auto 24px;
  padding: 0 56px;
}

.ranking-cards-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.ranking-cards-heading-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.3125rem;
  font-weight: var(--font-weight-bold);
  margin: 0;
}

.ranking-cards-heading-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.ranking-cards-heading-title-accent {
  color: var(--color-primary);
}

.ranking-cards-heading-meta {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  white-space: nowrap;
}

.ranking-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.ranking-cards-card {
  position: relative;
  /* 2-3位: 銀メダルトーンのシルバーブルー（ページ地より明確に青く、白でもない） */
  background: var(--color-card-rank-bg);
  border-color: var(--color-card-rank-border);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 22px;
}

.ranking-cards-best-card {
  /* 1位: ゴールド枠+ゴールドtintで「金メダル」を明示 */
  border: 2px solid var(--color-accent-gold);
  background: var(--color-card-best-bg);
}

.ranking-cards-rank3-card {
  /* 3位: ごく薄いブロンズtint+ブロンズ系枠(2026-09-04) */
  background: var(--color-card-bronze-bg);
  border-color: var(--color-card-bronze-border);
}

.ranking-cards-best-tag {
  position: absolute;
  top: -1px;
  right: var(--space-3);
  /* 2026-09-04: 2位/3位タグと同じ金属調グラデーション(ユーザー指示で3色統一) */
  background: linear-gradient(160deg, var(--color-medal-gold-from) 0%, var(--color-medal-gold-to) 100%);
  color: var(--color-on-gold);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-bold);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  padding: var(--space-1) var(--space-3);
}

/* 2位・3位の順位タグ（2026-09-04）: bestTagと同位置(右上)・同寸。メダル色で順位を直感させる
   （1位=ゴールド(bestTag)・2位=シルバー・3位=ブロンズ。カード地色に埋没しない濃さ。ユーザー指摘で
   カード同系色のシルバーブルーから変更） */
.ranking-cards-rank-tag {
  position: absolute;
  top: -1px;
  right: var(--space-3);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-bold);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  padding: var(--space-1) var(--space-3);
}
.ranking-cards-rank-tag-2 {
  background: linear-gradient(160deg, var(--color-medal-silver-from) 0%, var(--color-medal-silver-to) 100%);
  color: var(--color-on-medal-silver);
  box-shadow: inset 0 0 0 1px var(--color-medal-silver-edge);
}
.ranking-cards-rank-tag-3 {
  background: linear-gradient(160deg, var(--color-medal-bronze-from) 0%, var(--color-medal-bronze-to) 100%);
  color: var(--color-on-medal-bronze);
}

/* 都市名タブ（実装追加分）: bestTagと対になる左上タブ。中立配色（薄グレー背景×muted文字）で、
   ゴールドの「1位・ベスト」タグより控えめにする。上位カード・/shopsのカードで共用。 */
.ranking-cards-city-tag {
  /* カード上枠に貼り付けず、フロー内の色付きチップとして表示（ユーザー指示）。
     内容は駅・エリア名(Ploen Chit等)。都市名はエリア選択で周知済みのため出さない */
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  margin-bottom: 10px;
  width: fit-content;
}

.ranking-cards-city-tag-icon {
  flex-shrink: 0;
  color: var(--color-location-chip-text);
}

/* 店名ラベル帯（追加修正21→実装追加分で配色変更）: カード幅いっぱいの帯。
   ネイビー×白は廃止し、各カードの背景tintに馴染む濃色トーン（1位=ゴールド系/2-3位=ブルーグレー系）
   にする。コントラスト4.5:1以上（tokens.css参照）。アイコン色は文字色に追従（currentColor）。 */
.ranking-cards-card-name {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  /* 最長の店名でも帯内で改行しないサイズ(ユーザー指示)。超過時は省略記号 */
  font-size: 1rem;
  font-weight: var(--font-weight-bold);
  margin-bottom: 10px;
  white-space: nowrap;
}

.ranking-cards-card-name-text {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

/* 1〜3位カードの店名リンク(2026-09-03 ユーザー指示): 帯全体が hover でネイビー地+白文字に変化、末尾にシェブロン */
.ranking-cards-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.ranking-cards-card-link-icon {
  flex-shrink: 0;
  opacity: 0.7;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

/* hover は同系色で控えめに(ゴールド帯→明るいゴールド / ブルー帯→やや濃いブルー)+下線、0.2s フェード(2026-09-03 ユーザー指示) */
.ranking-cards-card-name {
  transition: background-color 0.2s ease, color 0.2s ease;
}

.ranking-cards-card-name-gold:has(.ranking-cards-card-link:hover) {
  background: var(--color-label-gold-hover-bg);
}

.ranking-cards-card-name-blue:has(.ranking-cards-card-link:hover) {
  background: var(--color-label-blue-hover-bg);
}

.ranking-cards-card-name-bronze:has(.ranking-cards-card-link:hover) {
  background: var(--color-label-bronze-hover-bg);
}

.ranking-cards-card-link {
  transition: color 0.2s ease;
  text-decoration: none;
}

.ranking-cards-card-link:hover {
  text-decoration: none;
}

.ranking-cards-card-link:hover .ranking-cards-card-link-icon {
  opacity: 1;
  transform: translateX(2px);
}

.ranking-cards-card-name-gold {
  background: var(--color-label-gold-bg);
  color: var(--color-label-gold-text);
}

.ranking-cards-card-name-blue {
  background: var(--color-label-blue-bg);
  color: var(--color-label-blue-text);
}

.ranking-cards-card-name-bronze {
  background: var(--color-label-bronze-bg);
  color: var(--color-label-bronze-text);
}

.ranking-cards-card-name-icon {
  flex-shrink: 0;
  color: inherit;
}

/* 支店名 + 場所チップの行（帯から10px = cardNameのmargin-bottomで確保）。支店名14px muted */
.ranking-cards-card-branch-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}

.ranking-cards-card-branch-name {
  font-size: 0.875rem;
  color: var(--color-text-muted);
}

/* 実数のみ表示（虚偽表示防止）。支店名よりわずかに控えめなトーン */
.ranking-cards-card-branch-others {
  margin-left: 4px;
  color: var(--color-text-muted);
  /* 旧opacity:0.85は継承色(--color-text)をさらに薄め3.43:1でAA未達だったため撤去し、
     --color-text-mutedを直接指定する（4.5:1以上。axe対応。2026-09-14） */
}

/* 場所チップ（実装追加分）: 最寄り駅等をピンアイコン+ラベルの中立チップで表示 */
.ranking-cards-station-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  border-radius: var(--radius-sm);
  padding: 2px 8px;
  font-size: 0.8125rem;
  line-height: 1.4;
}

.ranking-cards-station-chip-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.ranking-cards-card-amount {
  font-size: 2rem;
  font-weight: 800;
  color: var(--color-text);
  line-height: 1;
}

.ranking-cards-best-card .ranking-cards-card-amount {
  font-size: 2.375rem;
  color: var(--color-primary);
}

.ranking-cards-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  /* 受取額からの余白（モック実測値: 14px。縦リズム調整で space-3(12px)から変更） */
  margin-top: 14px;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.ranking-cards-card-meta-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

.ranking-cards-card-meta-label {
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.ranking-cards-card-meta-value {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  font-size: var(--font-size-sm);
}

/* 外れ値ガード（2026-09-03〜）: .ranking-cards-card-meta（<p>, justify-content:space-between）の
   直下に置くと1要素しかないのにバッジと注記が左右に離れてしまうため、spanでまとめて1要素化する。 */
.ranking-cards-card-suspect-note {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-1);
  /* W-2レビュー指摘対応: 親.ranking-cards-card-meta（stale注記と共用）のmuted薄色を上書きし、
     バッジと同じ--color-suspect-textを使う（コントラスト4.5:1確保・staleとの見分けやすさ）。 */
  color: var(--color-suspect-text);
}

/* 一覧のチップ(listDiff)と同トーンの差額ラベル */
.ranking-cards-card-diff-chip {
  background: var(--color-loss);
  color: var(--color-on-loss);
  border-radius: var(--radius-sm);
  padding: 2px 8px;
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  min-width: 40px;
  text-align: center;
}

.ranking-cards-card-links {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  /* モック実測値: 14px（4pxグリッド外だがモック優先） */
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--color-bg-subtle);
}

.ranking-cards-list {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.ranking-cards-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-bg-subtle);
  font-size: 1rem;
  font-weight: var(--font-weight-bold);
}

.ranking-cards-list-header-sub {
  font-weight: var(--font-weight-medium);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

/* 列ヘッダー行（追加修正14）: listRowと同じgrid-template-columnsで縦の列位置を揃える */
.ranking-cards-list-column-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px 150px 116px 130px 232px; /* 最終列はauto不可: ヘッダー行と別グリッドのため固定幅で列を一致させる */
  column-gap: 24px;
  align-items: center;
  padding: var(--space-2) 22px;
  border-bottom: 1px solid var(--color-bg-subtle);
  font-size: 0.75rem;
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.ranking-cards-col-right {
  text-align: right;
}

.ranking-cards-list-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px 150px 116px 130px 232px; /* 最終列はauto不可: ヘッダー行と別グリッドのため固定幅で列を一致させる */
  column-gap: 24px;
  align-items: center;
  padding: 13px 22px;
  border-bottom: 1px solid var(--color-bg-subtle);
  font-size: 1rem;
}

.ranking-cards-list-row:last-child {
  border-bottom: none;
}

/* 場所チップを店名の上に縦積み（2026-09-03: 1行目=場所チップ、2行目=店名リンク） */
.ranking-cards-list-name {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.ranking-cards-list-name-text {
  min-width: 0;
  /* 店名は絶対に省略しない(ユーザー指示)。入り切らない場合は折返す */
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
}

/* 店名リンク（2026-09-03: 店舗ページ導線を追加。下線なし・hoverでprimary色） */
/* 店名リンク: 末尾のシェブロンでリンクであることを示し、hover で色+下線(2026-09-03 ユーザー指示) */
.ranking-cards-list-shop-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--color-text);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.ranking-cards-list-shop-link-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
  transition: transform 0.2s ease, color 0.2s ease;
}

/* hover 色: ライトでは --color-primary(ネイビー)が本文色と近く変化が分かりにくいため、
   位置チップと同じオレンジ(--color-location-chip-bg、白地で4.6:1)を使う。ダークは --color-primary(明るい青) */
.ranking-cards-list-shop-link:hover {
  color: var(--color-location-chip-bg);
  text-decoration-color: currentColor;
}

.ranking-cards-list-shop-link:hover .ranking-cards-list-shop-link-icon {
  color: var(--color-location-chip-bg);
  transform: translateX(2px);
}

:root[data-theme="dark"] .ranking-cards-list-shop-link:hover,
:root[data-theme="dark"] .ranking-cards-list-shop-link:hover .ranking-cards-list-shop-link-icon {
  color: var(--color-primary);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .ranking-cards-list-shop-link:hover,
  :root:not([data-theme="light"]) .ranking-cards-list-shop-link:hover .ranking-cards-list-shop-link-icon {
    color: var(--color-primary);
  }
}

/* 実数のみ表示（虚偽表示防止） */
.ranking-cards-list-name-others {
  margin-left: 4px;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  /* 旧opacity:0.85は--color-text-mutedをさらに薄め3.85:1でAA未達だったため撤去（axe対応。2026-09-14） */
}

/* リスト行では名前列が縮んでもチップは潰れないようにする */
.ranking-cards-list-name .ranking-cards-station-chip {
  flex-shrink: 0;
}

/* 店舗アイコン（追加修正17）: 識別補助のため小さく・muted */
.ranking-cards-shop-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

/* レート列（追加修正11: 店名と受取額の間。階層は 受取額 > レート > 差額 を維持） */
.ranking-cards-list-rate {
  grid-column: 2;
  text-align: right;
  font-size: 1rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
}

.ranking-cards-list-amount {
  grid-column: 3;
  text-align: right;
  font-weight: var(--font-weight-bold);
  font-size: 1.125rem;
}

.ranking-cards-list-diff {
  grid-column: 4;
  justify-self: end;
  /* ラベル型表示（ユーザー指示）: loss色を背景にした小さな角丸チップ+白文字 */
  background: var(--color-loss);
  color: var(--color-on-loss);
  border-radius: var(--radius-sm);
  padding: 2px 8px;
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  /* 全行でチップ幅を統一 */
  min-width: 48px;
  text-align: center;
}

/* プラス差（通常は発生しないが保険）: 緑背景 */
.ranking-cards-list-diff-plus {
  background: var(--color-best);
  color: var(--color-on-best);
}

.ranking-cards-list-fresh {
  grid-column: 5;
  font-size: 0.8125rem;
  /* 右揃えのベスト差と隣接して窮屈に見えるため左に追加の呼吸 */
  padding-left: 24px;
}

.ranking-cards-col-fresh {
  padding-left: 24px;
}

.ranking-cards-list-links {
  grid-column: 6;
  display: flex;
  gap: var(--space-2);
  justify-self: end;
}

.ranking-cards-empty {
  padding: var(--space-4);
  color: var(--color-text-muted);
  text-align: center;
}

/* --- クエリ適用待ちスケルトン（CompareTop.tsx: isQueryPending時のみ）---
   クエリなしアクセスでは描画されないため、通常時のカスケードには影響しない。 */
.ranking-cards-skeleton-block {
  background: var(--color-bg-subtle);
  border-radius: var(--radius-sm);
  animation: skeletonPulse 1.6s ease-in-out infinite;
}

.ranking-cards-skeleton-heading {
  width: 220px;
  height: 1.3125rem;
}

.ranking-cards-skeleton-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.ranking-cards-skeleton-chip {
  width: 88px;
  height: 22px;
}

.ranking-cards-skeleton-name-band {
  width: 100%;
  height: 40px;
}

.ranking-cards-skeleton-amount {
  width: 60%;
  height: 2rem;
}

.ranking-cards-skeleton-meta {
  width: 80%;
  height: 1rem;
}

.ranking-cards-skeleton-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: 13px 22px;
  border-bottom: 1px solid var(--color-bg-subtle);
}

.ranking-cards-skeleton-list-row:last-child {
  border-bottom: none;
}

.ranking-cards-skeleton-list-name {
  width: 40%;
  height: 1rem;
}

.ranking-cards-skeleton-list-value {
  width: 96px;
  height: 1rem;
}

@keyframes skeletonPulse {
  0%,
  100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ranking-cards-skeleton-block {
    animation: none;
    opacity: 0.75;
  }
}

/* タブレット帯（追加修正14）: 固定列は縮小しつつ維持し、ボタン列だけ下段に折り返して潰れを防ぐ */
@media (min-width: 641px) and (max-width: 1024px) {
  .ranking-cards-wrapper {
    padding: 0 24px;
  }

  .ranking-cards-list-column-header,
  .ranking-cards-list-row {
    grid-template-columns: minmax(0, 1fr) 96px 128px 96px 116px;
    column-gap: 16px;
  }

  .ranking-cards-list-row {
    row-gap: 8px;
  }

  .ranking-cards-list-column-header .ranking-cards-col-btn,
  .ranking-cards-list-row .ranking-cards-list-links {
    grid-column: 1 / -1;
  }

  .ranking-cards-list-row .ranking-cards-list-links {
    grid-row: 2;
    justify-self: end;
  }
}

/* モバイル（追加修正16）: グリッド列は崩し、カード的な3行構成（店名+受取額 / レート・差額・鮮度 / ボタン）へ */
@media (max-width: 640px) {
  .ranking-cards-wrapper {
    padding: 0 var(--space-3);
  }

  .ranking-cards-card-name {
    font-size: 0.875rem;
  }

  .ranking-cards-grid {
    grid-template-columns: 1fr;
  }

  /* 320px幅で横スクロールが発生していた修正: grid内カードはmin-width:autoの既定値により
     内包コンテンツの最小幅までしか縮まらずページ全体を押し広げていた。0にして1frトラック幅へ収める */
  .ranking-cards-card {
    min-width: 0;
  }

  .ranking-cards-list-column-header {
    display: none;
  }

  .ranking-cards-list-row {
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: var(--space-2);
    row-gap: 6px;
    align-items: center;
    padding: var(--space-3);
  }

  .ranking-cards-list-name {
    grid-column: 1 / 3;
    grid-row: 1;
    font-weight: var(--font-weight-bold);
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .ranking-cards-list-amount {
    grid-column: 3;
    grid-row: 1;
  }

  .ranking-cards-list-rate {
    grid-column: 1;
    grid-row: 2;
    text-align: left;
  }

  .ranking-cards-list-diff {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
  }

  .ranking-cards-list-fresh {
    grid-column: 3;
    grid-row: 2;
    text-align: right;
    padding-left: 0;
  }

  .ranking-cards-list-links {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: flex-end;
    margin-top: var(--space-1);
  }
}


/* ===== templates/pages/area.php 比較リスト（1行1カード。prefix: area-page-list- と area-page-card-）
   2026-08-30リデザイン: 旧RateTable/RateCardListの二重マークアップ(table+ul)を廃止し、
   単一の<ul><li>カードリストへ統合。CSS Grid の grid-template-areas で640px境界に
   デスクトップ4カラム/モバイル2行レイアウトを切替える（shop-page-heroと同じ単一マークアップ方針）。 */
.area-page-list {
  list-style: none;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
  max-width: 1120px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.area-page-card {
  display: grid;
  /* モバイル: 店名(info)を全幅で折返し表示し、金額(figures)はその下に右寄せで置く
     (2026-08-29ユーザー指示。省略・切り詰めをしない) */
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "info info"
    "figures figures"
    "status links";
  align-items: center;
  gap: var(--space-3) var(--space-4);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
}

/* ベストカード: 薄緑背景+バッジで強調（左ボーダー等の枠線アクセントは使わない=ユーザー指定 2026-08-22） */
.area-page-card-best {
  background: var(--color-best-bg);
}

.area-page-card-stale {
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
}

/* 外れ値ガード（2026-09-03〜）。staleと同じ「行全体トーンダウン」構造だが色は琥珀系にする。 */
.area-page-card-suspect {
  background: var(--color-suspect-bg);
}

.area-page-card-info {
  grid-area: info;
  min-width: 0;
}

.area-page-card-name-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}

/* 店名は省略(ellipsis)せず折返して全文表示する(2026-08-29ユーザー指示)。
   カラム側のmin-width:0でカード幅超過は防ぐ。17px/800はArea.dc.htmlの値。 */
.area-page-card-name {
  font-size: 17px;
  font-weight: 800;
  color: var(--color-text);
  overflow-wrap: anywhere;
  min-width: 0;
}

.area-page-card-best-tag {
  flex-shrink: 0;
  display: inline-block;
  padding: 1px var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--color-best);
  color: var(--color-on-best);
  font-size: 0.75rem;
  font-weight: var(--font-weight-bold);
}

.area-page-card-sub-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  margin-top: var(--space-1);
}

.area-page-card-chip {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
  border-radius: var(--radius-sm);
  padding: 2px var(--space-2);
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
}

.area-page-card-branch-badge {
  flex-shrink: 0;
  display: inline-block;
  border: 1px solid rgba(14, 131, 69, 0.3);
  border-radius: var(--radius-sm);
  padding: 1px var(--space-2);
  font-size: 0.75rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-best-text);
}

/* エリア内支店数の補足（例「パタヤ圏内 53支店」）。カード幅を圧迫しないようデスクトップのみ表示。 */
.area-page-card-note {
  display: none;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 13px;
  color: var(--color-text-muted);
}

.area-page-card-figures {
  grid-area: figures;
  min-width: 0;
  text-align: right;
}

/* サイズ階層: 受取額>レート>差額（設計doc §6）。28px/800はArea.dc.htmlのインラインstyle値を
   そのまま転記（デザインモック突合対応。以前は1.375rem/700で、モックの28px/800より小さかった）。 */
.area-page-card-amount {
  font-size: 28px;
  font-weight: 800;
  color: var(--color-text);
}

.area-page-card-amount-best {
  color: var(--color-best);
}

.area-page-card-rate-desktop {
  display: none;
  margin-top: 2px;
  font-size: 13px;
  color: var(--color-text-muted);
}

/* モバイルの2行目: ベスト行はレート、それ以外はベストとの差額を表示（AreaMobile.dc.html準拠）。 */
.area-page-card-rate-mobile {
  margin-top: 2px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
}

.area-page-card-status {
  grid-area: status;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

/* 14px/700はArea.dc.htmlの「ベストとの差」インラインstyle値。エリアのトップ表示は
   .area-page-card-status-best で13pxへ上書きする（デザインモック突合対応）。 */
.area-page-card-status-label {
  display: none;
  font-size: 14px;
  font-weight: 700;
}

.area-page-card-status-best {
  font-size: 13px;
  color: var(--color-best-text);
}

/* エリアカード内の鮮度バッジ（"12分前 更新"）。Area.dc.htmlは13px/600・fresh時は緑文字で表示するが、
   freshness-badge-badge本体（他ページ共通）は常時グレー文字のためエリアカード内でのみ上書きする。 */
.area-page-card-status .freshness-badge-badge {
  font-size: 13px;
  font-weight: 600;
}

.area-page-card-status .freshness-badge-badge[data-freshness="fresh"] {
  color: var(--color-best-text);
}

.area-page-card-links {
  grid-area: links;
  min-width: 0;
  display: flex;
  gap: var(--space-2);
  justify-content: flex-end;
}

.area-page-card-loss {
  color: var(--color-loss);
}

.area-page-card-stale-notice {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.area-page-card-stale-link {
  color: var(--color-primary);
  text-decoration: none;
}

.area-page-card-stale-link:hover {
  text-decoration: underline;
}

.area-page-card-suspect-notice {
  grid-column: 1 / -1;
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-1);
  font-size: 0.8125rem;
  /* W-2レビュー指摘対応: staleとは異なりmuted薄色にせず、バッジと同じ--color-suspect-textを使う
     （feedback-body-text-dark.mdの本文濃色方針・4.5:1コントラスト確保の両方に合わせる）。 */
  color: var(--color-suspect-text);
}

@media (min-width: 641px) {
  .area-page-card {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 0.8fr) 200px;
    grid-template-areas: "info figures status links";
    padding: var(--space-5) var(--space-6);
  }

  .area-page-card-note {
    display: inline;
  }

  .area-page-card-chip {
    max-width: none;
  }

  .area-page-card-rate-desktop {
    display: block;
  }

  .area-page-card-rate-mobile {
    display: none;
  }

  .area-page-card-status {
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-1);
    text-align: right;
  }

  .area-page-card-status-label {
    display: block;
  }
}

@media (max-width: 640px) {
  .area-page-list {
    padding: 0 var(--space-3);
  }

  /* AreaMobile.dc.htmlのインラインstyle値をそのまま転記（デザインモック突合対応）。 */
  .area-page-card-name {
    font-size: 16px;
  }

  .area-page-card-amount {
    font-size: 24px;
  }

  .area-page-card-rate-mobile {
    font-size: 12px;
  }
}



/* ===== web/components/ReferenceRateSection.module.css (prefix: reference-rate-section-*) ===== */
.reference-rate-section-section {
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  padding: var(--space-6) 0 var(--space-8);
}

.reference-rate-section-heading {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 56px var(--space-1);
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
}

.reference-rate-section-heading-title {
  font-size: 1.3125rem;
  font-weight: var(--font-weight-bold);
  margin: 0;
}

.reference-rate-section-heading-note {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.reference-rate-section-grid {
  max-width: 1440px;
  margin: var(--space-3) auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.reference-rate-section-panel {
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.reference-rate-section-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-border);
}

.reference-rate-section-panel-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1rem;
  font-weight: var(--font-weight-bold);
}

.reference-rate-section-panel-icon {
  flex-shrink: 0;
  color: var(--color-text);
}

.reference-rate-section-panel-sub {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.reference-rate-section-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 22px;
  border-bottom: 1px solid var(--color-border);
  font-size: 1rem;
}

.reference-rate-section-row:last-of-type {
  border-bottom: none;
}

.reference-rate-section-row-values {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.reference-rate-section-row-amount {
  font-weight: var(--font-weight-bold);
  font-size: 1.0625rem;
}

.reference-rate-section-row-diff {
  width: 60px;
  text-align: right;
  font-size: var(--font-size-sm);
  color: var(--color-loss);
}

.reference-rate-section-footnote {
  padding: var(--space-3) var(--space-4);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  line-height: 1.6;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .reference-rate-section-heading,
  .reference-rate-section-grid {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 640px) {
  .reference-rate-section-heading {
    padding: 0 var(--space-3) var(--space-1);
    flex-direction: column;
    gap: var(--space-1);
  }

  .reference-rate-section-grid {
    grid-template-columns: 1fr;
    padding: 0 var(--space-3);
  }
}


/* ===== web/components/SiteHeader.module.css (prefix: site-header-*) ===== */
.site-header-header {
  border-bottom: 1px solid var(--color-header-border);
  background: var(--color-header-bg);
}

.site-header-inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 20px 56px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.site-header-logo-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  text-decoration: none;
  flex-shrink: 0;
}

.site-header-logo-icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.site-header-logo {
  font-weight: 800;
  font-size: 1.25rem;
  color: #ffffff;
  letter-spacing: 0.01em;
}

/* モック準拠: ナビは右端グループ（ロゴとの間をautoで空ける） */
.site-header-nav {
  display: flex;
  /* 既定の stretch だとリンクの箱が親の高さまで伸び、文字が箱の上端に寄る。
     チップ(文字が箱の中央)と並ぶと上下の中心が揃わないため中央揃えにする。 */
  align-items: center;
  gap: 24px;
  margin-left: auto;
}

.site-header-link {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-header-text-muted);
  text-decoration: none;
}

.site-header-link:hover {
  color: #ffffff;
}

/* 親サイト（RuamThai ポータル）への導線ラベル（2026-09-10新設、右端配置に修正）:
   平テキストの.site-header-linkと視覚的に区別するため、アンバー系の背景色を敷いた
   ラベル形式にする（角丸は規定の--radius-sm=4pxのみ・ピル禁止）。ナビ右端（ホテルリンクの後ろ）に
   配置し、親サイトへ戻る導線であることを示す。 */
.site-header-portal-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  /* 親サイトへの導線はチップ形式で示す。上下にも余白を取り、チップとしての
     まとまりを持たせる（縦位置は親の align-items:center で中心が揃う）。 */
  padding: 6px 12px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  /* 地色は #f0c64a のベタ塗りだと紺のヘッダー上で対比が強すぎるため、
     同じアンバーを低い不透明度で敷き、文字側をアンバーにして主張を下げる
     （チップの形は維持。時計チップの rgba(255,255,255,.08) と同じ考え方）。 */
  color: var(--color-accent-gold);
  background: rgba(240, 198, 74, 0.16);
  border-radius: var(--radius-sm);
  text-decoration: none;
  white-space: nowrap;
}

.site-header-portal-link:hover {
  background: rgba(240, 198, 74, 0.28);
}

.site-header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}

/* ハンバーガーメニュー（追加実装。web/側に対応コンポーネントなし・generator独自）:
   デスクトップでは常に非表示（>640pxを一切変更しないため、幅を跨いだリサイズ時に
   開いたままの状態が残っても表示されないよう、mediaクエリ外でも既定display:noneにしておく）。
   モバイル時の表示・開閉スタイルは下の @media (max-width: 640px) 内で上書きする。 */
.site-header-menu-button,
.site-header-mobile-menu {
  display: none;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .site-header-inner {
    padding: var(--space-3) 24px;
  }
}

/* モバイル（追加修正16）: 375px幅で ロゴ+ナビ3リンク+チップ+トグル が入らないため、
   ナビは非表示にしロゴ+チップ+トグルのみを1行で表示する */
@media (max-width: 640px) {
  .site-header-inner {
    padding: var(--space-2) var(--space-3);
    gap: var(--space-2);
  }

  .site-header-logo-link {
    flex-shrink: 1;
    min-width: 0;
  }

  .site-header-logo {
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .site-header-nav {
    display: none;
  }

  /* ハンバーガーメニュー（追加実装。web/側に対応コンポーネントなし・generator独自）:
     モバイルではテーマ切替単体ボタンを隠し、ハンバーガーボタンへ置き換える
     （テーマ切替自体は .site-header-mobile-theme-toggle としてパネル内に移設） */
  .site-header-header {
    position: relative;
  }

  .theme-toggle-button:not(.site-header-mobile-theme-toggle) {
    display: none;
  }

  .site-header-menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-header-border);
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-header-text-muted);
    cursor: pointer;
    flex-shrink: 0;
  }

  .site-header-menu-button:hover,
  .site-header-menu-button[aria-expanded="true"] {
    color: #ffffff;
    border-color: #ffffff;
  }

  .site-header-mobile-menu {
    position: absolute;
    top: 100%;
    left: var(--space-3);
    right: var(--space-3);
    z-index: 20;
    margin-top: var(--space-2);
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    background: var(--color-header-panel-bg);
    border: 1px solid var(--color-header-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-1);
    animation: site-header-mobile-menu-in 0.15s ease-out;
  }

  .site-header-mobile-menu[hidden] {
    display: none;
  }

  .site-header-mobile-nav {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
  }

  .site-header-mobile-link {
    display: block;
    padding: var(--space-2) var(--space-1);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-medium);
    color: var(--color-header-text-muted);
    text-decoration: none;
    border-radius: var(--radius-sm);
  }

  .site-header-mobile-link:hover,
  .site-header-mobile-link:focus-visible {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
  }

  /* 親サイト（RuamThai ポータル）への導線ラベル・モバイル版（2026-09-10新設、右端配置に修正） */
  .site-header-mobile-portal-link {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 4px;
    padding: var(--space-2) var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-header-bg);
    background: var(--color-accent-gold);
    border-radius: var(--radius-sm);
    text-decoration: none;
  }

  .site-header-mobile-portal-link:hover,
  .site-header-mobile-portal-link:focus-visible {
    background: var(--color-accent-gold-soft);
  }

  .site-header-mobile-theme-toggle {
    align-self: flex-start;
  }
}

@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .site-header-mobile-menu {
    animation: none;
  }
}

@keyframes site-header-mobile-menu-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ===== web/components/StationRateCardList.module.css (prefix: station-rate-card-list-*) ===== */
.station-rate-card-list-list {
  display: none;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-direction: column;
  gap: var(--space-2);
}

.station-rate-card-list-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  box-shadow: var(--shadow-1);
  padding: var(--space-3);
  min-height: var(--row-height-mobile);
}

.station-rate-card-list-stale-card {
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
}

/* 外れ値ガード（2026-09-03〜）。 */
.station-rate-card-list-suspect-card {
  background: var(--color-suspect-bg);
}

.station-rate-card-list-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.station-rate-card-list-brand-name {
  display: block;
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
}

.station-rate-card-list-branch-name {
  display: block;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.station-rate-card-list-distance {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-primary);
  white-space: nowrap;
}

.station-rate-card-list-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
}

.station-rate-card-list-grid dt {
  font-size: 0.6875rem;
  color: var(--color-text-muted);
}

.station-rate-card-list-grid dd {
  margin: 0;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
}

.station-rate-card-list-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.station-rate-card-list-link-group {
  display: flex;
  gap: var(--space-2);
  align-items: center;
}

.station-rate-card-list-empty {
  padding: var(--space-4);
  color: var(--color-text-muted);
  text-align: center;
}

@media (max-width: 640px) {
  .station-rate-card-list-list {
    display: flex;
    margin: var(--space-4) var(--space-3) 0;
  }

  /* 320px幅で横スクロールが発生していた修正: flex列アイテムはmin-width:autoの既定値により
     内包コンテンツの最小幅までしか縮まらずページ全体を押し広げていた。0にして親幅へ収める。
     footerはbadge+link-groupがnowrapで収まりきらない場合のみ2行に折返す安全策 */
  .station-rate-card-list-card {
    min-width: 0;
  }

  .station-rate-card-list-card-footer {
    flex-wrap: wrap;
    row-gap: var(--space-1);
  }
}


/* ===== web/components/StationRateTable.module.css (prefix: station-rate-table-*) ===== */
.station-rate-table-table-wrapper {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
  overflow-x: auto;
}

.station-rate-table-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-1);
  background: var(--color-surface);
}

.station-rate-table-table th,
.station-rate-table-table td {
  padding: 0 var(--space-3);
  height: var(--row-height);
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  font-size: var(--font-size-sm);
  vertical-align: middle;
}

.station-rate-table-table thead th {
  position: sticky;
  top: 0;
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-xs);
  z-index: 1;
}

.station-rate-table-table tbody tr:last-child td {
  border-bottom: none;
}

.station-rate-table-brand-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.station-rate-table-brand-name {
  font-weight: var(--font-weight-medium);
  color: var(--color-text);
}

.station-rate-table-branch-name {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.station-rate-table-stale-row {
  color: var(--color-text-muted);
  background: var(--color-bg-subtle);
}

/* 外れ値ガード（2026-09-03〜）。 */
.station-rate-table-suspect-row {
  background: var(--color-suspect-bg);
}

.station-rate-table-link-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.station-rate-table-empty {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: var(--space-4);
  color: var(--color-text-muted);
  text-align: center;
}

@media (max-width: 640px) {
  .station-rate-table-table-wrapper {
    display: none;
  }
}


/* ===== web/components/SummaryStatBand.module.css (prefix: summary-stat-band-*) ===== */
.summary-stat-band-band {
  max-width: 1440px;
  margin: 20px auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: var(--space-4);
}

.summary-stat-band-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: 22px 26px;
}

.summary-stat-band-best-card {
  border: none;
  background: var(--color-accent-gold-soft);
  padding: 24px 28px;
}

/* .bestCard専用（ゴールド系背景。--color-on-goldで固定コントラストを確保。設計docバッチ2レビュー対応） */
.summary-stat-band-card-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.125rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-on-gold);
  margin-bottom: 10px;
}

/* ベストレート系のみゴールド配色を許可する（追加修正17の制約） */
.summary-stat-band-heading-icon-gold {
  flex-shrink: 0;
  color: var(--color-accent-gold);
}

.summary-stat-band-plain-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

.summary-stat-band-heading-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.summary-stat-band-rate-row {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
}

.summary-stat-band-rate-value {
  font-size: 3.5rem;
  font-weight: 800;
  color: var(--color-on-gold);
  line-height: 1;
}

.summary-stat-band-receive-value {
  font-size: 1.625rem;
  font-weight: 800;
  color: var(--color-on-gold);
}

.summary-stat-band-brand-row {
  margin-top: var(--space-3);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-on-gold);
}

.summary-stat-band-brand-updated {
  margin-left: var(--space-2);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-on-gold);
  opacity: 0.75;
}

.summary-stat-band-big-value {
  /* display:inline-blockはfresh-suffix分割で追加した.summary-stat-band-fresh-label（別要素）を
     デスクトップで同一行に続けて表示するため（inline-blockなら後続のinline要素が折り返さない
     限り同じ行に並ぶ。モバイルは別途secondary-group内でdisplay:blockに上書きし3行目にする）。 */
  display: inline-block;
  font-size: 2.125rem;
  font-weight: 800;
  color: var(--color-text);
  line-height: 1.2;
}

.summary-stat-band-big-value-positive {
  color: var(--color-best);
}

.summary-stat-band-sub-text {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* 収集状況の内訳（市中/空港/銀行）。メイン数値より小さいチップで従属情報として表示する */
.summary-stat-band-breakdown-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin-top: var(--space-2);
}

.summary-stat-band-breakdown-chip {
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  padding: 2px var(--space-2);
}

.summary-stat-band-fresh-count {
  color: var(--color-best);
}

/* 収集状況カードの「/16 新鮮」表記のみモックに合わせ本文より大きい17px/700で強調する */
.summary-stat-band-fresh-suffix {
  font-size: 1.0625rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
}

/* 追加指摘(A): 「が最新」。デスクトップは従来どおりfresh-suffixと同じ行に続けて表示
   （margin-leftで間隔）。モバイルはMobile.dc.html実測どおり独立した3行目にする（下記media）。 */
.summary-stat-band-fresh-label {
  display: inline;
  margin-left: 4px;
  font-size: 1.0625rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
}

/* 「要更新X・停止Y」。旧.summary-stat-band-sub-textから分離した専用クラス
   （nth-of-typeに依存せずモバイル非表示を指定できるようにするため）。 */
.summary-stat-band-aging-text {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* secondary-group: デスクトップはdisplay:contentsで従来どおり2枚の独立カードに見せる
   （追加指摘(A)。モバイルのみ1枚の白カード+2セルgridにする。下記mediaで上書き）。 */
.summary-stat-band-secondary-group { display: contents; }
.summary-stat-band-heading-text-short { display: none; }

.summary-stat-band-empty-text {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* ゴールド地(.bestCard)上のemptyTextは--color-text-mutedだとテーマにより低コントラストになるため上書き */
.summary-stat-band-best-card .summary-stat-band-empty-text {
  color: var(--color-on-gold);
  opacity: 0.75;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .summary-stat-band-band {
    padding: 0 24px;
  }
}

@media (max-width: 640px) {
  /* ベストレートは全幅・補助2カード(市中vs空港/収集状況)は横並び2列。
     minmax(0, 1fr)必須（素の1frはmin-content分の幅を確保し横スクロールの原因になる。
     2026-09-04 headless実写で発見・修正）。 */
  .summary-stat-band-band {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    padding: 0 var(--space-3);
    gap: var(--space-2);
  }

  .summary-stat-band-best-card {
    grid-column: 1 / -1;
  }

  .summary-stat-band-rate-value {
    font-size: 2.5rem;
  }

  /* 320px幅で横スクロールが発生していた修正: grid内カードはmin-width:autoの既定値により
     内包コンテンツの最小幅までしか縮まらずページ全体を押し広げていた。0にしてトラック幅へ収める */
  .summary-stat-band-card {
    min-width: 0;
  }
}


/* ===== web/components/ThemeToggle.module.css (prefix: theme-toggle-*) ===== */
.theme-toggle-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--color-header-border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--color-header-text-muted);
  cursor: pointer;
  flex-shrink: 0;
}

.theme-toggle-button:hover {
  color: #ffffff;
  border-color: #ffffff;
}

/* タップ領域44px以上（追加修正16） */
@media (max-width: 640px) {
  .theme-toggle-button {
    width: 44px;
    height: 44px;
  }
}


/* ===== web/app/[locale]/about/page.module.css (prefix: about-page-*) ===== */
.about-page-main {
  min-height: 60vh;
  max-width: 800px;
  margin: 0 auto;
  padding: var(--space-4);
  padding-bottom: var(--space-6);
}

.about-page-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}

.about-page-intro {
  color: var(--color-text-muted);
  font-size: var(--font-size-md);
  margin: 0 0 var(--space-4);
}

.about-page-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin: var(--space-6) 0 var(--space-2);
}

.about-page-body {
  margin: 0 0 var(--space-2);
  color: var(--color-text);
  font-size: var(--font-size-md);
  line-height: 1.7;
}

.about-page-source-list {
  margin: 0 0 var(--space-2);
  padding-left: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

.about-page-source-list a {
  color: var(--color-primary);
  /* 周囲の文章(--color-text)とのコントラスト差が1.28:1しかなく色だけでは区別できないため、
     下線を常時表示にする（axe link-in-text-block対応。2026-09-14） */
  text-decoration: underline;
  word-break: break-all;
}

.about-page-note {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  margin: 0;
}

.about-page-legal-link {
  margin-top: var(--space-6);
}

.about-page-legal-link a {
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-md);
}

@media (max-width: 640px) {
  .about-page-main {
    padding: var(--space-3);
  }
}


/* ===== web/app/[locale]/area/[city]/page.module.css (prefix: area-page-*) ===== */
.area-page-main {
  min-height: 60vh;
  padding-bottom: var(--space-6);
}

/* area-page-list/area-page-controls/area-page-branch-rate-noticeと同じ1120px幅に揃える
   （デザインモック突合対応: 以前は1440pxで他セクションよりページ幅が広く、モック
   （Area.dc.html）の中央寄せ1120pxコンテナと異なっていた）。 */
.area-page-intro {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
}

.area-page-intro-main {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

/* エリアヘッダー右側の統計(両替所数/支店数)。2026-08-30リデザインで追加。 */
.area-page-stats {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-shrink: 0;
}

.area-page-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.area-page-stat-value {
  font-size: 24px;
  font-weight: 800;
  color: var(--color-text);
  line-height: 1;
}

.area-page-stat-label {
  margin-top: 2px;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.area-page-stat-divider {
  width: 1px;
  align-self: stretch;
  background: var(--color-border);
}

/* h1とエリア切替ボタンを同一行に収める行コンテナ（2026-08-31追加）。 */
.area-page-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.area-page-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin: 0;
}

/* エリア切替ドロップダウン（<details>/<summary>。開閉にJS不要。外側クリック閉じのみlive.jsで補助）。
   2026-08-31追加。prefix: area-switcher-*。 */
.area-switcher {
  position: relative;
  flex-shrink: 0;
}

/* デスクトップ幅ではタイトル行内ではなくintro右端（統計値の上の空間）に固定配置する。
   タブレット帯(641-1024px)はタイトルと重なる恐れがあるため従来のflex内配置を維持。 */
@media (min-width: 1025px) {
  .area-page-intro {
    position: relative;
  }

  .area-switcher {
    position: absolute;
    top: 0;
    right: 0;
  }
}

/* 2026-08-31リデザイン: ネイビー塗り+ピンアイコン+ラベルの存在感あるボタンに変更
   （デザインモック Main.dc.html 準拠。従来の白ボタン+ボーダーから置き換え）。 */
.area-switcher-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  /* ヘッダーと同じテーマ不変ネイビー。ダーク時に明色化する--color-primaryだと白文字のコントラストが不足するため使わない */
  background: var(--color-header-bg);
  color: #ffffff;
  border: none;
  border-radius: var(--radius-md);
  font-size: 14px;
  font-weight: var(--font-weight-bold);
  font-family: inherit;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
  box-shadow: var(--shadow-1);
}

.area-switcher-button::-webkit-details-marker {
  display: none;
}

.area-switcher-button-icon {
  flex-shrink: 0;
}

.area-switcher-prefix {
  font-weight: var(--font-weight-medium);
  color: var(--color-header-text-muted);
}

.area-switcher-chevron {
  flex-shrink: 0;
  transition: transform 0.15s ease;
}

.area-switcher[open] .area-switcher-chevron {
  transform: rotate(180deg);
}

/* パネル: 560px幅・地域グループ×2カラム（デザインモック Main.dc.html 準拠）。 */
.area-switcher-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 30;
  width: 560px;
  /* タブレット帯(641-1024px)でビューポート左端からはみ出さないよう上限を設ける(review W-2) */
  max-width: calc(100vw - 32px);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-2);
  padding: 10px 8px 16px;
}

.area-switcher-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 8px;
}

.area-switcher-group {
  padding: 0 12px;
  margin: 14px 0 6px;
  font-size: 12px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
}

.area-switcher-col > .area-switcher-group:first-child {
  margin-top: 4px;
}

.area-switcher-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  color: var(--color-text);
  text-decoration: none;
}

.area-switcher-item:hover {
  background: var(--color-bg);
}

.area-switcher-item-current {
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
  cursor: default;
}

.area-switcher-count {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: var(--font-weight-bold);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.area-switcher-item-current .area-switcher-count {
  background: var(--color-surface);
}

.area-switcher-footer {
  margin: var(--space-3) var(--space-3) 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
}

.area-switcher-view-all {
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  text-decoration: none;
}

/* Area.dc.htmlはピンアイコンをオレンジ(#cc6212=--color-location-chip-bg)で表示（デザインモック突合対応。
   以前はcolor:var(--color-primary)でネイビー＝グレーがかって見えていた）。 */
.area-page-title-icon {
  flex-shrink: 0;
  color: var(--color-location-chip-bg);
}

/* 説明テキスト一式(本文・空港タグ・単一チェーン注記)のラッパー。
   デスクトップは透過のまま、モバイル(640px以下)でカード化する */
.area-page-intro-desc {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: flex-start;
}

.area-page-body {
  margin: 0;
  /* 本文はmutedでなく濃色で(2026-08-31ユーザー指摘: 薄色本文の禁止) */
  color: var(--color-text);
  font-size: 14px;
  max-width: 640px;
}

.area-page-tag {
  display: inline-block;
  align-self: flex-start;
  padding: 1px var(--space-2);
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  font-size: 0.8125rem;
}

.area-page-single-chain-note {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-sm);
}

.area-page-empty {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: var(--space-4) var(--space-4);
  color: var(--color-text-muted);
}

.area-page-back-link {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
}

.area-page-back-link a {
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-sm);
}

/* コントロールバー（通貨セグメント・両替額表示・最終更新）。2026-08-30リデザインで追加。
   area-page-list と同じ1120px幅に揃える。 */
.area-page-controls {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.area-page-ccy-seg {
  display: inline-flex;
}

.area-page-ccy-toggle {
  height: 36px;
  padding: 0 var(--space-4);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: none;
  cursor: pointer;
}

.area-page-ccy-toggle:first-child {
  border-left: 1px solid var(--color-border);
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
}

.area-page-ccy-toggle:last-child {
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.area-page-ccy-toggle-active {
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-color: var(--color-primary);
}

.area-page-amount {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-md);
  color: var(--color-text-muted);
}

/* 両替額の自由入力欄（2026-08-30〜。プリセットselectではなく数値inputに変更。
   ユーザー指示: タップ領域44px・視認性優先のフォント大きめ・7桁程度が収まる幅）。 */
.area-page-amount-field {
  height: 44px;
  display: inline-flex;
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0 var(--space-3);
  gap: var(--space-1);
}

.area-page-amount-symbol {
  font-weight: var(--font-weight-bold);
  color: var(--color-text-muted);
  font-size: var(--font-size-lg);
}

/* Area.dc.htmlのインラインstyle値（"¥10,000"表示）に合わせ15px/700で表示（デザインモック突合対応。
   type=textのためスピンボタンは存在しない）。 */
.area-page-amount-input {
  width: 9ch;
  height: 100%;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  padding: 0;
}

.area-page-amount-input:focus {
  outline: none;
}

.area-page-updated {
  margin-left: auto;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* モバイル統計行内の複製「最終更新」。デスクトップ/タブレットでは非表示にし、
   640px以下のメディアクエリ側でのみ表示する（デザインモック突合対応）。 */
.area-page-stats-updated {
  display: none;
}

/* レート表直下の注記（各社公表の共通レートであり支店により異なる場合がある旨）。
   area-page-list と同じ1120px幅に揃え、表の下に控えめに表示する。 */
.area-page-branch-rate-notice {
  max-width: 1120px;
  margin: var(--space-5) auto 0;
  padding: 0 var(--space-4);
  color: var(--color-text);
  font-size: var(--font-size-sm);
  line-height: 1.7;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .area-page-intro,
  .area-page-empty,
  .area-page-back-link {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 640px) {
  .area-page-intro,
  .area-page-empty,
  .area-page-back-link {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }

  /* AreaMobile.dc.html準拠: h1は22px/800（デスクトップ28pxのまま2行折返ししていた乖離を解消）。 */
  .area-page-title {
    font-size: 22px;
  }

  .area-page-intro {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  /* モバイルはタイトル行を折り返し、切替ボタンをタイトル下へ全幅で配置する（2026-08-31追加）。 */
  .area-page-title-row {
    flex-wrap: wrap;
    width: 100%;
  }

  .area-switcher {
    width: 100%;
  }

  .area-switcher-button {
    width: 100%;
    justify-content: space-between;
  }

  /* 説明テキストをカード化して切替ボタンとの近接による視認性低下を防ぐ(2026-08-31ユーザー指摘) */
  .area-page-intro-desc {
    width: 100%;
    box-sizing: border-box;
    margin-top: var(--space-2);
    background: var(--color-surface);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-1);
    padding: var(--space-4);
  }

  .area-switcher-panel {
    left: 0;
    right: 0;
    width: 100%;
    max-height: 60vh;
    overflow-y: auto;
  }

  .area-switcher-grid {
    grid-template-columns: 1fr;
  }

  /* 統計行(両替所数/支店数)はモック準拠でモバイルのみコンパクトな横1行にする
     （縦積み24px数字ブロック→13px横並び+末尾に最終更新を右寄せ表示。デザインモック突合対応）。 */
  .area-page-stats {
    align-self: stretch;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: var(--space-3);
  }

  .area-page-stat {
    flex-direction: row;
    align-items: baseline;
    gap: 4px;
    text-align: left;
  }

  .area-page-stat-value {
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    line-height: 1;
  }

  .area-page-stat-label {
    margin-top: 0;
    font-size: 13px;
  }

  .area-page-stat-divider {
    display: none;
  }

  /* controls行の.area-page-updated（PC/タブレット用）はモバイルでは統計行側の複製に譲り非表示。 */
  .area-page-stats-updated {
    display: inline;
    margin-left: auto;
    font-size: 13px;
    color: var(--color-text-muted);
    white-space: nowrap;
  }

  .area-page-controls {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }

  /* 通貨セグメントはモック準拠で4ボタン等幅・横幅いっぱい・高さ40pxにする（デザインモック突合対応）。 */
  .area-page-ccy-seg {
    display: flex;
    align-self: stretch;
    width: 100%;
  }

  .area-page-ccy-toggle {
    flex: 1 1 0;
    height: 40px;
  }

  .area-page-updated {
    display: none;
  }
}


/* ===== /compare（prefix: compare-page-*）: 2026-09 全面刷新。デザインの正:
   scratchpad/design/Main.dc.html（PC 1440px）/ CompareMobile.dc.html（390px）。
   ヒーロー3枚+受取額ランキング（バー付き）+旅のスタイル別おすすめ+あわせて読む。
   角丸は --radius-sm/--radius-md のみ。hoverは0.2sフェード（site.css共通のa{transition}に準拠） ===== */
.compare-page-main {
  min-height: 60vh;
  max-width: 1160px;
  margin: 0 auto;
  padding: 28px 40px 56px;
}

/* パンくず（.guide-page-breadcrumb-link を共用。guide/guidesページは
   :where(.guide-page-main, .guides-page-main) a のリセットで下線が消えるが、
   compareページはそのラッパー外のため未リセットでブラウザ既定の下線が出ていた。 */
.compare-page-main .guide-page-breadcrumb-link {
  text-decoration: none;
}

.compare-page-title {
  font-size: 28px;
  font-weight: 800;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.compare-page-intro {
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
  max-width: 760px;
}

.compare-page-cond {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
}

.compare-page-cond-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
}

.compare-page-cond-chip small {
  font-weight: 500;
  color: var(--color-text-muted);
}

.compare-page-cond-live {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--color-text-muted);
}

.compare-page-cond-live i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-best);
  display: inline-block;
}

/* --- ヒーロー3枚（PC） --- */
.compare-page-hero {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap: 16px;
  margin-top: 22px;
}

.compare-page-hero-best {
  border: none;
  background: linear-gradient(135deg, var(--color-gold-card-from), var(--color-gold-card-to));
  padding: 22px 26px;
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--color-on-gold);
}

.compare-page-hero-label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  gap: 8px;
}

.compare-page-hero-name {
  font-size: 22px;
  font-weight: 800;
  margin-top: 2px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.compare-page-hero-amt {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.compare-page-hero-sub {
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-on-gold);
  opacity: 0.85;
}

.compare-page-hero-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.compare-page-hero-card-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-text-muted);
}

.compare-page-hero-card-value {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-text);
}

.compare-page-hero-card-desc {
  font-size: 13px;
  color: var(--color-text);
  line-height: 1.6;
}

/* --- モバイル専用ミニカード（.compare-page-mini。PCでは非表示。CompareMobile.dc.html .mini） --- */
.compare-page-mini {
  display: none;
}

/* --- セクション見出し（共通） --- */
.compare-page-sec {
  margin-top: 36px;
}

.compare-page-sec-h {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.compare-page-sec-h h2 {
  font-size: 20px;
  font-weight: 800;
  margin: 0;
  padding-top: 10px;
  border-top: 3px solid var(--color-accent-gold);
  display: inline-block;
  color: var(--color-text);
}

.compare-page-sec-h span {
  font-size: 13px;
  color: var(--color-text-muted);
}

/* --- 受取額ランキング --- */
.compare-page-rank {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 列幅は全行で一致させるため固定/minmaxで組む（frは名前列のみ）。金額(150px 右寄せ)・
   バー(300px)・行動ボタン(200px)は絶対幅固定＝ボタン有無で列位置がずれない
   （ATM行等ボタンなしでも.compare-page-row-actが列幅を確保する）。 */
.compare-page-row {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 150px 300px 200px;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
  min-height: 76px;
}

.compare-page-row-best {
  background: var(--color-card-best-bg);
  border-color: var(--color-gold-border);
}

.compare-page-row-name {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.compare-page-row-name b {
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-weight: 700;
}

/* 手段名: PC=フル表記/モバイル(<=640px)=短縮表記（CompareMobile.dc.html準拠。切替は下部の
   @media (max-width: 640px) で反転する）。 */
.compare-page-row-name-full {
  display: inline;
}

.compare-page-row-name-short {
  display: none;
}

.compare-page-row-name small {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.5;
}

.compare-page-row-amt {
  font-size: 24px;
  font-weight: 800;
  text-align: right;
  color: var(--color-text);
}

.compare-page-row-amt em {
  display: block;
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-loss);
}

.compare-page-row-best .compare-page-row-amt em {
  color: var(--color-best-text);
}

.compare-page-tag {
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}

.compare-page-tag-real {
  background: var(--color-best-bg);
  color: var(--color-best);
}

.compare-page-tag-est {
  background: var(--color-bg-subtle);
  color: var(--color-text-muted);
  border: 1px solid var(--color-border);
}

.compare-page-bar {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.compare-page-bar-track {
  height: 8px;
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  border-radius: 2px;
  overflow: hidden;
}

/* バー色は3段階（ratio = receive / best）。閾値はtemplates/pages/compare.php
   $compareBarParThreshold/$compareBarSlightThreshold・assets/js/live.js
   COMPARE_BAR_PAR_THRESHOLD/COMPARE_BAR_SLIGHT_THRESHOLDと同値。fillは不透明。 */
.compare-page-bar-fill {
  height: 100%;
}

.compare-page-bar-fill.is-par {
  background: var(--color-best);
}

.compare-page-bar-fill.is-slight {
  background: var(--color-freshness-aging);
}

.compare-page-bar-fill.is-loss {
  background: var(--color-loss);
}

.compare-page-bar-fill.is-out {
  background: var(--color-loss);
}

.compare-page-bar small {
  font-size: 12px;
  color: var(--color-text-muted);
}

.compare-page-row-act {
  justify-self: stretch;
}

/* --- 行動ボタン（.compare-page-btn=塗り/.compare-page-btn-o=アウトライン。Main.dc.html .btn/.btn-o） --- */
.compare-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 200px;
  height: 44px;
  padding: 0 20px;
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-weight: 700;
  background: var(--color-teal);
  color: var(--color-on-teal);
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  text-align: center;
}

.compare-page-btn:hover {
  background: var(--color-teal-deep);
  color: #ffffff;
  text-decoration: none;
}

.compare-page-btn-o {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 200px;
  height: 40px;
  padding: 0 16px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 700;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-primary);
  text-decoration: none;
  white-space: nowrap;
  box-sizing: border-box;
  text-align: center;
}

.compare-page-btn-o:hover {
  border-color: var(--color-primary);
  background: var(--color-bg-subtle);
  text-decoration: none;
}

/* --- メダル（1〜3位=グラデ・4位以降=中立トーン。Main.dc.html .medal-1/-2/-3/-n） --- */
.compare-page-medal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--radius-sm);
  font-weight: 800;
  font-size: 14px;
  flex: none;
}

.compare-page-medal-1 {
  background: linear-gradient(135deg, var(--color-medal-gold-from), var(--color-medal-gold-to));
  color: var(--color-on-gold);
}

.compare-page-medal-2 {
  background: linear-gradient(135deg, var(--color-medal-silver-from), var(--color-medal-silver-to));
  color: var(--color-on-medal-silver);
  border: 1px solid var(--color-medal-silver-edge);
}

.compare-page-medal-3 {
  background: linear-gradient(135deg, var(--color-medal-bronze-from), var(--color-medal-bronze-to));
  color: var(--color-on-medal-bronze);
}

.compare-page-medal-n {
  background: var(--color-bg-subtle);
  border: 1px solid var(--color-border);
  color: var(--color-text-muted);
}

.compare-page-notice {
  font-size: 13px;
  color: var(--color-text-muted);
  line-height: 1.6;
  margin-top: 12px;
}

/* --- 旅のスタイル別のおすすめ --- */
.compare-page-use {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.compare-page-use-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.compare-page-use-ic {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  background: var(--color-teal-soft);
  color: var(--color-teal);
  display: flex;
  align-items: center;
  justify-content: center;
}

.compare-page-use-card b {
  font-size: 16px;
  color: var(--color-text);
}

.compare-page-use-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text);
}

/* --- あわせて読む --- */
.compare-page-rel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.compare-page-rel a {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--color-text);
  text-decoration: none;
}

.compare-page-rel a:hover {
  border-color: var(--color-primary);
  text-decoration: none;
}

.compare-page-rel small {
  font-size: 12px;
  color: var(--color-text-muted);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.compare-page-rel b {
  font-size: 15px;
  line-height: 1.5;
  color: var(--color-text);
}

.compare-page-foot {
  margin-top: 40px;
  padding: 22px 0 0;
  border-top: 1px solid var(--color-border);
  font-size: 12px;
  color: var(--color-text-muted);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .compare-page-main {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 640px) {
  .compare-page-main {
    padding: 18px 16px 40px;
  }

  .compare-page-title {
    font-size: 22px;
    line-height: 1.35;
  }

  .compare-page-intro {
    font-size: 14px;
    line-height: 1.7;
  }

  .compare-page-cond {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
  }

  .compare-page-cond-chip {
    padding: 0 12px;
    align-self: flex-start;
  }

  .compare-page-cond-live {
    font-size: 12px;
  }

  .compare-page-hero {
    display: block;
    margin-top: 16px;
  }

  .compare-page-hero-best {
    padding: 18px;
  }

  .compare-page-hero-name {
    font-size: 19px;
  }

  .compare-page-hero-amt {
    font-size: 36px;
  }

  .compare-page-hero-sub {
    line-height: 1.55;
  }

  /* PCの市中/空港カードはモバイルでは.compare-page-miniへ差し替える（CompareMobile.dc.html準拠）。 */
  .compare-page-hero > .compare-page-hero-card {
    display: none;
  }

  .compare-page-mini {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
  }

  .compare-page-mini .compare-page-hero-card {
    padding: 12px 14px;
    gap: 3px;
  }

  .compare-page-mini .compare-page-hero-card-label {
    font-size: 12px;
  }

  .compare-page-mini .compare-page-hero-card-value {
    font-size: 22px;
  }

  .compare-page-mini .compare-page-hero-card-desc {
    font-size: 12px;
    color: var(--color-text-muted);
  }

  .compare-page-sec {
    margin-top: 28px;
  }

  .compare-page-sec-h {
    display: block;
  }

  .compare-page-sec-h h2 {
    font-size: 18px;
    margin: 0 0 10px;
    padding-top: 8px;
  }

  .compare-page-sec-h span {
    display: block;
    font-size: 12px;
    margin: -4px 0 10px;
  }

  .compare-page-row {
    grid-template-columns: 30px 1fr auto;
    grid-template-areas: "m n a" "b b b" "s s s" "c c c";
    gap: 8px 10px;
    padding: 14px;
  }

  .compare-page-medal {
    grid-area: m;
  }

  /* display:contents で子要素(b/small)を親.compare-page-rowのグリッド直接の子として扱い、
     b=グリッドエリアn（medalの右）・small=グリッドエリアs（2段目）へ個別配置する
     （CompareMobile.dc.html .row .name/.row small.s は元々兄弟要素のため、PHP側は
     .compare-page-row-nameでラップしているぶんをCSSのdisplay:contentsで打ち消す）。 */
  .compare-page-row-name {
    display: contents;
  }

  .compare-page-row-name b {
    grid-area: n;
    font-size: 15px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
  }

  .compare-page-row-name-full {
    display: none;
  }

  .compare-page-row-name-short {
    display: inline;
  }

  .compare-page-row-name small {
    grid-area: s;
    font-size: 13px;
  }

  .compare-page-row-amt {
    grid-area: a;
    font-size: 22px;
    line-height: 1.1;
  }

  .compare-page-bar {
    grid-area: b;
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }

  .compare-page-bar-track {
    flex: 1;
    height: 6px;
  }

  .compare-page-bar small {
    font-size: 11px;
    white-space: nowrap;
  }

  .compare-page-row-act {
    grid-area: c;
    justify-self: stretch;
  }

  .compare-page-row-act .compare-page-btn,
  .compare-page-row-act .compare-page-btn-o {
    width: 100%;
    box-sizing: border-box;
  }

  .compare-page-notice {
    font-size: 12px;
    margin-top: 10px;
  }

  .compare-page-use,
  .compare-page-rel {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .compare-page-use-card {
    padding: 14px 16px;
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 4px 12px;
  }

  .compare-page-use-ic {
    width: 36px;
    height: 36px;
    grid-row: span 2;
  }

  .compare-page-use-card b {
    font-size: 15px;
  }

  .compare-page-use-card p {
    font-size: 13px;
    line-height: 1.65;
  }

  .compare-page-rel a {
    padding: 14px 16px;
    gap: 4px;
  }

  .compare-page-rel small {
    font-size: 11px;
  }

  .compare-page-rel b {
    font-size: 14px;
    line-height: 1.5;
  }
}


/* ===== web/app/[locale]/faq/page.module.css (prefix: faq-page-*) ===== */
.faq-page-main {
  min-height: 60vh;
  max-width: 900px;
  margin: 0 auto;
  padding: var(--space-4);
  padding-bottom: var(--space-6);
}

.faq-page-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.faq-page-title-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.faq-page-list {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.faq-page-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
}

.faq-page-question {
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin: 0 0 var(--space-2);
}

.faq-page-answer {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--font-size-md);
  line-height: 1.6;
}

@media (max-width: 640px) {
  .faq-page-main {
    padding: var(--space-3);
  }
}


/* ===== 404/410エラーページ（generator/templates/pages/not-found.php・prefix: not-found-page-*）===== */
.not-found-page-main {
  min-height: 60vh;
  max-width: 900px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4);
  text-align: center;
}

.not-found-page-code {
  margin: 0;
  font-size: 64px;
  font-weight: var(--font-weight-bold);
  color: var(--color-teal);
  line-height: 1;
}

.not-found-page-title {
  margin: var(--space-3) 0 0;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.not-found-page-body {
  margin: var(--space-3) 0 0;
  color: var(--color-text);
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.not-found-page-cta-list {
  list-style: none;
  max-width: 640px;
  margin: var(--space-5) auto 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.not-found-page-cta {
  display: block;
  text-align: center;
  text-decoration: none;
  padding: 10px 20px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-teal);
  color: var(--color-teal-deep-text);
  font-weight: var(--font-weight-semibold);
  transition: color 0.2s, background-color 0.2s, border-color 0.2s;
}

.not-found-page-cta:hover {
  background-color: var(--color-teal);
  color: var(--color-on-teal);
}

.not-found-page-cta-primary {
  background: var(--color-teal);
  border-color: var(--color-teal);
  color: var(--color-on-teal);
}

.not-found-page-cta-primary:hover {
  background: var(--color-teal-deep);
  border-color: var(--color-teal-deep);
  color: #ffffff;
}

@media (max-width: 640px) {
  .not-found-page-main {
    padding: var(--space-4) var(--space-3);
  }

  .not-found-page-cta-list {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* ===== web/app/[locale]/legal/page.module.css (prefix: legal-page-*) ===== */
.legal-page-main {
  min-height: 60vh;
  max-width: 800px;
  margin: 0 auto;
  padding: var(--space-4);
  padding-bottom: var(--space-6);
}

.legal-page-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0 0 var(--space-4);
}

.legal-page-section {
  margin-bottom: var(--space-6);
  scroll-margin-top: var(--space-4);
}

.legal-page-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin: 0 0 var(--space-2);
}

.legal-page-list {
  margin: 0;
  padding-left: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  color: var(--color-text);
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.legal-page-body {
  margin: 0 0 var(--space-1);
  color: var(--color-text);
  font-size: var(--font-size-md);
  line-height: 1.6;
}

.legal-page-link {
  color: var(--color-primary);
  font-weight: var(--font-weight-semibold);
  text-decoration: underline;
}

.legal-page-todo-note {
  margin: var(--space-1) 0 0;
  color: var(--color-loss);
  font-size: 0.8125rem;
  font-style: italic;
}

@media (max-width: 640px) {
  .legal-page-main {
    padding: var(--space-3);
  }
}


/* ===== web/app/[locale]/shop/[brand]/page.module.css (prefix: shop-page-*)
   2026-08-29 全面リデザイン（Main.dc.html/ShopMobile.dc.html準拠。詳細はshop.php冒頭コメント参照） ===== */
.shop-page-main {
  min-height: 60vh;
  max-width: 1120px;
  margin: 0 auto;
  padding: var(--space-4) 56px;
  padding-bottom: var(--space-6);
}

/* ---- パンくず ---- */
.shop-page-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) 0 var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  flex-wrap: wrap;
}

/* area.php用: shop-page-mainのような1120px親が無いため自前で中央寄せする */
.area-page-breadcrumb {
  max-width: 1120px;
  margin: var(--space-2) auto 0;
  padding: var(--space-2) var(--space-4);
}

/* area/shop(コンテンツ幅1120pxのページ)ではアフィリカード帯もカード列と同じ幅に揃える
   (2026-08-29ユーザー指摘。ホームは従来の1440pxのまま) */
.area-page-main .affiliate-cards-wrapper,
.shop-page-main .affiliate-cards-wrapper,
.area-page-main .sister-hotel-wrapper {
  max-width: 1120px;
  padding: 0 var(--space-4);
}
/* コラム一覧(.guides-page-main は自身が1120px+24px padding の親)では二重paddingでPR帯だけ狭くなるため内側余白を無くし記事グリッドと同幅にする */
.guides-page-main .affiliate-cards-wrapper { max-width: none; padding: 0; }

/* shop-wise-teaser.php（動的差額訴求帯）はshop-page-main内蔵のため、pr-teaser-wrapper自身の
   max-width/padding(home用の1440px+56px)を持たせると親のpaddingと二重になり帯が狭くなる。
   ヒーロー帯・支店別レート表と同じ全幅に揃える(2026-08-29ユーザー指摘) */
.shop-page-main .pr-teaser-wrapper {
  max-width: none;
  margin: var(--space-4) 0 0;
  padding: 0;
}

.shop-page-breadcrumb-link {
  color: var(--color-text-muted);
  text-decoration: none;
}

.shop-page-breadcrumb-link:hover {
  color: var(--color-primary);
}

.shop-page-breadcrumb-sep {
  flex-shrink: 0;
  color: var(--color-border);
}

.shop-page-breadcrumb-current {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}

/* ---- ページヘッダー ---- */
.shop-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
  padding: var(--space-1) 0 var(--space-5);
  flex-wrap: wrap;
}

.shop-page-header-main {
  min-width: 0;
}

.shop-page-title-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
}

/* 28px/800はMain.dc.htmlのインラインstyle値をそのまま転記（デザインモック突合対応。
   以前はfont-size-xl(22px)/700で、モックより一回り小さかった）。 */
.shop-page-title {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
  margin: 0;
}

.shop-page-subrow {
  margin-top: var(--space-1);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.shop-page-subrow-dot {
  margin: 0 var(--space-1);
}

.shop-page-header-actions {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.shop-page-cta-button {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: 36px;
  padding: 0 var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  white-space: nowrap;
}

.shop-page-cta-button:hover {
  background: var(--color-bg-subtle);
}

/* ---- 通貨選択チップ（ヒーロー帯・支店別レート比較表の受取通貨切替。2026-08-30〜）。
   language-switcher-*（site-header.php）と同じ「見た目チップ＋透明<select>重ね」方式を
   .shop-page-cta-button と同系の見た目（ライト背景・角丸var(--radius-sm)）で流用する。 ---- */
.shop-page-ccy-select-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.shop-page-ccy-select-chip {
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: 36px;
  padding: 0 var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
}

.shop-page-ccy-select-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.shop-page-ccy-select-hidden-label {
  position: absolute;
  inset: 0;
}

.shop-page-ccy-select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  border: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  /* iOS Safariの自動ズーム抑止にはcomputed font-sizeが16px以上必要（language-switcher-selectと同一対応）。 */
  font-size: max(1rem, var(--font-size-sm));
}

/* ---- ヒーロー帯上部・通貨選択行（2026-08-30〜 配置変更: shop-page-header-actionsから移動。
   「地図で見る」「公式サイト」の外部リンクボタンと見た目が同じピル型で並ぶと通貨セレクタ
   （状態切替コントロール）と区別しにくいという指摘対応。ヒーロー帯と同一のダーク背景ブロック
   （.shop-page-hero-block）でラップし、選択通貨が直下の受取額計算に反映されることを
   視覚的に一体化させる。チップ本体は.shop-page-ccy-select-chip（ライト背景用）をそのまま
   流用しつつ、このコンテキストでのみ配色をダーク背景向けに上書きする。 ---- */
.shop-page-hero-block {
  background: var(--color-header-panel-bg);
  border-radius: var(--radius-md);
  overflow: hidden;
}

.shop-page-hero-block .shop-page-hero {
  border-radius: 0;
}

.shop-page-hero-ccy-row {
  display: flex;
  padding: var(--space-3) var(--space-6);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.shop-page-hero-ccy-select-wrapper .shop-page-ccy-select-chip {
  border-color: var(--color-header-border);
  background: transparent;
  color: #ffffff;
}

@media (max-width: 640px) {
  .shop-page-hero-ccy-row {
    padding: var(--space-3) var(--space-5);
  }
}

/* ---- ヒーロー帯（ネイビー3分割・単一マークアップ。モバイルは2列グリッドで先頭セルが全幅） ---- */
.shop-page-hero {
  background: var(--color-header-panel-bg);
  border-radius: var(--radius-md);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
}

/* shop ヒーロー帯(ネイビー固定)の要確認バッジはゴールド地(ユーザー指定)。他ページの赤系とは別扱い */
.shop-page-hero .suspect-badge-badge {
  margin-bottom: 8px;
  background: var(--color-accent-gold);
  color: var(--color-on-gold);
}

.shop-page-hero-cell {
  padding: var(--space-6) var(--space-6);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.shop-page-hero-cell:last-child {
  border-right: none;
}

.shop-page-hero-label {
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-header-text-subtle);
}

/* 40px/800はMain.dc.htmlのインラインstyle値をそのまま転記（デザインモック突合対応）。 */
.shop-page-hero-figure {
  margin-top: var(--space-2);
  font-size: 40px;
  font-weight: 800;
  color: var(--color-accent-gold);
  line-height: 1;
}

.shop-page-hero-area .shop-page-hero-figure,
.shop-page-hero-diff .shop-page-hero-figure,
.shop-page-hero-rank {
  color: #ffffff;
}

.shop-page-hero-rank {
  margin-top: var(--space-2);
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
}

.shop-page-hero-rank-num {
  font-size: 40px;
  font-weight: 800;
  line-height: 1;
}

.shop-page-hero-rank-unit {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  color: var(--color-header-text-muted);
}

.shop-page-hero-note {
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-header-text-muted);
}

.shop-page-hero-note-muted {
  color: var(--color-header-text-subtle);
}

@media (max-width: 640px) {
  /* ShopMobile.dc.html準拠: h1は22px/800（デスクトップ28pxのまま2行折返ししていた乖離を解消）。 */
  .shop-page-title {
    font-size: 22px;
  }

  .shop-page-hero {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: var(--space-5);
    display: grid;
    gap: var(--space-4);
  }

  .shop-page-hero-cell {
    padding: 0;
    border-right: none;
  }

  .shop-page-hero-primary {
    grid-column: 1 / -1;
    padding-bottom: var(--space-4);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .shop-page-hero-figure {
    font-size: 2.125rem;
  }

  .shop-page-hero-rank-num {
    font-size: 1.25rem;
  }
}

/* ---- 基本情報 + 推移グラフ（2カラム） ---- */
.shop-page-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-5);
}

.shop-page-info-grid-single {
  grid-template-columns: 1fr;
}

.shop-page-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: var(--space-6) var(--space-6);
}

.shop-page-card-label {
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  text-transform: uppercase;
}

.shop-page-info-list {
  margin-top: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

/* ---- 店舗紹介文（案C・2026-08-31: 全通貨表の後・affiliate-cardsの直前に配置する独立全幅カード。
   左カラム=見出し+ゴールド罫+エリア/支店数チップ、右カラム=本文段落の2カラムレイアウト） ---- */
.shop-page-location-card {
  margin-top: var(--space-8);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 32px 36px;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 40px;
}

.shop-page-location-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.shop-page-location-title {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--color-text);
}

.shop-page-location-rule {
  width: 44px;
  height: 3px;
  background: var(--color-accent-gold);
}

.shop-page-location-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.shop-page-location-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: var(--radius-sm);
  padding: 4px 9px;
  font-size: 12px;
}

.shop-page-location-chip-area {
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
  font-weight: var(--font-weight-medium);
}

.shop-page-location-chip-count {
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
}

.shop-page-location-paras {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.shop-page-location-body {
  margin: 0;
  font-size: 15px;
  line-height: 1.95;
  /* 全段落とも濃色で統一(2026-08-31ユーザー指摘: 薄色本文の禁止) */
  color: var(--color-text);
}

.shop-page-info-row {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
}

/* flex-basis固定84pxだと英語ラベル（例 "Head Office Address"）が折り返して崩れるため、
   min-width(ja想定の最短幅)+max-width(englishの折返し上限)の可変幅にする（レビュー指摘W-5対応）。 */
.shop-page-info-key {
  flex: 0 1 auto;
  min-width: 84px;
  max-width: 150px;
  font-size: 13px;
  color: var(--color-text-muted);
  padding-top: 1px;
}

.shop-page-info-value {
  flex: 1 1 0%;
  min-width: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-text);
}

.shop-page-info-value-muted {
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
}

.shop-page-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.shop-page-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
  border-radius: var(--radius-sm);
  padding: 2px var(--space-2);
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
}

.shop-page-chip-primary {
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
}

/* ---- JPY買レート推移カード ---- */
.shop-page-trend-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.shop-page-trend-toggle-group {
  display: flex;
  gap: var(--space-1);
  flex-shrink: 0;
}

.shop-page-trend-toggle {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 3px var(--space-3);
  cursor: pointer;
}

.shop-page-trend-toggle-active {
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-color: var(--color-primary);
}

.shop-page-trend-legend {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-3);
  font-size: 13px;
  color: var(--color-text);
}

.shop-page-trend-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.shop-page-trend-legend-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
}

.shop-page-trend-legend-swatch-buy {
  background: var(--color-best);
}

.shop-page-trend-legend-swatch-sell {
  background: var(--color-loss);
}

/* ホバー/タップのインタラクティブレイヤー用コンテナ（2026-08-29追加）。 */
.shop-page-trend-plot-area {
  position: relative;
}

/* ツールチップ(.shop-page-trend-tooltip)はカード全体（ヘッダー・凡例・フッターを含む）を基準に
   absolute配置する（プロット領域基準だとグラフ縦位置によってはフッター文言と重なるため、
   position:relativeの基準をカード自体に置き、JS側でカード矩形内にクランプする）。 */
.shop-page-trend-card {
  position: relative;
}

.shop-page-trend-svg {
  display: block;
  margin-top: var(--space-2);
  height: 120px;
  /* タッチ操作はタップのみ処理しdrag/moveをpreventDefaultしないため、縦スクロールは
     常に機能する。touch-actionは保険としてブラウザのジェスチャー認識を明示する。 */
  touch-action: pan-y;
}

/* 30/90日切替は親要素（<div data-live="trend-svg-30|90">）のhidden属性で行う（2026-08-29〜。
   以前は<svg>自体にhidden属性を付けていたが、display:block指定と[hidden]のUA既定スタイルが
   衝突するバグがあったため、hidden対象を親divに変更しSVG側は常にdisplay指定のみで完結させた）。 */

/* デスクトップ/モバイルの2バリアントSVG切替（2026-08-29ユーザー指示: 390px幅でプロットが
   縮んで見づらいため、左パディング比率が異なる別viewBoxのSVGをCSSメディアクエリで出し分ける）。 */
.shop-page-trend-svg-mobile {
  display: none;
}

@media (max-width: 640px) {
  .shop-page-trend-svg {
    height: 100px;
  }

  .shop-page-trend-svg-desktop {
    display: none;
  }

  .shop-page-trend-svg-mobile {
    display: block;
  }

  .shop-page-trend-axis-label,
  .shop-page-trend-axis-date {
    font-size: 10px;
  }
}

.shop-page-trend-gridline {
  stroke: var(--color-border);
  stroke-width: 1;
}

.shop-page-trend-line {
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.shop-page-trend-line-buy {
  stroke: var(--color-best);
}

.shop-page-trend-line-sell {
  stroke: var(--color-loss);
}

.shop-page-trend-dot {
  stroke: var(--color-header-panel-bg);
  stroke-width: 1;
}

.shop-page-trend-dot-buy {
  fill: var(--color-best);
}

.shop-page-trend-dot-sell {
  fill: var(--color-loss);
}

/* ---- ホバー/タップのインタラクティブツールチップ（2026-08-29追加） ----
   <circle><title>のネイティブツールチップは気づかれにくいため、pointermove/pointerdownで
   クロスヘア線＋強調マーカー＋HTMLフローティングツールチップを表示する補助機能。
   initTrendHover()（generator/assets/js/live.js）がx1/x2・cx/cyの更新とクラス付与を行う。 */
.shop-page-trend-hover-hitbox {
  fill: transparent;
  pointer-events: all;
}

.shop-page-trend-hover-layer {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.08s ease;
}

.shop-page-trend-hover-layer-active {
  opacity: 1;
}

.shop-page-trend-crosshair {
  stroke: var(--color-text-muted);
  stroke-width: 1;
  stroke-dasharray: 3 3;
}

.shop-page-trend-hover-dot {
  stroke: var(--color-header-panel-bg);
  stroke-width: 2;
}

.shop-page-trend-hover-dot-buy {
  fill: var(--color-best);
}

.shop-page-trend-hover-dot-sell {
  fill: var(--color-loss);
}

.shop-page-trend-tooltip {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  pointer-events: none;
  background: var(--color-surface);
  color: var(--color-text);
  border-radius: 4px;
  box-shadow: var(--shadow-1);
  padding: 6px 10px;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.shop-page-trend-tooltip[hidden] {
  display: none;
}

.shop-page-trend-tooltip-date {
  color: var(--color-text-muted);
  font-size: 11px;
}

.shop-page-trend-tooltip-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.shop-page-trend-tooltip-swatch {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  flex-shrink: 0;
}

.shop-page-trend-tooltip-swatch-buy {
  background: var(--color-best);
}

.shop-page-trend-tooltip-swatch-sell {
  background: var(--color-loss);
}

/* 開始日は横軸ラベル(shop-page-trend-axis-date)に統合したため、フッターは「今日」行のみ右寄せ表示 */
.shop-page-trend-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.shop-page-trend-axis-label,
.shop-page-trend-axis-date {
  font-size: 12px;
  fill: var(--color-text-muted);
}

.shop-page-trend-today {
  font-weight: var(--font-weight-bold);
  color: var(--color-best);
}

/* ---- 支店別レート / 全通貨レート 見出し行 ---- */
.shop-page-section-heading-row {
  margin-top: var(--space-8);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
}

/* 19px/800はMain.dc.htmlのインラインstyle値をそのまま転記（デザインモック突合対応）。 */
.shop-page-section-heading {
  margin: 0;
  font-size: 19px;
  font-weight: 800;
  color: var(--color-text);
}

.shop-page-section-sub {
  font-size: 13px;
  color: var(--color-text-muted);
}

/* ---- 支店別レート表（デスクトップ） ---- */
.shop-page-branch-table-wrapper {
  margin-top: var(--space-3);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  overflow: hidden;
}

.shop-page-branch-table {
  width: 100%;
  border-collapse: collapse;
}

.shop-page-branch-table th,
.shop-page-branch-table td {
  padding: 0 var(--space-4);
  height: var(--row-height);
  text-align: left;
  font-size: var(--font-size-sm);
}

.shop-page-branch-table thead th {
  height: auto;
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
  border-bottom: 1px solid var(--color-border);
}

.shop-page-branch-th-name {
  width: 34%;
}

.shop-page-th-right,
.shop-page-td-right {
  text-align: right;
}

.shop-page-branch-table tbody td {
  border-bottom: 1px solid var(--color-border);
}

.shop-page-branch-table tbody tr:last-of-type td {
  border-bottom: none;
}

.shop-page-branch-best-row {
  background: var(--color-best-bg);
}

.shop-page-branch-hidden-row {
  display: none;
}

/* 展開トグル(開閉可能)。対象行のクラスはSSR出力時から不変のまま、shop-page-row-revealed
   修飾クラスの付与/除去のみで表示・非表示を切り替える（2026-08-29 展開後に再度閉じられない
   不具合の修正。以前はJSがhidden属性/クラスを一方向に外すだけで再クローズ手段が無かった）。 */
.shop-page-branch-hidden-row.shop-page-row-revealed {
  display: table-row;
}

.shop-page-branch-name-cell {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.shop-page-branch-name {
  font-weight: var(--font-weight-semibold);
}

.shop-page-branch-best-row .shop-page-branch-name {
  font-weight: var(--font-weight-bold);
}

.shop-page-best-badge {
  display: inline-flex;
  align-items: center;
  /* 旧配置(店名の後ろ)用のmargin-leftは撤去。前置になったため親flexのgapで間隔を取る */
  background: var(--color-best);
  color: var(--color-on-best);
  border-radius: var(--radius-sm);
  padding: 2px var(--space-2);
  font-size: 0.75rem;
  font-weight: var(--font-weight-bold);
}

.shop-page-receive-cell {
  font-weight: var(--font-weight-bold);
  color: var(--color-best);
}

/* ---- 支店別レートカード（モバイル。デスクトップでは非表示） ---- */
.shop-page-branch-cards {
  display: none;
  margin: var(--space-3) 0 0;
  padding: 0;
  list-style: none;
  flex-direction: column;
  gap: var(--space-2);
}

.shop-page-branch-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: var(--space-3) var(--space-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.shop-page-branch-card-best {
  background: var(--color-best-bg);
}

.shop-page-branch-card-hidden {
  display: none;
}

.shop-page-branch-card-hidden.shop-page-row-revealed {
  display: flex;
}

.shop-page-branch-card-main {
  min-width: 0;
}

.shop-page-branch-card-name-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.shop-page-branch-card-figures {
  text-align: right;
  flex: none;
}

.shop-page-branch-card-receive {
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-best);
}

.shop-page-branch-card-rate {
  margin-top: 2px;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

@media (max-width: 640px) {
  .shop-page-branch-table-wrapper {
    display: none;
  }

  .shop-page-branch-cards {
    display: flex;
  }
}

/* ---- 「残りを全て表示」展開ボタン（支店別レート・全通貨表 共通） ---- */
.shop-page-expand-row {
  display: flex;
  justify-content: center;
  padding: var(--space-3);
  border-top: 1px solid var(--color-border);
}

/* モバイルカードリスト用の展開ボタン行。カードリスト(ul)の外側にあるため、
   デスクトップではテーブル側ボタンと二重表示にならないよう明示的に隠し、
   640px以下(カードリスト表示時)のみ表示する */
.shop-page-branch-cards-expand-row {
  display: none;
  border-top: none;
  /* カード列との間に十分な余白を取り誤タップを防ぐ */
  padding-top: var(--space-3);
}

@media (max-width: 640px) {
  .shop-page-branch-cards-expand-row {
    display: flex;
  }
}

.shop-page-expand-button {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  /* タップ領域44px以上を確保(モバイルUXのユーザー指摘対応) */
  min-height: 44px;
  padding: 0 var(--space-4);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* 展開時、下向きシェブロンを180度回転させ上向き（折りたたむ）表示にする */
.shop-page-expand-icon {
  transition: transform var(--transition-fast);
}

.shop-page-expand-icon-flipped {
  transform: rotate(180deg);
}

/* ---- すべての通貨レート表 ---- */
.shop-page-table-wrapper {
  margin-top: var(--space-3);
  overflow-x: auto;
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
}

.shop-page-table {
  width: 100%;
  border-collapse: collapse;
}

.shop-page-table th,
.shop-page-table td {
  padding: var(--space-2) var(--space-4);
  height: var(--row-height);
  text-align: left;
  border-bottom: 1px solid var(--color-border);
  font-size: var(--font-size-sm);
}

.shop-page-table thead th {
  background: transparent;
  color: var(--color-text-muted);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-xs);
  border-bottom: 1px solid var(--color-border);
}

.shop-page-table tbody tr:last-child td {
  border-bottom: none;
}

.shop-page-currency-hidden-row {
  display: none;
}

.shop-page-currency-hidden-row.shop-page-row-revealed {
  display: table-row;
}

/* 外れ値ガード（2026-09-03〜）。数値は表示したまま行頭にバッジを出すため、行自体は
   淡いtintのみで視認性を落とさない（design指示: 読者に隠さない）。 */
.shop-page-currency-row-suspect td {
  background: var(--color-suspect-bg);
}

.shop-page-ccy-code {
  font-weight: var(--font-weight-bold);
}

.shop-page-ccy-name {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

.shop-page-empty {
  color: var(--color-text-muted);
}

/* 注記はmuted色でなく本文色で読める濃さにする(2026-08-28ユーザー指摘。
   1本目=取得時刻注記の上余白を広げ、アフィリカードとの間が窮屈にならないようにする) */
.shop-page-freshness-notice {
  margin: var(--space-5) 0 0;
  font-size: var(--font-size-sm);
  line-height: 1.7;
  color: var(--color-text);
}

.shop-page-freshness-notice + .shop-page-freshness-notice {
  margin-top: var(--space-1);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .shop-page-main {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 640px) {
  .shop-page-main {
    padding: var(--space-3);
  }

  .shop-page-header {
    align-items: flex-start;
  }

  .shop-page-info-grid {
    grid-template-columns: 1fr;
  }

  .shop-page-location-card {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 24px;
  }
}


/* ===== web/app/[locale]/shops/page.module.css (prefix: shops-page-*) ===== */
.shops-page-main {
  min-height: 60vh;
  padding-bottom: var(--space-6);
}

.shops-page-intro {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
}

.shops-page-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

.shops-page-title-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.shops-page-subheading {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.shops-page-grid {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.shops-page-card {
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
}

/* 位置チップ（実装追加分）: RankingCardsと同じフロー配置・色付きチップ（--color-location-chip-*）。
   areaLabel(実データ)→駅名(日本語化)→都市名の優先順で表示する。 */
.shops-page-city-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  margin-bottom: var(--space-2);
  width: fit-content;
}

.shops-page-city-tag-icon {
  flex-shrink: 0;
  color: var(--color-location-chip-text);
}

.shops-page-card-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  text-decoration: none;
  margin-bottom: 3px;
}

.shops-page-card-name:hover {
  color: var(--color-primary);
}

.shops-page-card-name-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.shops-page-card-branch-row {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.shops-page-card-branch-name {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

/* 実数のみ表示（虚偽表示防止） */
.shops-page-card-branch-others {
  margin-left: 4px;
  color: var(--color-text-muted);
  /* 旧opacity:0.85は継承色をさらに薄め3.85:1でAA未達だったため撤去し、
     --color-text-mutedを直接指定する（axe対応。2026-09-14） */
}

.shops-page-card-rate-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-3);
}

.shops-page-card-rate-label {
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
}

.shops-page-card-footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-bg-subtle);
}

.shops-page-link-group {
  display: flex;
  gap: var(--space-1);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .shops-page-intro,
  .shops-page-grid {
    padding-left: 24px;
    padding-right: 24px;
  }

  .shops-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .shops-page-intro,
  .shops-page-grid {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }

  .shops-page-grid {
    grid-template-columns: 1fr;
  }

  /* 320px幅で横スクロールが発生していた修正: grid内カードはmin-width:autoの既定値により
     内包コンテンツの最小幅までしか縮まらずページ全体を押し広げていた。0にして1frトラック幅へ収める。
     footerはfreshness-badge+link-groupがnowrapで収まりきらない場合のみ2行に折返す安全策
     （en/ロケールの長い文言で顕在化） */
  .shops-page-card {
    min-width: 0;
  }

  .shops-page-card-footer {
    flex-wrap: wrap;
    row-gap: var(--space-1);
  }
}


/* ===== generator独自追加: 駅一覧ページ /station (web側に対応するNext.jsページなし。
   prefix: stations-page-*). 構造・命名規則は shops-page-* を踏襲。 ===== */
.stations-page-main {
  min-height: 60vh;
  padding-bottom: var(--space-6);
}

.stations-page-intro {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
}

.stations-page-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

.stations-page-title-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.stations-page-subheading {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

.stations-page-grid {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
}

.stations-page-card {
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
}

.stations-page-card-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  text-decoration: none;
  margin-bottom: var(--space-2);
}

.stations-page-card-name:hover {
  color: var(--color-primary);
}

.stations-page-card-name-icon {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

.stations-page-card-meta-row {
  margin-bottom: var(--space-2);
}

.stations-page-card-count {
  display: inline-flex;
  align-items: center;
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  width: fit-content;
}

.stations-page-card-best-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-2);
  font-size: 0.9375rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin-bottom: var(--space-3);
}

.stations-page-card-best-label {
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
}

.stations-page-card-footer {
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-bg-subtle);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .stations-page-intro,
  .stations-page-grid {
    padding-left: 24px;
    padding-right: 24px;
  }

  .stations-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .stations-page-intro,
  .stations-page-grid {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }

  .stations-page-grid {
    grid-template-columns: 1fr;
  }

  .stations-page-card {
    min-width: 0;
  }

  .stations-page-card-best-row {
    flex-wrap: wrap;
    row-gap: var(--space-1);
  }
}


/* ===== generator独自追加: エリア一覧ページ /areas (web側に対応するNext.jsページなし。
   prefix: areas-page-*). 構造・命名規則は stations-page-* を踏襲。 ===== */
.areas-page-main {
  min-height: 60vh;
  padding-bottom: var(--space-6);
}

.areas-page-intro {
  max-width: 1120px;
  margin: var(--space-4) auto 0;
  padding: 0 var(--space-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}

.areas-page-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

.areas-page-title-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.areas-page-subheading {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}

/* 2026-08-31リデザイン: 「主要エリア」固定4都市カード + 地域グループ×コンパクト行カードに置き換え
   （デザインモック AreasFeatured.dc.html 準拠。旧 .areas-page-grid/.areas-page-card は廃止）。 */

/* セクション見出し（「主要エリア」・地域グループ名。モックの .grp と同じく右に罫線を伸ばす）。 */
.areas-page-group-heading {
  max-width: 1120px;
  /* セクション見出しとして視認できる余白とサイズにする(2026-08-31ユーザー指摘)。
     19px/800はshopページの.shop-page-section-headingと同一のセクション見出し規格 */
  margin: var(--space-8) auto var(--space-4);
  padding: 0 var(--space-4);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: 19px;
  font-weight: 800;
  /* 見出しはブランドネイビー(ダークテーマでは明色ブルーに自動反転)で本文と差別化 */
  color: var(--color-primary);
}

.areas-page-group-heading::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--color-border);
}

.areas-page-intro + .areas-page-group-heading {
  margin-top: var(--space-6);
}

/* 主要エリア: 4カラムグリッド・数値を主役にした大型カード。 */
.areas-page-featured-grid {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 var(--space-4);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.areas-page-featured-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 22px 22px 18px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-decoration: none;
  color: inherit;
}

/* バンコクのみネイビーヒーロー配色（ヘッダー系トークンでテーマ不変にする。モック準拠）。 */
.areas-page-featured-card-hero {
  background: var(--color-header-panel-bg);
}

.areas-page-featured-card-name {
  font-size: 17px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.areas-page-featured-card-hero .areas-page-featured-card-name {
  color: #ffffff;
}

.areas-page-featured-card-figures {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
}

.areas-page-featured-card-figure {
  font-size: 30px;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}

.areas-page-featured-card-hero .areas-page-featured-card-figure {
  color: #ffffff;
}

.areas-page-featured-card-hero .areas-page-featured-card-figure-gold {
  color: var(--color-accent-gold);
}

.areas-page-featured-card-unit {
  margin-left: 4px;
  font-size: 13px;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-muted);
}

.areas-page-featured-card-hero .areas-page-featured-card-unit {
  color: var(--color-header-text-muted);
}

.areas-page-featured-card-cta {
  font-size: 13px;
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}

.areas-page-featured-card-hero .areas-page-featured-card-cta {
  color: var(--color-header-text-muted);
}

/* 地域グループ: コンパクトな行カード・3カラムグリッド。 */
.areas-page-compact-grid {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 var(--space-4);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.areas-page-compact-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 14px 18px;
  text-decoration: none;
  color: inherit;
}

.areas-page-compact-card:hover {
  box-shadow: var(--shadow-2);
}

.areas-page-compact-card-name {
  font-size: 15px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.areas-page-compact-card-stat {
  font-size: 13px;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.areas-page-compact-card-stat b {
  font-size: 16px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .areas-page-intro,
  .areas-page-group-heading,
  .areas-page-featured-grid,
  .areas-page-compact-grid {
    padding-left: 24px;
    padding-right: 24px;
  }

  .areas-page-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .areas-page-compact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .areas-page-intro,
  .areas-page-group-heading,
  .areas-page-featured-grid,
  .areas-page-compact-grid {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }

  .areas-page-featured-grid {
    grid-template-columns: 1fr;
  }

  .areas-page-compact-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== web/app/[locale]/station/[slug]/page.module.css (prefix: station-page-*) ===== */
.station-page-main {
  min-height: 60vh;
  padding-bottom: var(--space-6);
}

.station-page-intro {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.station-page-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

.station-page-title-icon {
  flex-shrink: 0;
  color: var(--color-primary);
}

.station-page-body {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--font-size-md);
  max-width: 72ch;
}

.station-page-notice {
  max-width: 1440px;
  margin: var(--space-2) auto 0;
  padding: 0 56px;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
}

/* 半径2km以内が0件の場合のフォールバック表示（生成側独自追加。web/にNext.js版なし。2026-08-24）。 */
.station-page-fallback {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: var(--space-4) 56px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.station-page-fallback-text {
  margin: 0;
  color: var(--color-text);
  font-size: var(--font-size-md);
}

.station-page-fallback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

/* 姉妹サイトRuamThai Hotelの駅別ページ導線カード（2026-09-08新設。hotel-station-cta.php）。
   PrTeaser/WiseTeaser系のティール（案内色）テイストのボーダーカード。自社サービスのため
   写真背景・PRバッジは使わない。ホバーは0.2sフェードが標準（CLAUDE.md UI規約）。 */
.hotel-station-cta-wrapper {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
}

.hotel-station-cta-card {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-teal);
  border-radius: var(--radius-md);
  background: var(--color-teal-soft);
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.hotel-station-cta-card:hover {
  background: var(--color-teal);
}

.hotel-station-cta-card:hover .hotel-station-cta-title,
.hotel-station-cta-card:hover .hotel-station-cta-desc,
.hotel-station-cta-card:hover .hotel-station-cta-icon {
  color: #ffffff;
}

.hotel-station-cta-icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--color-teal-deep);
  transition: color 0.2s ease;
}

.hotel-station-cta-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hotel-station-cta-title {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-teal-deep);
  transition: color 0.2s ease;
}

.hotel-station-cta-desc {
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  transition: color 0.2s ease;
}

.station-page-other-stations {
  max-width: 1440px;
  margin: var(--space-6) auto 0;
  padding: 0 56px;
}

.station-page-other-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}

.station-page-station-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
}

.station-page-station-list a {
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-sm);
}

.station-page-station-list a:hover {
  text-decoration: underline;
}

.station-page-back-link {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
}

.station-page-back-link a {
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--font-size-sm);
}

@media (min-width: 641px) and (max-width: 1024px) {
  .station-page-intro,
  .station-page-notice,
  .station-page-fallback,
  .hotel-station-cta-wrapper,
  .station-page-other-stations,
  .station-page-back-link {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (max-width: 640px) {
  .station-page-intro,
  .station-page-notice,
  .station-page-fallback,
  .hotel-station-cta-wrapper,
  .station-page-other-stations,
  .station-page-back-link {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }
}

/* ===== station.php 2026-09-08リニューアル（駅ページ。prefix: station-*） =====
   docs/design-mock/station/station-mock.html の .station-mock-* を移植（Esc::済みの実データで描画）。
   一覧テーブル/カードは既存 .station-rate-table-〜 と .station-rate-card-list-〜 をそのまま流用し、
   本セクションはヒーロー・通貨コントロール・ベストレートカード・地図・駅について・周辺スポット・
   姉妹サイト導線の外枠のみを追加する。 */

/* --- ヒーロー（shop-page-hero系の調子: パンくず→H1→路線バッジ→要点1行） --- */
.station-hero-wrap {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* 見出し(H1)自体は既存 .station-page-title / .station-page-title-icon をそのまま流用する
   （フォントサイズ・色など mock の .station-mock-title と同一のため新規CSSは不要）。 */

.station-line-badges { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 2px 0 0; }
.station-line-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: #ffffff;
}
.station-line-badge-bts { background: #2b7f8b; } /* サイト既存のteal(案内色)を系統流用。BTS公式緑ではなく本サイトの配色体系に合わせる */
/* --color-primaryはダークで明色(#8fb4e3)に反転し白文字との組み合わせが2.14:1でNGになるため、
   var(--color-on-primary)で文字色をテーマ追従させる（axe color-contrast対応。2026-09-14） */
.station-line-badge-mrt { background: var(--color-primary); color: var(--color-on-primary); }

.station-summary-line {
  margin: var(--space-1) 0 0;
  color: var(--color-text);
  font-size: var(--font-size-md);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}
.station-summary-line b { font-weight: var(--font-weight-bold); }
.station-summary-sep { color: var(--color-border); }
.station-summary-best { color: var(--color-best); font-weight: var(--font-weight-bold); }

/* --- 通貨・金額切替（control-bar部品を簡略流用: エリアフィールドを外し金額+通貨ペアのみ） --- */
.station-control-wrap {
  max-width: 1440px;
  margin: var(--space-4) auto 0;
  padding: 0 56px;
}
.station-control-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 18px 26px;
  display: flex;
  align-items: center;
  gap: 18px;
}

/* --- ベストレート（ranking-cards-best-card のゴールド意匠を1店舗の大きめカードとして流用） --- */
.station-best-wrap {
  max-width: 1440px;
  margin: var(--space-5) auto 0;
  padding: 0 56px;
}
.station-best-card {
  position: relative;
  border: 2px solid var(--color-accent-gold);
  background: var(--color-card-best-bg);
  border-radius: var(--radius-md);
  padding: var(--space-5) var(--space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  flex-wrap: wrap;
}
.station-best-left { display: flex; flex-direction: column; gap: 8px; min-width: 260px; }
.station-best-name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-on-station-best);
}
.station-best-branch { font-size: var(--font-size-sm); color: var(--color-text-muted); }
.station-best-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.station-best-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.station-best-figure { font-size: 2.25rem; font-weight: 800; color: var(--color-on-station-best); line-height: 1; }
.station-best-note { font-size: var(--font-size-sm); color: var(--color-text-muted); }
.station-best-links { display: flex; gap: var(--space-2); margin-top: 4px; }

/* --- 一覧+地図 2カラム（PC）／地図トグル+一覧（モバイル） --- */
.station-body-wrap {
  max-width: 1440px;
  margin: var(--space-5) auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--space-5);
  align-items: start;
}
.station-list-col { min-width: 0; }
.station-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}
.station-list-title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text); margin: 0; }
.station-sort-group { display: inline-flex; border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; }
.station-sort-btn {
  border: none;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  padding: 8px 14px;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.station-sort-btn + .station-sort-btn { border-left: 1px solid var(--color-border); }
.station-sort-btn[aria-pressed="true"] { background: var(--color-primary); color: var(--color-on-primary); }

.station-filter-note {
  display: none;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--color-teal-soft);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  color: var(--color-teal-deep);
}
.station-filter-note[data-active="true"] { display: flex; }
.station-filter-clear {
  margin-left: auto;
  border: none;
  background: none;
  color: var(--color-teal-deep);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
}

/* 順位タグ（金銀銅+4位以降は数字。寸法は既存.ranking-cards-rank-tag/.ranking-cards-best-tagと同一
   （font-size 0.8125rem・padding var(--space-1) var(--space-3)）にしてテキスト欠けを防ぐ） */
.station-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-bold);
  white-space: nowrap;
}
.station-rank-1 { background: linear-gradient(160deg, var(--color-medal-gold-from) 0%, var(--color-medal-gold-to) 100%); color: var(--color-on-gold); }
.station-rank-2 { background: linear-gradient(160deg, var(--color-medal-silver-from) 0%, var(--color-medal-silver-to) 100%); color: var(--color-on-medal-silver); box-shadow: inset 0 0 0 1px var(--color-medal-silver-edge); }
.station-rank-3 { background: linear-gradient(160deg, var(--color-medal-bronze-from) 0%, var(--color-medal-bronze-to) 100%); color: var(--color-on-medal-bronze); }
.station-rank-plain { color: var(--color-text-muted); font-weight: var(--font-weight-semibold); }

.station-dist-chip {
  display: inline-flex;
  flex-direction: column;
  line-height: 1.25;
}
.station-dist-chip small { font-size: 0.6875rem; color: var(--color-text-muted); }

/* PCテーブル: station-rate-table-table クラスをそのまま流用（1列目=順位を追加） */
.station-table-wrapper {
  overflow-x: auto;
}
.station-table-wrapper .station-rate-table-table { width: 100%; table-layout: fixed; }
/* 店名列を広げ折返しを防ぐ（順位/距離/店名/レート/受取額/更新/地図の7列構成。
   地図サイドバー(380px)分だけ幅が絞られるため、リンク文言は既存ranking-cards-card-linksの短縮表記
   （「公式サイト」「マップで確認」相当）に合わせて1行に収める） */
.station-table-wrapper .station-rate-table-table th:nth-child(1),
.station-table-wrapper .station-rate-table-table td:nth-child(1) { width: 48px; }
.station-table-wrapper .station-rate-table-table th:nth-child(2),
.station-table-wrapper .station-rate-table-table td:nth-child(2) { width: 62px; }
.station-table-wrapper .station-rate-table-table th:nth-child(3),
.station-table-wrapper .station-rate-table-table td:nth-child(3) { width: 232px; min-width: 232px; }
.station-table-wrapper .station-rate-table-table th:nth-child(4),
.station-table-wrapper .station-rate-table-table td:nth-child(4) { width: 104px; }
.station-table-wrapper .station-rate-table-table th:nth-child(5),
.station-table-wrapper .station-rate-table-table td:nth-child(5) { width: 80px; }
.station-table-wrapper .station-rate-table-table th:nth-child(6),
.station-table-wrapper .station-rate-table-table td:nth-child(6) { width: 70px; }
.station-table-wrapper .station-rate-table-table th:nth-child(7),
.station-table-wrapper .station-rate-table-table td:nth-child(7) { width: 168px; }
.station-table-wrapper .station-rate-table-table th { white-space: nowrap; }
.station-table-wrapper .station-rate-table-table td { height: auto; padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; }
.station-table-wrapper .station-rate-table-brand-name,
.station-table-wrapper .station-rate-table-branch-name {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 210px;
}
.station-table-wrapper .station-rate-table-branch-name { font-size: 0.8125rem; }
/* 操作列: 地図/公式サイトを横並び1行に（既存の.station-rate-table-link-groupはflex-wrap:wrapのため上書き） */
.station-table-wrapper .station-rate-table-link-group {
  flex-wrap: nowrap;
  white-space: nowrap;
  gap: 6px;
}
.station-table-wrapper .station-rate-table-link-group .pill-link {
  padding: 5px 8px;
  font-size: 0.75rem;
}
.station-row-selected { outline: 2px solid var(--color-teal); outline-offset: -2px; }

@media (max-width: 1024px) {
  .station-body-wrap { grid-template-columns: 1fr; }
  .station-map-col { order: -1; }
}

/* --- 地図（MapLibre GL JS。station.js がコンテナへ地図を初期化しピンを描画する） --- */
.station-map-col { position: static; }

.station-map-toggle {
  display: none;
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  padding: 10px 14px;
  margin-bottom: var(--space-2);
  cursor: pointer;
}
@media (max-width: 1024px) { .station-map-toggle { display: block; } }

.station-map-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-1);
  background: var(--color-bg-subtle);
}
@media (max-width: 1024px) { .station-map-frame[data-collapsed="true"] { display: none; } }

.station-map-caption {
  margin: var(--space-2) 0 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

/* 駅中心マーカー（MapLibre Markerのelementとして使う。位置決めはMapLibre自体が行うため
   position:absoluteは付けない） */
.station-map-center-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  pointer-events: none;
}
.station-map-center-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--color-primary);
  border: 3px solid #ffffff;
  box-shadow: var(--shadow-1);
}
.station-map-center-label {
  background: var(--color-primary);
  color: var(--color-on-primary);
  font-size: 0.6875rem;
  font-weight: var(--font-weight-bold);
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}

/* 店舗ピン（順位数字入りしずく型。1位のみゴールド、他はティール。MapLibre Markerのelement） */
.station-map-pin {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
}
.station-map-pin-drop {
  width: 26px;
  height: 26px;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(16,24,40,0.25);
  border: 2px solid #ffffff;
}
.station-map-pin-drop span { transform: rotate(45deg); font-size: 0.6875rem; font-weight: var(--font-weight-bold); }
.station-map-pin-rank1 .station-map-pin-drop { background: linear-gradient(160deg, var(--color-medal-gold-from) 0%, var(--color-medal-gold-to) 100%); color: var(--color-on-gold); }
.station-map-pin:not(.station-map-pin-rank1) .station-map-pin-drop { background: var(--color-teal); color: var(--color-on-teal); }
.station-map-pin[aria-pressed="true"] .station-map-pin-drop { outline: 3px solid var(--color-primary); outline-offset: 1px; }
.station-map-pin:hover .station-map-pin-drop { filter: brightness(1.05); }

.station-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-2);
  font-size: 0.75rem;
  color: var(--color-text-muted);
}
.station-map-legend span { display: inline-flex; align-items: center; gap: 5px; }
.station-map-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }


/* --- 駅について --- */
.station-about-wrap {
  max-width: 1440px;
  margin: var(--space-6) auto 0;
  padding: 0 56px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
}
@media (max-width: 900px) { .station-about-wrap { grid-template-columns: 1fr; } }

.station-about-block {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: var(--space-4) var(--space-5);
}
.station-about-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  margin: 0 0 var(--space-3);
}
.station-neighbor-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  font-size: var(--font-size-sm);
  color: var(--color-text);
  margin-bottom: var(--space-3);
}
.station-neighbor-row a { color: var(--color-primary); text-decoration: none; }
.station-neighbor-row a:hover { text-decoration: underline; }
.station-neighbor-current {
  font-weight: var(--font-weight-bold);
  color: #ffffff;
  background: var(--color-teal-deep);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
}

/* 駅について: データ由来の定義リスト（ThaiHotel .about-dl/.about-row 相当。既存トークンのみ） */
.station-about-dl { margin: 0; }
.station-about-row {
  display: flex;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px solid var(--color-border);
}
.station-about-row:last-child { border-bottom: 0; }
.station-about-row { align-items: flex-start; }
/* 見出しはラベル化(幅統一 76px・役割別配色: 交通=ティール / 空港=ネイビー淡 / 両替所=ゴールド淡 / ホテル=テラコッタ淡) */
.station-about-row dt {
  flex: 0 0 76px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  white-space: nowrap;
  background: var(--color-teal-soft);
  color: var(--color-teal-deep);
}
html[lang="en"] .station-about-row dt { flex-basis: 88px; }
.station-about-row dt[data-role="airport"] { background: #e4ebf5; color: #2c4a78; }
.station-about-row dt[data-role="shop"] { background: var(--color-accent-gold-soft); color: var(--color-on-gold); }
.station-about-row dt[data-role="hotel"] { background: #fbe7dc; color: #9a4620; }
.station-about-row dd { padding-top: 3px; }
.station-about-row dd {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 14px;
  color: var(--color-text);
}

.station-spot-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.station-spot-row { display: flex; align-items: center; gap: var(--space-2); font-size: var(--font-size-sm); }
.station-spot-label {
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-weight: var(--font-weight-semibold);
  border-radius: var(--radius-sm);
  padding: 2px 8px;
  color: #ffffff;
}
.station-spot-label-mall { background: #6a5acd; }
/* --color-tealはダークで明色(#6fb3bd)に反転し白文字との組み合わせが2.37:1でNGになるため、
   var(--color-on-teal)で文字色をテーマ追従させる。marketplaceは#b8860b固定で白地3.25:1のため
   一段濃い同系色に変更する（どちらもaxe color-contrast対応。2026-09-14） */
.station-spot-label-attraction { background: var(--color-teal); color: var(--color-on-teal); }
.station-spot-label-marketplace { background: #8f6008; }
.station-spot-name { color: var(--color-text); flex: 1; }
.station-spot-walk { color: var(--color-text-muted); font-size: var(--font-size-xs); white-space: nowrap; }

.station-about-hotel-wrap { margin-top: var(--space-4); }

/* --- 姉妹サイト（RuamThai Hotel）導線カード: 既存hotel-station-cta-*の帯型から、
   写真+テキストの目立つカード型に作り替え（既存トークンのみ・新色なし） --- */
.station-sister-card {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow 0.2s ease;
}
.station-sister-card:hover { box-shadow: var(--shadow-2); }

.station-sister-photo {
  position: relative;
  flex: 0 0 26%;
  min-height: 168px;
  background: var(--color-bg-subtle);
}
.station-sister-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.station-sister-credit {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  color: #ffffff;
  font-size: 12px;
  padding: 4px var(--space-2);
}

.station-sister-body {
  flex: 1;
  min-width: 0;
  padding: var(--space-5);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  column-gap: 24px;
  row-gap: 10px;
  align-content: start;
}

.station-sister-top {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.station-sister-eyebrow {
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-teal-deep-text);
}

.station-sister-heading {
  margin: 0;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 900;
  color: var(--color-text);
}

.station-sister-left {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.station-sister-desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
}

.station-sister-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  margin-top: 4px;
  height: 44px;
  padding: 0 var(--space-6);
  border-radius: var(--radius-sm);
  background: var(--color-teal);
  color: var(--color-on-teal);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  transition: background-color 0.2s ease;
}
.station-sister-card:hover .station-sister-cta { background: var(--color-teal-deep); }

.station-sister-right {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.station-sister-stats {
  display: flex;
  gap: 8px;
}
.station-sister-stat {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: var(--color-bg-subtle);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
}
.station-sister-stat-figure {
  font-family: var(--font-manrope);
  font-weight: 800;
  font-size: 22px;
  line-height: 1;
  color: var(--color-text);
}
.station-sister-stat-label {
  margin-top: 4px;
  font-size: 12px;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.station-sister-names-lead {
  margin-top: 10px;
  font-size: 13px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-muted);
}

.station-sister-names-list {
  list-style: none;
  margin: -4px 0 0;
  padding: 0;
}
.station-sister-names-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: 6px 0;
  border-bottom: 1px solid var(--color-border);
  font-size: 14px;
}
.station-sister-names-row:last-child { border-bottom: 0; padding-bottom: 0; }
.station-sister-names-row-name {
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.station-sister-names-row-walk {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--color-teal-deep-text);
  font-weight: var(--font-weight-medium);
}

@media (max-width: 640px) {
  .station-sister-card { flex-direction: column; }
  .station-sister-photo { flex: none; width: 100%; height: 160px; min-height: 160px; }
  .station-sister-body { padding: var(--space-4); grid-template-columns: 1fr; }
  .station-sister-top, .station-sister-left, .station-sister-right { grid-column: 1; grid-row: auto; }
  .station-sister-heading { font-size: 18px; }
  .station-sister-cta { align-self: stretch; }
}

/* --- 他の駅 --- */
.station-other-wrap {
  max-width: 1440px;
  margin: var(--space-6) auto 0;
  padding: 0 56px;
}
/* 注記帯: 共通 .note-band-band は1120px中央寄せのため、駅ページでは各セクションと同じ幅(1440px・左右56px)に揃えて左端を合わせる */
.station-note-wrap {
  max-width: 1440px;
  margin: var(--space-5) auto 0;
  padding: 0 56px;
}
.station-note-wrap .note-band-band { max-width: none; margin: 0; }
/* 姉妹サイトカード: 上(リスト→カード)と下(カード→駅について)の間隔を同じ24pxに */
.station-page-main > .hotel-station-cta-wrapper { margin-top: var(--space-6); }
/* 既存.station-page-other-stationsは単独ページ下部専用の余白(margin/padding)を持つため、
   station-other-wrap側で既に確保した余白と二重にならないよう内側では相殺する。 */
.station-other-wrap .station-page-other-stations {
  margin: 0;
  padding: 0;
}

@media (min-width: 641px) and (max-width: 1024px) {
  .station-hero-wrap, .station-control-wrap, .station-best-wrap,
  .station-body-wrap, .station-about-wrap, .station-other-wrap, .station-note-wrap {
    padding-left: 24px; padding-right: 24px;
  }
}
@media (max-width: 640px) {
  .station-hero-wrap, .station-control-wrap, .station-best-wrap,
  .station-body-wrap, .station-about-wrap, .station-other-wrap, .station-note-wrap {
    padding-left: var(--space-3); padding-right: var(--space-3);
  }
  .station-note-wrap .note-band-band { margin: 0; }
  .station-control-card { flex-wrap: wrap; gap: 14px; }
  .station-control-card .control-bar-divider { display: none; }
  .station-control-card .control-bar-field-grow { flex: 1 1 calc(50% - 8px); min-width: 0; }
  .station-control-card > a, .station-control-card > button { flex: 1 1 100%; }
  .station-control-card .control-bar-field { border-top: 0; padding-top: 0; }
  .station-control-card .control-bar-amount-row { padding-bottom: 4px; margin-bottom: 0; }
  .station-control-card .control-bar-select-value { border-bottom: 1px solid var(--color-border); padding-bottom: 4px; }
  .station-control-card { gap: 12px; }
  .station-body-wrap .station-rate-card-list-list { margin-left: 0; margin-right: 0; }
  .station-best-card { flex-direction: column; align-items: flex-start; }
  .station-best-right { align-items: flex-start; }
  .station-table-wrapper { display: none; }
}

/* モバイルの全通貨レート表: 通貨コード+和名を2段表示にし、額面・レート・列見出しの
   不自然な途中改行を防ぐ(2026-08-29ユーザー指摘) */
@media (max-width: 640px) {
  .shop-page-ccy-name {
    display: block;
    font-size: 0.6875rem;
    line-height: 1.3;
  }

  .shop-page-table td.tabular-nums,
  .shop-page-table th {
    white-space: nowrap;
  }

}

/* モバイルの推移グラフ: カード左右余白を最小化しプロット幅を最大化する(2026-08-29ユーザー指示)。
   カード自体(shop-page-card)の他用途に影響しないようtrend-headerを持つカードだけ… は
   CSSでは特定できないため、trend系専用の子要素側でネガティブマージンは使わず、
   カードにモディファイアclassを付与する方式にする(shop-page-trend-cardをshop.phpに追加) */
@media (max-width: 640px) {
  .shop-page-trend-card {
    padding-left: var(--space-2);
    padding-right: var(--space-2);
  }

  .shop-page-trend-card .shop-page-trend-header,
  .shop-page-trend-card .shop-page-trend-footer {
    padding-left: var(--space-2);
    padding-right: var(--space-2);
  }
}

/* ヘッダーのタイ現地時間時計(JSが描画するまでhidden)。モバイルでも表示する
   (2026-08-29ユーザー指示: モバイル優先。ラベル文言はモバイルでは省略しアイコン+時刻のみ) */
.site-header-clock {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-header-text-muted);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  white-space: nowrap;
  /* margin-left は inner の gap(24px) と二重取りになり、この位置だけ40px空いて
     ナビ内の間隔(16px)と揃わないため付けない。間隔は gap に一本化する。 */
  /* PCではラベル風チップとして目立たせる(2026-08-29ユーザー指示)。時刻は白太字 */
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--color-header-border);
  border-radius: var(--radius-sm);
  padding: 5px 12px;
}

.site-header-clock-timerow {
  white-space: nowrap;
}

.site-header-clock [data-live="thai-clock-time"],
.site-header-clock-seconds {
  color: #ffffff;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-lg);
}

.site-header-clock[hidden] {
  display: none;
}

/* 言語切替: デスクトップはテキストチップ・モバイルは地球アイコン */
.language-switcher-icon {
  display: none;
}

@media (max-width: 640px) {
  /* モバイルもPCと同じチップ装飾を維持する(2026-08-29ユーザー指示。paddingは後段の
     2段スタックルールでコンパクト値に上書き) */

  .site-header-clock [data-live="thai-clock-time"],
  .site-header-clock-seconds {
    color: #ffffff;
    font-weight: var(--font-weight-bold);
    font-size: 0.8125rem;
  }

  .language-switcher-icon {
    display: block;
  }

  .language-switcher-text {
    display: none;
  }

  /* 左右余白を詰める(モバイルのスペース確保。375px実機でロゴが省略されないための余裕を作る) */
  .site-header-inner {
    padding-left: var(--space-2);
    padding-right: var(--space-1);
    gap: var(--space-1);
  }

  /* モバイルは2段スタック: 上段にラベル(小)・下段に時刻(大きめ・秒つき)。
     アイコンは省略(2026-08-29ユーザー指示) */
  .site-header-clock svg {
    display: none;
  }

  .site-header-clock {
    flex-direction: column;
    align-items: center;
    gap: 0;
    line-height: 1.25;
    /* 余剰幅はロゴと時計の間に集め、時計〜ハンバーガーを右端に密着させる */
    margin-left: auto;
    /* PCと同じラベル風チップ装飾(モバイルはコンパクトなpadding)。
       高さはハンバーガー/言語アイコン(44px角)と揃える */
    box-sizing: border-box;
    height: 44px;
    justify-content: center;
    padding: 2px 6px;
  }

  .site-header-clock-label {
    display: block;
    font-size: 0.625rem;
  }

  /* 時計+言語アイコンを収めるためロゴを縮小(15pxでは1px超過でellipsisが発火するため14px) */
  .site-header-logo {
    font-size: 0.875rem;
    letter-spacing: 0;
  }

  /* 言語アイコンのボタン枠をハンバーガーメニュー(44px角)と同寸に揃える */
  .language-switcher-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
  }

  .site-header-actions {
    gap: var(--space-1);
  }
}


/* 374px以下(Android主流の360px)もiPhoneと同じ2段スタック(ラベル+HH:MM:SS)を維持し、
   代わりにロゴ(文字13px・アイコン32px)を縮めて幅を確保する(2026-09-04ユーザー指示。
   360px実測: 文字14px/アイコン42pxでは時計チップ74pxに対し14px不足でロゴが省略される) */
@media (max-width: 374px) {
  .site-header-logo {
    font-size: 0.8125rem;
  }

  .site-header-logo-icon,
  .site-header-logo-icon svg {
    width: 32px;
    height: 32px;
  }
}

/* 340〜359px(Galaxy Z Foldカバー画面344px等)はロゴ縮小でも収まらないため、
   ラベル・秒なしのHH:MM1行へ戻して幅を確保する */
@media (max-width: 359px) {
  .site-header-clock {
    flex-direction: row;
  }

  .site-header-clock-label,
  .site-header-clock-seconds {
    display: none;
  }

  .site-header-clock [data-live="thai-clock-time"] {
    font-size: var(--font-size-sm);
  }
}

/* 極小幅では時計自体を諦めてロゴを優先する */
@media (max-width: 339px) {
  .site-header-clock {
    display: none;
  }
}

/* ===== guide (guide-page-* / guides-page-*) =====
   デザインの正: scratchpad/guide-design/{Main.dc.html, GuideIndex.dc.html, ArticleMobile.dc.html, common.css}
   （2026-09 ガイド機能追加。値はモックの数値をそのまま採用し、色は既存 --color-* トークンに置換。
   角丸は --radius-sm/--radius-md のみ。本文は --color-text 固定（muted禁止）） */

.guide-page-card,
.guides-page-city-best-card,
.guides-page-featured-card,
.guides-page-grid-card,
.guides-page-tools-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
}

.guide-page-main,
.guides-page-main {
  max-width: 1120px;
  margin: 0 auto;
  padding: 24px 24px 48px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* --- リンクの既定色/下線（モック common.css の a{color;text-decoration:none} 相当をガイド配下に限定適用。
     ブラウザ既定の青・下線が出ていた目次/サイドバー/カードリンクの不備を修正。
     本文(.guide-page-p)内のリンクのみ下線を復元する（後続の同specificityルールが順序で勝つ）） --- */
/* :where()で詳細度をゼロにし、.guide-page-btn等の単一クラス指定色(--color-on-primary等)を
   常に上書きしないようにする（デフォルトのリセットのみを目的とした宣言のため）。 */
:where(.guide-page-main, .guides-page-main) a {
  color: var(--color-primary);
  text-decoration: none;
}

.guide-page-p a,
.guide-page-ul a,
.guide-page-ol a {
  text-decoration: underline;
}

/* --- breadcrumb（shop-page-breadcrumb系と同一パターン） --- */
.guide-page-breadcrumb,
.guides-page-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.guide-page-breadcrumb-link,
.guides-page-breadcrumb-link {
  color: var(--color-text-muted);
}

.guide-page-breadcrumb-sep,
.guides-page-breadcrumb-sep {
  color: var(--color-border);
  flex-shrink: 0;
}

.guide-page-breadcrumb-current,
.guides-page-breadcrumb-current {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}

/* --- 共通ボキャブラリ（eyebrow/rule/chip/live/btn。モック common.css 準拠） --- */
.guide-page-eyebrow,
.guides-page-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
}

.guide-page-rule,
.guides-page-rule {
  width: 44px;
  height: 3px;
  background: var(--color-accent-gold);
}

.guide-page-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: var(--radius-sm);
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 600;
}

.guide-page-chip-blue {
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
}

.guide-page-chip-gold {
  background: var(--color-accent-gold);
  color: var(--color-on-gold);
}

.guide-page-chip-area {
  background: var(--color-location-chip-strong);
  color: var(--color-location-chip-text);
  font-weight: var(--font-weight-medium);
}

.guide-page-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-best-text);
}

.guide-page-live i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-best);
  display: inline-block;
}

.guide-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 18px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-md);
  font-weight: 700;
  background: var(--color-primary);
  color: var(--color-on-primary);
}

.guide-page-btn-o {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-size: var(--font-size-xs);
  font-weight: 500;
  color: var(--color-primary);
  background: var(--color-surface);
}

/* --- 記事ヘッダー --- */
.guide-page-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  /* .guide-page-article（display:flex; flex-direction:column; gap:28px）の直下の子要素として配置し、
     サイドバーと同じグリッド行から開始する（サイドバー上端をh1上端に揃えるため）。
     ヘッダー直後の余白は親のflex gap(28px)に任せるためpadding-bottomは付けない。
     幅は親.guide-page-articleのmax-width（716px）にstretchで揃うため、ここでは指定不要 */
  padding: 28px 0 0;
}

.guide-page-header-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.guide-page-h1 {
  margin: 0;
  font-size: 36px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.guide-page-lead {
  margin: 0;
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-text);
}

.guide-page-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
  color: var(--color-text-muted);
  flex-wrap: wrap;
}

.guide-page-meta-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.guide-page-meta-updated {
  margin-left: auto;
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text);
}

/* --- 2カラムレイアウト（記事760px + サイドバー300px, gap 56px） --- */
.guide-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 56px;
  align-items: start;
}

.guide-page-article {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 716px;
  font-size: 17px;
  line-height: 1.95;
  color: var(--color-text);
}

/* サイドバー上端を h1 上端に揃える(eyebrow行31px + gap16px + 記事ヘッダー上の余白28px = 実測75px。
   ≤960px の縦積み時は解除)。サイドバー内のアフィリカードは説明文を隠して高さを抑え、
   コラム一覧までがビューポート(高さ900px)内に収まるようにする(2026-09-03 ユーザー指摘) */
@media (min-width: 961px) {
  .guide-page-sidebar {
    margin-top: 75px;
  }
}

.guide-page-sidebar .wise-teaser-desc,
.guide-page-sidebar .wise-teaser-desc-note,
.guide-page-sidebar .airalo-teaser-desc,
.guide-page-sidebar .klook-teaser-desc {
  display: none;
}

.guide-page-sidebar .wise-teaser-card,
.guide-page-sidebar .airalo-teaser-card,
.guide-page-sidebar .klook-teaser-card {
  min-height: 0;
}

/* sticky にしない(追随させると内容がビューポートより高い場合に下端が見切れるため。2026-09-03 ユーザー判断) */
.guide-page-sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-self: start;
}

/* --- 目次 --- */
.guide-page-toc {
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-toc-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.guide-page-toc-list {
  margin: 0;
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  line-height: 1.6;
}

/* --- Markdown本文の見出し・段落・リスト・表（GuideShortcodes.php/Markdown.phpが出力するクラス） --- */
.guide-page-h2 {
  margin: 12px 0 0;
  font-size: 24px;
  line-height: 1.45;
  font-weight: 800;
  color: var(--color-text);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guide-page-h2 .guide-page-rule {
  width: 32px;
}

.guide-page-h3 {
  margin: 8px 0 0;
  font-size: 19px;
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-text);
}

.guide-page-p {
  margin: 0;
}

.guide-page-ul,
.guide-page-ol {
  margin: 0;
  padding-left: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-table-wrap {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  overflow-x: auto;
}

.guide-page-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}

.guide-page-table th {
  text-align: left;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-muted);
  background: var(--color-bg-subtle);
}

.guide-page-table td {
  padding: 14px 16px;
  border-top: 1px solid var(--color-border);
}

.guide-page-table-row-best {
  background: var(--color-best-bg);
}

.guide-page-table-row-best td:first-child {
  font-weight: 700;
}

.guide-page-table-footer {
  padding: 10px 16px;
  font-size: 12px;
  color: var(--color-text-muted);
  border-top: 1px solid var(--color-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* --- kpiバンド（{{block kpi_airport}}） --- */
.guide-page-kpi-band {
  padding: 22px 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  background: var(--color-card-rank-bg);
  box-shadow: none;
}

.guide-page-kpi-band-empty {
  display: block;
  padding: 18px 22px;
  color: var(--color-text-muted);
}

.guide-page-kpi-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 20px;
  border-right: 1px solid var(--color-card-rank-border);
}

.guide-page-kpi-col:first-child {
  padding-left: 0;
}

.guide-page-kpi-col:last-child {
  border-right: none;
  padding-right: 0;
}

.guide-page-kpi-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-muted);
}

.guide-page-kpi-value {
  font-size: 26px;
  font-weight: 800;
  color: var(--color-text);
}

.guide-page-kpi-value-loss {
  color: var(--color-loss);
}

.guide-page-kpi-pct {
  font-size: 15px;
}

.guide-page-kpi-shop {
  font-size: 13px;
  color: var(--color-text);
}

/* --- 結論・補足ボックス --- */
/* 結論ボックス: PR帯(--color-pr-band クリーム)と混同されないよう、ヘッダーと同じネイビー固定
   (テーマ不変)+白文字+ゴールド見出しで本文中の最重要ブロックとして差別化する(2026-09-03 ユーザー指摘) */
.guide-page-conclusion {
  padding: 22px 26px;
  display: flex;
  gap: 16px;
  background: var(--color-header-panel-bg);
  color: var(--color-header-text);
  box-shadow: none;
}

.guide-page-conclusion-icon {
  flex-shrink: 0;
  color: var(--color-accent-gold);
  margin-top: 6px;
}

.guide-page-conclusion-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--color-header-text);
}

.guide-page-conclusion-body b {
  font-size: 15px;
  color: var(--color-header-text);
}

.guide-page-conclusion-body > b:first-child {
  color: var(--color-accent-gold);
  letter-spacing: 0.04em;
}

.guide-page-conclusion-body .guide-page-p {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--color-header-text);
}

.guide-page-conclusion-body .guide-page-p strong {
  color: var(--color-accent-gold);
}

.guide-page-conclusion a {
  color: var(--color-accent-gold);
  text-decoration: underline;
}

/* 記事本文幅(760px)内の記事末尾アフィリカード: home用の1440px/56pxパディングを外し本文幅いっぱいに並べる */
.guide-page-article .affiliate-cards-wrapper {
  max-width: none;
  margin: 8px 0 0;
  padding: 0;
}

.guide-page-note {
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--color-card-rank-bg);
  box-shadow: none;
}

.guide-page-note b {
  font-size: 14px;
  color: var(--color-text);
}

.guide-page-note-body .guide-page-p {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
}

/* --- アフィリエイト（band/inline）: デザインの正 scratchpad/design/GuideBand.dc.html /
   GuideBandMobile.dc.html（2026-09 全面刷新。アイコン枠+PRバッジ/eyebrow+タイトル+根拠3点+CTA）。
   .guide-page-card（8871行）がbackground/radius-md/shadow-1を担うため、ここではborder等の
   band固有プロパティのみ定義する --- */
.guide-page-affiliate-band {
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 0 20px;
  align-items: center;
  border: 1px solid var(--color-border);
}

.guide-page-affiliate-band-icon {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: start;
}

.guide-page-affiliate-band-icon.is-epos {
  background: var(--color-teal-soft);
  color: var(--color-teal);
}

.guide-page-affiliate-band-icon.is-wise {
  background: #e6f4ea;
  color: var(--color-best);
}

.guide-page-affiliate-band-icon.is-klook {
  background: rgba(204, 98, 18, 0.12);
  color: var(--color-location-chip-bg);
}

.guide-page-affiliate-band-icon.is-expedia {
  background: rgba(184, 134, 11, 0.12);
  color: #b8860b;
}

.guide-page-affiliate-band-icon.is-airalo {
  background: #e7eef9;
  color: var(--color-primary);
}

.guide-page-affiliate-band-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-affiliate-band-top {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
}

.guide-page-affiliate-band-title {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.4;
  color: var(--color-text);
}

.guide-page-affiliate-band-points {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 2px;
}

.guide-page-affiliate-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-text);
}

.guide-page-affiliate-check svg {
  flex: none;
  margin-top: 3px;
}

.guide-page-affiliate-band-cta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  align-self: center;
}

/* CTAボタンはbandの中だけteal化する（.guide-page-btn自体はナビゲーション各所で紺のまま使うため
   グローバル変更はしない。2026-09 仕様3: 紺を新規UIの既定色にしない方針の一環） */
.guide-page-affiliate-band-cta .guide-page-btn {
  background: var(--color-teal);
  color: var(--color-on-teal);
}

.guide-page-affiliate-band-cta .guide-page-btn:hover {
  background: var(--color-teal-deep);
  color: #ffffff;
}

.guide-page-affiliate-band-note {
  font-size: 12px;
  color: var(--color-text-muted);
}

@media (max-width: 640px) {
  .guide-page-affiliate-band {
    grid-template-columns: 44px 1fr;
    grid-template-areas: "icon top" "title title" "points points" "cta cta" "note note";
    gap: 8px 12px;
    padding: 16px;
  }

  .guide-page-affiliate-band-body,
  .guide-page-affiliate-band-cta {
    display: contents;
  }

  .guide-page-affiliate-band-icon {
    grid-area: icon;
    width: 44px;
    height: 44px;
    align-self: center;
  }

  .guide-page-affiliate-band-top {
    grid-area: top;
    align-self: center;
  }

  .guide-page-affiliate-band-title {
    grid-area: title;
  }

  .guide-page-affiliate-band-points {
    grid-area: points;
  }

  .guide-page-affiliate-band-cta .guide-page-btn {
    grid-area: cta;
    width: 100%;
  }

  .guide-page-affiliate-band-note {
    grid-area: note;
    text-align: center;
  }
}

.guide-page-affiliate-inline {
  margin: 0;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* --- 本文幅の今日のベストレート({{block best_rates}}) / サイドバー版 共通 --- */
.guide-page-best-rates,
.guide-page-sidebar-best-rates {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.guide-page-sidebar-best-rates-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.guide-page-sidebar-best-rates-head b,
.guide-page-best-rates-shop,
.guide-page-sidebar-best-rates-shop {
  font-size: 14px;
  color: var(--color-text);
}

.guide-page-best-rates-rows,
.guide-page-sidebar-best-rates-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guide-page-best-rates-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 14px;
  color: var(--color-text);
}

.guide-page-best-rates-row b {
  font-size: 18px;
  color: var(--color-text);
}

/* --- 6手段比較（{{block compare_methods}}。compare-page-method-*と同一設計・別名前空間） --- */
.guide-page-compare-method-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.guide-page-compare-method-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-compare-method-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text);
}

.guide-page-compare-method-amount {
  font-size: 20px;
  font-weight: 800;
  color: var(--color-text);
}

.guide-page-compare-method-note {
  margin: 0;
  font-size: 12px;
  color: var(--color-text-muted);
}

/* --- 次に読む --- */
.guide-page-next-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 8px;
}

.guide-page-next-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.guide-page-next-card {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-next-card-title {
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-text);
}

.guide-page-next-card-meta {
  font-size: 13px;
  color: var(--color-text-muted);
}

/* --- サイドバー: 関連ページ・ガイド一覧 --- */
.guide-page-sidebar-related {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guide-page-sidebar-related b {
  font-size: 14px;
  color: var(--color-text);
}

.guide-page-sidebar-related-link {
  font-size: 14px;
  line-height: 1.6;
  display: flex;
  justify-content: space-between;
  color: var(--color-text);
}

.guide-page-sidebar-guide-list {
  padding: 0;
}

.guide-page-sidebar-guide-list-heading {
  display: block;
  font-size: 14px;
  font-weight: 700;
  padding: 16px 20px 8px;
}

.guide-page-sidebar-guide-list-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 12px;
  align-items: start;
  gap: 10px;
  padding: 10px 16px;
  border-top: 1px solid var(--color-border);
  text-decoration: none;
}

a.guide-page-sidebar-guide-list-row:hover {
  background: var(--color-bg-subtle);
}

.guide-page-sidebar-guide-list-row-current {
  background: var(--color-card-rank-bg);
}

.guide-page-sidebar-guide-list-num {
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 0;
  text-align: center;
  background: var(--color-card-rank-bg);
  color: var(--color-primary);
}

.guide-page-sidebar-guide-list-row-current .guide-page-sidebar-guide-list-num {
  background: var(--color-accent-gold);
  color: var(--color-on-gold);
}

.guide-page-sidebar-guide-list-title {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  color: var(--color-text);
}

.guide-page-sidebar-guide-list-row-current .guide-page-sidebar-guide-list-title {
  font-weight: 700;
}

.guide-page-sidebar-guide-list-chevron {
  color: var(--color-text-muted);
}

/* --- 一覧ページ（guides-page-*） --- */
.guides-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 48px;
  align-items: end;
  padding: 28px 0 36px;
}

.guides-page-header-main {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.guides-page-h1 {
  margin: 0;
  font-size: 36px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-text);
}

.guides-page-lead {
  margin: 0;
  font-size: 17px;
  line-height: 1.8;
  color: var(--color-text);
  max-width: 640px;
}

.guides-page-city-best-card {
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guides-page-city-best-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.guides-page-city-best-head b {
  font-size: 14px;
  color: var(--color-text);
}

.guides-page-city-best-value-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 14px;
  color: var(--color-text);
}

.guides-page-city-best-value {
  font-size: 30px;
  font-weight: 800;
  color: var(--color-text);
}

.guides-page-city-best-diff {
  font-size: 13px;
  color: var(--color-text);
}

.guides-page-featured-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 0;
  overflow: hidden;
  margin-bottom: 24px;
}

.guides-page-featured-card-body {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.guides-page-featured-card-chips {
  display: flex;
  gap: 8px;
  align-items: center;
}

.guides-page-featured-card-readtime {
  font-size: 13px;
  color: var(--color-text-muted);
}

.guides-page-featured-card-title {
  font-size: 26px;
  line-height: 1.45;
  font-weight: 800;
  color: var(--color-text);
}

.guides-page-featured-card-desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--color-text);
}

.guides-page-featured-card-cta {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-primary);
}

.guides-page-featured-card-panel {
  background: var(--color-header-bg);
  color: var(--color-header-text);
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}

.guides-page-featured-card-panel-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-header-text-muted);
}

.guides-page-featured-card-panel-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.guides-page-featured-card-panel-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 14px;
  color: var(--color-header-text-muted);
}

.guides-page-featured-card-panel-row b {
  font-size: 20px;
  color: var(--color-header-text);
}

.guides-page-featured-card-panel-row-best {
  border-top: 1px solid var(--color-header-border);
  padding-top: 10px;
  color: var(--color-accent-gold);
  font-weight: 700;
}

.guides-page-featured-card-panel-row-best b {
  font-size: 26px;
  color: var(--color-accent-gold);
}

.guides-page-featured-card-panel-note {
  font-size: 12px;
  color: var(--color-header-text-subtle);
}

.guides-page-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.guides-page-grid-card {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.guides-page-grid-card-chips {
  display: flex;
  gap: 8px;
  align-items: center;
}

.guides-page-grid-card-title {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 800;
  color: var(--color-text);
}

.guides-page-grid-card-desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text);
}

.guides-page-grid-card-readtime {
  margin-top: auto;
  font-size: 13px;
  color: var(--color-text-muted);
}

.guides-page-tools-card {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--color-card-rank-bg);
  box-shadow: none;
}

.guides-page-tools-card-title {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 800;
  color: var(--color-text);
}

.guides-page-tools-link {
  justify-content: space-between;
}

/* --- 記事ページ: 要点カード（A）・よくある質問（B）・出典注記（E）
   デザインの正: scratchpad/guide-design/SeoAdditions.dc.html セクションA/B/E --- */
.guide-page-summary {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.guide-page-summary-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.guide-page-summary-icon {
  width: 26px;
  height: 26px;
  border-radius: var(--radius-sm);
  background: var(--color-accent-gold);
  color: var(--color-on-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.guide-page-summary-title {
  font-size: 15px;
  color: var(--color-text);
}

.guide-page-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.guide-page-summary-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--color-text);
}

.guide-page-summary-num {
  color: var(--color-accent-gold);
  font-weight: 800;
}

.guide-page-faq-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.guide-page-faq-list {
  display: flex;
  flex-direction: column;
}

.guide-page-faq-item {
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.guide-page-faq-item + .guide-page-faq-item {
  border-top: 1px solid var(--color-border);
}

.guide-page-faq-q {
  display: flex;
  gap: 10px;
  font-size: 15px;
  color: var(--color-text);
}

.guide-page-faq-q-mark {
  color: var(--color-primary);
  font-weight: 800;
}

.guide-page-faq-a {
  margin: 0;
  padding-left: 26px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--color-text);
}

.guide-page-source-note {
  margin: 0;
  font-size: 13px;
  color: var(--color-text-muted);
}

.guide-page-source-link {
  text-decoration: underline;
}

/* --- ホーム: 両替コラム（C）。デザインの正: SeoAdditions.dc.html セクションC --- */
.home-columns-wrapper {
  max-width: 1120px;
  margin: 40px auto 0;
  padding: 0 var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.home-columns-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.home-columns-head-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.home-columns-heading {
  margin: 0;
  font-size: 19px;
  font-weight: 800;
  color: var(--color-primary);
}

.home-columns-lead {
  font-size: 14px;
  color: var(--color-text);
}

.home-columns-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.home-columns-card,
.home-columns-card * {
  text-decoration: none;
}

.home-columns-card {
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-columns-card:hover {
  background: var(--color-bg-subtle);
}

.home-columns-card-chips {
  display: flex;
  gap: 8px;
}

.home-columns-card-title {
  font-size: 17px;
  line-height: 1.5;
  font-weight: 800;
  color: var(--color-text);
}

.home-columns-card-readtime {
  font-size: 13px;
  color: var(--color-text-muted);
}

/* --- shop/area: 関連コラム（D）。デザインの正: SeoAdditions.dc.html セクションD --- */
.related-columns-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 32px;
}

/* area.php用: shop-page-mainのような1120px+padding親が無いため、area-page-branch-rate-notice等の
   兄弟要素と同じく自前で中央寄せ+左右paddingを持たせる（2026-09 実写指摘: 無指定だとページ左端に
   張り付いていた）。shop.phpはshop-page-main自体が1120px+paddingを持つため、このルールは
   shop側では二重適用にならない（親のpaddingに対する子要素としてmax-width:1120pxが効くのみ）。 */
.area-page-main .related-columns-section {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--space-4);
}

.related-columns-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  max-width: 760px;
}

.related-columns-card,
.related-columns-card * {
  text-decoration: none;
}

.related-columns-card {
  padding: 18px 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 12px;
  gap: 12px;
  align-items: center;
}

.related-columns-card:hover {
  background: var(--color-bg-subtle);
}

.related-columns-card-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.related-columns-card-body .guide-page-chip {
  align-self: flex-start;
}

.related-columns-card-title {
  font-size: 15px;
  line-height: 1.5;
  color: var(--color-text);
}

.related-columns-card-chevron {
  color: var(--color-text-muted);
}

/* ===== レスポンシブ ===== */

/* ≤1024px: ホーム「両替コラム」（C）を2カラムに */
@media (max-width: 1024px) {
  .home-columns-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ≤960px: サイドバーを記事の下に1カラムで配置。guides-page-headerも1カラム化 */
@media (max-width: 960px) {
  .guide-page-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-page-sidebar {
    position: static;
    max-height: none;
    overflow-y: visible;
    padding-right: 0;
  }

  .guides-page-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .guides-page-featured-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .guides-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ≤640px: ArticleMobile.dc.html準拠（h1 26px・本文16px・3指標バンドは縦積み・表は横スクロール） */
@media (max-width: 640px) {
  .guide-page-main,
  .guides-page-main {
    padding: 16px 16px 32px;
  }

  .guide-page-h1,
  .guides-page-h1 {
    font-size: 26px;
    line-height: 1.4;
  }

  .guide-page-lead,
  .guides-page-lead {
    font-size: 16px;
  }

  .guide-page-article {
    font-size: 16px;
    line-height: 1.9;
  }

  .guide-page-h2 {
    font-size: 21px;
  }

  .guide-page-kpi-band {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 16px 18px;
  }

  .guide-page-kpi-col {
    border-right: none;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--color-card-rank-border);
  }

  .guide-page-kpi-col:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .guide-page-next-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-page-compare-method-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .guides-page-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .guides-page-featured-card-body,
  .guides-page-featured-card-panel {
    padding: 20px;
  }

  .home-columns-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-columns-wrapper {
    padding: 0 var(--space-3);
  }

  .related-columns-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .related-columns-section {
    margin-top: 24px;
  }
}

/* アフィリカードのカテゴリチップ+カード別トーン(2026-09-03 ユーザー指示: 4枚を色で区別)。
   写真オーバーレイは各カードのカテゴリ色→濃色のグラデーション、CTAは白地+カテゴリ色文字。
   チップは左上、PRバッジ(右上)と同じ行 */
.affiliate-cat-chip {
  position: absolute;
  top: var(--space-4);
  left: var(--space-5);
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: var(--radius-sm);
  font-size: 11px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.06em;
  color: #ffffff;
}
.affiliate-cat-chip-airalo { background: var(--color-primary); }
/* klook/expedia: 白文字11px太字のためbrand色そのまま(--color-location-chip-bg/#b8860b)だと
   白地に3.94:1/3.25:1でAA(4.5:1)未達（ライト/ダーク共通・固定値のため両テーマで同一）。
   brand色トークン自体は他箇所のため変更せず、このチップだけ同系の一段濃い固定色にする（axe対応。2026-09-14）。 */
.affiliate-cat-chip-klook { background: var(--color-location-chip-strong); }
.affiliate-cat-chip-expedia { background: #8f6008; }
.affiliate-cat-chip-wise { background: var(--color-best); }

.airalo-teaser-card,
.klook-teaser-card,
.expedia-teaser-card,
.wise-teaser-card {
  padding-top: 52px;
}

/* ダークテーマ: --color-primary/--color-best が明色に反転するため、チップとCTA文字は固定の濃色系を使う */
:root[data-theme="dark"] .affiliate-cat-chip-airalo,
:root[data-theme="dark"] .airalo-teaser-cta { --_c: #1d3557; }
:root[data-theme="dark"] .affiliate-cat-chip-wise,
:root[data-theme="dark"] .wise-teaser-cta { --_c: #0e8345; }
:root[data-theme="dark"] .affiliate-cat-chip-airalo,
:root[data-theme="dark"] .affiliate-cat-chip-wise { background: var(--_c); }
:root[data-theme="dark"] .airalo-teaser-cta,
:root[data-theme="dark"] .wise-teaser-cta { color: var(--_c); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .affiliate-cat-chip-airalo { background: #1d3557; }
  :root:not([data-theme="light"]) .affiliate-cat-chip-wise { background: #0e8345; }
  :root:not([data-theme="light"]) .airalo-teaser-cta { color: #1d3557; }
  :root:not([data-theme="light"]) .wise-teaser-cta { color: #0e8345; }
}

/* アフィリカードCTA: hover はカテゴリ色の地+白文字にフェード(2026-09-03 ユーザー指摘: 紺地に紺文字で消えていた) */
.airalo-teaser-cta,
.klook-teaser-cta,
.expedia-teaser-cta,
.wise-teaser-cta {
  transition: background-color 0.2s ease, color 0.2s ease;
}
:root[data-theme="dark"] .airalo-teaser-cta:hover { background: #1d3557; color: #ffffff; }
:root[data-theme="dark"] .wise-teaser-cta:hover { background: #0e8345; color: #ffffff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .airalo-teaser-cta:hover { background: #1d3557; color: #ffffff; }
  :root:not([data-theme="light"]) .wise-teaser-cta:hover { background: #0e8345; color: #ffffff; }
}

/* ==========================================================================
   トップページ刷新（2026-09-04〜。仕様: scratchpad/spec-home-refresh.md）
   目次ナビ / レート推移カード / タイ旅行ニュース / ニュース一覧ページ / モバイル圧縮
   ========================================================================== */

/* スクロールアンカーのオフセットは共通部の `html{scroll-behavior:smooth}` +
   `[id]{scroll-margin-top:calc(var(--header-h)+16px)}`（修正必須項目13）に統一済み。 */

/* ---------- 目次ナビ (jump-nav.php) ---------- */
.jump-nav-nav {
  max-width: 1440px;
  margin: 20px auto 0;
  padding: 0 56px;
}

.jump-nav-desktop {
  display: flex;
  background: var(--color-surface);
  border: 1px solid #9fb3c8;
  border-radius: var(--radius-md);
  overflow: hidden;
}
:root[data-theme="dark"] .jump-nav-desktop { border-color: var(--color-border); }

.jump-nav-heading-zone {
  flex: 0 0 150px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: var(--space-3);
  background: var(--color-teal);
}
:root[data-theme="dark"] .jump-nav-heading-zone { background: var(--color-teal-deep); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .jump-nav-heading-zone { background: var(--color-teal-deep); }
}

/* 追加指摘10: モバイルと同じリストアイコンを付け、目次=17px/700・このページの内容=13px
   （モックの15px/12pxより大きくする指示のためこの値を採用）。 */
.jump-nav-heading-title {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #ffffff;
  font-size: 1.0625rem;
  font-weight: var(--font-weight-bold);
  white-space: nowrap;
}

.jump-nav-heading-icon {
  flex-shrink: 0;
}

.jump-nav-heading-sub {
  /* ライト時の背景--color-teal(#2b7f8b)に対し不透明度0.8の白は3.59:1でAA未達
     （不透明度を上げても4.5:1に対して余裕がないため不透明白に変更。axe対応。2026-09-14） */
  color: #ffffff;
  font-size: 0.8125rem;
}

.jump-nav-tiles {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(var(--jump-nav-count, 7), minmax(0, 1fr));
}

.jump-nav-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 96px;
  padding: 0 8px;
  text-decoration: none;
  color: var(--color-text);
  border-right: 1px solid #e3e9f0;
  transition: background-color 0.2s ease;
  text-align: center;
}
:root[data-theme="dark"] .jump-nav-tile { border-right-color: var(--color-border); }
.jump-nav-tile:last-child { border-right: none; }
.jump-nav-tile:hover { background: var(--tile-bg, var(--color-bg-subtle)); }

.jump-nav-tile-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.jump-nav-tile-label {
  font-size: 0.875rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text);
  line-height: 1.2;
}

.jump-nav-tile-note {
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

:root[data-theme="dark"] .jump-nav-tile-icon { opacity: 0.92; }

.jump-nav-mobile { display: none; }

@media (max-width: 767px) {
  .jump-nav-nav { padding: 0 var(--space-3); margin-top: var(--space-2); }
  .jump-nav-desktop { display: none; }
  .jump-nav-mobile { display: block; }

  .jump-nav-mobile-summary {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    height: 44px;
    padding: 0 var(--space-3);
    background: var(--color-teal);
    color: var(--color-on-teal);
    border-radius: var(--radius-md);
    cursor: pointer;
    list-style: none;
  }
  :root[data-theme="dark"] .jump-nav-mobile-summary { background: var(--color-teal-deep); color: #ffffff; }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .jump-nav-mobile-summary { background: var(--color-teal-deep); color: #ffffff; }
  }
  .jump-nav-mobile-summary::-webkit-details-marker { display: none; }

  .jump-nav-mobile-summary-label {
    flex: 1;
    font-size: 0.875rem;
    font-weight: var(--font-weight-bold);
  }

  .jump-nav-mobile-chevron { transition: transform 0.2s ease; flex-shrink: 0; }
  .jump-nav-mobile[open] .jump-nav-mobile-chevron { transform: rotate(180deg); }
  .jump-nav-mobile[open] .jump-nav-mobile-summary { border-radius: var(--radius-md) var(--radius-md) 0 0; }

  .jump-nav-mobile-list {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--color-surface);
    border: 1px solid #9fb3c8;
    border-top: none;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
  }
  :root[data-theme="dark"] .jump-nav-mobile-list { border-color: var(--color-border); }

  .jump-nav-mobile-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    height: 44px;
    padding: 0 var(--space-3);
    text-decoration: none;
    border-bottom: 1px solid var(--color-border);
  }
  .jump-nav-mobile-list li:last-child .jump-nav-mobile-item { border-bottom: none; }

  .jump-nav-mobile-item-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .jump-nav-mobile-item-label {
    flex: 1;
    font-size: 0.875rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
  }

  .jump-nav-mobile-item-note {
    font-size: 0.75rem;
    color: var(--color-text-muted);
  }
}

/* ---------- レート推移カード (rate-trend.php) ---------- */
.rate-trend-section {
  max-width: 1440px;
  margin: 0 auto;
  padding: var(--space-4) 56px 0;
}

.rate-trend-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: var(--space-4) var(--space-5);
}

.rate-trend-kpis {
  display: flex;
  gap: var(--space-6);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}

.rate-trend-kpi { flex: 1; min-width: 0; }
.rate-trend-kpi-hidden { visibility: hidden; }

.rate-trend-kpi-heading {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  margin-bottom: 4px;
}
.rate-trend-kpi-heading-short { display: none; }

.rate-trend-kpi-value {
  display: block;
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--color-text);
}
.rate-trend-kpi-value-empty { font-size: 1rem; color: var(--color-text-muted); font-weight: var(--font-weight-medium); }
.rate-trend-kpi-value-gain { color: var(--color-best); }
.rate-trend-kpi-value-loss { color: var(--color-loss); }

.rate-trend-kpi-sub {
  display: block;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  margin-top: 2px;
}
/* .rate-trend-kpi-sub(display指定)より後に置く必要あり。モバイル短文(sub-short)はデスクトップでは非表示(従来この打ち消しがなく、PCで「ECB公表 9/3」「฿36 少ない」が二重表示されていた。2026-09-04修正) */
.rate-trend-kpi-sub-short { display: none; }
/* 差分の基準日・時点(diff_basis)行。モバイル短縮版(-short)はデスクトップでは非表示(2026-09-09追加) */
.rate-trend-kpi-sub-basis-short { display: none; }

.rate-trend-details summary { cursor: pointer; }
.rate-trend-summary::-webkit-details-marker { display: none; }
.rate-trend-summary { display: none; }

.rate-trend-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}

.rate-trend-heading {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 1.3125rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

/* モック(Main.dc.html)実測: 見出しアイコン/範囲ピルはナビ(--color-primary)。
   このセクション自体の案内色(見出しゾーン等)はティールだが、機能的なコントロールは
   モック通りナビを使う(共通ルールの「新規UIの既定色にしない」は装飾用アクセントの話)。 */
.rate-trend-heading-icon { color: var(--color-primary); flex-shrink: 0; }

.rate-trend-range-pills {
  display: inline-flex;
  gap: 6px;
}

.rate-trend-pill {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  padding: 6px 12px;
  cursor: pointer;
}
.rate-trend-pill-active { background: var(--color-primary); color: var(--color-on-primary); border-color: var(--color-primary); font-weight: var(--font-weight-bold); }

/* 追加指摘17: 系列名の2色ドット凡例。モバイルはSVG末端ラベルが数値のみになるため、
   代わりにここで色の意味を示す（デスクトップはSVG末端ラベルに名称込みで表示するため非表示）。 */
.rate-trend-legend { display: none; }
.rate-trend-legend-unit { font-size: 0.6875rem; color: var(--color-text-muted); white-space: nowrap; }
.rate-trend-legend-dots { display: inline-flex; gap: var(--space-3); white-space: nowrap; flex-shrink: 0; }
.rate-trend-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  color: var(--color-text-muted);
  white-space: nowrap;
}
.rate-trend-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.rate-trend-legend-dot-market { background: #3b6bb5; }
:root[data-theme="dark"] .rate-trend-legend-dot-market { background: #5b8fd6; }
.rate-trend-legend-dot-best { background: #b8860b; }

.rate-trend-chart-wrap { width: 100%; }

/* 修正必須項目1: width/height属性をviewBoxと同じ実測pxにして(TrendChart.php/live.js側で設定)、
   CSSは width:100%; height:auto で"アスペクト比を保った一様スケール"のみを行う。
   preserveAspectRatio="none"のような非一様スケールは使わない（文字歪み/巨大化の原因だった）。
   font-sizeはSVG要素自体にstyle="font-size:13px"（またはJS側で12px）を都度設定するため、
   ここでは各text要素のfont-sizeを指定しない（inherit）。 */
.rate-trend-svg { display: block; width: 100%; height: auto; }

.rate-trend-gridline { stroke: var(--color-border); stroke-width: 1; }
.rate-trend-axis-label { fill: var(--color-text-muted); }
.rate-trend-axis-unit { font-size: 0.92em; fill: var(--color-text-muted); }
.rate-trend-axis-date { fill: var(--color-text-muted); }

.rate-trend-line { stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.rate-trend-line-market { stroke: #3b6bb5; }
:root[data-theme="dark"] .rate-trend-line-market { stroke: #5b8fd6; }

.rate-trend-line-best { stroke: #b8860b; }

.rate-trend-end-dot { stroke: var(--color-surface); stroke-width: 2; }
.rate-trend-end-dot-market { fill: #3b6bb5; }
:root[data-theme="dark"] .rate-trend-end-dot-market { fill: #5b8fd6; }
.rate-trend-end-dot-best { fill: #b8860b; }

.rate-trend-end-label { font-weight: 700; }
.rate-trend-end-label-market { fill: #3b6bb5; }
:root[data-theme="dark"] .rate-trend-end-label-market { fill: #5b8fd6; }
.rate-trend-end-label-best { fill: #b8860b; }

.rate-trend-footnote {
  margin: var(--space-3) 0 0;
  font-size: 0.75rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

.rate-trend-nodata {
  margin: 0;
  padding: var(--space-6) 0;
  text-align: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
}

@media (max-width: 767px) {
  .rate-trend-section { padding: var(--space-2) var(--space-3) 0; }
  /* 追加指摘C: Mobile.dc.html実測をそのまま転記。カード自体のpaddingは廃止し、
     KPIグリッドと展開部(.rate-trend-expand)にそれぞれ持たせる。 */
  .rate-trend-card { padding: 0; border: 1px solid var(--color-border); box-shadow: none; overflow: hidden; }

  .rate-trend-kpis {
    display: grid;
    /* 2026-09-04 ユーザー指摘: 360pxで「1バーツ = 4.73円」(22px)が右列の「-1.7%」に接触。
       数値を18pxに縮小し、左列比率を1.4→1.7frへ(USD/EUR表記「1USD = 32.50バーツ」が
       340pxでも収まる: 必要173px / 列幅182px)。見出しはモバイル短縮版(-short)に出し分け
       (EN「Difference vs. reference rate」は右列に収まらないため) */
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    padding: 12px 14px;
    border-bottom: none;
    margin-bottom: 0;
  }
  .rate-trend-kpi-heading { font-size: 13px; font-weight: 500; color: var(--color-text-muted); white-space: nowrap; }
  .rate-trend-kpi-heading-full { display: none; }
  .rate-trend-kpi-heading-short { display: block; }
  .rate-trend-kpi-value { font-size: 18px; font-weight: 800; line-height: 1.15; white-space: nowrap; }
  /* 340〜359px(Fold等)ではUSD/EUR表記が2px超過するため1段階縮小 */
  @media (max-width: 359px) { .rate-trend-kpi-value { font-size: 17px; } }
  /* 「100円=…・ECB公表9/3」等の長文はデスクトップのみ。モバイルは短文(sub-short)に出し分ける
     （Mobile.dc.html実測: 「ECB公表 9/3」「฿17 少ない」のみ）。 */
  .rate-trend-kpi-sub { font-size: 13px; white-space: nowrap; }
  .rate-trend-kpi-sub-full { display: none; }
  .rate-trend-kpi-sub-short { display: block; }
  /* モバイルは金額差(฿N 少ない/多い)の行を出さない(2026-09-09 ユーザー指摘: 同日比較で差が小さく、行を増やす価値がない。基準日ラベルで左右2行に揃う) */
  .rate-trend-kpi-sub-short[data-live="rate-trend-kpi-diff-sub-short"] { display: none; }
  /* diff_basis行も他のsub行と同じ2列レイアウトで右端が切れるため、モバイルは短縮版に出し分け(2026-09-09) */
  .rate-trend-kpi-sub-basis-full { display: none; }
  .rate-trend-kpi-sub-basis-short { display: block; }

  .rate-trend-summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 36px;
    margin-top: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    background: none;
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 700;
    list-style: none;
  }

  .rate-trend-summary-open,
  .rate-trend-summary-close { display: inline-flex; align-items: center; gap: 4px; }
  .rate-trend-summary-close { display: none; }
  .rate-trend-details[open] .rate-trend-summary-open { display: none; }
  .rate-trend-details[open] .rate-trend-summary-close { display: inline-flex; }

  /* 追加指摘E: 開いた状態では「閉じる▴」をカード最下部（注記の下）に表示する。
     <summary>はHTML上details直下の最初の子要素である必要があるため、DOM順は変えず
     flexのorderで視覚的にexpandの後ろへ回す（機能・アクセシビリティは維持）。 */
  .rate-trend-details[open] {
    display: flex;
    flex-direction: column;
  }
  .rate-trend-details[open] .rate-trend-summary { order: 2; }
  .rate-trend-details[open] .rate-trend-expand { order: 1; }

  /* 追加指摘D: MobileOpen.dc.html実測をそのまま転記。padding「4px 14px 14px」・見出し行は
     アイコンなしでjustify-content:space-betweenのまま折り返さない。 */
  .rate-trend-expand { margin-top: 0; padding: 4px 14px 14px; border-top: 1px solid var(--color-border); }
  .rate-trend-head { flex-wrap: nowrap; gap: 12px; margin: 10px 0 8px; }
  .rate-trend-heading { display: block; gap: normal; font-size: 15px; font-weight: 700; color: var(--color-text); }
  .rate-trend-heading-icon { display: none; }
  .rate-trend-range-pills { gap: 6px; }
  .rate-trend-pill { padding: 6px 12px; font-size: 12px; font-weight: 500; border-radius: 4px; }
  .rate-trend-pill-active { font-weight: 700; }

  /* .rate-trend-svgのheightは強制しない（width:100%;height:auto側で実測に基づき一様スケール。
     修正必須項目1の原則を維持するため固定pxで上書きしない）。 */
  /* 追加指摘24: 単位ラベル(左)/凡例(右)を同一行に space-between・折り返し禁止で配置。
     SVG内蔵の単位ラベルはこちらのHTML版と重複するためモバイルでは非表示にする。 */
  .rate-trend-legend { display: flex; justify-content: space-between; align-items: center; flex-wrap: nowrap; margin-top: var(--space-2); }
  .rate-trend-axis-unit { display: none; }
}

/* ---------- タイ旅行ニュース枠 (news-home.php) / 話題タグ色 ---------- */
/* airline/transport/currency/event/alertはbg固定・text固定の組み合わせで白地相当のpastel背景に
   対し3.1〜3.58:1しかなくAA(4.5:1)未達だったため、同系統でより濃い文字色に変更する
   （bgはブランド色として維持。axe color-contrast対応。2026-09-14。visa/airportは元々4.5:1以上で対応不要） */
.news-topic-visa { background: #ebe6f5; color: #6f55a3; }
.news-topic-airport { background: #e6edf5; color: #4f6d8f; }
.news-topic-airline { background: #dcf1ee; color: #146357; }
.news-topic-transport { background: #fdeedb; color: #944f0f; }
.news-topic-currency { background: #fff3cc; color: #8f6008; }
.news-topic-event { background: #e3f2e5; color: #2c6b39; }
.news-topic-alert { background: #fbe7e0; color: #a83c19; }

/* 修正必須項目20: .news-page-chip（背景var(--color-bg-subtle)）と .news-topic-*（背景色付き）は
   単一クラス同士で詳細度が同じため、ファイル内で後に定義される.news-page-chipが勝ち、/newsの
   話題フィルタチップが常に灰色地になっていた（2026-09-04 puppeteer実測で発見）。
   .news-page-chip-topic.news-topic-*の複合セレクタ(詳細度0,2,0)で確実に上書きする。 */
.news-page-chip-topic.news-topic-visa { background: #ebe6f5; color: #6f55a3; }
.news-page-chip-topic.news-topic-airport { background: #e6edf5; color: #4f6d8f; }
.news-page-chip-topic.news-topic-airline { background: #dcf1ee; color: #146357; }
.news-page-chip-topic.news-topic-transport { background: #fdeedb; color: #944f0f; }
.news-page-chip-topic.news-topic-currency { background: #fff3cc; color: #8f6008; }
.news-page-chip-topic.news-topic-event { background: #e3f2e5; color: #2c6b39; }
.news-page-chip-topic.news-topic-alert { background: #fbe7e0; color: #a83c19; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-visa { background: rgba(111, 85, 163, 0.22); color: #cbb8ea; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-airport { background: rgba(79, 109, 143, 0.22); color: #b7cbe4; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-airline { background: rgba(31, 138, 125, 0.22); color: #7fd9cb; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-transport { background: rgba(224, 138, 46, 0.22); color: #f0be80; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-currency { background: rgba(184, 134, 11, 0.22); color: #f0cf6a; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-event { background: rgba(63, 143, 79, 0.22); color: #94d6a2; }
:root[data-theme="dark"] .news-page-chip-topic.news-topic-alert { background: rgba(217, 96, 59, 0.22); color: #f0a888; }

:root[data-theme="dark"] .news-topic-visa { background: rgba(111, 85, 163, 0.22); color: #cbb8ea; }
:root[data-theme="dark"] .news-topic-airport { background: rgba(79, 109, 143, 0.22); color: #b7cbe4; }
:root[data-theme="dark"] .news-topic-airline { background: rgba(31, 138, 125, 0.22); color: #7fd9cb; }
:root[data-theme="dark"] .news-topic-transport { background: rgba(224, 138, 46, 0.22); color: #f0be80; }
:root[data-theme="dark"] .news-topic-currency { background: rgba(184, 134, 11, 0.22); color: #f0cf6a; }
:root[data-theme="dark"] .news-topic-event { background: rgba(63, 143, 79, 0.22); color: #94d6a2; }
:root[data-theme="dark"] .news-topic-alert { background: rgba(217, 96, 59, 0.22); color: #f0a888; }

.news-home-topic-chip,
.news-page-chip-topic {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  border-radius: var(--radius-sm);
  font-size: 0.6875rem;
  font-weight: var(--font-weight-semibold);
  padding: 4px 6px;
  white-space: nowrap;
}

/* 修正必須項目9: 本文/日付/見出しは--color-text（mutedはフィールド名ラベルのみ）。
   出典チップの文字も本文相当のためmutedではなく--color-textにする。 */
.news-home-source-chip {
  display: inline-flex;
  align-items: center;
  /* 追加指摘18: 話題チップを右端固定(92px)にすると出典チップの分だけ幅が不足しやすいため、
     出典チップは縮んで省略記号を出せるようにする（2026-09-04 headless実写で横スクロール発見・修正）。 */
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text);
  font-size: 0.6875rem;
  font-weight: var(--font-weight-medium);
  padding: 4px 6px;
  white-space: nowrap;
}

.news-home-section {
  max-width: 1440px;
  margin: var(--space-6) auto 0;
  padding: 0 56px;
}

.news-home-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}

.news-home-heading {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}
.news-home-heading-icon { color: #3f8f4f; }
:root[data-theme="dark"] .news-home-heading-icon { color: #94d6a2; }

.news-home-sources { font-size: 0.8125rem; color: var(--color-text-muted); }

.news-home-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
}

/* 追加指摘25: サムネは行の全高にstretch（align-items:stretch=デフォルトのため明示指定は不要だが
   可読性のため明示する）。 */
.news-home-item {
  display: flex;
  align-items: stretch;
  gap: var(--space-3);
  text-decoration: none;
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}
.news-home-grid > .news-home-item:nth-last-child(-n+2) { border-bottom: none; padding-bottom: 0; }

.news-home-thumb,
.news-home-thumb-img-wrap,
.news-home-thumb-placeholder {
  width: 96px;
  /* 追加指摘25: 高さは行の全高にstretch（固定64pxをやめる）。 */
  height: auto;
  align-self: stretch;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.news-home-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }

.news-home-thumb-placeholder {
  background: var(--color-primary);
  color: var(--color-on-primary);
  font-size: 1.25rem;
  font-weight: var(--font-weight-bold);
}

.news-home-body { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 4px; }

/* 追加指摘25: 1行目=日付(左)+話題チップ(右端92px)。 */
.news-home-row1 {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  min-width: 0;
}
.news-home-row1 .news-home-topic-chip {
  margin-left: auto;
  width: 92px;
  justify-content: center;
  flex-shrink: 0;
}

.news-home-date { font-size: 0.8125rem; font-weight: var(--font-weight-medium); color: var(--color-text); flex-shrink: 0; }

/* 追加指摘25: 2行目=出典（小さめ12pxのニュートラルチップ、単独行）。 */
.news-home-body > .news-home-source-chip {
  align-self: flex-start;
  font-size: 0.75rem;
  flex-shrink: 1;
  max-width: 100%;
}

.news-home-title {
  font-size: 0.9375rem;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-home-item:hover .news-home-title { color: var(--color-primary); text-decoration: underline; }

.news-home-more {
  display: inline-block;
  margin-top: var(--space-3);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-semibold);
  /* --color-tealのライト値は薄い背景(--color-bg #f4f6f9)で4.29:1のためAA未達
     （news-page-filter-labelと同根。axe対応。2026-09-14） */
  color: var(--color-teal-deep-text);
  text-decoration: none;
}
.news-home-more:hover { text-decoration: underline; }

@media (max-width: 767px) {
  .news-home-section { padding: 0 var(--space-3); }
  /* minmax(0, 1fr)必須（素の1frは列の自動最小幅がmin-content基準になり、news-home-itemが
     コンテナ幅を超えて横スクロールの原因になる。2026-09-04 headless実写で発見・修正）。 */
  .news-home-grid { grid-template-columns: minmax(0, 1fr); padding: var(--space-3); }
  .news-home-item { min-width: 0; }
  /* 追加指摘25: 高さは固定48pxをやめ行の全高にstretch（幅72pxは維持）。 */
  .news-home-thumb,
  .news-home-thumb-img-wrap,
  .news-home-thumb-placeholder { width: 72px; height: auto; align-self: stretch; }
  .news-home-grid > .news-home-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--color-border); padding-bottom: var(--space-3); }
  .news-home-grid > .news-home-item:last-child { border-bottom: none; padding-bottom: 0; }
  /* 追加指摘22: モバイルは日付15px/700・ティール色、見出し14px/1.6。 */
  .news-home-date { font-size: 0.9375rem; font-weight: var(--font-weight-bold); color: var(--color-teal); }
  .news-home-title { font-size: 0.875rem; line-height: 1.6; }

  /* 修正必須項目6: モバイルは全幅ボタン（高さ44px・角丸6px・ティール地・白14px太字・中央揃え）。 */
  .news-home-more {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    margin-top: var(--space-3);
    border-radius: var(--radius-md);
    background: var(--color-teal);
    color: var(--color-on-teal);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
  }
  :root[data-theme="dark"] .news-home-more { background: var(--color-teal-deep); color: #ffffff; }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .news-home-more { background: var(--color-teal-deep); color: #ffffff; }
  }
  .news-home-more:hover { text-decoration: none; opacity: 0.9; }
}

/* ---------- ニュース一覧ページ (/news, pages/news.php) ---------- */
.news-page-main {
  max-width: 1024px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-4) var(--space-8);
}

.news-page-header { margin-bottom: var(--space-5); }
.news-page-h1 { font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); color: var(--color-text); margin: var(--space-2) 0 var(--space-2); }
.news-page-lead { margin-bottom: var(--space-3); }

.news-page-empty { color: var(--color-text-muted); padding: var(--space-6) 0; }

.news-page-filters { margin-bottom: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }

.news-page-filter-row { display: flex; align-items: center; gap: var(--space-3); }

.news-page-filter-label {
  flex: 0 0 80px;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8125rem;
  font-weight: var(--font-weight-bold);
  /* --color-tealのライト値(#2b7f8b)は薄い背景(#f4f6f9)で4.29:1のためAA(4.5:1)未達。
     下線(border-bottom)は非テキストのブランド装飾のためteal据え置き、文字色のみ
     --color-teal-deep-textに変更する（axe color-contrast対応。2026-09-14） */
  color: var(--color-teal-deep-text);
  border-bottom: 2px solid var(--color-teal);
  padding-bottom: 4px;
}
.news-page-filter-label-icon-wrap { display: inline-flex; flex-shrink: 0; }

.news-page-filter-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }

.news-page-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-sm);
  border: none;
  background: var(--color-bg-subtle);
  color: var(--color-text);
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  cursor: pointer;
}

/* 修正必須項目20: 出典チップは白地+枠線#9fb3c8（未選択時）。話題チップは.news-topic-*の
   色付き背景を使うため枠線は付けない（border:noneのまま）。 */
.news-page-chip-source {
  min-width: 152px;
  background: var(--color-surface);
  border: 1px solid #9fb3c8;
}
:root[data-theme="dark"] .news-page-chip-source { border-color: var(--color-border); }
.news-page-chip-topic { min-width: 92px; }

.news-page-chip-source.news-page-chip-active {
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-color: var(--color-primary);
}

/* 追加指摘26: 話題行の「すべて」チップ（news-topic-*クラスを持たない）も選択時=紺地白文字。
   話題色付きの.news-topic-*.news-page-chip-active（0,3,0）の方が詳細度が高いため、
   実際の話題選択時はそちらが優先される。 */
.news-page-chip-topic.news-page-chip-active {
  background: var(--color-primary);
  color: var(--color-on-primary);
}

/* 修正必須項目7: 話題チップは未選択=項目色の淡色地+濃色文字(news-topic-*で既に適用済み)、
   選択時=同項目の濃色地+白文字。 */
/* airline/transport/currency/event/alertは白文字4.21/2.68/3.25/4.0/3.65:1でAA未達だったため
   地を一段濃く(上のnews-topic-*文字色と同じ濃色に統一)する。visa/airportは元々4.5:1以上のため対応不要
   （axe color-contrast対応。2026-09-14） */
.news-page-chip-topic.news-page-chip-active.news-topic-visa { background: #6f55a3; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-airport { background: #4f6d8f; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-airline { background: #146357; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-transport { background: #944f0f; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-currency { background: #8f6008; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-event { background: #2c6b39; color: #ffffff; }
.news-page-chip-topic.news-page-chip-active.news-topic-alert { background: #a83c19; color: #ffffff; }

.news-page-month-heading {
  font-size: 1.125rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: var(--space-5) 0 var(--space-2);
}
.news-page-list > .news-page-month-heading:first-child { margin-top: 0; }

.news-page-card {
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-1);
}

/* 修正必須項目8: /news リスト行はサムネ/イニシャル画像を出さない（モックに無い）。
   1行=日付+話題タグ+出典チップ+見出し+外部リンクアイコンをフラットなflex行にする
   （news-page-row-metaはdisplay:contentsで子要素を直接rowのflex itemにする）。 */
.news-page-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  text-decoration: none;
  border-bottom: 1px solid var(--color-border);
}
.news-page-card > .news-page-row:last-child { border-bottom: none; }

.news-page-row-meta { display: contents; }
.news-page-row-date { font-size: 0.8125rem; font-weight: var(--font-weight-medium); color: var(--color-text); width: 110px; flex-shrink: 0; white-space: nowrap; }

.news-page-row-title {
  flex: 1;
  min-width: 0;
  font-size: 0.9375rem;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.news-page-row:hover .news-page-row-title { color: var(--color-primary); text-decoration: underline; }

.news-page-row-link-icon { color: var(--color-text); flex-shrink: 0; }

@media (max-width: 767px) {
  .news-page-row { flex-wrap: wrap; min-height: 0; align-items: flex-start; padding: 10px var(--space-3); gap: 8px; }
  /* 追加指摘22: 日付15px/700・ティール色に変更。 */
  .news-page-row-date { width: auto; font-size: 0.9375rem; font-weight: var(--font-weight-bold); color: var(--color-teal); }
  .news-page-row-link-icon { order: 2; margin-left: auto; }
  .news-page-row-title {
    order: 3;
    /* flex:1(flex-basis:0%)のままだとwidth:100%が無視される（flex-basisが主軸サイズを決定するため）。
       flex-basis:100%で明示し、flex-wrap:wrapと合わせて確実に次の行へ全幅配置する
       （2026-09-04 headless実写で発見・修正）。 */
    flex: 1 1 100%;
    width: 100%;
    /* 追加指摘22: 見出し14px・line-height1.6（2行省略は維持）。 */
    font-size: 0.875rem;
    line-height: 1.6;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* 追加指摘21: h1下の説明文は13px・line-height1.7に。 */
  .news-page-lead { font-size: 0.8125rem; line-height: 1.7; }
}

.news-page-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.news-page-pagination-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  background: var(--color-bg-subtle);
  color: var(--color-text);
  text-decoration: none;
  font-size: 0.8125rem;
  font-weight: var(--font-weight-medium);
  padding: 0 var(--space-2);
}
.news-page-pagination-link-current { background: var(--color-primary); color: var(--color-on-primary); }

@media (max-width: 767px) {
  .news-page-filter-row { flex-direction: column; align-items: stretch; gap: var(--space-2); }
  .news-page-filter-label { flex: none; width: 100%; height: 28px; border-bottom-width: 2px; }
  .news-page-chip-source, .news-page-chip-topic { min-width: 0; flex: 1 1 auto; }
  /* .news-page-row / .news-page-row-title のモバイル調整は上記(item8)で定義済み。 */
}

/* ---------- モバイル圧縮 (仕様2-3・≤767pxのみ・デスクトップ不変) ---------- */
@media (max-width: 767px) {
  /* ヒーロー: ライブ更新カード→1行帯（追加指摘10: Mobile.dc.html実測=帯高44px・padding 0 14px・
     子要素間gap8px。帯下端〜control-barカード上端は16px＝下記「縦間隔」で調整） */
  /* 2026-09-04: 1行帯(高さ44px固定)では「次回更新 HH:MM」表示時に360px(JA)・412px以下(EN)で
     あふれ、最終更新の時刻が切り詰められていた(overflow hidden+ellipsis)。ユーザー指示により
     1行目=ライブ更新中、2行目=最終更新+次回更新 の2行構成に変更し、切り詰めを廃止する。 */
  .hero-panel {
    padding: 8px 14px;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 4px;
    column-gap: 10px;
    min-width: 0;
  }
  .hero-live-row,
  .hero-updated-row,
  .hero-cadence {
    margin: 0;
    flex-shrink: 0;
    white-space: nowrap;
    /* 修正必須項目15: ラベルは1段小さく13pxに統一（窮屈さ解消。gapは親のflex gap 10pxで確保） */
    font-size: 0.8125rem;
  }
  .hero-live-row { flex-basis: 100%; }
  .hero-row-icon { display: none; }
  .hero-updated-tz-note { display: none; }
  /* 修正必須項目15: 時刻数値は14px（ラベルより少し大きく可読性を保つ） */
  .hero-updated-time { font-size: 0.875rem; margin-left: 4px; }
  .hero-cadence .tabular-nums { font-size: 0.875rem; margin-left: 4px; }
  .hero-cadence-chip { display: none; }
  .hero-cadence { white-space: nowrap; }
  /* 親のflex gap(10px)で既に区切り済みのため、"・"自体の余白は最小限にする（二重余白防止）。 */
  .hero-cadence::before { content: "・"; margin-right: 4px; color: var(--color-header-text-subtle); }
  .hero-notice { display: none; }

  /* control-bar: 2段×2列（追加指摘10: Mobile.dc.html実測値に統一。旧≤640px専用ルール
     (padding:16px/border-bottom付き縦積み)を本ブロックで上書きし、カード自体のpadding+
     行間の罫線1本に統一する）。 */
  .control-bar-wrapper { padding: 0 var(--space-3); }
  .control-bar-card { padding: 14px 16px; }
  .control-bar-primary-row {
    display: grid;
    /* minmax(0, 1fr)必須: 素の1frはトラックの自動最小サイズがcontentのmin-content幅になり、
     「近くの両替所」等nowrap要素があると列/コンテナごと画面幅を超えて横スクロールが発生する
     （2026-09-04 headless実写で発見・修正）。 */
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    /* 行間は0にし、2段目の区切り線位置は下記 margin-top(4px)で決める(2026-09-04 ユーザー指摘:
       1段目の値「バンコク」〜区切り線が16pxで、金額欄の値〜下線(5px)と不揃いだった) */
    column-gap: var(--space-3);
    row-gap: 0;
  }
  .control-bar-divider { display: none; }
  .control-bar-field-area { order: 1; }
  /* nth-of-typeは<label>要素間の順序（DOM順=area[1],amount[2],ccyPair[3]）。
     モバイル表示順は 1段目=エリア/通貨ペア、2段目=金額/CTA（仕様2-3）のため、
     amount(2番目のlabel)をorder3、ccyPair(3番目のlabel)をorder2にする。 */
  .control-bar-field-grow:nth-of-type(2) { order: 3; } /* 両替する金額 */
  .control-bar-field-grow:nth-of-type(3) { order: 2; } /* 通貨ペア */
  .control-bar-cta-cell { order: 4; }
  .control-bar-field,
  .control-bar-field-area,
  .control-bar-field-grow {
    width: auto;
    min-width: 0;
    padding: 0;
    border-bottom: none;
  }
  /* 2段目(金額/CTA)は1段目との区切り線（Mobile.dc.html: height:1px罫線＋gap8px相当）。
     追加指摘B: Mobile.dc.htmlの2段目は実際にはgap:8px(1段目は12px)の別グリッドのため、
     共有グリッド(gap:12px)のままだと2段目の列幅が2pxずつ狭い。DOM分割せず、2段目の2項目に
     互いに歩み寄るネガティブマージンを与えて実効ギャップを8pxにし、列幅をモックの163pxに一致させる。 */
  .control-bar-field-grow:nth-of-type(2),
  .control-bar-cta-cell {
    border-top: 1px solid var(--color-border);
    padding-top: var(--space-2);
    margin-top: 5px;
  }
  .control-bar-field-grow:nth-of-type(2) { margin-right: -2px; }
  /* 追加指摘27: 旧≤640px専用ルール(.control-bar-cta-cell{padding:16px})がボタンの右に
     余白を作っていた真因（CDP実測で判明。cta-cellのcontent-box幅がpadding分だけ狭く、
     ボタンのwidth:100%はそのcontent-box基準で正しく機能していた）。cta-cellは子要素が
     ボタン1つだけのためdisplay:blockにしてpaddingを0にリセットし、列幅いっぱいにする。
     align-self:endはMobile.dc.html row2のalign-items:endに合わせ、アイコン付きボタンを
     アマウント欄の下端に揃える。 */
  .control-bar-cta-cell { display: block; padding: 0; margin-left: -2px; width: calc(100% + 2px); align-self: end; }
  .control-bar-amount-input { line-height: 1.35; }
  .control-bar-map-cta { display: flex; }
  .control-bar-field-caption { display: none; }
  /* 「バンコク」「JPY → THB」等の折り返し禁止＋モック実測フォントサイズ(17px)。 */
  .control-bar-select-text {
    font-size: 1.0625rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* 追加指摘B: Mobile.dc.html実測値をそのまま転記。ラベルは全フィールド共通で13px/500、
     ラベル〜値の間隔はgap:5px（フィールドの縦flex）。 */
  .control-bar-field { gap: 5px; }
  .control-bar-label { font-size: 13px; font-weight: 500; margin-bottom: 0; }
  .control-bar-amount-row {
    align-items: center;
    gap: 6px;
    color: var(--color-text);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 4px;
  }
  .control-bar-amount-row .control-bar-ccy-symbol,
  .control-bar-amount-input { font-size: 17px; font-weight: 700; }
  /* 数値のみ19px: モックはシステムフォント描画で17pxでも大きく見えるため、Manropeでの視覚的同等サイズに合わせる(2026-09-04 ユーザー選択) */
  .control-bar-amount-input { flex: 1; text-align: left; white-space: nowrap; border-bottom: none; font-size: 19px; }
  /* モバイルは鉛筆アイコンを行末の通常フロー配置にする（テンプレート側でDOM順を末尾に変更済み）。 */
  .control-bar-amount-row .control-bar-edit-icon {
    position: static;
    transform: none;
    display: inline-flex;
    color: var(--color-text-muted);
  }
  /* Mobile.dc.html実測値をそのまま転記: padding:0 14px;height:44px;font-size:14px;border-radius:6px。 */
  .control-bar-map-cta { width: 100%; min-width: 0; height: 44px; padding: 0 14px; font-size: 0.875rem; border-radius: var(--radius-md); }

  /* 追加指摘(A): Mobile.dc.html実測値をそのまま転記。band自体は単一列(best-card/secondary-groupの
     2ブロックが縦積み)。secondary-groupが「白カード1枚+2セルgrid」の実体になる。 */
  .summary-stat-band-band { grid-template-columns: 1fr; gap: var(--space-2); }
  /* 2026-09-04: ベストレート見出し「本日のベストレート（JPY → THB）」が360px(JA)で2行に折れていた。
     カード左右padding 28→16px・見出し18→16px・アイコン22→20px/gap 6pxで340px以上のJA/ENを1行に収める
     (実測: 必要幅 JA 257+26=283 / 利用可能幅 340px時 284・360px時 304)。 */
  /* 2026-09-04 ユーザー指示: モバイルのベストレートカードを縦積み構成に変更。
     1行目=王冠アイコン(中央・大)・2行目=見出し(中央・アンバー)・3行目=レート数値(中央)・
     4行目=店名(1行固定・やや小)・5行目=更新経過(右寄せ)。枠線はアンバーで強調。 */
  .summary-stat-band-best-card {
    padding: 16px 16px 14px;
    background: linear-gradient(135deg, var(--color-gold-card-from) 0%, var(--color-gold-card-to) 100%);
    border: 2px solid var(--color-gold-border);
  }
  .summary-stat-band-card-heading {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 1.0625rem;
    color: var(--color-on-gold);
    text-align: center;
    white-space: nowrap;
  }
  /* 王冠アイコン: 白丸バッジ(直径60px)の中央に40px。王冠パス(viewBox 0 0 20 20)の図形重心は
     y=11.5で中心(10)より1.5/20下に寄るため、paddingを上7px/下13pxの非対称にして視覚中央へ寄せる */
  .summary-stat-band-card-heading svg {
    width: 40px;
    height: 40px;
    padding: 7px 10px 13px;
    box-sizing: content-box;
    border-radius: 50%;
    background: #ffffff;
    color: var(--color-gold-icon);
    stroke-width: 1.8;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
  }
  .summary-stat-band-rate-row { justify-content: center; }
  .summary-stat-band-brand-row {
    display: flex;
    flex-direction: column;
    margin-top: 10px;
  }
  .summary-stat-band-brand-name {
    font-size: 0.9375rem;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .summary-stat-band-brand-updated {
    display: block;
    margin: 4px 0 0;
    text-align: right;
  }
  .summary-stat-band-secondary-group {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    min-height: 80px;
    box-sizing: border-box;
  }
  .summary-stat-band-secondary-group .summary-stat-band-card {
    display: flex;
    flex-direction: column;
    gap: 2px;
    justify-content: center;
    padding: 10px 14px;
    border: none;
    border-radius: 0;
    background: transparent;
  }
  .summary-stat-band-secondary-group .summary-stat-band-card:first-child {
    border-right: 1px solid var(--color-border);
  }
  .summary-stat-band-secondary-group .summary-stat-band-plain-heading svg { display: none; }
  .summary-stat-band-secondary-group .summary-stat-band-plain-heading {
    display: block;
    margin-bottom: 0;
    font-size: 13px;
    color: var(--color-text-muted);
    font-weight: 500;
  }
  .summary-stat-band-heading-text-full { display: none; }
  .summary-stat-band-heading-text-short { display: inline; }
  .summary-stat-band-secondary-group .summary-stat-band-big-value {
    display: block;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.15;
    color: var(--color-text);
  }
  /* 「+฿1」（市中vs空港カード）は緑を維持する。上のcolor:var(--color-text)より詳細度を
     揃える(2クラス)ため、.summary-stat-band-secondary-group内で明示的に再宣言する。 */
  .summary-stat-band-secondary-group .summary-stat-band-big-value-positive { color: var(--color-best); }
  /* 収集状況カードの値行はモック実測どおり単色（緑の強調なし。"+฿1"は.-positiveで別途上書き）。 */
  .summary-stat-band-secondary-group .summary-stat-band-fresh-count { color: inherit; }
  .summary-stat-band-secondary-group .summary-stat-band-fresh-suffix { font-size: 20px; font-weight: 800; color: inherit; }
  .summary-stat-band-secondary-group .summary-stat-band-sub-text,
  .summary-stat-band-secondary-group .summary-stat-band-fresh-label {
    margin-top: 0;
    margin-left: 0;
    font-size: 13px;
    font-weight: 400;
    color: var(--color-text-muted);
    display: block;
  }
  .summary-stat-band-secondary-group .summary-stat-band-plain-heading { gap: normal; }
  .summary-stat-band-secondary-group .summary-stat-band-breakdown-row,
  .summary-stat-band-secondary-group .summary-stat-band-aging-text { display: none; }

  /* 縦間隔（追加指摘10で再修正: 旧設定は帯下端とcontrol-barカード上端が密着するバグだった。
     Mobile.dc.html実測=hero-hero padding-bottom:56px + control-bar-wrapper margin-top:-40px
     ＝net 16pxの余白。以降ベスト→帯→推移カード→Wise帯は8pxで統一）。 */
  .hero-hero { padding-bottom: 56px; }
  .control-bar-wrapper { margin-top: -40px; }
  .rate-trend-section { margin-top: 0; }
}

/* ヘッダー: 「ホテル ↗」追加でメニューが6項目になったため、1025〜1200px 帯で折り返さないよう詰める（≤1024px はハンバーガー） */
.site-header-nav .site-header-link { white-space: nowrap; }
/* 1201〜1440pxでは、ロゴ251 + ナビ + 時計215 + 言語/テーマ109 に左右パディング112を足すと
   ビューポート幅を超え、右端の言語チップが切れる（ポータル導線の追加で顕在化）。
   この帯域だけパディングとナビの間隔を詰めて収める。1441px以上は従来どおり。 */
@media (min-width: 1201px) and (max-width: 1440px) {
  .site-header-inner { padding-left: 24px; padding-right: 24px; }
  .site-header-nav { gap: 16px; }
}
@media (min-width: 1025px) and (max-width: 1200px) {
  .site-header-nav { gap: 14px; }
  .site-header-nav .site-header-link { font-size: var(--font-size-sm); }
  .site-header-clock-seconds { display: none; }
}
@media (min-width: 1025px) and (max-width: 1100px) {
  .site-header-clock { display: none; }
}
.station-summary-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; }
.station-summary-line .station-summary-sep { display: none; }
.station-summary-line .station-summary-updated { margin-left: auto; white-space: nowrap; }
/* 駅ページ モバイル: トップ用 control-bar の縦積み罫線(nth-of-type/cta-cell の border-top)を打ち消し、
   2列の項目の上端・ラベル位置を揃える。詳細度を上げて後置き */
@media (max-width: 640px) {
  .station-control-card .control-bar-field-grow:nth-of-type(2),
  .station-control-card .control-bar-field-grow:nth-of-type(3),
  .station-control-card .control-bar-cta-cell { border-top: 0; padding-top: 0; margin-top: 0; }
  .station-control-card .control-bar-field-grow { display: flex; flex-direction: column; justify-content: flex-start; }
  .station-control-card .control-bar-label { margin: 0 0 6px; }
  .station-control-card .control-bar-amount-row,
  .station-control-card .control-bar-select-value { min-height: 34px; align-items: center; }
  .station-control-card .control-bar-cta-cell { margin-top: 6px; }
  .station-page-title { font-size: 1.35rem; line-height: 1.35; }
}
/* 駅ページ 要点行「更新 ●N分前」: ラベルと値でサイズ・色が違うのは不自然なので1単位として統一 */
.station-summary-line .station-summary-updated { display: inline-flex; align-items: center; gap: 4px; color: var(--color-text-muted); font-size: var(--font-size-sm); }
.station-summary-line .station-summary-updated .freshness-badge-badge { font-size: inherit; color: inherit; }
