@charset "UTF-8";
/* ======================================
* Breakpoints & Mixins
* ====================================== */
/* min-width 用 */
/* max-width 用 */
/* ============================
* フォント設定
* ============================ */
/* --- Noto Sans JP（400・500・700）--- */
@font-face {
  font-family: "Noto Sans JP";
  src: url("../fonts/NotoSansJP/NotoSansJP-Regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  src: url("../fonts/NotoSansJP/NotoSansJP-Medium.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  src: url("../fonts/NotoSansJP/NotoSansJP-Bold.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}
/* --- Shippori Mincho（600）--- */
@font-face {
  font-family: "Shippori Mincho";
  src: url("../fonts/ShipporiMincho/ShipporiMincho-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-display: swap;
}
/* --- Merriweather Sans（400）--- */
@font-face {
  font-family: "Merriweather Sans";
  src: url("../fonts/MerriweatherSans/MerriweatherSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
/* ============================
* ベーススタイル
* ============================ */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 16px; /* デフォルトサイズ */
}

/* ============================
* Header (PC / Figma準拠)
* ============================ */
header {
  /* FV の上に重ねる */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  height: 64px;
  /* デフォルト = 下層ページ用（白背景） */
  background: #ffffff;
  /* ロゴの右側ブロック（ナビ＋ボタン） */
  /* ナビ */
  /* ご予約・お問い合わせ（ボタン） */
}
header .header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  padding: 0 40px; /* 左右インセット40px */
  box-sizing: border-box;
}
header .logo img {
  width: 280px; /* 表示 240×32 */
  height: auto;
  display: block;
  max-width: 100%;
  padding-top: 15px;
}
header .header-right {
  display: flex;
  align-items: center;
  gap: 36px; /* ナビとボタンの間隔 */
}
header .global-nav {
  height: 44px; /* Figmaの枠高 */
  display: flex;
  align-items: center;
}
header .global-nav__list {
  display: flex;
  align-items: center;
  gap: 40px; /* 各項目の間隔 */
  list-style: none;
  margin: 0;
  padding: 0;
}
header .global-nav__link {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1; /* 100% */
  /* デフォルト：下層ページ用（緑） */
  color: #468459;
  text-decoration: none;
  text-shadow: none;
}
header .btn-cta {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 172px;
  height: 44px;
  padding: 0 16px; /* テキスト枠140pxに一致 */
  border-radius: 4px;
  background: #0c4324;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px; /* Figmaのテキスト枠高 */
  text-decoration: none;
  box-sizing: border-box;
}

/* ============================
* Breadcrumb
* ============================ */
.breadcrumb-area {
  width: 100%;
  background-color: #fff;
}
.breadcrumb-area .breadcrumb {
  width: 100%;
  min-height: 64px;
  padding: 24px clamp(16px, calc((100vw - 1280px) / 2 + 152px), 152px) 20px clamp(16px, calc((100vw - 1280px) / 2 + 152px), 152px);
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  background-color: #fff;
  font-size: 0; /* 区切り文字を非表示にしてカスタム矢印に差し替え */
}
@media (max-width: 767.98px) {
  .breadcrumb-area .breadcrumb {
    min-height: 44px;
    padding: 10px 16px 13px;
  }
}
.breadcrumb-area .breadcrumb span[typeof="ListItem"] {
  display: flex;
  align-items: center;
  font-size: 14px;
  line-height: 1.4;
  color: #000;
}
.breadcrumb-area .breadcrumb span[typeof="ListItem"]::after {
  content: ">";
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 14px;
  height: 14px;
  font-size: 14px;
  margin: 0 2px;
  color: #000;
}
.breadcrumb-area .breadcrumb span[typeof="ListItem"]:last-of-type::after {
  content: "";
  margin: 0;
}
.breadcrumb-area .breadcrumb span[typeof="ListItem"].current-item,
.breadcrumb-area .breadcrumb span[typeof="ListItem"].current-item a,
.breadcrumb-area .breadcrumb span[typeof="ListItem"]:last-of-type,
.breadcrumb-area .breadcrumb span[typeof="ListItem"]:last-of-type a {
  color: #0C4324;
}
.breadcrumb-area .breadcrumb a {
  color: #000;
  text-decoration: none;
}
.breadcrumb-area .breadcrumb a:focus,
.breadcrumb-area .breadcrumb a:hover {
  text-decoration: none;
}

/* ============================
 * TOPページ専用の上書き
 * ============================ */
/* body に home がついているときだけ透明ヘッダー＋白文字にする */
.home header {
  background: transparent;
}

.home .global-nav__link {
  color: #ffffff;
  text-shadow: 1px 1px 0 rgba(70, 132, 89, 0.25); /* もとの設定 */
}

/* ============================
* First View (FV)
* ============================ */
.fv {
  width: 100%;
  aspect-ratio: 1280 / 584; /* ← 高さは幅から自動算出 */
  position: relative;
  /* ---------------- 左カラム ---------------- */
  /* 左背景：Frame.svg（PC用） */
  /* 縦書きSVG（PC位置） */
  /* ---------------- 右カラム ---------------- */
  /* Swiper全体をFVの高さにフィット */
}
.fv__inner {
  height: 100%;
  display: grid;
  grid-template-columns: 27fr 101fr; /* Figma比：左270 : 右1010 */
}
.fv__left {
  position: relative;
  z-index: 2; /* 右より前面に（縦書き用） */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  /* Frame.svgの右方向への食い込み量
      数値を上げると「もっと右に寄る」 */
  --overhang: 44%; /* ←ここを調整すれば“もっと右”に寄る（PC用） */
}
.fv__left::after {
  content: "";
  position: absolute;
  top: 0;
  right: calc(-1 * var(--overhang)); /* 右にはみ出す量 */
  width: calc(100% + var(--overhang)); /* はみ出す分だけ拡張 */
  height: 100%;
  z-index: 1; /* テキストの背面 */
  pointer-events: none;
  background-image: url("../img/Frame.svg");
  background-repeat: no-repeat;
  background-size: cover; /* FVの高さに追従 */
  background-position: right center; /* 右基準で配置 */
}
.fv__text {
  position: absolute;
  z-index: 2;
  display: block;
  /* ▼ Figmaの数値換算 -----------------
    FV高さ = 584px
    SVG高さ = 433px → 433 / 584 = 0.741 = 74.1%
    上からの距離 Y78 → 78 / 584 = 13.36%
    左からの距離 X43 → 43 / 1280 = 3.36%
  -------------------------------------- */
  top: 13.36%;
  left: 3.36%;
  height: 74.1%;
  width: auto;
}
.fv__right {
  position: relative;
  z-index: 1;
}
.fv .fv-swiper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.fv .fv-swiper .swiper-wrapper,
.fv .fv-swiper .swiper-slide {
  height: 100%;
}
.fv .fv-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* ==== FV 進捗ゲージ（PC / Figma準拠） ==== */
.fv__right {
  position: relative;
} /* 念のため */
.fv__progress {
  --fv-delay: 6500ms; /* JSで上書き/同期します */
  position: absolute;
  right: 2.5%; /* = 32 / 1280 * 100 */
  bottom: 5.48%; /* = 32 / 584 * 100 */
  width: 7.03125%; /* = 90 / 1280 * 100 */
  height: 1.0274%; /* = 6 / 584 * 100 */
  background: #FFFFFF; /* 未完了（白） */
  border-radius: 999px; /* 角丸3px相当（高さの半分以上ならOK） */
  overflow: hidden;
  z-index: 3;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.fv__progress-bar {
  display: block;
  width: 0%;
  height: 100%;
  background: #468459; /* Figmaの緑 */
  border-radius: inherit;
  transform-origin: left center;
}

/* 走らせるのは class で制御（JS側で付け外し） */
.fv__progress.is-running .fv__progress-bar {
  animation: fv-progress var(--fv-delay) linear forwards;
}

@keyframes fv-progress {
  from {
    width: 0%;
  }
  to {
    width: 100%;
  }
}
/* ============================
* News Section（PC基準）
* ============================ */
.news {
  padding-top: 18px;
  padding-bottom: 14px;
}
.news__inner {
  max-width: 1084px;
  margin-inline: auto; /* 中央寄せ */
  padding-inline: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 45px;
  box-sizing: border-box;
}
.news__label {
  display: flex;
  align-items: center;
  gap: 10px;
}
.news__label-main {
  color: #468459;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}
.news__label-sub {
  color: #468459;
  font-weight: 400;
  font-size: 18px;
  line-height: 1;
}
.news__item {
  display: flex;
  align-items: center;
  gap: 28px;
  flex: 1 1 auto;
  /* 左の小グループ（日時＋カテゴリ） */
}
.news__item .news__meta {
  display: flex; /* 横並び */
  align-items: center; /* 縦位置をそろえる */
  gap: 0; /* Figma: 間隔0 */
}
.news__item .news__date {
  width: 90px;
  color: #000;
  font-weight: 400;
  font-size: 16px;
  line-height: 19px;
  text-align: right;
  white-space: nowrap;
}
.news__item .news__category {
  display: inline-flex; /* バッジとして中央寄せにしやすい */
  align-items: center;
  justify-content: center;
  padding: 2px 16px; /* Figma：上下2 / 左右16 */
  border-radius: 4px; /* 角丸 */
  background-color: #468459; /* 塗り */
  color: #ffffff; /* 文字色 */
  font-weight: 700; /* Bold */
  font-size: 14px; /* Figma 14 */
  line-height: 1; /* 高さを抑える */
  white-space: nowrap;
  height: 25px;
  margin-left: 10px;
}
.news__item .news__title {
  display: -webkit-box;
  width: 480px; /* Figma W=480 */
  font-weight: 400; /* Regular */
  font-size: 16px; /* Figma 16 */
  line-height: 26px; /* Figma H=26 に合わせる */
  color: #000000;
  text-decoration: none;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  transition: opacity 0.3s;
}
.news__item .news__title:hover {
  opacity: 0.7;
}
.news__link {
  color: #000;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  display: inline-flex; /* テキストを縦中央に安定させるため */
  align-items: center;
  transition: opacity 0.3s;
}
.news__link:hover {
  opacity: 0.6;
}

/* ============================
* Concept Section
* ============================ */
.section-block {
  position: relative;
  overflow: hidden;
  padding: 120px 0 151px;
  background-color: #ffffff;
  /* 背景の「Concept」文字 */
  /* 右下の薄いイラスト */
}
.section-block__inner {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}
.section-block__bg-text {
  position: absolute;
  top: 82px;
  left: -133px;
  font-family: "Merriweather Sans", serif;
  font-weight: 400;
  font-size: 133.94px;
  line-height: 1;
  color: #dae2c2;
  opacity: 0.25;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
  z-index: -1;
  width: 530px;
  height: 134px;
}
.section-block__bg-icon {
  position: absolute;
  bottom: 43px;
  right: 0;
  pointer-events: none;
  z-index: 0;
}
.section-block__content {
  max-width: 800px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 320px 400px;
  -moz-column-gap: 80px;
       column-gap: 80px;
  align-items: center;
  transform: translateX(18px);
  position: relative;
  z-index: 2;
}
.section-block__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: #468459;
  width: 320px;
  min-height: 629px;
  align-self: flex-start;
  position: relative;
}
.section-block__label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  color: #468459;
  margin-bottom: 32px;
}
.section-block__label-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: inherit;
}
.section-block__label-row .section-block__icon {
  width: 22px;
  height: 20px;
  -o-object-fit: contain;
     object-fit: contain;
  flex-shrink: 0;
}
.section-block__label-row .section-block__en {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  color: inherit;
}
.section-block .section-block__ja {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  color: #468459;
}
.section-block__title {
  margin-bottom: 38px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 32px;
  line-height: 54px;
  letter-spacing: 0;
  color: #468459;
}
.section-block__desc {
  margin-bottom: 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.41;
  letter-spacing: 0;
  font-weight: 400;
  color: #404040;
}
.section-block__cta {
  display: flex;
  justify-content: flex-end;
  width: 100%;
}
.section-block .btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 154.25px;
  height: 32px;
  padding: 3px 23px;
  border-radius: 6px;
  border: 1px solid #000000;
  color: #000000;
  font-family: "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  text-decoration: none;
  margin-bottom: 4px;
  margin-right: 16.75px;
  background-color: transparent;
  text-align: center;
  transition: all 0.3s ease;
}
.section-block .btn-outline:hover {
  color: #0C4324;
  border-color: #0C4324;
  background-color: transparent;
}
.section-block__visual {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 400px;
  height: 507px;
  align-self: center;
}
.section-block__visual img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 32px;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ============================
* Course Section（PCレイアウト）
* ============================ */
.course-wave {
  width: 100%;
  overflow: hidden;
}
.course-wave__img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.course.section-block {
  padding-top: 0;
  padding-bottom: 167px;
}

.course {
  background-color: #F0F5E1;
  position: relative;
  overflow: hidden;
  /* inner：max-width 800 で中央寄せ */
  /* 背景 Course 文字（色だけ変更。位置は concept とほぼ同じであとで微調整してOK） */
  /* BG アイコン：画像だけ差し替え（サイズ・位置は concept と同じ） */
  /* ========= 見出しエリア ========= */
  /* 「＼ コース・料金 ／」 */
  /* 当院では〜〜 のリード文 */
  /* ========= 2カラム（画像＋テキスト） ========= */
  /* 画像：W360 H300 角丸24 */
  /* 「保険診療」「自費診療」 */
  /* ========= CTAボタン ========= */
  /* Course 用のボタン調整（Figma仕様） */
}
.course .section-block__inner {
  max-width: 800px;
  width: 100%;
  margin: auto;
  position: relative;
  z-index: 2;
}
.course .section-block__bg-text--course {
  color: #E7EDD4;
  top: 119px;
  left: -130px;
  opacity: 1;
  z-index: -1;
}
.course .section-block__bg-icon--course {
  content: url("../img/BGicon-course.svg");
  position: absolute;
  bottom: 43px;
  right: 0;
  z-index: 0;
}
.course__head {
  text-align: center;
  color: #468459;
  margin: 0 auto 32px;
  width: 342px;
}
.course__label-row {
  display: inline-flex;
  align-items: center;
  gap: 18px;
}
.course__slash {
  width: 16px;
  height: 24px;
  display: block;
}
.course__label-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: Bold;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 0;
  color: #468459;
}
.course__lead {
  margin-top: 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.25;
  letter-spacing: 0;
  color: #468459;
}
.course__grid {
  display: flex;
  justify-content: space-between;
  gap: 64px;
  margin-top: 64px;
  margin-bottom: 32px;
}
.course__item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.course__img {
  width: 360px;
  height: 300px;
  border-radius: 24px;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  margin-bottom: 32px;
}
.course__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  letter-spacing: 0;
  color: #0C4324;
  margin-bottom: 24px;
  text-align: left;
}
.course__list {
  list-style: none;
  margin: 0;
  padding-left: 16px;
}
.course__list li {
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  color: #000;
  margin-top: 13px;
  display: flex;
  align-items: center;
}
.course__list li:first-child {
  margin-top: 0;
}
.course .dot {
  margin-right: 4px;
  display: inline-block;
  line-height: 1;
}
.course__cta {
  text-align: center;
}
.course .btn-outline {
  height: 32px;
  padding: 3px 24px;
  border-radius: 6px;
  border: 1px solid #000;
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  margin: 0;
  width: auto;
  transition: all 0.3s ease;
}
.course .course .btn-outline:hover {
  border: 1px solid #0C4324;
  color: #0C4324;
}

