/*------------------------------------------------ 

下層メイン

------------------------------------------------*/
.under_main {
  position: relative;
  width: 100%;
  height: 400px; /* 画像の縦幅を調整 */
  background-image: url('../images/under/under_main.png'); /* ←画像URLに変更 */
  background-size: cover;
  background-position: center center;
	background-position: 50% 65px;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
}

.under_main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35); /* 黒い半透明のオーバーレイ */
}

.under_main_inner {
  position: relative;
  z-index: 2;
}

.under_main_ttl {
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
  margin-top: 30px;
}

.under_main_sub {
	font-size: 2rem;
	opacity: 0.4;
	color: #fff;
	line-height: 1;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
  .under_main {
    height: 260px;
  }
  .under_main_ttl {
    font-size: 1.6rem;
	  margin-top: 50px;
  }
  .under_main_sub {
    font-size: 1rem;
  }
}
/*------------------------------------------------ 

パンくずリスト

------------------------------------------------*/
/* ========== Breadcrumb 基本 ========== */
.breadcrumb {
  --bc-text: #374151;         /* 文字色 */
  --bc-muted: #6b7280;        /* サブ/区切り色 */
  --bc-link: #2563eb;         /* リンク色 */
  --bc-link-hover: #1d4ed8;   /* リンクhover */
  --bc-bg: transparent;       /* 背景 */
  --bc-sep-size: 6px;         /* ▶のサイズ */
  --bc-gap: 10px;             /* 要素間ギャップ */

  background: var(--bc-bg);
  font-size: clamp(.88rem, 1.6vw, .95rem);
  color: var(--bc-text);
  line-height: 1.6;
}

/* 横スクロールで崩れ防止（SP） */
.breadcrumb__inner {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
}
.breadcrumb__inner::-webkit-scrollbar {
  height: 6px;
}
.breadcrumb__inner::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.15);
  border-radius: 6px;
}

/* リスト */
.breadcrumb__list {
  display: inline-flex;
  align-items: center;
  gap: var(--bc-gap);
  padding: 8px 0;
  white-space: nowrap;
}

/* 各アイテム */
.breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: var(--bc-gap);
  color: var(--bc-muted);
}

/* 区切り（▶） */
.breadcrumb__item + .breadcrumb__item::before {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-top: var(--bc-sep-size) solid transparent;
  border-bottom: var(--bc-sep-size) solid transparent;
  border-left: var(--bc-sep-size) solid var(--bc-muted);
  opacity: .7;
}

/* リンク */
.breadcrumb__link {
  color: var(--bc-link);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.breadcrumb__link:hover {
  color: var(--bc-link-hover);
  text-decoration: underline;
}
.breadcrumb__link:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--bc-link) 60%, white);
  outline-offset: 2px;
  border-radius: 4px;
}

