@charset "UTF-8";
/*
================================================================
  ページモジュール デフォルト CSS（汎用コーポレートデザイン）
  - 添付参考：濃紺ベース＋赤アクセント／清潔感のあるコーポレートトーン
  - ctn_m_page_module（mid=1..59）の page_module_front_code が出力する
    全モジュールの HTML 構造をカバー
  - メディアクエリ：1024px / 900px / 640px
================================================================
*/
/* ============== カラー・基本設定（CSS変数） ==============
  テーマ切替: <html data-theme="…"> もしくは <body data-theme="…"> で指定
    （未指定 = default = corporate-blue）
  対応テーマ:
    - default / corporate-blue : 濃紺 + 赤アクセント（コーポレート系）
    - warm                     : ブラウン + オレンジ（暖色系）
    - green                    : ディープグリーン + ライム（自然系）
    - mono                     : 黒 + グレー（モノクロ）
    - pastel                   : ベージュ + ピンク（やわらか系）
    - dark                     : ダークモード
================================================================ */
:root, [data-theme="default"], [data-theme="corporate-blue"] {
  /* theme.css の --c_* に連動（テーマ切替で見出し・本文・モジュール装飾も同期）。
     フォールバック値は theme.css 未読込時の互換用。 */
  --pm-primary: var(--c_primary, #1a3a6e);
  --pm-primary-dark: var(--c_primary_dark, #122a52);
  --pm-primary-light: var(--c_primary_light, #4a6da8);
  --pm-accent: var(--c_accent, #d4373e);
  --pm-text: var(--c_text, #222);
  --pm-text-mute: var(--c_text_muted, #666);
  --pm-text-soft: var(--c_text_muted, #888);
  --pm-border: var(--c_border, #e0e0e0);
  --pm-bg: var(--c_bg_base, #ffffff);
  --pm-bg-soft: var(--c_bg_section, #f5f5f5);
  --pm-bg-soft2: var(--c_bg_section, #f8f9fb);
  --pm-bg-gray: var(--c_bg_section, #fafafa);
  --pm-radius: 4px;
  --pm-radius-pill: 999px;
  --pm-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
/* ---- warm / dark テーマは theme.css 側で --c_* を切り替え、
       :root の `--pm-*: var(--c_*)` を通じて連動するため、ここでの独自定義は削除。
       （以前は page_module.css 側で別配色を持っていたが、theme.css と二重管理になり
        テーマ切替時にカラーが噛み合わない問題があったため統一） ---- */
/* ---- green ---- */
[data-theme="green"] {
  --pm-primary: #1e5a3a;
  --pm-primary-dark: #0e3f25;
  --pm-primary-light: #4a8a64;
  --pm-accent: #8bc34a;
  --pm-text: #1f2a23;
  --pm-text-mute: #5a6e5e;
  --pm-text-soft: #8c9a90;
  --pm-border: #d8e4dc;
  --pm-bg: #ffffff;
  --pm-bg-soft: #eef4ee;
  --pm-bg-soft2: #f4f9f4;
  --pm-bg-gray: #f6faf6;
}
/* ---- mono ---- */
[data-theme="mono"] {
  --pm-primary: #1a1a1a;
  --pm-primary-dark: #000000;
  --pm-primary-light: #555555;
  --pm-accent: #888888;
  --pm-text: #1a1a1a;
  --pm-text-mute: #555555;
  --pm-text-soft: #888888;
  --pm-border: #d6d6d6;
  --pm-bg: #ffffff;
  --pm-bg-soft: #f0f0f0;
  --pm-bg-soft2: #f7f7f7;
  --pm-bg-gray: #fafafa;
}
/* ---- pastel ---- */
[data-theme="pastel"] {
  --pm-primary: #c47891;
  --pm-primary-dark: #a35672;
  --pm-primary-light: #e0a3b6;
  --pm-accent: #f4a261;
  --pm-text: #4a3a3f;
  --pm-text-mute: #8a7882;
  --pm-text-soft: #b4a6ad;
  --pm-border: #f0e2e8;
  --pm-bg: #fffaf8;
  --pm-bg-soft: #faecf2;
  --pm-bg-soft2: #fdf4f7;
  --pm-bg-gray: #fcf6f8;
}
/* ============== コンテナ環境設定（ADMIN_THEME）連動テーマ ==============
  cms/html/__ctnAdmin/templates/simple/themes/{name}.css と同じ配色を pm-* 変数に流し込む。
  管理画面「環境設定」でテーマを切り替えたとき、本プレビューも同色になるよう対応。
================================================================ */
/* ---- light（コンテナ：ライト = アクセント #0a9913 緑系） ---- */
[data-theme="light"] {
  --pm-primary: #0a9913;
  --pm-primary-dark: #086f0f;
  --pm-primary-light: #4cbf52;
  --pm-accent: #0a9913;
  --pm-text: #222;
  --pm-text-mute: #666;
  --pm-text-soft: #888;
  --pm-border: #e0e0e0;
  --pm-bg: #ffffff;
  --pm-bg-soft: #f5f5f5;
  --pm-bg-soft2: #f4faf5;
  --pm-bg-gray: #fafafa;
}
/* ---- crimson（コンテナ：クリムゾン = アクセント #c2143d 赤系） ---- */
[data-theme="crimson"] {
  --pm-primary: #c2143d;
  --pm-primary-dark: #960f2e;
  --pm-primary-light: #e04a6c;
  --pm-accent: #c2143d;
  --pm-text: #2a1a1d;
  --pm-text-mute: #6e4853;
  --pm-text-soft: #a08089;
  --pm-border: #ebd0d7;
  --pm-bg: #fffaf6;
  --pm-bg-soft: #faf0ec;
  --pm-bg-soft2: #fdf3f1;
  --pm-bg-gray: #fcf5f3;
}
/* ---- ocean（コンテナ：オーシャン = アクセント #2b6cb0 青系） ---- */
[data-theme="ocean"] {
  --pm-primary: #2b6cb0;
  --pm-primary-dark: #1f4e80;
  --pm-primary-light: #5b91d1;
  --pm-accent: #2b6cb0;
  --pm-text: #1a2433;
  --pm-text-mute: #5a6e88;
  --pm-text-soft: #8c9aaf;
  --pm-border: #d8e3f0;
  --pm-bg: #ffffff;
  --pm-bg-soft: #eef4fa;
  --pm-bg-soft2: #f4f9fd;
  --pm-bg-gray: #f6fafd;
}
/* ---- dark テーマの --pm-* 定義は theme.css に集約（[data-theme="dark"] で --c_* 切替）。
       ここでは dark 専用の追加スタイル（テーブル等の背景反転）のみを残す。 ---- */
[data-theme="dark"] .info_table table, [data-theme="dark"] .scroll_table table, [data-theme="dark"] .table table, [data-theme="dark"] .border_cont, [data-theme="dark"] .form_area, [data-theme="dark"] .faq_mod > dl .faq_set, [data-theme="dark"] .aco_cont > dl .dl_set, [data-theme="dark"] .modal .modal_content, [data-theme="dark"] .graph_cont {
  background: var(--pm-bg-soft);
  color: var(--pm-text);
}
/* ============== Material Symbols Outlined アイコン基底定義 ==============
   Google Fonts 由来の class 定義が他 CSS（共通フォント設定等）に打ち消される
   ことがあるため、確実なアイコン描画のため最優先で再定義。
   <span class="material-symbols-outlined">arrow_upward</span> 等が
   テキストではなくアイコンとして表示されるよう、font-family と ligature
   feature を !important で固定する。
   ============================================================ */
.material-symbols-outlined, .material-icons, .material-icons-outlined {
  font-family: "Material Symbols Outlined", "Material Icons Outlined", "Material Icons" !important;
  font-weight: normal;
  font-style: normal;
  font-size: 1em;
  /* 親の font-size に追従。各箇所で個別指定 */
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: "liga";
  -moz-font-feature-settings: "liga";
  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* ============== 共通ユーティリティ・見出し（mid=1 専用ルール） ==============
   旧 page_module.css のうち、新マニュアル view 仕様セクションでカバーされて
   いない以下を残置：
     - [id^="anc"] スクロールマージン
     - .mb0〜.mb6 マージン utility（front_code __MARGIN__ 置換と整合）
     - .pc_none / .sp_none レスポンシブ表示制御
     - mid=1 見出し（h2 / h3 / h4 / h5）専用スタイル
     - div + h*（先のブロック直後の見出し上余白）
   旧モジュールルール（mod_cont base / mid=2 以降）は新セクションで上書き済みのため削除。
   ============================================================ */
.mb0 {
  margin-bottom: 0 !important;
}
.mb1 {
  margin-bottom: 1em !important;
}
.mb2 {
  margin-bottom: 2em !important;
}
.mb3 {
  margin-bottom: 3em !important;
}
.mb4 {
  margin-bottom: 4em !important;
}
.mb5 {
  margin-bottom: 5em !important;
}
.mb6 {
  margin-bottom: 6em !important;
}
.mb0em {
  margin-bottom: 0 !important;
}
.mb1em {
  margin-bottom: 1em !important;
}
.mb2em {
  margin-bottom: 2em !important;
}
.mb3em {
  margin-bottom: 3em !important;
}
.mb4em {
  margin-bottom: 4em !important;
}
.mb5em {
  margin-bottom: 5em !important;
}
.mb6em {
  margin-bottom: 6em !important;
}
@media only screen and (min-width: 901px) {
  .pc_none {
    display: none !important;
  }
}
@media only screen and (max-width: 900px) {
  .sp_none {
    display: none !important;
  }
}
/* ============== mid=1 見出し ==============
   manual-view デザインで統一。クラスベース（h2 / h3 / ...）で
   見出しを描画する。id 属性セレクタ（[id^="anc"]）依存は廃止。
   front_code 側で出力する見出しに class="mv-mod-h2" 等を付与すること。
   ============================================================ */
/* 直前が <div>（.mod_cont を含む任意の div ブロック）のときの見出し上余白 */
div + h2:where(:not(.post_related *, .event_related *)), div + h3:where(:not(.post_related *, .event_related *)), div + h4:where(:not(.post_related *, .event_related *)), div + h5:where(:not(.post_related *, .event_related *)) {
  margin-top: 2em;
}
@media only screen and (max-width: 900px) {
  div + h2:where(:not(.post_related *, .event_related *)), div + h3:where(:not(.post_related *, .event_related *)), div + h4:where(:not(.post_related *, .event_related *)), div + h5:where(:not(.post_related *, .event_related *)) {
    margin-top: 1.5em;
  }
}
.post_article_body {
  /* H2：左アクセントボーダー＋背景帯 */
  /* H3：下線アクセント */
  /* H4 / H5：シンプル */
}
.post_article_body h2 {
  font-size: 21px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  padding: 10px 0 10px 16px;
  margin: 0 0 1.5em;
  line-height: 1.5;
  border-left: 5px solid var(--mv-accent, var(--pm-primary));
  background: var(--mv-h2-bg, var(--mv-accent-bg));
  border-radius: 0 var(--mv-radius-sm, 6px) var(--mv-radius-sm, 6px) 0;
  letter-spacing: var(--mv-letter-spacing, 0.005em);
  scroll-margin-top: 80px;
}
.post_article_body h2::before {
  content: none;
}
.post_article_body h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  padding: 4px 0 6px 4px;
  margin: 0 0 1.5em;
  line-height: 1.5;
  border-bottom: 2px solid var(--mv-accent-border, var(--pm-border));
  scroll-margin-top: 80px;
}
.post_article_body h3::before {
  content: none;
}
.post_article_body h4 {
  font-size: 16px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  margin: 0 0 1.5em;
  line-height: 1.5;
  padding-bottom: 0.4em;
  border-bottom: 1px solid var(--mv-border, var(--pm-border));
}
.post_article_body h5 {
  font-size: 15px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  margin: 0 0 1.5em;
  line-height: 1.5;
}
/* ==========================================================================
   ★★ ページモジュール manual-view 仕様レイアウト ★★
   manual-view.css（admin マニュアル view 専用）の section 10 を front 側にも
   流用するための上書き定義。配下の .mv-modules スコープは除去済み。
   --mv-* トークンは下記 :root エイリアスで --pm-* 系へ橋渡し。
   ========================================================================== */
:root {
  /* mv-* alias → pm-* */
  --mv-bg: var(--pm-bg);
  --mv-bg-2: var(--pm-bg-soft2);
  --mv-surface: var(--pm-bg);
  --mv-surface-alt: var(--pm-bg-soft);
  --mv-surface-soft: var(--pm-bg-soft2);
  --mv-text-strong: var(--pm-text);
  --mv-text: var(--pm-text);
  --mv-text-sub: var(--pm-text-mute);
  --mv-text-muted: var(--pm-text-soft);
  --mv-border: var(--pm-border);
  --mv-border-soft: var(--pm-bg-soft);
  --mv-accent: var(--pm-primary);
  --mv-accent-light: var(--pm-primary-light);
  --mv-accent-dark: var(--pm-primary-dark);
  --mv-accent-bg: color-mix(in srgb, var(--pm-primary) 12%, transparent);
  --mv-accent-border: color-mix(in srgb, var(--pm-primary) 32%, transparent);
  --mv-accent-text: var(--pm-primary-dark);
  --mv-info: #3b82f6;
  --mv-info-bg: rgba(59, 130, 246, 0.1);
  --mv-info-border: rgba(59, 130, 246, 0.28);
  --mv-cat-manual-bg: rgba(59, 130, 246, 0.1);
  --mv-cat-manual-text: #1d4ed8;
  --mv-cat-manual-border: rgba(59, 130, 246, 0.32);
  --mv-cat-notice-bg: rgba(168, 85, 247, 0.1);
  --mv-cat-notice-text: #7e22ce;
  --mv-cat-notice-border: rgba(168, 85, 247, 0.32);
  --mv-radius-sm: 6px;
  --mv-radius-md: 8px;
  --mv-radius-lg: 12px;
  --mv-radius-pill: 9999px;
  --mv-shadow-card: var(--pm-shadow);
  --mv-font-body-line: 1.95;
  --mv-h2-bg: var(--mv-accent-bg);
}
/* ==========================================================================
   10. ページモジュール front_code 互換スタイル
       ctn_m_page_module の page_module_front_code が出力する実際のクラスに合わせて、
       表示画面（mode=view）の本文エリア（配下）で正しく見えるよう定義。
       テーマ変数（--mv-*）を全て利用するため、dark / simple どちらでも色が追従する。

       注意：front_code 側の連結バグ（例 mod_cont__VIEW_DEVICE____MARGIN__）に対し、
       属性セレクタ [class*="mod_cont"] でも当たるよう保険を入れている。
   ========================================================================== */
/* ---- 共通ラッパー：mod_cont（全モジュールに共通する外側ブロック） ---- */
.mod_cont, [class*="mod_cont"]:not([class*="mv-mod-"]) {
  margin: 0 0 3em;
  scroll-margin-top: 80px;
}
.mod_cont + .mod_cont, .mod_cont + [class*="mod_cont"], [class*="mod_cont"] + .mod_cont, [class*="mod_cont"] + [class*="mod_cont"] {
  margin-top: 1.6em;
}
/* ---- 02 / 53 / 54 / 47 : リッチエディタ（.editor）出力 ---- */
.editor {
  line-height: var(--mv-font-body-line);
}
.editor p {
  margin: 0;
}
.editor p + p {
  margin-top: 0.9em;
}
.editor strong {
  color: var(--mv-text-strong);
  font-weight: 700;
}
.editor em {
  font-style: italic;
}
.editor u {
  text-decoration: underline;
}
.editor a {
  color: var(--mv-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.editor a:hover {
  color: var(--mv-accent-dark);
}
/* .editor 内の見出しは「見出しモジュール（mid=1）」と同じレイアウトに揃える
   （CKEditor から貼り付けた h タグも、h2 と同じ装飾で表示する） */
.editor h1, .editor h2, .mod_cont > h1:not([class]), .mod_cont > h2:not([class]), .post_article_body > h1:not([class]), .post_article_body > h2:not([class]) {
  font-size: 21px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  padding: 10px 0 10px 16px;
  margin: 1em 0 0.8em;
  line-height: 1.5;
  border-left: 5px solid var(--mv-accent, var(--pm-primary));
  background: var(--mv-h2-bg, var(--mv-accent-bg));
  border-radius: 0 var(--mv-radius-sm, 6px) var(--mv-radius-sm, 6px) 0;
  letter-spacing: var(--mv-letter-spacing, 0.005em);
}
.editor h1::before, .editor h2::before {
  content: none;
}
.editor h3, .mod_cont > h3:not([class]), .post_article_body > h3:not([class]) {
  font-size: 17px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  padding: 4px 0 6px 4px;
  margin: 1em 0 0.8em;
  line-height: 1.5;
  border-bottom: 2px solid var(--mv-accent-border, var(--pm-border));
}
.editor h3::before {
  content: none;
}
.editor h4, .mod_cont > h4:not([class]), .post_article_body > h4:not([class]) {
  font-size: 16px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  margin: 1em 0 0.7em;
  line-height: 1.5;
  padding-bottom: 0.4em;
  border-bottom: 1px solid var(--mv-border, var(--pm-border));
}
.editor h5, .editor h6, .mod_cont > h5:not([class]), .mod_cont > h6:not([class]), .post_article_body > h5:not([class]), .post_article_body > h6:not([class]) {
  font-size: 15px;
  font-weight: 700;
  color: var(--mv-text-strong, var(--pm-text));
  margin: 1em 0 0.6em;
  line-height: 1.5;
}
.editor ul, .editor ol {
  padding-left: 1.6em;
}
.editor img {
  max-width: 100%;
  height: auto;
  border-radius: var(--mv-radius-sm);
}
.editor blockquote {
  margin: 1em 0;
  padding: 12px 16px;
  background: var(--mv-surface-alt);
  border-left: 4px solid var(--mv-accent);
  border-radius: 0 var(--mv-radius-sm) var(--mv-radius-sm) 0;
  color: var(--mv-text-sub);
}
.editor table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  border: 1px solid var(--mv-border);
}
.editor th, .editor td {
  padding: 8px 12px;
  border: 1px solid var(--mv-border-soft);
  text-align: left;
}
.editor th {
  background: var(--mv-surface-alt);
  font-weight: 600;
}
/* ---- 09 : .lead（リード文ラッパー） ---- */
.lead {
  background: var(--mv-surface-alt);
  border-left: 4px solid var(--mv-accent);
  border-radius: 0 var(--mv-radius-md) var(--mv-radius-md) 0;
  padding: 18px 20px;
}
.lead p {
  margin: 0;
  font-size: 16px;
  line-height: 1.95;
  color: var(--mv-text-sub);
}
/* 色クラス（リード文の class 値で渡される） */
.lead p.red {
  color: #c0392b;
}
.lead p.blue {
  color: #2563eb;
}
.lead p.green {
  color: #15803d;
}
.lead p.gray {
  color: var(--mv-text-sub);
}
/* ---- 03 : .block（画像1枚） ---- */
.block {
  margin: 0;
  text-align: center;
}
/* picture タグ自体には装飾・余白を当てない（border/radius/margin は付与しない） */
.block picture {
  display: inline-block;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}
.block img {
  display: inline-block;
  max-width: 100%;
  height: auto;
  border-radius: var(--mv-radius-md);
  border: 1px solid var(--mv-border);
}
.block.wide {
  max-width: 100%;
}
.block.small {
  max-width: 60%;
  margin: 0 auto;
}
/* ---- 04 / 49 : .gallery（画像／動画ギャラリー） ---- */
.gallery {
  display: grid;
  gap: 16px;
}
.gallery.img1 {
  grid-template-columns: 1fr;
}
.gallery.img2 {
  grid-template-columns: repeat(2, 1fr);
}
.gallery.img3 {
  grid-template-columns: repeat(3, 1fr);
}
.gallery.img4 {
  grid-template-columns: repeat(4, 1fr);
}
.gallery.img5 {
  grid-template-columns: repeat(5, 1fr);
}
.gallery .gallery_set {
  margin: 0;
}
.gallery .img_wrap {
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  background: var(--mv-surface-alt);
}
.gallery .set_wrap {
  display: block;
  transition: opacity 0.15s;
}
.gallery .set_wrap:hover {
  opacity: 0.85;
}
.gallery img, .gallery picture {
  width: 100%;
  height: auto;
  display: block;
}
.gallery .caption {
  padding: 8px 10px;
  font-size: 12.5px;
  color: var(--mv-text-muted);
  margin: 0;
}
.gallery.movie .movie_wrap {
  aspect-ratio: 1.7777777778;
  background: #000;
}
.gallery.movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 600px) {
  .gallery.sp_col1 {
    grid-template-columns: 1fr;
  }
  .gallery.sp_col2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .gallery.none {
    grid-template-columns: 1fr;
  }
}
/* ---- 05 : .btn_list（リンクボタン） ---- */
.btn_list {
  margin: 1em 0;
}
.btn_list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  justify-content: center;
}
.btn_list ul.col2 li {
  flex: 1 1 calc(50% - 12px);
  min-width: 200px;
  box-sizing: border-box;
}
.btn_list ul.col3 li {
  flex: 1 1 calc(33.333% - 12px);
  min-width: 180px;
  box-sizing: border-box;
}
.btn_list li a, .btn_list li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  /* width:100% + padding が li の幅をはみ出してボタン同士が重なるのを防ぐ */
  width: 100%;
  min-height: 44px;
  padding: 10px 22px;
  background: var(--mv-surface);
  color: var(--mv-text);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-pill);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  transition: all 0.18s;
  text-decoration: none;
}
.btn_list li a:hover {
  background: var(--mv-accent);
  color: #fff;
  border-color: var(--mv-accent);
  transform: translateY(-1px);
}
/* スタイルクラス（primary / red / outline / arrow など） */
.btn_list li a.primary {
  background: var(--mv-accent);
  color: #fff;
  border-color: var(--mv-accent);
}
.btn_list li a.primary:hover {
  background: var(--mv-accent-dark);
  border-color: var(--mv-accent-dark);
}
.btn_list li a.red {
  background: var(--mv-accent);
  color: #fff;
  border-color: var(--mv-accent);
}
.btn_list li a.red:hover {
  background: var(--mv-accent-dark);
  border-color: var(--mv-accent-dark);
}
.btn_list li a.outline {
  background: transparent;
  color: var(--mv-accent);
  border-color: var(--mv-accent);
}
.btn_list li a.outline:hover {
  background: var(--mv-accent);
  color: #fff;
}
.btn_list li a.arrow::after {
  content: "→";
  margin-left: 8px;
  transition: transform 0.18s;
}
.btn_list li a.arrow:hover::after {
  transform: translateX(3px);
}
/* ---- 06 : リスト（ul / ol 直出力） ----
   page_module.css の `::before { content: counter() / '•' }` をすべて
   抑止し、自前のカウンタ／バレットで `.mod_cont` 内に綺麗に収める。

   ポイント：
     (a) box-sizing: border-box ＋ max-width: 100% で article から
         はみ出さないことを保証
     (b) <ol> は自前の counter('mv-list') ＋ <li>::before で番号描画
         （page_module.css の pm-li counter と独立 → 干渉しない）
     (c) <ul> は ::before で円形ドットを描画
     (d) padding-left を <li> 側に寄せ（page_module.css の 1.4/1.8em
         を !important で固定）、マーカーを <li> 内に absolute 配置
     (e) 長 URL／長単語は overflow-wrap で折返し
   ---------------------------------------------------------------- */
/* mod_cont 直下の ul / ol：list-style 系を完全リセット */
.mod_cont > ul, .mod_cont > ol, [class*="mod_cont"] > ul, [class*="mod_cont"] > ol {
  list-style: none !important;
  margin: 0 0 0.4em !important;
  padding: 0 !important;
  box-sizing: border-box;
  max-width: 100%;
}
/* <ol> は独自カウンタを起動 */
.mod_cont > ol, [class*="mod_cont"] > ol {
  counter-reset: mv-list;
}
/* page_module.css の ::before（pm-li counter / '•'）を完全抑止 */
.mod_cont > ul > li::before, .mod_cont > ol > li::before, [class*="mod_cont"] > ul > li::before, [class*="mod_cont"] > ol > li::before {
  /* リセット（後段で <ol>/<ul> 個別に上書きする） */
  background: transparent;
}
/* <li> 共通：マーカー用の左余白を確保しつつ、はみ出し防止 */
.mod_cont > ul > li, .mod_cont > ol > li, [class*="mod_cont"] > ul > li, [class*="mod_cont"] > ol > li {
  position: relative;
  padding: 0 0 0 1.8em !important;
  /* マーカー領域 1.8em */
  margin: 0 0 0.5em 0;
  line-height: 1.85;
  list-style: none;
  box-sizing: border-box;
  max-width: 100%;
  /* 長 URL／長英単語の折返し */
  overflow-wrap: anywhere;
  word-break: break-word;
}
/* <ol> li ：自前カウンタ番号を absolute 配置（テーマアクセント色） */
.mod_cont > ol > li, [class*="mod_cont"] > ol > li {
  counter-increment: mv-list;
}
.mod_cont > ol > li::before, [class*="mod_cont"] > ol > li::before {
  content: counter(mv-list) "." !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 1.6em;
  text-align: left;
  color: var(--mv-accent) !important;
  font-weight: 700 !important;
  display: block !important;
  background: transparent !important;
  /* page_module.css の他属性を打ち消し */
  border-radius: 0 !important;
  height: auto !important;
}
/* <ul> li ：自前ドットを absolute 配置（テーマアクセント色） */
.mod_cont > ul > li::before, [class*="mod_cont"] > ul > li::before {
  content: "" !important;
  position: absolute !important;
  left: 0.55em !important;
  top: 0.78em !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: var(--mv-accent) !important;
  display: block !important;
}
/* 内側のリンクも長 URL で枠を破らないように */
.mod_cont > ul > li a, .mod_cont > ol > li a, [class*="mod_cont"] > ul > li a, [class*="mod_cont"] > ol > li a {
  overflow-wrap: anywhere;
  word-break: break-word;
}
/* スマホ時：左余白を少し詰める（モジュール padding が小さい分） */
@media (max-width: 600px) {
  .mod_cont > ul > li, .mod_cont > ol > li, [class*="mod_cont"] > ul > li, [class*="mod_cont"] > ol > li {
    padding-left: 1.6em !important;
  }
}
/* ---- 07 / 18 / 19 : テーブル（.info_table / .scroll_table / .table）
       page.html（.lower_body_inner table）のレイアウトに統一。
       全体 1px ボーダー / 行下 1px ボーダー / th は薄背景＋太字＋左1列幅30%。 */
.info_table, .scroll_table, .table {
  width: 100%;
  margin: 1.2em 0;
  border: 1px solid var(--mv-border);
  background: var(--mv-surface);
  font-size: 14px;
}
.scroll_table, .table_wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
/* スマホ時、.table_wrap 内のテーブルは縦積みにせず横スクロールで見せる。
   テーブル本体に min-width を当てて画面幅を超えさせ、ラッパーでスクロール発動。 */
@media (max-width: 640px) {
  .table_wrap .info_table, .table_wrap .scroll_table, .table_wrap .table, .table_wrap > table {
    min-width: 560px;
  }
}
.info_table table, .scroll_table table, .table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin: 0;
}
.info_table th, .info_table td, .scroll_table th, .scroll_table td, .table th, .table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--mv-border);
  vertical-align: top;
  text-align: left;
  line-height: 1.7;
}
.info_table th, .scroll_table th, .table th {
  background: var(--mv-surface-alt);
  color: var(--mv-text-strong);
  font-weight: 700;
}
/* 左表題型：thead なしで th が左1列にある場合（mid=19）、th を 30% 幅に */
.info_table tbody > tr > th:first-child, .table tbody > tr > th:first-child {
  width: 30%;
}
.info_table tr:last-child td, .info_table tr:last-child th, .table tr:last-child td, .table tr:last-child th {
  border-bottom: none;
}
.info_table tbody tr:hover, .table tbody tr:hover {
  background: var(--mv-surface-soft);
}
/* スマホ時はセル幅を解除して縦並び維持 */
@media (max-width: 640px) {
  .info_table tbody > tr > th:first-child, .table tbody > tr > th:first-child {
    width: auto;
  }
}
/* ---- 引用ブロック（CKEditor 出力 / 本文中で使用） ----
   page.html の blockquote と同様の見た目。.editor / .mod_cont 配下に適用。 */
.editor blockquote, .mod_cont blockquote, .post_article_body blockquote {
  margin: 1.2em 0;
  padding: 14px 18px;
  border-left: 4px solid var(--mv-accent, var(--pm-primary));
  background: var(--mv-surface-alt, var(--pm-bg-soft));
  color: var(--mv-text-sub, var(--pm-text-mute));
  font-style: italic;
  border-radius: 0 var(--mv-radius-sm, 4px) var(--mv-radius-sm, 4px) 0;
}
.editor blockquote p, .mod_cont blockquote p, .post_article_body blockquote p {
  margin: 0;
}
.editor blockquote p + p, .mod_cont blockquote p + p, .post_article_body blockquote p + p {
  margin-top: 0.9em;
}
.editor blockquote cite, .mod_cont blockquote cite, .post_article_body blockquote cite {
  display: block;
  margin-top: 8px;
  font-size: 13px;
  font-style: normal;
  color: var(--mv-text-muted, var(--pm-text-soft));
}
.editor blockquote cite::before, .mod_cont blockquote cite::before, .post_article_body blockquote cite::before {
  content: "— ";
}
/* ---- 10-13 : .flex_area / .flex_cont（2カラム） ---- */
.flex_area {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}
.flex_cont {
  min-width: 0;
}
.flex_cont.order1 {
  order: 1;
}
.flex_cont.order2 {
  order: 2;
}
@media (max-width: 600px) {
  .flex_area {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* ---- 14 : .anchor_link（アンカーナビ）
       ページ内アンカーであることを視覚的に明示するため、
       各リンクの左に Material Symbols の `arrow_downward` アイコンを表示し、
       カード状の薄背景＋ボーダーで「目次」感を強める。
       INDEX ラベルは HTML 側（<p class="anchor_link_label">INDEX</p>）で出力。 */
.anchor_link {
  padding: 28px 32px;
  background: var(--mv-surface-alt);
  border: 1px solid var(--mv-accent-border, var(--mv-border));
  border-left: 4px solid var(--mv-accent);
  border-radius: var(--mv-radius-md);
}
/* INDEX ラベル（p タグ） */
.anchor_link_label {
  margin: 0 0 18px;
  font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--mv-accent);
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 10px;
}
.anchor_link_label::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--mv-accent-border, var(--mv-border));
}
.anchor_link ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
  /* multi-column 固定幅をやめ、文字量に応じた可変幅で並べる */
  display: flex;
  flex-wrap: wrap;
  gap: 0 28px;
  /* row-gap: 0（下マージンなし） / column-gap: 28px */
}
.anchor_link ul.vertical {
  flex-direction: column;
}
.anchor_link li {
  margin: 0;
  line-height: 1.7;
  list-style: none;
  flex: 0 0 auto;
  /* 文字幅にフィット、伸縮しない */
}
.anchor_link li::marker {
  content: none;
}
.anchor_link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  color: var(--mv-text);
  font-weight: 500;
  text-decoration: none;
  transition: color 0.15s, padding-left 0.15s;
}
.anchor_link a::before {
  content: "arrow_downward";
  font-family: "Material Symbols Outlined", "Material Icons Outlined", "Material Icons";
  font-weight: normal;
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 20;
  color: var(--mv-accent);
  flex-shrink: 0;
  transition: transform 0.15s;
}
.anchor_link a:hover, .anchor_link a:focus-visible {
  color: var(--mv-accent-dark);
  text-decoration: none;
  /* underline はやめてアイコン伝播を防ぐ */
}
.anchor_link a:hover::before, .anchor_link a:focus-visible::before {
  transform: translateY(3px);
  /* hover で矢印が下にもう少し動く */
}
@media (max-width: 600px) {
  .anchor_link ul {
    flex-direction: column;
    gap: 8px;
  }
}
/* ---- 15 : アンカーターゲット ---- */
/* sticky topbar 配下でアンカーリンクが見出しの真上に表示されるよう、
   id を持つ要素に scroll-margin-top を確保。
   - 旧 mockup HTML：<section id="sec1">
   - mid=15 アンカー：<div id="ancsec1">
   - mid=1 見出し：<h2 id="anc1"> */
[id^="anc"], [id^="sec"], .mv-mod[id], .mod_cont[id], .mv-article {
  scroll-margin-top: 80px;
}
@media only screen and (max-width: 900px) {
  [id^="anc"], [id^="sec"], .mv-mod[id], .mod_cont[id], .mv-article {
    scroll-margin-top: 64px;
  }
}
/* ---- 16 : .attention_list（キャプション用リスト・赤強調可） ---- */
.attention_list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.attention_list li {
  position: relative;
  padding: 6px 0 6px 22px;
  line-height: 1.85;
}
.attention_list li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 6px;
  color: var(--mv-text-muted);
}
.attention_list li.red {
  color: #c0392b;
}
.attention_list li.red::before {
  color: #c0392b;
}
/* ---- 17 : .relation_link（関連リンク） ----
   CMS の front_code 仕様：<a> は dd 側に付与される構造
     <dl>
       <div class="link_set">
         <dt>タイトル</dt>
         <dd><a href="…">リンクテキスト</a></dd>
       </div>
     </dl>
   stretched-link パターンで dd の <a> に ::after を当て、.link_set 全体を
   クリック可能化。タイトル（dt）左には余白を確保。 */
.relation_link dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.relation_link .link_set {
  display: grid;
  grid-template-columns: minmax(120px, 200px) 1fr;
  gap: 0 16px;
  padding: 14px 18px 14px 28px;
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  align-items: baseline;
  position: relative;
  /* dd a::after の絶対配置基準 */
  transition: border-color 0.15s, background 0.15s;
}
.relation_link .link_set:hover {
  border-color: var(--mv-accent);
  background: var(--mv-accent-bg);
}
.relation_link dt {
  margin: 0;
  font-weight: 600;
  color: var(--mv-text-strong);
  font-size: 14px;
}
.relation_link dd {
  margin: 0;
  min-width: 0;
}
.relation_link dd a {
  color: var(--mv-accent);
  word-break: break-word;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.relation_link dd a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  /* link_set 全体を覆ってクリック領域化 */
  border-radius: var(--mv-radius-md);
}
.relation_link .link_set:hover dd a {
  color: var(--mv-accent-dark);
}
.relation_link dd a:hover {
  color: var(--mv-accent-dark);
}
@media (max-width: 600px) {
  .relation_link .link_set {
    grid-template-columns: 1fr;
    gap: 4px 0;
  }
}
/* ---- 19 : .table（追加バリエーション） ---- */
.table .pc_none {
  display: none;
}
@media (max-width: 600px) {
  .table .pc_none {
    display: block;
  }
}
/* ---- 20 : .faq_mod / .faq_set（FAQ） ---- */
.faq_mod h2 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--mv-text-strong);
}
.faq_mod dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.faq_set {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  overflow: hidden;
}
.faq_set dt, .faq_set dd {
  margin: 0;
  padding: 14px 18px 14px 56px;
  position: relative;
  line-height: 1.8;
}
.faq_set dt {
  font-weight: 600;
  color: var(--mv-text-strong);
  background: var(--mv-surface-soft);
  border-bottom: 1px solid var(--mv-border-soft);
}
.faq_set dt::before, .faq_set dd::before {
  position: absolute;
  left: 18px;
  top: 14px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* 英欧フォント統一でベースライン上ぶれを抑制 */
  font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  box-sizing: border-box;
}
.faq_set dt::before {
  content: "Q";
  background: var(--mv-accent);
  color: #fff;
}
.faq_set dd::before {
  content: "A";
  background: var(--mv-surface-alt);
  color: var(--mv-accent-text);
  border: 1px solid var(--mv-accent-border);
}
.faq_set dt span, .faq_set dd span {
  display: block;
}
/* ---- 21 : .mod_slider（スライドショー） ---- */
.mod_slider .main_slider, .mod_slider .thumb_slider {
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  background: var(--mv-surface-alt);
}
.mod_slider .thumb_slider {
  margin-top: 8px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 6px;
  background: transparent;
}
.mod_slider .item img {
  width: 100%;
  height: auto;
  display: block;
}
/* ---- 22 / 23 : .border_cont（罫線付きコンテンツ） ---- */
.border_cont {
  border: 2px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  padding: 22px 24px;
}
.border_cont.color1 {
  border-color: var(--mv-accent);
}
.border_cont.color2 {
  border-color: var(--mv-info);
}
.border_cont.color3 {
  border-color: #f59e0b;
}
.border_cont.color4 {
  border-color: #ef4444;
}
/* 連結バグ保険：colorXmb-Y 形式にも当てる */
[class*="border_cont"][class*="color1"] {
  border-color: var(--mv-accent);
}
[class*="border_cont"][class*="color2"] {
  border-color: var(--mv-info);
}
/* ---- 24 / 25 : .bg_cont（背景コンテンツ） ---- */
.bg_cont {
  background: var(--mv-surface-alt);
  border-radius: var(--mv-radius-md);
  padding: 22px 24px;
}
.bg_cont.gray {
  background: var(--mv-surface-alt);
}
.bg_cont.white {
  background: #ffffff;
  border: 1px solid var(--mv-border);
}
.bg_cont.accent {
  background: var(--mv-accent-bg);
  border: 1px solid var(--mv-accent-border);
}
.bg_cont .cont_wrap {
  max-width: 100%;
}
/* .border_cont / .bg_cont 内の最初の見出しは上余白を 0 にして枠との段差を防ぐ */
.border_cont > h1:first-child, .border_cont > h2:first-child, .border_cont > h3:first-child, .border_cont > h4:first-child, .border_cont > h5:first-child, .border_cont > h6:first-child, .bg_cont > h1:first-child, .bg_cont > h2:first-child, .bg_cont > h3:first-child, .bg_cont > h4:first-child, .bg_cont > h5:first-child, .bg_cont > h6:first-child {
  margin-top: 0;
}
/* ---- 26 / 57 : お知らせ一覧（home_news / __MOD_NEWS_LIST__） ---- */
#home_news {
  background: var(--mv-surface-alt);
  padding: 24px;
  border-radius: var(--mv-radius-md);
}
#home_news .home_title {
  text-align: center;
  margin-bottom: 18px;
}
#home_news .home_title .sub_title {
  color: var(--mv-accent);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
}
#home_news .home_title h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--mv-text-strong);
  margin: 4px 0 0;
}
#home_news .link_btn {
  text-align: center;
  margin-top: 16px;
}
#home_news .link_btn a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  background: var(--mv-accent);
  color: #fff;
  border-radius: var(--mv-radius-pill);
  font-weight: 600;
  font-size: 13px;
  transition: background 0.18s;
}
#home_news .link_btn a:hover {
  background: var(--mv-accent-dark);
}
/* ---- 27 : イベント一覧（home_event） ---- */
#home_event {
  background: var(--mv-surface-alt);
  padding: 24px;
  border-radius: var(--mv-radius-md);
  position: relative;
}
#home_event .home_title {
  text-align: center;
  margin-bottom: 18px;
}
#home_event .home_title .sub_title {
  color: var(--mv-accent);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
}
#home_event .home_title h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--mv-text-strong);
  margin: 4px 0 0;
}
#home_event .link_btn {
  text-align: center;
  margin-top: 16px;
}
#home_event .link_btn a {
  display: inline-flex;
  padding: 10px 24px;
  background: var(--mv-accent);
  color: #fff;
  border-radius: var(--mv-radius-pill);
  font-weight: 600;
  font-size: 13px;
}
#home_event .deco {
  position: absolute;
  right: 8px;
  bottom: 8px;
  opacity: 0.3;
  pointer-events: none;
}
#home_event .deco img {
  max-width: 80px;
  height: auto;
}
/* ---- 28 / 29 / 30 / 31 : .graph_cont（グラフ） ---- */
.graph_cont {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  padding: 22px;
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 22px;
  align-items: center;
}
.graph_cont.bar_graph, .graph_cont.polyline {
  grid-template-columns: 1fr;
}
.graph_cont .pie, .graph_cont .graph {
  min-width: 0;
}
.graph_cont .scroll_wrap {
  overflow-x: auto;
}
.graph_cont .sp_scroll {
  min-width: 320px;
}
.graph_cont canvas {
  max-width: 100%;
  height: auto;
}
.graph_cont .graph_info h3 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 700;
  color: var(--mv-text-strong);
}
.graph_cont .graph_info ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
}
.graph_cont .graph_info li {
  display: flex;
  align-items: center;
  gap: 8px;
}
.graph_cont .graph_info .color {
  width: 12px;
  height: 12px;
  border-radius: 2px;
  flex-shrink: 0;
}
@media (max-width: 700px) {
  .graph_cont {
    grid-template-columns: 1fr;
  }
}
/* ---- 32 : .sdgs_icon（SDGs） ---- */
.sdgs_icon ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}
.sdgs_icon ul.col5 {
  grid-template-columns: repeat(5, 1fr);
}
.sdgs_icon ul.col6 {
  grid-template-columns: repeat(6, 1fr);
}
.sdgs_icon ul.col7 {
  grid-template-columns: repeat(7, 1fr);
}
.sdgs_icon ul.col8 {
  grid-template-columns: repeat(8, 1fr);
}
.sdgs_icon ul.col9 {
  grid-template-columns: repeat(9, 1fr);
}
.sdgs_icon img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 700px) {
  .sdgs_icon ul[class*="col"] {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* ---- 33 : .link_list（リンクリスト） ---- */
.link_list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.link_list ul.flex_area {
  display: grid;
  gap: 10px;
}
.link_list ul.flex_area.col2 {
  grid-template-columns: repeat(2, 1fr);
}
.link_list ul.flex_area.col3 {
  grid-template-columns: repeat(3, 1fr);
}
.link_list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  color: var(--mv-text);
  font-weight: 500;
  font-size: 14px;
  transition: all 0.15s;
}
.link_list li a::after {
  content: "›";
  margin-left: auto;
  color: var(--mv-text-muted);
  font-size: 18px;
  line-height: 1;
  transition: transform 0.15s;
}
.link_list li a:hover {
  border-color: var(--mv-accent);
  background: var(--mv-accent-bg);
  color: var(--mv-accent-text);
}
.link_list li a:hover::after {
  transform: translateX(2px);
  color: var(--mv-accent);
}
/* Material Symbols Outlined のリガチャでアイコンを描画。
   common.css の .material-symbols-outlined 共通定義を継承するため、
   font-family / settings は inherit せずここで明示する。 */
.link_list li.text a::before, .link_list li.pdf a::before, .link_list li.blank a::before {
  font-family: "Material Symbols Outlined", "Material Icons Outlined", "Material Icons";
  font-weight: normal;
  font-style: normal;
  font-size: 1.15em;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
  color: var(--mv-accent, var(--pm-primary));
  flex-shrink: 0;
}
.link_list li.text a::before {
  content: "description";
}
.link_list li.pdf a::before {
  content: "picture_as_pdf";
}
.link_list li.blank a::before {
  content: "open_in_new";
}
@media (max-width: 700px) {
  .link_list ul.flex_area.col2, .link_list ul.flex_area.col3 {
    grid-template-columns: 1fr;
  }
}
/* ---- 34 / 56 : .mod_movie / .mp4_wrap（動画） ---- */
.mod_movie {
  position: relative;
  width: 100%;
  aspect-ratio: 1.7777777778;
  background: #000;
  border-radius: var(--mv-radius-md);
  overflow: hidden;
}
.mod_movie iframe, .mod_movie video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.mp4_wrap {
  width: 100%;
  height: 100%;
}
/* ---- 35-40 / 45 : フォーム関連 ---- */
.form_area {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  padding: 22px 24px;
}
.form_set {
  margin: 0;
}
.form_set table {
  width: 100%;
  border-collapse: collapse;
}
.form_set th, .form_set td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--mv-border-soft);
  vertical-align: top;
  text-align: left;
}
.form_set th {
  background: var(--mv-surface-alt);
  font-weight: 600;
  color: var(--mv-text-sub);
  font-size: 13.5px;
  width: 30%;
  min-width: 160px;
}
.form_set tr:last-child th, .form_set tr:last-child td {
  border-bottom: none;
}
.form_set input[type="text"], .form_set input[type="email"], .form_set input[type="file"], .form_set textarea {
  width: 100%;
  padding: 8px 12px;
  font-size: 14px;
  font-family: inherit;
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-sm);
  color: var(--mv-text);
  transition: border-color 0.15s;
}
.form_set input[type="text"]:focus, .form_set input[type="email"]:focus, .form_set textarea:focus {
  outline: none;
  border-color: var(--mv-accent);
  box-shadow: 0 0 0 3px var(--mv-accent-bg);
}
.form_set textarea {
  resize: vertical;
  min-height: 100px;
}
.form_set ul.check_list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.form_set ul.check_list li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.form_set ul.check_list label {
  cursor: pointer;
}
.form_set ul.check_list input[type="radio"], .form_set ul.check_list input[type="checkbox"] {
  accent-color: var(--mv-accent);
}
.form_set .required {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  background: var(--mv-accent);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  border-radius: 3px;
  vertical-align: middle;
}
.file_input .input_set {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.file_input .file_btn {
  display: inline-flex;
  gap: 4px;
}
.file_input .file_btn span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--mv-radius-sm);
  border: 1px solid var(--mv-border);
  background: var(--mv-surface-alt);
  cursor: pointer;
}
.file_input .file_btn .add::before {
  content: "+";
  font-weight: 700;
}
.file_input .file_btn .del::before {
  content: "–";
  font-weight: 700;
}
.agreement {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--mv-border-soft);
}
.agreement_wrap {
  max-height: 200px;
  overflow-y: auto;
  padding: 12px 14px;
  background: var(--mv-surface-alt);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-sm);
  font-size: 13px;
  line-height: 1.7;
}
.agreement_check {
  margin-top: 12px;
  text-align: center;
}
.agreement_check label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  cursor: pointer;
}
.form_area .btn_list {
  margin-top: 20px;
}
.btn.red {
  background: var(--mv-accent);
  color: #fff;
  border: none;
  padding: 12px 32px;
  font-size: 14px;
  font-weight: 600;
  border-radius: var(--mv-radius-pill);
  cursor: pointer;
  transition: background 0.18s;
}
.btn.red:hover:not(:disabled) {
  background: var(--mv-accent-dark);
}
.btn.red:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* ---- 41 : 装飾見出し（hl02 / hl04 / hl09） ---- */
.mod_cont > h2[class*="hl0"], .mod_cont > h3[class*="hl0"], [class*="hl02"], [class*="hl04"], [class*="hl09"] {
  scroll-margin-top: 80px;
}
h2[class*="hl02"], h3[class*="hl02"], h4[class*="hl02"] {
  position: relative;
  padding: 8px 0 8px 18px;
  font-size: 21px;
  font-weight: 700;
  color: var(--mv-text-strong);
  border-left: 5px solid var(--mv-accent);
  background: var(--mv-accent-bg);
  border-radius: 0 var(--mv-radius-sm) var(--mv-radius-sm) 0;
  margin: 0;
}
h2[class*="hl04"], h3[class*="hl04"] {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  color: var(--mv-text-strong);
  position: relative;
  padding-bottom: 14px;
  margin: 0;
}
h2[class*="hl04"] span, h3[class*="hl04"] span {
  display: inline-block;
  padding: 0 16px;
  background: var(--mv-surface);
  position: relative;
}
h2[class*="hl04"]::before, h3[class*="hl04"]::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 22px;
  height: 1px;
  background: var(--mv-accent-border);
  z-index: 0;
}
h2[class*="hl09"], h3[class*="hl09"] {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  color: var(--mv-text-strong);
  margin: 0;
}
h2[class*="hl09"] .label, h3[class*="hl09"] .label {
  display: block;
  margin-bottom: 4px;
  color: var(--mv-accent);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
h2[class*="hl09"] small, h3[class*="hl09"] small {
  display: block;
  font-size: inherit;
  font-weight: 700;
}
/* hl03（モジュール47 内で使用） */
.hl03 {
  font-size: 18px;
  font-weight: 700;
  color: var(--mv-text-strong);
  border-bottom: 2px solid var(--mv-accent-border);
  padding-bottom: 6px;
  margin: 0 0 12px;
}
/* ---- 42 : .mod_line（区切り線） ---- */
.mod_line {
  height: 1px;
  background: var(--mv-border);
  margin: 1.5em 0;
}
/* ---- 43 / 44 : .modal（モーダル） ---- */
/* マニュアル表示画面では非アクティブ前提。表示されたとき用の最低限スタイル */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.6);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}
.modal.is-open {
  display: flex;
}
.modal_wrap {
  width: min(720px, 90vw);
  max-height: 86vh;
  overflow-y: auto;
  background: var(--mv-surface);
  border-radius: var(--mv-radius-lg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.modal_content {
  padding: 24px;
}
.modal_close {
  text-align: center;
  cursor: pointer;
}
.modal_close.top {
  padding: 12px 16px 0;
}
.modal_close.btm {
  padding: 12px 16px 20px;
}
.modal_close img {
  width: 32px;
  height: auto;
}
.modal_close p {
  display: inline-block;
  padding: 8px 24px;
  background: var(--mv-text-sub);
  color: #fff;
  border-radius: var(--mv-radius-pill);
  margin: 0;
}
/* ---- 46 : .aco_cont / .dl_set（アコーディオン） ----
   front_code は <dl><div class="dl_set"><dt>Q</dt><dd>A</dd></div></dl> を出力。
   開閉動作は assets/js/common.js が dt クリックで .is-open を
   toggle（dt 自体と親 .dl_set の両方）する。CSS は dd の max-height
   トランジションで開閉アニメーション。 */
.aco_cont dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.aco_cont .dl_set {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.aco_cont .dl_set.is-open {
  border-color: var(--mv-accent-border);
  box-shadow: 0 1px 6px rgba(15, 23, 42, 0.05);
}
.aco_cont dt {
  margin: 0;
  padding: 14px 44px 14px 18px;
  font-weight: 600;
  color: var(--mv-text-strong);
  background: var(--mv-surface-soft);
  cursor: pointer;
  position: relative;
  user-select: none;
  outline: none;
  transition: background 0.15s;
}
.aco_cont dt:hover, .aco_cont dt:focus-visible {
  background: var(--mv-accent-bg);
}
.aco_cont dt::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--mv-accent);
  transition: transform 0.2s;
}
.aco_cont dt.is-open::after, .aco_cont .dl_set.is-open dt::after {
  content: "−";
}
/* dd は初期非表示。dt.is-open（または親 .dl_set.is-open）で展開 */
.aco_cont dd {
  margin: 0;
  padding: 0 18px;
  max-height: 0;
  overflow: hidden;
  border-top: 0 solid var(--mv-border-soft);
  line-height: 1.85;
  color: var(--mv-text);
  transition: max-height 0.25s ease, padding 0.2s ease, border-top-width 0s linear 0.2s;
}
.aco_cont dt.is-open + dd, .aco_cont .dl_set.is-open > dd {
  max-height: 1500px;
  padding: 16px 18px;
  border-top-width: 1px;
  transition: max-height 0.3s ease, padding 0.2s ease, border-top-width 0s linear;
}
/* ---- 47 : .img_txt（画像＋説明文） ---- */
.img_txt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.img_txt .img {
  min-width: 0;
}
.img_txt .img img {
  width: 100%;
  height: auto;
  border-radius: var(--mv-radius-md);
  border: 1px solid var(--mv-border);
}
.img_txt .img .caption {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: var(--mv-text-muted);
}
/* 画像＋説明文の説明側は左寄せ（親 .block の text-align:center を打ち消す） */
.img_txt .txt {
  min-width: 0;
  text-align: left;
}
.img_txt .txt .editor {
  text-align: left;
}
.img_txt.reverse {
  direction: rtl;
}
.img_txt.reverse > * {
  direction: ltr;
}
.img_txt.img_width .img img {
  width: auto;
  max-width: 100%;
}
@media (max-width: 700px) {
  .img_txt {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .img_txt.reverse {
    direction: ltr;
  }
  .img_txt.sp_reverse {
    display: flex;
    flex-direction: column-reverse;
  }
}
/* ---- 51 / 52 : .home_bnr / .home_btm_bnr（バナー） ---- */
#home_bnr, #home_btm_bnr {
  background: var(--mv-surface-alt);
  padding: 20px;
  border-radius: var(--mv-radius-md);
}
#home_bnr .slide_wrap {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
#home_bnr .item {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  overflow: hidden;
}
#home_bnr img, #home_btm_bnr img {
  width: 100%;
  height: auto;
  display: block;
}
#home_btm_bnr ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
#home_btm_bnr li {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-sm);
  overflow: hidden;
}
/* ---- 55 : .map_wrap（GoogleMap） ---- */
.map_wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1.7777777778;
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  background: var(--mv-surface-alt);
  border: 1px solid var(--mv-border);
}
.map_wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
/* ---- 58 / 59 : 特集一覧（home_special） ---- */
#home_special {
  background: var(--mv-surface-alt);
  padding: 24px;
  border-radius: var(--mv-radius-md);
  position: relative;
}
#home_special .home_title {
  text-align: center;
  margin-bottom: 18px;
}
#home_special .home_title .sub_title {
  color: var(--mv-accent);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.06em;
}
#home_special .home_title h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--mv-text-strong);
  margin: 4px 0 0;
}
#home_special .link_btn {
  text-align: center;
  margin-top: 16px;
}
#home_special .link_btn a {
  display: inline-flex;
  padding: 10px 24px;
  background: var(--mv-accent);
  color: #fff;
  border-radius: var(--mv-radius-pill);
  font-weight: 600;
  font-size: 13px;
}
#home_special .deco {
  position: absolute;
  right: 8px;
  bottom: 8px;
  opacity: 0.3;
  pointer-events: none;
}
#home_special .deco img {
  max-width: 80px;
  height: auto;
}
/* ---- 50 : __TOP_KV__（キービジュアル placeholder） ---- */
/* キービジュアルは原則ホームのみ。マニュアル画面では幅いっぱいの飾りとして表示 */
/* ---- ユーティリティ：__VIEW_DEVICE__ / __MARGIN__ 系 ---- */
/* 表示制御 */
.pc_only {
  display: block;
}
.sp_only {
  display: none;
}
.tb_only {
  display: none;
}
.pc_none {
  display: none;
}
.sp_none {
  display: block;
}
.tb_none {
  display: block;
}
@media (max-width: 900px) {
  .pc_only {
    display: none;
  }
  .tb_only {
    display: block;
  }
  .pc_none {
    display: block;
  }
  .tb_none {
    display: none;
  }
}
@media (max-width: 600px) {
  .sp_only {
    display: block;
  }
  .sp_none {
    display: none;
  }
  .tb_only {
    display: none;
  }
  .tb_none {
    display: block;
  }
}
/* マージン（mb-数字 / mt-数字）。数値はおおむね 5/10/20/30 を想定 */
.mb-0 {
  margin-bottom: 0 !important;
}
.mb-5 {
  margin-bottom: 0.5em !important;
}
.mb-10 {
  margin-bottom: 1em !important;
}
.mb-20 {
  margin-bottom: 2em !important;
}
.mb-30 {
  margin-bottom: 3em !important;
}
.mt-0 {
  margin-top: 0 !important;
}
.mt-5 {
  margin-top: 0.5em !important;
}
.mt-10 {
  margin-top: 1em !important;
}
.mt-20 {
  margin-top: 2em !important;
}
.mt-30 {
  margin-top: 3em !important;
}
/* ==========================================================================
   ★★ ページモジュール mv-mod-* モックアップクラス互換 ★★
   manual_id 内に貼り付けられた raw HTML（モックアップ HTML 由来）が
   <section class="mv-mod mv-mod-lead">…</section> 等のクラスを使う場合に、
   page_module.css 単独でも見た目が揃うよう、manual-view.css の
   mv-mod-* 系ルールをそのまま流用。
   （migrate_html_to_modules.php でモジュール化済みのコンテンツには
   無関係なので副作用なし。）
   ========================================================================== */
