html,
body {
  min-width: 1200px;
  margin: 0;
}
@media (max-width: 1000px) {
  html,
  body {
    min-width: 100%;
    /* margin: 0 20px; */
  }
}
/* @media (max-width: 678px) {
  html,
  body {
    min-width: 100%;
  }
} */

/* ============================
  Header
  カラー定義（Figmaスタイルより）
  黒 #333333 / ゴールド #B39700 / 白 #FCFCFC / あかべに #CD504F
============================= */

.header {
  width: 100%;
  /* padding: 0 40px; */
  background-color: #fcfcfc;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  position: relative;
  z-index: 100;
}

.header__inner {
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 80px;
}

/* ロゴ */
.header__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 228px;
  text-decoration: none;
}

.header__logo-mark {
  width: 48px;
  height: 48px;
  display: block;
}

.header__logo-text {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 28px;
  line-height: 28px;
  color: #333;
  white-space: nowrap;
}

/* ナビゲーション */
.header__nav {
  display: flex;
  align-items: center;
  gap: 32px;
}

.header__link {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #333;
  white-space: nowrap;
  text-decoration: none;
}
.header__link:hover {
  color: #3c799f;
}

.header__link--has-arrow .header__arrow {
  width: 9px;
  height: 5px;
  display: block;
}

/* 完全予約制 */
.header__reservation-note {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: #b39700;
  white-space: nowrap;
}

.header__calendar-icon {
  width: 20px;
  height: 20px;
  display: block;
}

/* 予約ボタン */
.header__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 92px;
  padding: 10px 24px;
  border-radius: 50px;
  background-color: #cd504f;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 20px;
  color: #fcfcfc;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.header__button:hover {
  opacity: 0.85;
}

/* ===== ラッパー（トリガー＋パネルをまとめる） ===== */
.header__dropdown-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

/* ===== パネル本体 ===== */
.header__dropdown {
  /* 設定用：表示 */
  /* opacity: 1;
  visibility: visible;
  pointer-events: auto; */
  /* 初期：非表示 */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* transform: translateY(8px); */
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0s linear 0.2s;

  /* ヘッダー直下に展開 */
  position: absolute;
  /* top: calc(100% + 16px); */
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  z-index: 200;

  /* width: 556px; */
  width: 476px;
  padding: 56px 40px 40px;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);

  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ホバー・フォーカスで表示 */
.header__dropdown-wrap:hover .header__dropdown,
.header__dropdown-wrap:focus-within .header__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    visibility 0s linear 0s;
}

/* ===== 矢印の向き切り替え（ホバー時に回転） ===== */
.header__dropdown-wrap:hover .header__arrow,
.header__dropdown-wrap:focus-within .header__arrow {
  transform: rotate(180deg);
}

.header__arrow {
  transition: transform 0.2s ease;
}

/* ===== タイトル ===== */
.header__dropdown-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: 1px;
  color: #3c799f;
}

/* ===== リスト（2列グリッド） ===== */
.header__dropdown-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

/* ===== 各アイテム ===== */
.header__dropdown-item {
  width: 230px;
  flex-shrink: 0;
}

.header__dropdown-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 8px;
  border-bottom: 0.6px solid #3c799f;
  text-decoration: none;
  transition: opacity 0.15s ease;
}

.header__dropdown-link:hover {
  color: #3c799f;
}

.header__dropdown-link span {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* 「施術方法について」だけはなだ色 */
/* .header__dropdown-item--active .header__dropdown-link span {
  color: #3c799f;
} */
.header__dropdown-item .header__dropdown-link span:hover {
  color: #3c799f;
}

/* 矢印アイコン */
.header__dropdown-arrow {
  width: 5px;
  height: 9px;
  display: block;
  flex-shrink: 0;
}

/* ===== 装飾SVG（下部） ===== */
.header__dropdown-ornament {
  display: block;
  width: 100%;
  max-width: 475.86px;
  height: 14.508px;
  object-fit: contain;
}

/* ===== ハンバーガーボタン ===== */
.header__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}

.header__hamburger-line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: #3c799f;
  border-radius: 1px;
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
}

/* ===== SPメニューパネル ===== */
.sp-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 390px;
  max-width: 100vw;
  height: 100dvh;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
  z-index: 1000;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform 0.35s ease;
}

.sp-nav.is-open {
  transform: translateX(0);
}

.sp-nav__inner {
  padding: 21px 16px 40px 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* ヘッダー行 */
.sp-nav__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sp-nav__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.sp-nav__logo-mark {
  width: 36px;
  height: 36px;
  display: block;
  object-fit: contain;
}

.sp-nav__logo-text {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #333;
  white-space: nowrap;
}

.sp-nav__close {
  width: 48px;
  height: 48px;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sp-nav__close img {
  width: 31px;
  height: 31px;
  display: block;
}

/* メニューリスト */
.sp-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 320px;
}

.sp-nav__item {
  border-bottom: 0.6px solid #3c799f;
}
.sp-nav__item02 {
  border-bottom: 0px solid #3c799f;
}

.sp-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px 4px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  width: 100%;
  text-align: left;
}
.sp-nav__link_menu {
  border-bottom: 0.6px solid #3c799f;
}

.sp-nav__link-text--blue {
  color: #3c799f;
}

/* 施術メニューの矢印 */
.sp-nav__accordion-arrow {
  width: 6px;
  height: 10px;
  display: block;
  background-image: url("../image/arrow_right_bl.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: background-image 0.15s ease;
}

.sp-nav__item--accordion.is-open .sp-nav__accordion-arrow {
  background-image: url("../image/arrow_right.png");
  transform: rotate(90deg);
}

/* サブメニュー */
.sp-nav__sub-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.sp-nav__item--accordion.is-open .sp-nav__sub-list {
  max-height: 400px;
}

.sp-nav__sub-item {
  border-bottom: 0.6px dashed #3c799f;
}

.sp-nav__sub-link {
  display: block;
  padding: 16px 24px 4px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-decoration: none;
}

/* CTA */
.sp-nav__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 8px 0 16px;
  width: 100%;
}

.sp-nav__cta-label {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.sp-nav__cta-icon {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
}

.sp-nav__cta-note {
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 14px;
  color: #b39700;
}

.sp-nav__cta-text {
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 16px;
  color: #cd504f;
  letter-spacing: 0.8px;
  margin-left: 8px;
  text-decoration: none;
}

/* CTAボタン共通 */
.sp-nav__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 56px;
  padding: 8px 0px;
  border-radius: 14px;
  text-decoration: none;
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 24px;
  color: #fcfcfc;
  drop-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
}

/* LINE */
.sp-nav__btn--line {
  background-color: #06c755;
  box-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
}

.sp-nav__btn-icon {
  width: 34px;
  height: 34px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.sp-nav__btn-icon02 {
  width: 20px;
  height: 20px;
}

/* TEL */
.sp-nav__btn--tel {
  background-color: #b39700;
  box-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
  flex-direction: column;
  gap: 0;
}

.sp-nav__btn-tel-inner {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sp-nav__btn-tel-label {
  font-size: 14px;
  color: #fcfcfc;
}

.sp-nav__btn-tel-num {
  font-size: 20px;
  letter-spacing: 1px;
  color: #fcfcfc;
}

/* EPARK */
.sp-nav__btn--epark {
  background-color: #fcfcfc;
  box-shadow: 0 4px 2px rgba(0, 0, 0, 0.25);
  color: #333;
  font-size: 18px;
}

.sp-nav__btn-epark-logo {
  height: 90%;
  width: auto;
  display: block;
  object-fit: contain;
}

/* オーバーレイ */
.sp-nav__overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.35s ease,
    visibility 0s linear 0.35s;
}

.sp-nav__overlay.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.35s ease,
    visibility 0s linear 0s;
}
.pc_only {
  display: block !important;
}
.pc_only02 {
  display: flex !important;
}
.sp_only {
  display: none !important;
}
.sp_only02 {
  display: none !important;
}
.sp_only03 {
  display: none !important;
}

@media (max-width: 1200px) {
  .header__nav {
    gap: 24px;
  }
  .hero__inner {
    max-width: 1000px;
  }
}
/* SP表示切り替え */
@media (max-width: 1000px) {
  .header__inner {
    height: 70px;
    /* width: 100%; */
    padding: 0 20px;
  }
  .header__nav {
    display: none;
  }
  .header__hamburger {
    display: flex;
  }
}

/* SP表示切り替え */
@media (max-width: 767px) {
  .pc_only {
    display: none !important;
  }
  .pc_only02 {
    display: none !important;
  }
  .sp_only {
    display: block !important;
  }
  .sp_only02 {
    display: flex !important;
  }
  .sp_only03 {
    display: contents !important;
  }
}

/* ===== PAGE TOPボタン ===== */
.page-top {
  position: fixed;
  right: 40px;
  bottom: 40px;
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease,
    transform 0.3s ease;
}

/* スクロールで表示 */
.page-top.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.page-top:hover {
  opacity: 0.7;
}

/* 矢印アイコン */
.page-top__icon {
  width: 36px;
  height: 36px;
  display: block;
}

/* 縦書きテキスト */
.page-top__label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #b39700;
  letter-spacing: 0.1em;
  height: 85px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* ============================
  Hero (MV)
  カラー定義
  白 #FCFCFC / 黒 #333333 / はなだ色 #3C799F
  LINEグリーン #06C755 / ゴールド #B39700
============================= */

.hero {
  width: 100%;
  height: 600px;
  /* padding: 0 40px 16px; */
  background-color: #fcfcfc;
  display: flex;
  justify-content: center;
}

/* .hero__inner {
  position: relative;
  width: 100%;
  max-width: 1280px;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-image:
    /* linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.5) 0%,
      rgba(226, 235, 241, 0.44) 32.2%,
      rgba(60, 121, 159, 0.1) 100%
    ),  url("../image/Hero.png");
  background-size: cover;
  background-position: center;
} */
.hero__inner {
  position: relative;
  width: 100%;
  max-width: 1280px;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  /* padding: 40px; */
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  /* background-image は JS で制御 */
}

/* スライド用の背景レイヤー */
.hero__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease;
  z-index: 0;
}

.hero__slide.is-active {
  opacity: 1;
}

/* コンテンツ（CTAやテキスト）を背景より前面に */
.hero__cta-list,
.hero__heading {
  z-index: 1;
}

/* ===== CTAリスト ===== */
.hero__cta-list {
  position: absolute;
  bottom: 60px;
  right: 40px;
  display: flex;
  gap: 16px;
}

.hero-cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 184px;
  border-radius: 14px;
  text-decoration: none;
  filter: drop-shadow(0px 4px 2px rgba(0, 0, 0, 0.25));
  font-family: "Sawarabi Gothic", sans-serif;
}

/* LINE */
.hero-cta--line {
  height: 58px;
  background-color: #06c755;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 0px 16px;
  color: #fcfcfc;
  font-size: 20px;
}
.hero-cta--line:hover {
  background-color: rgba(6, 199, 85, 0.6);
}

.hero-cta__icon--line {
  width: 27px;
  height: 25.726px;
}

/* 電話 */
.hero-cta--tel {
  height: 58px;
  background-color: #b39700;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0px 16px;
  color: #fcfcfc;
  line-height: 1;
}
.hero-cta--tel:hover {
  background-color: rgba(179, 151, 0, 0.6);
}

.hero-cta__tel-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
}

.hero-cta__icon--phone {
  width: 20px;
  height: 20px;
}

.hero-cta__tel-label {
  font-size: 14px;
}

.hero-cta__tel-number {
  font-size: 18px;
  letter-spacing: 0.9px;
}

/* EPARK */
.hero-cta--epark {
  border-radius: 16px;
  background-color: #fcfcfc;
  /* flex-direction: row; */
  align-items: center;
  /* justify-content: space-between; */
  padding: 4px 16px;
  color: #333;
  font-size: 18px;
}
.hero-cta--epark02 {
  height: 50px;
}
.hero-cta--epark:hover {
  opacity: 0.6;
}

.hero-cta__epark-logo {
  height: 26px;
  width: auto;
  display: block;
}

/* ===== キャッチコピー ===== */
.hero__heading {
  position: absolute;
  left: 56px;
  top: 145px;
  width: 528px;
  padding: 16px 16px 16px 24px;
  border-radius: 16px;
  background-color: rgba(252, 252, 252, 0.4);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.hero__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 56px;
  line-height: 1.6;
  letter-spacing: 2.8px;
  color: #333;
}

.hero__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
}

@media (max-width: 1200px) {
  /* .hero {
    width: 100%;
    height: 400px;
  } */
  .hero__inner {
    max-width: 1000px;
  }
  .hero__slide {
    background-position: left top;
  }
}
/* ===== Hero SP ===== */
@media (max-width: 767px) {
  .hero {
    /* padding: 0 20px; */
    background-color: #fcfcfc;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: auto;
    height: auto;
  }

  .hero__inner {
    position: relative;

    max-width: 90%;
    height: 304px;
    border-radius: 16px;
    overflow: hidden;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    aspect-ratio: 350 / 304;
  }

  /* 背景画像を角丸カードに */
  .hero__bg {
    position: absolute;
    inset: 0;
    border-radius: 16px;
    overflow: hidden;
  }

  .hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .hero__bg-overlay {
    display: none;
  }

  /* コピーボックス：画像の上に半透明で重ねる */
  .hero__heading {
    position: absolute;
    top: 24px;
    left: 16px;
    width: 304px;
    height: 168px;
    background-color: rgba(252, 252, 252, 0.7);
    border-radius: 16px;
    padding: 8px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 1;
    overflow: hidden;
  }

  .hero__title {
    margin: 0;
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.8;
    letter-spacing: 1.2px;
    color: #333;
    white-space: normal;
  }

  .hero__lead {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.14px;
    color: #3c799f;
  }

  /* CTAボタンは非表示 */
  .hero__cta-list {
    display: none;
  }
}

@media (max-width: 390px) {
  .hero__inner {
    width: 90%;
    height: auto;
    aspect-ratio: 350 / 304;
  }
}
.hero__bg-img {
  transition: opacity 0.4s ease;
}
/* ============================
  Concept
  カラー定義
  あかべに #CD504F / 黒 #333333 / ゴールド #B39700
  はなだ色 #3C799F / 白 #FCFCFC
============================= */

.concept {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  /* margin-top: 70px; */
  padding-bottom: 200px;
  position: relative;
  background-color: #fcfcfc;
}

.concept-line {
  position: absolute;
  top: 0px;
  right: 0;
  z-index: -10;
}
.concept-line02 {
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: -10;
}

/* ===== 見出し ===== */
.concept__head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 80px 0 40px;
}

.concept__logo {
  width: 120px;
  height: 120px;
  display: block;
  flex-shrink: 0;
}

.concept__catch {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #cd504f;
  white-space: nowrap;
}

/* ===== 本文エリア ===== */
.concept__body {
  width: 768px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

.concept__lead-text,
.concept__block-text,
.concept__sub-text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}
.concept__sub-text a {
  text-decoration: none;
}
/* ===== 項目（一／二） ===== */
.concept__block {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.concept__block-title {
  margin: 0 0 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid #cd504f;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 1.2px;
  color: #cd504f;
}

.concept__block-text {
  margin-top: 24px;
}

.concept__block + .concept__block {
  margin-top: 24px;
}

/* ===== メッセージ ===== */
.concept__message {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.concept__message-text {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 2.4px;
  color: #b39700;
  text-align: center;
}

.concept__highlight {
  color: #3c799f;
}

.concept__small {
  font-size: 14px;
}

/* ===== ボタン ===== */
.concept__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 278px;
  height: 50px;
  padding: 9px 41px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.concept__button:hover {
  opacity: 0.7;
  background-color: #3c799f;
  color: #fff;
}

.concept__button-arrow {
  width: 6px;
  height: 10px;
  display: block;
}

.concept__button-icon {
  position: relative;
  width: 6px;
  height: 10px;
  display: block;
}

.concept__button-arrow--default,
.concept__button-arrow--hover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  transition: opacity 0.2s ease;
}

.concept__button-arrow--hover {
  opacity: 0;
}

.concept__button:hover .concept__button-arrow--default {
  opacity: 0;
}

.concept__button:hover .concept__button-arrow--hover {
  opacity: 1;
}

/* ===== Concept SP ===== */
@media (max-width: 767px) {
  .concept {
    /* padding: 40px 20px; */
    background-color: #fcfcfc;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding-bottom: 40px;
  }

  /* 装飾ラインは非表示 */
  .concept-line,
  .concept-line02 {
    display: none;
  }

  /* 見出し */
  .concept__head {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 100%;
    padding: 40px 0 0;
  }

  .concept__logo {
    width: 72px;
    height: 72px;
    flex-shrink: 0;
  }

  .concept__catch {
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    font-size: 28px;
    line-height: 1.4;
    letter-spacing: 0.84px;
    color: #cd504f;
    margin: 0;
    white-space: nowrap;
  }

  /* リードテキスト */
  .concept__lead-text {
    /* width: 350px; */
    max-width: 90%;
  }

  .concept__lead-text p {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
    white-space: normal;
  }

  /* ブロック */
  .concept__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 100%;
  }

  .concept__block {
    display: flex;
    flex-direction: column;
    gap: 16px;
    /* width: 350px; */
    max-width: 90%;
  }

  .concept__block-title {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: 0.44px;
    color: #cd504f;
    margin: 0;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(205, 80, 79, 0.55);
  }
  .concept__block-title02 {
    margin-left: 40px;
    text-indent: -2em;
  }

  .concept__block + .concept__block {
    margin-top: 0px;
  }

  .concept__block-text {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
    white-space: normal;
  }

  /* メッセージ */
  .concept__message {
    /* width: 350px; */
    max-width: 90%;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .concept__message-text {
    margin: 0;
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    font-size: 22px;
    line-height: 1.7;
    letter-spacing: 0.66px;
    color: #b39700;
    text-align: center;
    white-space: normal;
  }

  .concept__sub-text {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    color: #333;
    white-space: normal;
  }

  /* ボタン */
  .concept__button {
    width: 278px;
    height: 50px;
    padding: 0;
    border: 1px solid #3c799f;
    border-radius: 9999px;
    background-color: #fcfcfc;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    color: #3c799f;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
  }
}

/* ============================
  Concerns（悩み別）
  カラー定義
  ゴールド #B39700 / はなだ色 #3C799F / 黒 #333333
============================= */

.concerns {
  width: 100%;
  padding: 80px 0 30px;
  background-color: rgba(179, 151, 0, 0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* ===== 見出し ===== */
.concerns__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.concerns__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.concerns__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
}

/* ===== 図解エリア =====
  Figma上の1440×808のキャンバスを基準に、
  すべての要素を %（CSS変数 --x, --y, --w, --h）で配置。
  幅が変わっても相対位置が崩れないようにしている。
============================= */
.concerns__diagram {
  position: relative;
  width: 100%;
  max-width: 1440px;
  aspect-ratio: 1440 / 808;
}

.concerns__ellipse {
  position: absolute;
  left: 50%;
  top: 12%;
  width: 95%;
  height: 80%;
  transform: translateX(-50%);
  display: block;
}

/* 人物イラスト */
.concerns__figure {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  object-fit: contain;
  display: block;
}

/* 吹き出しラベル */
.concerns__label {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  height: var(--h);
  display: flex;
  align-items: center;
  justify-content: center;
}

.concerns__bubble {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.concerns__label-text {
  position: relative;
  z-index: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #333;
  text-align: center;
  white-space: nowrap;
  transform: translateY(-4px);
}
.concerns__label-text a {
  color: #333;
  text-decoration: none;
}

.label_link01 {
  transform: translateY(-8px);
}
.label_link00 {
  transform: translateY(0px);
}
.label_link10 {
  transform: translateX(8px);
}

.concerns__label:hover {
  transform: scale(1.08);
}
/* ===== Concerns SP ===== */

/* SP用グリッドはPCで非表示 */
.concerns__sp-grid {
  display: none;
}

@media (max-width: 1100px) {
  .concerns__label-text {
    font-size: 1.5vw;
  }
}

@media (max-width: 767px) {
  .concerns {
    padding: 40px 0px;
    background-color: #fbf8f3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }

  .concerns__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
  }

  .concerns__eyebrow {
    font-family: "Manrope", sans-serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    color: #b39700;
    white-space: nowrap;
  }

  .concerns__title {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    color: #3c799f;
    text-align: center;
    white-space: normal;
    margin: 0 20px;
  }

  /* PC用ダイアグラムを非表示 */
  .concerns__diagram {
    display: none;
  }

  /* SP用カードグリッド */
  .concerns__sp-grid {
    display: grid;
    grid-template-columns: repeat(2, 170px);
    gap: 12px;
    width: 352px;
    max-width: 100%;
  }

  .concerns__sp-card {
    width: 168px;
    height: 144px;
    background-color: #fcfcfc;
    border: 1px solid #f2f3f7;
    border-radius: 20px;
    padding: 12px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .concerns__sp-card:hover {
    opacity: 0.8;
  }

  .concerns__sp-img {
    width: 126px;
    height: 126px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
  }

  .concerns__sp-label {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.14px;
    color: #333;
    text-align: center;
  }
}
/* ============================
  Treatment Menu（施術メニュー）
  カラー定義
  ゴールド #B39700 / はなだ色 #3C799F / 黒 #333333 / 白 #FCFCFC
============================= */

.menu {
  position: relative;
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  overflow: hidden;
  /* z-index: 0; */
  margin-bottom: -4px;
}

.menu-line {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 10;
  max-width: 80%;
}

.menu-line02 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
}

/* ===== 見出し ===== */
.menu__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 1200px;
}

.menu__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.menu__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
}

.menu__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* ===== カード一覧 ===== */
.menu__list {
  width: 100%;
  max-width: 1400px;
  display: flex;
  flex-direction: column;
  gap: 56px;
  z-index: 100;
}

.menu__row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}

.menu__row--small {
  gap: 19px 24px;
}

.menu-card {
  background-color: #fff;
  border-radius: 14px;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition:
    transform 0.5s ease,
    background-color 0.5s ease;
  text-decoration: none;
}

.menu-card--large {
  width: 384px;
}
.menu-card--large:hover {
  transform: scale(1.08);
  background-color: #f2f3f7;
}

.menu-card--small {
  width: 286px;
}
.menu-card--small:hover {
  transform: scale(1.08);
  background-color: #f2f3f7;
}

.menu-card__image {
  width: 100%;
  overflow: hidden;
}

.menu-card--large .menu-card__image {
  height: 294px;
}

.menu-card--small .menu-card__image {
  height: 207px;
}

.menu-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.menu-card__body {
  height: 100px;
  padding: 0 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
}

.menu-card__title {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #3c799f;
  white-space: nowrap;
  text-decoration: none !important;
}

.menu-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-decoration: none !important;
}

/* ===== ボタン ===== */
.menu__buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  z-index: 1000;
}

.menu__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 176px;
  height: 50px;
  padding: 9px 41px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.menu__button:hover {
  opacity: 0.7;
  background-color: #3c799f;
  color: #fff;
}

.menu__button-arrow {
  width: 6px;
  height: 10px;
  display: block;
}

.menu__button:hover .concept__button-arrow--default {
  opacity: 0;
}

.menu__button:hover .concept__button-arrow--hover {
  opacity: 1;
}

/* ===== 施術メニュー SP ===== */
@media (max-width: 767px) {
  .menu {
    padding: 40px 0px;
    background-color: #fcfcfc;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }

  /* 装飾ライン非表示 */
  .menu-line {
    display: none;
  }

  /* 見出し */
  .menu__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .menu__eyebrow {
    font-size: 14px;
    letter-spacing: 1.6px;
    color: #b39700;
    white-space: nowrap;
  }

  .menu__title {
    font-size: 32px;
    text-align: center;
    white-space: nowrap;
    margin: 0;
  }

  /* リスト：縦積み */
  .menu__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    max-width: 500px;
  }
  .menu-card--large .menu-card__image {
    height: auto;
  }
  .menu__row {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
  }

  /* カード共通 */
  .menu-card--large,
  .menu-card--small {
    position: relative;
    width: 90%;
    height: 200px;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
    overflow: hidden;
    margin: 0 auto;
  }

  .menu-card__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .menu-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .menu-card__body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0 0px 2px;
    background: linear-gradient(
      0deg,
      rgba(252, 252, 252, 0.9) 0%,
      rgba(252, 252, 252, 0.63) 100%
    );

    display: flex;
    flex-direction: column;
    gap: 0px;
  }

  .menu-card__title {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.5;
    color: #3c799f;
  }

  .menu-card__text {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.6;
    color: #333;
  }

  /* ボタン */
  .menu__buttons {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
  }

  .menu__button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 180px;
    height: 48px;
    padding: 0;
    border: 1px solid #3c799f;
    border-radius: 9999px;
    background-color: #fcfcfc;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #3c799f;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.2s ease;
  }

  .menu__button:hover {
    opacity: 0.7;
  }
}

/* ===== 割引バナー ===== */
.menu__discount-banner-wrap {
  width: 100%;
  z-index: 2000;
}

