/* ===== CSS変数 ===== */
:root {
  /* --- Brand Main Color --- */
  --color-primary: #71a846;
  /* BrandMain Primary */
  --color-primary-dark1: #5d9432;
  /* BrandMain Sub_1 */
  --color-primary-dark2: #558331;
  /* BrandMain Sub_2 */
  --color-primary-dark3: #395820;
  /* BrandMain Sub_3（ラベルテキスト用暗緑） */
  --color-primary-bright: #79c401;
  /* BrandMain Sub_3 */
  --color-primary-light: #b0e189;
  /* BrandMain Sub_4 */
  --color-primary-pale: #c9e9af;
  /* BrandMain Sub_5 */

  /* --- Text Color --- */
  --color-text: #222;
  /* Text Primary */
  --color-text-secondary: #666;
  /* Text Secondary */
  --color-text-white: #fff;
  /* Text White */
  --color-text-brown: #644f43;
  /* Text Brown */
  --color-text-crumb: #3d3529;
  /* Text Breadcrumb */

  /* --- Accent Color --- */
  --color-accent: #ff9888;
  /* Accent Primary */
  --color-accent-yellow: #f5dc5e;
  /* Accent Sub1 */
  --color-accent-yellow2: #f6e278;
  /* Accent Sub2 */
  --color-accent-gray: #d9d9d9;
  /* Accent Sub2 */

  /* --- Background / Surface Color --- */
  --color-bg: #fff;
  /* Background Base */
  --color-surface-soft: #f6fbf3;
  /* Surface Soft */
  --color-surface-note: #fcf7ed;
  /* Surface Note */

  /* --- State Color --- */
  --color-state-alert1: #f36f61;
  /* State Alert_1 - CTA red */
  --color-state-alert2: #df5b4d;
  /* State Alert_2 - blue */

  /* --- Border Color --- */
  --color-border-primary: #e3eeda;
  /* Border Primary */
  --color-border-sub1: #d9d9d9;
  /* Border Sub1 */
  --color-border-sub2: #909090;
  /* Border Sub2 */
  --color-border-sub3: #d9b87a;
  /* Border Sub3 */

  /* --- 旧変数 エイリアス (後方互換) --- */
  --color-primary-dark: var(--color-primary-dark1);
  --color-text-light: var(--color-text-secondary);
  --color-bg-green-light: var(--color-surface-soft);
  --color-border: var(--color-border-sub1);
  --color-bg-gray: #f5f5f5;
  --color-placeholder: #ccc;
  --color-tag-bg: #e8f4d0;

  /* --- Font Size --- */
  --fs-10: 0.625rem;
  --fs-12: 0.75rem;
  --fs-14: 0.875rem;
  --fs-15: 0.9375rem;
  --fs-16: 1rem;
  --fs-18: 1.125rem;
  --fs-20: 1.25rem;
  --fs-22: 1.375rem;
  --fs-24: 1.5rem;
  --fs-26: 1.625rem;
  --fs-28: 1.75rem;
  --fs-32: 2rem;
  --fs-36: 2.25rem;
  --fs-40: 2.5rem;
  --fs-48: 3rem;
  --fs-64: 4rem;

  /* --- Layout --- */
  --container-max: 1440px;
  --content-max: 1056px;
  --content-padding-pc: 192px;
  --content-padding-sp: 16px;
}

/* ===== ユーティリティ：SP/PC 表示切り替え ===== */
.u-sp {
  display: block;
}

.u-pc {
  display: none;
}

@media (min-width: 768px) {
  .u-sp {
    display: none;
  }

  .u-pc {
    display: block;
  }
}

/* ===== ユーティリティ：スペーシング ===== */
.pt-0,
.entry-content .pt-0 {
  padding-top: 0;
}

.pb-0,
.entry-content .pb-0 {
  padding-bottom: 0;
}

.pb-40,
.entry-content .pb-40 {
  padding-bottom: 40px;
}

.mb-24-40,
.entry-content .mb-24-40 {
  margin-bottom: 20px;
}

@media (min-width: 768px) {

  .mb-24-40,
  .entry-content .mb-24-40 {
    margin-bottom: 40px;
  }
}

/* ===== リセット ===== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scrollbar-gutter: stable;
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, "游ゴシック Medium", "Yu Gothic Medium", 游ゴシック体, "Yu Gothic", YuGothic, "MS PGothic", Osaka, arial, sans-serif;
  font-size: var(--fs-16);
  line-break: strict;
  line-height: 1.7;
  overflow-wrap: anywhere;
  overflow-x: hidden;
  word-break: normal;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

ul {
  list-style: none;
}

/* ===== 共通レイアウト ===== */
.mn-section {
  padding: 40px 0;
}

/* 同じ背景色が連続する場合、次セクションの上paddingを打ち消す */
.mn-section.bg--white+.mn-section.bg--white,
.mn-section.bg--soft+.mn-section.bg--soft {
  padding-top: 0;
}

.mn-container {
  max-width: var(--content-max);
  margin: 0 auto;
}

.mn-container__l {
  max-width: 1120px;
  margin: 0 auto;
}

.mn-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 16px;
}

.mn-section__ttl,
.entry-content .mn-section__ttl {
  font-size: var(--fs-28);
  font-weight: 600;
  text-align: center;
  margin-bottom: 24px;
  line-height: 1.5;
  padding: 0;
  color: var(--color-text);
}

.mn-section__desc {
  font-size: var(--fs-18);
  font-weight: 400;
  color: var(--color-text);
  padding: 0 0 40px;
  line-height: 1.7;
}

.mn-content__ttl,
.entry-content .mn-content__ttl {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  padding: 0;
  margin-bottom: 8px;
  line-height: 1.7;
}

/* 画像プレースホルダー */
.mn-img-ph {
  background-color: var(--color-placeholder);
  border-radius: 8px;
  width: 100%;
}

@media (min-width: 768px) {
  .mn-section {
    padding: 96px 0;
  }

  .mn-inner {
    padding: 0;
  }

  .mn-section__ttl,
  .entry-content .mn-section__ttl {
    font-size: var(--fs-36);
    margin-bottom: 32px;
  }

  .mn-section__desc {
    text-align: center;
  }

  .mn-content__ttl,
  .entry-content .mn-content__ttl {
    font-size: var(--fs-24);
    margin-bottom: 16px;
  }
}

/* ===== ユーティリティ：CTAセクション ===== */
.mn-section-cta .mn-section-cta__ttl {
  margin-bottom: 24px;
  font-size: var(--fs-28);
  text-align: center;
  line-height: 1.5;
}

.mn-section-cta .mn-section-cta__txt {
  margin-bottom: 24px;
}

.mn-section-cta .mn-cta {
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .mn-section-cta .mn-section-cta__ttl {
    font-size: var(--fs-36);
  }

  .mn-section-cta .mn-section-cta__txt {
    text-align: center;
  }

  .mn-section-cta .mn-cta {
    padding-bottom: 0;
  }
}

/* ===== 共通CTA ===== */
.mn-cta {
  display: flex;
  justify-content: center;
  margin-bottom: 0;
  padding-bottom: 40px;
}

@media (min-width: 768px) {
  .mn-cta {
    padding-bottom: 96px;
  }
}

/* ===== 共通ボタン ===== */
.mn-btn-cta {
  display: inline-block;
  background-color: var(--color-primary);
  color: var(--color-text-white);
  font-size: var(--fs-16);
  font-weight: 700;
  text-align: center;
  padding: 14px 32px;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.2s;
  width: 100%;
  max-width: 280px;
}