/* mockup の <section class="mv-mod ..."> 基底ラッパー：proper module の
   .mod_cont と同じ余白挙動に揃えて、両形式が並んでも整合する */
.mv-mod {
  margin: 0;
  scroll-margin-top: 80px;
}
.mv-mod + .mv-mod, .mod_cont + .mv-mod, .mv-mod + .mod_cont, .mv-mod + h2, .mv-mod + h3 {
  margin-top: 1.6em;
}
@media only screen and (max-width: 900px) {
  .mv-mod + .mv-mod, .mod_cont + .mv-mod, .mv-mod + .mod_cont {
    margin-top: 1.4em;
  }
}
/* ----- module: リード文（09） ----- */
.mv-mod-lead p {
  font-size: 16px;
  line-height: 1.95;
  color: var(--mv-text-sub);
  padding: 18px 20px;
  background: var(--mv-surface-alt);
  border-left: 4px solid var(--mv-accent);
  border-radius: 0 var(--mv-radius-md) var(--mv-radius-md) 0;
}
/* ----- module: 見出し（01） ----- */
heading + .mv-mod {
  margin-top: 1em;
}
h2:where(:not(.post_related *, .event_related *)) {
  font-size: 21px;
  font-weight: 700;
  color: var(--mv-text-strong);
  padding: 10px 0 10px 16px;
  margin: 0;
  border-left: 5px solid var(--mv-accent);
  background: var(--mv-h2-bg, var(--mv-accent-bg));
  border-radius: 0 var(--mv-radius-sm) var(--mv-radius-sm) 0;
  letter-spacing: var(--mv-letter-spacing, 0.005em);
  scroll-margin-top: 80px;
}
h3:where(:not(.post_related *, .event_related *)) {
  font-size: 17px;
  font-weight: 700;
  color: var(--mv-text-strong);
  padding: 4px 0 6px 4px;
  margin: 0;
  border-bottom: 2px solid var(--mv-accent-border);
  scroll-margin-top: 80px;
}
/* ----- module: 本文（02） ----- */
.mv-mod-body strong {
  color: var(--mv-text-strong);
  font-weight: 700;
}
/* ----- module: 画像1枚（03） ----- */
.mv-mod-figure {
  margin: 0;
  text-align: center;
}
.mv-mod-figure-img {
  display: block;
  max-width: 100%;
  margin: 0 auto;
  border-radius: var(--mv-radius-md);
  border: 1px solid var(--mv-border);
  background: var(--mv-surface-alt);
}
.mv-mod-figure-placeholder {
  width: 100%;
  height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--mv-text-muted);
}
.mv-mod-figure-placeholder .material-symbols-outlined {
  font-size: 48px;
  opacity: 0.5;
}
.mv-mod-figure-note {
  font-size: 13px;
}
.mv-mod-figcaption {
  margin-top: 10px;
  font-size: 12.5px;
  color: var(--mv-text-muted);
  text-align: center;
}
/* ----- module: リスト（06） ----- */
/* HTML 側のクラス名は .mv-ol / .mv-ul（mockup HTML 由来）。
   .mv-mod-ol / .mv-mod-ul も互換のため併記 */