/* 末尾（現在地）はリンク解除スタイル & 省略に強い */
.breadcrumb__current {
  color: var(--bc-text);
  font-weight: 600;
  max-width: min(60vw, 520px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ========== カラーバリエ（任意） ========== */
/* グレー・控えめ */
.breadcrumb--muted {
  --bc-link: #4b5563;
  --bc-link-hover: #374151;
}
/* 反転（濃色背景に載せる場合） */
.breadcrumb--invert {
  --bc-text: #f3f4f6;
  --bc-muted: #cbd5e1;
  --bc-link: #93c5fd;
  --bc-link-hover: #bfdbfe;
  --bc-bg: transparent;
}

/* ========== レイアウト補助（任意） ========== */
.breadcrumb .home-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: .35em;
  transform: translateY(1px);
  opacity: .9;
}

/* コンテンツ幅に合わせたい場合 */
.container .breadcrumb {
  padding-left: clamp(12px, 2vw, 16px);
  padding-right: clamp(12px, 2vw, 16px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

/* ========== 印刷最適化（任意） ========== */
@media print {
  .breadcrumb__inner { overflow: visible; mask-image: none; }
  .breadcrumb__current { max-width: none; }
}
/*------------------------------------------------ 

共通

------------------------------------------------*/
.medical_wrap {
  width: 100%;
  margin: auto;
}
.center {
  text-align: center;
}
.medical_wrap section {
  padding: 0;
}
.inner {
  width: 80%;
  margin: auto;
  padding: 50px 0;
}
.inner.first {
	padding: 0 10px 50px;
}
.bg01 {
  background: #eff4f9;
}
.bg02 {
  position: relative;
  overflow: hidden;
}
.bg03 {
	background: #effbff;
}

.bg02::before {
    content: "";
    position: absolute;
    top: 0;
    right: -215px;
    width: 700px;
    height: 700px;
    background-image: url(../images/under/bg-image01.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    opacity: 0.7;
    z-index: 0;
    pointer-events: none;
}
.bg02::after {
  content: "";
  position: absolute;
  left: -215px;
  bottom: -215px;

  width: 700px;
  height: 700px;

  background-image: url(../images/under/bg-image02.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;

  opacity: 0.7;
  z-index: 0;
  pointer-events: none;
}

/* 中身は必ず前面に */
.bg02 > * {
  position: relative;
  z-index: 1;
}

p.catch {
  font-size: 21px;
  margin-bottom: 10px;
}

/*----------- マーカーデザイン -----------*/
.marker-safe {
  background: linear-gradient(to bottom, transparent 55%, #d9e0e794 55%);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 .05em;
  font-weight: 700;
}
/*----------- 比較表 -----------*/
.comparison-table table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 24px;
}

.comparison-table th,
.comparison-table td {
  border: 1px solid #e5e7eb;
  padding: 14px;
  vertical-align: top;
  font-size: 14px;
  line-height: 1.6;
}

.comparison-table thead th {
  background: #f8fafc;
  text-align: center;
  font-weight: 600;
}

.comparison-table tbody th {
  background: #f1f5f9;
  width: 22%;
  font-weight: 600;
}

/* ===== スマホ ===== */
@media screen and (max-width: 768px) {
  p.catch {
  font-size: 18px;
}
  .comparison-table table,
  .comparison-table thead,
  .comparison-table tbody,
  .comparison-table tr,
  .comparison-table th,
  .comparison-table td {
    display: block;
  }

  .comparison-table thead {
    display: none;
  }

  .comparison-table tr {
    margin-bottom: 24px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
  }

  /* 比較項目 */
  .comparison-table tbody th {
    background: #e2e8f0;
    font-weight: 700;
    text-align: center;
    width: 100%;
  }

  /* ワイヤー矯正 / インビザライン 表示 */
  .comparison-table td {
    position: relative;
    padding-top: 36px;
  }

  .comparison-table td::before {
    content: attr(data-label);
    position: absolute;
    top: 8px;
    left: 14px;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
  }
}



/* ------------------  スマホ対応 ------------------ */
@media screen and (max-width: 768px) {
  .medical_wrap {
  width: 100%;
  padding: 0;
}
.inner {
  width: 100%;
  padding: 50px 15px;
}
}
/*------------------------------------------------ 

見出し

------------------------------------------------*/

:root {
  --bc-text: #f3f4f6;
  --bc-muted: #cbd5e1;
  --bc-link: #4b5563;
  --bc-link-hover: #374151;
  --bc-bg: transparent;
}

/* ======================================
   H2：角のラインで囲う、上品フレーム見出し
====================================== */
.medical_h2 {
  position: relative;
  display: inline-block;
  padding: 0.7em 1em;
  margin: 2.4em 0 1.6em;
  color: var(--bc-link-hover);
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* 上下に極細ライン（全部囲わず、枠感を抑える） */
.medical_h2::before,
.medical_h2::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    rgba(148, 163, 184, 0.0) 0%,
    rgba(148, 163, 184, 0.8) 20%,
    rgba(148, 163, 184, 0.8) 80%,
    rgba(148, 163, 184, 0.0) 100%
  );
}

.medical_h2::before {
  top: 0;
}
.medical_h2::after {
  bottom: 0;
}

/* 左上・右下だけに角のラインをちょっとだけ入れて“デザイン感” */
.medical_h2 span {
  position: relative;
  display: inline-block;
  padding: 0.1em 0;
}


/* ------------------  スマホ対応 ------------------ */
@media screen and (max-width: 768px) {
  .medical_h2 {
    font-size: 1.3rem;
  }
}


/* ======================================
   H3：細い縦線＋淡い背景グラデーション
====================================== */
.medical_h3 {
  position: relative;
  margin: 2em 0 1em;
  padding: 0.6em 0.9em 0.6em 1.4em;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--bc-link-hover);
  letter-spacing: 0.04em;
  background: linear-gradient(to right, #ddedf9, rgb(119 168 227 / 0%));
  border-radius: 999px;
}

/* .medical_h3::before {
  content: "";
  position: absolute;
  left: 0.65em;
  top: 0.4em;
  width: 2px;
  height: calc(100% - 0.8em);
  border-radius: 999px;
  background: linear-gradient(
    to bottom,
    var(--bc-link-hover),
    rgba(55, 65, 81, 0.2)
  );
} */

/* ------------------  スマホ対応 ------------------ */
@media screen and (max-width: 768px) {
  .medical_h3 {
    font-size: 1rem;
    padding: 10px 15px;
    text-align: center;
    margin: 0 0 20px;
  }
}
/* ======================================
   H4：テキスト下にだけ引く細い「下線タブ」
====================================== */
.medical_h4 {
  position: relative;
  display: inline-block;
  margin: 1.6em 0 0.8em;
  padding-bottom: 0.35em;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--bc-link);
  letter-spacing: 0.03em;
}

/* 下線をテキスト幅だけに、ふわっと敷く */
.medical_h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(
    to right,
    rgba(148, 163, 184, 0.0),
    rgba(148, 163, 184, 0.7),
    rgba(148, 163, 184, 0.0)
  );
  border-radius: 999px;
}
@media screen and (max-width: 768px) {
.medical_h4 {
	display: block;
    margin: 1.6em auto 0.8em;
    text-align: center;
}
}

/*------------------------------------------------ 

画像と文章の横並び

------------------------------------------------*/
.under_flex {
  display: flex;
  gap: 10px;
}
.img_box {
    flex: 2;
    margin: auto;
}
.img_box img{
  margin: auto;
}
.txt_box {
    flex: 3;
    margin: auto;
}

/* ------------------ スマホ対応 ------------------ */
@media screen and (max-width: 768px) {
  .under_flex {
    flex-direction: column;
}
  .img_box {
    order: 1;
    margin-bottom: 10px;
  }
  .txt_box {
    order: 2;
  }
}
/*------------------------------------------------ 

横並びの下のテキスト

------------------------------------------------*/
.column_under {
  background: #f0f9ff;
  padding: 15px;
}
/* ------------------ スマホ対応 ------------------ */
@media screen and (max-width: 768px) {
  .column_under {
  padding: 10px;
}
}
/*------------------------------------------------ 

種類3つカード型

------------------------------------------------*/
:root {
  --bc-text: #f3f4f6;
  --bc-muted: #cbd5e1;
  --bc-link: #4b5563;
  --bc-link-hover: #374151;
  --bc-bg: transparent;
}

/* セクション余白 */
.content-cards {
  margin: 3rem 0 3.5rem;
}

/* カードグリッド */
.content-cards__grid {
  display: grid;
  gap: 10px;
  margin-top: 1.6rem;
}

/* PC=3 / タブレット=2 / SP=1 */
@media (min-width: 1024px) {
  .content-cards__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .content-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===== カード本体 ===== */
.content-card {
  position: relative;
  height: 100%;
  padding: 1.6rem 1.5rem 1.7rem;
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, 0.5);
  box-shadow:
    0 10px 25px rgba(15, 23, 42, 0.05),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

/* 上辺アクセントライン */
.content-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    to right,
    rgba(148, 163, 184, 0.0),
    rgba(148, 163, 184, 0.85),
    rgba(148, 163, 184, 0.0)
  );
  height: 3px;
  top: 0;
  left: 14px;
  right: 14px;
  margin: 0 auto;
  pointer-events: none;
}

/* 角の丸い飾り */
.content-card::after {
  content: "";
  position: absolute;
  width: 26px;
  height: 26px;
  right: -6px;
  bottom: -6px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.35);
  opacity: 0.35;
}

/* hover */
/* .content-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 16px 30px rgba(15, 23, 42, 0.09),
    0 0 0 1px rgba(148, 163, 184, 0.4) inset;
  border-color: rgba(148, 163, 184, 0.8);
} */

/* ラベル */
.content-card__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  padding: 0.18rem 0.8rem;
  margin-bottom: 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bc-link-hover);
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, 0.7);
  background: linear-gradient(
    to right,
    rgba(248, 250, 252, 0.9),
    rgba(226, 232, 240, 0.9)
  );
}

/* タイトル */
.content-card__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 0.7rem;
  line-height: 1.5;
}

/* テキスト */
.content-card p {
  font-size: 0.95rem;
  line-height: 1.9;
  margin: 0 0 0.55rem;
}