.mn-btn-cta:hover {
  background-color: var(--color-primary-dark);
  color: var(--color-text-white);
}

.mn-btn-cta .mn-btn-cta__sub {
  display: block;
  font-size: var(--fs-12);
  font-weight: 400;
  margin-bottom: 4px;
}

.mn-btn-link {
  display: inline-block;
  font-size: var(--fs-15);
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  padding: 8px 24px;
  border-radius: 4px;
  transition: background-color 0.2s, color 0.2s;
}

.mn-btn-link:hover {
  background-color: var(--color-primary);
  color: var(--color-text-white);
}

.mn-btn-mini {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--color-primary);
  color: var(--color-text-white);
  font-size: var(--fs-18);
  font-weight: 600;
  height: 40px;
  padding: 0 24px;
  border-radius: 48px;
  text-decoration: none;
  line-height: 1.5;
  cursor: pointer;
}

.mn-btn-mini::after {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  flex-shrink: 0;
}

.mn-btn-mini:hover {
  background: var(--color-primary-dark2);
  color: var(--color-text-white);
}

.mn-btn-cta-l {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  background: var(--color-state-alert1);
  box-shadow: 0 4px 0 0 #aa414b;
  color: var(--color-text-white);
  font-size: var(--fs-20);
  font-weight: 600;
  height: 64px;
  width: 320px;
  border-radius: 40px;
  padding-left: 16px;
  text-decoration: none;
  line-height: 1.5;
  margin-top: 7px;
}

.mn-btn-cta-l::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  flex-shrink: 0;
}

.mn-btn-cta-l:hover {
  background: var(--color-state-alert2);
  box-shadow: 0 4px 0 0 #962d37;
  color: var(--color-text-white);
}

.mn-cta-wrap {
  position: relative;
  padding-top: 16px;
  display: inline-block;
}

.mn-cta-balloon {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-accent-yellow);
  border-radius: 24px;
  padding: 2px 32px;
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  line-height: 2;
}

.mn-cta-balloon::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 20%;
  transform: translateX(-50%);
  width: 16px;
  height: 12px;
  background: var(--color-accent-yellow);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

@media (min-width: 768px) {
  .mn-btn-cta {
    font-size: var(--fs-18);
    width: auto;
    max-width: none;
  }

  .mn-btn-mini {
    padding: 0 32px;
  }
}

/* ===== 表組 table ===== */
table {
  border-collapse: collapse;
  width: 100%;
}

table:not(.has-border-color) th,
table:not(.has-border-color) td {
  border-color: var(--color-border-primary);
}

table th {
  background: var(--color-primary-dark2);
  border-bottom: 1px solid var(--color-border-primary);
  border-right: 1px solid var(--color-border-primary);
  color: var(--color-bg);
  font-size: var(--fs-14);
  font-weight: 600;
  padding: 12px;
}

table td {
  border-bottom: 1px solid var(--color-border-primary);
  color: var(--color-text);
  font-size: var(--fs-14);
  padding: 12px 8px;
  vertical-align: middle;
  line-height: 1.7;
}

@media (min-width: 768px) {
  table th {
    font-size: var(--fs-16);
    padding: 12px 24px;
  }

  table td {
    font-size: var(--fs-16);
    padding: 12px 24px;
  }
}


/* ===== ヘッダー ===== */
.mn-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border-sub1);
  height: 56px;
}

.mn-site-header__inner {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ロゴ */
.mn-header-logo {
  margin-left: 8px;
}

.mn-header-logo__img {
  width: 134px;
  display: block;
  object-fit: contain;
}

/* ハンバーガーメニュー */
.mn-hamburger {
  position: absolute;
  right: 0;
  top: 0;
  width: 75px;
  height: 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}

.mn-hamburger__icon {
  display: block;
  position: relative;
  width: 28px;
  height: 28px;
}

.mn-hamburger__icon::before,
.mn-hamburger__icon::after {
  content: "";
  position: absolute;
  left: 0;
  width: 28px;
  height: 2px;
  background: var(--color-text);
  border-radius: 2px;
  transition: top 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

/* ::before = 上バー、box-shadow で中央バーも描画（border-radius を継承） */
.mn-hamburger__icon::before {
  top: 0;
  box-shadow: 0 9px 0 var(--color-text);
}

.mn-hamburger__icon::after {
  top: 18px;
}

/* 開いた状態: 3本線 → ✕ */
.mn-hamburger[aria-expanded="true"] .mn-hamburger__icon::before {
  top: 9px;
  transform: rotate(45deg);
  box-shadow: none;
}

.mn-hamburger[aria-expanded="true"] .mn-hamburger__icon::after {
  top: 9px;
  transform: rotate(-45deg);
}

.mn-hamburger__lbl {
  font-size: var(--fs-10);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .mn-site-header {
    border-bottom-width: 2px;
    height: 72px;
  }

  .mn-header-logo {
    margin-left: 16px;
  }

  .mn-header-logo__img {
    width: 169px;
  }

  .mn-hamburger {
    height: 72px;
    padding: 16px;
  }
}

/* ===== PC ヘッダーナビゲーション ===== */
.mn-pc-nav {
  display: none;
}

.mn-pc-nav__link {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  text-decoration: none;
}

/* 記事一覧 ドロップダウン */
.mn-pc-drop {
  position: relative;
}

.mn-pc-drop__btn {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, "游ゴシック Medium", "Yu Gothic Medium", 游ゴシック体, "Yu Gothic", YuGothic, "MS PGothic", Osaka, arial, sans-serif;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  white-space: nowrap;
}

.mn-pc-drop__arrow {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-text);
  border-bottom: 2px solid var(--color-text);
  transform: rotate(45deg);
  margin: -4px 0 0 4px;
  transition: transform 0.2s, margin-top 0.2s;
}

.mn-pc-drop.mn-is-open .mn-pc-drop__arrow {
  transform: rotate(225deg);
  margin-top: 2px;
}

.mn-pc-drop__menu {
  position: absolute;
  top: calc(100% + 24px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  background: var(--color-bg);
  border: 1px solid var(--color-border-primary);
  border-radius: 8px;
  padding: 16px;
  width: 200px;
  z-index: 200;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  row-gap: 8px;
}

/* ボタンとメニューの隙間を埋めるブリッジ */
.mn-pc-drop__menu::before {
  content: '';
  position: absolute;
  top: -16px;
  left: 0;
  right: 0;
  height: 16px;
}

/* PC ドロップダウン オーバーレイ */
.mn-pc-drop-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 99;
}

.mn-pc-drop-overlay.mn-is-open {
  display: block;
}

.mn-pc-drop.mn-is-open .mn-pc-drop__menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

.mn-pc-drop__item a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--fs-16);
  font-weight: 400;
  color: var(--color-text);
  text-decoration: none;
  white-space: nowrap;
}

.mn-pc-drop__item a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.mn-pc-drop__item a::after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  flex-shrink: 0;
  margin-right: 16px;
}

/* 記事一覧：見出し */
.mn-pc-drop__item--heading a {
  font-size: var(--fs-18);
  padding-bottom: 4px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--color-border-sub1);
}

/* PC ヘッダー CTA ボタン */
.mn-pc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: var(--color-text-white);
  font-size: var(--fs-18);
  font-weight: 600;
  padding: 10px 24px;
  border-radius: 64px;
  height: 48px;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s;
}