.menu__discount-banner-wrap a {
  display: block;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.menu__discount-banner-wrap img {
  height: auto;
  display: block;
  width: 100%;
}

/* SP */
@media (max-width: 767px) {
  .menu__discount-banner-wrap {
    width: 400px;
    max-width: 90%;
    margin: 0 auto;
  }
  .menu__discount-banner-wrap img {
    width: 100%;
  }
}
/* ============================
  Testimonials（お喜びの声）
  カラー定義
  あかべに #CD504F / ゴールド #B39700
  はなだ色 #3C799F / 黒 #333333 / 白 #FCFCFC
============================= */

.testimonials {
  position: relative;
  width: 100%;
  min-height: 806px;
  padding: 80px 0 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  overflow: hidden;
  background-color: #fcfcfc;
  z-index: 0;
}
.testimonials_top {
  min-height: auto;
}
.testimonials_02 {
  background-color: #f2f3f7;
  padding: 80px 0 0px;
}
/* ===== 波形背景 ===== */
.testimonials__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  /* object-fit: cover; */
  pointer-events: none;
  z-index: 0;
}

/* ===== 水引き装飾 ===== */
.testimonials__mizuhiki {
  position: absolute;
  top: 13.76%;
  right: 0;
  width: 100%;
  height: 6.19%;
  pointer-events: none;
  z-index: 1;
}

/* ===== 見出し ===== */
.testimonials__head {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  padding: 0 120px;
  /* display: flex; */
  align-items: center;
  text-align: center;
  gap: 32px;
}
.testimonials__head_top {
  display: flex;
}
.testimonials__mizuhiki_top {
  width: 100%;
  display: contents;
  position: absolute;
  top: 100px;
  height: 60px;
}
.testimonials__mizuhiki_top img {
  width: 100%;
  height: 60px;
}

.testimonials__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #cd504f;
  white-space: nowrap;
}
.testimonials__title_bl {
  color: #3c799f !important;
}

.testimonials__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  white-space: nowrap;
}

/* ===== スライダーラッパー ===== */
.testimonials__slider-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1440px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 72px;
}

/* ===== 矢印ボタン ===== */
.testimonials__arrow {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  /* justify-content: center; */
  transition: opacity 0.2s ease;
}

.testimonials__arrow:hover {
  opacity: 0.7;
}

.testimonials__arrow img {
  width: 48px;
  height: 48px;
  display: block;
}

.testimonials__arrow:hover .concept__button-arrow--default {
  opacity: 0;
}

.testimonials__arrow:hover .concept__button-arrow--hover {
  opacity: 1;
}

/* ===== スライダー本体 ===== */
.testimonials__slider {
  flex: 1;
  overflow: hidden;
  margin-top: 60px;
}

.testimonials__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 50px;
  transition: transform 0.4s ease;
}

/* ===== スライド ===== */
.testimonials__slide {
  flex-shrink: 0;
  width: 388px; /* 336px(画像幅) + padding 20px×2 */
}

/* ===== カード ===== */
.voice-card {
  background-color: #fcfcfc;
  border: 1px solid #b39700;
  border-radius: 16px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.05);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding: 20px;
}

.voice-card__image {
  width: 100%;
  height: 220px;
  overflow: hidden;
  border-radius: 8px;
}

.voice-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.voice-card__footer {
  display: flex;
  align-items: flex-end;
  gap: 24px;
}

.voice-card__avatar {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
}

.voice-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.voice-card__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.voice-card__comment {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #3c799f;
}

.voice-card__profile {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
}

/* ===== ドット ===== */
.testimonials__dots {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.testimonials__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #b39700;
  opacity: 0.3;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.testimonials__dot.is-active {
  opacity: 1;
  width: 24px;
  border-radius: 4px;
}

/* ===== ボタン ===== */
.testimonials__button {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 176px;
  height: 50px;
  padding: 9px 41px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.testimonials__button:hover {
  opacity: 0.7;
  background-color: #3c799f;
  color: #fff;
}

.testimonials__button-arrow {
  width: 6px;
  height: 10px;
  display: block;
}

.testimonials__button:hover .concept__button-arrow--default {
  opacity: 0;
}

.testimonials__button:hover .concept__button-arrow--hover {
  opacity: 1;
}

/* ===== 非活性ボタン ===== */
.testimonials__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}
/* ============================
  お喜びの声 SP CSS
============================= */

@media (min-width: 1025px) {
  .testimonials__swipe-hint,
  .testimonials__more-btn {
    display: none;
  }
}

/* ===== お喜びの声 SP ===== */
@media (max-width: 767px) {
  .testimonials {
    padding: 40px 20px;
    background-color: #f2f3f7;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    min-height: auto;
  }

  .testimonials__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 0 0px;
  }

  .testimonials__eyebrow {
    font-family: "Manrope", sans-serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    color: #b39700;
    white-space: nowrap;
  }

  .testimonials__title {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    color: #cd504f;
    text-align: center;
    white-space: nowrap;
    margin: 0;
  }

  .testimonials__divider {
    width: 104px;
    height: 20px;
    display: block;
    object-fit: contain;
  }

  /* 矢印・ドット・PCボタン非表示 */
  .testimonials__arrow {
    display: none !important;
  }

  .testimonials__dots {
    display: none;
  }

  /* .testimonials__button {
    display: none;
  } */

  .testimonials__slider-wrap {
    display: block !important;
    position: static;
    padding: 0;
    width: 100% !important;
    gap: 0;
    padding: 0 0% !important;
  }

  .testimonials__slider {
    /* width: 350px; */
    max-width: 100%;
    overflow: auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    /* overflow: unset; ← この行を削除 */
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    margin-top: 20px;
  }

  .testimonials__slider::-webkit-scrollbar {
    display: none;
  }
  .testimonials {
    /* overflow: hidden; */
    width: 100%;
    /* max-width: 100vw; */
    box-sizing: border-box;
  }
  /* トラック */
  .testimonials__track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 24px;
    width: max-content;
    transform: none !important;
    transition: none !important;
    align-items: stretch;
  }

  /* 各スライド */
  .testimonials__slide {
    flex-shrink: 0;
    /* width: 306px; */
    scroll-snap-align: start;
    width: auto;
  }

  /* カード */
  .voice-card {
    width: 274px;
    height: 320px;
    background-color: #fcfcfc;
    border: 1px solid #b39700;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
    padding: 16px 20px 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow: hidden;
  }

  .voice-card__image {
    width: 100%;
    height: 182px;
    overflow: hidden;
    flex-shrink: 0;
  }

  .voice-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .voice-card__footer {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
  }

  .voice-card__avatar {
    flex-shrink: 0;
    width: 70px;
    height: 70px;
  }

  .voice-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
  }

  .voice-card__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
  }

  .voice-card__comment {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #3c799f;
  }

  .voice-card__profile {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 21px;
    color: #333;
    white-space: nowrap;
  }

  .testimonials__swipe-hint {
    display: block;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.4;
    color: #3c799f;
    white-space: pre;
    margin: 0;
    z-index: 20;
  }

  .testimonials__more-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 176px;
    height: 50px;
    padding: 9px 41px;
    border: 1px solid #3c799f;
    border-radius: 9999px;
    background-color: #fcfcfc;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    color: #3c799f;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.2s ease;
  }

  .testimonials__more-btn:hover {
    opacity: 0.7;
  }
}
/* ============================
  Clinic（院内の様子）
  カラー定義
  ゴールド #B39700 / はなだ色 #3C799F
  黒 #333333 / 白 #FCFCFC
============================= */

.clinic {
  position: relative;
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  overflow: hidden;
}
.atmosphere-line {
  position: absolute;
  bottom: 0;
  right: 0;
}

/* ===== 見出し ===== */
.clinic__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 672px;
  text-align: center;
}

.clinic__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.clinic__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.clinic__divider {
  width: 104px;
  height: 20px;
  display: block;
}

.clinic__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== 写真3枚 ===== */
.clinic__photos {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1200px;
}

.clinic__photo {
  width: 384px;
  height: 240px;
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
}

.clinic__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== 来院フロー ===== */
.clinic__flow {
  position: relative;
  width: 100%;
  max-width: 1000px;
  padding: 64px 45px;
  background-color: #fcfcfc;
  border-radius: 14px;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  gap: 56px;
  z-index: 10;
}

/* フロー見出し */
.clinic__flow-head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: center;
  width: 100%;
}

.clinic__flow-title {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #333;
  text-align: center;
}

.clinic__flow-lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* フロー区切り横線 */
.clinic__flow-line {
  position: absolute;
  left: 45px;
  right: 45px;
  height: 1px;
  background-color: #333;
  top: 203px;
}

/* ===== ステップ ===== */
.clinic__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  width: 100%;
}

.clinic__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 184px;
  flex-shrink: 0;
}

/* 縦区切り線 */
.clinic__step-divider {
  width: 1px;
  min-height: 240px;
  flex-shrink: 0;
  margin: 0 24px;

  background: linear-gradient(
    to bottom,
    transparent 0,
    transparent 40px,
    #333 40px,
    #333 100%
  );
}

/* 番号バッジ */
.clinic__step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background-color: #3c799f;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
  flex-shrink: 0;
  z-index: 10;
  margin: 0 auto;
}

/* アイコン */
.clinic__step-icon {
  width: 75px;
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.clinic__step-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ラベル */
.clinic__step-label {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
}

/* 説明文 */
.clinic__step-text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: #333;
  text-align: left;
}

/* ===== ボタン ===== */
.clinic__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 176px;
  height: 50px;
  padding: 9px 41px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
  z-index: 1000;
}

.clinic__button:hover {
  opacity: 0.7;
  background-color: #3c799f;
  color: #fff;
}

.clinic__button-arrow {
  width: 6px;
  height: 10px;
  display: block;
}

.clinic__button:hover .concept__button-arrow--default {
  opacity: 0;
}

.clinic__button:hover .concept__button-arrow--hover {
  opacity: 1;
}
/* PC時はSP用ラッパーをリセット */
@media (min-width: 1025px) {
  .clinic__step-visual {
    display: contents;
  }

  .clinic__step-body {
    display: contents;
  }
}
@media (max-width: 1000px) {
  .clinic__step {
    width: 144px;
  }
}

@media (max-width: 767px) {
  .clinic {
    padding: 40px 0;
    gap: 24px;
  }
  /* 白いカードで全ステップを囲む */
  .clinic__steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    /* width: 350px; */
    max-width: 100%;
    background-color: #fcfcfc;
    border-radius: 16px;
    overflow: hidden;
  }

  /* 区切り線 */
  .clinic__step-divider {
    display: block;
    width: 90%;
    height: 1px;
    min-height: 1px;
    background-color: rgba(60, 121, 159, 0.7);
    padding: 0;
    margin: 0 auto;
  }
  .clinic__lead {
    padding: 0 20px;
    text-align: left;
    margin-top: 16px;
  }

  .clinic__title {
    font-size: 32px;
  }
  .clinic__eyebrow {
    font-size: 14px;
  }

  .clinic__photos {
    display: flex;
    gap: 12px;
    width: 100%;
  }
  .clinic__head {
    gap: 8px;
  }

  .clinic__photo {
    max-width: 300px;
    max-height: 200px;
    border-radius: 14px;
    overflow: hidden;
    flex-shrink: 0;
  }

  .clinic__flow-title {
    margin: 0;
    font-family: "Noto Serif JP";
    color: #3c799f;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 1px;
    text-align: center;
  }

  /* 各ステップ */
  .clinic__step {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 24px 16px 12px;
    width: 100%;
    box-sizing: border-box;
  }

  /* 番号＋アイコン縦積み */
  .clinic__step-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
  }

  .clinic__flow-line {
    display: none;
  }

  .clinic__step-num {
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background-color: #3c799f;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    color: #fcfcfc;
    flex-shrink: 0;
  }

  .clinic__step-icon {
    width: 72px;
    height: 72px;
    flex-shrink: 0;
  }

  .clinic__step-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* テキスト部分 */
  .clinic__step-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
  }

  .clinic__button {
    padding: 0;
    margin-top: 12px;
  }

  .clinic__step-label {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 18px;
    line-height: 1.5;
    color: #3c799f;
    text-align: left;
  }
  .clinic__flow {
    padding: 42px 0px 0;
    box-shadow: none;
    gap: 16px;
  }

  .clinic__step-text {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #333;
  }
  .clinic__flow-lead {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
    text-align: center;
    padding: 0 20px;
    text-align: left;
  }
}
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 0.7s ease,
    transform 0.7s ease;
}

.fade-up.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ============================
  Instagram
  カラー定義
  はなだ色 #3C799F / ゴールド #B39700
  背景グレー #F2F3F7 / 白 #FCFCFC
============================= */

.instagram {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* ===== 見出し ===== */
.instagram__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.instagram__title-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.instagram__icon {
  width: 44px;
  height: 44px;
  display: block;
  flex-shrink: 0;
}

.instagram__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.instagram__handle {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

/* ===== スライダーラッパー ===== */
.instagram__slider-wrap {
  width: 100%;
  max-width: 1390px;
  display: flex;
  align-items: center;
  gap: 24px;
}

/* ===== 矢印ボタン ===== */
.instagram__arrow {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  /* display: flex; */
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease;
}

.instagram__arrow:hover {
  opacity: 0.7;
}

.instagram__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}

.instagram__arrow img {
  width: 48px;
  height: 48px;
  display: block;
}
.instagram__arrow:hover .concept__button-arrow--default {
  opacity: 0;
}

.instagram__arrow:hover .concept__button-arrow--hover {
  opacity: 1;
}
/* ===== スライダー本体 ===== */
.instagram__slider {
  flex: 1;
  overflow: hidden;
}

.instagram__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 16px;
  transition: transform 0.4s ease;
}

/* ===== スライド ===== */
.instagram__slide {
  flex-shrink: 0;
  width: 300px;
  height: 300px;
}

/* ===== 投稿セル ===== */
.instagram__post {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: #fff;
  border: 1px solid rgba(192, 199, 207, 0.3);
  transition: opacity 0.2s ease;
}

.instagram__post:hover {
  opacity: 0.85;
}

.instagram__post img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== ドット ===== */
.instagram__dots {
  display: none;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.instagram__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #b39700;
  opacity: 0.3;
  border: none;
  padding: 0;
  cursor: pointer;
  transition:
    opacity 0.2s ease,
    width 0.2s ease,
    border-radius 0.2s ease;
}

.instagram__dot.is-active {
  opacity: 1;
  width: 24px;
  border-radius: 4px;
}

/* ===== Instagram SP ===== */
@media (max-width: 767px) {
  .instagram {
    padding: 40px 0px;
    background-color: #f2f3f7;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  /* 見出し */
  .instagram__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
  }

  .instagram__title-row {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .instagram__icon {
    width: 32px;
    height: 32px;
    display: block;
    flex-shrink: 0;
  }

  .instagram__title {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 2.24px;
    color: #3c799f;
    margin: 0;
    white-space: nowrap;
  }

  .instagram__handle {
    margin: 0;
    font-family: "Manrope", sans-serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 1.6px;
    color: #b39700;
    white-space: nowrap;
  }

  /* スライダーラッパー：矢印非表示 */
  .instagram__slider-wrap {
    width: 100%;
    position: relative;
  }

  .instagram__arrow {
    display: none;
  }

  /* スライダー本体：横スクロール */
  .instagram__slider {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    margin: 0 20px;
  }

  .instagram__slider::-webkit-scrollbar {
    display: none;
  }

  /* トラック */
  .instagram__track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    width: max-content;
    transform: none !important;
    transition: none !important;
  }

  /* 各スライド：300px正方形 */
  .instagram__slide {
    width: 300px;
    height: 300px;
    flex-shrink: 0;
    scroll-snap-align: start;
  }

  .instagram__post {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(192, 199, 207, 0.3);
    background-color: #fff;
  }

  .instagram__post img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* ドット非表示 */
  .instagram__dots {
    display: none;
  }

  /* スワイプ誘導テキスト */
  .instagram__swipe-hint {
    display: block !important;
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #3c799f;
    text-align: center;
    width: 100%;
  }
}
.instagram__swipe-hint {
  display: none;
}

/* @media (max-width: 480px) {
  .instagram__slide {
    width: calc(100vw - 120px);
    height: calc(100vw - 120px);
  }
} */
.line-stream {
  overflow: hidden;
}

.line-stream img {
  display: block;
  width: 100%;
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1.4s ease;
}

.line-stream.is-show img {
  clip-path: inset(0 0 0 0);
}

/* ========================================
   Instagram / Smash Balloon 調整
======================================== */

.instagram__feed {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

/* Smash Balloon 全体 */
.instagram__feed #sb_instagram {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

/* Smash Balloon標準ヘッダーを非表示 */
.instagram__feed .sb_instagram_header,
.instagram__feed .sbi_header,
.instagram__feed .sbi_header_text {
  display: none !important;
}

/* 投稿エリア */
.instagram__feed #sbi_images {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 16px !important;

  width: max-content !important;
  padding: 0 !important;
  margin: 0 !important;

  transition: transform 0.4s ease;
}

/* 1投稿 */
.instagram__feed #sbi_images .sbi_item {
  float: none !important;

  flex: 0 0 300px !important;
  width: 300px !important;
  height: 340px !important;

  padding: 0 !important;
  margin: 0 !important;
}

/* 投稿リンク */
.instagram__feed #sbi_images .sbi_photo {
  display: block !important;

  width: 300px !important;
  height: 340px !important;

  border-radius: 8px;
  overflow: hidden;

  background-size: cover !important;
  background-position: center !important;
}

/* 画像 */
.instagram__feed #sbi_images .sbi_photo img {
  width: 100% !important;
  height: 100% !important;

  object-fit: cover !important;
}

/* Load More / Followボタンを非表示 */
.instagram__feed #sbi_load,
.instagram__feed .sbi_follow_btn {
  display: none !important;
}

@media (max-width: 767px) {
  /* ラッパー */
  .instagram__slider-wrap {
    width: 100%;
    min-width: 0;
  }

  /* 横スクロール領域 */
  .instagram__feed {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }

  .instagram__feed::-webkit-scrollbar {
    display: none;
  }

  /* Smash Balloon全体 */
  .instagram__feed #sb_instagram {
    width: max-content !important;
    max-width: none !important;
  }

  /* 投稿トラック */
  .instagram__feed #sbi_images {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    transform: none !important;
    transition: none !important;
  }

  /* 投稿 */
  .instagram__feed #sbi_images .sbi_item {
    flex: 0 0 300px !important;
    width: 300px !important;
    height: 340px !important;
    scroll-snap-align: start;
  }

  /* PC用矢印を非表示 */
  .instagram__arrow {
    display: none !important;
  }
}
/* ============================
  Note & QA（院長ノート・よくある質問）バナーエリア
  カラー定義
  はなだ色 #3C799F / ゴールド #B39700
  黒 #333333 / 白 #FCFCFC
============================= */

.note-qa {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.note-qa__inner {
  display: flex;
  gap: 48px;
  align-items: stretch;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
}

/* ===== カード共通 ===== */
.note-qa-card {
  position: relative;
  width: 476px;
  height: 198px;
  padding: 41px 49px;
  border-radius: 14px;
  border: 1px solid rgba(60, 121, 159, 0.1);
  box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.1);
  overflow: hidden;
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.note-qa-card--note:hover {
  background-color: rgba(60, 121, 159, 0.3);
}
.note-qa-card--qa:hover {
  background-color: rgba(179, 151, 0, 0.2);
  border-color: rgba(60, 121, 159, 0.1);
}

/* ===== 背景画像 ===== */
.note-qa-card__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 14px;
  overflow: hidden;
  opacity: 0.6;
}

.note-qa-card__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 院長ノート：ノートの画像を右寄せ気味に表示 */
.note-qa-card--note .note-qa-card__bg img {
  object-position: right center;
}

/* よくある質問：Q&A画像を右端に表示 */
.note-qa-card--qa .note-qa-card__bg img {
  object-position: right center;
}

/* ===== オーバーレイ ===== */
.note-qa-card__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 14px;
}

.note-qa-card__overlay--blue {
  background-color: rgba(60, 121, 159, 0.1);
}

.note-qa-card__overlay--blue:hover {
  background-color: rgba(60, 121, 159, 0.3);
}

.note-qa-card__overlay--gold {
  background-color: rgba(179, 151, 0, 0.05);
}

/* ===== コンテンツ ===== */
.note-qa-card__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 290px;
}

.note-qa-card__text-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* タイトル */
.note-qa-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 42px;
  line-height: 1.5;
  letter-spacing: 4.2px;
  color: #3c799f;
}

/* 説明文 */
.note-qa-card__desc {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* リンク */
.note-qa-card__link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  white-space: nowrap;
}

.note-qa-card__link-icon {
  width: 16px;
  height: 16px;
  display: block;
  flex-shrink: 0;
}

/* ===== レスポンシブ ===== */
@media (max-width: 1200px) {
  .note-qa__inner {
    gap: 24px;
    margin: 0 24px;
  }
  .note-qa-card {
    width: 40%;
    height: auto;
    padding: 31px 39px;
  }
}

@media (max-width: 767px) {
  .note-qa {
    padding: 40px 0px;
  }

  .note-qa__inner {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .note-qa-card {
    width: 100%;
    max-width: 350px;
    height: 171px;
    min-height: unset;
    padding: 0;
  }

  .note-qa-card__title {
    font-size: 30px;
    letter-spacing: 3px;
  }

  .note-qa-card__desc {
    font-size: 14px;
    letter-spacing: 0.7px;
  }
  /* ===== コンテンツ ===== */
  .note-qa-card__body {
    margin: 20px 0 20px 28px;
    gap: 10px;
  }
  .note-qa-card__bg {
    opacity: 0.3;
  }
  /* よくある質問：Q&A画像を右端に表示 */
  .note-qa-card--qa .note-qa-card__bg img {
    width: 121%;
    height: 164%;
    top: -48%;
    left: -4%;
    object-position: right;
  }
}

/* ============================
  CTA（お問合せ・ご予約）
  カラー定義
  はなだ色 #3C799F / ゴールド #B39700
  LINEグリーン #06C755 / 白 #FCFCFC / 黒 #333333
============================= */

.cta {
  width: 100%;
  padding: 80px 0px;
  background-color: #3c799f;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* ===== テキストグループ ===== */
.cta__text-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}

.cta__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #fcfcfc;
  white-space: nowrap;
}