.content-card p:last-of-type {
  margin-bottom: 0.1rem;
}

/* SP用微調整 */
@media (max-width: 767.98px) {
  .content-card {
    padding: 1.4rem 1.25rem 1.5rem;
    border-radius: 16px;
  }
}


/* --------------------------------------------------------------------- */
:root {
  --bc-text: #f3f4f6;
  --bc-muted: #cbd5e1;
  --bc-link: #4b5563;
  --bc-link-hover: #374151;
  --bc-bg: transparent;
}

/* セクション全体 */
.symptom-section {
  margin: 3rem 0 3.5rem;
}

/* イントロテキスト */
.symptom-section__intro {
  max-width: 900px;
  margin: 0 auto 2rem;
  font-size: 0.98rem;
  line-height: 1.9;
  color: var(--bc-link);
}

/* カードグリッド */
.symptom-grid {
  display: grid;
  gap: 1.8rem;
}
/* 要素が4つのときだけ2カラムにする */
.symptom-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* PC：3列 / タブレット：2列 / SP：1列 */
@media (min-width: 1024px) {
  .symptom-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .symptom-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* カード本体 */
.symptom-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #ffffff;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, 0.55);
  box-shadow:
    0 10px 26px rgba(15, 23, 42, 0.06),
    0 0 0 1px rgba(255, 255, 255, 0.7) inset;
  overflow: hidden;
  position: relative;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

/* 上部アクセントライン（上品に控えめ） */
.symptom-card::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 0;
  height: 3px;
  border-radius: 999px;
	background: linear-gradient(to right, rgba(148, 163, 184, 0.0), rgb(109 186 195 / 75%), rgba(148, 163, 184, 0.0));
  pointer-events: none;
}

/* カード内タイトル */
.symptom-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bc-link-hover);
  padding: 0.95rem 1.2rem 0.4rem;
  margin: 0;
  letter-spacing: 0.03em;
}

/* カード内画像 */
.symptom-card__img {
  margin: 0 1.2rem;
  border-radius: 14px;
  overflow: hidden;
  width: 60%;
  margin: 10px auto;
}

.symptom-card__img img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.symptom-card__img.is-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 23%;
  height: auto;
  background:#f4f7f4;
  border-radius:50%;
  padding: 20px;
}
/* symptom-grid の子要素が4つのときだけ */
.symptom-grid:has(> :nth-child(4)):not(:has(> :nth-child(5)))
.symptom-card__img.is-icon {
    width: 15%;
}
.symptom-card__img.is-icon i{
	font-size:45px;
	color:#90cbd5;
}


/* 説明テキスト部分 */
.symptom-card__body {
  padding: 0.9rem 1.2rem 1.3rem;
}

.symptom-card__body p {
  font-size: 0.94rem;
  line-height: 1.9;
  color: var(--bc-link);
  margin: 0 0 0.4rem;
}

.symptom-card__body p:last-of-type {
  margin-bottom: 0;
}

/* SP微調整 */
@media (max-width: 767.98px) {
  .symptom-card {
    border-radius: 16px;
  }

  .symptom-card__title {
    padding: 0.85rem 1rem 0.35rem;
    text-align: center;
  }

  .symptom-card__img {
    margin: 0 auto;
  }

  .symptom-card__body {
    padding: 0.9rem 1rem 1.1rem;
  }
  .symptom-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .symptom-grid:has(> :nth-child(4)):not(:has(> :nth-child(5))) .symptom-card__img.is-icon {
    width: 23%;
}
}

/* ------------------------------------------------- よくある質問 ------------------------------------------------- */
.faq-section {
  margin: 3rem 0 3.5rem;
}

/* .faq-list {
  max-width: 900px;
  margin: 1.5rem auto 0;
} */

.faq-item {
  border: 1px solid rgba(148, 163, 184, .6);
  border-radius: 14px;
  margin-bottom: 1rem;
  background: #fff;
  overflow: hidden;
}
.faq-item {
  position: relative;
  border: 1px solid rgba(148, 163, 184, .6);
  border-radius: 14px;
  margin-bottom: 1rem;
  background: #fff;
  overflow: hidden;
  z-index: 1;
}

.faq-item::before {
  content: "";
  position: absolute;
  top: 6px;      /* ここでずらし量を調整 */
  left: 6px;
  width: 100%;
  height: 100%;
  background: #f1f5f9; /* 背景色 */
  border-radius: 14px;
  z-index: -1;
}
.faq-item.colbe::before {
  content: "";
  position: absolute;
  top: 6px;      /* ここでずらし量を調整 */
  left: 6px;
  width: 100%;
  height: 100%;
  background: #EBE6E4; /* 背景色 */
  border-radius: 14px;
  z-index: -1;
}