.mn-pc-cta:hover {
  background: var(--color-primary-dark2);
  color: var(--color-text-white);
}

@media (min-width: 768px) {
  .mn-pc-nav {
    display: flex;
    align-items: center;
    gap: 60px;
    margin-right: 8%;
  }
}

/* ===== ハンバーガーメニュー ドロワー ===== */

/* オーバーレイ */
.mn-menu-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
  z-index: 200;
}

.mn-menu-overlay.mn-is-open {
  display: block;
}

/* ドロワー本体 */
.mn-drawer {
  position: fixed;
  top: 0;
  left: 32px;
  right: auto;
  width: calc(100% - 32px);
  height: 100dvh;
  overflow-y: auto;
  background: var(--color-bg);
  z-index: 201;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

.mn-drawer.mn-is-open {
  transform: translateX(0);
}

/* 閉じるボタン（ヘッダーと同じ高さ・右端に配置） */
.mn-drawer__close {
  position: sticky;
  top: 0;
  width: 75px;
  height: 56px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: var(--color-bg);
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1;
}

/* × アイコン（CSSで描画） */
.mn-drawer__close-icon {
  position: relative;
  width: 40px;
  height: 28px;
  flex-shrink: 0;
}

.mn-drawer__close-icon::before,
.mn-drawer__close-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 2px;
  background: var(--color-text);
  border-radius: 8px;
  transform-origin: center center;
  translate: -50% -50%;
}

.mn-drawer__close-icon::before {
  rotate: 45deg;
}

.mn-drawer__close-icon::after {
  rotate: -45deg;
}

.mn-drawer__close-lbl {
  font-size: var(--fs-10);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
  white-space: nowrap;
}

/* ナビゲーションリスト */
.mn-nav {
  padding: 8px 8px 0;
  list-style: none;
}

.mn-nav__item {
  border-bottom: 1px solid var(--color-border-sub1);
}

/* トップレベルリンク・ボタン共通 */
.mn-nav__link,
.mn-nav__toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 16px 8px;
  font-size: var(--fs-18);
  font-weight: 400;
  color: #000;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  line-height: 1.7;
}

.mn-nav__link:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.mn-nav__icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-primary-bright);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.mn-nav__icon::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--color-text-white);
  border-top: 2px solid var(--color-text-white);
  margin-right: 2px;
  transform: rotate(45deg);
}

/* CTAエリア */
.mn-drawer__cta {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin-top: 32px;
  justify-content: center;
}

.mn-drawer__cta-img {
  width: 88px;
  flex-shrink: 0;
  object-fit: contain;
}

.mn-drawer__cta-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mn-drawer__cta-txt {
  font-size: var(--fs-14);
  font-weight: 300;
  color: var(--color-text);
  line-height: 1.4;
  margin-left: 24px;
}

.mn-drawer__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  background: #71a846;
  border-radius: 64px;
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--color-text-white);
  text-decoration: none;
  white-space: nowrap;
  padding: 0 24px;
}

.mn-drawer__cta-btn:hover {
  background: var(--color-primary-dark2);
  color: var(--color-text-white);
}

@media (min-width: 768px) {
  .mn-drawer {
    left: auto;
    right: 0;
    width: 400px;
  }

  .mn-drawer__close {
    height: 72px;
    padding: 16px;
  }

  .mn-nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
}

/* ===== パンくずリスト ===== */
.mn-breadcrumb {
  padding: 8px 16px;
}

.mn-breadcrumb__list {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  list-style: none;
  padding: 0;
  margin: 0;
  white-space: nowrap;
  overflow-x: auto;
}

.mn-breadcrumb__item {
  display: flex;
  align-items: center;
}

/* セパレーター（右向きシェブロン） */
.mn-breadcrumb__item:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid var(--color-text-crumb);
  border-top: 1.5px solid var(--color-text-crumb);
  transform: rotate(45deg);
  margin: 0 5px 1px;
  flex-shrink: 0;
}

.mn-breadcrumb__link {
  font-size: var(--fs-12);
  font-weight: 300;
  color: var(--color-text-crumb);
  text-decoration: underline;
  line-height: 1.7;
}

.mn-breadcrumb__current {
  font-size: var(--fs-12);
  font-weight: 600;
  color: var(--color-text-crumb);
  line-height: 1.7;
}

@media (min-width: 768px) {
  .mn-breadcrumb {
    margin: 0 auto;
    padding: 8px;
    max-width: var(--content-max);
  }

  .mn-breadcrumb__link,
  .mn-breadcrumb__current {
    font-size: var(--fs-14);
  }
}

/* ===== フッター ===== */
.footer {
  margin: 0;
  padding: 0;
}

.mn-site-footer {
  background: var(--color-bg);
  color: var(--color-text);
  font-size: var(--fs-14);
  font-weight: 400;
  line-height: 1.7;
}

/* WordPress / Cocoon 環境：.wrap コンテナからフルワイドに突破 */
#footer-in .mn-site-footer {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

#footer {
  overflow-x: clip;
}

/* 鎌倉新書のグループサイト */
.mn-grp-sites {
  background: var(--color-surface-note);
  padding: 40px 0;
}

.mn-grp-sites__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 16px;
}

.mn-grp-sites__heading {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--color-border-sub2);
  margin-bottom: 24px;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.mn-grp-sites__heading::after {
  content: '';
  display: inline-block;
  width: 12px;
  height: 12px;
  border-right: 2px solid var(--color-text);
  border-bottom: 2px solid var(--color-text);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  margin: -4px 0 0 8px;
}

.mn-grp-sites__heading.mn-is-closed::after {
  transform: rotate(-135deg);
  margin-top: 4px;
}

.mn-grp-sites__cols.mn-is-hidden {
  display: none;
}

.mn-grp-sites__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.mn-grp-sites__col {
  padding: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.mn-grp-sites__col+.mn-grp-sites__col {
  border-left: none;
  margin-top: 8px;
}

.mn-grp-block__ttl {
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
  line-height: 2;
}

.mn-grp-block__links {
  font-size: var(--fs-14);
  color: var(--color-text);
  font-weight: 400;
  line-height: 2;
}

.mn-grp-block__links a {
  color: var(--color-text);
  text-decoration: none;
}

.mn-grp-block__links a:hover {
  text-decoration: underline;
}

.mn-pipe {
  display: inline;
  color: var(--color-text);
  margin: 0 2px;
}

/* サイトマップ */
.mn-sitemap {
  padding: 40px 0;
  background: var(--color-bg);
}

.mn-sitemap__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: flex-start;
}

.mn-sitemap__col {
  width: 100%;
  padding-right: 0;
}

.mn-sitemap__col+.mn-sitemap__col {
  padding-left: 0;
  border-left: none;
  padding-top: 24px;
}

.mn-sitemap__col-ttl {
  font-size: var(--fs-16);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 8px;
  line-height: 1.7;
}

.mn-sitemap__col-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mn-sitemap__col-links li {
  display: flex;
  align-items: center;
  gap: 4px;
  line-height: 2;
}

.mn-sitemap__col-links li::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid #444;
  border-top: 1.5px solid #444;
  transform: rotate(45deg);
  flex-shrink: 0;
  margin-right: 4px;
}

.mn-sitemap__col-links a {
  font-size: var(--fs-14);
  color: var(--color-text);
  text-decoration: none;
  font-weight: 400;
}

.mn-sitemap__col-links a:hover {
  text-decoration: underline;
}