.cta__sub {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

.cta__reservation-note {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #b39700;
}

.cta__desc {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
}

/* ===== ボタン群 ===== */
.cta__buttons {
  display: flex;
  align-items: stretch;
  gap: 48px;
  flex-wrap: wrap;
  justify-content: center;
}

/* ===== CTAボタン共通 ===== */
.cta-btn {
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: 14px;
  text-decoration: none;
  filter: drop-shadow(0px 4px 2px rgba(0, 0, 0, 0.25));
  transition: opacity 0.2s ease;
  flex-shrink: 0;
  max-width: 380px;
}

.cta-btn:hover {
  opacity: 0.85;
}

/* ===== LINE ===== */
.cta-btn--line {
  background-color: #06c755;
  padding: 20px 56px;
}

/* ===== 電話 ===== */
.cta-btn--tel {
  background-color: #b39700;
  padding: 16px 64px 20px 48px;
}

/* ===== EPARK ===== */
.cta-btn--epark {
  background-color: #fcfcfc;
  padding: 20px 96px;
}

/* ===== アイコン ===== */
.cta-btn__icon {
  width: 40px;
  height: 40px;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

/* ===== テキストグループ ===== */
.cta-btn__text-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 200px;
}

.cta-btn__text-group--epark {
  /* EPARKはアイコンなしで中央配置 */
  align-items: center;
}

/* メインテキスト */
.cta-btn__main {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: normal;
  letter-spacing: 1px;
  color: #fcfcfc;
  white-space: nowrap;
}

.cta-btn__main--tel {
  font-size: 26px;
  letter-spacing: 1.3px;
}

/* 下線SVG */
.cta-btn__underline {
  display: block;
  width: 100%;
  height: 2px;
}

/* サブテキスト */
.cta-btn__sub {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: normal;
  letter-spacing: 1px;
  color: #fcfcfc;
  white-space: nowrap;
}

.cta-btn__sub--dark {
  color: #333;
}

/* EPARKロゴ */
.cta-btn__epark-logo {
  width: 163px;
  height: 35px;
  display: block;
  object-fit: contain;
}

/* ===== CTA レスポンシブ ===== */
@media (max-width: 900px) {
  .cta {
    padding: 72px 0px;
    gap: 24px;
  }

  .cta__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: nowrap;
    text-align: center;
  }

  .cta__sub {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .cta__reservation-note {
    font-size: 20px;
    letter-spacing: 1px;
    color: #b39700;
    white-space: nowrap;
  }

  .cta__desc {
    font-size: 16px;
    letter-spacing: 0.8px;
    text-align: center;
    white-space: normal;
    width: 350px;
    max-width: 100%;
  }

  /* ボタン群：縦1列 */
  .cta__buttons {
    /* flex-direction: column; */
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 344px;
  }

  /* LINE */
  .cta-btn--line {
    /* width: 100%;
    max-width: 344px; */
    padding: 18px 0px;
    border-radius: 13px;
    justify-content: center;
    box-shadow: 0 3.684px 1.842px rgba(0, 0, 0, 0.25);
  }

  .cta-btn--line .cta-btn__icon {
    width: 60px;
    height: 60px;
  }

  .cta-btn--line .cta-btn__main {
    font-size: 22px;
    letter-spacing: 1px;
    white-space: nowrap;
  }

  .cta-btn--line .cta-btn__sub {
    font-size: 16px;
    letter-spacing: 1px;
    white-space: nowrap;
  }

  /* TEL */
  .cta-btn--tel {
    /* width: 100%;
    max-width: 344px; */
    padding: 18px 0px;
    border-radius: 13px;
    justify-content: center;
    box-shadow: 0 3.784px 1.892px rgba(0, 0, 0, 0.25);
  }

  .cta-btn--tel .cta-btn__icon {
    width: 60px;
    height: 60px;
  }

  .cta-btn--tel .cta-btn__main--tel {
    font-size: 22px;
    letter-spacing: 1.1px;
    white-space: nowrap;
  }

  .cta-btn--tel .cta-btn__sub {
    font-size: 16px;
    letter-spacing: 1px;
    white-space: nowrap;
  }

  /* EPARK */
  .cta-btn--epark {
    /* width: 100%;
    max-width: 344px; */
    padding: 17px 0px;
    border-radius: 14px;
    justify-content: center;
    box-shadow: 0 3.944px 1.972px rgba(0, 0, 0, 0.25);
  }

  .cta-btn__epark-logo {
    width: 160px;
    height: 34px;
    display: block;
    object-fit: contain;
  }

  .cta-btn__sub--dark {
    font-size: 16px;
    letter-spacing: 2px;
    white-space: nowrap;
  }
  .cta-btn {
    width: 100%;
  }
}

/* ============================
  Access（アクセス）
  カラー定義
  はなだ色 #3C799F / ゴールド #B39700
  あかべに #CD504F / 黒 #333333 / 白 #FCFCFC
  グレー #EDEEF1 / ボーダー #B9B9B9
============================= */

.access {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.access__inner {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 40px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

/* ===== 左：地図 ===== */
.access__map {
  width: 560px;
  /* height: 677px; */
  border-radius: 14px;
  overflow: hidden;
  background-color: #edeef1;
  flex-shrink: 0;
}

.access__map-iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
}

/* ===== 右：院情報 ===== */
.access__info {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.access__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  padding: 0 20px;
}

/* ===== 詳細リスト ===== */
.access__details {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.access__row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.access__row--tel {
  align-items: center;
}

/* アイコン */
.access__icon-wrap {
  padding-top: 3px;
  flex-shrink: 0;
}

.access__icon--pin {
  width: 16px;
  height: 20px;
  display: block;
}

.access__icon--clock {
  width: 20px;
  height: 20px;
  display: block;
}

.access__icon--tel {
  width: 18px;
  height: 21px;
  display: block;
}

/* テキスト本体 */
.access__row-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
}
.access__row02 {
  flex-direction: row;
}

.access__label {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.access__value {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== 受付時間テキスト ===== */
.access__hours {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 4px;
  margin-bottom: 24px;
}

.access__hours-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.access__hours-day {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  white-space: nowrap;
  flex-shrink: 0;
}

.access__hours-time {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.access__hours-time--sun {
  color: #cd504f;
}

.access__hours-note {
  margin: 4px 0 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== 診療表 ===== */
.access__table-wrap {
  width: 100%;
  overflow-x: auto;
}

.access__table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 4px;
  /* overflow: hidden; */
  border: 1px solid #b9b9b9;
  table-layout: fixed;
}

/* ヘッダー行 */
.access__th {
  background-color: #3c799f;
  border-left: 1px solid #b9b9b9;
  border-top: 1px solid #b9b9b9;
  padding: 10px 12px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: #fcfcfc;
  text-align: center;
  white-space: nowrap;
}

.access__th--label {
  width: 140px;
}

/* .access__th:first-child,
.access__td:first-child {
  border-left: none;
} */

/* ボディ行 */
.access__td {
  /* height: 52px; */
  background-color: #fcfcfc;
  border-left: 1px solid #b9b9b9;
  border-top: 1px solid #b9b9b9;
  padding: 10px 12px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
  vertical-align: middle;
}

.access__td--label {
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
  border-left: 1px solid #b9b9b9;
}

/* ===== 電話 ===== */
.access__tel-number {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #333;
  text-decoration: none;
  white-space: nowrap;
  margin-right: 16px;
}

.access__tel-number:hover {
  opacity: 0.7;
}

.access__reservation-note {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #b39700;
  white-space: nowrap;
  margin-top: 4px;
}

.access__calendar-icon {
  width: 16px;
  height: 16px;
  display: block;
  flex-shrink: 0;
}

/* ===== レスポンシブ ===== */
/* ===== アクセス レスポンシブ ===== */
@media (max-width: 1100px) {
  .access {
    padding: 40px 0px;
    background-color: #fcfcfc;
  }

  .access__inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    max-width: 500px;
    margin: 0 auto;
  }

  /* マップ */
  .access__map {
    width: 100%;
    max-width: 350px;
    height: 240px;
    border-radius: 16px;
    overflow: hidden;
    background-color: #f5f5f5;
    margin: 0 20px;
  }

  .access__map iframe {
    width: 100%;
    height: 100%;
  }

  /* 右側コンテンツ */
  .access__info {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 32px;
  }

  .access__title {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 1.5;
    letter-spacing: 2px;
    color: #3c799f;
    margin: 0;
  }

  /* 詳細情報 */
  .access__details {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  /* 各行 */
  .access__row {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    /* width: 100%; */
    padding-left: 16px;
  }

  .access__icon-wrap {
    padding-top: 3px;
    flex-shrink: 0;
    padding-top: 10px;
  }

  .access__icon {
    width: 16px;
    height: 20px;
    display: block;
    object-fit: contain;
  }

  .access__icon--clock {
    width: 20px;
    height: 20px;
  }

  .access__row-body {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 1;
  }

  .access__label {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
  }

  .access__value {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
  }

  /* 受付時間テキスト */
  .access__hours {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 100%;
    margin-bottom: 0;
    font-family: "Sawarabi Gothic", sans-serif;
  }
  .font-s {
    font-family: "Sawarabi Gothic", sans-serif;
  }

  .access__hours-row {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    /* flex-wrap: wrap; */
  }

  .access__hours-day {
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
  }

  .access__hours-time {
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #333;
  }

  .access__hours-time--sun {
    color: #cd504f;
  }

  /* 診療表 */
  .access__table-wrap {
    width: 90%;
    overflow-x: auto;
    margin: 0 auto;
    /* padding: 0 10px; */
  }

  .access__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
  }

  .access__th,
  .access__td {
    font-size: 13px;
    padding: 6px 0px;
    text-align: center;
    border: 1px solid #b9b9b9;
  }

  .access__th--label,
  .access__td--label {
    font-size: 11px;
    width: 90px;
    text-align: center;
  }

  /* 電話番号 */
  .access__row--tel {
    justify-content: center;
    align-items: start;
    margin: 0 auto;
  }

  .access__row02 {
    /* align-items: center; */
    gap: 8px;
    margin: 0 auto;
  }

  .access__tel-number {
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 22px;
    line-height: 1.4;
    letter-spacing: 1px;
    color: #333;
    text-decoration: none;
    white-space: nowrap;
  }

  .access__reservation-note {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
    color: #b39700;
    white-space: nowrap;
    /* justify-content: center; */
    width: 100%;
  }

  .access__calendar-icon {
    width: 16px;
    height: 16px;
    display: block;
    object-fit: contain;
  }

  /* お支払い方法カード */
  .access__payment {
    background-color: #fcfcfc;
    border: 1px solid #333;
    border-radius: 14px;
    padding: 16px 10px !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    width: 90%;
    box-sizing: border-box;
    margin: 0 20px;
  }

  .access__payment-text {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 0.7px;
    color: #333;
    text-align: center;
  }

  .access__payment-logos {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    justify-content: center;
    width: 100%;
  }

  .access__payment-logo {
    height: 30px;
    width: auto;
    display: block;
    object-fit: contain;
  }
  .access__payment-logo {
    height: 30px;
    width: auto;
    display: block;
    object-fit: contain;
  }
}

/* マップ高さ変更 */
/* .access__map {
  height: 677px;
} */

/* ===== 支払い方法 ===== */
.access__payment {
  /* width: 100%; */
  padding: 16px 36px;
  border: 1px solid #333;
  border-radius: 14px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}

.access__payment-text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.7px;
  color: #333;
  width: 100%;
  text-align: center;
}

.access__payment-logos {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.access__payment-logo {
  /* height: 32px; */
  width: auto;
  display: block;
  object-fit: contain;
}
.access__payment-logos img:nth-child(3) {
  height: 24px;
}
.access__payment-logos img:nth-child(6) {
  width: 44px;
}
/* ============================
  Footer
  カラー定義
  黒 #333333 / 背景グレー #F2F3F7
============================= */

.footer {
  position: relative;
  width: 100%;
  min-height: 456px;
  background-color: #f2f3f7;
  padding: 64px 0px 0px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  overflow: hidden;
}

/* ===== 下部装飾SVG（かなえむすび） ===== */
.footer__decoration {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 86px;
  height: 82px;
  pointer-events: none;
  z-index: 0;
}

.footer__decoration img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== インナー（ロゴ＋ナビ） ===== */
.footer__inner {
  position: relative;
  z-index: 1;
  display: flex;
  /* gap: 184px; */
  align-items: flex-start;
  justify-content: space-between;
  margin: 40px 120px;
}

/* ===== ブランドエリア（左） ===== */
.footer__brand {
  width: 480px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.footer__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.footer__logo-mark {
  width: 40px;
  height: 40px;
  display: block;
  flex-shrink: 0;
}

.footer__logo-text {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: 1.4px;
  color: #333;
  white-space: nowrap;
}

.footer__catch {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}

/* ===== ナビゲーション（右） ===== */
.footer__nav {
  display: flex;
  gap: 64px;
  align-items: flex-start;
  flex-shrink: 0;
}

/* リスト共通 */
.footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 140px;
}

.footer__nav-item {
  display: block;
}

.footer__nav-link {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.footer__nav-link:hover {
  opacity: 0.6;
}

/* 施術メニュー詳細グループ */
.footer__nav-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  /* width: 136px; */
  padding-bottom: 28px;
}

.footer__nav-group-heading {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
  color: rgba(51, 51, 51, 0.7);
  text-decoration: underline;
  text-decoration-skip-ink: none;
}

.footer__nav-group .footer__nav-list {
  width: 100%;
}

/* ===== コピーライト ===== */
.footer__copyright {
  position: relative;
  z-index: 1;
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 12px;
  line-height: 16px;
  color: rgba(51, 51, 51, 0.8);
  text-align: center;
  width: 100%;
  margin: 40px 0;
  align-items: center;
}

.footer__copyright span {
  font-size: 16px;
  margin-bottom: -4px;
}

/* ===== フッター レスポンシブ ===== */
@media (max-width: 1200px) {
  .footer__inner {
    gap: 32px;
    padding: 0 20px;
    width: 100%;
    max-width: 390px;
    margin: 20px 5%;
    box-sizing: border-box;
  }
  .footer__nav {
    gap: 20px;
  }
  .footer__nav-list {
    width: 120px;
  }
  .footer__brand {
    width: 300px;
  }
}
@media (max-width: 900px) {
  .footer {
    padding: 56px 0 32px;
    background-color: #f2f3f7;
  }

  .footer__decoration {
    display: none; /* 装飾は非表示 */
  }
  .footer__decoration_sp {
    width: 100%;
  }
  .footer__decoration_sp img {
    width: 100%;
  }

  .footer__inner {
    flex-direction: column;
    gap: 32px;
    padding: 0 20px;
    width: 100%;
    max-width: 390px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* ブランド */
  .footer__brand {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .footer__logo {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .footer__logo-mark {
    width: 36px;
    height: 36px;
    display: block;
    object-fit: contain;
  }

  .footer__logo-text {
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 1.96px;
    color: #333;
    white-space: nowrap;
  }

  .footer__catch {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.8;
    color: #333;
    width: 350px;
    max-width: 100%;
    white-space: normal;
  }

  /* ナビゲーション：2列横並び */
  .footer__nav {
    display: flex;
    flex-direction: row;
    gap: 24px;
    align-items: flex-start;
    width: 350px;
    max-width: 100%;
    flex-wrap: nowrap;
  }

  /* 列1：メインリンク */
  .footer__nav > .footer__nav-list {
    width: 163px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  /* 列2：施術メニュー詳細 */
  .footer__nav-group {
    width: 163px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .footer__nav-group-heading {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #3c799f;
    white-space: nowrap;
  }

  .footer__nav-group .footer__nav-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  .footer__nav-item {
    list-style: none;
  }

  .footer__nav-link {
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: #333;
    text-decoration: none;
  }

  /* 列3：その他リンク（非表示→縦並びで下に） */
  .footer__nav > ul:last-child {
    display: none; /* 2列デザインに合わせて非表示 */
  }

  /* ユーティリティリンク（よくある質問等）：別に表示 */
  .footer__utility {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 350px;
    max-width: 100%;
  }

  /* コピーライト */
  .footer__copyright {
    margin: 0;
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 12px;
    line-height: 1.6;
    color: rgba(51, 51, 51, 0.8);
    text-align: center;
    width: 350px;
    max-width: 100%;
  }
}

/* ===== パンくずリスト ===== */
.breadcrumb {
  /* width: 100%; */
  padding: 8px 0px 8px 80px;
  /* margin: 8px 0px 8px 80px; */
  background-color: #fcfcfc;
}

.breadcrumb02 {
  /* width: 100%; */
  /* padding: 8px 80px; */
  margin: 8px 0px 8px 80px;
  background-color: #fcfcfc;
  position: absolute;
  top: 0;
  left: 0;
}

.breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
}

.breadcrumb__item {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 23.4px;
  color: rgba(51, 51, 51, 0.7);
}

/* 区切り文字「＞」 */
.breadcrumb__item + .breadcrumb__item::before {
  content: ">";
  margin: 0 4px;
}

.breadcrumb__link {
  color: rgba(51, 51, 51, 0.7);
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.breadcrumb__link:hover {
  opacity: 0.6;
}
@media (max-width: 767px) {
  .breadcrumb {
    padding: 8px 0px 8px 20px;
  }
  .breadcrumb02 {
    margin: 8px 0px 8px 20px;
  }
  .breadcrumb03 {
    /* width: 100%; */
    /* padding: 8px 80px; */
    padding: 8px 0px 8px 20px;
    background-color: #fcfcfc;
  }
}
/*========================================
about.html
========================================*/
.page-hero {
  position: relative;
  width: 100%;
  height: 440px;
  background-color: #fcfcfc;
  overflow: hidden;
  display: flex;
  align-items: center;
  /* padding-left: 80px; */
}

/* ===== 右：背景画像エリア ===== */
.page-hero__bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 776px;
  height: 100%;
  pointer-events: none;
}

.page-hero__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
  top: 0.09%;
  left: 0;
  max-width: none;
  object-fit: cover;
  display: block;
}

/* 左から白→透明のグラデーションオーバーレイ */
.page-hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    89.7deg,
    #fcfcfc 6.17%,
    rgba(252, 252, 252, 0.3) 24.91%,
    rgba(252, 252, 252, 0) 99.86%
  );
}
.page-hero__bg-overlay02 {
  position: absolute;
  inset: 0;
  /* background: linear-gradient(
    89.7deg,
    #fcfcfc 6.17%,
    rgba(252, 252, 252, 0.3) 24.91%,
    rgba(252, 252, 252, 0) 99.86%
  ); */
}

/* ===== 左：コンテンツ ===== */
.page-hero__content {
  position: relative;
  z-index: 1;
  width: 624px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding: 24px 40px 38px 80px;
}

/* ===== タイトルブロック ===== */
.page-hero__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 0 16px 0 24px;
  width: 100%;
}

.page-hero__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 56px;
  line-height: 1.6;
  letter-spacing: 2.8px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

.page-hero__divider {
  width: 104px;
  height: 20px;
  display: block;
}

.page-hero__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
}
.page-hero__lead span {
  color: #b39700;
}
/* ===== ハビットコントロールボタン ===== */
.page-hero__sub-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 44px;
  padding: 2px 0px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.page-hero__sub-button:hover {
  opacity: 0.7;
}

.page-hero__sub-button-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* ===== CTAボタン群 =====
  style.css の .hero-cta を共通利用。
  配置のみここで制御。
============================= */
.page-hero__cta-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
}
.page-hero__cta-list .hero-cta__epark-logo {
  width: 120px;
}
.hero-cta__epark-logo02 {
  width: 100% !important;
  height: auto !important;
}
/* ===== page-hero SP ===== */
@media (max-width: 767px) {
  .page-hero {
    height: auto;
    padding: 40px 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #fcfcfc;
  }
  .page-hero--about {
    padding: 60px 0 40px;
  }

  /* 背景画像エリアを非表示 */
  .page-hero__bg {
    display: none;
  }

  /* コンテンツを縦積みに */
  .page-hero__content {
    position: static;
    width: 90%;
    max-width: 650px;
    padding: 0;
    gap: 16px;
    align-items: center;
  }

  /* 見出し */
  .page-hero__heading {
    padding: 0;
    gap: 16px;
    align-items: center;
  }

  .page-hero__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
    text-align: center;
    height: auto;
  }
  .page-hero__title02 {
    font-size: 30px;
  }

  .page-hero__divider {
    width: 104px;
    height: 20px;
    display: block;
  }

  .page-hero__lead {
    font-size: 15px;
    text-align: center;
    white-space: normal;
  }

  /* 院長写真を追加表示（about-heroのみ） */
  .page-hero--about .page-hero__heading::after {
    content: "";
    display: block;
    width: 100%;
    max-width: 100%;
    height: 220px;
    background-image: url("../image/about/about_hero_sp.jpg");
    background-size: cover;
    background-position: top center;
    border-radius: 16px;
    overflow: hidden;
  }

  /* ハビットコントロールボタン */
  .page-hero__sub-button {
    width: 320px;
    max-width: 100%;
    height: 56px;
  }

  /* CTAボタン群は非表示 */
  .page-hero__cta-list {
    display: none;
  }
}
/* ============================
  about-concept（当院について - コンセプト）
============================= */

.about-concept {
  position: relative;
  width: 100%;
  padding: 120px 0px 80px;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

.about-concept__inner {
  width: 100%;
  max-width: 1200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* ===== 見出し ===== */
.about-concept__head {
  /* display: flex; */
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  text-align: center;
}

.about-concept__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  margin-bottom: 16px;
}

.about-concept__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.about-concept__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
  text-align: center;
  width: 100%;
  margin-top: 16px;
}

/* ===== 意味ブロック（一・二） ===== */
.about-concept__blocks {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 100%;
}

.about-concept__block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 50px;
  gap: 24px;
}

/* バッジ（丸アイコン） */
.about-concept__badge {
  flex-shrink: 0;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background-color: #3c799f;
  box-shadow: 0 8px 12px rgba(44, 58, 71, 0.06);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.about-concept__badge-icon {
  width: 31px;
  height: 31px;
  display: block;
  object-fit: contain;
}

.about-concept__badge-label {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 11px;
  line-height: 19.8px;
  letter-spacing: 1.1px;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
}

/* テキスト */
.about-concept__block-text {
  flex: 1;
  max-width: 616px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.about-concept__block-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #3c799f;
  white-space: nowrap;
}

.about-concept__block-body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* 画像 */
.about-concept__block-image {
  flex-shrink: 0;
  width: 288px;
  height: 216px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(44, 58, 71, 0.06);
}

.about-concept__block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ===== 本文テキスト ===== */
.about-concept__body-text {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 24px;
}

.about-concept__body-text p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

.about-concept__accent {
  color: #cd504f;
}

/* ===== 4つの柱カード ===== */
.about-concept__pillars {
  display: flex;
  gap: 24px;
  align-items: stretch;
  justify-content: center;
  width: 100%;
  z-index: 100;
}

.pillar-card {
  flex: 1;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 24px 0 rgba(51, 51, 51, 0.08);
  padding: 32px 32px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.pillar-card__icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pillar-card__icon img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  display: block;
}

.pillar-card__title {
  margin: 0;
  padding-top: 8px;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 21px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}
.pillar-card__title02 {
  margin-top: 16px;
}

.pillar-card__title {
  display: flex;
  flex-direction: column;
  align-items: center; /* 左寄せなら削除 */
  line-height: 1.2;
}

.pillar-card__ruby {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}

.pillar-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}
.pillar-line {
  position: absolute;
  bottom: 8%;
  right: -4%;
  z-index: 10;
  width: 108%;
}

/* ===== 締めテキスト ===== */
.about-concept__closing {
  padding-top: 24px;
  width: 100%;
  z-index: 100;
}

.about-concept__closing p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}
.concept-line {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 0;
}
@media (max-width: 1100px) {
  .about-concept__block {
    padding: 0 10px;
  }
  .about-concept__block-image img {
    width: 100%;
  }
  .about-concept__block-text {
    width: 50%;
  }
  .about-concept__block-title {
    white-space: pre-wrap;
  }
}
/* ============================================================
   Section / Concept / About — SP（〜767px）
   ============================================================ */
@media (max-width: 767px) {
  .about-concept {
    /* 左右20px / 下40px。上の余白は前セクション側で確保されている想定のため0にしています。
       実装環境で詰まって見える場合はここに padding-top を追加してください。 */
    padding: 0 0px 40px;
  }

  .about-concept__inner {
    gap: 32px;
    padding: 0 20px;
    background-color: #fcfcfc;
  }

  /* ===== 見出し ===== */
  .about-concept__head {
    width: 90%;
    padding: 0 20px;
    background-color: #fcfcfc;
  }

  .about-concept__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
    margin-bottom: 8px;
  }

  .about-concept__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .about-concept__lead {
    font-size: 16px;
    letter-spacing: 0.8px;
    margin-top: 32px;
    text-align: left;
  }

  /* ===== 意味ブロック（一・二） ===== */
  .about-concept__blocks {
    gap: 32px;
  }

  .about-concept__block {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 24px 20px;
    gap: 16px;
    background-color: #fff;
    border-radius: 20px;
    box-shadow: 0 8px 24px 0 rgba(51, 51, 51, 0.08);
  }

  .about-concept__badge {
    width: 80px;
    height: 80px;
  }

  .about-concept__block-text {
    max-width: 100%;
    width: 90%;
    align-items: center;
    text-align: center;
  }

  .about-concept__block-title {
    font-size: 22px;
    white-space: normal;
    text-align: left;
    text-indent: -2em;
  }
  .about-concept__block-title span {
    display: none;
  }

  .about-concept__block-body {
    text-align: left;
  }

  .about-concept__block-image {
    width: 100%;
    max-width: 620px;
    height: 220px;
  }

  /* ===== 本文テキスト（背景ストーリー） ===== */
  .about-concept__body-text {
    padding: 0;
    gap: 20px;
  }

  .about-concept__body-text p {
    text-align: left;
    /* padding: 0 20px; */
  }

  /* ===== 4つの柱カード ===== */
  .about-concept__pillars {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 24px;
    /* width: 100%; */
  }

  .pillar-card {
    width: auto;
    flex: none;
    padding: 16px 0;
    gap: 0;
  }

  .pillar-card__text {
    margin-top: 8px;
  }

  .pillar-card__title {
    font-size: 18px;
  }

  .pillar-card__ruby {
    font-size: 9px;
  }

  .pillar-card__text {
    font-size: 14px;
  }

  /* PC用の装飾ラインはSPデザインに存在しないため非表示 */
  .pillar-line,
  .concept-line {
    display: none;
  }

  /* ===== 締めテキスト ===== */
  .about-concept__closing {
    padding-top: 0;
  }

  .about-concept__closing p {
    text-align: left;
    /* padding: 0 20px; */
  }
}

/* ============================
  ハビットコントロールとは
  カラー定義
  ゴールド #B39700 / はなだ色 #3C799F
  あかべに #CD504F / 黒 #333333
  背景グレー #EEEFF3
============================= */

.habit {
  position: relative;
  width: 100%;
  padding: 80px 0px;
  background-color: #eeeff3;
  overflow: hidden;
}

.habit__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding: 0 24px;
}

/* ===== 見出し ===== */
.habit__head {
  /* display: flex; */
  flex-direction: column;
  gap: 16px;
  width: 100%;
  text-align: center;
}

.habit__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  margin-bottom: 16px;
}

.habit__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

/* ===== サブリード ===== */
.habit__sublead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #cd504f;
  text-align: center;
  width: 100%;
}

/* ===== 画像＋テキスト横並び ===== */
.habit__feature {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  width: 100%;
  /* padding: 0 152px 0 0; */
  margin: 0 auto;
  max-width: 900px;
  z-index: 100;
}

.habit__feature-image {
  flex-shrink: 0;
  width: 308px;
  height: 308px;
  border-radius: 16px;
  overflow: hidden;
}

.habit__feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.habit__feature-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.habit__feature-heading {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 26px;
  line-height: 1.8;
  letter-spacing: 1.3px;
  color: #3c799f;
  width: 397px;
}

.habit__feature-body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== 2×2グリッドカード ===== */
.habit__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 96px);
  gap: 24px;
  width: 800px;
  z-index: 10;
}

.habit-card {
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 12px rgba(44, 58, 71, 0.06);
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  height: 96px;
}