/* ============================
* Bottom Carousel（お客様の声の上のカルーセル）
* ============================ */
.bottom-carousel {
  width: 100%;
  overflow: hidden;
}
.bottom-carousel .bottom-swiper {
  width: 100%;
}
.bottom-carousel .swiper-wrapper,
.bottom-carousel .swiper-slide {
  width: 100%;
}
.bottom-carousel .swiper-slide picture,
.bottom-carousel .swiper-slide img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover; /* ← 枠いっぱいに綺麗に収まる */
  display: block;
}

/* ============================
* Voice Section（お客様の声）
* ============================ */
.voice.section-block {
  padding-top: 0;
  padding-bottom: 39px;
  overflow: visible;
  background-color: #fff;
}
.voice__inner {
  max-width: 1080px;
  margin: -119px auto 0;
  padding: 119px 16px 0;
  position: relative;
}
.voice__circle {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 488px;
  border-radius: 50%;
  background-color: #ffffff;
  z-index: 1;
}
.voice__head {
  position: relative;
  margin-top: -46px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.voice__head .course__head {
  max-width: 342px;
  width: 100%;
  margin: 0 auto;
}
.voice__cards {
  position: relative;
  z-index: 3;
  margin-top: 60px;
}
.voice__list {
  display: flex;
  justify-content: center;
  -moz-column-gap: 55px;
       column-gap: 55px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.voice__item {
  text-align: left;
  width: 256px;
}
.voice__thumb {
  width: 240px;
  height: 240px;
  margin: 0 auto 32px;
  border-radius: 50%;
  border: 2px solid #DDDDDD;
  overflow: hidden;
}
.voice__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.voice__name {
  margin-bottom: 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  color: #0C4324;
  text-align: center;
}
.voice__body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.359;
  color: #000;
  padding-left: 16px;
}
.voice__button {
  margin-top: 48px;
  text-align: center;
}
.voice__button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 178px;
  height: 32px;
  padding: 3px 24px;
  border-radius: 6px;
  border: 1px solid #000000;
  background-color: transparent;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
  text-decoration: none;
  white-space: nowrap;
  gap: 4px;
  transition: all 0.3s ease;
}
.voice__button-link:hover {
  border-color: #0C4324;
  color: #0C4324;
}
.voice__button-arrow {
  display: inline-block;
}

/* ============================
* footer Section（PCレイアウト）
* ============================ */
.footer-wave {
  width: 100%;
  overflow: hidden;
}
.footer-wave__img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* ============================
 * Page Top Button
 * ============================ */
