/*
 * footer.css — reien_matching フッター（<footer id="taguru-footer"> 専用）
 * site-shell-foundation.css の共通骨格に対する footer 固有スタイル。
 * 変数は :is(#taguru-footer, #mobile-menu)スコープに閉じ込め（:root 非汚染、ヘッダー・サイドバー流儀）
 * design_common 第4節 Spacing Scale（3の倍数規律）準拠
 *
 * section構成：
 *   A. 設計トークン（:is(#taguru-footer, #mobile-menu)スコープのCSS変数、必要時追加）
 *   B. footer-tagline 上書き（サイズ規律を3の倍数 + 視認性で再調整、h2 sm の細字追加）
 *
 * 改訂：2026-05-04 新規（footer-tagline-sub サイズ案B 21/24/18px、h2 .sm を weight 300）
 */


/* ===== A. 設計トークン ===== */
/* タグル元 CSS の色・余白トークンを継承するため、現状は追加変数なし。
   reien_matching 固有のトークンが必要になった時点でここに追加する。 */


/* ===== B. footer-tagline 上書き ===== */
/* タグル元：sub 14px / .big 18.2px / .sm 14px → reien用 21/24/18px（3の倍数、視認性UP） */
:is(#taguru-footer, #mobile-menu) .footer-tagline-sub {
  font-size: 21px;
}
:is(#taguru-footer, #mobile-menu) .footer-tagline-sub .big {
  font-size: 24px;
}
:is(#taguru-footer, #mobile-menu) .footer-tagline-sub .sm {
  font-size: 18px;
}

/* h2 内 sm（「と、」「を。」を細字化）：タグル元には h2 内 .sm 定義なし、新規追加 */
:is(#taguru-footer, #mobile-menu) .footer-tagline-h2 .sm {
  font-weight: 300;
}


/* ===== C. footer-bottom（goenn 共通リンク群を追加） ===== */
/* 一段目（footer-top）：grid 2列（PC：ロゴ占有2行 + headline右上 + desc右下／SP は F節で切替） */
:is(#taguru-footer, #mobile-menu) .footer-top {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "logo headline"
    "logo desc";
  column-gap: 48px;
  row-gap: 3px;
  align-items: start;
  margin-bottom: 36px;
  text-align: left;
}
:is(#taguru-footer, #mobile-menu) .footer-top .footer-logo {
  grid-area: logo;
}
:is(#taguru-footer, #mobile-menu) .footer-tagline-headline {
  grid-area: headline;
  padding-top: 12px;
}
:is(#taguru-footer, #mobile-menu) .footer-top .footer-tagline-desc {
  grid-area: desc;
  line-height: 2.0;                  /* 行間を広く */
  align-self: end;                   /* ベースラインをロゴ下端に揃える */
  margin-top: -6px;                  /* コピーとの距離を6px縮める（SPは F節でリセット）*/
}

/* 二段目（footer-company-info）：住所・電話、左寄せ縦並び */
:is(#taguru-footer, #mobile-menu) .footer-company-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  color: #FFFFFF;
  letter-spacing: 0.03em;
  line-height: 1.6;
  margin-bottom: 24px;
}
:is(#taguru-footer, #mobile-menu) .footer-company-info p {
  margin: 0;
}
:is(#taguru-footer, #mobile-menu) .footer-company-info a {
  color: inherit;
  text-decoration: none;
}
:is(#taguru-footer, #mobile-menu) .footer-company-info a:hover {
  opacity: 0.7;
}

/* 三段目（footer-general-links）：規約リンク横並び、左寄せ（既存スタイル + margin） */
:is(#taguru-footer, #mobile-menu) > .footer-inner > .footer-general-links {
  margin-bottom: 24px;              /* コピーライトとの間を住所↔規約と同じ24pxに */
}

/* 四段目（footer-bottom）：コピーライト左寄せ */
:is(#taguru-footer, #mobile-menu) .footer-bottom {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  margin-top: 0;
  padding-top: 0;                    /* タグル元 padding-top:32px を打ち消し */
}