.faq-item summary {
  cursor: pointer;
  padding: 1rem 1.2rem;
  list-style: none;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item h3 {
  font-size: 1rem;
  margin: 0;
  color: #374151;
}

.faq-answer {
  padding: .8rem 1.2rem 1.2rem;
  border-top: 1px solid rgba(148, 163, 184, .4);
}

.faq-answer p {
  font-size: .95rem;
  line-height: 1.9;
  margin: 0;
  color: #4b5563;
}

/* 開閉アニメーション */
details[open] {
  box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

/* ------------------------------------------------- 子どもの矯正 ------------------------------------------------- */
/* =========================
   MFT WORRIES (refined)
   ========================= */
.mft-worries{
  --pink:#f6e9e9;
  --pink2:#f2dfdf;
  --ink:#2f3b44;
  --muted:#6b7a86;
  --line:rgba(47,59,68,.18);
  --blue:#7f96a6;
  --tileBorder:rgba(255,255,255,.58);
  --shadow:0 16px 40px rgba(0,0,0,.08);
  --radius:22px;

  color:var(--ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height:1.85;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.mft-worries *{ box-sizing:border-box; }
.mft-worries__inner{
  width:min(1080px, calc(100% - 40px));
  margin-inline:auto;
}

/* ===== Top ===== */
.mft-worries__top{
  background:linear-gradient(180deg, var(--pink) 0%, var(--pink2) 100%);
  position:relative;
  padding:64px 0 36px;
  overflow:hidden;
}
.mft-worries__eyebrow{
  text-align:center;
  color:var(--muted);
  letter-spacing:.12em;
  font-size:12.5px;
  margin:0 0 10px;
}
.mft-worries__titleWrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}
.mft-worries__title{
  margin:0;
  font-size:22px;
  letter-spacing:.14em;
  font-weight:650;
}
.mft-worries__dash{
  display:block;
  width:min(560px, 92%);
  margin:18px auto 0;
  border-top:1px dashed rgba(47,59,68,.22);
}
.mft-worries__lead{
  margin:28px 0 18px;
  text-align:center;
  letter-spacing:.10em;
  color:var(--muted);
  font-size:14px;
}

/* Leaf ornaments */
.mft-worries__leaf,
.mft-worries__miniLeaf{
  display:inline-block;
  width:20px; height:20px;
  border:1px solid rgba(107,122,134,.55);
  border-radius:18px 0 18px 0;
  transform:rotate(18deg);
  position:relative;
  opacity:.9;
}
.mft-worries__leaf::after,
.mft-worries__miniLeaf::after{
  content:"";
  position:absolute;
  inset:3px 6px 5px 4px;
  border-left:1px solid rgba(107,122,134,.45);
  transform:rotate(-18deg);
}
.mft-worries__leaf--l{ transform:rotate(-12deg); }
.mft-worries__leaf--r{ transform:rotate(18deg); }
.mft-worries__miniLeaf{
  width:14px; height:14px;
  border-radius:14px 0 14px 0;
  transform:rotate(10deg);
  margin-right:8px;
  vertical-align:-2px;
}

/* ===== Mosaic (grid-based) ===== */
/* .mft-worries__mosaic{
  position:relative;
  width:min(900px, 100%);
  margin:0 auto;
  border-radius:26px;
  overflow:hidden;
  background:#ead7d4;
  box-shadow: var(--shadow);
  aspect-ratio: 16/9;
  min-height: 340px;
  isolation:isolate;
} */
/* .mft-worries__mosaicPhoto{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.95) contrast(.96);
  transform:scale(1.02);
} */


/* tiles wrapper */
.mft-worries__tiles{
  /* position:absolute; */
  inset:0;
  z-index:2;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  /* grid-template-rows: 1fr 1fr; */
  gap:10px;
  padding:18px;
  align-content:center;
}

.mft-worries__tile{
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:12px 10px;
  font-weight:650;
  letter-spacing:.06em;
  color:#fff;
  background:linear-gradient(0deg, rgba(61,40,35,.40), rgba(61,40,35,.36));
  border:1px solid var(--tileBorder);
  border-radius:16px;
  backdrop-filter: blur(2px);
  box-shadow:0 10px 18px rgba(0,0,0,.10);
  line-height:1.45;
  font-size:1rem;
}
.mft-worries__tile small{
  display:block;
  font-weight:600;
  opacity:.92;
  font-size:12px;
  letter-spacing:.04em;
  margin-top:3px;
}

/* 下段は中央寄せの“3枚”に見えるように、真ん中3列に配置 */
.mft-worries__tiles .mft-worries__tile:nth-child(5){ grid-column: 2 / span 1; }
.mft-worries__tiles .mft-worries__tile:nth-child(6){ grid-column: 3 / span 1; }
.mft-worries__tiles .mft-worries__tile:nth-child(7){ grid-column: 4 / span 1; }
/* 5〜7は2段目 */
.mft-worries__tiles .mft-worries__tile:nth-child(n+5){ grid-row:2; }

/* arrow */
.mft-worries__arrowWrap{
  margin:20px auto 0;
  width:min(560px, 95%);
  text-align:center;
  color:var(--muted);
}
.mft-worries__arrowText{
  margin:0 0 10px;
  letter-spacing:.10em;
  font-size:14px;
}
.mft-worries__arrow{
  display:inline-block;
  width:22px; height:22px;
  border-right:2px solid rgba(107,122,134,.60);
  border-bottom:2px solid rgba(107,122,134,.60);
  transform:rotate(45deg);
  margin-bottom:2px;
}

/* curve */
.mft-worries__curve{
  height:90px;
  background:linear-gradient(180deg, var(--pink2) 0%, #fff 100%);
  border-bottom-left-radius: 80% 100%;
  border-bottom-right-radius: 80% 100%;
  transform:translateY(44px);
}

/* ===== Bottom ===== */
.mft-worries__bottom{
  background:#fff;
  padding:64px 0 78px;
}

/* badges */
.mft-worries__badges{
  list-style:none;
  padding:0;
  margin:0 auto 18px;
  display:flex;
  flex-wrap:wrap;
  gap:18px 22px;
  justify-content:center;
  max-width:700px;
}
.mft-worries__badge{
  width:150px;
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  font-weight:750;
  letter-spacing:.06em;
  font-size:1rem;
  line-height:1.2;
  background:var(--blue);
  box-shadow:0 12px 22px rgba(0,0,0,.10);

  /* scallop mask */
  -webkit-mask:
    radial-gradient(circle at 50% 8px, #0000 10px, #000 10.5px) top/100% 25% repeat-x,
    radial-gradient(circle at 8px 50%, #0000 10px, #000 10.5px) left/25% 100% repeat-y,
    radial-gradient(circle at 50% calc(100% - 8px), #0000 10px, #000 10.5px) bottom/100% 25% repeat-x,
    radial-gradient(circle at calc(100% - 8px) 50%, #0000 10px, #000 10.5px) right/25% 100% repeat-y,
    linear-gradient(#000 0 0);
          mask:
    radial-gradient(circle at 50% 8px, #0000 10px, #000 10.5px) top/100% 25% repeat-x,
    radial-gradient(circle at 8px 50%, #0000 10px, #000 10.5px) left/25% 100% repeat-y,
    radial-gradient(circle at 50% calc(100% - 8px), #0000 10px, #000 10.5px) bottom/100% 25% repeat-x,
    radial-gradient(circle at calc(100% - 8px) 50%, #0000 10px, #000 10.5px) right/25% 100% repeat-y,
    linear-gradient(#000 0 0);
}
.mft-worries__impact{
  text-align:center;
  letter-spacing:.10em;
  color:var(--muted);
  margin:10px 0 30px;
}

/* ===== Content layout ===== */
/* .mft-worries__content{
  display:grid;
  grid-template-columns: 1.12fr .88fr;
  gap:32px;
  align-items:start;
} */
.mft-worries__copy{
  background:#fff;
}
.mft-worries__h3{
  margin:0 0 14px;
  font-size:18px;
  letter-spacing:.06em;
  position:relative;
  padding-left:14px;
}
.mft-worries__h3::before{
  content:"";
  position:absolute;
  left:0; top:.62em;
  width:8px; height:8px;
  background:var(--blue);
  border-radius:999px;
}
.mft-worries__p{ margin:0 0 14px; }

.mft-worries__list{
  margin:12px 0 18px;
  padding:0;
  list-style:none;
}
.mft-worries__list li{
  position:relative;
  padding-left:22px;
  margin:8px 0;
  color:var(--ink);
}
.mft-worries__list li::before{
  content:"";
  position:absolute;
  left:0; top:.75em;
  width:10px; height:10px;
  border:1px solid rgba(127,150,166,.7);
  border-radius:3px;
  transform:translateY(-50%);
}

.mft-worries__note{
  color:var(--muted);
  background:linear-gradient(180deg, rgba(127,150,166,.10), rgba(127,150,166,.04));
  border:1px solid rgba(127,150,166,.20);
  padding:14px 16px;
  border-radius: var(--radius);
  margin:0 0 18px;
}

.mft-worries__callout{
  background:rgba(245,230,230,.55);
  border:1px solid rgba(47,59,68,.12);
  border-radius:26px;
  padding:18px 18px 16px;
  box-shadow:0 10px 26px rgba(0,0,0,.05);
}
.mft-worries__h4{
  margin:0 0 10px;
  font-size:15px;
  letter-spacing:.05em;
}
.mft-worries__list--check li::before{
  width:12px; height:12px;
  border-radius:999px;
  border:none;
  background:rgba(127,150,166,.98);
  box-shadow:0 0 0 3px rgba(127,150,166,.22);
}
.mft-worries__end{
  margin:14px 0 0;
  font-weight:650;
}

/* ===== About card ===== */
.mft-worries__aboutCard{
  border:1px solid rgba(47,59,68,.12);
  border-radius:28px;
  padding:18px;
  background:#fff;
  box-shadow: var(--shadow);
  position:sticky;
  top:18px;
}
.mft-worries__aboutPhoto{
  width:160px;
  aspect-ratio:1/1;
  border-radius:999px;
  overflow:hidden;
  margin:0 auto 12px;
  box-shadow:0 14px 24px rgba(0,0,0,.12);
}
.mft-worries__aboutPhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.mft-worries__aboutHead{
  margin:0 0 10px;
  text-align:center;
  font-weight:800;
  letter-spacing:.06em;
  color:var(--ink);
}
.mft-worries__aboutText{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.85;
}

/* ===== Responsive ===== */
@media (max-width: 980px){
  .mft-worries__content{ grid-template-columns:1fr; }
  .mft-worries__aboutCard{ position:static; }
}

@media (max-width: 720px){
  .mft-worries__top{ padding:52px 0 30px; }
  .mft-worries__title{ font-size:19px; }
  /* .mft-worries__mosaic{ aspect-ratio: 4/3; min-height: 360px; } */

  /* タイル：スマホは2列×複数段で読みやすく */
  .mft-worries__tiles{
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap:10px;
    padding:0;
    align-content:end;
  }
  .mft-worries__tiles .mft-worries__tile:nth-child(5),
  .mft-worries__tiles .mft-worries__tile:nth-child(6),
  .mft-worries__tiles .mft-worries__tile:nth-child(7){
    grid-column:auto;
    grid-row:auto;
  }
}

@media (max-width: 420px){
  .mft-worries__inner{ width: calc(100% - 15px); }
	.mft-worries__tile{ font-size:13px; border-radius:14px; }
/*   .mft-worries__tile small{ font-size:11px; } */
  .mft-worries__badge{ width:65px; font-size:12px; }
}
/* =========================
   FLOW (timeline)
   ========================= */
section.p-flow{
	margin:0 0 30px;
}
.p-flow{
  --bg:#f6e9e9;
  --ink:#2f3b44;
  --muted:#6b7a86;
  --line:#7f96a6;
  --dash:rgba(127,150,166,.55);
  --card:rgba(255,255,255,.0);
  --shadow:0 16px 44px rgba(0,0,0,.08);

  color:var(--ink);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height:1.9;
  background:linear-gradient(180deg, #f0f9ff 0%, #fff 36%);
  padding:70px 0 90px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.p-flow *{ box-sizing:border-box; }
.p-flow__inner{
  width:min(1120px, calc(100% - 40px));
  margin-inline:auto;
}
.p-flow__title{
  margin:0 0 28px;
  text-align:center;
  letter-spacing:.08em;
  font-size:22px;
  font-weight:700;
}

/* list layout */
.p-flow__list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:0;
}
.p-flow__item{
  display:grid;
  grid-template-columns: 220px 1fr;
  column-gap:34px;
  align-items:stretch;
}

/* left rail */
.p-flow__rail{
  position:relative;
  padding-top:10px;
  display:flex;
  justify-content:center;
}
.p-flow__dot{
  width:126px;
  aspect-ratio:1/1;
  border-radius:999px;
  background:var(--line);
  display:grid;
  place-items:center;
  box-shadow:0 14px 26px rgba(0,0,0,.10);
  position: absolute;
  z-index:2;
}
.p-flow__dotTxt{
  text-align:center;
  color:#fff;
  font-weight:800;
  letter-spacing:.06em;
  font-size:14px;
  line-height:1.2;
  padding:0 10px;
}
.p-flow__line{
  position:absolute;
  top:40px;
  bottom:-10px;
  width:2px;
  background:rgba(127,150,166,.65);
  left:50%;
  transform:translateX(-50%);
  z-index:1;
}
.p-flow__line--end{
  bottom:15px; /* leave room for arrow */
}
.p-flow__arrowEnd{
  position:absolute;
  left:50%;
  bottom:16px;
  width:18px;
  height:18px;
  border-right:2px solid rgba(127,150,166,.70);
  border-bottom:2px solid rgba(127,150,166,.70);
  transform:translateX(-50%) rotate(45deg);
}

/* right body */
.p-flow__body{
  padding-top:10px;
}
.p-flow__row{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:26px;
  align-items:center;
  padding:18px 0 30px;
}
.p-flow__row--stack{
  gap:18px;
  align-items:start;
}
.p-flow__text{
  color:var(--ink);
  font-size:15px;
}
.p-flow__text p{ margin:0 0 12px; }
.p-flow__h3{
  margin:0 0 10px;
  font-size:16px;
  letter-spacing:.04em;
  font-weight:800;
  position:relative;
  padding-left:14px;
}
.p-flow__h3::before{
  content:"";
  position:absolute;
  left:0;
  top:.75em;
  width:8px;
  height:8px;
  background:rgba(127,150,166,.95);
  border-radius:999px;
  transform:translateY(-50%);
}
.p-flow__note{
  margin-top:10px;
  color:var(--muted);
  background:linear-gradient(180deg, rgba(127,150,166,.10), rgba(127,150,166,.05));
  border:1px solid rgba(127,150,166,.22);
  border-radius:16px;
  padding:12px 14px;
}

/* media */
.p-flow__media,
.p-flow__wide{
  margin:0;
}
.p-flow__media img,
.p-flow__wide img{
  width:100%;
  height:auto;
  display:block;
  border-radius:14px;
  box-shadow:var(--shadow);
}
.p-flow__wide img{
  border-radius:16px;
}

/* dashed separator like sample */
.p-flow__sep{
  height:1px;
  border-top:2px dashed var(--dash);
  margin:0;
}

/* closing message */
.p-flow__closing{
  margin-top:14px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(246,233,233,.55);
  border:1px solid rgba(47,59,68,.10);
}
.p-flow__closingLead{
  margin:0 0 6px;
  font-weight:800;
  letter-spacing:.04em;
}
.p-flow__closingText{
  margin:0;
  color:var(--muted);
}

/* last item */
.p-flow__item--last .p-flow__sep{ display:none; }

/* =========================
   Responsive
   ========================= */
@media (max-width: 980px){
  .p-flow__item{
    grid-template-columns: 170px 1fr;
    column-gap:22px;
  }
  .p-flow__dot{ width:110px; }
  .p-flow__dotTxt{ font-size:13px; }
  .p-flow__row{
    grid-template-columns: 1fr;
    gap:16px;
    align-items:start;
  }
  .p-flow__media img{ max-height:420px; object-fit:cover; }
}

@media (max-width: 640px){
  .p-flow{
    padding:54px 0 70px;
    background:linear-gradient(180deg, #f0f9ff 0%, #fff 24%);
  }
  .p-flow__inner{ width: calc(100% - 28px); }
  .p-flow__title{ font-size:19px; margin-bottom:18px; }

  /* stack: circle on left becomes top badge */
  .p-flow__item{
    grid-template-columns: 1fr;
    row-gap:12px;
    padding:0 0 6px;
  }
  .p-flow__rail{
    justify-content:flex-start;
    padding-top:0;
  }
  .p-flow__line{ display:none; } /* vertical line off on mobile */
  .p-flow__dot{
    width:106px;
    box-shadow:0 12px 22px rgba(0,0,0,.10);
  }

  .p-flow__body{ padding-top:0; }
  .p-flow__row{ padding:10px 0 22px; }
  .p-flow__sep{ margin:0 0 6px; }

  .p-flow__media img,
  .p-flow__wide img{
    border-radius:14px;
  }
}

@media (max-width: 420px){
  .p-flow__arrowEnd {display: none;}
  .p-flow__dot{ width:90px; }
  .p-flow__dotTxt{ font-size:12.5px; }
  .p-flow__text{ font-size:14.5px;order: 2; }
	.p-flow__text.mat85{margin-top: 85px;}
  .p-flow__wide {order: 1;}
}
/* ------------------------------------------------- リスト ------------------------------------------------- */
ul.list{
    margin-top: 16px;
    padding: 10px 20px;
    border: 1px solid #7e92a4;
    background: #f3faff;
}

.list li{
  list-style: none;
  position: relative;
  padding-left: 32px;
  margin-bottom: 10px;
}

.list li::before{
  content:"●";
  position:absolute;
  left:0;
  top:2px;
  color:#91b1ca;
}
/* ------------------------------------------------- 料金表 ------------------------------------------------- */

/* イントロ注意枠 */
.price-noteBox{
  margin: 18px auto 0;
  padding: 14px 16px;
  border: 1px solid rgba(148,163,184,.55);
  border-radius: 14px;
  background: #fff;
  width: min(860px, 100%);
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
  color: var(--c-text-muted);
}

/* ページ内ナビ */
.price-nav{
  margin: 22px auto 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.price-nav__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,.6);
  background: linear-gradient(to right, rgba(248,250,252,.95), rgba(226,232,240,.95));
  box-shadow: 0 10px 18px rgba(15, 23, 42, 0.06);
  font-weight: 700;
  letter-spacing: .06em;
  transition: transform .2s ease, box-shadow .2s ease;
}
.price-nav__link:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 26px rgba(15, 23, 42, 0.08);
}
/* ======================================
   料金表テーブル（見やすさ特化 / hover無し）
   既存の .price-table 一式を上書き
====================================== */

.price-tableWrap{
  margin-top: 18px;
}

/* テーブル本体 */
.price-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.06);
}

/* ヘッダー：シンプルで読みやすく */
.price-table thead th{
  padding: 14px 16px;
  text-align: center;
  font-weight: 800;
  letter-spacing: .06em;
  font-size: 13px;
  color: #fff;
  background: #78b2df;
}

/* セル共通：余白をしっかり */
.price-table th,
.price-table td{
  padding: 16px 18px;
  vertical-align: top;
  font-size: 14.5px;
  line-height: 1.9;
  border: none;
}

/* 行の区切りだけ（縦線は無し） */
.price-table tbody tr + tr th,
.price-table tbody tr + tr td{
  border-top: 1px solid rgba(148,163,184,.16);
}

/* 項目列：背景を薄くして視線誘導 */
.price-table tbody th{
  width: 34%;
  font-weight: 800;
  color: #2f3b44;
  background: rgba(239,244,249,.92);
}

/* 価格列：数字を強調しつつ“うるさくない” */
.price-table td strong{
  font-size: 1.08rem;
  font-weight: 900;
  color: var(--c-cta);
}

/* 補足列：色を落として読みやすく */
.price-table td{
  color: var(--c-text-muted);
}

/* 価格列だけ少し目立たせたい場合（任意：2列目が料金の時に効く） */
.price-table tbody td:nth-child(2){
  color: var(--c-text);
}

/* 料金セル内の改行が多い時に読みやすく */
.price-table td br{ line-height: 2.2; }

/* 注意文 */
.price-note{
  margin-top: 14px;
  color: var(--c-text-muted);
  font-size: .95rem;
  line-height: 1.9;
}
/* ブロック目安 補足テキスト */
.price-rangeBox__note {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px dashed rgba(148, 163, 184, 0.4);
  font-size: 0.9rem;
  line-height: 1.9;
  color: var(--c-text-muted);
}

@media (max-width: 768px) {
  .price-rangeBox__note {
    font-size: 0.85rem;
  }
}
/* =========================
   SP：カード化（見やすさ優先）
   - ラベルを上に出す
   - 項目→料金→補足が縦で揃う
========================= */
@media (max-width: 768px){

  .price-table,
  .price-table thead,
  .price-table tbody,
  .price-table tr,
  .price-table th,
  .price-table td{
    display: block;
  }

  /* テーブル枠は消してカード化 */
  .price-table{
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  .price-table thead{ display: none; }

  .price-table tbody tr{
    background: #fff;
    border: 1px solid rgba(148,163,184,.22);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.06);
    margin-bottom: 14px;
  }

  /* 項目名：カードの見出しに */
  .price-table tbody th{
    width: 100%;
    text-align: center;
    padding: 14px 14px;
    background: rgba(239,244,249,.92);
    border-bottom: 1px solid rgba(148,163,184,.16);
  }

  /* 中身：ラベル→内容の順で揃える */
  .price-table td{
    position: relative;
    padding: 34px 14px 14px;
    border-top: 1px solid rgba(148,163,184,.12);
    color: var(--c-text-muted);
  }

  .price-table td::before{
    content: attr(data-label);
    position: absolute;
    top: 10px;
    left: 14px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    color: color-mix(in srgb, var(--c-text-muted) 65%, var(--c-primary) 35%);
  }

  /* 料金が一番目立つように */
  .price-table td strong{
    display: inline-block;
    font-size: 1.12rem;
  }
}
/* ======================================
   ブロック目安（参考）デザイン
====================================== */
.price-rangeBox{
  margin-top: 18px;
  padding: 16px 16px 14px;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(239,244,249,.95), rgba(255,255,255,.98));
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.06);
}

.price-rangeBox__ttl{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--c-text);
  font-size: 0.98rem;
}

/* タイトル左の丸アイコン（上品に） */
.price-rangeBox__ttl::before{
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--c-primary);
  box-shadow: 0 0 0 4px rgba(145,177,202,.22);
}

/* 中の数字は“図”っぽく：等幅＋余白＋行間 */
.price-rangeBox__txt{
  margin: 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.85);
  border: 1px dashed rgba(148,163,184,.35);

  /* 数字の見やすさ */
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Noto Sans Mono", monospace;
  font-size: 1rem;
  line-height: 2.2;
  letter-spacing: .12em;
  color: var(--c-text-muted);
  white-space: nowrap; /* スペースの崩れ防止 */
  overflow-x: auto;    /* もし長ければ横スクロール */
  -webkit-overflow-scrolling: touch;
}

/* 横スクロール時にスクロールバーを薄く */
.price-rangeBox__txt::-webkit-scrollbar{
  height: 6px;
}
.price-rangeBox__txt::-webkit-scrollbar-thumb{
  background: rgba(0,0,0,.15);
  border-radius: 999px;
}

/* SP微調整 */
@media (max-width: 768px){
  .price-rangeBox{
    padding: 14px 14px 12px;
    border-radius: 16px;
  }
  .price-rangeBox__txt{
    font-size: .95rem;
    padding: 10px 12px;
  }
}
/* ------------------------------------------------- アクセス ------------------------------------------------- */
/* ======================================
   Access page
====================================== */

.access-hero{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: stretch;
  margin-top: 18px;
}

.access-hero__map{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.22);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  background: #fff;
}

.access-hero__info{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  padding: 16px 16px 14px;
}

.access-dl{
  margin: 0;
}
.access-dl__row{
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  padding: 12px 0;
}
.access-dl__row + .access-dl__row{
  border-top: 1px solid rgba(148,163,184,.14);
}
.access-dl dt{
  font-weight: 800;
  color: var(--c-text);
  letter-spacing: .04em;
}
.access-dl dd{
  margin: 0;
  color: var(--c-text-muted);
  line-height: 1.85;
}

.access-actions{
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}

.access-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .06em;
  border: 1px solid rgba(148,163,184,.35);
  background: #fff;
}

.access-btn--primary{
  background: var(--c-cta);
  border-color: var(--c-cta);
  color: #fff;
}
.access-btn--primary:hover{
	color: #fff;
	opacity: 0.85;
}
.access-btn--ghost{
  background: rgba(239,244,249,.95);
  color: var(--c-text);
}

.access-note{
  margin-top: 12px;
  color: var(--c-text-muted);
  font-size: .95rem;
  line-height: 1.9;
}

/* カード */
.access-card{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  padding: 16px 16px 14px;
}

/* 経路カードグリッド */
.access-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ステップ */
.access-steps{
  margin: 10px 0 0;
  padding: 0;
  counter-reset: step;
}
.access-steps li{
  list-style: none;
  position: relative;
  padding: 10px 0 10px 44px;
  border-bottom: 1px dashed rgba(148,163,184,.22);
  color: var(--c-text-muted);
  line-height: 1.85;
}
.access-steps li:last-child{
  border-bottom: none;
}
.access-steps li::before{
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: 10px;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(145,177,202,.22);
  border: 1px solid rgba(148,163,184,.28);
  color: var(--c-text);
  font-weight: 900;
}

.access-parking{
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(239,244,249,.85);
  border: 1px solid rgba(148,163,184,.18);
}
.access-parking__ttl{
  margin: 0 0 6px;
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--c-text);
}
.access-parking__list{
  margin: 0;
  padding: 0;
}
.access-parking__list li{
  list-style: none;
  position: relative;
  padding-left: 22px;
  margin: 6px 0;
  color: var(--c-text-muted);
}
.access-parking__list li::before{
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--c-primary-light);
}

/* SP */
@media (max-width: 768px){
  .access-hero{
    grid-template-columns: 1fr;
  }
  .access-grid{
    grid-template-columns: 1fr;
  }
  .access-dl__row{
    grid-template-columns: 84px 1fr;
  }
}
/*--------------------- 予約ページ ---------------------*/
/* ============================
   無料カウンセリング予約 全体デザイン
============================ */

.yoyaku_box {
  max-width: 920px;
  margin: 60px auto;
  padding: 40px 32px;
  background: #f6f9ff;
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  font-family: "Noto Sans JP", sans-serif;
}

/* フォーム全体 */
.yoyaku_box .wpcf7-form {
  width: 100%;
}

/* テーブル全体 */
.yoyaku_box .mousikomi {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 14px;
}

/* 左ラベル */
.yoyaku_box .yoyaku {
    width: 30%;
    vertical-align: middle;
	background: #91b1ca;
    padding: 0 5px;
}
.yoyaku_box .yoyaku p {
	margin-bottom:0;
}
.yoyaku_box .yoyaku .b {
  font-size: 15px;
  font-weight: 700;
	color: #fff;
}

.yoyaku_box .sankou {
	margin-left: 6px;
    font-size: 12px;
	color: #fff;
    font-weight: 700;
	border: 1px solid #fff;
    border-radius: 40px;
    padding: 3px 10px;
}

/* 右入力欄 */
.yoyaku_box td:last-child {
	width: 70%;
	padding: 0 10px;
}

/* 入力系共通 */
.yoyaku_box input[type="text"],
.yoyaku_box input[type="email"],
.yoyaku_box input[type="date"],
.yoyaku_box select,
.yoyaku_box textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  border-radius: 3px;
  border: 1px solid #bfcceb;
  background: #fff;
  transition: 0.2s;
  box-sizing: border-box;
}

.yoyaku_box textarea {
  min-height: 120px;
  resize: vertical;
}

/* フォーカス時 */
.yoyaku_box input:focus,
.yoyaku_box select:focus,
.yoyaku_box textarea:focus {
  outline: none;
  border-color: #4b82d8;
  box-shadow: 0 0 0 2px rgba(75,130,216,0.15);
}

/* ============================
   同意チェック
============================ */

.yoyaku_box .contact_bottom {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #cfdaf7;
  text-align: center;
}

.yoyaku_box .contact_bottom input[type="checkbox"] {
  transform: scale(1.2);
  margin-right: 8px;
}

/* ============================
   送信ボタン
============================ */

.yoyaku_box #mail_submit2 {
  margin-top: 24px;
  width: 100%;
  max-width: 360px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #4b82d8, #7ea7e8);
  color: #fff;
  font-size: 17px;
  font-weight: 700;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: 0.2s;
}

.yoyaku_box #mail_submit2:hover {
  opacity: 0.85;
}