/* PC 基準 */
.pagetop {
  position: fixed;
  right: 34px;
  bottom: 128px;
  width: 64px;
  height: 64px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  z-index: 800;
  /* FVより上では非表示 */
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

/* 表示状態 */
.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* SVG アイコンサイズ */
.pagetop__icon {
  width: 64px;
  height: 64px;
  display: block;
}

/* ============================
 * Footer Access Section（PC）
 * ============================ */
.footer-access {
  width: 100%;
  background-color: #F0F5E1;
  /* 外枠：W1280 中央寄せ / 左右112 / 上20 下60 */
  /* 見出し「お気軽にご来院ください」 */
  /* JR〜 と マップの2カラム部分 */
  /* 左カラム全体 */
  /* JR「秋葉原駅」より徒歩1分 */
  /* 住所ブロック（郵便番号＋住所） */
  /* TELの行全体（p） */
  /* TELリンク：行全体をクリックできるようにするが見た目はテキスト */
  /* tel */
  /* 03-1234-5678 */
  /* ▼▼ 営業時間：画像表示 ▼▼ */
  /* ▼▼ CTA ボタン ▼▼ */
  /* 右カラム：Googleマップ */
}
.footer-access__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 112px 60px;
  box-sizing: border-box;
}
.footer-access__head {
  margin-bottom: 40px;
  text-align: center;
}
.footer-access__body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  -moz-column-gap: 58px;
       column-gap: 58px; /* 左カラムとGoogleマップの間隔 */
}
.footer-access__info {
  flex: 1 1 auto;
}
.footer-access__title {
  margin-bottom: 16px; /* 下の住所との距離16px */
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 700;
  line-height: 1.406; /* 140.6% */
  color: #468459;
  white-space: nowrap;
}
.footer-access__address {
  margin-bottom: 16px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.406; /* 140.6% */
  color: #000000;
}
.footer-access .pc-br {
  display: inline;
}
.footer-access__tel {
  margin: 0 0 24px; /* この下に表が入るので少し空けておくイメージ */
}
.footer-access__tel-link {
  display: inline-flex;
  align-items: center;
  gap: 6px; /* tel / ： / 数字 の間 */
  text-decoration: none;
  color: #468459; /* 子要素のデフォルト色 */
}
.footer-access__tel-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17.78px;
  font-weight: 700;
  line-height: 1.406;
  color: #468459;
}
.footer-access__tel-number {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.406;
  color: #468459;
}
.footer-access__hours {
  margin-top: 16px;
}
.footer-access .hours-visual {
  margin: 0;
  width: 100%;
  max-width: 460px;
}
.footer-access .hours-visual__img {
  width: 100%;
  height: auto;
  display: block;
}
.footer-access__cta {
  margin-top: 32px;
  text-align: left;
}
.footer-access__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(12px, 1.3vw, 16px);
  padding-block: clamp(10px, 1.2vw, 16px);
  padding-inline: clamp(16px, 2.3vw, 32px);
  border-radius: 4px;
  background-color: #1B9240;
  color: #FFFFFF;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  border: none;
  white-space: nowrap;
}
.footer-access__map {
  flex: 0 0 509px; /* 幅を固定 */
}
.footer-access__map-iframe {
  width: 100%; /* 親の 509px にフィット */
  height: 418px;
  border: 0;
  display: block;
}

.site-footer {
  width: 100%;
  background: #F0F5E1;
}
.site-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0px 112px 0px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 40px;
  flex-wrap: wrap;
}
.site-footer__logo img {
  width: 280px;
  height: auto;
  display: block;
  padding-top:15px;
}
.site-footer__nav {
  flex: 1 1 auto;
  margin-left: 47px;
}
.site-footer__nav-list {
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
  row-gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer__nav-list a {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 36px;
  color: #000000;
  text-decoration: none;
  white-space: nowrap;
}
.site-footer__copy {
  background: #468459;
  text-align: center;
  padding: 12px 16px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.site-footer__copy p {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #FFFFFF;
}

@media (max-width: 1119px) and (min-width: 768px) {
  .footer-access__map {
    /* 509px 固定をやめて、全体幅に対する割合で指定 */
    flex: 0 0 55%;
  }
  .footer-access__map-iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 509/418;
  }
}
.page-fv {
  position: relative;
  margin-top: 64px;
  overflow: visible;
}

.page-fv__sp-base {
  position: relative;
  width: 100%;
  height: 100%;
}

.page-fv__bg picture,
.page-fv__bg img {
  width: 100%;
  height: auto;
  display: block;
}

.page-fv__image-wrap {
  position: absolute;
  top: 0;
  left: 23.046875vw;
  z-index: -1;
}

.page-fv__image {
  width: 100%;
  height: auto;
  display: block;
}

.page-fv__inner {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.page-fv__title-wrap {
  position: absolute;
  top: 12.03125vw;
  left: 5.234375vw;
}

.page-fv__title-bg {
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  z-index: -1;
  left: -8.14140625vw;
  top: -4.22734375vw;
  width: 18.4875vw;
  height: 17.48125vw;
  background-image: url("../img/fv-other-text-bg.webp");
}

.page-fv__title-en {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 2.5vw;
  color: #468459;
}

.page-fv__title-ja-group {
  display: inline-block;
  margin-top: 0.78125vw;
}

.page-fv__title-ja {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.40625vw;
  line-height: 1;
  color: #468459;
}

.page-fv__title-underline {
  display: block;
  margin-top: 0.78125vw;
  height: 1px;
  width: 100%;
  border: none;
  background: repeating-linear-gradient(to right, #468459 0 7px, transparent 7px 13px);
}

@media (max-width: 767.98px) {
  /* ===== FV 高さは 360pxのまま ===== */
  .page-fv {
    height: 112.5vw;
    position: relative;
    overflow: hidden;
    padding-bottom: 5.9375vw;
  }
  /* ===== 背景SVG ===== */
  .page-fv__bg picture,
  .page-fv__bg img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  /* ===== 画像ラッパ（Figma の 320×400 フレームと同じ役割） ===== */
  .page-fv__image-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: -1;
    /* 追加：Figma の「線形」 */
  }
  .page-fv__image-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to right, rgba(108, 124, 113, 0.6) 0%, rgba(108, 124, 113, 0) 63%);
  }
  /* ===== 実際の画像 ===== */
  .page-fv__image {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    transform: translate(11.875vw, -15.625vw);
  }
  /* ===== テキスト位置 ===== */
  .page-fv__title-wrap {
    top: 78.4375vw;
    left: 7.5vw;
  }
  /* ===== モヤ ===== */
  .page-fv__title-bg {
    left: -7.8125vw;
    top: -12.5vw;
    width: 46.875vw;
    height: 46.875vw;
    background-image: url("../img/SP-fv-other-text-bg.webp");
  }
  /* ===== 見出し ===== */
  .page-fv__title-en {
    font-size: 8.75vw;
  }
  .page-fv__title-ja-group {
    margin-top: 3.4375vw;
  }
  .page-fv__title-ja {
    font-size: 5vw;
  }
  .page-fv__title-underline {
    margin-top: 3.125vw;
  }
}
/* ============================
 *  about page Flow List（PC）
 * ============================ */