/* ===== D. footer-links 各列の見出し（sub + main 2行構成） ===== */
:is(#taguru-footer, #mobile-menu) .footer-col-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  margin: 0 0 24px 0;
}
:is(#taguru-footer, #mobile-menu) .footer-col-title-main {
  font-size: 18px;
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.03em;
  line-height: 1.4;
}
/* a 化された見出し（リンク付き）：色維持・下線なし・hover透過 */
:is(#taguru-footer, #mobile-menu) .footer-col-title-link {
  display: block;
  color: #FFFFFF;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
:is(#taguru-footer, #mobile-menu) .footer-col-title-link:hover {
  opacity: 0.7;
}

/* sub：見出し上段（小さめ、main の上に表示） */
:is(#taguru-footer, #mobile-menu) .footer-col-title-sub {
  display: block;
  font-size: 12px;
  font-weight: 400;
  color: #FFFFFF;
  letter-spacing: 0.03em;
}

/* 「まもなく公開」：装飾外して白文字テキスト、コラム一覧（footer-link）と同サイズ・同weight */
:is(#taguru-footer, #mobile-menu) .footer-col-badge {
  display: block;
  margin: 0;
  background: transparent;
  color: #FFFFFF;
  padding: 0;
  border-radius: 0;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.03em;
}

/* 列2「探す・選ぶ」内の地域見出し（h4）：列タイトルより小さく、weight 500 */
:is(#taguru-footer, #mobile-menu) .footer-region-title {
  font-size: 12px;
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.03em;
  margin: 0 0 6px 0;
}

/* おまいり列（未公開）：全体を薄く */
:is(#taguru-footer, #mobile-menu) .footer-link-col--disabled {
  opacity: 0.5;
}


/* ===== E. footer-links 1段目・2段目構成（footer-section ラッパー）+ 列2 都道府県構造 ===== */
/* タグル元 .footer-links：grid → flex column（1段目・2段目を縦に並べる） */
:is(#taguru-footer, #mobile-menu) .footer-links {
  display: flex;
  flex-direction: column;
  gap: 72px;                        /* goenn と taguru ブロックの間 */
  margin-bottom: 72px;              /* taguru ブロックとビッグロゴブロックの間（タグル元 64px を上書き） */
  padding-top: 0;                   /* タグル元 padding-top: 20px を打ち消し（×ボタンと縦揃え、2026-05-04） */
}

/* 各 section（1段目=goenn / 2段目=タグル） */
:is(#taguru-footer, #mobile-menu) .footer-section {
  display: flex;
  flex-direction: column;
  gap: 24px;                        /* 上段（ロゴ + 仕切り線）と下段の間 */
}

/* section の上段：ロゴ + 仕切り線（1px 白、全幅） */
:is(#taguru-footer, #mobile-menu) .footer-section-header {
  display: flex;
  align-items: center;
  gap: 24px;
}
:is(#taguru-footer, #mobile-menu) .footer-section-logo {
  width: 36px;
  height: auto;
  flex-shrink: 0;
}
:is(#taguru-footer, #mobile-menu) .footer-section-divider {
  display: none;
}

/* タグルロゴ + 「タグル / taguru」を横並びリンク化 */
:is(#taguru-footer, #mobile-menu) .footer-section-brand-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #FFFFFF;
  text-decoration: none;
  transition: opacity 0.2s ease;
  flex-shrink: 0;
}
:is(#taguru-footer, #mobile-menu) .footer-section-brand-link:hover {
  opacity: 0.7;
}
:is(#taguru-footer, #mobile-menu) .footer-section-brand {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.03em;
}

/* section の下段：列見出し横並び */
:is(#taguru-footer, #mobile-menu) .footer-section-cols {
  display: grid;
  gap: 0 40px;
}

/* タグル列の footer-link（コラム一覧などと同じサイズに統一、14→15px） */
:is(#taguru-footer, #mobile-menu) .footer-link,
:is(#taguru-footer, #mobile-menu) .footer-link-dash {
  font-size: 15px;
}



/* footer-link：ハイフンを削除して文頭に矢印 ›（マスター指示 2026-05-04） */
:is(#taguru-footer, #mobile-menu) .footer-link-dash {
  display: none;
}
:is(#taguru-footer, #mobile-menu) .footer-link::before {
  display: inline-block;
  content: '\203A';                  /* ›（U+203A）— encoding 非依存のためエスケープ表記、2026-05-04 */
  margin-right: 3px;
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
:is(#taguru-footer, #mobile-menu) .footer-link:hover::before,
:is(#taguru-footer, #mobile-menu) .footer-link:focus::before {
  transform: translateX(1.5px);
}
:is(#taguru-footer, #mobile-menu) .footer-section-goenn .footer-section-cols,
:is(#taguru-footer, #mobile-menu) .footer-section-taguru .footer-section-cols {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

/* footer-link-col：見出し（左、固定幅）+ 中身（右、3カラム grid）の横並び */
:is(#taguru-footer, #mobile-menu) .footer-link-col {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
}
/* おまいり列（disabled）：中身を見出しの縦軸中央に配置 */
:is(#taguru-footer, #mobile-menu) .footer-link-col--disabled {
  align-items: center;
}
:is(#taguru-footer, #mobile-menu) .footer-link-col .footer-col-title {
  flex: 0 0 180px;
  margin: 0;
}
:is(#taguru-footer, #mobile-menu) .footer-col-content {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  column-gap: 24px;
  row-gap: 12px;
}

/* お墓タイプで探す：grid 1段目を全幅占有して都道府県群の上に独立配置 */
/* 列2 内の地域ブロック（北海道・東北 etc）：見出し + 都道府県リンク群 */
:is(#taguru-footer, #mobile-menu) .footer-region {
  margin-bottom: 24px;
}
:is(#taguru-footer, #mobile-menu) .footer-region:last-child {
  margin-bottom: 0;
}

/* お墓タイプ群：grid 全幅占有 + 都道府県群との間隔 */
:is(#taguru-footer, #mobile-menu) .footer-region--full {
  grid-column: 1 / -1;
  margin-bottom: 36px;
}
:is(#taguru-footer, #mobile-menu) .footer-region-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
}
:is(#taguru-footer, #mobile-menu) .footer-region-list a {
  color: #FFFFFF;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.04em;
  transition: opacity 0.2s ease;
}
:is(#taguru-footer, #mobile-menu) .footer-region-list a:hover {
  opacity: 0.7;
}

/* goenn 共通リンク群（横並び、kebab-case 命名で reien CSS流儀踏襲） */
:is(#taguru-footer, #mobile-menu) .footer-general-links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;                    /* row 6px / column 24px：折り返し時の行間を縮小 */
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: #FFFFFF;                    /* #mobile-menu 内ではデフォルト color が継承されないため明示（2026-05-04） */
}
:is(#taguru-footer, #mobile-menu) .footer-general-links a {
  color: inherit;
  text-decoration: underline;
  transition: opacity 0.2s ease;
}
:is(#taguru-footer, #mobile-menu) .footer-general-links a:hover {
  opacity: 0.7;                      /* design_common hover_rule_2 */
}


/* ===== F. SP 対応（max-width: 768px）===== */
/* PC 用 footer-col-title の flex: 0 0 180px が
   SP の flex-direction: column で「幅指定」→「高さ指定」に化け、見出しが
   180px 高を確保していた。SP で flex-basis をリセットすることで解決。 */
@media (max-width: 768px) {
  /* footer-link-col：縦積み（見出し下にリンク集が回り込み）+ 全列を左寄せ */
  :is(#taguru-footer, #mobile-menu) .footer-section-cols .footer-link-col,
  :is(#taguru-footer, #mobile-menu) .footer-section-goenn .footer-section-cols .footer-link-col:first-child {
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    justify-content: flex-start;
  }
  /* 見出し：PC 用 flex: 0 0 180px を解除（SP の縦軸では高さに化ける）+ sub/main inline */
  :is(#taguru-footer, #mobile-menu) .footer-section-cols .footer-col-title {
    flex: 0 1 auto;
    width: 100%;
    margin: 0;
    flex-direction: row;
    align-items: baseline;
    gap: 6px;
  }
  :is(#taguru-footer, #mobile-menu) .footer-section-cols .footer-col-title-sub,
  :is(#taguru-footer, #mobile-menu) .footer-section-cols .footer-col-title-main {
    display: inline;
  }
  /* 列同士の間隔縮小 */
  :is(#taguru-footer, #mobile-menu) .footer-section-goenn .footer-section-cols,
  :is(#taguru-footer, #mobile-menu) .footer-section-taguru .footer-section-cols {
    gap: 24px;
  }
  /* 1段目と2段目の間隔縮小 */
  :is(#taguru-footer, #mobile-menu) .footer-links {
    gap: 36px;
    margin-bottom: 36px;
  }
  /* ロゴ（footer-section-header）と列見出し（footer-section-cols）の間を縮小 */
  :is(#taguru-footer, #mobile-menu) .footer-section {
    gap: 12px;
  }
  /* 中身の grid 3カラム → 2カラム + flex リセット */
  :is(#taguru-footer, #mobile-menu) .footer-section-cols .footer-col-content {
    flex: 0 1 auto;
    width: 100%;
    grid-template-columns: repeat(2, 1fr);
  }
  /* footer-top：SP では「ロゴ+コピー」横並び + desc 全幅で下に回り込み */
  :is(#taguru-footer, #mobile-menu) .footer-top {
    grid-template-areas:
      "logo headline"
      "desc desc";
    column-gap: 24px;
  }
  /* PC 用 desc の margin-top: -6px を SP ではリセット */
  :is(#taguru-footer, #mobile-menu) .footer-top .footer-tagline-desc {
    margin-top: 0;
  }
}


/* ===== G. 展開メニュー（#mobile-menu）内専用：mm-pc 元レイアウト打ち消し ===== */
/* タグル元 mm-pc は「左160pxにロゴ占有 + 右側に main」構成。
   reien では中身がフッタメニューに変わるため、mm-pc 本体を block 化し、
   左カラム（mm-pc-left）のロゴのみ消し、閉じるボタンは右上 fixed で残す。
   2026-05-04 追加 */

#mobile-menu .mm-pc {
  display: block;
  width: 100%;
  min-height: 100vh;
  overflow-y: auto;
}

/* mm-pc-left：閉じるボタンだけ右上 fixed、他要素（タグル元ロゴ）は非表示 */
/* top は mm-pc-main の padding-top(72) と同じ値で、コンテンツ開始位置と縦揃え（2026-05-04） */
#mobile-menu .mm-pc-left {
  position: fixed;
  top: 72px;                         /* 固定値化（2026-05-06）：ビューポート連動を停止、上限値で固定 */
  right: 72px;
  left: auto;
  bottom: auto;
  width: auto;
  height: auto;
  padding: 0;
  background: transparent;
  z-index: 2;
}
#mobile-menu .mm-pc-logo {
  display: none;
}

/* mm-pc-main：absolute を解除し、通常フローでフッタメニューを表示 */
#mobile-menu .mm-pc-main {
  position: static;
  inset: auto;
  display: block;
  padding: 72px 72px 48px;           /* 固定値化（2026-05-06）：mm-pc-left top/right と同値で揃える */
  width: 100%;
  box-sizing: border-box;
}

/* 閉じるボタン（サイドバーの sidebar-bar / sidebar-menu-label 流儀：×形2本線 + ラベル下） */
#mobile-menu .mm-close-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
#mobile-menu .mm-close-btn:hover {
  opacity: 0.7;
}
#mobile-menu .mm-close-icon {
  position: relative;
  width: 75px;
  height: 36px;                      /* 75→36 で × 縦範囲（rotate 15° で約20px）+余白に最適化、ラベルを線に近づける（2026-05-04） */
}
#mobile-menu .mm-close-bar {
  position: absolute;
  top: 50%;
  left: 0;
  width: 75px;
  height: 2px;
  background: #FFFFFF;
  transform-origin: center;
}
#mobile-menu .mm-close-bar:nth-child(1) {
  transform: translateY(-50%) rotate(15deg);
}
#mobile-menu .mm-close-bar:nth-child(2) {
  transform: translateY(-50%) rotate(-15deg);
}
#mobile-menu .mm-close-label {
  font-size: 12px;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: 0.03em;
}