.yoyaku_box .contact_bottom .center {
  margin-top: 14px;
  font-size: 13px;
  color: #555;
}

/* ============================
   スマホ調整
============================ */

@media (max-width: 768px) {

  .yoyaku_box {
    padding: 28px 18px;
  }

  .yoyaku_box .mousikomi,
  .yoyaku_box .mousikomi tr,
  .yoyaku_box .mousikomi td {
    display: block;
    width: 100%;
  }

  .yoyaku_box .yoyaku {
    margin-bottom: 6px;
  }

  .yoyaku_box .wpcf7-form-control-wrap[data-name="radio-240"] .wpcf7-list-item {
    flex: 1 1 calc(50% - 6px);
  }
}
/* ======================================
   About / Clinic page
====================================== */
.img_box.doctorbloc {
  position: relative;
}

.img_box.doctorbloc img {
  display: block;
  width: 100%;
  height: auto;
}
.director-card {
  position: absolute;
  left: 0;
	bottom: 0;
  z-index: 2;

  display: inline-flex;
  align-items: center;
  gap: 16px;

  padding: 14px 28px;
  background: rgba(255, 255, 255, 0.92);
  border-left: 5px solid #b9dcf5;
  border-radius: 0 24px 24px 0;
  box-shadow: 0 8px 24px rgba(64, 117, 155, 0.14);

  color: #17324d;
  font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", serif;
  letter-spacing: 0.08em;
}