.mn-ins-agent {
  flex-shrink: 0;
  width: 100%;
  padding-left: 0;
  border-left: none;
  padding-top: 24px;
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  .mn-ins-agent {
    width: 100%;
    border-left: none;
  }
}

.mn-ins-agent__ttl {
  font-size: var(--fs-16);
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 12px;
  line-height: 1.7;
}

.mn-ins-agent__logo {
  display: block;
  width: 244px;
  height: 46px;
  object-fit: contain;
  margin-bottom: 12px;
}

.mn-ins-agent__info {
  font-size: var(--fs-14);
  color: var(--color-text);
  font-weight: 400;
  line-height: 1.7;
}

/* Divider */
.mn-footer__divider {
  border: none;
  border-top: 1px solid var(--color-border-sub1);
  margin: 0 auto;
  max-width: var(--content-max);
}

/* Notes (ロゴ + 会社情報) */
.mn-footer-notes {
  padding: 32px 0;
  background: var(--color-bg);
}

.mn-footer-notes__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
}

.mn-footer-notes__logo {
  width: 184px;
  object-fit: contain;
  display: block;
}

.mn-footer-notes__company {
  flex: 1;
  display: flex;
  flex-direction: row;
  width: 100%;
  gap: 8px;
  align-items: flex-start;
}

.mn-footer-notes__txt {
  font-size: var(--fs-14);
  color: var(--color-text);
  font-weight: 400;
  line-height: 1.7;
  flex: 1;
}

.mn-footer-notes__jpx {
  flex-shrink: 0;
  width: 64px;
  object-fit: contain;
}

/* コピーライト */
.mn-copyright-bar {
  background: var(--color-primary-dark2);
  padding: 24px 0;
  text-align: center;
}

.mn-copyright-bar__policy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
}

.mn-copyright-bar__policy-row {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

#footer .mn-copyright-bar__policy a {
  font-size: var(--fs-12);
  color: var(--color-text-white);
  text-decoration: underline;
  font-weight: 400;
}

.mn-copyright-bar__txt {
  font-size: var(--fs-12);
  color: var(--color-text-white);
  font-weight: 400;
}

@media (min-width: 768px) {
  .mn-grp-sites__inner {
    padding: 0;
  }

  .mn-grp-sites__heading {
    font-size: var(--fs-24);
    cursor: default;
    user-select: auto;
    display: block;
  }

  .mn-grp-sites__heading::after {
    display: none;
  }

  .mn-grp-sites__cols.mn-is-hidden {
    display: grid;
  }

  .mn-grp-sites__cols {
    grid-template-columns: repeat(3, 1fr);
  }

  .mn-grp-sites__col {
    padding: 0 0 0 16px;
  }

  .mn-grp-sites__col+.mn-grp-sites__col {
    border-top: none;
    border-left: 1px dashed #ccc;
    padding-top: 0;
    margin-top: 0;
  }

  .mn-sitemap__inner {
    flex-direction: row;
    gap: 24px 0;
    align-items: stretch;
    flex-wrap: wrap;
  }

  .mn-sitemap__col {
    flex: 1;
    width: auto;
    padding-right: 32px;
  }

  .mn-sitemap__col+.mn-sitemap__col {
    padding-left: 32px;
    border-top: none;
    border-left: 1px solid var(--color-border-sub2);
    padding-top: 0;
  }

  .mn-sitemap__col-links li {
    white-space: nowrap;
  }

  .mn-ins-agent {
    width: 418px;
    padding-left: 32px;
    border-left: 1px solid var(--color-border-sub2);
    border-top: none;
    padding-top: 0;
  }

  .mn-footer-notes__inner {
    padding: 0 48px;
    flex-direction: row;
    gap: 24px;
    align-items: center;
  }

  .mn-copyright-bar__policy {
    flex-direction: row;
    justify-content: center;
  }

  .mn-copyright-bar__policy-row {
    display: contents;
  }
}

/* ===== 装飾付き見出し ===== */
.mn-deco-ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.mn-deco-ttl__text {
  font-size: var(--fs-22);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  white-space: nowrap;
  margin: 0;
  padding: 0;
}

/* 左右の装飾線（CSSで描画） */
.mn-deco-ttl__line {
  display: block;
  width: 20px;
  height: 35px;
  position: relative;
  flex-shrink: 0;
}

.mn-deco-ttl__line::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 2px;
  background: var(--color-text);
  transform-origin: center center;
}

/* 左線：\ 方向 */
.mn-deco-ttl__line:first-child::before {
  transform: translate(-50%, -50%) rotate(60deg);
}

/* 右線：/ 方向 */
.mn-deco-ttl__line:last-child::before {
  transform: translate(-50%, -50%) rotate(120deg);
}

@media (min-width: 768px) {
  .mn-deco-ttl {
    gap: 16px;
  }

  .mn-deco-ttl__text {
    font-size: var(--fs-24);
  }
}

/* ===== 汎用：背景色 ===== */
.bg--soft {
  background: var(--color-surface-soft);
}

.bg--white {
  background: var(--color-bg);
}

/* ===== CTAバナー ===== */
.mn-cta-banner {
  background: var(--color-primary);
  padding: 60px 0;
  text-align: center;
}

.mn-cta-banner__ttl {
  font-size: var(--fs-20);
  font-weight: 900;
  color: var(--color-text-white);
  margin-bottom: 16px;
  padding: 0 16px;
}

.mn-cta-banner__txt {
  font-size: var(--fs-15);
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 32px;
  padding: 0 16px;
}

.mn-btn-cta--white {
  display: inline-block;
  background: var(--color-bg);
  color: var(--color-primary);
  font-size: var(--fs-18);
  font-weight: 700;
  padding: 16px 48px;
  border-radius: 4px;
}

@media (min-width: 768px) {
  .mn-cta-banner__ttl {
    font-size: var(--fs-28);
    padding: 0;
  }

  .mn-cta-banner__txt {
    padding: 0;
  }
}

/* ===== お金の悩みを相談する ===== */
.mn-consult {
  padding: 40px 0;
}

.mn-consult__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
}

/* SP ではrow要素を透過し、カードを直接並べる */
.mn-consult__row {
  display: contents;
}

.mn-consult-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--color-bg);
  width: 320px;
  max-width: 100%;
  overflow: hidden;
  flex-shrink: 0;
  text-decoration: none;
  cursor: pointer;
  padding-bottom: 4px;
}

.mn-consult-card__img {
  border: 2px solid var(--color-primary);
  border-radius: 8px 8px 0 0;
  width: 100%;
  height: 120px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mn-consult-card__img img {
  height: 144px;
  object-fit: contain;
}

.mn-consult-card__bar {
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 48px;
  border-radius: 0 0 8px 8px;
  position: relative;
  box-shadow: 0 4px 0 0 #436e20;
}

.mn-consult-card:hover {
  background: var(--color-surface-soft);
}

.mn-consult-card:hover .mn-consult-card__img {
  border: 2px solid var(--color-primary-dark2);
}

.mn-consult-card:hover .mn-consult-card__bar {
  background: var(--color-primary-dark2);
}

.mn-consult-card__name {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text-white);
  text-align: center;
  line-height: 1.7;
  margin-right: 24px;
}

/* 相談カード矢印（塗りつぶし三角形） */
.mn-consult-card__bar::after {
  content: '';
  display: block;
  width: 12px;
  height: 16px;
  background: var(--color-text-white);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  flex-shrink: 0;
  position: absolute;
  right: 24px;
}