.habit-card__icon {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.habit-card__icon02 {
  width: 100px;
  height: 100px;
}
.habit-card__icon03 {
  margin-left: 10px;
  margin-right: 8px;
}

.habit-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.habit-card__label {
  margin: 0;
  flex: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #cd504f;
  text-align: center;
  white-space: nowrap;
}
.habit-line {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 0;
}

@media (max-width: 767px) {
  .habit {
    padding: 40px 0px;
  }
  .habit__inner {
    gap: 32px;
    padding: 0;
  }
  .habit__head {
    width: 100%;
  }

  .habit__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
    margin-bottom: 8px;
  }
  .habit__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    padding: 0 20px;
  }
  .habit__sublead {
    font-size: 16px;
    letter-spacing: 0.8px;
    padding: 0 20px;
    width: auto;
    color: #333;
    text-align: left;
  }

  .habit__feature {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    max-width: 650px;
  }
  .habit__feature-image {
    width: 100%;
    max-width: 350px;
    height: 320px;
    border-radius: 0;
  }
  .habit__feature-text {
    gap: 32px;
    width: 90%;
    align-items: center;
  }
  .habit__feature-heading {
    width: 100%;
    font-size: 24px;
    letter-spacing: 0.72px;
    text-align: center;
  }
  .habit__feature-body {
    text-align: left;
  }

  .habit__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    margin: 0 auto;
    gap: 16px;
    width: auto;
    padding: 0 16px;
  }
  .habit-card {
    height: auto;
    min-height: 0;
    flex-direction: column;
    justify-content: center;
    padding: 16px 0px;
    gap: 10px;
    border-radius: 16px;
    width: 100%;
    width: 167px;
  }
  .habit-card__icon,
  .habit-card__icon02,
  .habit-card__icon03 {
    width: 80px;
    height: 80px;
    margin: 0;
  }
  .habit-card__icon02 img {
    object-fit: cover;
  }
  .habit-card__label {
    font-size: 14px;
    letter-spacing: 0;
    white-space: normal;
  }

  .habit-line {
    display: none;
  }
  .habit__feature-image img {
    height: auto;
  }
}

/* ============================
  院長紹介（DIRECTOR PROFILE）
  カラー定義
  ゴールド #B39700 / はなだ色 #3C799F
  黒 #333333 / 白 #FCFCFC
============================= */

.director {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  position: relative;
}

.director__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 56px;
}

/* ===== 見出し ===== */
.director__head {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  text-align: center;
}

.director__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.director__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.director__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* ===== ごあいさつカード ===== */
.director__greeting {
  width: 100%;
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 8px 12px rgba(44, 58, 71, 0.06);
  /* padding: 40px; */
  padding-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.director__greeting-heading {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #b39700;
  text-align: center;
  white-space: nowrap;
}

.director__greeting-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.director__greeting-body p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* ===== プロフィール（写真＋テキスト横並び） ===== */
.director__profile {
  display: flex;
  gap: 48px;
  align-items: flex-start;
  padding-top: 32px;
  position: relative;
  z-index: 100;
}

/* 左：写真 */
.director__photo {
  flex-shrink: 0;
  width: 400px;
  height: 530px;
  border-radius: 16px;
  overflow: hidden;
  position: sticky;
  top: 100px;
  align-self: flex-start;
}

.director__photo img {
  width: 100%;
  height: 110%;
  object-fit: cover;
  object-position: top;
  display: block;
  will-change: transform;
}

/* 右：コンテンツ */
.director__profile-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* 名前ブロック */
.director__name-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px 0 0 40px;
}

.director__name-row {
  display: flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
}

.director__role {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  flex-shrink: 0;
}

.director__name {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 36px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #3c799f;
}

.director__tagline {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
}

/* 基本情報 */
.director__meta {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0 40px;
}

.director__meta p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ひとこと */
.director__quote {
  border-top: 1px solid #3c799f;
  border-bottom: 1px solid #3c799f;
  padding: 40px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.director__quote-heading {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #b39700;
}

.director__quote-body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* 認定証 */
.director__certs {
  display: flex;
  gap: 64px;
  align-items: flex-start;
  justify-content: center;
  padding: 31px 80px 30px;
}

.director__cert {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
}

.director__cert img {
  display: block;
  /* box-shadow: 0 4px 4px rgba(0, 0, 0, 0.2); */
  width: 100%;
  height: auto;
  /* aspect-ratio: 600 / 826; */
  object-fit: cover;
}

.director__cert:first-child {
  width: 271px;
}

.director__cert:last-child {
  width: 263px;
}

.director__cert figcaption {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
  text-align: center;
  white-space: nowrap;
}
.director-line {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 10;
  width: 100%;
}
@media (max-width: 1000px) {
  .director {
    padding: 40px 0px;
  }
  .director__inner {
    gap: 24px;
  }

  .director__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }
  .director__divider {
    display: none;
  }

  .director__greeting {
    padding: 28px 0px;
    gap: 18px;
    margin: 0 auto;
    width: auto;
    box-shadow: 0 8px 24px 0 rgba(51, 51, 51, 0.08);
    width: 90%;
  }
  .director__greeting-heading {
    font-size: 24px;
    letter-spacing: 1.2px;
    line-height: 1.8;
    white-space: normal;
    color: var(--3-c-799-f, #3c799f);
  }
  .director__greeting-body p {
    text-align: left;
    padding: 0 20px;
  }

  .director__profile {
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 0 20px;
  }
  .director__profile-content,
  .director__name-block {
    display: contents;
  }
  .director__name-row {
    order: 1;
    flex-direction: column;
    align-items: center;
    gap: 0;
    white-space: normal;
    text-align: center;
  }
  .director__role {
    font-size: 18px;
  }
  .director__name {
    font-size: 24px;
    letter-spacing: 1.2px;
    line-height: 1.8;
  }
  .director__photo {
    order: 2;
    position: static;
    top: auto;
    width: 100%;
    max-width: 350px;
    height: 348px;
    border-radius: 0;
    margin: 0 auto;
  }
  .director__photo img {
    height: 100%;
    object-position: center top;
  }
  .director__tagline {
    order: 3;
    color: #333;
  }
  .director__meta {
    order: 4;
    padding: 0;
  }
  .director__quote {
    order: 5;
    border: none;
    background: none;
    padding: 0;
    gap: 14px;
  }
  .director__quote-heading {
    font-size: 24px;
    letter-spacing: 1.2px;
    line-height: 1.8;
    color: #3c799f;
  }
  .director__certs {
    order: 6;
    gap: 16px;
    padding: 0;
  }
  .director__cert:first-child,
  .director__cert:last-child {
    width: 167px;
  }
  .director__cert img {
    width: 155px;
    height: 214px;
    object-fit: contain;
    margin: 0 auto;
  }
  .director__cert figcaption {
    width: 155px;
    font-size: 14px;
    white-space: normal;
  }

  .director-line {
    display: none;
  }
}
/* ===== お喜びの声（当院についてページ用） ===== */
.testimonials--about {
  background-color: #f2f3f7;
  min-height: auto;
}

/* 波形・水引きが存在しても非表示 */
.testimonials--about .testimonials__bg,
.testimonials--about {
  display: none;
}

/* .testimonials--about .testimonials__bg,
.testimonials--about .testimonials__mizuhiki {
  display: none;
} */

.testimonials--about .testimonials__head {
  flex-direction: column; /* eyebrow上・title下 */
}

.testimonials--about .testimonials__eyebrow {
  order: -1;
}
.testimonials--about .testimonials__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}
.testimonials__slider {
  overflow: visible;
}
.testimonials__slider-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 72px;
}

.testimonials__arrow {
  position: absolute;
  top: 50%;

  flex-shrink: 0;
  width: 48px;
  height: 48px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  /* justify-content: center; */
  transition: opacity 0.2s ease;
  z-index: 100;
}
.testimonials__arrow--prev {
  left: 200px;
}
.testimonials__arrow--next {
  right: 200px;
}
/* ============================
  下層ページ共通 FV（sub-fv）
============================= */
.sub-fv {
  position: relative;
  width: 100%;
  height: 200px;
  /* padding: 40px 80px; */
  background-color: #f2f3f7;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.sub-fv__title {
  position: relative;
  z-index: 1;
  margin: 0;
  padding-left: 120px; /* 120px - 80px(section padding) */
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 52px;
  line-height: 1.6;
  letter-spacing: 2.6px;
  color: #333;
  white-space: nowrap;
}

/* かなえむすびSVG装飾（左右反転・下部配置） */
.sub-fv__decoration {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 0;
}

.sub-fv__decoration img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* transform: scaleX(-1); */
}
@media (max-width: 767px) {
  .sub-fv {
    height: 140px;
  }

  .sub-fv__title {
    padding-left: 20px; /* PCは120px（サイドの装飾スペース分） */
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .sub-fv__decoration {
    bottom: 30px;
    height: 38px;
    width: auto;
  }
  .sub-fv__decoration img {
    object-position: right center;
  }

  .testimonials--about .testimonials__title {
    font-size: 32px;
  }
}
/* ============================
  reservation.css（ご予約方法ページ専用）
  共通の style.css に追記 or 別ファイルで読み込んでください。
  カラー定義
  LINEグリーン #03C759 / ゴールド #B39700
  はなだ色 #3C799F / あかべに #CD504F
  黒 #333333 / 背景グレー #F2F3F7 / 白 #FCFCFC
============================= */

/* ===== 予約方法セクション ===== */
.rsv-method {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.rsv-method__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.rsv-method__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.rsv-method__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

.rsv-method__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* ===== カード3列 ===== */
.rsv-method__cards {
  display: flex;
  gap: 32px;
  align-items: stretch;
  justify-content: center;
}

.rsv-card {
  width: 378px;
  flex-shrink: 0;
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 16px 40px rgba(51, 51, 51, 0.07);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 0;
  gap: 24px;
  border-bottom: 1px solid;
  border-left: 1px solid;
  border-right: 1px solid;
  border-top-width: 8px;
  border-top-style: solid;
}

.rsv-card--line {
  border-color: #03c759;
}
.rsv-card--tel {
  border-color: #b39700;
}
.rsv-card--epark {
  border-color: #3c799f;
}

.rsv-card__top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
}

/* アイコン */
.rsv-card__icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rsv-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* .rsv-card__icon--epark {
  border: 1px solid #3c799f;
  border-radius: 40px;
  padding: 12px;
} */

/* タイトル */
.rsv-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 26px;
  line-height: 1.4;
  letter-spacing: 2px;
  text-align: center;
  white-space: nowrap;
}

.rsv-card__title--line {
  color: #03c759;
}
.rsv-card__title--tel {
  color: #b39700;
}
.rsv-card__title--epark {
  color: #3c799f;
}

/* キャプション */
.rsv-card__caption {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

/* 説明文 */
.rsv-card__desc {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  width: 313px;
  margin-top: 8px;
}

/* ボタン */
.rsv-card__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 313px;
  height: 56px;
  border-radius: 999px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.rsv-card__btn:hover {
  opacity: 0.85;
}
.rsv-card__btn--line {
  background-color: #03c759;
}
.rsv-card__btn--tel {
  background-color: #b39700;
}
.rsv-card__btn--epark {
  background-color: #3c799f;
}
.rsv-card__btn--line:hover,
.rsv-card__btn--tel:hover,
.rsv-card__btn--epark:hover {
  opacity: 0.6;
}

.rsv-card__btn-arrow {
  width: 10px;
  height: 16px;
  display: block;
  flex-shrink: 0;
}

/* ===== キャンセルポリシー ===== */
.cancel-policy {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
}

.cancel-policy__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 56px;
  align-items: center;
}

/* 見出し（ライン＋テキスト） */
.cancel-policy__head {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 880px;
}

.cancel-policy__line {
  flex: 1;
  height: 1px;
  background-color: #b39700;
  opacity: 0.6;
}

.cancel-policy__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 30px;
  line-height: 1.5;
  letter-spacing: 1.5px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
  flex-shrink: 0;
}

/* 箇条書き */
.cancel-policy__list {
  /* width: 1000px; */
  margin: 0;
  padding: 0 0 0 40px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  list-style: disc;
}

.cancel-policy__item {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.cancel-policy__accent {
  color: #cd504f;
}

/* ===== お支払い方法 ===== */
.payment {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.payment__inner {
  /* max-width: 1200px; */
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

.payment__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.payment__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.payment__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.payment__divider {
  width: 104px;
  height: 20px;
  display: block;
}

.payment__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* ロゴグリッド */
.payment__logos {
  display: flex;
  gap: 24px;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
}

.payment__logo-card {
  width: 180px;
  border: 1px solid #3c799f;
  border-radius: 14px;
  background-color: #fcfcfc;
  padding: 28px 0px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 11px;
}

.payment__logo-imgs--cards {
  position: relative;
  width: 150px;
  height: 110px;
  overflow: hidden;
}

.payment__logo-imgs--cards img {
  position: absolute;
  display: block;
  object-fit: contain;
}

.payment__logo-imgs--cards img:nth-child(1) {
  width: 62px;
  top: 5px;
  left: 3px;
} /* Mastercard */
.payment__logo-imgs--cards img:nth-child(2) {
  width: 52px;
  top: 61px;
  left: 47px;
} /* JCB */
.payment__logo-imgs--cards img:nth-child(3) {
  width: 70px;
  top: 14px;
  left: 73px;
} /* Visa */

.payment__logo-single {
  display: block;
  max-width: 120px;
  max-height: 90px;
  object-fit: contain;
}

.payment__logo-label {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

.payment__logo-label--sm {
  font-size: 14px;
  letter-spacing: 0.7px;
}

@media (max-width: 1100px) {
  .rsv-card {
    width: 30%;
  }
  .rsv-card__btn {
    width: 90%;
  }
  .rsv-card__desc {
    width: 90%;
  }
  .rsv-card__caption {
    white-space: pre-wrap;
    max-width: 90%;
  }
}
/* ============================================================
/ Reservation Methods / SP — SP（〜767px）
   ============================================================ */
@media (max-width: 767px) {
  .rsv-method {
    padding: 64px 0px 80px;
  }

  .rsv-method__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .rsv-method__head {
    gap: 8px;
  }
  .payment__title {
    font-size: 32px;
  }

  .rsv-method__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal; /* 2行に折り返します */
  }

  /* ===== カード：1列縦積み ===== */
  .rsv-method__cards {
    flex-direction: column;
    gap: 24px;
  }

  .rsv-card {
    width: 90%;
    padding: 40px 0px 33px;
    margin: 0 auto;
  }
  .payment__logos {
    gap: 8px;
  }
  .payment__logo-card {
    width: 180px;
    height: 165px;
  }
  .payment__eyebrow {
    font-size: 14px;
  }
}
/* ============================================================
   Section / Cancellation Policy / SP — SP（〜767px）
   Figma: SectionCancellationPolicySp (node 1431:7531) を基に作成
   ============================================================ */
@media (max-width: 767px) {
  .cancel-policy {
    padding: 40px 0px;
  }

  .cancel-policy__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し（ライン＋テキスト） ===== */
  .cancel-policy__head {
    width: auto;
    gap: 8px;
    margin: 0 auto;
  }

  .cancel-policy__line {
    flex: none; /* PCは可変の横線、SPは左右20pxの短い線 */
    width: 20px;
  }

  .cancel-policy__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    margin: 0 auto;
  }

  /* ===== 箇条書き ===== */
  .cancel-policy__list {
    width: 84%;
    padding: 0 0 0 24px; /* PCは40pxインデント、SPは24px（バレット16px+gap8px相当） */
    gap: 8px;
  }
  .payment__lead {
    width: 90%;
  }

  /* .cancel-policy__item の16px/0.8px/1.6はPCと同じ値のため上書き無し */
}
/* ===== 初めての方へ リードテキスト ===== */
.first-lead {
  width: 100%;
  padding: 48px 0px 80px;
  background-color: #fcfcfc;
  display: flex;
  justify-content: center;
}

.first-lead__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}
/* ===== 院内の様子（初めての方へページ） ===== */
.clinic-photos {
  width: 100%;
  padding: 32px 0px 80px;
  background-color: #fcfcfc;
  position: relative;
  overflow: hidden;
}

.clinic-photos__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.clinic-photos__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.clinic-photos__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.clinic-photos__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.clinic-photos__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* 写真グリッド（3列×2行） */
.clinic-photos__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 36px;
  justify-content: center;
  width: 100%;
  z-index: 100;
}

.clinic-photos__item {
  width: 376px;
  height: 251px;
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
}

.clinic-photos__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.first-line {
  position: absolute;
  bottom: -10px;
  left: 0;
  z-index: 0;
}

@media (max-width: 767px) {
  .first-lead {
    width: 100%;
    padding: 40px 0px 40px;
  }
  .first-lead__text {
    width: 90%;
    padding: 0 20px;
    white-space: wrap;
    text-align: left;
  }
  .clinic-photos {
    padding: 0 0px 40px;
  }
  .clinic-photos__inner {
    gap: 28px;
  }

  .clinic-photos__head {
    gap: 8px;
  }
  .clinic-photos__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .clinic-photos__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .clinic-photos__grid {
    gap: 16px;
    width: 100%;
  }
  .clinic-photos__item {
    aspect-ratio: 167 / 112;
    border-radius: 16px;
    height: auto;
  }

  .clinic-photos__item:nth-child(1) {
    order: 1;
    width: 90%;
  }
  .clinic-photos__item:nth-child(2) {
    order: 2;
    width: calc(45% - 8px);
  }
  .clinic-photos__item:nth-child(6) {
    order: 3;
    width: calc(45% - 8px);
  }
  .clinic-photos__item:nth-child(3) {
    order: 4;
    width: 90%;
  }
  .clinic-photos__item:nth-child(5) {
    order: 5;
    width: calc(45% - 8px);
  }
  .clinic-photos__item:nth-child(4) {
    order: 6;
    width: calc(45% - 8px);
  }
  .first-line {
    position: absolute;
    bottom: 0px;
    left: 0;
    z-index: 0;
    width: 70%;
  }
  .first-line02 {
    bottom: -30px;
    left: 0;
    width: 50%;
  }
}
/* ===== 施術の流れ ===== */
.flow {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
  position: relative;
  overflow: hidden;
}

.flow__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.flow__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.flow__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.flow__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

/* ステップリスト */
.flow__steps {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 70%;
  z-index: 100;
}

/* 中央縦ライン */
.flow__line {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 79px;
  width: 16px;
  height: calc(100% - 79px - 60px);
  background-color: #cd504f;
  opacity: 0.8;
  z-index: 0;
  pointer-events: none;
}

/* カード */
.flow-card {
  position: relative;
  z-index: 1;
  background-color: #fcfcfc;
  border: 1px solid #3c799f;
  border-radius: 14px;
  padding: 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 720px;
}

.flow-card__header {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* アイコン */
.flow-card__icon {
  width: 75px;
  height: 75px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
}

.flow-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 番号バッジ */
.flow-card__num {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #3c799f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
}

/* ステップタイトル */
.flow-card__title {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #3c799f;
}

/* 本文 */
.flow-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}
.flow-line {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 0;
  width: 80%;
}