.mv-ol, .mv-ul, .mv-mod-ol, .mv-mod-ul {
  padding-left: 1.6em;
  margin: 0 0 0.4em;
  list-style-position: outside;
}
.mv-ol li, .mv-ul li, .mv-mod-ol li, .mv-mod-ul li {
  margin-bottom: 0.5em;
  line-height: 1.85;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.mv-ol li::marker, .mv-mod-ol li::marker {
  color: var(--mv-accent);
  font-weight: 700;
}
.mv-ul li::marker, .mv-mod-ul li::marker {
  color: var(--mv-accent);
}
/* ----- module: アンカーナビ（14） ----- */
.mv-mod-anchor-nav {
  padding: 22px 24px;
  background: var(--mv-surface-alt);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
}
.mv-mod-anchor-nav-title {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--mv-text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.mv-mod-anchor-nav-list {
  margin: 0;
  padding-left: 1.4em;
  columns: 2;
  column-gap: 28px;
}
.mv-mod-anchor-nav-list li {
  margin-bottom: 6px;
  break-inside: avoid;
  line-height: 1.7;
}
.mv-mod-anchor-nav-list li::marker {
  color: var(--mv-accent);
  font-weight: 700;
}
.mv-mod-anchor-nav-list a {
  color: var(--mv-text);
  font-weight: 500;
  transition: color 0.15s;
}
.mv-mod-anchor-nav-list a:hover {
  color: var(--mv-accent);
  text-decoration: underline;
}
@media (max-width: 600px) {
  .mv-mod-anchor-nav-list {
    columns: 1;
  }
}
/* ----- module: 表（19）----- */
.mv-mod-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  background: var(--mv-surface);
}
.mv-mod-tbl {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.mv-mod-tbl thead th {
  background: var(--mv-surface-alt);
  color: var(--mv-text-sub);
  font-weight: 600;
  text-align: left;
  padding: 12px 16px;
  border-bottom: 1px solid var(--mv-border);
  font-size: 13px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.mv-mod-tbl tbody td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--mv-border-soft);
  vertical-align: top;
}
.mv-mod-tbl tbody tr:last-child td {
  border-bottom: none;
}
.mv-mod-tbl tbody tr:hover {
  background: var(--mv-surface-soft);
}
/* ----- module: アコーディオン / FAQ（46 / 20） ----- */
.mv-mod-accordion {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mv-mod-accordion-item {
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.mv-mod-accordion-item[open] {
  border-color: var(--mv-accent-border);
  box-shadow: 0 1px 6px rgba(15, 23, 42, 0.05);
}
.mv-mod-accordion-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 18px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--mv-text-strong);
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background 0.15s;
}
.mv-mod-accordion-summary::-webkit-details-marker {
  display: none;
}
.mv-mod-accordion-summary:hover {
  background: var(--mv-surface-soft);
}
.mv-mod-accordion-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--mv-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.mv-mod-accordion-arrow {
  margin-left: auto;
  font-size: 22px !important;
  color: var(--mv-text-muted);
  transition: transform 0.2s;
}
.mv-mod-accordion-item[open] .mv-mod-accordion-arrow {
  transform: rotate(180deg);
}
.mv-mod-accordion-body {
  padding: 4px 18px 18px 50px;
  font-size: 14px;
  line-height: 1.85;
  color: var(--mv-text);
  border-top: 1px solid var(--mv-border-soft);
}
.mv-mod-accordion-body p {
  padding-top: 14px;
}
/* ----- module: 関連リンク / リンクリスト（17 / 33） ----- */
.mv-mod-link-list-ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mv-mod-link-list-a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  color: var(--mv-text);
  font-weight: 500;
  font-size: 14px;
  transition: all 0.15s;
}
.mv-mod-link-list-a:hover {
  border-color: var(--mv-accent);
  background: var(--mv-accent-bg);
  color: var(--mv-accent-text);
  transform: translateX(2px);
}
.mv-mod-link-list-a > .material-symbols-outlined:first-child {
  font-size: 20px;
  color: var(--mv-accent);
  flex-shrink: 0;
}
.mv-mod-link-list-text {
  flex: 1;
  min-width: 0;
}
.mv-mod-link-list-arrow {
  font-size: 20px !important;
  color: var(--mv-text-muted);
  transition: transform 0.15s;
}
.mv-mod-link-list-a:hover .mv-mod-link-list-arrow {
  color: var(--mv-accent);
  transform: translateX(2px);
}
/* ----- module: リンクボタン（05） / CTA -----
   <a class="mv-mod-cta-btn"> 用：ブラウザの <a> 既定（下線・青色）を打ち消し、
   pill 形のアクセント塗りボタンに */