.director-card__label {
  font-size: 16px;
  font-weight: 600;
}

.director-card__name {
  font-size: 22px;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .director-card {
    left: 16px;
    bottom: 16px;
    gap: 12px;
    padding: 12px 20px;
    border-left-width: 4px;
    border-radius: 0 20px 20px 0;
  }

  .director-card__label {
    font-size: 14px;
  }

  .director-card__name {
    font-size: 18px;
  }
}
/* 院長あいさつ */
.about-doctor{
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 18px;
  align-items: start;
  margin-top: 18px;
}

.about-doctor__photo{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.22);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  background: #fff;
}

.about-doctor__photo img{
  width: 100%;
  height: auto;
  display: block;
}

.about-doctor__text{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  padding: 16px 16px 14px;
}

.about-doctor__name{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(148,163,184,.18);
  display: flex;
  gap: 10px;
  align-items: baseline;
  justify-content: flex-end;
}

.about-doctor__role{
  margin: 0;
  color: var(--c-text-muted);
  font-weight: 700;
  letter-spacing: .06em;
}

.about-doctor__nm{
  margin: 0;
  font-weight: 900;
  letter-spacing: .08em;
  color: var(--c-text);
}

/* 医院概要（DL表） */
.clinic-table{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  padding: 8px 16px 14px;
  margin-top: 18px;
}