/* レスポンシブ */
@media (max-width: 900px) {
  .flow {
    padding: 80px 0px;
  }
  .flow__steps {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .flow {
    padding: 40px 0px;
  }
  .flow__inner {
    gap: 32px;
  }

  .flow__head {
    gap: 8px;
  }
  .flow__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .flow__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .flow__steps {
    width: 100%;
    gap: 16px;
  }
  /* .flow__line {
    display: none;
  } */

  .flow-card {
    padding: 16px 16px;
    gap: 16px;
    width: 80%;
    margin: 0 auto;
  }
  .flow-card__header {
    gap: 12px;
  }
  .flow-card__icon {
    width: 40px;
    height: 40px;
  }
  .flow-line {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 0;
    width: 80%;
  }
}

/* ===== 基本料金 ===== */
.price {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.price__inner {
  max-width: 1200px;
  margin: 0 auto 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.price__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.price__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.price__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.price__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* テーブルグループ */
.price__tables {
  display: flex;
  flex-direction: column;
  gap: 40px;
  width: 1000px;
}

/* 各ブロック */
.price__block {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.price__block-title {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #3c799f;
  white-space: nowrap;
}

/* テーブル */
.price__table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #b9b9b9;
}

.price__row {
  height: 62px;
  border-bottom: 1px solid #b9b9b9;
}

/* 左セル（ラベル） */
.price__th {
  width: 400px;
  background-color: #f2f3f7;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}

/* 右セル（金額） */
.price__td {
  width: 600px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}

/* 注釈 */
.price__note {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
  text-align: left;
  white-space: nowrap;
}
.note-card__image {
  /* width: 100%; */
  max-width: 300px;
  /* aspect-ratio: 16 / 9; */
  overflow: hidden;
  border-radius: 12px;
}

.note-card__image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.note-card__body {
  margin-top: 0px;
  margin-left: 16px;
}

.note-card__date {
  margin-bottom: 8px;
  font-size: 14px;
  color: #777;
  margin-top: 0;
}
/* レスポンシブ */
@media (max-width: 1100px) {
  .price {
    padding: 80px 0px;
  }
  .price__tables {
    width: 100%;
  }
  .price__th {
    width: 40%;
  }
  .price__td {
    width: 60%;
  }
  .price__note {
    white-space: normal;
  }
  .price__inner {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .price {
    padding: 40px 0px;
  }
  .price__inner {
    gap: 32px;
    margin-bottom: 32px;
  }

  .price__head {
    gap: 8px;
  }
  .price__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .price__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .price__tables {
    width: 90%;
    gap: 32px;
  }
  .price__block {
    gap: 8px;
  }
  .price__block-title {
    font-size: 18px;
    letter-spacing: 0.9px;
    white-space: normal;
  }

  .price__th {
    width: 100px;
    font-size: 16px;
    letter-spacing: 0.8px;
  }
  .price__td {
    width: auto;
    font-size: 16px;
    letter-spacing: 0.8px;
  }
}
.page-hero--first .page-hero__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  top: 0.09%;
  left: 0;
  max-width: none;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .page-hero--first {
    padding: 60px 0 0px;
  }
  .page-hero--first .page-hero__heading::after {
    content: "";
    display: block;
    width: 100%;
    height: 220px;
    background-image: url("../image/first/first_hero_sp.png");
    background-size: cover;
    background-position: top center;
    border-radius: 16px;
    overflow: hidden;
  }
  .page-hero--first .page-hero__bg {
    display: none;
  }
}
/* ===== 来院までのステップ ===== */
.steps {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
}

.steps__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.steps__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.steps__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.steps__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.steps__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* コンテンツ（写真＋カード横並び） */
.steps__body {
  display: flex;
  align-items: center;
  gap: 40px;
  width: 100%;
}

/* 外観写真 */
.steps__photo {
  flex-shrink: 0;
  width: 560px;
  height: 332px;
  border-radius: 16px;
  overflow: hidden;
}

.steps__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* アクセス情報 */
.steps__access {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 600px;
}

.steps__access-card {
  /* width: 100%; */
  max-width: 600px;
  background-color: #fcfcfc;
  border-radius: 16px;
  padding: 16px 16px 16px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.steps__access-heading {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #b39700;
}

.steps__access-text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .steps {
    padding: 80px 0px;
  }
  .steps__body {
    flex-direction: column;
    align-items: center;
  }
  .steps__photo {
    width: 90%;
    height: auto;
    aspect-ratio: 560 / 332;
  }
  .steps__access {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .steps {
    padding: 40px 0px;
  }
  .steps__inner {
    gap: 32px;
  }

  .steps__head {
    gap: 8px;
  }
  .steps__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .steps__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }
  .steps__photo {
    width: 90%;
    height: auto;
    aspect-ratio: 560 / 332;
  }
  .steps__photo img {
    width: 100%;
    object-fit: cover;
    display: block;
  }

  .steps__body {
    gap: 32px;
  }
  .steps__access {
    gap: 24px;
  }

  .steps__access-card {
    width: 90%;
    padding: 22px 20px;
    gap: 8px;
    border-radius: 14px;
    box-shadow: 0 8px 24px 0 rgba(51, 51, 51, 0.08);
  }
}
/* ============================
  FAQ（ご来院前の疑問にお答えします）
============================= */

.faq {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  position: relative;
  overflow: hidden;
}

.faq__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* ===== 見出し ===== */
.faq__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.faq__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.faq__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

/* ===== リスト ===== */
.faq__list {
  width: 1000px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* ===== アイテム（カード） ===== */
.faq__item {
  background-color: #fcfcfc;
  border: 1px solid rgba(60, 121, 159, 0.1);
  border-radius: 20px;
  box-shadow: 0 8px 24px 0 rgba(51, 51, 51, 0.08);
  overflow: hidden;
  z-index: 10;
}

/* ===== 質問行 ===== */
.faq__question {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 32px 16px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}

.faq__question-text {
  flex: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
}

/* 矢印アイコン */
.faq__arrow {
  flex-shrink: 0;
  width: 14px;
  height: 8px;
  display: block;
  transition: transform 0.3s ease;
}

/* 開いているときは下向きに（デフォルトが上向き矢印SVGの場合） */
.faq__item.is-open .faq__arrow {
  transform: rotate(180deg);
}

/* ===== 回答行 ===== */
.faq__answer {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 32px;
  overflow: hidden;
  max-height: 0;

  transition:
    max-height 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0.15s,
    padding 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0.15s,
    opacity 0.15s ease;
}

.faq__item.is-open .faq__answer {
  max-height: 400px;
  padding: 16px 32px 24px;
  opacity: 1;
  /* 開くとき：max-heightを先に広げてからopacityをフェードイン */
  transition:
    max-height 0.6s ease,
    padding 0.6s ease,
    opacity 0.5s ease 0.3s;
}

/* hidden属性があるときは非表示（JSで制御） */
.faq__answer[hidden] {
  display: none;
}

.faq__answer-text {
  flex: 1;
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== バッジ（Q / A） ===== */
.faq__badge {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 20px;
  line-height: normal;
}

.faq__badge--q {
  border: 1px solid #3c799f;
  color: #3c799f;
}

.faq__badge--a {
  border: 1px solid #cd504f;
  color: #cd504f;
}

@media (max-width: 1100px) {
  .faq__list {
    width: 90%;
  }
}
/* ============================================================
   Section / FAQ List / First — SP（〜767px）
   Figma: SectionFaqListSp (node 1442:7617) を基に作成
   ============================================================ */
@media (max-width: 767px) {
  .faq {
    padding: 40px 0px;
  }

  .faq__inner {
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .faq__head {
    gap: 8px;
  }

  .faq__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .faq__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal; /* PCはnowrapですが、SPは2行に折り返します */
  }

  /* ===== カードリスト ===== */
  .faq__list {
    width: 100%;
    gap: 20px;
  }

  .faq__item {
    width: 90%;
    margin: 0 auto;
  }

  /* ===== Q（質問）行 ===== */
  .faq__question {
    padding: 20px 20px 16px;
    gap: 12px;
  }

  .faq__question-text {
    font-size: 16px;
    letter-spacing: 0.8px;
  }

  .faq__arrow {
    width: 20px;
    height: 12px;
  }
  .faq__item.is-open .faq__answer {
    padding: 16px 20px 24px;
  }
  /* ===== A（回答）行 ===== */
  .faq__answer {
    /* padding: 16px 20px 20px; */
    gap: 12px;
  }

  .faq__answer-text {
    font-size: 14px;
    letter-spacing: 0;
  }

  /* ===== バッジ（Q/A）48px → 40px ===== */
  .faq__badge {
    width: 40px;
    height: 40px;
    border-radius: 20px;
  }
}

/* ===== 施術の4スタイル ===== */
.treatment-types {
  width: 100%;
  padding: 56px 0px 80px;
  background-color: #fcfcfc;
}

.treatment-types__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

/* リードテキスト */
.treatment-types__lead {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.6;
  letter-spacing: 1.4px;
  color: #3c799f;
  text-align: center;
}

/* カード4列 */
.treatment-types__cards {
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: stretch;
  width: 100%;
}

.treatment-card {
  width: 248px;
  flex-shrink: 0;
  background-color: #fcfcfc;
  border: 1px solid #3c799f;
  border-radius: 10px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 16px 18px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

/* 番号 */
.treatment-card__num {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: 1.5px;
  color: #cd504f;
  text-align: center;
}

/* カードタイトル */
.treatment-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 22px;
  line-height: normal;
  color: #3c799f;
  text-align: center;
}
.treatment-card__title02 {
  margin: 14px 0;
}
/* アイコン */
.treatment-card__icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin: 8px 0;
}

.treatment-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* サブテキスト（あかべに） */
.treatment-card__sub {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #cd504f;
  text-align: center;
}

/* 本文 */
.treatment-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: left;
}

/* フッターテキスト */
.treatment-types__footer {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.6;
  letter-spacing: 1.4px;
  color: #3c799f;
  text-align: center;
}

/* レスポンシブ */
@media (max-width: 1200px) {
  .treatment-types {
    padding: 56px 0px 80px;
  }
  .treatment-types__cards {
    flex-wrap: wrap;
  }
  .treatment-card {
    width: calc(50% - 8px);
  }
}

@media (max-width: 767px) {
  .treatment-types {
    padding: 40px 0px;
  }

  .treatment-types__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し・結び（同じスタイル） ===== */
  .treatment-types__lead,
  .treatment-types__footer {
    font-size: 24px !important;
    letter-spacing: 0.72px;
    line-height: 1.6;
  }

  .treatment-types__lead {
    max-width: 265px;
    margin: 0 auto;
  }

  .treatment-types__footer {
    margin: 0 auto;
  }
  .treatment-card__text {
    width: 80%;
  }

  /* ===== カード：横並び→縦1カラムに ===== */
  .treatment-types__cards {
    flex-direction: column;
    gap: 20px;
    width: 90%;
  }

  .treatment-card {
    width: 90%;
    max-width: 100%;
    margin: 0 auto;
    padding: 16px 0px 24px;
  }
}

/* ===== 施術方法詳細 ===== */
.treatment-detail {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.treatment-detail__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.treatment-detail__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.treatment-detail__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.treatment-detail__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
}

.treatment-detail__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* カード3列 */
.treatment-detail__cards {
  display: flex;
  gap: 28px;
  align-items: stretch;
  justify-content: center;
}

.detail-card {
  width: 278px;
  flex-shrink: 0;
  background-color: #fcfcfc;
  border: 1px solid rgba(51, 51, 51, 0.14);
  border-radius: 8px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 24px 24px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

/* 番号 */
.detail-card__num {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 22px;
  line-height: normal;
  color: #3c799f;
  text-align: center;
}

/* イラスト */
.detail-card__icon {
  width: 200px;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.detail-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル */
.detail-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 26px;
  line-height: normal;
  color: #3c799f;
  text-align: center;
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 本文 */
.detail-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  min-height: 184px;
}

/* バッジ */
.detail-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 24px;
  border: 1px solid #b39700;
  border-radius: 999px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #b39700;
  white-space: nowrap;
}

/* オススメリスト */
.detail-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.detail-card__list li {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}
.flow_price {
  background-color: #f2f3f7;
  position: relative;
  padding-bottom: 130px;
}
.price-line {
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 0;
}
.flow_price .price__th {
  border-bottom: 1px solid #b9b9b9;
  background: rgba(252, 252, 252, 0.3);
}
.flow_price .price__td {
  border-bottom: 1px solid #b9b9b9;
  background: var(--fcfcfc, #fcfcfc);
}
/* レスポンシブ */
@media (max-width: 1100px) {
  .treatment-detail {
    padding: 80px 0px;
  }
  .treatment-detail__cards {
    flex-wrap: wrap;
    justify-content: center;
  }
  .detail-card {
    width: calc(50% - 14px);
    min-width: 280px;
  }
  .detail-card__text {
    min-height: unset;
  }
}

@media (max-width: 767px) {
  .treatment-detail {
    padding: 40px 0px;
  }

  .treatment-detail__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .treatment-detail__head {
    gap: 8px;
  }

  .treatment-detail__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .treatment-detail__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  /* ===== カード：3列→縦積みに ===== */
  .treatment-detail__cards {
    flex-direction: column;
    gap: 24px;
    width: 100%;
  }

  .detail-card {
    width: 90%;
    padding: 24px 0px 32px;
    margin: 0 auto;
  }

  .detail-card__icon {
    width: 175px;
    height: 140px;
  }

  .detail-card__title {
    min-height: 0;
  }
  .detail-card__text {
    width: 80%;
  }
  .detail-card__list {
    width: 80%;
  }
  .flow_price {
    padding-bottom: 10px;
  }
}

/* ===== 対象となる方 ===== */
.target {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
}

.target__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

/* 見出し */
.target__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.target__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.target__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

/* ボディ */
.target__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 100%;
}

.target__lead,
.target__note {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

/* カード5列 */
.target__cards {
  display: flex;
  gap: 12px;
  align-items: stretch;
  justify-content: center;
}

.target-card {
  /* width: 134px; */
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 22px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.target-card02 {
  padding: 22px 12px;
}

.target-card__icon {
  width: 70px;
  height: 70px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.target-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.target-card__label {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .target {
    padding: 40px 0px;
  }

  .target__inner {
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .target__head {
    gap: 8px;
  }

  .target__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .target__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .target__cards {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
  /* ===== カード（2列＋最後の1枚は中央に自動配置） ===== */
  .target-card {
    width: 134px;
    height: 130px;
    justify-content: center;
  }

  /* 1〜4枚目はパディング32px均等（Figma通り）。
     5枚目「日常動作の急な痛み」だけ元のpadding:22px 32pxのままです */
  .target-card:nth-child(-n + 5) {
    padding: 16px 0;
  }
  .target__lead,
  .target__note {
    white-space: pre-wrap;
    width: 90%;
    text-align: left;
  }
}
/* ===== 施術内容・特徴 ===== */
.features {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
}

.features__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.features__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.features__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.features__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.features__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* テキストブロック */
.features__text-blocks {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
}

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

.features__block-heading {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 2.4px;
  color: #b39700;
  text-align: center;
  white-space: nowrap;
}

.features__block-body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* カード3列 */
.features__cards {
  display: flex;
  gap: 24px;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}

.features-card {
  width: 330px;
  flex-shrink: 0;
  background-color: #fcfcfc;
  border: 1px solid #3c799f;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 16px 24px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

/* 番号バッジ */
.features-card__num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #3c799f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
  flex-shrink: 0;
}

/* イラスト */
.features-card__icon {
  width: 160px;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.features-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル */
.features-card__title {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #3c799f;
  text-align: center;
}

/* 本文 */
.features-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.48px;
  color: #333;
  text-align: left;
  width: 100%;
}

/* フッターテキスト */
.features__footer {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

@media (max-width: 1100px) {
  .features-card {
    width: 25%;
  }
  .features__block-body {
    width: 90%;
  }
}
@media (max-width: 767px) {
  .features {
    padding: 40px 0px;
  }

  .features__inner {
    max-width: none;
    gap: 32px;
    width: 90%;
  }

  .features__head {
    gap: 8px;
  }

  .features__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .features__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .features__text-blocks {
    gap: 24px;
  }

  .features__text-block {
    gap: 16px;
  }

  .features__block-heading {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 1.6;
    white-space: normal;
  }
  .features__block-body {
    text-align: left;
  }

  .features__cards {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .features-card {
    width: 90%;
  }

  .features__footer {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 1.5;
    white-space: normal;
    text-align: left;
  }
}
/* ===== 施術方法（POLICE処置・電気施術） ===== */
.treatment-method {
  width: 100%;
  padding: 80px 0px 100px;
  background-color: #f2f3f7;
  position: relative;
  overflow: hidden;
}

.treatment-method__inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.treatment-method__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
}

.treatment-method__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.treatment-method__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.treatment-method__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* 各ブロック */
.treatment-method__block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

/* ブロック見出し行（番号＋タイトル） */
.treatment-method__block-head {
  display: flex;
  align-items: center;
  gap: 18px;
}

.treatment-method__num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #3c799f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: normal;
  color: #fcfcfc;
  text-align: center;
  flex-shrink: 0;
}

.treatment-method__block-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: normal;
  color: #3c799f;
  white-space: nowrap;
}

/* あかべにの区切り線 */
.treatment-method__line {
  width: 100%;
  height: 1px;
  background-color: #cd504f;
}

/* ブロック本文 */
.treatment-method__block-body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 16px 20px 0;
}

.treatment-method__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.treatment-method__note {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.treatment-line {
  position: absolute;
  bottom: -10px;
  right: -20px;
  z-index: 10;
  width: 30%;
}

/* POLICEカード */
.police-card {
  /* width: 100%; */
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.police-card__row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.police-card__term {
  width: 33%;
  flex-shrink: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #3c799f;
}

.police-card__desc {
  flex: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

@media (max-width: 1100px) {
  .treatment-method__block {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .treatment-method {
    padding: 40px 0px;
  }

  .treatment-method__inner {
    max-width: none;
    gap: 32px;
  }

  .treatment-method__head {
    gap: 8px;
  }

  .treatment-method__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .treatment-method__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .treatment-method__block-body {
    padding: 16px 0 0;
  }

  .treatment-method__note {
    padding: 0 20px;
  }
  .treatment-method__block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 90%;
  }
  .police-card {
    width: 320px;
    margin: 0 auto;
    padding: 24px 8px;
    gap: 24px;
  }

  .police-card__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .police-card__term {
    width: 100%;
  }

  .police-card__desc {
    flex: none;
    font-size: 14px;
    letter-spacing: 0.7px;
  }
}
/* ===== 施術の流れ（横並びタイムライン） ===== */
.flow-timeline {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  overflow: hidden;
}

.flow-timeline__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.flow-timeline__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.flow-timeline__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.flow-timeline__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.flow-timeline__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* ステップ全体ラッパー */
.flow-timeline__steps {
  position: relative;
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

/* 横連結線（番号バッジの中央を通る） */
.flow-timeline__line {
  position: absolute;
  top: 15px; /* 番号バッジ高さの中央（30px÷2） */
  left: 15px;
  right: 15px;
  height: 1px;
  background-color: #3c799f;
  z-index: 0;
}

/* 各ステップ */
.flow-timeline__step {
  position: relative;
  z-index: 1;
  width: 157px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.flow-timeline__separator {
  flex-shrink: 0;
  width: 1px;
  height: 200px;
  background-color: #333;
  align-self: flex-end; /* ステップの下端に合わせる */
  margin-bottom: 0;
}

/* 番号バッジ */
.flow-timeline__num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #3c799f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #fcfcfc;
  flex-shrink: 0;
}

/* アイコン */
.flow-timeline__icon {
  width: 75px;
  height: 75px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.flow-timeline__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ラベル */
.flow-timeline__label {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* 説明文 */
.flow-timeline__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: #333;
  text-align: left;
  width: 130px;
}
@media (max-width: 1100px) {
  .flow-timeline__steps {
    width: 90%;
  }
  .flow-timeline__step {
    width: 10%;
  }
  .flow-timeline__label {
    font-size: 1.5vw;
  }
  .flow-timeline__text {
    font-size: 1.2vw;
    width: 100px;
  }
}
@media (max-width: 767px) {
  .flow-timeline {
    padding: 40px 0px;
  }

  .flow-timeline__inner {
    max-width: none;
    gap: 32px;
  }

  .flow-timeline__head {
    gap: 8px;
  }

  .flow-timeline__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .flow-timeline__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .flow-timeline__steps {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    background-color: #fcfcfc;
    border-radius: 16px;
    overflow: hidden;
  }

  .flow-timeline__line,
  .flow-timeline__separator {
    display: none;
  }

  .flow-timeline__step {
    display: grid;
    grid-template-columns: 72px 1fr;
    row-gap: 0;
    column-gap: 16px;
    width: 90%;
    align-items: start;
    padding: 24px 0;
    border-bottom: 1px solid rgba(60, 121, 159, 0.7);
    margin: auto;
  }

  .flow-timeline__num {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    width: 26px;
    height: 26px;
  }

  .flow-timeline__icon {
    grid-column: 1;
    grid-row: 2;
    width: 50px;
    height: 50px;
    margin: 8px auto 0;
  }

  .flow-timeline__label {
    grid-column: 2;
    grid-row: 1;
    text-align: left;
    white-space: normal;
  }

  .flow-timeline__text {
    grid-column: 2;
    grid-row: 2;
    margin-top: 10px;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.4;
    width: auto;
  }
}
/* ===== 外傷施術ページ 基本料金（差分） ===== */

/* 背景グレー */
.price--trauma {
  background-color: #f2f3f7;
  position: relative;
  padding: 80px 0px 130px;
}

/* テーブルの上下ボーダーが2px（Figmaの border-t-2 / border-b-2） */
.price__table--trauma {
  border-top: 2px solid #b9b9b9;
  border-bottom: 2px solid #b9b9b9;
  border-left: none;
  border-right: none;
}

.price__table--trauma .price__row {
  border-bottom: 1px solid #b9b9b9;
}

/* 最終行の下線は非表示（table全体のborder-bottomで管理） */
.price__table--trauma .price__row:last-child {
  border-bottom: none;
}

/* ラベルセル（左）：半透明の白背景 */
.price__table--trauma .price__th {
  background-color: rgba(252, 252, 252, 0.3);
  border-left: none;
  width: 400px;
}

/* 金額セル（右）：白背景 */
.price__table--trauma .price__td {
  background-color: #fcfcfc;
  border-left: none;
  width: 600px;
}
.price-line {
  position: absolute;
  bottom: 0px;
  left: 0px;
  z-index: 10;
  width: 40%;
}
.injury_testimonials {
  background-color: #fff;
  gap: 56px;
}
.tabefas_testimonials {
  background-color: #f2f3f7;
}
.testimonials__slider_injury,
.testimonials__slider_seitai,
.testimonials__slider_about {
  margin-top: 0px;
}
.testimonials__head_injury .testimonials__title,
.testimonials__head_seitai .testimonials__title,
.testimonials__head_about .testimonials__title {
  margin-top: 16px;
  font-weight: 600;
  color: #3c799f;
}
.about_testimonials {
  min-height: auto;
  background-color: #f2f3f7;
}
.testimonials__head_about {
  margin-top: 0px;
}
@media (max-width: 767px) {
  .price--trauma {
    padding: 40px 0px 40px;
  }
  .testimonials__head_injury .testimonials__title,
  .testimonials__head_seitai .testimonials__title,
  .testimonials__head_about .testimonials__title {
    margin-top: 0px;
  }
  .injury_testimonials {
    gap: 32px;
  }
}

/* 整体施術ページ：リード文を左寄せではなく中央寄せ */
.target--seitai .target__lead {
  white-space: normal;
  max-width: 800px;
}
/* ===== 施術内容・方法（整体施術ページ） ===== */
.seitai-method {
  width: 100%;
  padding: 80px 0px 130px;
  background-color: #fcfcfc;
  position: relative;
  overflow: hidden;
}

.seitai-method__inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.seitai-method__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.seitai-method__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.seitai-method__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.seitai-method__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* 各ブロック */
.seitai-method__block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

/* ブロック見出し行 */
.seitai-method__block-head {
  display: flex;
  align-items: center;
  gap: 18px;
}

/* 番号バッジ */
.seitai-method__num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #3c799f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: normal;
  color: #fcfcfc;
  text-align: center;
  flex-shrink: 0;
}

/* タイトルグループ（施術名＋サブタイトル横並び） */
.seitai-method__title-group {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.seitai-method__block-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: normal;
  color: #3c799f;
  white-space: nowrap;
}

.seitai-method__block-sub {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #3c799f;
  white-space: nowrap;
}

/* あかべに区切り線 */
.seitai-method__line {
  width: 100%;
  height: 1px;
  background-color: #cd504f;
}

/* ブロック本文（テキスト＋写真横並び） */
.seitai-method__block-body {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding: 0 20px;
}

.seitai-method__text {
  flex: 1;
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* 写真 */
.seitai-method__img {
  flex-shrink: 0;
  width: 208px;
  height: 200px;
  border-radius: 8px;
  overflow: hidden;
}

.seitai-method__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 1100px) {
  .seitai-method__block {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .seitai-method {
    padding: 40px 0px;
  }

  .seitai-method__inner {
    max-width: 90%;
    gap: 32px;
  }

  .seitai-method__head {
    gap: 8px;
  }

  .seitai-method__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .seitai-method__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .seitai-method__block {
    gap: 18px;
  }

  .seitai-method__block-head {
    flex-wrap: nowrap;
    gap: 10px;
  }

  .seitai-method__num {
    width: 28px;
    height: 28px;
    font-size: 16px;
    line-height: 18px;
  }

  .seitai-method__title-group {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 4px;
  }

  .seitai-method__block-title {
    font-size: 22px;
    line-height: 26px;
  }

  .seitai-method__block-sub {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.4;
    white-space: normal;
  }

  .seitai-method__line {
    background-color: #e8b9bd;
  }

  .seitai-method__block-body {
    flex-direction: column;
    align-items: stretch;
    gap: 18px;
    padding: 0;
  }

  .seitai-method__text {
    flex: none;
    width: 100%;
  }

  .seitai-method__img {
    width: 100%;
    height: 300px;
    border-radius: 16px;
  }
}
/* 整体施術ページの基本料金：背景グレー */
.price--seitai {
  background-color: #f2f3f7;
  padding-bottom: 130px;
}

/* JOYトレ：1行だけのテーブルは上下ボーダー1px */
.price__table--single {
  border-top: 1px solid #b9b9b9;
}

.price__table--single .price__row:last-child {
  border-bottom: 1px solid #b9b9b9;
}
.seitai-method-line {
  position: absolute;
  bottom: -10px;
  right: -20px;
  z-index: 10;
  width: 44%;
}

/* ===== 猫背改善コース ヒーロー ===== */
.page-hero--nekoze .page-hero__content {
  padding: 24px 40px 24px 80px;
}

/* ボタン2つ縦並びラッパー */
.page-hero__sub-buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  align-items: center;
}

/* aboutと同じボタンをそのまま使用 */
/* .page-hero__sub-button は既存CSSで定義済み */
/* ===== 猫背改善コース リードテキスト ===== */
.nekoze-lead {
  width: 100%;
  padding: 56px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.nekoze-lead__catch,
.nekoze-lead__body {
  width: 1000px;
  max-width: 100%;
}

.nekoze-lead__catch p,
.nekoze-lead__body p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}
.nekoze-lead__catch {
  position: relative;
}
.nekoze-lead_img {
  position: absolute;
  top: 40%;
  right: -20%;
}

.nekoze-lead__gold {
  color: #b39700;
}

.nekoze-lead__red {
  color: #cd504f;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .nekoze-lead {
    padding: 56px 0px;
  }
  .nekoze-lead_img {
    right: 0;
    width: 15%;
  }
}
@media (max-width: 767px) {
  .price--seitai {
    background-color: #f2f3f7;
    padding-bottom: 40px;
  }
  .page-hero--nekoze .page-hero__content {
    padding: 0px 0px;
  }
  .page-hero--nekoze .page-hero__heading::after {
    content: "";
    display: block;
    width: 100%;
    max-width: 100%;
    height: 203px;
    background-image: url(../image/posture/posture_hero_sp.png);
    background-size: cover;
    background-position: top center;
    border-radius: 16px;
    overflow: hidden;
  }
  .page-hero--maternity .page-hero__heading::after {
    background-image: url(../image/maternity/maternity_hero_sp.png);
  }
  .page-hero--gaittraining .page-hero__heading::after {
    background-image: url(../image/gaittraining/gaittraining_hero_sp.png);
  }
  .page-hero--legcorrection .page-hero__heading::after {
    background-image: url(../image/leg-correction/leg-correction‗hero_sp.png);
  }
  .page-hero--tabefas .page-hero__heading::after {
    background-image: url(../image/tabefas/tabefas_hero_sp.png);
  }
  .nekoze-lead {
    padding: 24px 0px 40px;
    width: 100%;
  }
  .nekoze-lead__catch,
  .nekoze-lead__body {
    width: 90%;
  }
  .nekoze-lead__catch p,
  .nekoze-lead__body p {
    font-size: 18px;
    text-align: left;
  }
  .nekoze-lead__body {
    width: 90%;
  }
  .nekoze-lead__body p {
    width: 65%;
  }
  .nekoze-lead_img {
    position: absolute;
    top: auto;
    bottom: -120%;
    right: 0%;
    width: 45%;
  }
}

/* ===== 猫背・姿勢の改善について ===== */
.nekoze-about {
  width: 100%;
  padding: 80px 0px;
  background:
    linear-gradient(
      180deg,
      rgba(179, 151, 0, 0.08) 0%,
      rgba(179, 151, 0, 0) 60%
    ),
    linear-gradient(90deg, #fcfcfc 0%, #fcfcfc 100%);
  position: relative;
  overflow: hidden;
}

.nekoze-about__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.nekoze-about__head {
  /* display: flex;
  flex-direction: column; */
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  text-align: center;
}

.nekoze-about__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.nekoze-about__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
  margin-top: 16px;
}

/* キャッチテキスト */
.nekoze-about__catch p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: 1.1px;
  color: #333;
  text-align: center;
}

.nekoze-about__red {
  color: #cd504f;
}

/* 左右イラスト＋本文 */
.nekoze-about__middle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  position: relative;
  min-height: 230px;
}

.nekoze-about__illust {
  flex-shrink: 0;
  width: 230px;
  height: 230px;
}

.nekoze-about__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 左イラストは上下反転 */
/* .nekoze-about__illust--left img {
  transform: rotate(180deg) scaleY(-1);
} */

.nekoze-about__body {
  flex: 1;
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  max-width: 728px;
}
.nekoze-about__body a {
  text-decoration: none;
}
/* ボタン */
.nekoze-about__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 320px;
  height: 50px;
  /* padding: 9px 41px; */
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
  margin: auto;
}

.nekoze-about__btn:hover {
  opacity: 0.7;
}

.nekoze-about__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .nekoze-about {
    padding: 80px 0px;
  }
  .nekoze-about__title {
    white-space: normal;
  }
  .nekoze-about__middle {
    flex-wrap: wrap;
    gap: 24px;
  }
  .nekoze-about__illust {
    width: 160px;
    height: 160px;
  }
}

@media (max-width: 767px) {
  .nekoze-about {
    padding: 40px 0px;
  }
  .nekoze-about__inner {
    max-width: none;
    gap: 32px;
  }

  .nekoze-about__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
  }
  .nekoze-about__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.5;
  }
  .nekoze-about__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    line-height: 1.5;
    white-space: normal;
    margin-top: 0;
  }
  .nekoze-about__catch {
    width: 90%;
  }

  .nekoze-about__catch p {
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 1px;
    text-align: left;
  }

  .nekoze-about__middle {
    flex-wrap: wrap;
    gap: 16px;
  }
  .nekoze-about__illust {
    display: flex !important;
    width: 167px;
    height: 167px;
  }
  .nekoze-about__illust--left {
    order: 1;
  }
  .nekoze-about__illust--right {
    order: 2;
  }
  /* .nekoze-about__illust--left img {
    transform: rotate(180deg) scaleY(-1);
  } */
  .nekoze-about__body {
    order: 3;
    flex: none;
    width: 90%;
    max-width: 100%;
    text-align: left;
  }

  .nekoze-about__btn {
    width: 90%;
    margin: 32px auto 0;
  }
}
/* ===== 猫背改善へのアプローチ ===== */
.nekoze-approach {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  position: relative;
  overflow: hidden;
}

.nekoze-approach__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  z-index: 500;
}

/* 見出し */
.nekoze-approach__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 760px;
  max-width: 100%;
}

.nekoze-approach__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.nekoze-approach__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

.nekoze-approach__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* カード3列 */
.nekoze-approach__cards {
  display: flex;
  gap: 40px;
  align-items: stretch;
  justify-content: center;
  width: 100%;
  z-index: 100;
}
.approach-line {
  position: absolute;
  bottom: -10px;
  right: -20px;
  z-index: 10;
  width: 90%;
}
.approach-card {
  flex: 1;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 180px;
}

/* アイコン */
.approach-card__icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.approach-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル */
.approach-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* テキスト */
.approach-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  width: 230px;
  max-width: 100%;
}
.approach-card__text02 {
  width: 265px;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .nekoze-approach {
    padding: 80px 0px;
  }
  .nekoze-approach__cards {
    flex-wrap: wrap;
    gap: 24px;
  }
  .approach-card {
    width: calc(50% - 12px);
    flex: none;
  }
  .approach-card__title {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  .nekoze-approach {
    padding: 72px 0px;
  }
  .nekoze-approach__inner {
    max-width: none;
    gap: 32px;
  }

  .nekoze-approach__head {
    width: 100%;
    gap: 8px;
  }
  .nekoze-approach__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .nekoze-approach__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }

  .nekoze-approach__cards {
    flex-direction: column;
    gap: 24px;
    width: 100%;
    margin: 0 auto;
  }
  .approach-card {
    width: 80%;
    flex: none;
    height: auto;
    padding: 32px 0;
    gap: 16px;
    margin: 0 auto;
  }
  .approach-card__icon {
    width: 120px;
    height: 120px;
  }
  .approach-card__title {
    white-space: normal;
  }
  .approach-card__text {
    width: 70%;
  }
  .approach-card__text02 {
    width: 90%;
  }
}
/* ===== こんな方におすすめです（猫背） ===== */
.nekoze-recommend {
  width: 100%;
  padding: 80px 0px;
  background-color: rgba(179, 151, 0, 0.08);
}