.mv-mod-cta {
  text-align: center;
  margin: 2em 0 0;
}
.mv-mod-cta-btn, a.mv-mod-cta-btn, .mv-mod-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  background: var(--mv-accent);
  color: #fff !important;
  /* a タグの色既定を打ち消す */
  border: 1px solid var(--mv-accent);
  border-radius: var(--mv-radius-pill);
  text-decoration: none !important;
  /* a タグの下線を除去 */
  white-space: nowrap;
  transition: background 0.18s, transform 0.18s, box-shadow 0.18s, border-color 0.18s;
  box-shadow: 0 4px 12px var(--mv-accent-bg);
  cursor: pointer;
}
.mv-mod-cta-btn:hover, a.mv-mod-cta-btn:hover, .mv-mod-cta a:hover {
  background: var(--mv-accent-dark);
  border-color: var(--mv-accent-dark);
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px var(--mv-accent-bg);
  text-decoration: none !important;
}
.mv-mod-cta-btn .material-symbols-outlined, .mv-mod-cta a .material-symbols-outlined {
  font-size: 18px;
  line-height: 1;
}
/* ==========================================================================
   ★★★ CTN_ADDITIONAL_MODULES_START
   追加：表示確認テンプレで使用するモジュール用スタイル（不足分の補強）
   front_code 実出力に対して不足していた CSS を補う。
   - mid=8/48 .custom_html
   - mid=10-13 .col2_wrap / .col2_block
   - mid=18/19 .info_table.no_head / .info_table.left_head
   - mid=26/57 .post_list_mod
   - mid=27 .event_list_mod
   - mid=28 .graph_cont.graph_pie ほか
   - mid=46 .accordion_set
   - mid=49 .movie_gallery
   - mid=50 .kv_block
   - mid=51 .banner_set
   - mid=52 .logo_banner
   - mid=53 .bg_editor / mid=54 .border_editor
   - mid=58/59 .recruit_list
   ========================================================================== */