@media (min-width: 768px) {
  .mn-consult {
    padding: 96px 0;
  }

  .mn-consult__list {
    flex-direction: column;
    align-items: stretch;
    gap: 40px;
  }

  /* PC では行ごとに横並び・中央揃え */
  .mn-consult__row {
    display: flex;
    gap: 48px;
    justify-content: center;
    flex-wrap: wrap;
  }

  .mn-consult-card__img {
    height: 200px;
  }

  .mn-consult-card__img img {
    height: 200px;
  }

  .mn-consult-card__bar {
    height: 56px;
  }
}

/* ===== ご相談事例 ===== */
.mn-cases__header {
  padding: 0 16px 16px;
}

.mn-cases__list {
  background: var(--color-surface-soft);
  padding: 0 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.mn-case {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
  max-width: 100%;
}

.mn-case__num {
  font-size: var(--fs-22);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.5;
}

.mn-case__user {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  justify-content: center;
}

.mn-case__user-img {
  width: 127px;
  height: 96px;
  flex-shrink: 0;
  display: block;
  overflow: hidden;
}

.mn-case__user-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mn-case__user-label {
  font-size: var(--fs-14);
  font-weight: 400;
  color: var(--color-text);
  text-align: center;
  line-height: 1.7;
}

.mn-case__body {
  background: var(--color-bg);
  border: 1px solid var(--color-border-sub2);
  border-radius: 8px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.mn-case__q {
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  width: 100%;
}

.mn-case__a {
  font-size: var(--fs-18);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
  width: 100%;
}

/* Cocoon バルーン → ワイヤーフレームスタイル */
.mn-cases .speech-wrap {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mn-cases .speech-wrap+.speech-wrap {
  margin-top: 32px;
}

/* アバター画像を長方形に */
.mn-cases .speech-icon-image {
  border-radius: 0;
  width: 127px;
  height: 96px;
  object-fit: contain;
}

.mn-cases .speech-person {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
  flex-shrink: 0;
  padding-bottom: 24px;
}

.mn-cases .speech-name {
  font-size: var(--fs-14);
  font-weight: 400;
  color: var(--color-text);
  text-align: center;
  line-height: 1.7;
  width: 100%;
}

.mn-cases .speech-balloon {
  background: var(--color-bg);
  border: 1px solid var(--color-border-sub2);
  border-radius: 8px;
  padding: 16px;
  flex: 1;
  position: relative;
  max-width: 100%;
}

/* 吹き出し三角アウター */
.mn-cases .speech-balloon::before {
  display: none;
}

/* 吹き出し三角インナー */
.mn-cases .speech-balloon::after {
  display: none;
}

.mn-cases .speech-balloon p strong {
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--color-text);
}

.mn-cases {
  overflow: visible;
  padding: 40px 0;
}

@media (min-width: 768px) {
  .mn-cases__list {
    flex-direction: column;
    gap: 40px;
    padding: 0 64px 48px;
    border-radius: 8px;
    margin: 0 auto;
    max-width: 1120px;
  }

  .mn-cases {
    margin-bottom: 80px;
    padding: 96px 0;
  }

  .mn-case {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 2%;
    align-items: flex-start;
  }

  .mn-cases__header {
    padding: 0 16px 32px;
  }

  .mn-case__num {
    font-size: var(--fs-24);
    width: 100%;
  }

  .mn-case__user {
    width: 20%;
    flex-shrink: 0;
  }

  .mn-case__body {
    flex: 1;
    position: relative;
    padding: 16px 32px;
  }

  /* 吹き出し三角（アウター：ボーダー色） */
  .mn-case__body::before {
    content: '';
    position: absolute;
    top: 40px;
    left: -11px;
    width: 10px;
    height: 12px;
    background: var(--color-border-sub2);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
  }

  /* 吹き出し三角（インナー：背景色で塗りつぶし） */
  .mn-case__body::after {
    content: '';
    position: absolute;
    top: 41px;
    left: -10px;
    width: 10px;
    height: 10px;
    background: var(--color-bg);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
  }

  .mn-cases .speech-wrap {
    flex-direction: row;
  }

  .mn-cases .speech-person {
    margin-right: 16px;
    padding-bottom: 0;
    width: 20%;
  }

  .mn-cases .speech-balloon {
    padding: 16px 32px;
  }

  .mn-cases .speech-balloon::before {
    display: block;
    content: '';
    position: absolute;
    top: 41px;
    left: -11px;
    width: 10px;
    height: 12px;
    background: var(--color-border-sub2);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
  }

  /* 吹き出し三角インナー */
  .mn-cases .speech-balloon::after {
    display: block;
    content: '';
    position: absolute;
    top: 41px;
    left: -10px;
    width: 10px;
    height: 10px;
    background: var(--color-bg);
    clip-path: polygon(100% 0, 0 50%, 100% 100%);
  }
}

/* ===== よくある質問 ===== */
.mn-faq {
  padding: 24px 0 16px;
}

.mn-faq__header {
  padding: 0 16px 16px;
}

.mn-faq__list-wrap {
  background: var(--color-surface-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 16px 32px;
}

.mn-faq__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 100%;
}

.mn-faq-item {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
}

.mn-faq-item__q {
  background: var(--color-bg);
  border: 1px solid var(--color-border-primary);
  border-radius: 8px;
  display: flex;
  gap: 8px;
  min-height: 80px;
  align-items: center;
  padding: 0 16px;
  width: 100%;
}

.mn-faq-item--open .mn-faq-item__q {
  border-radius: 8px 8px 0 0;
}

.mn-faq-item__q-icon {
  background: var(--color-surface-soft);
  padding: 8px;
  border-radius: 8px;
  font-size: var(--fs-24);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1;
  text-align: center;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.mn-faq-item__q-text {
  flex: 1;
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
}

/* FAQトグルアイコン（横線） */
.mn-faq-item__q-toggle {
  position: relative;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: block;
}

.mn-faq-item__q-toggle::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 24px;
  height: 3px;
  background: var(--color-primary);
}

/* 縦線（閉じているとき = ＋） */
.mn-faq-item__q-toggle::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 3px;
  height: 24px;
  background: var(--color-primary);
  transition: transform 0.2s, opacity 0.2s;
}

/* 開いているとき = 縦線を非表示にして − になる */
.mn-faq-item--open .mn-faq-item__q-toggle::after {
  opacity: 0;
}

.mn-faq-item__a {
  background: var(--color-bg);
  border-left: 1px solid var(--color-border-primary);
  border-right: 1px solid var(--color-border-primary);
  border-bottom: 1px solid var(--color-border-primary);
  border-radius: 0 0 8px 8px;
  padding: 16px 24px;
  font-size: var(--fs-18);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
  width: 100%;
  display: none;
}

.mn-faq-item--open .mn-faq-item__a {
  display: block;
}

.mn-faq__cta {
  display: flex;
  justify-content: flex-end;
}

/* Cocoon FAQブロック → ワイヤーフレームスタイルに統一 */

/* faq-wrap の Cocoon デフォルトをリセット・上書き */
.faq-wrap {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

/* dl をflex縦並びに */
.faq-wrap .faq {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* Q ボックス */
.mn-faq__list .is-style-accordion .faq .faq-question {
  background: var(--color-bg);
  border: 1px solid var(--color-border-primary);
  border-radius: 8px;
  display: flex;
  gap: 8px;
  min-height: 80px;
  align-items: center;
  padding: 8px;
  width: 100%;
  margin: 0;
  position: relative;
}

.mn-faq__list .is-style-accordion .faq .faq-question.active {
  border-radius: 8px 8px 0 0;
}

/* Q ラベルアイコン */
.faq-wrap .faq-question-label {
  background: var(--color-surface-soft);
  padding: 0;
  border-radius: 8px;
  font-size: var(--fs-24);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1;
  text-align: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0;
}

/* Q テキスト */
.faq-wrap .faq-question-content {
  flex: 1;
  font-size: var(--fs-18);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  padding: 0;
}

/* A ボックス */
.mn-faq__list .is-style-accordion .faq .faq-answer {
  background: var(--color-bg);
  border-left: 1px solid var(--color-border-primary);
  border-right: 1px solid var(--color-border-primary);
  border-bottom: 1px solid var(--color-border-primary);
  border-top: none;
  border-radius: 0 0 8px 8px;
  padding: 16px 24px;
  display: flex;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
  margin: 0;
}

/* 回答が空の場合はAボックスを非表示 */
.faq-wrap .faq-answer:has(.faq-answer-content p:empty) {
  display: none;
}

/* A ラベルアイコン */
.faq-wrap .faq-answer-label {
  display: none;
}

/* A テキスト */
.faq-wrap .faq-answer-content {
  flex: 1;
  font-size: var(--fs-18);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
}

.faq-wrap .faq-answer-content p {
  margin: 0;
}

/* Aラベル非表示に伴うpaddingリセット */
.faq-wrap .faq-answer {
  padding: 16px 24px;
}

/* Q右端トグルアイコン（＋/−） */
.mn-faq__list .is-style-accordion .faq .faq-question::before {
  content: '';
  position: absolute;
  right: 12px;
  width: 20px;
  height: 3px;
  background: var(--color-primary);
  opacity: 1;
}

.mn-faq__list .is-style-accordion .faq .faq-question::after {
  content: '';
  position: absolute;
  right: 20px;
  width: 3px;
  height: 20px;
  background: var(--color-primary);
  transition: transform 0.2s, opacity 0.2s;
}

.mn-faq__list .is-style-accordion .faq .faq-question.active::after {
  display: none;
}

.faq-wrap .faq-question.active::after {
  content: '\2212';
}

@media (min-width: 768px) {
  .mn-faq {
    padding-bottom: 56px;
  }

  .mn-faq__header {
    padding: 0 0 32px;
  }

  .mn-faq__list-wrap {
    padding: 40px 60px;
  }

  .mn-faq__list {
    width: 1000px;
    max-width: 100%;
  }

  .mn-faq-item {
    background: var(--color-bg);
    border-radius: 8px;
  }

  .mn-faq-item__q-text {
    font-size: var(--fs-24);
  }

  .mn-faq-item__q-toggle {
    width: 48px;
    height: 48px;
  }

  .mn-faq-item__a {
    padding: 16px 64px;
  }

  .faq-wrap .faq-question-content {
    font-size: var(--fs-24);
  }

  .faq-wrap .faq-answer {
    padding: 16px 40px;
  }

  .mn-faq__list .is-style-accordion .faq .faq-question {
    padding: 8px 16px;
  }

  /* Q右端トグルアイコン（＋/−） */
  .mn-faq__list .is-style-accordion .faq .faq-question::before {
    width: 24px;
    right: 16px;
  }

  .mn-faq__list .is-style-accordion .faq .faq-question::after {
    right: 26px;
    height: 24px;
  }
}

/* ===== サービスページ：マネナビでできること ===== */
.mn-svc-feature {
  padding-bottom: 40px;
}

.mn-svc-feature__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.mn-svc-feature__illust {
  width: 144px;
  height: 144px;
  object-fit: contain;
  display: block;
}

.mn-svc-feature__box {
  background: var(--color-surface-soft);
  border: 2px solid var(--color-primary);
  border-radius: 8px;
  padding: 16px;
  width: 100%;
}

.mn-svc-feature__box p {
  font-size: var(--fs-16);
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}

@media (min-width: 768px) {
  .mn-svc-feature {
    padding-bottom: 96px;
  }

  /* PC：イラストが緑枠の中に入る */
  .mn-svc-feature__inner {
    flex-direction: row;
    align-items: center;
    background: var(--color-surface-soft);
    border: 2px solid var(--color-primary);
    border-radius: 8px;
    padding: 16px 40px;
    max-width: 800px;
    margin: 16px auto 0;
    gap: 40px;
  }

  .mn-svc-feature__illust {
    width: 151px;
    height: 151px;
    flex-shrink: 0;
  }

  /* PC：ボックスの枠・背景をリセット（innerに移動） */
  .mn-svc-feature__box {
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
    width: auto;
    flex: 1;
  }

  .mn-svc-feature__box p {
    font-size: var(--fs-18);
  }
}

/* ===== サービスページ：ご相談の流れ ===== */
.mn-svc-flow {
  padding: 40px 0;
}

h2.mn-svc-flow__ttl {
  font-size: var(--fs-28);
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
  line-height: 1.5;
  margin: 0 0 32px;
}

.mn-svc-flow__desc {
  font-size: var(--fs-18);
  font-weight: 300;
  color: var(--color-text);
  line-height: 1.7;
  padding-bottom: 32px;
}

.mn-svc-flow__desc p {
  margin: 0;
}

/* --- ステップ格納ボックス（SP：縦積み） --- */
.mn-svc-flow__box {
  background: var(--color-surface-soft);
  border-radius: 8px;
  padding: 40px 35px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: center;
}

/* --- 各ステップ --- */
.mn-svc-flow__step {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

/* STEPバッジ */
.mn-svc-flow__step-badge {
  background: #fff;
  border: 2px solid var(--color-primary);
  border-radius: 40px;
  width: 160px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-26);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.5;
  margin-bottom: 16px;
}

/* ステップタイトル */
.mn-svc-flow__step-ttl {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  text-align: center;
}

/* ステップサブタイトル */
.mn-svc-flow__step-sub {
  font-size: var(--fs-16);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  text-align: center;
  width: 240px;
  margin: 0;
}

/* ステップ説明文 */
.mn-svc-flow__step-body {
  font-size: var(--fs-18);
  font-weight: 300;
  color: var(--color-text);
  line-height: 1.7;
  text-align: center;
  max-width: 275px;
  margin: 0;
}

/* --- アイコンコンテナ（SP：200×200）--- */
.mn-svc-flow__icon {
  position: relative;
  width: 200px;
  height: 200px;
  flex-shrink: 0;
}

/* picture要素を透過 */
.mn-svc-flow__icon picture {
  display: contents;
}

/* 背景・合成済み画像 */
.mn-svc-flow__icon-fill {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
}

/* SP専用オーバーレイグループ */
.mn-svc-flow__icon-sp {
  display: contents;
}

/* 各レイヤー（位置決めラッパー） */
.mn-svc-flow__icon-layer {
  position: absolute;
}

.mn-svc-flow__icon-layer img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
}

/* STEP1 SP：フォームアイコン・チェック */
.mn-svc-flow__icon-layer--form {
  inset: 20.5% 24.9% 16.08% 23.5%;
}

.mn-svc-flow__icon-layer--check {
  inset: 13.59% 15.62% 65.99% 65.21%;
}

/* STEP2：人物・吹き出し */
.mn-svc-flow__icon-layer--person {
  left: 22.75%;
  top: 18.68%;
  width: 61%;
  height: 63.5%;
}

.mn-svc-flow__icon-layer--bubble {
  inset: 15.68% 16.08% 63.9% 64.75%;
}

/* --- 矢印（SVGデフォルト：↓ / SP：そのまま / PC：-90deg で→） --- */
.mn-svc-flow__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}

.mn-svc-flow__arrow img {
  display: block;
  width: 48px;
  height: 48px;
}

/* ===== PC ===== */
@media (min-width: 768px) {
  .mn-svc-flow {
    padding: 96px 0;
  }

  h2.mn-svc-flow__ttl {
    font-size: var(--fs-36);
    margin-bottom: 40px;
  }

  .mn-svc-flow__desc {
    text-align: center;
    margin-bottom: 40px;
  }

  /* PC：横並び */
  .mn-svc-flow__box {
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    padding: 64px 40px;
    gap: 0;
  }

  /* PC：矢印は縦方向中央揃え（回転なし）、横方向スペーサー */
  .mn-svc-flow__arrow {
    align-self: center;
    margin: 48px 16px 0;
  }

  /* PC：-90deg で右向き（→）に */
  .mn-svc-flow__arrow img {
    transform: rotate(-90deg);
  }

  /* PC：アイコンを240×240に拡大 */
  .mn-svc-flow__icon {
    width: 240px;
    height: 240px;
  }

  /* PC：STEP1 SP専用オーバーレイを非表示（PC合成済み画像使用） */
  .mn-svc-flow__icon--1 .mn-svc-flow__icon-sp {
    display: none;
  }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  .mn-svc-flow__icon {
    width: 200px;
    height: 200px;
  }

  .mn-svc-flow__arrow {
    align-self: center;
    margin: 48px -8px 0;
    width: 32px;
    height: 32px;
  }

  .mn-svc-flow__arrow img {
    width: 32px;
    height: 32px;
  }
}


/* ===== サービスページ：マネナビが大切にしていること ===== */
.mn-svc-value {
  padding: 40px 0;
}

h2.mn-svc-value__ttl {
  font-size: var(--fs-28);
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
  line-height: 1.5;
  margin: 0 0 24px;
}

/* --- カードリスト（SP：縦積み） --- */
.mn-svc-value__cards {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
  width: calc(100% - 64px);
  margin: 0 auto;
  max-width: var(--content-max);
}

/* --- 各カード --- */
.mn-svc-value__card {
  background: #fff;
  border-radius: 8px;
  padding: 16px;
}

.mn-svc-value__card-inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  padding-top: 8px;
}