.nekoze-recommend__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
}

/* 見出し */
.nekoze-recommend__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 760px;
  max-width: 100%;
}

.nekoze-recommend__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.nekoze-recommend__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* カード */
.nekoze-recommend__card {
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 48px 56px;
  display: flex;
  align-items: center;
  gap: 24px;
}

/* 左：リスト */
.nekoze-recommend__left {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nekoze-recommend__card-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 32px;
  letter-spacing: 2px;
  color: #3c799f;
}

.nekoze-recommend__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.nekoze-recommend__item {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nekoze-recommend__check {
  width: 20px;
  height: 20px;
  display: block;
  flex-shrink: 0;
}

.nekoze-recommend__item span {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  white-space: nowrap;
}

/* 中央：イラスト */
.nekoze-recommend__illust {
  flex-shrink: 0;
  width: 216px;
  height: 216px;
  overflow: hidden;
}

.nekoze-recommend__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 右：テキスト */
.nekoze-recommend__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nekoze-recommend__body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.nekoze-recommend__accent {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #cd504f;
}

/* 締めテキスト */
.nekoze-recommend__closing {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* キャッチフレーズ */
.nekoze-recommend__catchphrase {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.8;
  letter-spacing: 1.4px;
  color: #b39700;
  text-align: center;
  white-space: nowrap;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .nekoze-recommend {
    padding: 80px 0px;
  }
  .nekoze-recommend__card {
    flex-direction: column;
    align-items: center;
    padding: 32px 24px;
    width: 80%;
  }
  .nekoze-recommend__item span {
    white-space: normal;
  }
  .nekoze-recommend__closing,
  .nekoze-recommend__catchphrase {
    white-space: normal;
    width: 90%;
  }
}

@media (max-width: 767px) {
  .nekoze-recommend {
    padding: 40px 0px;
  }
  .nekoze-recommend__inner {
    max-width: none;
    gap: 32px;
  }

  .nekoze-recommend__head {
    width: 100%;
    text-align: center;
  }
  .nekoze-recommend__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .nekoze-recommend__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }

  .nekoze-recommend__card {
    flex-direction: column;
    padding: 32px 0px;
    gap: 24px;
    width: 90%;
  }
  .nekoze-recommend__right {
    display: contents;
  }
  .nekoze-recommend__right02 {
    display: flex;
  }
  .nekoze-recommend__left {
    order: 1;
    width: 90%;
    gap: 16px;
  }
  .nekoze-recommend__illust {
    order: 2;
    width: 40%;
    height: auto;
    margin: 0 auto;
  }
  .nekoze-recommend__body {
    order: 3;
    width: 90%;
  }
  .nekoze-recommend__accent {
    order: 4;
    width: 90%;
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: 0.64px;
  }

  .nekoze-recommend__card-title {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.9px;
    text-align: center;
  }
  .nekoze-recommend__list {
    gap: 8px;
  }
  .nekoze-recommend__item span {
    font-size: 14px;
    letter-spacing: 0.7px;
    flex: 1;
    min-width: 0;
  }

  .nekoze-recommend__closing {
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.8;
    width: 90%;
  }
  .nekoze-recommend__catchphrase {
    font-size: 20px;
    letter-spacing: 1px;
    line-height: 1.8;
  }
}
/* ===== プログラム概要 ===== */
.program {
  width: 100%;
  padding: 80px 0px;
  background-color: #fcfcfc;
  position: relative;
  overflow: hidden;
}

.program__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

/* 見出し */
.program__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 760px;
  max-width: 100%;
}

.program__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.program__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

.program__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* テーブルラッパー */
.program__table-wrap {
  width: 1000px;
  max-width: 100%;
  z-index: 100;
}

.program__table {
  width: 100%;
  border-collapse: collapse;
  /* border-top: 1px solid #b9b9b9; */
}

/* 各行 */
.program__row {
  border-bottom: 1px solid #b9b9b9;
}
.program__row:last-child {
  border-bottom: 0px solid #b9b9b9;
}

/* ラベルセル（左） */
.program__th {
  width: 320px;
  background-color: #f2f3f7;
  vertical-align: middle;
  padding: 0;
}

.program__th-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  height: 100%;
  min-height: 74px;
  padding: 16px;
}

.program__th-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #fcfcfc;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.program__th-icon img {
  width: 20px;
  height: 20px;
  display: block;
  object-fit: contain;
}

.program__th-label {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 25.6px;
  letter-spacing: 0.5px;
  color: #3c799f;
  text-align: center;
  width: 74px;
}

/* 内容セル（右） */
.program__td {
  padding: 16px 24px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
  vertical-align: middle;
}

.program__td p {
  margin: 0;
}
.program__td_ml {
  margin-left: 56px !important;
}

/* 金額（あかべに） */
.program__price {
  color: #cd504f;
}

.program__price-num {
  font-size: 24px;
  letter-spacing: 1.2px;
}

.program__price-sub {
  font-size: 24px;
  letter-spacing: 1.2px;
}

/* ボタン */
.program__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  /* padding: 9px 41px; */
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
  z-index: 10;
}

.program__btn:hover {
  opacity: 0.7;
}

.program__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}
.program-u-line {
  position: absolute;
  top: -10px;
  left: -20px;
  z-index: 10;
  width: 30%;
}
.program-d-line {
  position: absolute;
  bottom: -10px;
  right: -20px;
  z-index: 0;
  width: 70%;
}
/* レスポンシブ */
@media (max-width: 1100px) {
  .program {
    padding: 80px 0px;
  }
  .program__th {
    width: 200px;
  }
  .program__table {
    width: 90%;
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .program {
    padding: 40px 0px;
  }
  .program_gaittraining {
    padding: 72px 0;
  }
  .program__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .program__head {
    width: 100%;
    gap: 8px;
  }

  .program__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .program__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }

  /* ===== テーブル ===== */
  .program__table-wrap {
    width: 90%;
  }

  /* Figmaは表の一番上にも罫線があるため追加 */
  .program__table {
    border-top: 0px solid #b9b9b9;
  }

  .program__th {
    width: 100px;
  }

  .program__th-inner {
    min-height: 0;
    gap: 4px;
    padding: 16px;
  }

  .program__th-icon {
    width: 28px;
    height: 28px;
  }
  .program__th-icon02 img {
    width: 16px;
    height: 16px;
    display: block;
    object-fit: contain;
  }

  .program__th-label {
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.7px;
    width: 30px;
  }

  .program__td {
    padding: 16px 14px;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.8px;
  }
  .program__td_ml {
    margin-left: 0px !important;
  }
  .program__td_mt {
    margin-top: 20px !important;
  }

  /* 価格の数字だけ大きくする指定を解除し、行全体を同じサイズに統一 */
  .program__price-num {
    font-size: inherit;
    letter-spacing: inherit;
  }

  .program__price {
    display: block;
    margin-top: 4px;
    font-size: 20px;
    letter-spacing: 1px;
    text-align: center;
  }

  .program__price-sub {
    font-size: inherit;
    letter-spacing: inherit;
  }

  /* ===== ボタン ===== */
  .program__btn {
    width: 90%;
  }
  .program__row:last-child {
    border-bottom: 1px solid #b9b9b9;
  }
}

/* ===== マタニティ リードテキスト ===== */
.maternity-lead {
  position: relative;
  width: 100%;
  padding: 56px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  overflow: hidden;
}

/* 左イラスト（絶対配置） */
.maternity-lead__illust {
  position: absolute;
  left: -120px;
  top: 20px;
  width: 220px;
  height: 146px;
  pointer-events: none;
}

.maternity-lead__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* キャッチ */
.maternity-lead__catch {
  position: relative;
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 1.2px;
  color: #cd504f;
  text-align: center;
  white-space: nowrap;
}
.maternity-lead__catch::before {
  content: url("../image/maternity/lead__catch_line.png");
  position: absolute;
  left: -80px;
  bottom: 8px;
}
.maternity-lead__catch::after {
  content: url("../image/maternity/lead__catch_line.png");
  position: absolute;
  right: -80px;
  bottom: 8px;
}

/* 本文 */
.maternity-lead__body {
  width: 1000px;
  max-width: 100%;
  position: relative;
}

.maternity-lead__body p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #333;
  text-align: center;
}

.maternity-lead__gold {
  color: #b39700;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .maternity-lead {
    padding: 56px 0px;
  }
  .maternity-lead__catch {
    white-space: normal;
    width: 80%;
  }
  .maternity-lead__illust {
    left: -30px;
    width: 20%;
    height: auto;
  }
}

@media (max-width: 767px) {
  .maternity-lead {
    padding: 0px 0px 40px;
    width: 90%;
    margin: 0 auto;
  }
  .maternity-lead__catch,
  .maternity-lead__body p {
    font-size: 18px;
  }
  .maternity-lead__catch::before {
    content: url("../image/maternity/lead__catch_line.png");
    position: absolute;
    bottom: 45%;
    width: 10%;
  }
  .maternity-lead__catch::after {
    content: url("../image/maternity/lead__catch_line.png");
    position: absolute;
    bottom: 45%;
    right: -40px;
    width: 10%;
  }
  /* 左イラスト（絶対配置） */
  .maternity-lead__illust {
    display: none;
  }
  /* 左イラスト（絶対配置） */
  .maternity-lead__illust02 {
    text-align: right;
    margin-top: 32px;
  }
}
/* ===== マタニティーハビットについて ===== */
.maternity-about {
  width: 100%;
  padding: 80px 0px;
  background: linear-gradient(
    to bottom,
    rgba(205, 80, 79, 0.08) 0%,
    rgba(205, 80, 79, 0) 14%
  );
}

.maternity-about__inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.maternity-about__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
}

.maternity-about__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.maternity-about__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* キャッチ */
.maternity-about__catch p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #333;
  text-align: center;
}

.maternity-about__red {
  color: #cd504f;
}

/* 左右イラスト＋本文 */
.maternity-about__middle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 230px;
}

.maternity-about__illust {
  flex-shrink: 0;
  width: 230px;
  height: 230px;
}

.maternity-about__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 本文 */
.maternity-about__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 728px;
}

.maternity-about__body p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* ボタン */
.maternity-about__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 320px;
  height: 50px;
  padding: 9px 41px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.maternity-about__btn:hover {
  opacity: 0.7;
}

.maternity-about__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .maternity-about {
    padding: 80px 0px;
  }
  .maternity-about__title {
    white-space: normal;
  }
  .maternity-about__middle {
    flex-wrap: wrap;
    gap: 24px;
    width: 90%;
  }
  .maternity-about__illust {
    width: 160px;
    height: 160px;
  }
}

@media (max-width: 767px) {
  .maternity-about {
    padding: 40px 0px;
  }
  .maternity-about__inner {
    max-width: none;
    gap: 32px;
  }

  .maternity-about__head {
    gap: 8px;
  }
  .maternity-about__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }
  .maternity-about__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }

  .maternity-about__catch p {
    font-size: 20px;
    line-height: 1.8;
    letter-spacing: 1px;
    text-align: left;
    width: 90%;
    margin: 0 auto;
  }

  .maternity-about__middle {
    flex-wrap: wrap;
    gap: 16px;
  }
  .maternity-about__illust {
    display: flex !important;
    width: 167px;
    height: 124px;
  }
  .maternity-about__illust--left {
    order: 1;
  }
  .maternity-about__illust--right {
    order: 2;
  }
  .maternity-about__body {
    order: 3;
    flex: none;
    width: 90%;
  }
  .maternity-about__body p {
    text-align: left;
  }
}
/* ===== サポート内容（マタニティ） ===== */
.mata-support {
  width: 100%;
  padding: 32px 0px;
  background-color: #fcfcfc;
}

.mata-support__inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* ゴールドボーダーカード */
.mata-support__card {
  position: relative;
  background-color: #fcfcfc;
  border: 1px solid #b39700;
  border-radius: 16px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 56px 80px 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  overflow: hidden;
}

/* 右：妊婦イラスト（絶対配置） */
.mata-support__illust {
  position: absolute;
  right: 0;
  bottom: 30%;
  width: 400px;
  height: 271px;
  pointer-events: none;
  opacity: 0.64;
}

.mata-support__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 見出し */
.mata-support__head {
  width: 100%;
  max-width: 1000px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.mata-support__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.mata-support__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* コンテンツ（左寄せ） */
.mata-support__content {
  width: 100%;
  max-width: 1000px;
  padding-left: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* キャッチ */
.mata-support__catch {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #cd504f;
}

/* 各項目 */
.mata-support__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* 箇条書きラベル（ゴールド） */
.mata-support__list {
  list-style: disc;
  margin: 0;
  padding-left: 27px;
}

.mata-support__list-item {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #b39700;
}

/* 本文 */
.mata-support__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  width: 624px;
  max-width: 100%;
}

/* フッター（締めテキスト＋ボタン） */
.mata-support__footer {
  width: 100%;
  max-width: 1000px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.mata-support__closing {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* ボタン */
.mata-support__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.mata-support__btn:hover {
  opacity: 0.7;
}

.mata-support__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .mata-support {
    padding: 32px 0px;
  }
  .mata-support__card {
    padding: 40px 40px 56px;
    width: 80%;
    margin: 0 auto;
  }
  .mata-support__illust {
    display: none;
  }
  .mata-support__illust02 {
    width: 80%;
    pointer-events: none;
  }
  .mata-support__illust02 img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  .mata-support__content {
    padding-left: 0;
  }
  .mata-support__text {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .mata-support {
    padding: 32px 0px;
  }
  .mata-support__inner {
    width: 90%;
    margin: 0 auto;
  }

  .mata-support__card {
    padding: 40px 20px 56px;
  }
  .mata-support__title {
    font-size: 32px;
    white-space: normal;
  }
  .mata-support__eyebrow {
    font-size: 14px;
  }
  .mata-support__catch {
    font-size: 18px;
  }
  .mata-support__btn {
    width: 90%;
    white-space: normal;
    height: auto;
    padding: 12px 24px;
  }
  .mata-support__closing {
    font-size: 18px;
  }
}
/* ===== 施術の内容（マタニティ） ===== */
.mata-approach {
  width: 100%;
  padding: 56px 0px 80px;
  background: linear-gradient(
    to bottom,
    rgba(205, 80, 79, 0) 86%,
    rgba(205, 80, 79, 0.08) 100%
  );
}

.mata-approach__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
}

/* 見出し */
.mata-approach__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 760px;
  max-width: 100%;
}

.mata-approach__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.mata-approach__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

.mata-approach__divider {
  width: 104px;
  height: 20px;
  display: block;
}

/* カード3列 */
.mata-approach__cards {
  display: flex;
  gap: 40px;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}

.mata-approach-card {
  flex: 1;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
}

/* アイコン */
.mata-approach-card__icon {
  width: 120px;
  height: 120px;
  flex-shrink: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mata-approach-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル（あかべに） */
.mata-approach-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: 1.1px;
  color: #cd504f;
  text-align: center;
  white-space: nowrap;
}

/* テキスト */
.mata-approach-card__text {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  width: 265px;
  max-width: 100%;
}
.program__td_mata {
  font-size: 16px;
}
/* レスポンシブ */
@media (max-width: 1100px) {
  .mata-approach {
    padding: 56px 0px 80px;
  }
  .mata-approach__cards {
    flex-wrap: wrap;
    gap: 24px;
  }
  .mata-approach-card {
    width: calc(50% - 12px);
    flex: none;
  }
  .mata-approach-card__title {
    white-space: normal;
  }
  .mata-approach-card__text {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .mata-approach {
    padding: 40px 0px 56px;
  }
  .mata-approach__title {
    font-size: 32px;
    white-space: normal;
  }
  .mata-approach__eyebrow {
    font-size: 14px;
  }
  .mata-approach-card {
    width: 80%;
    padding: 32px 0;
  }
  .mata-approach-card__text {
    width: 90%;
  }
  .mata-approach__inner {
    gap: 32px;
  }
}
/* ===== 404ページ ===== */
.not-found {
  width: 100%;
  /* min-height: calc(100vh - 72px - 456px); */
  padding: 80px 0px 135px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

/* 404番号＋ラベル */
.not-found__num {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.not-found__404 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 60px;
  line-height: 1.6;
  letter-spacing: 3px;
  color: #cd504f;
  text-align: center;
}

.not-found__label {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #cd504f;
  text-align: center;
  white-space: nowrap;
}

/* 説明テキスト */
.not-found__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.not-found__text p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* ボタン */
.not-found__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.not-found__btn:hover {
  opacity: 0.7;
}

.not-found__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .not-found {
    padding: 40px 0px;
  }

  .not-found__404 {
    font-size: 56px;
    letter-spacing: 2.8px;
  }

  .not-found__text p {
    white-space: normal;
  }

  .not-found__btn {
    width: 320px;
    height: 50px;
  }
}
/* 歩行訓練ページ：杖イラストを傾ける */

.hokou-lead_img {
  position: absolute;
  top: 40%;
  left: -10%;
}
.nekoze-lead_img--hokou {
  /* transform: rotate(-6.78deg); */
  max-width: 120px;
  top: 50%;
}

@media (max-width: 1100px) {
  .nekoze-lead_img--hokou {
    top: 30%;
    left: 0;
    width: 10%;
  }
}

@media (max-width: 767px) {
  .hokou-lead__catch {
    width: 90%;
    margin-left: 0;
  }
  .hokou-lead__catch p {
    width: 90%;
    margin-left: 0;
  }
  .nekoze-lead_img--hokou {
    left: auto;
    right: 10px;
    top: 10%;
    width: 24%;
  }
  .hokou-lead__body p {
    width: 100%;
    text-align: center;
    font-size: 16px;
    color: #333;
  }
}
/* ===== 独自のこだわり（歩行訓練） ===== */
.hokou-method {
  position: relative;
  width: 100%;
  padding: 80px 0px;
  background:
    linear-gradient(
      180deg,
      rgba(60, 121, 159, 0.16) 0%,
      rgba(60, 121, 159, 0) 10%
    ),
    #fcfcfc;
  overflow: hidden;
}

.hokou-method__inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
}

/* 右：人物イラスト（絶対配置） */
.hokou-method__person {
  position: absolute;
  right: 0;
  top: 100px;
  width: 219px;
  height: 328px;
  pointer-events: none;
}

.hokou-method__person img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 見出し */
.hokou-method__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  text-align: center;
}

.hokou-method__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.hokou-method__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

/* キャッチ */
.hokou-method__catch {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #333;
}

.hokou-method__red {
  color: #cd504f;
}

/* 本文 */
.hokou-method__body {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}
.hokou-method__body a {
  text-decoration: none;
}
/* リーフ装飾＋締めテキスト */
.hokou-method__closing-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-height: 166px;
}

.hokou-method__leaf {
  flex-shrink: 0;
  width: 139px;
  height: 208px;
}

.hokou-method__leaf img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 右のリーフは左右反転・上下反転 */
.hokou-method__leaf--right img {
  transform: scaleX(-1);
}

.hokou-method__closing {
  /* flex: 1; */
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* ボタン */
.hokou-method__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  align-self: center;
  transition: opacity 0.2s ease;
}

.hokou-method__btn:hover {
  opacity: 0.7;
}

.hokou-method__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .hokou-method {
    padding: 80px 0px;
  }
  .hokou-method__person {
    display: none;
  }
  .hokou-method__catch {
    font-size: 20px;
    margin: 0 auto;
  }
  .hokou-method__body {
    margin: 0 auto;
  }
}

/* ============================================================
   Section / Our Method（独自のこだわり・歩行訓練） — SP（〜767px）
   Figma: SectionOurMethodSp (node 1499:8627) を基に作成
   ============================================================ */
@media (max-width: 767px) {
  .hokou-method {
    padding: 72px 0px;
  }

  .hokou-method__inner {
    max-width: none;
    width: 100%;
    align-items: center;
    gap: 24px;
  }

  /* ===== 表示順の並び替え：見出し→キャッチ→イラスト→本文→締め→ボタン ===== */
  .hokou-method__head {
    order: 1;
    gap: 6px;
  }

  .hokou-method__catch {
    order: 2;
    width: 90%;
    font-size: 18px;
    letter-spacing: 0;
    line-height: 32px;
  }

  .hokou-method__person {
    display: block !important;
    position: static;
    order: 3;
    width: 175px;
    height: 262px;
  }

  .hokou-method__body {
    order: 4;
    width: 90%;
    letter-spacing: 0;
    line-height: 29px;
  }

  .hokou-method__closing-wrap {
    order: 5;
    min-height: 0;
  }

  .hokou-method__btn {
    order: 6;
    width: 90%;
    height: 50px;
  }

  /* ===== 見出し文字サイズ ===== */
  .hokou-method__eyebrow {
    font-size: 13px;
    letter-spacing: 0;
  }

  .hokou-method__title {
    font-size: 28px;
    letter-spacing: 0;
  }

  /* ===== 締めテキスト（リーフ装飾は非表示） ===== */
  .hokou-method__leaf {
    display: none;
  }

  .hokou-method__closing {
    font-size: 18px;
    letter-spacing: 0;
    line-height: 32px;
    width: 90%;
  }
}
/* 歩行訓練：背景色・カードタイトル色変更 */
.nekoze-approach--hokou {
  background-color: rgba(60, 121, 159, 0.08);
}

/* カードタイトルを黒に（デフォルトははなだ色） */
.approach-card__title--dark {
  color: #333;
}
@media (max-width: 767px) {
  .hokou-approach__title {
    font-size: 28px;
  }
}
/* ===== こんな方におすすめです（歩行訓練） ===== */
.hokou-recommend {
  width: 100%;
  padding: 80px 0px;
  background: linear-gradient(
    to bottom,
    rgba(60, 121, 159, 0) 90%,
    rgba(60, 121, 159, 0.16) 100%
  );
}

.hokou-recommend__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

/* 見出し */
.hokou-recommend__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 760px;
  max-width: 100%;
}

.hokou-recommend__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.hokou-recommend__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* カード */
.hokou-recommend__card {
  position: relative;
  width: 900px;
  max-width: 100%;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 40px 52px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  overflow: hidden;
}

/* 右：イラスト（絶対配置） */
.hokou-recommend__illust {
  position: absolute;
  right: 60px;
  top: 20px;
  width: 175px;
  height: 262px;
  pointer-events: none;
}

.hokou-recommend__illust img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* カードタイトル */
.hokou-recommend__card-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #cd504f;
  margin-left: 80px;
}

/* 2列リスト */
.hokou-recommend__lists {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  position: relative;
}

.hokou-recommend__list {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-shrink: 0;
}