/* ---- mid=8/48 HTML/CSS/JS 埋め込み ---- */
.custom_html {
  margin: 1em 0;
  padding: 14px 18px;
  background: var(--mv-surface-soft);
  border: 1px dashed var(--mv-border);
  border-radius: var(--mv-radius-sm);
  font-size: 14px;
  color: var(--mv-text-sub);
}
/* ---- mid=10-13 2カラム ---- */
.col2_wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 1.6em 0;
}
.col2_wrap > .col2_block {
  min-width: 0;
}
@media (max-width: 900px) {
  .col2_wrap {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* ---- mid=18 テーブル（ヘッダーなし） ---- */
.info_table.no_head th {
  display: none;
}
/* ---- mid=19 テーブル（左表題） ---- */
.info_table.left_head th {
  width: 28%;
  white-space: nowrap;
  text-align: left;
}
@media (max-width: 700px) {
  .info_table.left_head th {
    width: auto;
    white-space: normal;
  }
}
/* ---- mid=27 イベント一覧モジュール ----
   ※ mid=26 お知らせ一覧（.post_list_mod）のスタイルは common.css 側で
   　 全ページ共通として定義しているのでここからは除外。 */
.event_list_mod ul {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--mv-border-soft);
}
.event_list_mod li {
  border-bottom: 1px solid var(--mv-border-soft);
}
.event_list_mod li a {
  display: grid;
  grid-template-columns: 120px 120px 1fr;
  align-items: center;
  gap: 16px;
  padding: 14px 4px;
  color: var(--mv-text);
  text-decoration: none;
  transition: opacity 0.15s;
}
.event_list_mod li a:hover {
  opacity: 0.7;
}
.event_list_mod time {
  font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
  font-size: 13px;
  color: var(--mv-text-mute);
}
.event_list_mod .cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid var(--mv-accent);
  border-radius: var(--mv-radius-sm);
  color: var(--mv-accent);
  width: fit-content;
}
.event_list_mod .ttl {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}
@media (max-width: 700px) {
  .event_list_mod li a {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px 4px;
  }
}
/* ---- mid=28-31 グラフ：Chart.js 用 chart_wrap サイズ指定 ----
   Chart.js の canvas が親要素の幅にフィットして横幅いっぱいに描画される。
   円グラフは正方形（aspect-ratio:1）、棒/折れ線は固定 height で描画。 */