.flow-list {
  margin-top: 76px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.flow-list p {
  font-family: "Noto Sans CJK JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  color: #000;
  margin: 0 0 16px 0; /* 下だけ余白 */
}
.flow-list p:last-child {
  margin-bottom: 0;
}

/* ============================
 * Point Section（根本改善のポイント）
 * ============================ */
.point.section-block {
  /* セクションとインナーの上下余白 */
  padding: 62px 0 15px;
  /* 中央寄せ & 幅 1056px */
  /* 見出しブロック（＼ 根本改善のポイント ／ ＋ 説明文） */
  /* 画像3カラム部分 */
  /* 1カラム内：画像 + キャプション */
  /* 画像：320×320 / 角丸24 */
  /* キャプション：丁寧なカウンセリング 等 */
}
.point.section-block .point__inner {
  max-width: 1056px;
  margin: 0 auto;
}
.point.section-block .course__head {
  width: auto !important;
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
}
.point.section-block .point.section-block .course__lead-second {
  display: inline;
  margin-top: 0;
}
.point.section-block .point__list {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 48px;
       column-gap: 48px;
}
.point.section-block .point__item {
  flex: 0 0 auto;
}
.point.section-block .point__figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 32px;
  min-height: 458px; /* カラム全体の高さをFigmaに合わせる */
}
.point.section-block .point__img {
  width: 320px;
  height: 320px;
  border-radius: 24px;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.point.section-block .point__caption {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  color: #000000;
  text-align: center;
}

/* ============================
 * Course ページ専用の調整
 * ============================ */
.page-course .course {
  background-color: #FAFAFA;
}
.page-course .course.section-block {
  padding-top: 64px;
  padding-bottom: 64px;
}
.page-course .course__grid {
  margin-bottom: 0;
}

/* ===========================================
   courseページ専用：Care Plan Section
   =========================================== */
.page-course .care-plan.section-block {
  background-color: #fff;
  padding: 60px 0;
  margin: 0;
}
.page-course .care-plan.section-block > .section-block__inner {
  max-width: 965px;
  width: 100%;
  margin: 0 auto;
  padding: 0;
}
.page-course .care-plan.section-block > .section-block__inner > .section-block__content {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  -moz-column-gap: 60px;
       column-gap: 60px;
  max-width: 100%;
  margin: 0;
  padding: 0;
  transform: none;
  grid-template-columns: none;
}
.page-course .care-plan.section-block .care-plan__text {
  display: block;
  width: 385px;
  margin-top: 29px;
  padding: 0;
  position: static;
  color: #000;
  min-height: auto;
}
.page-course .care-plan.section-block .care-plan__desc {
  margin-top: 16px;
  margin-bottom: 32px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
}
.page-course .care-plan.section-block .care-plan__list {
  list-style: none;
  margin: 0;
  padding-left: 16px;
}
.page-course .care-plan.section-block .care-plan__list li {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
  display: flex;
  align-items: flex-start;
  margin-top: 12px;
}
.page-course .care-plan.section-block .care-plan__list li:first-child {
  margin-top: 0;
}
.page-course .care-plan.section-block .care-plan__list .dot {
  display: inline-block;
  margin-right: 4px;
  line-height: 1;
}
.page-course .care-plan.section-block .section-block__visual {
  display: block;
  width: 520px;
  height: auto;
  align-self: flex-start;
  margin: 0;
}
.page-course .care-plan.section-block .care-plan__img {
  width: 520px;
  height: 320px;
  border-radius: 24px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  margin-bottom: 29px;
}

.page-course .care-plan__price {
  margin-top: 32px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
}

.page-course .care-plan__price-line {
  display: flex;
  align-items: baseline;
  -moz-column-gap: 16px;
       column-gap: 16px;
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
}

.page-course .care-plan__price-line:first-child {
  margin-top: 0;
}

.page-course .care-plan__price-label {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
}

.page-course .care-plan__price-body {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
}

/* ===========================================
  newsページ
   =========================================== */
#news .news {
  padding: 32px 0 0;
  background-color: #fff;
}
#news .news__inner {
  max-width: 976px;
  margin: 0 auto;
}
#news .news__layout {
  display: flex;
  -moz-column-gap: 64px;
       column-gap: 64px;
  align-items: flex-start;
  flex-wrap: wrap;
}
#news .news-main {
  flex: 0 0 752px;
  max-width: 100%;
}
#news .news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  row-gap: 64px;
}
#news .news-card {
  display: flex;
  -moz-column-gap: 32px;
       column-gap: 32px;
  text-decoration: none;
  color: inherit;
  max-width: 720px;
}
#news .news-card__thumb {
  flex-shrink: 0;
  width: 320px;
  height: 200px;
  border-radius: 16px;
  overflow: hidden;
}
#news .news-card__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
#news .news-card__content {
  flex: 1;
}
#news .news-card__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  color: #000;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#news .news-card__meta {
  display: flex;
  align-items: center;
  -moz-column-gap: 30px;
       column-gap: 30px;
}
#news .news-card__date {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #000;
}
#news .news-card__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  color: #fff;
  background-color: #468459;
  padding: 2px 16px;
  border-radius: 4px;
}
#news .news-sidebar {
  flex: 0 0 160px;
  margin-left: auto;
}
#news .news-sidebar__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  color: #0C4324;
  margin: 0 0 32px;
}
#news .news-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  row-gap: 16px;
}
#news .news-sidebar__link {
  display: block;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.406;
  color: #000;
  text-decoration: none;
}
#news .news__pagination {
  flex: 0 0 auto;
}
@media (min-width: 992px) {
  #news .news-main {
    order: 1;
  }
  #news .news-sidebar {
    order: 2;
  }
  #news .news__pagination {
    order: 3;
  }
}

@media (max-width: 991.98px) {
  #news .news__layout {
    display: flex;
    flex-direction: column;
    row-gap: 0;
    -moz-column-gap: 0;
         column-gap: 0;
    align-items: stretch;
  }
  #news .news {
    padding: 32px 0 0px;
  }
  #news .news-main,
  #news .news-sidebar {
    width: 100%;
    flex: 0 0 auto;
    padding: 32px 16px;
  }
}

@media (max-width: 767.98px) {
  #news .news {
    padding: 32px 16px 0;
    background: #ffffff;
  }
  #news .news__inner {
    max-width: 320px;
    margin: 0 auto;
    padding: 0;
  }
  #news .news__layout {
    display: flex;
    flex-direction: column;
    row-gap: 0;
    -moz-column-gap: 0;
         column-gap: 0;
    align-items: stretch;
  }
  #news .news-main {
    flex: 0 0 auto;
    width: 100%;
    padding: 32px 16px 0;
  }
  #news .news-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    row-gap: 40px;
  }
  #news .news-card {
    display: block;
  }
  #news .news-card__thumb {
    width: 100%;
    max-width: 288px;
    height: 180px;
    border-radius: 16px;
    overflow: hidden;
    margin: 0 auto;
  }
  #news .news-card__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
  #news .news-card__content {
    margin-top: 16px;
  }
  #news .news-card__title {
    font-size: 18px;
    font-weight: 700;
    color: #000;
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  #news .news-card__date {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.4;
    color: #000;
  }
  #news .news-card__meta {
    display: flex;
    align-items: center;
    -moz-column-gap: 10px;
         column-gap: 10px;
  }
  #news .news-card__label {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 400;
    padding: 2px 16px;
    border-radius: 4px;
    height: 25px;
    width: 88px;
    background-color: #468459;
    color: #fff;
  }
  #news .news-sidebar {
    width: 100%;
    padding: 32px 16px;
  }
  #news .news-sidebar__title {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 32px;
  }
  #news .news-sidebar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    row-gap: 16px;
  }
  #news .news-sidebar__link {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.406;
    color: #000;
    text-decoration: none;
    padding: 0;
  }
}

/* =========================================================
   お知らせ詳細ページ（single） PCレイアウト
   ※ body id="news-single" のページ専用
   ========================================================= */
#news-single .single-news__pager-text--list-sp {
  display: none;
}
#news-single .single-news {
  background: #ffffff;
  padding: 32px 0 120px;
}
#news-single .single-news__inner {
  max-width: 976px;
  margin: 0 auto;
}
#news-single .single-news__layout {
  display: flex;
  align-items: flex-start;
  -moz-column-gap: 64px;
       column-gap: 64px;
}
#news-single .single-news__main {
  flex: 0 0 752px;
  max-width: 100%;
}
#news-single .single-news__header {
  margin-bottom: 24px;
}
#news-single .single-news__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1;
  color: #0C4324;
  margin: 0 0 24px;
}
#news-single .single-news__meta {
  width: 232px;
  display: flex;
  align-items: center;
  -moz-column-gap: 30px;
       column-gap: 30px;
  margin-bottom: 24px;
}
#news-single .single-news__date {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #000;
  white-space: nowrap;
}
#news-single .single-news__label {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 88px;
  height: 25px;
  padding: 2px 16px;
  box-sizing: border-box;
  border-radius: 4px;
  background-color: #468459;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
  color: #fff;
  text-align: center;
}
#news-single .single-news__thumb {
  margin-bottom: 24px;
}
#news-single .single-news__thumb img {
  display: block;
  width: 100%;
  max-width: 752px;
  height: 320px;
  border-radius: 16px;
  -o-object-fit: cover;
     object-fit: cover;
}
#news-single .single-news__content {
  font-family: "Noto Sans JP", sans-serif;
  color: #000;
}
#news-single .single-news__content h2 {
  font-weight: 700;
  font-size: 32px;
  color: #0C4324;
  margin: 0 0 24px;
}
#news-single .single-news__content h3 {
  font-weight: 700;
  font-size: 24px;
  color: #0C4324;
  margin: 24px 0 24px;
}
#news-single .single-news__content h4 {
  font-weight: 700;
  font-size: 18px;
  color: #0C4324;
  margin: 24px 0 24px;
}
#news-single .single-news__content p {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
  margin: 0 0 24px;
}
#news-single .single-news__content p:last-of-type {
  margin-bottom: 0;
}
#news-single .single-news__pager {
  margin: 60px auto 0;
  width: 408px;
  display: flex;
  justify-content: center;
  column-gap: 32px;
}
#news-single .single-news__pager-arrow {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
  font-size: 16px;
}
#news-single .single-news__pager-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.406;
  color: #000;
  white-space: nowrap;
}
#news-single .single-news__pager-link--prev .single-news__pager-text,
#news-single .single-news__pager-link--next .single-news__pager-text {
  margin-left: 8px;
}
#news-single .single-news__pager-link--list {
  justify-content: center;
}
#news-single .single-news__pager-link.is-placeholder {
  opacity: 0;
  pointer-events: none;
}
#news-single .news-sidebar {
  flex: 0 0 160px;
  margin-left: auto;
}
#news-single .news-sidebar__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  color: #0C4324;
  margin-bottom: 32px;
}
#news-single .news-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  row-gap: 16px;
}
#news-single .news-sidebar__link {
  display: block;
  text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.406;
  color: #000;
}