.hokou-recommend__item {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hokou-recommend__check {
  width: 20px;
  height: 20px;
  display: block;
  flex-shrink: 0;
}

.hokou-recommend__item span {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  white-space: nowrap;
}

/* 締めテキスト */
.hokou-recommend__closing {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* キャッチフレーズ */
.hokou-recommend__catchphrase {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.8;
  letter-spacing: 1.4px;
  color: #b39700;
  text-align: center;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .hokou-recommend {
    padding: 80px 0px;
  }
  .hokou-recommend__inner {
    padding: 0;
  }
  .hokou-recommend__title {
    white-space: normal;
  }
  .hokou-recommend__illust {
    display: none;
  }
  .hokou-recommend__lists {
    flex-wrap: wrap;
  }
  .hokou-recommend__list {
    width: 100%;
  }
  .hokou-recommend__item span {
    white-space: normal;
  }
  .hokou-recommend__card {
    padding: 40px 0px;
  }
  .hokou-recommend__lists {
    order: 3;
    gap: 12px;
    width: 80%;
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .hokou-recommend {
    padding: 72px 0px;
  }

  .hokou-recommend__inner {
    max-width: none;
    gap: 28px;
  }

  /* ===== 見出し ===== */
  .hokou-recommend__head {
    gap: 6px;
  }

  .hokou-recommend__eyebrow {
    font-size: 13px;
    letter-spacing: 0;
  }

  .hokou-recommend__title {
    font-size: 28px;
    letter-spacing: 0;
  }

  /* ===== カード ===== */
  .hokou-recommend__card {
    padding: 28px 0px;
    gap: 22px;
    width: 90%;
  }

  /* カードタイトル：先頭に表示、絶対配置イラスト用の余白は不要 */
  .hokou-recommend__card-title {
    order: 1;
    width: 90%;
    margin: 0 auto;
    font-size: 18px;
    letter-spacing: 0;
    line-height: 32px;
    text-align: center;
  }

  /* イラスト：カードタイトルの下に再表示 */
  .hokou-recommend__illust {
    display: block !important;
    position: static;
    align-self: center;
    order: 2;
    width: 145px;
    height: 217px;
  }

  /* チェックリスト：イラストの下 */
  .hokou-recommend__lists {
    order: 3;
    gap: 12px;
    width: 90%;
    margin: 0 auto;
  }

  .hokou-recommend__list {
    gap: 12px;
  }

  .hokou-recommend__item span {
    flex: 1;
    min-width: 0;
    letter-spacing: 0;
    line-height: 26px;
  }

  /* ===== 締めテキスト ===== */
  .hokou-recommend__closing {
    font-size: 18px;
    letter-spacing: 0;
    line-height: 32px;
  }

  /* ===== キャッチフレーズ ===== */
  .hokou-recommend__catchphrase {
    font-size: 20px;
    letter-spacing: 0;
    line-height: 34px;
  }
}
/* ============================
  お喜びの声 一覧ページ（FULL CSS）
============================= */

.voices {
  width: 100%;
  padding: 0 0 80px;
  background-color: #fcfcfc;
}

.voices__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  padding: 0;
}

/* リードテキスト */
.voices__lead {
  margin: 0;
  padding: 40px 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

/* ===== フィルターエリア ===== */
.voices__filter {
  /* width: 1200px; */
  max-width: 100%;
  background-color: #f2f3f7;
  border-radius: 8px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.voices__filter-row {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.voices__filter-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  flex-shrink: 0;
  padding-top: 8px;
  width: 70px;
}

.voices__filter-label span {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  white-space: nowrap;
}

.voices__filter-label-line {
  width: 100%;
  height: 1px;
  background-color: #b39700;
}

.voices__filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  flex: 1;
}

.voices__filter-btn {
  width: 190px;
  height: 40px;
  padding: 8px 24px;
  border-radius: 9999px;
  border: 1px solid transparent;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #333;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.voices__filter-btn.is-active {
  background-color: #3c799f;
  border-color: #3c799f;
  color: #fcfcfc;
}

.voices__filter-btn:hover:not(.is-active) {
  border-color: #3c799f;
}

/* ===== 件数表示 ===== */
.voices__count {
  margin: 0;
  padding-top: 24px;
  width: 1200px;
  max-width: 100%;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 1.28px;
  color: #333;
  text-align: right;
}

/* ===== カードグリッド（縦積み） ===== */
.voices__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 1200px;
  max-width: 100%;
  border-top: 1px solid #3c799f;
}

/* ===== 横並び型カード ===== */
.voice-row-v2 {
  display: flex;
  align-items: center;
  gap: 48px;
  justify-content: center;
  padding: 48px 40px;
  border-bottom: 1px solid #3c799f;
  background-color: #fcfcfc;
}

.voice-row-v2.is-hidden {
  display: none;
}

/* 左：既存の voice-card-v2 を幅固定で使う */
.voice-row-v2 .voice-card-v2 {
  flex-shrink: 0;
  max-width: 370px;
}

/* ===== voice-card-v2（左カード）===== */
.voice-card-v2 {
  background-color: #fcfcfc;
  border: 1px solid #b39700;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
  padding: 20px;
  display: flex;
  flex-direction: column;
  /* gap: 32px; */
  overflow: hidden;
}

.voice-card-v2__tag {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #b39700;
}

.voice-card-v2__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.voice-card-v2__image {
  width: 100%;
  height: 216px;
  overflow: hidden;
  border-radius: 8px;
}

.voice-card-v2__image img {
  width: 100%;
  max-width: 330px;
  height: auto;
  object-fit: cover;
  display: block;
}

.voice-card-v2__footer {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin-top: 32px;
}

.voice-card-v2__avatar {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
}

.voice-card-v2__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.voice-card-v2__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.voice-card-v2__comment {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #3c799f;
}

.voice-card-v2__profile {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #333;
}

/* ===== 右：本文テキスト ===== */
.voice-row-v2__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.voice-row-v2__text p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

.voice-row-v2__accent {
  color: #cd504f;
}
.voice-row-v2__toggle {
  display: none;
}

/* ===== レスポンシブ ===== */
@media (max-width: 1200px) {
  .voices__count {
    padding: 24px 0px 0;
  }
  .voices__grid {
    width: 100%;
  }
}

@media (max-width: 1100px) {
  .voice-row-v2 {
    flex-direction: column;
    gap: 32px;
    padding: 40px 24px;
  }
  .voice-row-v2 .voice-card-v2 {
    width: 100%;
    max-width: 370px;
  }
}

@media (max-width: 900px) {
  .voices__filter {
    padding: 24px;
  }
  .voices__filter-row {
    flex-direction: column;
    gap: 12px;
  }
  .voices__filter-btn {
    width: calc(50% - 8px);
  }
  .voices__lead {
    white-space: normal;
    padding: 40px 24px;
  }
}

/* ============================================================
  Voices（お客様のお声・フィルター） — SP（〜767px）
   ============================================================ */
@media (max-width: 767px) {
  /* ===== フィルターエリア ===== */
  .voices__filter {
    padding: 40px 0px;
  }

  .voices__filter-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    width: 90%;
    margin: 0 auto;
  }

  .voices__filter-label {
    width: fit-content; /* 下線がテキスト幅に合わせて短くなる（絞り込む=70px、性別/年齢=33px相当） */
  }

  .voices__filter-buttons {
    flex: none;
    width: 100%;
    gap: 8px;
  }

  .voices__filter-btn {
    width: auto;
    min-width: 72px;
    height: 32px;
    padding: 0 16px;
    font-size: 12px;
    line-height: 32px;
  }

  .voices__filter-btn.is-active {
    letter-spacing: 0.6px;
  }

  /* ===== 件数表示 ===== */
  .voices__count {
    width: 100%;
    padding: 24px 0px 0;
    text-align: center;
  }

  /* ===== カードグリッド ===== */
  .voices__grid {
    width: 100%;
    border-top: 0px solid #3c799f;
  }

  .voice-row-v2 {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 20px 0px;
    width: 90%;
    margin: 0 auto;
  }

  .voice-row-v2 .voice-card-v2 {
    width: 306px;
    max-width: 100%;
  }
  .voice-card-v2__image img {
    width: 100%;
  }

  .voice-row-v2__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin: 0 auto;
    padding: 0;
    border: none;
    background: none;
    color: #3c799f;
    font-size: 13px;
    line-height: 23px;
    cursor: pointer;
  }
  .voice-row-v2__toggle-label {
    font-size: 16px;
  }
  .voice-row-v2__toggle-icon {
    width: 24px;
    height: 24px;
    transition: transform 0.2s ease;
  }
  .voice-row-v2__toggle[aria-expanded="true"] .voice-row-v2__toggle-icon {
    transform: rotate(180deg);
  }
  .voice-row-v2__text {
    display: none;
  }
  .voice-row-v2.is-expanded .voice-row-v2__text {
    display: block;
  }

  /* ===== voice-card-v2（カード本体） ===== */
  .voice-card-v2 {
    padding: 16px 20px;
    gap: 16px;
  }

  .voice-card-v2__image {
    width: 100%;
    height: 182px;
  }

  .voice-card-v2__footer {
    margin-top: 0;
    align-items: center;
    gap: 8px;
  }

  .voice-card-v2__avatar {
    width: 70px;
    height: 70px;
  }

  .voice-card-v2__comment {
    font-size: 16px;
    letter-spacing: 0.8px;
    line-height: 1.6;
  }

  .voice-card-v2__profile {
    line-height: 1.5;
  }
  .voices__lead {
    padding: 40px 24px 16px;
  }
}
/* ===== ビフォーアフター ===== */
.ba-section {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
}

.ba-section_02 {
  background-color: #b3970014;
}

.ba-section__inner {
  max-width: 1220px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

/* 見出し */
.ba-section__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.ba-section__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.ba-section__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

.ba-section__divider {
  width: 104px;
  height: 20px;
  display: block;
}

.ba-section__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

/* スライダーラッパー */
.ba-section__slider-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  /* gap: 16px; */
}

/* 矢印 */
.ba-section__arrow {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.ba-section__arrow:hover {
  opacity: 0.7;
}
.ba-section__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}

.ba-section__arrow img {
  width: 100%;
  height: 100%;
  display: block;
}

/* スライダー本体 */
.ba-section__slider {
  flex: 1;
  overflow: hidden;
}

.ba-section__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 40px;
  transition: transform 0.4s ease;
}

/* ===== カード ===== */
.ba-card {
  flex-shrink: 0;
  width: 492px;
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 32px 24px 40px;
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin-bottom: 16px;
}
.ba-card-s {
  height: 50%;
  margin-top: 15%;
  margin-bottom: 0px;
}

/* 名前 */
.ba-card__name {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.5px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

/* 画像グループ */
.ba-card__images {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ba-card__image-row {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* BEFORE/AFTER 2枚横並び */
.ba-card__img-wrap {
  width: 100%;
  height: 333px;
  display: flex;
  gap: 0;
  overflow: hidden;
}

.ba-card__img-wrap img {
  width: 50%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 既存の .ba-card__img-wrap を削除して下記に差し替え */
.ba-card__img-single {
  width: 100%;
  height: 333px;
  overflow: hidden;
  border-radius: 8px;
}

.ba-card__img-single img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ラベル行 */
.ba-card__img-labels {
  display: flex;
  width: 100%;
}

.ba-card__label {
  flex: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  text-align: center;
}

.ba-card__label--before {
  color: #3c799f;
}
.ba-card__label--after {
  color: #cd504f;
}

/* 結果テキスト */
.ba-card__result {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #666;
  text-align: center;
  white-space: nowrap;
}

.ba-card__num {
  color: #cd504f;
}

/* もっと見る */
.ba-card__more,
.ba-card__more_close {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
  text-align: center;
  text-decoration: none;
  display: block;
}

.ba-card__more:hover,
.ba-card__more_close:hover {
  opacity: 0.7;
}

.arrow_un {
  display: inline-block;
  transform: rotate(90deg) scaleY(2);
  width: 8px;
  margin-left: 8px;
}
.arrow_up {
  display: inline-block;
  transform: rotate(-90deg) scaleY(2);
  margin-left: 8px;
  margin-top: 10px;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .ba-section {
    padding: 80px 0px;
  }
  .ba-card {
    width: calc(100vw - 160px);
    max-width: 540px;
  }
}

@media (max-width: 767px) {
  .ba-section {
    padding: 40px 0px;
  }

  .ba-section__inner {
    max-width: none;
    gap: 32px;
  }

  .ba-section__head {
    gap: 8px;
  }

  .ba-section__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .ba-section__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }

  .ba-section__divider {
    width: 80px;
    height: 15px;
  }

  .ba-section__arrow {
    display: none;
  }

  .ba-section__slider-wrap {
    gap: 0;
    width: 95%;
  }

  .ba-section__slider {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
  }

  .ba-section__track {
    gap: 16px;
    transform: none;
  }

  .ba-card {
    width: 320px;
    padding: 16px 16px 20px;
    gap: 8px;
    margin-bottom: 0;
    box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
    scroll-snap-align: start;
  }

  .ba-card-s {
    height: auto;
    margin-top: 0;
    margin-bottom: 0;
  }

  .ba-card__name {
    letter-spacing: 0.9px;
    line-height: 1.8;
  }

  .ba-card__images {
    gap: 8px;
  }

  .ba-card__image-row {
    gap: 8px;
  }

  .ba-card__img-single {
    height: 202px;
    border-radius: 8px;
  }

  .ba-card__img-labels {
    height: 26px;
  }

  .ba-card__label {
    font-size: 16px;
    letter-spacing: 0.8px;
  }

  .ba-card__result {
    font-size: 16px;
    letter-spacing: 0.8px;
    color: #cd504f;
  }

  .ba-card__more {
    font-size: 16px;
    letter-spacing: 0;
  }
  .ba-section__lead {
    margin-top: 24px;
  }
}
/* ============================
  ビフォーアフター ポップアップ
============================= */

/* ===== オーバーレイ ===== */
.ba-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0s linear 0.3s;
}

.ba-modal.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.3s ease,
    visibility 0s linear 0s;
}

.ba-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.6);
  cursor: pointer;
}

/* ===== 閉じるボタン ===== */
.ba-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border: none;
  background: none;
  font-size: 20px;
  color: #333;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.2s ease;
  z-index: 10;
}

.ba-modal__close:hover {
  background-color: rgba(0, 0, 0, 0.08);
}

/* ===== 内部スライダー矢印 ===== */
.ba-modal__arrow {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.2s ease;
  z-index: 10;
}

.ba-modal__arrow:hover {
  opacity: 0.7;
}
.ba-modal__arrow:disabled {
  opacity: 0.3;
  cursor: default;
}

.ba-modal__arrow img {
  width: 100%;
  height: 100%;
  display: block;
}

/* ===== スライダー ===== */
.ba-modal__slider {
  flex: 1;
  overflow: hidden;
  min-height: 0;
}

.ba-modal__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  transition: transform 0.4s ease;
  align-items: flex-start;
  height: fit-content;
}

/* ===== スライド ===== */
.ba-modal__slide {
  flex-shrink: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: center;
  height: auto;
  min-height: 0;
}

/* 名前 */
.ba-modal__name {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* ===== ボディ（写真＋テーブル横並び） ===== */
.ba-modal__body {
  /* width: 100%; */
  display: flex;
  gap: 32px;
  align-items: flex-start;
  justify-content: center;
}

/* ===== 左：写真 ===== */
.ba-modal__photos {
  flex-shrink: 0;
  width: 486px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ba-modal__photo-row {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ba-modal__img-single {
  width: 100%;
  height: 333px;
  overflow: hidden;
  border-radius: 4px;
}

.ba-modal__img-single img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ba-modal__img-labels {
  display: flex;
  width: 100%;
}

.ba-modal__label--before,
.ba-modal__label--after {
  flex: 1;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  text-align: center;
}

.ba-modal__label--before {
  color: #3c799f;
}
.ba-modal__label--after {
  color: #cd504f;
}

/* ===== 右：テーブル ===== */
.ba-modal__table-wrap {
  flex: 1;
  min-width: 0;
  overflow-x: auto;
}

.ba-modal__table {
  /* width: 100%; */
  border-collapse: collapse;
  /* border: 1px solid #b9b9b9; */
  border-radius: 4px;
  overflow: hidden;
}

/* ヘッダー行 */
.ba-modal__th {
  padding: 10px 12px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  text-align: center;
  border-left: 1px solid #b9b9b9;
  border-top: 1px solid #b9b9b9;
}

.ba-modal__th--blank {
  background-color: #3c799f;
  width: 115px;
}
.ba-modal__th--before {
  background-color: #3c799f;
  color: #fcfcfc;
  width: 95px;
}
.ba-modal__th--after {
  background-color: #cd504f;
  color: #fcfcfc;
  width: 95px;
}

/* ボディ行 */
.ba-modal__tr {
  background-color: #fcfcfc;
  border-right: 1px solid #b9b9b9;
}

.ba-modal__td {
  padding: 10px 12px;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  text-align: center;
  border-left: 1px solid #b9b9b9;
  border-top: 1px solid #b9b9b9;
  border-bottom: 1px solid #b9b9b9;
  vertical-align: middle;
}

.ba-modal__td--label {
  color: #3c799f;
  font-size: 14px;
  text-align: center;
}
.ba-modal__td--before {
  color: #3c799f;
}
.ba-modal__td--after {
  color: #cd504f;
}

/* ===== 結果サマリー ===== */
.ba-modal__summary {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #666;
  text-align: center;
  white-space: nowrap;
}

.ba-modal__num {
  color: #cd504f;
}

/* ===== レスポンシブ ===== */
@media (max-width: 900px) {
  .ba-modal__wrap {
    padding: 40px 24px;
  }
  .ba-modal__body {
    flex-direction: column;
    align-items: center;
  }
  .ba-modal__photos {
    width: 100%;
  }
  .ba-modal__img-single {
    height: 220px;
  }
}
@media (max-width: 767px) {
  .ba-modal__slide {
    width: 100%;
    gap: 8px;
  }
  .ba-modal__body {
    width: 90%;
  }
  .ba-modal__summary {
    margin: 0;
    white-space: inherit;
    font-size: 18px;
  }
  .ba-modal__name {
    font-size: 18px;
  }
}
/* ===== O脚・美脚矯正 リードテキスト ===== */
.okyaku-lead {
  width: 100%;
  padding: 56px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

/* 横線＋見出し */
.okyaku-lead__heading {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  justify-content: center;
}

.okyaku-lead__line {
  width: 64px;
  height: 1px;
  background-color: #3c799f;
  flex-shrink: 0;
}

.okyaku-lead__heading-text {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* 本文 */
.okyaku-lead__body {
  position: relative;
  width: 1000px;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.okyaku-lead__body p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

.okyaku-lead_img {
  position: absolute;
  top: 8%;
  right: -20%;
}

.okyaku-lead__gold {
  color: #b39700;
}
.okyaku-lead__red {
  color: #cd504f;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .okyaku-lead {
    padding: 56px 0px;
  }
  .okyaku-lead__heading-text {
    white-space: normal;
  }
  .okyaku-lead__body {
    width: 90%;
  }
  .okyaku-lead_img {
    width: 15%;
    right: 0;
    top: 30%;
  }
}

@media (max-width: 767px) {
  .okyaku-lead {
    padding: 40px 0px;
    gap: 24px;
  }

  /* ===== 見出し（横線＋テキスト） ===== */
  .okyaku-lead__line {
    width: 60px;
  }
  .okyaku-lead__heading {
    width: 90%;
  }
  .okyaku-lead__heading-text {
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.6;
  }
  /* ===== 本文 ===== */
  .okyaku-lead__body {
    width: 90%;
  }
  /* ===== 本文 ===== */
  .okyaku-lead__body p {
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.6;
    text-align: left;
  }

  /* ===== イラスト：通常フロー内・右寄せに ===== */
  .okyaku-lead_img {
    position: static;
    top: auto;
    right: auto;
    align-self: flex-end;
    width: 70%;
  }
}
/* ===== O脚・美脚矯正について ===== */
.okyaku-about {
  width: 100%;
  padding: 80px 0px;
  background-color: rgba(60, 121, 159, 0.08);
}

.okyaku-about__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

/* 見出し */
.okyaku-about__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
}

.okyaku-about__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.okyaku-about__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* リードテキスト */
.okyaku-about__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 1000px;
  max-width: 100%;
}

.okyaku-about__lead p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
}

.okyaku-about__red {
  color: #cd504f;
}

/* カード＋写真 横並び */
.okyaku-about__body {
  display: flex;
  justify-content: center;
  gap: 40px;
  align-items: center;
  width: 1000px;
  max-width: 80%;
}

/* カード2枚 */
.okyaku-about__cards {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 457px;
}

.okyaku-about__card {
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 40px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  width: 376px;
}
.okyaku-about__card a {
  text-decoration: none;
}

/* チェックアイコン */
.okyaku-about__check {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  background-color: #3c799f;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

.okyaku-about__check img {
  /* width: 13px;
  height: 13px; */
  display: block;
  object-fit: contain;
}

.okyaku-about__card p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.9px;
  color: #333;
  flex: 1;
}

/* 写真 */
.okyaku-about__photo {
  flex-shrink: 0;
  width: 320px;
  aspect-ratio: 320 / 392;
  border-radius: 16px;
  overflow: hidden;
}

.okyaku-about__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 締めテキスト */
.okyaku-about__closing {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* ボタン */
.okyaku-about__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.okyaku-about__btn:hover {
  opacity: 0.7;
}

.okyaku-about__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .okyaku-about {
    padding: 80px 0px;
  }
  .okyaku-about__title {
    white-space: normal;
  }
  .okyaku-about__body {
    flex-direction: column;
    width: 100%;
  }
  .okyaku-about__photo {
    width: 100%;
    max-width: 320px;
  }
}

@media (max-width: 767px) {
  .okyaku-about {
    padding: 40px 0px;
    background-color: #f2f3f7;
  }

  .okyaku-about__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .okyaku-about__head {
    gap: 8px;
  }

  .okyaku-about__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .okyaku-about__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }
  .okyaku-about__lead {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: 90%;
  }

  .okyaku-about__lead p {
    text-align: left;
  }
  /* ===== 写真＋カード：縦積み、写真が先 ===== */
  .okyaku-about__body {
    width: 100%;
    max-width: none;
    gap: 32px;
  }

  .okyaku-about__photo {
    order: 1;
    width: 260px;
  }

  .okyaku-about__cards {
    order: 2;
    width: 90%;
    max-width: none;
    gap: 16px;
  }

  .okyaku-about__card {
    width: 90%;
    padding: 20px;
    gap: 14px;
    margin: 0 auto;
  }

  .okyaku-about__check img {
    width: 13px;
    height: 13px;
  }

  .okyaku-about__card p {
    font-size: 16px;
    letter-spacing: 0.8px;
  }

  /* ===== 締めテキスト ===== */
  .okyaku-about__closing {
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.6;
  }

  /* ===== ボタン ===== */
  .okyaku-about__btn {
    width: 90%;
    height: 50px;
    padding: 0;
    white-space: nowrap;
  }
}
/* O脚ページ：背景は白 */
.nekoze-approach--okyaku {
  background-color: #fcfcfc;
}
/* ===== こんな方におすすめです（O脚）===== */
.okyaku-recommend {
  width: 100%;
  padding: 80px 0px;
  background-color: #f2f3f7;
}

.okyaku-recommend__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

/* 見出し */
.okyaku-recommend__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.okyaku-recommend__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
  text-align: center;
}

.okyaku-recommend__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  text-align: center;
  white-space: nowrap;
}

/* 2カード横並び */
.okyaku-recommend__cards {
  display: flex;
  gap: 32px;
  align-items: stretch;
  width: 100%;
}

.okyaku-recommend__card {
  flex: 1;
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* カードタイトル */
.okyaku-recommend__card-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 32px;
  letter-spacing: 2px;
}

.okyaku-recommend__card-title--yes {
  color: #cd504f;
}
.okyaku-recommend__card-title--no {
  color: #777;
}

/* リスト */
.okyaku-recommend__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.okyaku-recommend__item {
  display: flex;
  align-items: center;
  gap: 10px;
}

.okyaku-recommend__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  display: block;
}

.okyaku-recommend__item span {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  white-space: nowrap;
}

/* 締めテキスト */
.okyaku-recommend__closing {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  text-align: center;
  padding: 24px 40px;
}

.okyaku-recommend__closing-main {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #b39700;
}

.okyaku-recommend__closing-sub {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.8;
  letter-spacing: 0.9px;
  color: #b39700;
}

.okyaku-recommend__closing-red {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #cd504f;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .okyaku-recommend {
    padding: 80px 0px;
  }
  .okyaku-recommend__cards {
    flex-direction: column;
  }
  .okyaku-recommend__item span {
    white-space: normal;
  }
  .okyaku-recommend__title {
    white-space: normal;
  }
  .okyaku-recommend__closing {
    padding: 24px 0px;
  }
}