/* mm-sp（SP表示）：閉じるボタン右上 fixed、main は padding 36/24（3の倍数）、2026-05-04 追加 */
@media (max-width: 768px) {
  #mobile-menu .mm-sp {
    display: block;
    width: 100%;
    min-height: 100vh;
    overflow-y: auto;
    padding: 0;
  }
  #mobile-menu .mm-sp .mm-close-btn {
    position: fixed;
    top: 36px;                       /* 固定値化（2026-05-06）：SP縮小時のマージン変動を停止 */
    right: 24px;
    z-index: 2;
  }
  #mobile-menu .mm-sp-main {
    padding: 36px 24px;              /* 固定値化（2026-05-06）：SP縮小時のマージン変動を停止 */
    width: 100%;
    box-sizing: border-box;
  }
  /* タグル元 .mm-sp の追加装飾を念のため打ち消し */
  #mobile-menu .mm-sp::before,
  #mobile-menu .mm-sp::after {
    display: none;
  }

  /* ===== mm-sp アコーディオン構造（reien_matching、2026-05-04） ===== */
  /* セクション見出し */
  #mobile-menu .mm-sp-title {
    margin: 0 0 24px 0;
    color: #FFFFFF;
    font-weight: 500;
    line-height: 1.2;
  }
  #mobile-menu .mm-sp-title-sub {
    display: block;
    font-size: 12px;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
  }
  #mobile-menu .mm-sp-title-main {
    display: block;
    font-size: 18px;                 /* 21→18：子を強調するため親縮小 */
    letter-spacing: 0.04em;
  }

  /* アコーディオン項目（地域間は仕切り線なし） */
  #mobile-menu .mm-sp-acc--ending {
    margin-top: 36px;
    padding-top: 18px;                 /* 仕切り線と中身の余白 */
    position: relative;
  }
  /* おまいりは disabled、エンディングの後に間隔と仕切り線 */
  #mobile-menu .mm-sp-acc--disabled {
    margin-top: 36px;
    padding-top: 18px;
    position: relative;
  }

  /* summary：見出し行 */
  #mobile-menu .mm-sp-acc-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    cursor: pointer;
    color: #FFFFFF;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.04em;
    list-style: none;
    user-select: none;
  }
  #mobile-menu .mm-sp-acc-summary::-webkit-details-marker {
    display: none;
  }
  #mobile-menu .mm-sp-acc-summary::marker {
    display: none;
  }

  /* 矢印（thin chevron 90°回転 = 下向き、open時 -90°で上向き） */
  #mobile-menu .mm-sp-acc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    line-height: 1;
    color: #FFFFFF;
    transform: rotate(90deg);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }
  #mobile-menu .mm-sp-acc[open] .mm-sp-acc-icon {
    transform: rotate(-90deg);
  }

  /* 中身リスト：左インデント、2列グリッド */
  #mobile-menu .mm-sp-acc-list {
    list-style: none;
    margin: 0;
    padding: 12px 24px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 24px;                /* 12→24：2列の間隔を広げる */
    row-gap: 0;
  }
  #mobile-menu .mm-sp-acc-list li {
    padding: 6px 0;
  }
  #mobile-menu .mm-sp-acc-list a {
    color: #FFFFFF;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 21px;                 /* 15→21：トヨタバッテリー風、子を主役に */
    letter-spacing: 0.04em;
    transition: opacity 0.2s ease;
  }
  #mobile-menu .mm-sp-acc-list a:hover {
    opacity: 0.7;
  }

  /* ===== セクションヘッダー（goenn / タグル：ロゴ + ブランド名） ===== */
  #mobile-menu .mm-sp-section-header {
    margin: 0 0 24px 0;
  }
  #mobile-menu .mm-sp-section-header--taguru {
    margin-top: 48px;
    padding-top: 24px;
    margin-bottom: 6px;              /* summary padding-top 18 と合算で 24 = goenn と縦マージン統一 */
    position: relative;              /* ::before 仕切り線の基準 */
  }
  /* 各メインブロック上の仕切り線（横幅75%・中央・rgba白20%、規約と同統一規格） */
  #mobile-menu .mm-sp-acc--ending::before,
  #mobile-menu .mm-sp-acc--disabled::before,
  #mobile-menu .mm-sp-section-header--taguru::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    height: 1px;
    background: rgba(255, 255, 255, 0.2);
  }
  #mobile-menu .mm-sp-section-brand-link {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #FFFFFF;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }
  #mobile-menu .mm-sp-section-brand-link:hover {
    opacity: 0.7;
  }
  #mobile-menu .mm-sp-section-logo {
    width: 36px;
    height: 36px;                    /* goenn/タグルのアスペクト比違いを吸収、正方形bounding boxで統一 */
    flex-shrink: 0;
    object-fit: contain;
  }
  #mobile-menu .mm-sp-section-brand {
    font-size: 15px;                 /* 12→15：もう少し大きく */
    font-weight: 500;
    letter-spacing: 0.04em;
  }

  /* おまいり（disabled / まもなく公開） */
  #mobile-menu .mm-sp-acc--disabled {
    opacity: 0.5;
    pointer-events: none;
  }
  #mobile-menu .mm-sp-acc--disabled .mm-sp-acc-summary {
    cursor: default;
    justify-content: flex-start;     /* タイトル直後にバッジを近接 */
    gap: 18px;                        /* 12→18：バッジ左に余裕を持たせる */
  }
  #mobile-menu .mm-sp-acc-badge {
    display: inline-block;
    font-size: 15px;                 /* サイドバー10→ここは15に拡大 */
    font-weight: 600;                /* サイドバー準拠 */
    color: #FFFFFF;
    background: #DC2626;             /* サイドバー準拠（design_common danger、disabled の opacity 0.5 で薄朱に見える） */
    padding: 3px 9px;                /* サイドバー2:7 比率を 3:9 にスケール */
    border-radius: 12px;             /* pill 風（サイドバー 10 を少し拡張） */
    letter-spacing: 0.05em;
    white-space: nowrap;
    line-height: 1.4;
    align-self: center;              /* タイトル main と縦中央揃え */
  }

  /* アコーディオン見出し2段（mm-sp-title と装飾を統一：sub 12px + main 21px、weight 500、line-height 1.2） */
  #mobile-menu .mm-sp-acc-label-sub {
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 6px;
    letter-spacing: 0.04em;
    line-height: 1.2;
  }
  #mobile-menu .mm-sp-acc-label-main {
    display: block;
    font-size: 18px;                 /* 21→18：子を強調するため親縮小 */
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.2;
  }

  /* 規約・サイトマップ等の一般リンク（mm-sp 末尾） */
  #mobile-menu .mm-sp-general-links {
    list-style: none;
    margin: 48px 0 0 0;
    padding: 24px 0 0 0;
    position: relative;              /* 疑似要素 ::before の基準 */
  }
  /* ブロック上端の仕切り線（横幅75%、中央配置） */
  #mobile-menu .mm-sp-general-links::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    height: 1px;
    background: rgba(255, 255, 255, 0.2);
  }
  #mobile-menu .mm-sp-general-links li {
    padding: 6px 0;
  }
  #mobile-menu .mm-sp-general-links a {
    color: #FFFFFF;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 15px;                 /* 12→15：他リンクとサイズ統一感UP */
    letter-spacing: 0.04em;
    transition: opacity 0.2s ease;
  }
  #mobile-menu .mm-sp-general-links a:hover {
    opacity: 0.7;
  }
}