/* --- テキストエリア --- */
.mn-svc-value__card-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.mn-svc-value__card-ttl {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.5;
  text-align: center;
  margin: 0;
}

.mn-svc-value__card-body {
  font-size: var(--fs-16);
  font-weight: 300;
  color: var(--color-text);
  line-height: 1.7;
  margin: 0;
}

.mn-svc-value__card-body p {
  margin: 0;
}

/* --- アイコンエリア共通 --- */
.mn-svc-value__icon {
  height: 96px;
  object-fit: contain;
}

@media (min-width: 768px) {
  .mn-svc-value {
    padding: 96px 0;
  }

  h2.mn-svc-value__ttl {
    font-size: var(--fs-36);
    margin-bottom: 40px;
  }

  /* PC：3枚横並び */
  .mn-svc-value__cards {
    flex-direction: row;
    gap: 48px;
    align-items: stretch;
    justify-content: center;
  }

  .mn-svc-value__icon {
    height: 128px;
  }
}


/* ===== 監修者・執筆者のご紹介 ===== */
.mn-art-expert {
  padding: 40px 16px;
  background: #fff;
}

.mn-art-expert__ttl {
  font-size: var(--fs-28);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  text-align: center;
  margin: 0 0 40px;
}

.mn-art-expert__desc {
  font-size: var(--fs-18);
  font-weight: 300;
  color: var(--color-text);
  line-height: 1.7;
  margin: 0 0 40px;
}