@media (max-width: 767px) {
  .okyaku-recommend {
    padding: 40px 0px 40px;
  }

  .okyaku-recommend__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .okyaku-recommend__head {
    gap: 16px;
  }

  .okyaku-recommend__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .okyaku-recommend__title {
    font-size: 32px;
    letter-spacing: 1.6px;
  }
  .okyaku-recommend__cards {
    width: 90%;
  }
  /* ===== カード ===== */
  .okyaku-recommend__card {
    padding: 24px 20px;
    gap: 20px;
  }

  .okyaku-recommend__card-title {
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.6;
  }

  .okyaku-recommend__list {
    gap: 14px;
  }

  .okyaku-recommend__item {
    gap: 12px;
  }

  /* ===== 締めテキスト ===== */
  .okyaku-recommend__closing {
    padding: 0;
    gap: 24px;
  }

  .okyaku-recommend__closing-main {
    font-size: 20px !important;
    letter-spacing: 1px;
  }

  .okyaku-recommend__closing-sub {
    font-size: 16px;
    letter-spacing: 0.8px;
  }

  .okyaku-recommend__closing-red {
    font-size: 20px;
    letter-spacing: 1px;
  }
}
/* ===== 食べファス 問題提起セクション ===== */
.tabefas-lead {
  position: relative;
  width: 100%;
  padding: 56px 0px;
  background-color: #fcfcfc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  overflow: hidden;
}

/* 左：食事イラスト（絶対配置） */
.tabefas-lead__illust {
  position: absolute;
  left: -240px;
  bottom: 10px;
  width: 251px;
  height: 167px;
  pointer-events: none;
}

.tabefas-lead__illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* キャッチ */
.tabefas-lead__catch {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #cd504f;
  text-align: center;
  white-space: nowrap;
}

/* 本文 */
.tabefas-lead__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}

.tabefas-lead__body p {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

.tabefas-lead__red {
  color: #cd504f;
}
.tabefas-lead__gold {
  color: #b39700;
}
.approach-line02 {
  position: absolute;
  bottom: 20px;
  left: 0;
  z-index: 0;
  width: 100%;
}
.approach-line03 {
  position: absolute;
  bottom: 0px;
  left: 0;
  z-index: 0;
  width: 60%;
}
/* レスポンシブ */
@media (max-width: 1100px) {
  .tabefas-lead {
    padding: 56px 0px;
  }

  .tabefas-lead__catch {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  .tabefas-lead {
    padding: 0px 0px 40px;
  }
  .tabefas-lead__catch,
  .tabefas-lead__body p {
    font-size: 18px;
  }
  .tabefas-lead__body p {
    text-align: left;
  }
  .tabefas-lead__illust {
    display: none;
  }
  .tabefas-lead__illust02 {
    text-align: right;
  }
}
/* ===== 食べファスについて ===== */
.tabefas-about {
  width: 100%;
  padding: 80px 0px;
  background-color: rgba(179, 151, 0, 0.08);
}

.tabefas-about__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
}

/* 見出し */
.tabefas-about__head {
  display: flex;
  flex-direction: column;
  /* align-items: flex-start; */
  gap: 16px;
  width: 100%;
  text-align: center;
}

.tabefas-about__eyebrow {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1.6px;
  color: #b39700;
}

.tabefas-about__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 1.5;
  letter-spacing: 2px;
  color: #3c799f;
  white-space: nowrap;
}

/* 写真＋カード横並び */
.tabefas-about__body {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  width: 100%;
}

/* 左：写真 */
.tabefas-about__photo {
  flex-shrink: 0;
  width: 584px;
  height: 458px;
  border-radius: 16px;
  overflow: hidden;
}

.tabefas-about__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 右：カード2枚 */
.tabefas-about__cards {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.tabefas-about__card {
  background-color: #fcfcfc;
  border-radius: 16px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* チェックリスト */
.tabefas-about__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  line-height: 160%;
}

.tabefas-about__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.tabefas-about__check {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  background-color: #3c799f;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

.tabefas-about__check img {
  width: 20px;
  height: 20px;
  display: block;
  object-fit: contain;
}

.tabefas-about__item p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.8px;
  color: #333;
  flex: 1;
}

/* テキストカード */
.tabefas-about__card--text {
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.tabefas-about__card--text p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.8px;
  color: #333;
}

.tabefas-about__red {
  color: #cd504f;
}

/* 締めテキスト */
.tabefas-about__closing {
  margin: 0;
  padding-top: 32px;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #3c799f;
  text-align: center;
}

/* ボタン */
.tabefas-about__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  /* padding: 9px 41px; */
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.tabefas-about__btn:hover {
  opacity: 0.7;
}

.tabefas-about__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .tabefas-about {
    padding: 80px 0px;
  }
  .tabefas-about__body {
    flex-direction: column;
    align-items: center;
  }
  .tabefas-about__photo {
    width: 90%;
    height: auto;
    aspect-ratio: 584 / 458;
  }
  .tabefas-about__cards {
    width: 90%;
  }
  .okyaku-recommend__card {
    width: 80%;
    margin: 0 auto;
  }
}

@media (max-width: 767px) {
  .tabefas-about {
    padding: 40px 0px;
  }

  .tabefas-about__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .tabefas-about__head {
    gap: 8px;
  }

  .tabefas-about__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .tabefas-about__title {
    font-size: 32px;
    letter-spacing: 1.6px;
    white-space: normal;
  }
  .tabefas-about__head .nekoze-approach__divider {
    margin: 0 auto;
  }
  .tabefas-about__photo {
    width: 90%;
  }
  /* ===== チェックリストカード ===== */
  .tabefas-about__card {
    padding: 16px 0;
    width: 90%;
    margin: 0 auto;
  }

  .tabefas-about__list {
    width: 90%;
    gap: 16px;
    margin: 0 auto;
  }

  .tabefas-about__item {
    gap: 12px;
  }

  .tabefas-about__check {
    width: 20px;
    height: 20px;
    border-radius: 10px;
  }

  .tabefas-about__check img {
    width: 13px;
    height: 13px;
  }

  .tabefas-about__item p {
    line-height: 1.6;
  }

  /* ===== テキストカード ===== */
  .tabefas-about__card--text {
    padding: 20px 0;
    width: 90%;
  }

  .tabefas-about__card--text p {
    line-height: 1.6;
    width: 90%;
    margin: 0 auto;
  }

  /* ===== 締めテキスト ===== */
  .tabefas-about__closing {
    padding-top: 0;
    font-size: 18px;
    letter-spacing: 0.9px;
  }

  /* ===== ボタン ===== */
  .tabefas-about__btn {
    width: 90%;
    height: 50px;
    padding: 0;
    white-space: nowrap;
  }
}
/* 食べファスページ：背景白・リード文追加 */
.nekoze-approach--tabefas {
  background-color: #fcfcfc;
}

.nekoze-approach__lead {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: center;
  width: 598px;
  max-width: 100%;
}

/* カード4列対応 */
.nekoze-approach--tabefas .nekoze-approach__cards {
  gap: 24px;
}

/* ボタン */
.nekoze-approach__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 318px;
  height: 48px;
  border: 1px solid #3c799f;
  border-radius: 9999px;
  background-color: #fcfcfc;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #3c799f;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
  z-index: 3000;
}

.nekoze-approach__btn:hover {
  opacity: 0.7;
}

.nekoze-approach__btn-arrow {
  width: 6px;
  height: 10px;
  display: block;
  flex-shrink: 0;
}
/* 食べファス：背景グレー */
.okyaku-recommend--tabefas {
  background-color: #f2f3f7;
}

/* 締めテキストエリア */
.okyaku-recommend__closing--tabefas {
  background-color: #f2f3f7;
  padding: 24px 40px;
  width: 100%;
  text-align: center;
}

.okyaku-recommend__closing--tabefas .okyaku-recommend__closing-main {
  color: #b39700;
  font-size: 24px;
}
@media (max-width: 1100px) {
  .okyaku-recommend__closing--tabefas {
    padding: 24px 00px;
    width: 90%;
  }
}

@media (max-width: 767px) {
  .nekoze-approach--tabefas {
    padding: 40px 0px;
  }

  .nekoze-approach--tabefas .nekoze-approach__inner {
    max-width: none;
    gap: 32px;
  }

  /* ===== 見出し ===== */
  .nekoze-approach--tabefas .nekoze-approach__head {
    width: 100%;
    gap: 8px;
  }

  .nekoze-approach--tabefas .nekoze-approach__eyebrow {
    font-size: 14px;
    letter-spacing: 0;
  }

  .nekoze-approach--tabefas .nekoze-approach__title {
    font-size: 30px;
    letter-spacing: 1.5px;
    white-space: normal;
  }

  .nekoze-approach--tabefas .nekoze-approach__divider {
    width: 80px;
    height: 15px;
  }

  /* ===== カード：2×2グリッドのまま ===== */
  .nekoze-approach--tabefas .nekoze-approach__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    width: 90%;
  }

  .nekoze-approach--tabefas .approach-card {
    width: auto;
    max-width: none;
    flex: none;
    height: auto;
    padding: 16px;
    gap: 16px;
    border-radius: 20px;
  }

  .nekoze-approach--tabefas .approach-card__icon {
    width: 80px;
    height: 80px;
  }

  .nekoze-approach--tabefas .approach-card__title {
    width: 100%;
    font-size: 18px;
    letter-spacing: 0.9px;
    line-height: 1.8;
    white-space: normal;
  }

  .nekoze-approach--tabefas .approach-card__text,
  .nekoze-approach--tabefas .approach-card__text02 {
    width: 100%;
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 1.4;
  }

  /* ===== ボタン ===== */
  .nekoze-approach--tabefas .nekoze-approach__btn {
    width: 90%;
    height: 56px;
  }
  .okyaku-recommend__closing--tabefas {
    padding: 24px 0px;
    width: 90%;
  }
}
/* ===== 院長ノート記事一覧 ===== */
.note-list {
  width: 100%;
  padding: 0px 0px 52px;
  background-color: #fcfcfc;
}

.note-list__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.note-list__loading {
  text-align: center;
  color: #333;
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 16px;
  padding: 40px 0;
}

/* 記事カード */
.note-card {
  /* width: 100%; */
  background-color: #fcfcfc;
  border: 1px solid rgba(60, 121, 159, 0.2);
  border-radius: 20px;
  padding: 36px 48px;
  display: flex;
  /* flex-direction: column; */
  gap: 12px;
  text-decoration: none;
  transition: box-shadow 0.2s ease;
  margin-bottom: 28px;
  align-items: self-start;
}

.note-card:hover {
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.08);
}

.note-card__category {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.4;
  color: #3c799f;
}

.note-card__title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.5;
  letter-spacing: 1px;
  color: #333;
}

.note-card__desc {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
}

.note-card__link {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #3c799f;
}

/* レスポンシブ */
@media (max-width: 1100px) {
  .note-list {
    padding: 40px 0px 80px;
  }
  .note-list__inner {
    width: 90%;
  }
}

@media (max-width: 767px) {
  .note-list {
    padding: 40px 0px 80px;
  }
  .note-card {
    flex-direction: column;
    padding: 24px 0px;
    width: 90%;
    margin: 0 auto 28px;
  }
  .note-card__image {
    margin: 0 auto;
  }
  .note-card__title {
    font-size: 24px;
    width: 90%;
    margin: 0 auto;
  }
  .note-card__desc {
    width: 90%;
    margin: 0 auto;
  }
  .note-card__link {
    width: 90%;
    margin: 0 auto;
  }
}
.ba-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center; /* 中央寄せのまま */
  justify-content: center;
  overflow-y: auto;
  padding: 40px 0;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s ease,
    visibility 0s linear 0.3s;
}

.ba-modal.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.3s ease,
    visibility 0s linear 0s;
  z-index: 9999;
}

.ba-modal.is-long {
  align-items: flex-start; /* 60代女性のみ上寄せ */
}

.ba-modal__wrap {
  position: relative;
  z-index: 1;
  width: 90vw;
  max-width: 1145px;
  max-height: 80vh; /* 高さ制限 */
  overflow-y: auto; /* スクロール */
  background-color: #fcfcfc;
  border-radius: 20px;
  box-shadow: 0 8px 12px rgba(51, 51, 51, 0.08);
  padding: 48px 0px;
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin: auto; /* 短いスライドは縦中央に */
}

/* 矢印を .ba-modal__wrap 外に出してオーバーレイに固定 */
.ba-modal__arrow {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  transition: opacity 0.2s ease;
  z-index: 1001;
}

.ba-modal__arrow--prev {
  left: calc(5vw - -24px);
  /* position: absolute;
  top: 50%;
  left: 5px; */
}
.ba-modal__arrow--next {
  right: calc(5vw - 24px);
  /* position: absolute;
  top: 50%;
  right: 5px; */
}

.ba-modal__arrow:hover {
  opacity: 0.7;
}

.ba-modal__arrow img {
  width: 100%;
  height: 100%;
  display: block;
}
/* ===== モーダル Q&A感想エリア ===== */
.ba-modal__qa {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-top: 16px;
  max-height: 800px;
  overflow-y: auto;
}

.ba-modal__qa::-webkit-scrollbar {
  width: 4px;
}
.ba-modal__qa::-webkit-scrollbar-track {
  background: #f2f3f7;
  border-radius: 4px;
}
.ba-modal__qa::-webkit-scrollbar-thumb {
  background: #b39700;
  border-radius: 4px;
}

.ba-modal__qa-title {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 24px;
  line-height: 1.8;
  letter-spacing: 1.2px;
  color: #b39700;
  text-align: center;
}

.ba-modal__qa-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 40px;
}

.ba-modal__qa-q {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #3c799f;
}

.ba-modal__qa-a {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
}

/* ===== 初回割引ポップアップ ===== */
.welcome-popup {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s ease,
    visibility 0s linear 0.4s;
}

.welcome-popup.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.4s ease,
    visibility 0s linear 0s;
}

.welcome-popup__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(38, 26, 10, 0.6);
  cursor: pointer;
}

/* カード */
.welcome-popup__card {
  position: relative;
  z-index: 1;
  width: 540px;
  max-width: 90vw;
  background-color: #fefcf8;
  border: 8px solid #c7994f;
  border-radius: 18px;
  box-shadow: 0 8px 18px rgba(38, 26, 10, 0.32);
  padding: 48px 32px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  /* overflow: hidden; */
}
.popup-line {
  position: absolute;
  bottom: 0;
  right: 0;
}
.popup-line02 {
  position: absolute;
  bottom: 0;
  left: 0;
}
/* 閉じるボタン */
.welcome-popup__close {
  position: absolute;
  top: -24px;
  right: -24px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 3px solid #c7994f;
  background-color: #fefcf8;
  font-size: 18px;
  color: #333;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease;
  z-index: 3000;
}

.welcome-popup__close:hover {
  opacity: 0.7;
}

/* 見出し */
.welcome-popup__heading {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 58px;
}

.welcome-popup__dotline {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.welcome-popup__title {
  margin: 0;
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 40px;
  line-height: normal;
  color: #cd504f;
  white-space: nowrap;
}

/* サブタイトル */
.welcome-popup__sub {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 28px;
  line-height: normal;
  color: #333;
  white-space: nowrap;
}

/* 通常価格 */
.welcome-popup__original {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.welcome-popup__original-label {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 18px;
  color: #333;
}

.welcome-popup__original-price {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 48px;
  color: #333;
}

.welcome-popup__original-unit {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 29px;
  color: #333;
}

.welcome-popup__original-tax {
  font-size: 12px;
}

.welcome-popup__original-suffix {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 18px;
  color: #333;
}

/* 打ち消し線 */
.welcome-popup__original-line {
  position: absolute;
  left: 80px;
  right: 180px;
  height: 2px;
  background-color: #cd504f;
  top: 50%;
  transform: translateY(-50%) rotate(-8deg);
}

/* 矢印 */
.welcome-popup__arrow {
  font-size: 32px;
  color: #cd504f;
  line-height: 1;
}

/* 割引価格 */
.welcome-popup__sale {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  position: relative;
}

.welcome-popup__sparkle {
  font-size: 36px;
  color: #b39700;
  line-height: 1;
}

.welcome-popup__sale-price {
  margin: 0;
  display: flex;
  align-items: flex-end;
  gap: 4px;
}

.welcome-popup__sale-num {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 120px;
  color: #cd504f;
  line-height: 1;
}

.welcome-popup__sale-unit {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 48px;
  color: #cd504f;
}

.welcome-popup__sale-tax {
  font-size: 14px;
}

/* CTAボタン */
.welcome-popup__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
  height: 70px;
  border-radius: 35px;
  background: linear-gradient(96deg, #cd504f 0%, #ba3330 100%);
  box-shadow: 0 5px 9px rgba(64, 26, 13, 0.28);
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 28px;
  color: #fcfcfc;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
  margin-top: 10px;
}

.welcome-popup__btn:hover {
  opacity: 0.85;
}

.welcome-popup__btn-arrow {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #fcfcfc;
  display: flex;
  align-items: center;
  justify-content: center;
}

.welcome-popup__btn-arrow::after {
  content: "›";
  font-size: 40px;
  font-weight: 700;
  color: #cd504f;
  line-height: 1;
  margin-left: 0px;
  margin-bottom: 10px;
}

/* 注意書き */
.welcome-popup__notes {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.welcome-popup__notes p {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 0.8px;
  color: #333;
  text-align: left;
  margin-left: 20%;
}

/* 下部装飾 */
.welcome-popup__deco {
  position: absolute;
  bottom: 0;
  width: 200px;
  pointer-events: none;
}

.welcome-popup__deco--l {
  left: 0;
}
.welcome-popup__deco--r {
  right: 0;
  transform: scaleX(-1);
}
/* ✦ 大小2つ縦並び */
.welcome-popup__sparkles {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-right: 4px;
  align-self: center;
}

.welcome-popup__sparkle--lg {
  font-size: 36px;
  color: #b39700;
  line-height: 1;
  position: absolute;
  top: 50%;
  left: -40px;
}

.welcome-popup__sparkle--sm {
  font-size: 20px;
  color: #b39700;
  line-height: 1;
  position: absolute;
  top: 45%;
  left: -55px;
}

/* 円の上に（税込）を縦積み */
.welcome-popup__sale-unit-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding-bottom: 8px;
}

.welcome-popup__sale-tax {
  font-family: "Sawarabi Gothic", sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #cd504f;
  line-height: 1.4;
  white-space: nowrap;
}

.welcome-popup__sale-unit {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 48px;
  color: #cd504f;
  line-height: 1;
}

.welcome-popup__original-unit-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 10px;
  align-self: flex-end;
}

.welcome-popup__original-tax {
  font-size: 11px;
  color: #333;
  line-height: 1.2;
  white-space: nowrap;
}

.welcome-popup__original-unit {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 29px;
  color: #333;
  line-height: 1;
}
.note-list__caption {
  margin: 0;
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 14px;
  color: #333;
  text-align: center;
}

.note-list__note-link {
  font-family: "Sawarabi Gothic", sans-serif;
  font-size: 14px;
  color: #3c799f;
  text-align: center;
  display: block;
  text-decoration: none;
}

.note-list__note-link:hover {
  opacity: 0.7;
}
/* PC用：デフォルト表示 */
.welcome-popup__card--pc {
  display: flex;
}
.welcome-popup__card--sp {
  display: none;
}

/* SP用：1024px以下で切り替え */
@media (max-width: 767px) {
  .welcome-popup {
    justify-content: flex-start;
    align-items: flex-start;
  }

  .welcome-popup__card--pc {
    display: none;
  }
  .welcome-popup__card--sp {
    display: flex;
  }

  .welcome-popup__card--sp {
    width: 304px;
    max-width: 90vw;
    min-height: 244px;
    padding: 12px 13px 12px 12px;
    border: 8px solid #c7994f;
    /* border-left: none; */
    border-radius: 18px 18px;
    box-shadow: 0 8px 8px rgba(38, 26, 10, 0.2);
    gap: 8px;
    background-color: #fefcf8;

    flex-direction: column;
    align-items: center;
    position: relative;
    margin: 0 auto;
    margin-top: 50%;
    /* overflow: hidden; */
  }

  /* 閉じるボタン */
  .welcome-popup__close--sp {
    position: absolute;
    top: -14px;
    right: -14px;
    width: 36px;
    height: 36px;
    background: #fefcf8;
    border: 2px solid #c7994f;
    border-radius: 50%;
    font-size: 16px;
    color: #333;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* 見出し */
  .welcome-popup__card--sp .welcome-popup__heading {
    position: relative;
    width: 100%;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .welcome-popup__card--sp .welcome-popup__title {
    position: relative;
    font-size: 18px;
    line-height: normal;
    color: #cd504f;
    text-align: center;
    width: 136px;
    margin: 0;
    white-space: normal;
  }

  /* 価格横並び */
  .welcome-popup__price-row {
    position: relative;
    width: 100%;
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 50px;
  }

  .welcome-popup__original-sp {
    position: relative;
    display: flex;
    align-items: baseline;
  }

  .welcome-popup__original-price-sp {
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    font-size: 20px;
    color: #333;
    letter-spacing: 1px;
  }

  .welcome-popup__original-line {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background-color: #333;
    transform: translateY(-50%) rotate(3.17deg);
  }

  .welcome-popup__arrow-sp {
    font-size: 16px;
    color: #333;
    flex-shrink: 0;
    margin-bottom: 4px;
  }

  .welcome-popup__sale-sp {
    display: flex;
    align-items: baseline;
    gap: 2px;
  }

  .welcome-popup__sale-num-sp {
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    font-size: 40px;
    line-height: 1;
    color: #cd504f;
    letter-spacing: -2px;
  }

  .welcome-popup__sale-unit-sp {
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    font-size: 20px;
    color: #cd504f;
    letter-spacing: -1px;
  }

  .welcome-popup__sale-tax-sp {
    font-size: 14px;
    color: #cd504f;
    white-space: nowrap;
    align-self: flex-end;
    margin-bottom: 2px;
  }

  .welcome-popup__sparkles-sp {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-left: 2px;
    align-self: flex-start;
  }

  .welcome-popup__sparkle--lg {
    font-size: 20px;
    color: #b39700;
    line-height: 1;
    position: absolute;
    top: 50%;
    left: -40px;
    display: none;
  }
  .welcome-popup__sparkle--sm {
    font-size: 12px;
    color: #b39700;
    line-height: 1;
    display: none;
  }
  .welcome-popup__sparkle--lg_sp {
    font-size: 20px;
    color: #b39700;
    line-height: 1;
    position: absolute;
    top: 20%;
    right: 40px;
  }
  .welcome-popup__sparkle--sm_sp {
    font-size: 12px;
    color: #b39700;
    line-height: 1;
    position: absolute;
    top: 8%;
    right: 50px;
  }

  /* ボタン */
  .welcome-popup__card--sp .welcome-popup__btn {
    width: 84%;
    height: auto;
    padding: 8px 16px 8px 24px;
    border-radius: 35px;
    font-size: 18px;
    white-space: nowrap;
    gap: 16px;
    justify-content: center;
  }

  /* 注意書き */
  .welcome-popup__card--sp .welcome-popup__notes p {
    font-size: 14px;
    letter-spacing: 0.7px;
    white-space: nowrap;
    margin: 0;
    line-height: 1.4;
    color: #333;
  }
  .ba-modal__arrow--prev {
    left: calc(5vw - -24px);
    display: none;
  }
  .ba-modal__arrow--next {
    right: calc(5vw + 24px);
    display: none;
  }
}

/* ===== SP 下部固定メニュー ===== */
.sp-bottom-nav {
  display: none;
}

@media (max-width: 767px) {
  .sp-bottom-nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9000;
  }

  /* 初回割引バナー */
  .sp-bottom-nav__banner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0;
    height: 42px;
    padding: 0 16px;
    background-color: #cd504f;
    border-radius: 0px 20px 20px 0;
    font-family: "Noto Serif JP", serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.7px;
    color: #fcfcfc;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.2);
    margin-bottom: 16px;
  }

  /* 固定バー */
  .sp-bottom-nav__bar {
    width: 100%;
    height: 50px;
    background-color: #f6f4e8;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    padding: 0px;
    gap: 0;
  }

  /* 完全予約制テキスト */
  .sp-bottom-nav__reserve {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    width: 35%;
    text-decoration: none;
  }

  .sp-bottom-nav__reserve-icon {
    width: 24px;
    height: 24px;
    display: block;
    object-fit: contain;
  }

  .sp-bottom-nav__reserve-text {
    font-family: "Sawarabi Gothic", sans-serif;
    font-size: 14px;
    line-height: 1.4;
    color: #b39700;
    white-space: nowrap;
  }

  /* 各ボタン */
  .sp-bottom-nav__btn {
    flex: 1;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
  }

  .sp-bottom-nav__btn img {
    display: block;
    object-fit: contain;
  }

  .sp-bottom-nav__btn--line {
    background-color: #06c755;
  }

  .sp-bottom-nav__btn--line img {
    width: 36px;
    height: 36px;
  }

  .sp-bottom-nav__btn--tel {
    background-color: #b39700;
  }

  .sp-bottom-nav__btn--tel img {
    width: 28px;
    height: 28px;
  }

  .sp-bottom-nav__btn--epark {
    background-color: #fcfcfc;
  }

  .sp-bottom-nav__btn--epark img {
    width: 90%;
    height: 48px;
    object-fit: contain;
  }

  .sp-bottom-nav__btn--top {
    background-color: #3c799f;
    flex: 0 0 50px;
    border-radius: 0 14px 0 0;
  }

  .sp-bottom-nav__btn--top img {
    width: 80%;
    height: auto;
  }
  .welcome-popup__dotline {
    position: absolute;
    width: 60%;
    height: 100%;
  }
  .popup-line {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40%;
  }
  .popup-line02 {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 30%;
  }

  /* body下部に余白を追加（固定メニュー分） */
  body {
    padding-bottom: 42px; /* バナー42px + バー50px */
  }
}