@media (min-width: 768px) and (max-width: 991.98px) {
  #news-single .single-news__layout {
    display: block;
    width: 100%;
    max-width: 976px;
    margin: 0 auto;
    padding-inline: 16px;
    box-sizing: border-box;
  }
  #news-single .single-news__main {
    width: 100%;
    max-width: 752px;
    margin: 0 auto 48px;
    display: block;
    padding-bottom: 32px;
  }
  #news-single .news-sidebar {
    width: 100%;
    max-width: 100%;
    padding-inline: 16px;
    box-sizing: border-box;
  }
}
@media (max-width: 767.98px) {
  #news-single .single-news {
    background: #ffffff;
    padding: 32px 16px 0;
  }
  #news-single .single-news__inner {
    max-width: 100%;
    margin: 0;
  }
  #news-single .single-news__layout {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  #news-single .single-news__main {
    width: 100%;
    flex: 0 0 auto;
    padding-bottom: 32px;
  }
  #news-single .single-news__title {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 24px;
    line-height: 1.2;
    color: #0C4324;
    margin: 0 0 16px;
  }
  #news-single .single-news__meta {
    width: auto;
    display: flex;
    align-items: center;
    -moz-column-gap: 16px;
         column-gap: 16px;
    margin-bottom: 32px;
  }
  #news-single .single-news__date {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.4;
    color: #000;
    white-space: nowrap;
  }
  #news-single .single-news__thumb {
    width: 100%;
    height: auto;
    margin: 0 auto 32px;
    border-radius: 16px;
    overflow: hidden;
  }
  #news-single .single-news__thumb img {
    width: 100%;
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
    border-radius: 16px;
  }
  #news-single .single-news__content {
    font-family: "Noto Sans JP", sans-serif;
    color: #000;
  }
  #news-single .single-news__content h2 {
    font-weight: 700;
    font-size: 24px;
    color: #0C4324;
    margin: 0 0 16px;
  }
  #news-single .single-news__content p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.4;
    color: #000;
    margin: 0 0 16px;
  }
  #news-single .single-news__content h3 {
    font-weight: 700;
    font-size: 24px;
    color: #0C4324;
    margin: 32px 0 16px;
  }
  #news-single .single-news__content h4 {
    font-weight: 700;
    font-size: 18px;
    color: #0C4324;
    margin: 32px 0 16px;
  }
  #news-single .single-news__content p:last-of-type {
    margin-bottom: 0;
  }
  #news-single .single-news__pager-text--list-pc {
    display: none;
  }
  #news-single .single-news__pager-text--list-sp {
    display: inline;
  }
  #news-single .single-news__pager {
    margin: 30px auto 0;
    width: 280px;
    display: flex;
    justify-content: center;
    column-gap: 16px;
  }
  #news-single .single-news__pager-link {
    font-size: 16px;
  }
  #news-single .single-news__pager-link--list {
    margin: 0;
  }
  #news-single .news-sidebar {
    width: 100%;
    padding: 32px 16px;
    box-sizing: border-box;
  }
  #news-single .news-sidebar__title {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.4;
    color: #0C4324;
    margin: 0 0 32px;
  }
  #news-single .news-sidebar__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    row-gap: 16px;
  }
  #news-single .news-sidebar__link {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.406;
    color: #000;
    text-decoration: none;
  }
}

#voice.page-voice .sp-br {
  display: none;
}
#voice.page-voice .voice-section {
  background-color: #fff;
  padding-bottom: 81px;
}
#voice.page-voice .voice-section .inner {
  max-width: 868px;
  padding: 64px 0 0;
  margin-left: 152px;
  margin-right: auto;
}
#voice.page-voice .voice-item {
  display: flex;
  align-items: flex-start;
  gap: 48px;
}
#voice.page-voice .voice-item + #voice.page-voice .voice-item {
  margin-top: 64px;
}
#voice.page-voice .voice-section .voice-item + .voice-item {
  margin-top: 64px;
}
#voice.page-voice .voice-item__img {
  flex-shrink: 0;
}
#voice.page-voice .voice-item__img img {
  width: 180px;
  height: 180px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 90px;
  display: block;
}
#voice.page-voice .voice-item__content {
  flex: 1;
}
#voice.page-voice .voice-item__title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  color: #0C4324;
  margin-bottom: 24px;
}
#voice.page-voice .voice-item__age {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 1;
  color: #0C4324;
}
#voice.page-voice .voice-item__text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: #000;
}
.voice-pagination,
.news__pagination {
  margin-top: 64px;
  display: flex;
  justify-content: center;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
.page-news .voice-pagination,
.page-news .news__pagination {
  margin-top: 32px;
  margin-bottom: 193px;
}
.voice-pagination .pagination,
.news__pagination .pagination {
  margin: 0;
  width: auto;
}
.voice-pagination .nav-links,
.news__pagination .nav-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.voice-pagination .page-numbers,
.news__pagination .page-numbers {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1;
  color: #468459;
  text-decoration: none;
}
.voice-pagination .page-numbers.current,
.news__pagination .page-numbers.current {
  background-color: #468459;
  color: #fff;
}
.voice-pagination .page-numbers.dots,
.news__pagination .page-numbers.dots {
  width: auto;
  padding: 0 4px;
  background: none;
}

@media (max-width: 767.98px) {
  .page-news .voice-pagination,
  .page-news .news__pagination {
    margin-top: 40px;
    margin-bottom: 0;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  #voice.page-voice .voice-section .inner {
    margin: 0 auto;
    padding-left: 16px;
    padding-right: 16px;
  }
}
@media (max-width: 767.98px) {
  #voice.page-voice .sp-br {
    display: block;
  }
  #voice.page-voice .voice-section {
    padding: 32px 16px 32px;
  }
  #voice.page-voice .voice-section .inner {
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  #voice.page-voice .voice-item {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  #voice.page-voice .voice-item + #voice.page-voice .voice-item {
    margin-top: 48px;
  }
  #voice.page-voice .voice-section .voice-item + .voice-item {
    margin-top: 48px;
  }
  #voice.page-voice .voice-pagination {
    margin-top: 32px;
  }
  .page-news .voice-pagination {
    margin-top: 40px;
    margin-bottom: 32px;
  }
  #voice.page-voice .voice-item__content {
    max-width: 100%;
  }
  #voice.page-voice .voice-item__title {
    margin-top: 16px;
    margin-bottom: 24px;
    text-align: center;
  }
}
#contact .contact {
  padding-top: 32px;
  padding-bottom: 80px;
  background-color: #fff;
}
#contact .contact .contact__inner {
  max-width: 752px;
  padding-left: 152px;
}
#contact .contact .contact__info-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #0C4324;
  margin-bottom: 13px;
}
#contact .contact .contact__info-address {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.4;
  color: #000000;
  margin-bottom: 22px;
}
#contact .contact .contact__info-tel {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.406;
}
#contact .contact .contact__info-tel a {
  text-decoration: none;
}
#contact .contact .contact__info-tel-label {
  font-weight: 700;
  font-size: 16px;
  color: #000000;
}
#contact .contact .contact__info-tel-colon {
  font-weight: 700;
  font-size: 17.78px;
  color: #000000;
}
#contact .contact .contact__info-tel-number {
  font-weight: 700;
  font-size: 24px;
  color: #0C4324;
}
#contact .contact .contact__form {
  margin-top: 24px;
}
#contact .contact .contact__form-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 24px;
  color: #0C4324;
  margin-bottom: 24px;
}
#contact .contact .contact__form-note {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 1.4;
  color: #000000;
  margin-bottom: 24px;
}
#contact .contact .contact__form-body {
  padding-bottom: 18px;
}
#contact .contact .contact__form-body .wpforms-container-full:not(:empty) {
  margin: 0;
}
#contact .contact .contact__form-body .wpforms-container {
  font-family: "Noto Sans JP", sans-serif;
  max-width: 100%;
}
#contact .contact .contact__form-body .wpforms-field,
#contact .contact .contact__form-body .wpforms-field-container,
#contact .contact .contact__form-body .wpforms-field-row-block {
  width: 100%;
  max-width: 100%;
}
#contact .contact .contact__form-body .wpforms-field {
  margin-bottom: 48px !important;
}
#contact .contact .contact__form-body .wpforms-field-label {
  font-weight: 700;
  font-size: 16px;
  color: #000000;
  margin-bottom: 16px;
}
#contact .contact .contact__form-body #wpforms-183-field_3-container .wpforms-field-label::after {
  content: "半角";
  font-weight: 700;
  font-size: 14px;
  margin-left: 2px;
  display: inline-block;
}
#contact .contact .contact__form-body #wpforms-183-field_4-container .wpforms-field-label::after {
  content: "半角英数字";
  font-weight: 700;
  font-size: 14px;
  margin-left: 3px;
  display: inline-block;
}
#contact .contact .contact__form-body .wpforms-field-sublabel {
  font-weight: 700;
  font-size: 16px;
  color: #000000;
}
#contact .contact .contact__form-body .wpforms-required {
  display: none;
}
#contact .contact .contact__form-body input[type="text"],
#contact .contact .contact__form-body input[type="email"],
#contact .contact .contact__form-body input[type="tel"],
#contact .contact .contact__form-body textarea,
#contact .contact .contact__form-body select {
  max-width: 752px;
  font-size: 16px;
  color: #000000;
  box-sizing: border-box;
  padding-left: 10px;
}
#contact .contact .contact__form-body select option[value=""],
#contact .contact .contact__form-body select:required:invalid,
#contact .contact .contact__form-body select option.placeholder {
  color: rgba(0, 0, 0, 0.36);
}
#contact .contact .contact__form-body input::placeholder,
#contact .contact .contact__form-body textarea::placeholder,
#contact .contact .contact__form-body select::placeholder {
  color: rgba(0, 0, 0, 0.36);
}
#contact .contact .contact__form-body .wpforms-required-label,
#contact .contact .contact__form-body .wpforms-required {
  display: none;
}
#contact .contact .contact__form-body .wpforms-submit-container {
  margin-top: 48px;
  text-align: center;
}
#contact .contact .contact__form-body .wpforms-field {
  padding: 0;
}
#contact .contact .contact__form-body button.wpforms-submit {
  display: block;
  width: 100%;
  max-width: 240px;
  margin: 0 auto;
  height: 48px;
  border: none;
  border-radius: 4px;
  background-color: #1B9240;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
}
#contact .contact .contact__form-body button.wpforms-submit:hover {
  opacity: 0.9;
}