.clinic-table__dl{
  margin: 0;
}

.clinic-table__row{
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 14px;
  padding: 14px 0;
}

.clinic-table__row + .clinic-table__row{
  border-top: 1px solid rgba(148,163,184,.14);
}

.clinic-table dt{
  font-weight: 900;
  letter-spacing: .06em;
  color: var(--c-text);
}

.clinic-table dd{
  margin: 0;
  color: var(--c-text-muted);
  line-height: 1.85;
}

.clinic-table__note{
  margin: 10px 0 0;
  color: var(--c-text-muted);
  font-size: .95rem;
  line-height: 1.9;
}

/* 方針ボックス */
.policy-box{
  border-radius: 18px;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  padding: 16px 16px 14px;
  margin-top: 18px;
}

/* SP */
@media (max-width: 768px){
  .about-doctor{
    grid-template-columns: 1fr;
  }
  .clinic-table__row{
    grid-template-columns: 96px 1fr;
    gap: 10px;
  }
  .facility-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* ==============================
 院内紹介
============================== */

.facility-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 18px;
}

.facility-card{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(148,163,184,.22);
  background: #fff;
  box-shadow: 0 14px 30px rgba(15,23,42,.06);
  padding-bottom: 10px;
}

.facility-card img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.facility-card figcaption{
  padding: 10px 12px 0;
  font-weight: 800;
  letter-spacing: .06em;
}

.facility-card p{
  padding: 4px 12px 0;
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: #334155;
}

/* ==============================
 SP対応
============================== */

@media (max-width: 768px){
  .facility-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .equipment-grid{
    grid-template-columns: 1fr;
  }
	.facility-card figcaption,
	.facility-card p {
		font-size: 12px;
	}
}
/* ==============================　MFTページ追加　============================== */
/* グループの区切りを視覚化 */
section.device-group {
  margin-bottom: 40px;
  padding: 24px;
  background: #f8fbff;
  border-radius: 16px;
  border: 1px solid rgba(148, 163, 184, 0.3);
}

/* グループタイトルのスタイル調整（任意） */
.group-ttl {
  font-size: 1.2rem;
  margin-top: 0; /* グループの先頭なので上余白は不要 */
}
.device-group section {
	padding: 10px 0;
}