.mn-art-expert__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  margin: 0 0 32px;
}

/* エキスパートカード */
.mn-expert-card {
  width: 100%;
  background: #fff;
  border: 1px solid var(--color-border-sub1);
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
}

.mn-expert-card__img-wrap {
  aspect-ratio: 11/6;
  overflow: hidden;
}

.mn-expert-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mn-expert-card__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* 役割バッジ */
.mn-expert-card__role-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mn-expert-card__role {
  font-size: var(--fs-12);
  font-weight: 600;
  line-height: 1.5;
  padding: 2px 10px;
  border-radius: 4px;
}

.mn-expert-card__role--supervisor {
  background: var(--color-primary);
  color: #fff;
}

.mn-expert-card__role--writer {
  background: var(--color-surface-note);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border-sub3);
}

/* 区切り線 */
.mn-expert-card__divider {
  border: none;
  border-bottom: 1px solid var(--color-border-sub1);
  margin: 0;
  padding-bottom: 8px;
}

/* 名前 */
.mn-expert-card__name {
  font-size: var(--fs-20);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.5;
  margin: 0;
}

.mn-expert-card__kana {
  font-size: var(--fs-14);
  font-weight: 300;
  color: var(--color-text-secondary);
  line-height: 1.7;
  margin: -8px 0 0;
}