@media (max-width: 767.98px) {
  #contact .contact {
    padding: 32px 16px;
  }
  #contact .contact .contact__inner {
    max-width: 100%;
    padding-left: 0;
  }
  #contact .contact .contact__info-title {
    margin-bottom: 8px;
  }
  #contact .contact .contact__form-body {
    padding-bottom: 0;
  }
  #contact .contact .contact__form-body #wpforms-183-field_3-container .wpforms-field-label::after,
  #contact .contact .contact__form-body #wpforms-183-field_4-container .wpforms-field-label::after {
    font-size: 12px;
    margin-left: 6px;
  }
  #contact .contact .contact__form-body button.wpforms-submit {
    max-width: 288px;
    height: 44px;
  }
}
#contact-thanks .contact-thanks {
  background-color: #ffffff;
  padding-top: 32px;
  padding-bottom: 162px;
}
#contact-thanks .contact-thanks .contact-thanks__inner {
  max-width: 752px;
  margin: 0 auto;
}
#contact-thanks .contact-thanks .contact-thanks__box {
  padding: 62px 125px;
  border-radius: 3px;
  border: 1px solid #cccccc;
  text-align: center;
}
#contact-thanks .contact-thanks .contact-thanks__title {
  font-weight: 700;
  font-size: 24px;
  color: #0C4324;
  margin-bottom: 24px;
}
#contact-thanks .contact-thanks .contact-thanks__text {
  font-weight: 500;
  font-size: 16px;
  margin-bottom: 32px;
}
#contact-thanks .contact-thanks .contact-thanks__btn-wrap {
  text-align: center;
}
#contact-thanks .contact-thanks .contact-thanks__btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 240px;
  height: 48px;
  border-radius: 4px;
  background-color: #1B9240;
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}

@media (max-width: 767.98px) {
  #contact-thanks .contact-thanks {
    padding: 32px 16px 64px;
  }
  #contact-thanks .contact-thanks .contact-thanks__box {
    flex-shrink: 0;
    width: 100%;
    padding: 16px;
    border-radius: 0;
  }
  #contact-thanks .contact-thanks .contact-thanks__title {
    margin-bottom: 16px;
  }
  #contact-thanks .contact-thanks .contact-thanks__btn {
    height: 44px;
  }
}
/* ============================================================
* Responsive（メディアクエリまとめ）
* sm以上 / md以上 / lg以上 をベースに制御
* ============================================================ */
/* ------------------------------
* 共通：PC時はSPメニューを隠す
* ------------------------------ */
/* PC時はSPメニュー系は完全に非表示 */
.sp-menu,
.sp-menu__backdrop {
  display: none;
}

/* ハンバーガー（PCでは非表示） */
.header-toggle {
  display: none;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
}
.header-toggle__icon {
  width: 18px; /* Figmaのハンバーガーアイコンの幅付近 */
  height: 12px;
  display: block;
}