.graph_cont .chart_wrap {
  width: 100%;
  position: relative;
}
.graph_cont .chart_wrap_pie {
  aspect-ratio: 1;
  max-width: 100%;
}
.graph_cont .chart_wrap_h {
  height: clamp(220px, 36vw, 360px);
}
.graph_cont .chart_wrap_v {
  height: clamp(240px, 38vw, 400px);
}
.graph_cont .chart_wrap_line {
  height: clamp(260px, 40vw, 420px);
}
.graph_cont .chart_wrap > canvas {
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  display: block;
}
/* ---- mid=46 .accordion_set（汎用アコーディオン） ---- */
.accordion_set {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 1em 0;
}
.accordion_set details {
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  background: var(--mv-surface);
  overflow: hidden;
}
.accordion_set summary {
  padding: 14px 48px 14px 18px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  position: relative;
  background: var(--mv-surface-soft);
}
.accordion_set summary::-webkit-details-marker {
  display: none;
}
.accordion_set summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: var(--mv-text-mute);
}
.accordion_set details[open] summary::after {
  content: "−";
}
.accordion_set .acc_body {
  padding: 14px 18px;
  line-height: 1.85;
}
/* ---- mid=49 動画ギャラリー ---- */
.movie_gallery {
  display: grid;
  gap: 16px;
  margin: 1em 0;
}
.movie_gallery.col2 {
  grid-template-columns: repeat(2, 1fr);
}
.movie_gallery.col3 {
  grid-template-columns: repeat(3, 1fr);
}
.movie_gallery .movie_set {
  aspect-ratio: 1.7777777778;
  background: #000;
  border-radius: var(--mv-radius-md);
  overflow: hidden;
}
.movie_gallery .movie_set iframe, .movie_gallery .movie_set video {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
@media (max-width: 700px) {
  .movie_gallery.col2, .movie_gallery.col3 {
    grid-template-columns: 1fr;
  }
}
/* ---- mid=50 キービジュアル ---- */
.kv_block {
  position: relative;
  margin: 1em 0;
  border-radius: var(--mv-radius-md);
  overflow: hidden;
}
.kv_block picture, .kv_block img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2.4;
  object-fit: cover;
}
.kv_block .kv_text {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 24px 28px;
  color: #fff;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent);
  width: 100%;
  box-sizing: border-box;
}
.kv_block .kv_text h2 {
  margin: 0 0 6px;
  font-size: clamp(20px, 3vw, 32px);
  color: #fff;
  border: 0;
  background: none;
  padding: 0;
}
.kv_block .kv_text p {
  margin: 0;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.9);
}
/* ---- mid=51 バナー（全幅 slick スライダー） ---- */
.banner_set {
  margin: 1em 0;
  position: relative;
}
.banner_set a {
  display: block;
  transition: opacity 0.15s;
}
.banner_set a:hover {
  opacity: 0.85;
}
.banner_set img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--mv-radius-sm);
}
/* slick 初期化前は最初の 1 枚以外を非表示にして縦並びチラ見えを防ぐ */
.banner_slider:not(.slick-initialized) > a:nth-child(n + 2) {
  display: none;
}
.banner_slider .slick-dots {
  position: absolute;
  bottom: 12px;
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
  list-style: none;
  z-index: 2;
}
.banner_slider .slick-dots li {
  list-style: none;
  line-height: 0;
}
.banner_slider .slick-dots li::marker, .banner_slider .slick-dots li::before {
  content: none !important;
}
.banner_slider .slick-dots li button {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  font-size: 0;
  cursor: pointer;
}
.banner_slider .slick-dots li.slick-active button {
  background: #fff;
  transform: scale(1.2);
}
/* ---- mid=52 協賛ロゴバナー（全幅 slick スライダー、横に流れる）
       コンテンツの max-width から飛び出してビューポート全幅に拡張する
       （body 直下の overflow-x: clip と組み合わせて横スクロールは出ない） */