/* スキルリスト */
.mn-expert-card__skills {
  list-style: none;
  padding: 0 0 8px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mn-expert-card__skills li {
  position: relative;
  padding-left: 16px;
  font-size: var(--fs-14);
  font-weight: 300;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.mn-expert-card__skills li::before {
  content: "▪";
  position: absolute;
  left: 0;
  color: var(--color-primary);
}

/* 略歴 */
.mn-expert-card__bio,
.mn-expert-card__url {
  font-size: var(--fs-14);
  font-weight: 300;
  color: var(--color-text-secondary);
  line-height: 1.7;
  margin: 0;
}

.mn-expert-card__bio:has(+.mn-expert-card__url) {
  border: none;
  border-bottom: 1px solid var(--color-border-sub1);
  margin: 0;
  padding-bottom: 8px;
}

.mn-expert-card__url a {
  color: var(--color-primary-dark2);
}

.mn-expert-card__url a:hover {
  text-decoration: underline;
}

/* CTAボタン */
.mn-art-expert__cta {
  display: flex;
  justify-content: flex-end;
  margin: 0 auto;
  max-width: var(--content-max);
}

.mn-art-expert__cta-btn {
  align-items: center;
  background: var(--color-primary);
  border-radius: 48px;
  color: #fff;
  display: inline-flex;
  font-size: var(--fs-18);
  font-weight: 600;
  gap: 8px;
  height: 40px;
  line-height: 1.5;
  padding: 0 16px;
  text-decoration: none;
  white-space: nowrap;
}

.mn-art-expert__cta-btn:hover {
  background: var(--color-primary-dark2);
  color: #fff;
}

.mn-art-expert__cta-arrow {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

@media (min-width: 768px) {
  .mn-art-expert {
    padding: 96px 0;
  }

  .mn-art-expert__ttl {
    font-size: var(--fs-36);
  }

  .mn-art-expert__desc {
    text-align: center;
  }

  .mn-art-expert__list {
    align-items: stretch;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
  }

  .mn-expert-card {
    width: calc((100% - 24px * 3) / 4);
  }

  .mn-expert-card__img-wrap {
    /* max-height: 236px; */
    aspect-ratio: 1/1;
  }

  .mn-expert-card__img {
    transform: scale(1.2);
    transform-origin: center;
  }
}

/* ===== 運営者情報・コンテンツポリシー ===== */
.mn-info-hero {
  padding: 40px 16px 16px;
}

.mn-info__desc {
  font-size: var(--fs-18);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
}

/* ===== 運営者情報ボックス ===== */
.mn-info-box-wrap {
  margin-bottom: 0;
  padding: 0 16px 40px;
}

.mn-info-box {
  background: var(--color-bg);
  border-radius: 10px;
  border: 1px solid var(--color-border-primary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  margin: 0 auto;
  max-width: var(--content-max);
  overflow: hidden;
}

.mn-info-box__item {
  border-bottom: 1px solid var(--color-border-primary);
  font-size: var(--fs-16);
  line-height: 1.7;
  padding: 16px;
}

.mn-info-box a {
  color: var(--color-primary);
}

.mn-info-box a:hover {
  text-decoration: underline;
}

.mn-info-box__item:last-child {
  border-bottom: none;
}

h2.mn-info__ttl {
  align-items: center;
  background: var(--color-primary-dark2);
  color: var(--color-text-white);
  display: flex;
  font-size: var(--fs-18);
  font-weight: 600;
  height: 60px;
  line-height: 1.5;
  margin: 0;
  padding: 0 16px;
}

h3.mn-info-box__ttl {
  color: var(--color-primary-dark2);
  font-size: var(--fs-16);
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 8px;
}

/* ===== 定義テーブル ===== */
.mn-def-tbl {
  margin: 0;
}

.mn-def-tbl table th {
  background: var(--color-bg);
  color: var(--color-primary-dark2);
  text-align: left;
  width: 24%;
}

.mn-def-tbl table tr:last-child th,
.mn-def-tbl table tr:last-child td {
  border-bottom: none;
}

@media (min-width: 768px) {
  .mn-info-hero {
    padding: 96px 0 40px;
  }

  .mn-info__desc {
    margin: 0 auto;
    max-width: var(--content-max);
    padding: 0 32px;
    text-align: center;
  }

  .mn-info-box-wrap {
    padding: 0 0 96px;
  }

  .mn-info-box {
    border-radius: 8px;
  }

  .mn-info-box__item {
    padding: 16px 32px;
  }

  h2.mn-info__ttl {
    font-size: var(--fs-20);
    padding: 0 28px;
  }

  .mn-def-tbl table th {
    width: 20%;
  }
}

.mn-about-intro {
  padding: 40px 16px;
}

@media (min-width: 768px) {
  .mn-about-intro {
    padding: 96px 0;
  }
}


/* サービステーマ */
/* 関連情報 */
.mn-themastag .wp-block-button__link {
  background-color: var(--color-bg);
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 50px;
  font-size: var(--fs-20);
  font-weight: 600;
  padding: 9px 25px;
  min-width: unset;
}

.mn-themastag {
  gap: 16px;
  flex-direction: row;
}

.mn-themastag a:hover {
  background-color: var(--color-primary);
  color: var(--color-text-white);
  border-color: var(--color-primary);
}

@media (min-width: 768px) {
  .mn-themastag .wp-block-button__link {
    background-color: var(--color-bg);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 50px;
    font-size: var(--fs-20);
    font-weight: 600;
    padding: 9px 28px;
    min-width: 200px;
    line-height: 150%;
  }

  .mn-themastag {
    gap: 40px;
  }
}

/* ===== 404 ===== */
.error404 .main {
  margin: 0;
}

.error404 .sidebar {
  display: none;
}

.error404 .mn-breadcrumb {
  display: none;
}

.error404 .mn-breadcrumb--404 {
  padding: .5rem 1rem;
}

.error404 .mn-breadcrumb__list--404 {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  list-style: none;
  padding: 0;
  margin: 0;
  white-space: nowrap;
  overflow-x: auto;
}

.error404 .mn-breadcrumb__item--404 {
  display: flex;
  align-items: center;
}

/* 既存のプロパティ引用　*/
.error404 .mn-breadcrumb__item--404::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-right: 1.5px solid var(--color-text-crumb);
  border-top: 1.5px solid var(--color-text-crumb);
  transform: rotate(45deg);
  margin: 0 .3125rem .0625rem;
  flex-shrink: 0;
}

.error404 .mn-breadcrumb__item--404:last-child::after {
  content: none;
}

.error404 .mn-breadcrumb__link--404 {
  font-size: var(--fs-12);
  font-weight: 300;
  color: var(--color-text-crumb);
  text-decoration: underline;
  line-height: 1.7;
}

.error404 .mn-breadcrumb__current--404 {
  font-size: var(--fs-12);
  font-weight: 600;
  color: var(--color-text-crumb);
  line-height: 1.7;
}

.error404 .mn-404__section {
  padding: 2.5rem 0;
}

.error404 .mn-404__inr {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  padding: 1.5rem 1rem;
  max-width: 1120px;
  margin: 0 auto;
}

.error404 .mn-404__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.error404 .mn-404__picture {
  order: -1;
  width: 8.5rem;
  position: absolute;
  right: 1rem;
  top: 1.5rem;
}

.error404 .mn-404__title {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
}

.error404 .mn-404__lead {
  font-size: var(--fs-18);
  line-height: 1.7;
  margin: 1rem 0 1.5rem;
}

.error404 .mn-404__lead a {
  color: var(--color-primary);
}

.error404 .mn-404__link {
  font-weight: 600;
  display: block;
  border-radius: 2rem;
  line-height: 1.5;
  border: 2px solid var(--color-primary);
  background: var(--color-bg);
  color: var(--color-primary);
  text-decoration: none;
  font-size: var(--fs-18);
  width: 10rem;
  text-align: center;
  padding: .281rem 0;
  margin: 0 auto;
}

.error404 .mn-404__link:hover {
  color: var(--color-text-white);
  background: var(--color-primary);
}

@media (min-width: 768px) {
  .error404 .mn-breadcrumb--404 {
    margin: 0 auto;
    padding: 8px 0;
    max-width: var(--content-max);
  }

  .error404 .mn-breadcrumb__link--404 {
    font-size: var(--fs-14);
  }

  .error404 .mn-breadcrumb__current--404 {
    font-size: var(--fs-14);
  }

  .error404 .mn-404__section {
    padding: 6rem 0;
  }

  .error404 .mn-404__body {
    grid-column: 1;
  }

  .error404 .mn-404__title {
    font-size: 3rem;
  }

  .error404 .mn-404__lead {
    margin: 1rem 0 3rem;
  }

  .error404 .mn-404__link {
    font-size: var(--fs-20);
    width: 16rem;
    padding: 7px 0;
    height: 3rem;
    margin: 0;
  }

  .error404 .mn-404__picture {
    grid-column: 2;
    order: 0;
    width: 13.635rem;
    position: relative;
    right: auto;
    top: auto;
  }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  .error404 .mn-404__inr {
    gap: 2.5rem;
    padding: 2.5rem;
    grid-template-columns: 60% auto;
    align-items: center;
  }
}

@media (min-width: 1024px) {
  .error404 .mn-404__inr {
    padding: 2.5rem 2.5rem 2.5rem 6.875rem;
    grid-template-columns: 40rem auto;
  }
}

/* お問い合わせ */
.mn-contact {
  width: 100%;
  /* height: 2350px; */
}

@media (min-width: 768px) {
  .mn-contact {
    width: 100%;
    /* height: 2250px; */
  }
}