/* ============================================================
* lg 未満（〜991px）：SP + タブレット共通
* Header / SPメニュー
* ============================================================ */
@media (max-width: 991.98px) {
  .page-news .voice-pagination,
  .page-news .news__pagination {
    margin-top: 40px;
    margin-bottom: 32px;
  }
  /* PC用ナビ＋ボタンを隠す */
  .header-right {
    display: none !important;
  }
  /* ハンバーガー表示 */
  .header-toggle {
    display: block;
  }
  header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 64px;
    /* デフォルト = 下層ページ用（白背景） */
    background: #ffffff;
    border-bottom: none;
    z-index: 1000;
  }
  .header-inner {
    height: 64px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .logo img {
    width: 196px;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
    display: block;
  }
  /* SPメニューオープン時は強制白（TOPでも） */
  html.is-spmenu-open header {
    background: #ffffff;
  }
  /* 背景オーバーレイ */
  .sp-menu__backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 900;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }
  .sp-menu__backdrop.is-active {
    opacity: 1;
    pointer-events: auto;
  }
  /* ▼ ドロワーメニュー本体（ヘッダー64 + コンテンツ≒432） */
  .sp-menu {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: #ffffff;
    z-index: 950;
    transform: translateY(-100%);
    transition: transform 0.3s ease;
    overflow: hidden;
  }
  .sp-menu.is-open {
    transform: translateY(0);
  }
  /* ▼ 中身の白パネル（320幅 / 上64 + 内側32px） */
  .sp-menu__inner {
    width: 320px;
    margin: 64px auto 0; /* 上：ヘッダー分64px、左右中央 */
    padding: 32px; /* 上下左右32px */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
  }
  /* ▼ メニューの見出し「メニュー」 H=29px */
  .sp-menu__title {
    width: 256px;
    margin: 0 auto 16px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 24px;
    height: 29px;
    line-height: 29px;
    color: #0C4324;
    text-align: left;
  }
  /* ▼ ナビリスト部分（W256 / gap=36px） */
  .sp-menu__list {
    list-style: none;
    padding: 0;
    margin: 0 0 32px; /* 下：ボタンとの余白 32px */
    width: 256px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 36px;
  }
  .sp-menu__list li {
    margin: 0; /* gap に任せる */
  }
  .sp-menu__list a {
    display: block;
    width: 100%;
    text-align: left;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    color: #0D0D0D;
    text-decoration: none;
  }
  /* ▼ CTA ボタン（W256 / H44） */
  .sp-menu__cta {
    display: block;
    width: 256px;
    height: 44px;
    margin: 0 auto;
    border-radius: 4px;
    background: #0C4324;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 44px;
    text-align: center;
    color: #FFFFFF;
    text-decoration: none;
  }
  /* ============================
   * TOPページ専用（SP・タブレット時）
   * ============================ */
  /* TOP（page-top）のときだけ透明ヘッダーにする */
  .page-top header {
    background: transparent;
  }
  /* Care Plan：lg以下は縦並び＆中央寄せ */
  .page-course .care-plan.section-block > .section-block__inner > .section-block__content {
    flex-direction: column;
    align-items: center;
    row-gap: 0;
  }
  .page-course .care-plan.section-block .section-block__visual {
    order: -1;
    width: 100%;
    max-width: 520px;
    margin: 0 auto 32px;
  }
  .page-course .care-plan.section-block .care-plan__img {
    width: 100%;
    max-width: 520px;
    height: auto;
  }
  .page-course .care-plan.section-block .care-plan__text {
    order: 0;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    text-align: left;
  }
}
@media (max-width: 991.98px) {
  #top .news__inner {
    flex-wrap: wrap;
    row-gap: 16px;
  }
  #top .news__link {
    /* 2段目に落とす：1行丸ごと使う */
    flex-basis: 100%;
    text-align: right;
    /* Figma指定の余白：上下7.5 / 右23 / 左0 */
    padding: 7.5px 23px 7.5px 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    color: #0C4324;
    /* 既存の inline-flex / 中央寄せがあれば上書き */
    display: block;
    align-items: initial;
    justify-content: flex-end;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .point.section-block .point__list {
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 32px;
         column-gap: 32px;
    row-gap: 48px;
  }
}
/* ============================================================
* ③ md 未満（〜767px）：SPレイアウト調整
* ============================================================ */
@media (max-width: 767.98px) {
  header .logo img {
    width: 196px;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
    display: block;
  }
  header .header-inner {
    padding: 0 16px; /* 左右16px */
  }
  /* FV全体：320×500 に寄せる */
  .fv {
    width: 100%;
    aspect-ratio: auto;
    height: 500px;
    position: relative;
    overflow: hidden; /* はみ出した555px分をクリップするため */
  }
  .fv__inner {
    width: 100%;
    height: 100%;
  }
  /* PCの Frame.svg 背景は SP では消す */
  .fv__left::after {
    content: none !important;
  }
  /* SP用 背景カーブ */
  .fv::before {
    content: "";
    position: absolute;
    z-index: 1; /* 一番うしろ */
    width: 547.81px;
    height: 469.33px;
    left: 19.06%;
    bottom: 50.19px;
    top: auto;
    right: auto;
    background-image: url("../img/_x31_3.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: left bottom;
    pointer-events: none;
  }
  /* 右：カルーセル画像（中段レイヤー） */
  .fv__right {
    width: calc(100% - 15px);
    margin-left: auto;
    height: 100%;
  }
  .fv-swiper {
    width: 100%;
    height: 100%;
  }
  .fv-swiper,
  .fv-swiper .swiper-wrapper,
  .fv-swiper .swiper-slide {
    width: 100%;
    height: 100%;
  }
  .fv-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
  .fv-swiper .swiper-slide picture,
  .fv-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
  }
  /* 左：縦書きテキスト用ラッパ（前面に出す） */
  .fv__left {
    position: relative;
    z-index: 3; /* 画像より前に */
  }
  /* 縦書きテキスト：Figma値に合わせる */
  .fv__text {
    position: absolute;
    top: 109px;
    left: -17px;
    width: 185px;
    height: auto;
    z-index: 3;
  }
  /* SP版 進捗ゲージ：右20 / 下22.86 固定 */
  .fv__progress {
    position: absolute;
    z-index: 4;
    width: 48px;
    height: 4px;
    border-radius: 2px;
    right: 20px;
    bottom: 22.86px;
    left: auto;
    top: auto;
  }
  /* ============================
    * News Section（SPレイアウト）
    * ============================ */
  .news {
    padding: 18px 16px 16px;
    /* → お知らせ一覧へ：行として右寄せ、右23 / 上下7.5 */
  }
  .news__inner {
    margin: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .news__label {
    gap: 10px;
  }
  .news__label-main {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
  }
  .news__label-sub {
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
  }
  .news__item {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 28px;
  }
  .news .news__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .news .news__date {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 400;
    text-align: left;
    width: auto;
  }
  .news .news__category {
    margin-left: 0;
    font-size: 14px;
    font-weight: 700;
  }
  .news .news__title {
    width: auto;
    white-space: normal;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
  }
  .news__link {
    width: 100%;
    box-sizing: border-box;
    display: block;
    text-align: right;
    padding: 7.5px 23px 7.5px 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    color: #0C4324;
  }
  /* ============================
  * Concept Section（SPレイアウト）
  * ============================ */
  .concept.section-block {
    /* 上下64px 左右16px */
    padding: 64px 16px;
  }
  .concept .section-block__inner {
    max-width: 100%;
    margin: 0 auto;
  }
  .concept .section-block__content {
    /* 縦並びレイアウトに変更 */
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 32px; /* 画像とテキストの間 32px */
    transform: none; /* PC用の translateX を打ち消す */
  }
  /* 画像を一番上に */
  .concept .section-block__visual {
    order: 1;
    width: 278px;
    height: 325px;
    margin: 0 auto;
  }
  .concept .section-block__visual img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 32px; /* PCと同じ角丸 */
  }
  .concept.section-block .section-block__text {
    width: 288px;
    margin: 0 auto;
    align-items: flex-start;
    order: 2;
    min-height: auto !important;
  }
  /* ------ アイコン + Concept + 特長 ------ */
  .concept .section-block__label-row {
    gap: 4px;
  }
  .concept .section-block__icon {
    width: 22px;
    height: 20px;
  }
  .concept .section-block__en {
    font-size: 24px;
  }
  .concept .section-block__ja {
    font-size: 18px;
  }
  /* ------ 見出し「日々変化する〜」 ------ */
  .concept .section-block__title {
    font-size: 24px;
    line-height: 44px;
    white-space: normal;
    letter-spacing: 0;
  }
  /* SPでは <br> を殺して1行に流す */
  .concept .section-block__title br {
    display: none;
  }
  /* ------ 本文「当院では〜」 ------ */
  .concept .section-block__desc {
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 33px;
  }
  /* ------ ボタン「当院について」中央揃え ------ */
  .concept .section-block__cta {
    justify-content: center;
    width: 100%;
  }
  /* ボタン色 */
  .concept .btn-outline {
    color: #0C4324;
    border-color: #0C4324;
  }
  /* ============================
  * Concept：SP 背景テキスト（Concept）
  * ============================ */
  .concept .section-block__bg-text {
    font-family: "Merriweather Sans", sans-serif;
    font-weight: 400;
    font-size: 72px;
    line-height: 1;
    color: #dae2c2;
    opacity: 0.25;
    position: absolute;
    z-index: -1;
    /* ← あなたが自由に調整するスペース */
    top: -21px;
    left: -40px;
    /* SP 固有の調整をここで書く（PCと違う場合のみ） */
  }
  /* ============================
  * Concept：SP 背景アイコン（BG）
  * ============================ */
  .concept .section-block__bg-icon {
    position: absolute;
    z-index: 0;
    width: 240px;
    height: 183px;
    right: -69px;
    bottom: 13px;
    top: auto;
    left: auto;
    -o-object-fit: contain;
       object-fit: contain;
    pointer-events: none;
  }
  /* ============================
  * Course Section（SPレイアウト）
  * ============================ */
  .course-wave__img {
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .course {
    background-color: #F0F5E1;
    /* inner の余白 */
  }
  .course .section-block__inner {
    padding: 32px 16px;
    max-width: 288px;
  }
  .course.section-block {
    padding-bottom: 0;
  }
  .page-course .course.section-block {
    padding-top: 0;
    padding-bottom: 0;
  }
  .course__head {
    margin-bottom: 40px;
    width: auto;
  }
  /* 見出し（コース・料金） */
  .course.section-block .course__label-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
  }
  .course.section-block .course__slash {
    width: 14px;
    height: 22px;
    display: block;
  }
  .course.section-block .course__label-text {
    font-size: 18px;
    font-weight: 700;
    color: #468459;
    line-height: 1;
  }
  /* 「当院では～～」の見出し */
  .course__lead {
    margin-top: 18px;
    font-size: 18px;
    font-weight: 700;
    color: #468459;
    text-align: center;
    line-height: 1.25;
  }
  /* 画像2つの並び（SPでは縦に並ぶ） */
  .course__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 0;
    margin-bottom: 0;
  }
  /* 左右それぞれのブロック */
  .course__item {
    /* 箇条書きの後の余白 */
    margin-bottom: 40px;
  }
  .course__item .course__img {
    width: 100%;
    max-width: 288px;
    height: auto;
    border-radius: 16px;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
    margin-inline: auto;
    margin-bottom: 0;
  }
  .course__item .course__title {
    margin-top: 32px;
    font-size: 24px;
    font-weight: 700;
    color: #0C4324;
  }
  .course__item .course__list-wrap {
    margin-top: 24px;
    padding-left: 16px;
  }
  .course__item .course__list {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .course__item .course__list li {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.359;
    margin-top: 13px;
    display: flex;
    align-items: flex-start;
  }
  .course__item .course__list li:first-child {
    margin-top: 0;
  }
  .course__item .course__list li span {
    display: inline-block;
    margin-right: 4px;
  }
  .course__item:last-child {
    margin-bottom: 0;
  }
  /* コース・料金詳細ボタン */
  .course__btn {
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    font-size: 14px;
    padding: 7.5px 24px;
    border-radius: 6px;
    border: 1px solid #0C4324;
    color: #0C4324;
    text-decoration: none;
    text-align: center;
  }
  .course .section-block__bg-text--course {
    font-family: "Merriweather Sans", serif;
    font-weight: 400;
    font-size: 72px;
    opacity: 0.25;
    color: #DAE2C2;
    top: 73px;
    left: -29px;
  }
  /* BGアイコン（マッサージの薄いイラスト） */
  .course .section-block__bg-icon--course {
    width: 240px;
    height: 183px;
    bottom: 17px;
    right: -41px;
  }
  /* courseページ Care Plan：SP版 */
  .page-course .care-plan.section-block {
    padding: 32px 16px 37px;
  }
  .page-course .care-plan.section-block#selfpay {
    padding-bottom: 33px;
  }
  .page-course .care-plan.section-block > .section-block__inner {
    max-width: 288px;
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  .page-course .care-plan.section-block > .section-block__inner > .section-block__content {
    display: flex;
    flex-direction: column;
    row-gap: 0;
  }
  .page-course .care-plan.section-block .section-block__visual {
    order: -1;
    width: 100%;
    margin: 0 auto 0;
    display: flex;
    justify-content: center;
  }
  .page-course .care-plan.section-block .care-plan__img {
    width: 288px;
    height: 160px;
    border-radius: 16px;
    -o-object-fit: cover;
       object-fit: cover;
    margin-bottom: 0;
  }
  .page-course .care-plan.section-block .care-plan__text {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 0;
    min-height: auto;
    text-align: left;
  }
  .page-course .care-plan.section-block .section-block__label {
    margin-top: 32px;
  }
  .page-course .care-plan.section-block .section-block__label-row {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .page-course .care-plan.section-block .section-block__icon {
    width: 22px;
    height: 20px;
    display: block;
  }
  .page-course .care-plan.section-block .section-block__en {
    font-size: 24px;
    font-weight: 700;
    color: #468459;
    line-height: 1;
  }
  .page-course .care-plan.section-block .section-block__ja {
    display: block;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    color: #468459;
  }
  .page-course .care-plan.section-block .care-plan__desc {
    margin-top: 32px;
    font-size: 18px;
    line-height: 1.4;
    display: none;
  }
  .page-course .care-plan.section-block .care-plan__list-wrap,
  .page-course .care-plan.section-block .care-plan__list {
    margin-top: 32px;
  }
  .page-course .care-plan.section-block .care-plan__list {
    list-style: none;
    padding: 0;
    margin-bottom: 0;
  }
  .page-course .care-plan.section-block .care-plan__list li {
    font-size: 18px;
    font-weight: 400;
    line-height: 1.359;
  }
  .page-course .care-plan.section-block .care-plan__list li + li {
    margin-top: 12px;
  }
  .page-course .care-plan.section-block .care-plan__list .dot {
    margin-right: 4px;
  }
  .page-course .care-plan.section-block .care-plan__price {
    margin-top: 32px;
    font-size: 16px;
    line-height: 1.4;
    font-weight: 400;
    color: #000;
  }
  .page-course .care-plan.section-block#selfpay .care-plan__price {
    margin-top: 26px;
  }
  .page-course .care-plan.section-block .care-plan__price-line {
    display: block;
    margin: 16px 0 0;
    font-size: 16px;
    line-height: 1.4;
  }
  .page-course .care-plan.section-block .care-plan__price-line:first-child {
    margin-top: 0;
  }
  .page-course .care-plan.section-block .care-plan__price-label {
    display: block;
    font-weight: 400;
  }
  .page-course .care-plan.section-block .care-plan__price-body {
    display: block;
    margin-top: 4px;
  }
  /* ============================
  * Bottom Carousel（SPレイアウト）
  * ============================ */
  .bottom-carousel .swiper-slide picture,
  .bottom-carousel .swiper-slide img {
    width: 100%;
    height: 320px;
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
  }
  /* ============================
  * Voice Section（SPレイアウト）
  * ============================ */
  .voice__inner {
    max-width: 100%;
    margin: -61px auto 0;
    padding: 61px 16px 0;
    position: relative;
  }
  .voice__circle {
    width: 252.89px;
    height: 205.68px;
    border-radius: 50%;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background-color: #ffffff;
    z-index: 1;
  }
  .voice__head {
    margin-top: -23px;
    max-width: 252.89px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    z-index: 2;
  }
  .voice__head .course__head {
    max-width: 252.89px;
    width: 100%;
    margin: 0 auto;
    text-align: center;
  }
  .voice .course__label-row {
    display: inline-flex;
    align-items: center;
    gap: 18px;
  }
  .voice .course__slash {
    width: 14px;
    height: 22px;
    display: block;
  }
  .voice .course__label-text {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
  }
  .voice .course__lead {
    margin-top: 32px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0;
    text-align: center;
  }
  .voice__cards {
    margin-top: 32px;
    position: relative;
    z-index: 3;
  }
  .voice__list {
    display: flex;
    flex-direction: column;
    row-gap: 48px;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
  }
  .voice__item {
    width: 100%;
    max-width: 256px;
    margin: 0;
    padding: 0;
    text-align: center;
  }
  .voice__thumb {
    width: 160px;
    height: 160px;
    margin: 0 auto 16px;
    border-radius: 80%;
    border: 2px solid #DDDDDD;
    overflow: hidden;
  }
  .voice__thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
  .voice__name {
    margin-bottom: 24px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    color: #0C4324;
    text-align: center;
  }
  .voice__body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.359;
    color: #000;
    padding-left: 16px;
    text-align: left;
  }
  .voice__button {
    margin-top: 32px;
    text-align: center;
  }
  .voice__button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 178px;
    height: 32px;
    padding: 3px 24px;
    border-radius: 6px;
    border: 1px solid #0C4324;
    background-color: transparent;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    color: #0C4324;
    text-decoration: none;
    white-space: nowrap;
    gap: 4px;
  }
  /* ============================
  * Footer Access / Footer（SP）
  * ============================ */
  .footer-access__inner {
    padding: 9px 16px 28px;
    max-width: 320px;
    margin: 0 auto;
  }
  .footer-access__head {
    margin: 0 auto 40px;
  }
  .footer-access__head .course__label-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
  }
  .footer-access__head .course__slash {
    width: 14px;
    height: 22px;
    display: block;
  }
  .footer-access__head .course__label-text {
    font-size: 18px;
  }
  .footer-access__body {
    flex-direction: column;
    gap: 32px;
  }
  .footer-access__info {
    width: 100%;
  }
  .footer-access__tel-label {
    font-size: 16px;
  }
  .footer-access__tel-number {
    font-size: 18px;
  }
  .footer-access__title {
    font-size: 18px;
    margin-bottom: 16px;
  }
  .footer-access__address {
    font-size: 16px;
    margin-bottom: 16px;
  }
  .footer-access .pc-br {
    display: none;
  }
  .footer-access__tel {
    margin-bottom: 16px;
  }
  .footer-access__tel-number {
    font-size: 18px;
  }
  .footer-access__hours {
    margin-top: 16px;
  }
  .footer-access__cta {
    margin-top: 16px;
    text-align: center;
  }
  .footer-access__btn {
    width: 100%;
    font-size: 14px;
    padding: 16px 32px;
    white-space: nowrap;
  }
  .footer-access__map {
    flex: 0 0 auto;
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .footer-access__map-iframe {
    width: 100%;
    max-width: 288px;
    height: 236px;
  }
  .site-footer__inner {
    padding: 0px 16px 0px;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 24px;
  }
  .site-footer__logo img {
    width: 240px;
    height: 32px;
  }
  .site-footer__nav {
    margin-left: 0;
    width: 100%;
  }
  .site-footer__nav-list {
    flex-direction: column;
    gap: 16px;
  }
  .site-footer__nav-list a {
    font-size: 16px;
  }
  /* ============================
  * footer Section（SPレイアウト）
  * ============================ */
  .course-wave__img,
  .footer-wave__img {
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
  /* ==========================================
   * Flow Section（SPレイアウト）
   * ========================================== */
  /* Flow セクション（conceptレイアウト流用）のみ上書き */
  /* 背景テキスト「Flow」の位置だけ変更 */
  .concept.section-block#Flow .section-block__bg-text {
    top: 30px;
  }
  /* 「受付〜アフターカウンセリング」のリスト余白 */
  .concept.section-block#Flow .flow-list {
    margin-top: 0;
  }
  /* リストの行間 */
  .concept.section-block#Flow .flow-list p {
    margin: 0px 0 10px 0;
  }
  /* ★ 最後の p だけ margin-bottom: 0 にする */
  .concept.section-block#Flow .flow-list p:last-child {
    margin-bottom: 0;
  }
  /* Flow セクション（id="Flow"）だけ BGアイコンを非表示にする */
  .concept.section-block#Flow .section-block__bg-icon {
    display: none;
  }
  .concept.section-block#Flow .flow-list {
    margin-bottom: 73.11px;
  }
  .concept.section-block#Flow {
    padding-bottom: 0;
  }
  /* ============================================================
   * ③ md 未満（〜767px）：スマホ専用
   *   根本改善のポイント（.point セクション）
   * ============================================================ */
  /* セクション余白：上下32 / 左右16 */
  .point.section-block {
    padding: 32px 16px;
  }
  .point.section-block .point__inner {
    max-width: 100%;
    margin: 0 auto;
    padding: 0; /* SPはsectionのpaddingだけでOK */
  }
  /* 見出しまわり */
  .point.section-block .point__head {
    margin: 0 auto 32px;
    text-align: center;
  }
  .point.section-block .course__label-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
  }
  .point.section-block .course__slash {
    width: 14px;
    height: 22px;
    display: block;
  }
  .point.section-block .course__label-text {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: #468459;
  }
  /* お体の状態や〜〜（SPのフォント） */
  .point.section-block .course__lead {
    margin-top: 16px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    color: #468459;
    text-align: center;
  }
  /* 3つのポイント：縦並び */
  .point.section-block .point__list {
    margin-top: 32px;
    grid-template-columns: 1fr;
    row-gap: 48px; /* 1カード終わり → 次の画像まで 48px */
  }
  /* ★ ここで min-height / row-gap を完全リセット */
  .point.section-block .point__item,
  .point.section-block .point__figure {
    min-height: auto;
    row-gap: 0;
  }
  .point.section-block .point__figure {
    max-width: 288px; /* 画像幅 288px → 画面320pxなら左右16pxずつ空く */
    margin: 0 auto;
  }
  .point.section-block .point__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 16px;
    -o-object-fit: cover;
       object-fit: cover;
  }
  /* 画像 → テキスト 16px、テキスト18px Bold */
  .point.section-block .point__caption {
    margin-top: 16px;
    margin-bottom: 0;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: #000000;
    text-align: center;
  }
  /* ★ SPだけ「2行目」をブロック＋上に余白 */
  .point.section-block .course__lead-second {
    display: block;
    margin-top: 16px;
  }
  /* ……（point__list や point__caption などの既存SP用はそのままでOK） */
  /* ============================
  * Page Top Button（SPレイアウト）
  * ============================ */
  .pagetop {
    width: 48px;
    height: 48px;
    right: 18px;
    bottom: 78px;
  }
  .pagetop__icon {
    width: 48px;
    height: 48px;
  }
}