.logo_banner {
  margin: 2em calc(50% - 50vw);
  /* 左右に負マージン → ビューポート端まで拡張 */
  width: 100vw;
  background: var(--mv-surface);
  border-top: 1px solid var(--mv-border);
  border-bottom: 1px solid var(--mv-border);
  padding: 24px 0;
  /* 左右 padding なし、ロゴはビューポート端まで流れる */
  box-sizing: border-box;
}
/* slick 初期化前は item が縦並びにならないよう横並びで表示しておく */
.logo_banner_slider:not(.slick-initialized) {
  display: flex;
  gap: 24px;
  overflow: hidden;
  align-items: center;
}
.logo_banner_slider:not(.slick-initialized) > .item {
  flex: 0 0 auto;
}
/* variableWidth: true 時、各 slide は画像コンテンツの自然幅で並ぶ。
   slick は .slick-slide に幅を絶対指定するが、 .item / a / img 側は
   画像幅にフィットするように設計。 */
.logo_banner .item {
  padding: 0 16px;
  box-sizing: border-box;
}
.logo_banner .item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  background: #fff;
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-sm);
  transition: border-color 0.15s, box-shadow 0.15s, opacity 0.15s;
  height: 96px;
  /* 高さは統一 */
  box-sizing: border-box;
}
.logo_banner .item a:hover {
  border-color: var(--mv-accent);
  box-shadow: var(--mv-shadow-card);
  opacity: 0.95;
}
.logo_banner img {
  width: auto;
  height: auto;
  max-height: 64px;
  /* 高さ上限のみで横幅は画像ネイチャー幅に依存 */
  max-width: 240px;
  /* 大きすぎるロゴの上限 */
  display: block;
  object-fit: contain;
}
.logo_banner_slider .slick-track {
  display: flex;
  align-items: center;
}
.logo_banner_slider .slick-slide {
  height: auto;
  /* 高さは a の指定 96px に従う */
}
/* ---- mid=53/54 背景付き/罫線付き本文 ---- */
.mod_cont.bg_editor {
  padding: 22px 24px;
  background: var(--mv-surface-alt);
  border-radius: var(--mv-radius-md);
}
.mod_cont.border_editor {
  padding: 22px 24px;
  border: 2px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
}
/* mid=53 / mid=54 の説明文（.editor）内、最初の見出しは上余白を 0 にして
   枠との段差を防ぐ */
.mod_cont.bg_editor > .editor > :first-child, .mod_cont.border_editor > .editor > :first-child, .mod_cont.bg_editor > .editor > h1:first-child, .mod_cont.bg_editor > .editor > h2:first-child, .mod_cont.bg_editor > .editor > h3:first-child, .mod_cont.bg_editor > .editor > h4:first-child, .mod_cont.bg_editor > .editor > h5:first-child, .mod_cont.bg_editor > .editor > h6:first-child, .mod_cont.border_editor > .editor > h1:first-child, .mod_cont.border_editor > .editor > h2:first-child, .mod_cont.border_editor > .editor > h3:first-child, .mod_cont.border_editor > .editor > h4:first-child, .mod_cont.border_editor > .editor > h5:first-child, .mod_cont.border_editor > .editor > h6:first-child {
  margin-top: 0;
}
/* ---- mid=58/59 採用一覧 ---- */
.recruit_list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.recruit_list li a {
  display: grid;
  grid-template-columns: 1fr 120px 120px;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
  background: var(--mv-surface);
  border: 1px solid var(--mv-border);
  border-radius: var(--mv-radius-md);
  color: var(--mv-text);
  text-decoration: none;
  transition: border-color 0.15s, background 0.15s;
}
.recruit_list li a:hover {
  border-color: var(--mv-accent);
  background: var(--mv-accent-bg);
}
.recruit_list .post {
  font-weight: 700;
}
.recruit_list .kind, .recruit_list .loc {
  font-size: 12px;
  color: var(--mv-text-mute);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.recruit_list .kind::before {
  content: "◆";
  color: var(--mv-accent);
}
.recruit_list .loc::before {
  content: "📍";
}
@media (max-width: 700px) {
  .recruit_list li a {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}
/* ---- mod_demo 各サンプルのラベル（single.html 表示確認用） ---- */
.mod_demo {
  margin: 0 0 32px;
  scroll-margin-top: 80px;
}
.mod_demo_label {
  display: inline-block;
  margin: 0 0 10px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--mv-accent);
  background: var(--mv-accent-bg);
  border: 1px solid var(--mv-accent-border);
  border-radius: var(--mv-radius-sm);
}
/* ★★★ CTN_ADDITIONAL_MODULES_END ★★★ */
/* ==========================================================================
   ★★★ CTN_DECORATED_LIST_RESET_START
   装飾系リストラッパー内のリストスタイル一括打ち消し
   ──────────────────────────────────────────────────────────────────────
   .btn_list / .sdgs_icon / .gallery / .link_list / .relation_link /
   .faq_set / .post_list_mod / .event_list_mod / .recruit_list /
   .logo_banner / .movie_gallery / .accordion_set / .mod_slider /
   .graph_cont .graph_legend / .attention_list /
   .faq_set_accordion などの「装飾された UL/OL」配下に、
   ブラウザ既定の disc/decimal や本文用の ::before マーカーが
   一切乗らないようにする。
   .anchor_link だけは明示的に decimal 表示を保持する。
   ========================================================================== */
/* 装飾ラッパー内のリストは list-style:none と左 padding/margin リセット。
   ただし ::before でアイコン表示する .attention_list li や、
   セルに余白を持つ .relation_link の link_set / dt は除外しておく
   （padding-left を !important でリセットすると ::before やタイトル左余白が
   消えてしまうため）。 */
.btn_list ul, .btn_list ol, .btn_list li, .sdgs_icon ul, .sdgs_icon li, .gallery, .gallery > .gallery_set, .movie_gallery, .movie_gallery > .movie_set, .attention_list ul, .link_list ul, .link_list ol, .link_list li, .relation_link dl, .relation_link dd, .faq_set, .faq_set dt, .faq_set dd, .faq_set_accordion, .faq_set_accordion .faq_item, .event_list_mod ul, .event_list_mod li, .recruit_list ul, .recruit_list li, .logo_banner ul, .logo_banner li, .accordion_set, .accordion_set details, .mod_slider .main_slider, .mod_slider .thumb_slider, .graph_cont .graph_legend, .graph_cont .graph_legend > li {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
/* .anchor_link ラッパー自身は padding を持つため、汎用リセットに含めず
   ul / li にだけ list-style:none と左 padding/margin 0 を当てる。 */
.anchor_link ul, .anchor_link li {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
/* .attention_list li は list-style だけ消し、padding/margin は維持
   （::before の ※ マークと本文テキストの間に余白を確保するため） */
.attention_list li {
  list-style: none !important;
}
/* 装飾ラッパー内の li にブラウザ既定の disc / decimal ::marker が
   出ないよう完全除去（個別装飾の ::before は別セレクタで content 指定済み） */
.btn_list li::marker, .sdgs_icon li::marker, .gallery > .gallery_set::marker, .movie_gallery > .movie_set::marker, .event_list_mod li::marker, .recruit_list li::marker, .logo_banner li::marker, .link_list li::marker, .relation_link dt::marker, .relation_link dd::marker {
  content: none !important;
}
/* 装飾ラッパー内の li にブラウザ既定の左余白が乗らないよう打ち消し */
.btn_list li, .sdgs_icon li, .event_list_mod li, .recruit_list li, .logo_banner li, .link_list li, .attention_list li {
  text-indent: 0;
}
/* .anchor_link の li::marker は出さない（前段の reset で list-style:none、
   個別の .anchor_link a::before で Material アイコンを表示する設計のため） */
.anchor_link li::marker {
  content: none !important;
}
/* ★★★ CTN_DECORATED_LIST_RESET_END ★★★ */
/* ==========================================================================
   ★★★ CTN_SLICK_BASE_START
   mid=21 スライドショー用 slick の最小限ベーススタイル
   （社内ルール：jsライブラリの slick.css は使用しない。動作に必要な
     track / list / slide / arrows / dots だけを自前で記述する）
   ========================================================================== */
.mod_slider .main_slider {
  position: relative;
  border-radius: var(--mv-radius-md);
  overflow: hidden;
  background: var(--mv-surface-alt);
  /* slick の fade モードはアクティブスライドに高い z-index を付与するため、
     stacking context を内部に閉じ込めてヘッダー（z-index:100）等を覆わないようにする */
  isolation: isolate;
  z-index: 0;
}
/* slick が組み立てる構造への基本宣言 */
.mod_slider .slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  user-select: none;
  -webkit-touch-callout: none;
  touch-action: pan-y;
}
.mod_slider .slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.mod_slider .slick-list:focus {
  outline: none;
}
.mod_slider .slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: flex;
  align-items: stretch;
}
.mod_slider .slick-track::before, .mod_slider .slick-track::after {
  content: "";
  display: table;
}
.mod_slider .slick-slide {
  display: none;
  float: left;
  min-height: 1px;
  outline: none;
}
.mod_slider .slick-initialized .slick-slide {
  display: block;
}
.mod_slider .slick-loading .slick-slide {
  visibility: hidden;
}
/* スライド中の <div class="item"> 画像 */
.mod_slider .main_slider .item {
  line-height: 0;
}
.mod_slider .main_slider .item img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1.7777777778;
  object-fit: cover;
}
/* 矢印 prev / next
   slick の fade モードはアクティブスライドに z-index:1000 を動的付与するため、
   矢印・ドットは 1001 以上にして必ず最前面に出す。 */
.mod_slider .slick-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1010;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 22px;
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
  /* flex 中央寄せで矢印文字を縦横ともに正確に中央配置 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* button のデフォルト指定差異を吸収 */
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  text-align: center;
  text-indent: 0;
  vertical-align: middle;
  transition: background 0.2s;
}
.mod_slider .slick-arrow:hover, .mod_slider .slick-arrow:focus-visible {
  background: rgba(0, 0, 0, 0.7);
  outline: none;
}
.mod_slider .slick-prev {
  left: 14px;
}
.mod_slider .slick-next {
  right: 14px;
}
/* 矢印グリフ：button 内テキストを使わず、CSS の border で描画して正確に中央配置 */
.mod_slider .slick-arrow {
  font-size: 0;
}
.mod_slider .slick-prev::before, .mod_slider .slick-next::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  pointer-events: none;
}
.mod_slider .slick-prev::before {
  transform: rotate(-135deg);
  margin-right: -3px;
  /* 視覚上の中央調整（左矢印は右に寄る分を補正） */
}
.mod_slider .slick-next::before {
  transform: rotate(45deg);
  margin-left: -3px;
}
.mod_slider .slick-disabled {
  opacity: 0.4;
  cursor: default;
}
/* ドット（active slide z-index:1000 の上に出す） */
.mod_slider .slick-dots {
  position: absolute;
  bottom: 14px;
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
  list-style: none;
  z-index: 1010;
}
.mod_slider .slick-dots li {
  line-height: 0;
  list-style: none;
  padding: 0;
  margin: 0;
}
.mod_slider .slick-dots li::marker, .mod_slider .slick-dots li::before {
  content: none !important;
  display: none !important;
}
.mod_slider .slick-dots li button {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  font-size: 0;
  color: transparent;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}
.mod_slider .slick-dots li.slick-active button {
  background: #fff;
  transform: scale(1.25);
}
.mod_slider .slick-dots li button:focus-visible {
  outline: 2px solid var(--mv-accent);
  outline-offset: 2px;
}
@media (max-width: 640px) {
  .mod_slider .slick-arrow {
    display: none !important;
  }
  .mod_slider .slick-dots {
    bottom: 8px;
  }
}
/* ★★★ CTN_SLICK_BASE_END ★★★ */
body.pg_eventdetail .post_article_body .border_cont h2, body.pg_eventdetail .post_article_body .border_cont h3, body.pg_eventdetail .post_article_body .border_cont h4, body.pg_eventdetail .post_article_body .border_cont h5, body.pg_eventdetail .post_article_body .border_cont h6, body.pg_eventdetail .post_article_body .border_cont .mv-mod-h2, body.pg_eventdetail .post_article_body .border_cont .mv-mod-h3, body.pg_eventdetail .post_article_body .border_cont .mv-mod-h4, body.pg_eventdetail .post_article_body .border_cont .mv-mod-h5, body.pg_eventdetail .post_article_body .bg_cont h2, body.pg_eventdetail .post_article_body .bg_cont h3, body.pg_eventdetail .post_article_body .bg_cont h4, body.pg_eventdetail .post_article_body .bg_cont h5, body.pg_eventdetail .post_article_body .bg_cont h6, body.pg_eventdetail .post_article_body .bg_cont .mv-mod-h2, body.pg_eventdetail .post_article_body .bg_cont .mv-mod-h3, body.pg_eventdetail .post_article_body .bg_cont .mv-mod-h4, body.pg_eventdetail .post_article_body .bg_cont .mv-mod-h5 {
  margin-top: 0;
}
