/* =====================================================
  お知らせ詳細（single.php）／下層ページ調
===================================================== */
.p-single {
  padding-bottom: clamp(64px, var(--px-120), 120px);
}
.p-single__article {
  max-width: 900px;
  margin-inline: auto;
}
/* 見出しまわり */
.p-single__head {
  padding-bottom: clamp(20px, 1.7361vw, 25px);
  margin-bottom: clamp(28px, 2.7778vw, 40px);
  border-bottom: 1px solid #d9cfc4;
}
.p-single__meta {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.1111vw, 16px);
  margin-bottom: clamp(12px, 1.1111vw, 16px);
}
.p-single__date {
  font-family: "Cinzel", serif;
  font-size: clamp(15px, 1.25vw, 18px);
  letter-spacing: 0.08em;
  color: #9c7b5c;
  line-height: 1;
}
.p-single__cat {
  display: inline-flex;
  align-items: center;
  padding: 0.35em 1.2em;
  background: #c9b99f;
  color: #fff;
  font-size: clamp(12px, 0.9722vw, 14px);
  letter-spacing: 0.08em;
  line-height: 1.4;
  border-radius: 2px;
}
.p-single__title {
  font-size: clamp(22px, 2.0833vw, 30px);
  font-weight: 500;
  line-height: 1.5;
  color: #6b4e3e;
}
/* アイキャッチ */
.p-single__thumb {
  margin-bottom: clamp(28px, 2.7778vw, 40px);
}
.p-single__thumb img {
  display: block;
  width: 100%;
  height: auto;
}
/* 本文（投稿エディタ出力） */
.p-single__content {
  font-size: clamp(14px, 1.1111vw, 16px);
  line-height: 2;
}
.p-single__content > * + * {
  margin-top: 1.5em;
}
.p-single__content h2 {
  margin-top: 2em;
  padding: 0.5em 0 0.5em 0.9em;
  border-left: 5px solid #c9b99f;
  font-size: clamp(18px, 1.5278vw, 22px);
  font-weight: 500;
  line-height: 1.5;
  color: #6b4e3e;
}
.p-single__content h3 {
  margin-top: 1.8em;
  padding-bottom: 0.4em;
  border-bottom: 1px solid #d9cfc4;
  font-size: clamp(16px, 1.3889vw, 20px);
  font-weight: 500;
  line-height: 1.5;
  color: #6b4e3e;
}
.p-single__content h4 {
  margin-top: 1.6em;
  font-size: clamp(15px, 1.25vw, 18px);
  font-weight: 500;
  color: #6b4e3e;
}
.p-single__content a {
  color: #9c7b5c;
  text-decoration: underline;
}
.p-single__content img {
  height: auto;
}
.p-single__content ul,
.p-single__content ol {
  padding-left: 1.4em;
}
.p-single__content ul li {
  list-style: disc;
}
.p-single__content ol li {
  list-style: decimal;
}
.p-single__content ul li + li,
.p-single__content ol li + li {
  margin-top: 0.4em;
}
.p-single__content blockquote {
  padding: clamp(16px, 1.3889vw, 20px) clamp(20px, 1.7361vw, 25px);
  background: #f4f0ea;
  border-left: 4px solid #c9b99f;
  color: #7a6a5e;
}
/* 一覧へ戻る */
.p-single__back {
  margin-top: clamp(40px, var(--px-80), 80px);
  text-align: center;
}
.p-single .c-link-btn__arrow--back {
  border-left: 0;
  border-right: 7px solid #fff;
}

/*-------post------*/
.archive-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.single-post-title {
  font-size: var(--b-fs);
  font-weight: var(--b-fw);
}
.breadcrumb {
  background: #1a1a1a;
  padding-inline: 5.55%;
  display: flex;
  padding-top: 10px;
  padding-bottom: 10px;
}
.breadcrumb li::after {
  content: ">";
  margin: 0 1em;
  display: inline-block;
}
.breadcrumb li:last-child::after {
  content: none;
}
.breadcrumb li a,
.breadcrumb li {
  color: #fff;
}
.p-single__body {
  max-width: 950px;
  width: 100%;
  margin-inline: auto;
}
.pagination-area {
  margin-top: clamp(40px, var(--px-80), 80px);
}
.nav-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1em;
}
/*-------hd------*/
.l-header {
  position: relative;
  z-index: 500;
  background: #fff;
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--px-30);
  padding: 0 var(--px-40);
}
.c-logo__link {
  display: block;
  line-height: 1.2;
}
.c-logo__img {
  width: var(--px-342);
  height: auto;
}
/* ロゴ使い分け：通常は緑ロゴ、ホーム最上部（透明ヘッダー）は白ロゴ */
.c-logo__img--white {
  display: none;
}
body.home .l-header:not(.is-fixed) .c-logo__img--default {
  display: none;
}
body.home .l-header:not(.is-fixed) .c-logo__img--white {
  display: block;
}
/* 固定ヘッダー・下層ページのロゴは小さめ（225px） */
.l-header.is-fixed .c-logo__img,
body:not(.home) .c-logo__img {
  width: 15.625vw;
}
/* ホーム：最上部はロゴだけを左上に重ね、FVが画面外に出たら（is-fixed）白背景＋ナビを表示 */
body.home .l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: transparent;
  box-shadow: none;
  transition:
    background 0.4s ease,
    box-shadow 0.4s ease;
}
body.home .l-header:not(.is-fixed) .c-nav,
body.home .l-header:not(.is-fixed) .c-menu-btn,
body.home .l-header:not(.is-fixed) .l-header__contact {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
/* 固定ヘッダーの予約ボックス／ナビ間隔（figma準拠） */
.l-header__contact {
  flex-shrink: 0;
}
.l-header .c-gnav__list {
  gap: var(--px-20);
}
body.home .l-header.is-fixed {
  position: fixed;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
/* 下層（MVあり）：ホーム同様に透過ヘッダー＋ナビはMV下に浮かせる。
   ロゴは白／ナビは隠す（予約ボックスは表示のまま）。スクロールで白固定＋ナビ表示 */
body:has(.c-mv) .l-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background: transparent;
  box-shadow: none;
  transition:
    background 0.4s ease,
    box-shadow 0.4s ease;
}
body:has(.c-mv) .l-header:not(.is-fixed) .c-logo__img--default {
  display: none;
}
body:has(.c-mv) .l-header:not(.is-fixed) .c-logo__img--white {
  display: block;
}
body:has(.c-mv) .l-header:not(.is-fixed) .c-nav {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
body:has(.c-mv) .l-header.is-fixed {
  position: fixed;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
/*-------global nav------*/
.c-gnav__list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--px-60);
}
.c-gnav__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3472vw;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1.2;
}
.c-gnav__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3472vw;
}
.c-gnav__ja {
  font-size: clamp(1.4rem, var(--px-18), 1.8rem);
}
.c-gnav__en {
  font-family: "Cinzel", serif;
  color: #9c7b5c;
  font-size: clamp(1rem, var(--px-15), 1.5rem);
}
.c-gnav__link--toggle {
  flex-direction: row;
  align-items: center;
  gap: 0.6944vw;
}
.c-gnav__arrow {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #9c7b5c;
  transition: transform 0.25s ease;
}
.js-medical.is-open .c-gnav__arrow {
  transform: rotate(180deg);
}
.c-gnav__item--medical {
  position: relative;
}
.c-gnav__drawer {
  position: absolute;
  top: calc(100% + 0.7vw);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 14vw;
  background: #6b4e3e;
  box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25);
  padding: var(--px-20);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease;
  z-index: 10;
}
.c-gnav__drawer.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.c-gnav__drawer-list {
  display: flex;
  flex-direction: column;
  gap: var(--px-20);
}
.c-gnav__drawer-link {
  display: block;
  color: #fff;
  font-size: var(--px-16);
  letter-spacing: 0.1em;
  white-space: nowrap;
}
/*-------ft-----*/
/*-------btn------*/
/*-------fv (front-page MV)------*/
.p-index-fv {
  position: relative;
  margin-bottom: clamp(60px, 8.3333vw, 120px);
}
/* .p-index-fv__slider .splide__track,
.p-index-fv__slider .splide__list,
.p-index-fv__slider .splide__slide {
  height: var(--px-620);
} */
.p-index-fv__slider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-index-fv__contact {
  position: absolute;
  top: var(--px-20);
  right: var(--px-80);
  z-index: 3;
}
/* 予約・お問い合わせボックス（MV・固定ヘッダー共通） */
.c-contact {
  position: relative;
  width: var(--px-240);
  background: #fff;
  padding: var(--px-15) var(--px-20);
  text-align: center;
}
/* 内側の囲み枠（デザインの額縁状の線） */
.c-contact::after {
  content: "";
  position: absolute;
  inset: 0.3472vw;
  border: 1px solid #725e54;
  pointer-events: none;
}
.c-contact__label {
  font-size: var(--px-16);
  line-height: 1.2;
  margin-bottom: 0.4em;
}
.c-contact__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--px-13);
  font-size: var(--px-20);
  line-height: 1.2;
}
.c-contact__icon {
  width: var(--px-30);
  height: var(--px-30);
  flex-shrink: 0;
}
/* アイコン画像にボーダーが含まれるため、CSSの円枠は不要 */
.c-contact__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.p-index-fv__catch {
  position: absolute;
  top: 16.1806vw;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  text-align: center;
  white-space: nowrap;
  color: #fff;
  text-shadow: 4px 4px 20px rgba(0, 0, 0, 0.8);
}
.p-index-fv__catch-sm {
  font-size: var(--px-40);
  line-height: 1.6;
}
.p-index-fv__catch-lg {
  font-size: var(--px-54);
  line-height: 1.6;
}
/* 角の装飾：縦線に横線が少し突き出してクロスする「✝」状マーク */
.p-index-fv__catch::before,
.p-index-fv__catch::after {
  content: "";
  position: absolute;
  width: 3.5vw;
  height: 3.5vw;
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size:
    2px 100%,
    100% 2px;
  background-repeat: no-repeat;
}
.p-index-fv__catch::before {
  top: -1.2vw;
  left: -3.5vw;
  background-position:
    15px 0,
    0 28%;
}
.p-index-fv__catch::after {
  bottom: -1.2vw;
  right: -3.5vw;
  background-position:
    calc(100% - 15px) 0,
    0 72%;
}
/* 左下の縦縞装飾（直角三角形） */
.p-index-fv__stripe {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50vw;
  height: 23.1944vw;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  background: repeating-linear-gradient(
    90deg,
    rgba(156, 123, 92, 0.45) 0,
    rgba(156, 123, 92, 0.45) 4px,
    transparent 4px,
    transparent 7px
  );
  pointer-events: none;
  z-index: 1;
}
/* FV内に浮かぶナビゲーションバー */
.p-index-fv .c-gnav {
  position: absolute;
  top: 39.2361vw;
  left: 50%;
  transform: translateX(-50%);
  width: 88.8889vw;
  max-width: 1280px;
  background: #fff;
  box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25);
  padding-block: var(--px-30);
  z-index: 4;
}

/* =====================
  共通：セクション見出し
===================== */
.c-en-tit {
  font-family: "Cinzel", serif;
  color: #9c7b5c;
  line-height: 1.2;
  font-weight: 400;
}
.c-jp-tit {
  color: #725e54;
}
.c-sec-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-15);
  text-align: center;
  margin-bottom: var(--px-60);
}
.c-sec-head .c-en-tit {
  font-size: var(--px-96);
  letter-spacing: 0;
}
.c-sec-head .c-jp-tit {
  font-size: var(--px-32);
  letter-spacing: 0;
}
/* タイトルにひし形の背景画像（FEATURE / MEDICAL 共通）: top-title-bg.jpg */
.c-sec-head--bg {
  justify-content: center;
  min-height: 22.2222vw;
  margin-bottom: var(--px-80);
  background: url(../img/index/top-title-bg.jpg) center / cover no-repeat;
}

/* =====================
  共通：三角の装飾（単色ベージュの直角三角形）
  ホスト要素の ::before で1つ描画。ホストは position 指定＋背面に回すための
  重なり文脈（z-index など）が必要。
  右下=.c-tri--br / 左上=.c-tri--tl。はみ出し量=--tri-x/--tri-y、サイズ=--tri-size。
===================== */
/* 左上=::before / 右下=::after。別要素なら片方ずつ、同じ要素に両方付ければ2隅に出る */
.c-tri--tl::before,
.c-tri--br::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: var(--tri-size, 18.0556vw); /* 260px */
  height: var(--tri-size, 18.0556vw);
  background: #c9b99f;
  pointer-events: none;
}
.c-tri--tl::before {
  clip-path: polygon(0 0, 100% 0, 0 100%); /* 直角=左上 */
  left: var(--tri-x, -0.6944vw);
  top: var(--tri-y, -0.6944vw);
}
.c-tri--br::after {
  clip-path: polygon(100% 0, 100% 100%, 0 100%); /* 直角=右下 */
  right: var(--tri-x, -0.6944vw);
  bottom: var(--tri-y, -0.6944vw);
}

/* =====================
  NEWS
===================== */
.p-news {
  padding-block: 0 var(--px-80);
}
.p-news__tit {
  text-align: center;
  font-size: var(--px-48);
  margin-bottom: var(--px-40);
}
.p-news__card {
  max-width: 1120px;
  margin-inline: auto;
  background: #fff;
  box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.08);
  padding: var(--px-40) var(--px-80);
}
.p-news__list {
  max-height: 13.8889vw;
  overflow-y: auto;
  padding-right: var(--px-40);
}
.p-news__list::-webkit-scrollbar {
  width: 2px;
}
.p-news__list::-webkit-scrollbar-track {
  background: #e5ded8;
}
.p-news__list::-webkit-scrollbar-thumb {
  background: #9c7b5c;
}
.p-news__item {
  border-bottom: 1px solid #e5ded8;
}
.p-news__link {
  display: flex;
  align-items: baseline;
  gap: var(--px-30);
  padding-block: var(--px-16);
}
.p-news__date {
  flex-shrink: 0;
  font-family: "Cinzel", serif;
  color: #9c7b5c;
  font-size: var(--px-16);
}
.p-news__text {
  font-size: var(--px-16);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* =====================
  CONCEPT
===================== */
.p-concept {
  position: relative;
  /* 左画像がボックス上端より 133px 上に出る分を padding-top で確保（デザイン基準） */
  padding-top: 9.2361vw;
  padding-bottom: var(--px-80);
  /* 右画像（top:263 + h:426 = 689）を収める高さ */
  margin-bottom: var(--px-90);
}
.p-concept__img {
  position: absolute;
  z-index: 1;
  height: 29.5833vw;
}
.p-concept__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-concept__img--l {
  left: 0;
  top: 0;
  width: var(--px-580);
}
.p-concept__img--r {
  right: 0;
  top: 18.2639vw;
  width: var(--px-240);
}
.p-concept__box {
  position: relative;
  z-index: 2;
  width: var(--px-880);
  margin-left: var(--px-450);
  background: transparent;
  border: 1px solid #725e54;
  text-align: center;
  padding: var(--px-50) clamp(20px, var(--px-160), 160px) var(--px-60);
}
.p-concept__en {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #fff;
  padding-inline: var(--px-40);
  font-size: var(--px-64);
}
.p-concept__head {
  width: var(--px-560);
  margin: 0 auto var(--px-30);
  padding-bottom: var(--px-30);
  border-bottom: 1px solid #725e54;
}
.p-concept__lead {
  font-size: clamp(1.8rem, var(--px-32), 3.2rem);
  white-space: nowrap;
  letter-spacing: 0;
  line-height: 1.8;
}
.p-concept__text {
  width: var(--px-560);
  margin-inline: auto;
  font-size: var(--px-16);
  line-height: 2;
  text-align: left;
  letter-spacing: 0;
}

/* =====================
  FEATURE
===================== */
.p-feature {
  position: relative;
  padding-bottom: 0;
  overflow: hidden;
}
/* FEATURE 01：背景画像の帯＋中央テキスト＋左右に段違いでせり出す画像 */
.p-feature__01 {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 34.8611vw;
  margin-block: 3.2vw;
  background: linear-gradient(-170deg, #705b50 49.8%, #605048 49.8%);
}
.p-feature__01-body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-20);
  max-width: 42.2222vw;
  text-align: center;
  color: #fff;
  /* 「01」が帯の上端をまたいで縦半分はみ出すよう、数字の高さの半分だけ上へ */
  transform: translateY(-3.47vw);
}
.p-feature__01 .p-feature__num,
.p-feature__02 .p-feature__num,
.p-feature__card .p-feature__num,
.p-feature__full .p-feature__num {
  color: transparent;
  -webkit-text-stroke: 2px #c9b99f;
  font-weight: 700;
}
.p-feature__01 .p-feature__tit {
  margin: 0;
  color: #fff;
  font-size: var(--px-32);
  line-height: 1.8;
  font-weight: 400;
}
.p-feature__01 .p-feature__text {
  width: 33.3333vw;
  color: #fff;
  text-align: left;
  letter-spacing: 0;
}
.p-feature__01-img {
  position: absolute;
  z-index: 1;
  width: 27.7778vw;
  height: 27.7778vw;
}
.p-feature__01-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-feature__01-img--l {
  left: 0;
  top: -3.2vw;
}
.p-feature__01-img--r {
  right: 0;
  bottom: -3.2vw;
}
.p-feature__num {
  display: block;
  font-family: "Cinzel", serif;
  color: #c9b99f;
  font-size: var(--px-100);
  line-height: 1;
}
.p-feature__tit {
  font-size: var(--px-32);
  color: #725e54;
  line-height: 1.6;
  margin-block: var(--px-20);
}
.p-feature__text {
  font-size: var(--px-16);
  line-height: 2;
}
/* FEATURE 02：薄グレーの帯（背景画像）＋右テキスト＋左に段違いの画像（上下にはみ出す） */
.p-feature__02 {
  position: relative;
  max-width: 88.8889vw; /* 1280 */
  min-height: 33.125vw; /* 477 */
  margin: 9vw auto;
  /* 背景画像をCSSで再現：内側の斜め2トーン＋30pxのグレー枠 */
  background: linear-gradient(209.35deg, #ededed 39.404%, #d9d9d9 39.404%);
  box-shadow: inset 0 0 0 var(--px-30) #d9d9d9; /* 30px 枠 */
}
.p-feature__02-body {
  position: absolute;
  z-index: 2;
  top: -4.7222vw; /* 「02」が帯上端をまたぐ（-68px） */
  right: 0;
  width: 42.2222vw; /* 608 */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-20);
  text-align: center;
}
.p-feature__02 .p-feature__tit {
  margin: 0;
  font-size: var(--px-32);
  line-height: 1.8;
}
.p-feature__02 .p-feature__text {
  width: 33.3333vw; /* 480 */
  text-align: left;
}
.p-feature__02-img {
  position: absolute;
  width: 33.3333vw; /* 480 */
  height: 22.2222vw; /* 320 */
}
.p-feature__02-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-feature__02-img--1 {
  z-index: 1;
  left: -5.5556vw; /* -80px（帯の左外へ） */
  top: -2.8472vw; /* -41px（上にはみ出す） */
}
.p-feature__02-img--2 {
  z-index: 2;
  left: 11.1111vw; /* 160px */
  bottom: -2.9167vw; /* -42px（下にはみ出す） */
}
/* FEATURE 03-05：3枚のカード（背景画像＋20px枠／下寄せ） */
.p-feature__cards {
  display: flex;
  align-items: flex-start;
  margin-top: var(--px-120);
}
.p-feature__card {
  position: relative;
  width: 33.3333vw; /* 480：3枚で全幅 */
  min-height: 50vw; /* 720 */
  padding: 4.2vw var(--px-40) var(--px-60); /* 上は番号のはみ出し分を空ける */
  border: 1.3889vw solid #9c7b5c; /* 20px */
  display: flex;
  flex-direction: column;
  gap: var(--px-20);
  color: #fff;
  /* 背景をCSSで再現：茶系の斜め2トーン */
  background: linear-gradient(121.72deg, #a98a6c 49.5%, #9c7b5c 49.5%);
}
/* 04 は背景・枠色が異なり、少し下げる */
.p-feature__card--04 {
  border-color: #605048;
  /* 濃茶の斜め2トーン */
  background: linear-gradient(-57.6deg, #605048 50.081%, #705b50 50.081%);
  margin-top: 5.0694vw; /* 73px 下げる */
}
/* 番号：背景の上端をまたいで縦半分はみ出す */
.p-feature__card .p-feature__num {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  text-align: center;
  transform: translateY(-50%);
  z-index: 1;
}
.p-feature__card-img {
  width: 100%;
  aspect-ratio: 4 / 3;
}
.p-feature__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-feature__card-tit {
  font-size: clamp(1.8rem, var(--px-32), 3.2rem);
  line-height: 1.8;
}
.p-feature__card .p-feature__text {
  width: 100%;
}
/* FEATURE 06：全幅の帯（背景画像＋濃いオーバーレイ）／番号は帯上端をまたいではみ出す */
.p-feature__full {
  position: relative;
  margin-top: var(--px-120);
  min-height: 22.9861vw; /* 331 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  background: url(../img/index/top-feature-img06-bg.jpg) center / cover
    no-repeat;
}
.p-feature__full-inner {
  max-width: var(--px-672);
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-20);
  text-align: center;
  color: #fff;
  transform: translateY(-3.47vw); /* 「06」が帯上端をまたぐ */
}
.p-feature__full .p-feature__tit {
  margin: 0;
  color: #fff;
  font-size: var(--px-32);
  line-height: 1.8;
}
.p-feature__full .p-feature__text {
  color: #fff;
}

/* =====================
  MEDICAL
===================== */
.p-medical {
  position: relative;
  padding-block: 0;
  overflow: hidden;
}
/* タイトル下の余白を詰める */
.p-medical .c-sec-head--bg {
  margin-bottom: 0;
}
.p-medical__features {
  display: flex;
}
.p-medical__feature {
  position: relative;
  width: 50%;
  height: 36.25vw; /* 522 */
  background-size: cover;
  background-position: center;
}
/* 黒の半透明ボックスは画像より内側（40px インセット・100%ではない） */
.p-medical__feature-inner {
  position: absolute;
  inset: var(--px-40);
  display: flex;
  flex-direction: column;
  gap: var(--px-20);
  padding: var(--px-40) var(--px-200) var(--px-40) var(--px-40);
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
}
.p-medical__feature-tit {
  font-size: var(--px-32);
  line-height: 1.6;
}
.p-medical__feature-tit span {
  display: block;
  font-size: var(--px-24);
}
.p-medical__feature-text {
  width: var(--px-400);
  font-size: var(--px-16);
  line-height: 2;
  letter-spacing: 0;
  font-weight: 400;
}
.p-medical__more {
  display: block;
  width: var(--px-40);
  height: var(--px-40);
  background: url(../img/common/arrow-icon.webp) center / contain no-repeat;
}
/* ひし形の装飾（top-medical-deco を背景に、中央にラベル） */
.p-medical__deco {
  position: absolute;
  z-index: 2;
  width: 14.4444vw; /* 198 */
  height: 14.4444vw;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: url(../img/index/top-medical-deco.webp) center / contain no-repeat;
}
.p-medical__deco span {
  color: #725e54;
  font-size: var(--px-20);
  line-height: 1.8;
  letter-spacing: 0;
}
.p-medical__deco--upper {
  left: 35.5556vw; /* 512 */
  top: 10.7639vw; /* 155 */
}
.p-medical__deco--lower {
  left: 30.9722vw; /* 446 */
  top: 21.1111vw; /* 304 */
  pointer-events: none;
}
/* メニュー：グレーの帯 */
.p-medical__menu {
  background: #e2e2e2;
  padding-block: var(--px-80);
}
.p-medical__menu-list {
  display: flex;
  justify-content: center;
  gap: var(--px-16);
  max-width: 88.8889vw;
  margin-inline: auto;
}
.p-medical__card {
  position: relative;
  width: calc((100% - (var(--px-16) * 5)) / 6);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-20);
  padding-block: var(--px-40);
  background: #fff;
  border: 1px solid #725e54;
  text-align: center;
}
/* 内側の枠線（外枠から 10px 内側） */
.p-medical__card::before {
  content: "";
  position: absolute;
  inset: 0.6944vw; /* 10px */
  border: 1px solid #c9b99f;
  pointer-events: none;
}
/* 右下のベージュ三角（内枠の角に重なる） */
.p-medical__card::after {
  content: "";
  position: absolute;
  right: 0.6944vw; /* 内枠に合わせる */
  bottom: 0.6944vw;
  width: var(--px-28);
  height: var(--px-28);
  background: #c9b99f;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}
.p-medical__card-tit {
  font-size: var(--px-18);
  color: #725e54;
}
.p-medical__card-icon {
  width: var(--px-50);
  height: var(--px-50);
}
.p-medical__card-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-medical__card-en {
  font-family: "Cinzel", serif;
  color: #9c7b5c;
  font-size: var(--px-15);
  letter-spacing: 0em;
  line-height: 1.4;
}

/* =====================
  FLOW
===================== */
.p-flow {
  padding-block: var(--px-120);
  overflow: hidden;
}
.p-flow__head {
  margin-bottom: var(--px-40);
}
.p-flow__sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--px-40);
  width: 88.8889vw;
  margin-inline: auto;
}
.p-flow__sub::before,
.p-flow__sub::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #c9b99f;
}
.p-flow__sub span {
  font-size: var(--px-32);
  color: #725e54;
  white-space: nowrap;
}
.p-flow__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--px-16);
  max-width: 88.8889vw;
  margin: 0 auto var(--px-40);
}
.p-flow__tab {
  flex: 1;
  min-width: var(--px-200);
  border: 1px solid #c9b99f;
  background: #fff;
  color: #c9b99f;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.4rem, var(--px-20), 2rem);
  padding: var(--px-13);
  cursor: pointer;
  transition: 0.25s;
  letter-spacing: 0;
}
.p-flow__tab.is-active {
  border-color: #9c7b5c;
  color: #9c7b5c;
}
/* スケールは .splide__slide ではなく内側に掛ける（Splide のセンター計算を壊さないため） */
.flow-slider .p-flow__slide-inner {
  opacity: 0.6;
  transform: scale(0.86); /* 左右の見切りは少し小さく */
  transform-origin: center;
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}
.flow-slider .splide__slide.is-active .p-flow__slide-inner {
  opacity: 1;
  transform: scale(1);
}
/* 見切り（非アクティブ）はキャプションの文字を隠してバーだけに */
.flow-slider .splide__slide:not(.is-active) .p-flow__caption-tit,
.flow-slider .splide__slide:not(.is-active) .p-flow__caption-text {
  visibility: hidden;
}
.p-flow__img {
  aspect-ratio: 720 / 360;
  background: #d8cdbf;
}
.p-flow__caption {
  min-height: 10.8333vw;
  padding: var(--px-20) var(--px-40);
  text-align: center;
  color: #fff;
  background: linear-gradient(160deg, #a98a6c 49.8%, #9c7b5c 49.8%);
}
.p-flow__caption-tit {
  font-size: var(--px-24);
  margin-bottom: var(--px-16);
}
.p-flow__caption-text {
  font-size: var(--px-16);
  line-height: 2;
  letter-spacing: 0;
  text-align: left;
}
.flow-slider .splide__arrow {
  background: transparent;
  opacity: 1;
  width: var(--px-30);
  height: var(--px-50);
  z-index: 5;
}
/* センター画像のすぐ外側（padding 25% の内側）に配置 */
.flow-slider .splide__arrow--prev {
  left: calc(25% - 3vw);
}
.flow-slider .splide__arrow--next {
  right: calc(25% - 3vw);
}
.flow-slider .splide__arrow svg {
  width: 100%;
  height: 100%;
  fill: #9c7b5c;
}

/* =====================
  GREETING
===================== */
.p-greeting {
  position: relative;
  min-height: 58.2639vw; /* 839 */
  padding-block: var(--px-80);
  background: url(../img/index/top-greeting-bg.jpg) center / cover no-repeat;
}
/* 薄い白の帯（上から 215px・高さ 544px） */
.p-greeting::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 14.9306vw;
  height: 37.7778vw;
  background: #fff;
  opacity: 0.8;
  z-index: 0;
}
.p-greeting__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: var(--px-80);
}
.p-greeting__body {
  flex: 1;
}
.p-greeting__en {
  font-size: var(--px-96);
  margin-bottom: var(--px-40);
  font-weight: 500;
  text-shadow: 0 4px 10px #fff;
}
.p-greeting__lead {
  font-size: var(--px-32);
  line-height: 1.6;
  margin-bottom: var(--px-30);
}
.p-greeting__text {
  font-size: var(--px-16);
  line-height: 2;
  margin-bottom: var(--px-30);
}
.p-greeting__name {
  display: flex;
  align-items: baseline;
  gap: var(--px-20);
}
.p-greeting__name-main {
  display: flex;
  align-items: baseline;
  gap: var(--px-20);
}
.p-greeting__name-role {
  font-size: var(--px-18);
}
.p-greeting__name-ja {
  font-size: var(--px-28);
}
.p-greeting__name-en {
  font-family: "Cinzel", serif;
  color: #9c7b5c;
  font-size: var(--px-16);
}
.p-greeting__img {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 33.3333vw;
  height: 38.8889vw;
}
.p-greeting__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =====================
  RECRUIT
===================== */
.p-recruit {
  padding-block: var(--px-80) var(--px-120);
}
.p-recruit__box {
  position: relative;
  min-height: 29.5139vw;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.p-recruit__box::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(60, 50, 45, 0.45);
}
.p-recruit__head {
  position: absolute;
  top: var(--px-40);
  right: var(--px-60);
  z-index: 1;
  display: flex;
  align-items: baseline;
  gap: var(--px-20);
}
.p-recruit__jp {
  color: #fff;
  font-size: var(--px-20);
}
.p-recruit__en {
  color: #fff;
  font-size: var(--px-64);
}
.p-recruit__text {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: var(--px-32);
}

/* =====================
  FOOTER
===================== */
.l-footer {
  color: #725e54;
}
/* 上部：装飾背景＋ロゴ */
.l-footer__head {
  background-image: url(../img/common/footer-bg.jpg);
  background-size: cover;
  background-position: center top;
  padding-bottom: var(--px-80);
}
.l-footer__logo {
  text-align: center;
  padding-top: var(--px-100);
}
.l-footer__logo img {
  width: 32.9167vw; /* 474 */
}
.l-footer__info {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: var(--px-40);
  margin-top: var(--px-60);
}
.l-footer__info-left {
  display: flex;
  flex-direction: column;
  gap: var(--px-30);
  width: 39.0278vw; /* 562 */
}
/* 住所バー */
.c-footer-address {
  position: relative;
}
.c-footer-address__inner {
  background: #9c7b5c;
  color: #fff;
  text-align: center;
  font-size: var(--px-20);
  padding: var(--px-13) var(--px-40);
}
/* 両端の装飾：::before（上）と::after（下）の三角を端で交差させる */
.c-footer-address-deco-left::before,
.c-footer-address-deco-left::after {
  content: "";
  display: inline-block;
  width: 59px;
  height: 80%;
  position: absolute;
  left: 0;
  background: rgba(201, 185, 159, 0.5);
  z-index: 3;
}
.c-footer-address-deco-left::before {
  clip-path: polygon(100% 0, 0 0, 0 100%);
  top: 0;
}
.c-footer-address-deco-left::after {
  clip-path: polygon(100% 100%, 0 0, 0 100%);
  bottom: 0;
}
.c-footer-address-deco-right::before,
.c-footer-address-deco-right::after {
  content: "";
  display: inline-block;
  width: 59px;
  height: 80%;
  position: absolute;
  right: 0;
  background: rgba(201, 185, 159, 0.5);
  z-index: 3;
}
.c-footer-address-deco-right::before {
  clip-path: polygon(0 0, 100% 0, 100% 100%);
  top: 0;
}
.c-footer-address-deco-right::after {
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  bottom: 0;
}
/* 連絡先（予約＋電車） */
.c-footer-contacts {
  display: flex;
  align-items: stretch;
  gap: var(--px-13);
}
.c-footer-train {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--px-13);
  width: 21.6667vw; /* 312 */
  background: #6b4e3e;
  color: #fff;
  padding: var(--px-13) var(--px-16);
}
.c-footer-train::after {
  content: "";
  position: absolute;
  inset: 0.3472vw;
  border: 1px solid #fff;
  pointer-events: none;
}
.c-footer-train__icon {
  flex-shrink: 0;
  width: var(--px-30);
  height: var(--px-30);
}
.c-footer-train__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-footer-train__text {
  font-size: var(--px-16);
  line-height: 1.4;
}
.c-footer-train__text .is-lg {
  font-size: var(--px-20);
}
/* 診療時間テーブル */
.c-footer-hours {
  width: 38.8889vw; /* 560 */
}
.c-footer-hours__table {
  width: 100%;
  border: 1px solid #725e54;
  background: #fff;
}
.c-footer-hours__row {
  position: relative;
  display: flex;
}
.c-footer-hours__row dt,
.c-footer-hours__row dd {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 400;
  font-size: var(--px-18);
  text-align: center;
  padding: var(--px-22) 0;
}
/* 1列目（時間ラベル）は28% */
.c-footer-hours__row dt {
  flex: 0 0 28%;
  letter-spacing: 0;
}
/* 見出し行は上下paddingを大きめに */
.c-footer-hours__row--head dt,
.c-footer-hours__row--head dd {
  padding: var(--px-40) 0 var(--px-20);
}
/* 行間の区切り線：左右を20px内側に（figma: 520/560 = 両端20px inset） */
.c-footer-hours__row:not(:last-child)::after {
  content: "";
  position: absolute;
  left: var(--px-20);
  right: var(--px-20);
  bottom: 0;
  height: 1px;
  background: #c9b99f;
}
.c-mark-open {
  display: inline-block;
  vertical-align: middle;
  width: var(--px-25);
  height: var(--px-25);
  border: 1px solid #725e54;
  border-radius: 50%;
}
.c-mark-close {
  display: inline-block;
  vertical-align: middle;
  width: var(--px-20);
  height: 1px;
  background: #725e54;
  transform: rotate(-45deg);
}
/* GOOGLE MAP */
.l-footer__map {
  position: relative;
  background: #e2e2e2;
}
.c-footer-mapbtn {
  position: absolute;
  top: var(--px-40);
  left: var(--px-40);
  z-index: 1;
  display: flex;
  align-items: center;
  gap: var(--px-20);
  background: #fff;
  border: 1px solid #9c7b5c;
  color: #9c7b5c;
  font-family: "Cinzel", serif;
  font-size: var(--px-20);
  letter-spacing: 0.1em;
  padding: var(--px-15) var(--px-30);
}
.c-footer-mapbtn__arrow {
  width: 0;
  height: 0;
  border-top: 0.4167vw solid transparent;
  border-bottom: 0.4167vw solid transparent;
  border-left: 0.6944vw solid #9c7b5c;
}
.c-footer-mapframe iframe {
  display: block;
  width: 100%;
  height: 27.7778vw; /* 400 */
  border: 0;
}
/* SITE MAP */
.l-footer__sitemap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--px-40);
  max-width: 77.7778vw; /* 1120 */
  margin: var(--px-100) auto;
}
.c-footer-sitemap__tit {
  width: 100%;
  text-align: center;
  font-family: "Cinzel", serif;
  color: #725e54;
  font-size: var(--px-40);
  letter-spacing: 0.05em;
  padding-bottom: var(--px-15);
  border-bottom: 1px solid #c9b99f;
}
.c-footer-sitemap__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--px-30) var(--px-55);
  width: 100%;
}
.c-footer-sitemap__list a {
  color: #725e54;
  font-size: var(--px-18);
  letter-spacing: 0.1em;
}
/* copyright */
.c-footer-copy {
  background: #c9b99f;
  color: #725e54;
  text-align: center;
  font-size: var(--px-15);
  padding: var(--px-30) var(--px-15);
}

/* スマホ追従フッター（固定CTAバー）。PCは非表示 */
.c-fixfoot {
  display: none;
}
@media screen and (max-width: 820px) {
  .c-fixfoot {
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 900;
    display: flex;
    width: 100%;
  }
  /* 左：予約・電話（白／内側に枠線） */
  .c-fixfoot__tel {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 48px;
    padding: 6px;
    background: #fff;
    color: #725e54;
  }
  .c-fixfoot__tel::after {
    content: "";
    position: absolute;
    inset: 3px;
    border: 1px solid #725e54;
    pointer-events: none;
  }
  .c-fixfoot__label {
    font-size: 10px;
    line-height: 1.2;
  }
  .c-fixfoot__num {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 15px;
    line-height: 1.2;
  }
  .c-fixfoot__icon {
    flex-shrink: 0;
    width: 15px;
    height: 15px;
  }
  .c-fixfoot__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  /* 右：アクセス（#c9b99f／ピンアイコン） */
  .c-fixfoot__access {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    background: #c9b99f;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.1em;
  }
  .c-fixfoot__pin {
    flex-shrink: 0;
    width: 11px;
  }
  .c-fixfoot__pin img {
    display: block;
    width: 100%;
    height: auto;
  }
  /* 固定バーぶんの余白（最下部コンテンツが隠れないように） */
  body {
    padding-bottom: 48px;
  }
}

/* =====================
  SP（375pxデザイン基準 / 寸法は N/375*100 vw）
===================== */
@media screen and (max-width: 820px) {
  /* ヘッダー：ロゴ＋ハンバーガーのみ（820px からハンバーガー挙動） */
  .l-header__inner {
    padding: 14px 20px;
  }
  /* SPはロゴサイズを統一（固定時の縮小指定も上書き）＋予約ボックスは非表示 */
  .l-header.is-fixed .c-logo__img,
  body:not(.home) .c-logo__img,
  .c-logo__img {
    width: min(58vw, 220px);
  }
  .l-header__contact {
    display: none;
  }
  /* ハンバーガー（デザインの #9c7b5c の四角／テキスト非表示） */
  body #menu-button {
    background: #9c7b5c;
  }
  #menu-button .c-menu-btn__text {
    display: none;
  }
  /* ===== SPメニュー（ハンバーガー展開） ===== */
  /* 項目は縦並び・左寄せ、画面中央に配置 */
  #main-menu-container .c-gnav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px; /* 20px */
  }
  /* 各リンク：日本語（上）＋英語（下）を左寄せ */
  #main-menu-container .c-gnav__link {
    align-items: flex-start;
    gap: 1.3333vw; /* 5px */
  }
  #main-menu-container .c-gnav__ja {
    color: #fff;
  }
  #main-menu-container .c-gnav__en {
    color: #f6f5e0;
  }
  /* 診療案内：ラベル＋矢印（横並び） */
  #main-menu-container .c-gnav__link--toggle {
    gap: 2.6667vw; /* 10px */
  }
  /* SPはアコーディオンにせず常時表示なので矢印は非表示 */
  #main-menu-container .c-gnav__arrow {
    display: none;
  }
  /* サブメニュー：常時表示（インフロー） */
  #main-menu-container .c-gnav__drawer {
    position: static;
    transform: none;
    box-shadow: none;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    display: block;
    padding: 20px; /* 20px */
  }
  #main-menu-container .c-gnav__drawer-list {
    gap: 5.3333vw; /* 20px */
  }
  #main-menu-container .c-gnav__drawer-link {
    font-size: 1.4rem; /* 16px */
  }
  /* 最上部でもハンバーガー／ドロワーは有効に（ホーム・下層ともPCの非表示ルールを打ち消す） */
  body.home .l-header:not(.is-fixed) .c-menu-btn,
  body.home .l-header:not(.is-fixed) #main-menu-container,
  body:has(.c-mv) .l-header:not(.is-fixed) .c-menu-btn,
  body:has(.c-mv) .l-header:not(.is-fixed) #main-menu-container {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* PC専用の連絡先・浮遊ナビバーは非表示 */
  .p-index-fv__contact,
  .p-index-fv .c-gnav {
    display: none;
  }
}

@media screen and (max-width: 680px) {
  /* キャッチコピー（20px / 24px） */
  .p-index-fv__catch {
    top: 80vw;
  }
  .p-index-fv__catch-sm {
    font-size: 5.3333vw;
  }
  .p-index-fv__catch-lg {
    font-size: 6.4vw;
  }
  .p-index-fv__catch::before,
  .p-index-fv__catch::after {
    width: 11vw;
    height: 11vw;
  }
  .p-index-fv__catch::before {
    top: -4vw;
    left: -8vw;
  }
  .p-index-fv__catch::after {
    bottom: -4vw;
    right: -8vw;
  }

  /* 縦縞装飾（185 × 360） */
  .p-index-fv__stripe {
    width: 49.3333vw;
    height: 96vw;
  }
}

/* =====================
  SP：NEWS / CONCEPT / FEATURE（375pxデザイン基準 / 寸法は N/375*100 vw）
===================== */
@media screen and (max-width: 680px) {
  /* ---- 共通見出し（FEATURE / MEDICAL のタイトル） ---- */
  .c-sec-head {
    gap: 2.6667vw;
    margin-bottom: 50px;
  }
  .c-sec-head .c-en-tit {
    font-size: 11vw;
  }
  .c-sec-head .c-jp-tit {
    font-size: 4.2667vw;
  }
  .c-sec-head--bg {
    min-height: 37.3333vw;
  }

  /* ---- NEWS ---- */
  .p-news {
    padding-block: 16vw 13vw;
  }
  .p-news__tit {
    font-size: 6.4vw;
    margin-bottom: 6vw;
  }
  .p-news__card {
    padding: 9.3333vw 6.4vw;
  }
  .p-news__list {
    max-height: 74vw;
    padding-right: 5.3333vw;
  }
  /* 日付と本文を縦積みに、本文は折り返す */
  .p-news__link {
    flex-direction: column;
    align-items: stretch;
    gap: 1.3333vw;
    padding-block: 3.2vw;
  }
  .p-news__date {
    font-size: 3.7333vw;
  }
  .p-news__text {
    font-size: 4.2667vw;
    line-height: 1.7;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }

  /* ---- CONCEPT（画像2枚を横並び＋枠なし） ---- */
  .p-concept {
    display: flex;
    flex-wrap: wrap;
    gap: 1.3333vw;
    min-height: 0;
    padding: 0 0 13vw;
  }
  .p-concept__img {
    position: static;
    height: 50.9333vw; /* 191 */
  }
  .p-concept__img--l {
    width: 69.3333vw; /* 260 */
  }
  .p-concept__img--r {
    width: 29.3333vw; /* 110 */
  }
  /* 枠線・リボン見出しは PC のまま残し、幅と位置だけ調整 */
  .p-concept__box {
    width: 92%; /* 335 */
    margin: 8vw auto 0;
    padding: 10vw 20px 10.6667vw;
  }
  .p-concept__en {
    padding-inline: 5.3333vw;
    font-size: 9.6vw;
    white-space: nowrap;
  }
  .p-concept__head {
    width: 100%;
    padding-bottom: 5.3333vw;
    margin-bottom: 5.3333vw;
  }
  .p-concept__lead {
    font-size: 5.3333vw;
    white-space: normal;
  }
  .p-concept__text {
    width: 100%;
    font-size: 4.2667vw;
    text-align: left;
  }

  /* ---- FEATURE ---- */
  .p-feature__num {
    font-size: 13vw; /* 58px相当 */
  }
  /* 01：全幅帯／テキスト上（番号またぎ）＋下に156角の画像を段違い（画像2は帯下にはみ出す） */
  .p-feature__01 {
    display: block;
    width: 100%;
    max-width: none;
    min-height: 156.5333vw; /* 587 */
    margin: 0 0 50px;
    padding: 0;
    background: linear-gradient(-135deg, #705b50 49.8%, #605048 49.8%);
  }
  .p-feature__01-body {
    position: absolute;
    top: -7.4667vw; /* -28px：「01」が帯上端をまたぐ */
    left: 50%;
    width: 73.3333vw; /* 275 */
    max-width: none;
    gap: 4vw;
    transform: translateX(-50%);
  }
  .p-feature__01 .p-feature__tit {
    font-size: 4.8vw; /* 18px */
  }
  .p-feature__01 .p-feature__text {
    width: 100%;
    font-size: 3.4667vw; /* 13px */
    text-align: left;
  }
  .p-feature__01-img {
    width: 41.6vw; /* 156 */
    height: 41.6vw;
    --tri-size: 27vw; /* 101 */
    --tri-x: -1.3333vw;
    --tri-y: -1.3333vw;
  }
  .p-feature__01-img--l {
    left: 5.3333vw; /* 20px */
    top: 110.4vw; /* 帯上端から 414px */
    right: auto;
    bottom: auto;
  }
  .p-feature__01-img--r {
    left: 53.0667vw; /* 199px */
    top: 120.2667vw; /* 451px：01より少し下げ＋帯下にはみ出す */
    right: auto;
    bottom: auto;
  }

  /* 02：全幅帯／テキスト上（番号またぎ）＋下に220×147の画像を段違い（画像2は帯下にはみ出す） */
  .p-feature__02 {
    display: block;
    width: 100%;
    max-width: none;
    min-height: 178.9333vw; /* 671 */
    margin: 0 0 8vw;
    padding: 0;
    /* SPは縦長の三角ウェッジ：ベタのグレー＋三角(::before)＋30px枠 */
    background: #d9d9d9;
    box-shadow: inset 0 0 0 8vw #d9d9d9; /* 30px相当の枠 */
  }
  /* 上が広く下に細くなる明るい三角（枠の内側 8vw から） */
  .p-feature__02::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #ededed;
    clip-path: polygon(37% 8vw, 91% 8vw, 91% 84%);
    pointer-events: none;
  }
  .p-feature__02-body {
    position: absolute;
    top: -7.4667vw; /* -28px：「02」が帯上端をまたぐ */
    left: 50%;
    right: auto;
    width: 73.3333vw; /* 275 */
    gap: 5.3333vw; /* 番号・タイトル・本文の余白 20px */
    transform: translateX(-50%);
  }
  .p-feature__02 .p-feature__tit {
    font-size: 4.8vw; /* 18px */
  }
  .p-feature__02 .p-feature__text {
    width: 100%;
    font-size: 3.4667vw; /* 13px */
    text-align: left;
  }
  .p-feature__02-img {
    position: absolute;
    width: 58.7333vw; /* 220 */
    height: 39.16vw; /* 147 */
    --tri-size: 31.8vw; /* 119 */
    --tri-x: -1.3333vw;
    --tri-y: -1.3333vw;
  }
  .p-feature__02-img--1 {
    z-index: 1;
    left: 5.3333vw; /* 20px */
    top: 117.3333vw; /* 帯上端から 440px */
    bottom: auto;
  }
  .p-feature__02-img--2 {
    z-index: 2;
    left: 34.704vw; /* 130px */
    top: 146.704vw; /* 550px：下げ＋帯下にはみ出す */
    bottom: auto;
  }

  /* 03-05 カード：全幅で縦積み（04 の下げは解除） */
  .p-feature__cards {
    flex-direction: column;
    align-items: center;
    gap: 13vw;
    margin-top: 16vw;
  }
  .p-feature__card {
    width: 89.3333vw; /* 335 */
    min-height: 0;
    padding: 9vw 6.4vw 9vw;
    /* SPは背景をCSSで再現：暗い側をベタ＋左側の明るい三角(::before) */
    background: #9c7b5c;
    isolation: isolate; /* ::before(z-index:-1) を背景の前面に出す */
  }
  /* 左側の明るい三角（上端 30% から右下の角へ） */
  .p-feature__card::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
    background: #a98a6c;
    clip-path: polygon(0 0, 100% 0, 100% 0%, 0 100%);
    width: 95%;
    height: 95%;
    pointer-events: none;
  }
  .p-feature__card--04 {
    margin-top: 0;
    background: #605048;
  }
  .p-feature__card--04::before {
    background: #705b50;
  }
  .p-feature__card-tit {
    font-size: 5.3333vw;
  }
  .p-feature__card .p-feature__text {
    font-size: 3.4667vw;
    letter-spacing: 0;
  }

  /* 06 帯：全幅・中央／「06」が帯上端をまたいで上にはみ出す */
  .p-feature__full {
    min-height: 74.1333vw; /* 278 */
    padding: 0 5.3333vw;
    background: url(../img/index/top-feature-img06-bg-sp.jpg) center / cover
      no-repeat;
  }
  .p-feature__full-inner {
    gap: 2.6667vw; /* 10px */
    transform: translateY(-7.4667vw); /* 06 が帯上端をまたぐ */
  }
  .p-feature__full .p-feature__tit {
    font-size: 4.8vw; /* 18px */
  }
  .p-feature__full .p-feature__text {
    width: 73.3333vw; /* 275 */
    font-size: 3.4667vw; /* 13px */
    white-space: normal;
  }

  /* ---- MEDICAL ---- */
  /* 特徴は縦積み（全幅）。黒ボックスは通常フロー、ひし形は画像下部に2つ */
  .p-medical__features {
    flex-direction: column;
  }
  .p-medical__feature {
    width: 100%;
    height: auto;
    padding: 8vw 5.3333vw 32vw;
  }
  .p-medical__feature-inner {
    position: static;
    inset: auto;
    gap: 5.3333vw;
    padding: 8vw 6.4vw;
  }
  .p-medical__feature-tit {
    font-size: 5.3333vw; /* 20px */
  }
  .p-medical__feature-tit span {
    font-size: 4vw; /* 15px */
  }
  .p-medical__feature-text {
    width: 100%;
    font-size: 3.7333vw; /* 14px */
  }
  .p-medical__more {
    width: 8vw;
    height: 8vw;
  }
  .p-medical__deco {
    width: 40.6vw; /* 152 */
    height: 40.6vw;
  }
  .p-medical__deco span {
    font-size: 4vw;
  }
  /* 上＝右の高め、下＝左の低め */
  .p-medical__deco--upper {
    left: 49vw;
    top: auto;
    bottom: 13.3vw;
  }
  .p-medical__deco--lower {
    left: 10.4vw;
    top: auto;
    bottom: 7.4667vw;
  }
  /* メニュー：2列グリッド */
  .p-medical__menu {
    padding-block: 13vw;
  }
  .p-medical__menu-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4vw;
    max-width: 89.3333vw;
  }
  .p-medical__card {
    width: auto;
    gap: 4vw;
    padding-block: 8vw;
  }
  .p-medical__card-tit {
    font-size: 1.4rem;
  }
  .p-medical__card-icon {
    width: 10.6667vw; /* 40 */
    height: 10.6667vw;
  }
  .p-medical__card-en {
    font-size: 3.2vw; /* 12px */
  }
  .p-medical__card::before {
    inset: 2.1333vw; /* 8px */
  }
  .p-medical__card::after {
    right: 2.1333vw;
    bottom: 2.1333vw;
    width: 5.3333vw;
    height: 5.3333vw;
  }

  /* ---- FLOW ---- */
  .p-flow {
    padding-block: 16vw;
  }
  .p-flow__head {
    margin-bottom: 6vw;
  }
  .p-flow__head .c-en-tit {
    font-size: 7.5vw;
  }
  .p-flow__sub {
    width: 89.3333vw;
    gap: 4vw;
  }
  .p-flow__sub span {
    font-size: 4.8vw;
  }
  /* タブは2列グリッド */
  .p-flow__tabs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4vw;
    max-width: 89.3333vw;
    margin-bottom: 8vw;
  }
  .p-flow__tab {
    flex: none;
    min-width: 0;
    padding: 2.6667vw;
  }
  /* カルーセル：1枚＋左右端に小さい矢印 */
  .p-flow__caption {
    min-height: 284px;
    padding: 5.3333vw;
  }
  .p-flow__caption-tit {
    font-size: 4.8vw;
    margin-bottom: 3.2vw;
  }
  .p-flow__caption-text {
    font-size: 3.4667vw; /* 13px */
  }
  .flow-slider .splide__arrow {
    width: 3.2vw; /* 12 */
    height: 5.3333vw; /* 20 */
  }
  .flow-slider .splide__arrow--prev {
    left: 1vw;
  }
  .flow-slider .splide__arrow--next {
    right: 1vw;
  }

  /* ---- GREETING（縦積み：写真→タイトル→白帯→本文） ---- */
  .p-greeting {
    min-height: 0;
    padding-block: 9.3333vw 16vw;
  }
  /* 薄い白の帯（写真・タイトルの下から） */
  .p-greeting::before {
    top: 111.7333vw; /* 419：タイトルの下 */
    height: 106.4vw; /* 399 */
  }
  .p-greeting__inner {
    flex-direction: column;
    align-items: center;
    gap: 7vw;
  }
  .p-greeting__img {
    order: -1; /* 写真を先頭（上）に */
    width: 65.28vw; /* 244.8 */
    height: 76.16vw; /* 285.6 */
    --tri-size: 35.36vw; /* 132.6 */
    --tri-x: -1.3333vw;
    --tri-y: -1.3333vw;
  }
  .p-greeting__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: none;
    gap: 4vw;
    width: 89.3333vw;
  }
  .p-greeting__en {
    width: 100%;
    margin-bottom: 6vw;
    font-size: 10.6667vw; /* 40px */
    text-align: center;
  }
  .p-greeting__lead {
    margin-bottom: 0;
    font-size: 4.8vw; /* 18px */
  }
  .p-greeting__text {
    margin-bottom: 0;
    font-size: 3.4667vw; /* 13px */
  }
  .p-greeting__name {
    align-items: baseline;
    gap: 2.6667vw;
    margin-top: 2vw;
  }
  .p-greeting__name-role {
    font-size: 5.3333vw; /* 20px */
  }
  /* 北村 太 / KITAMURA を縦積みに */
  .p-greeting__name-main {
    flex-direction: column;
    gap: 1.3333vw;
  }
  .p-greeting__name-ja {
    font-size: 6.4vw; /* 24px */
  }
  .p-greeting__name-en {
    font-size: 3.7333vw; /* 14px */
  }

  /* =====================
    FOOTER（SP）
  ===================== */
  /* 上部：ロゴ＋情報を縦積み・中央寄せ */
  .l-footer__head {
    background-image: url(../img/common/footer-bg-sp.jpg);
    padding-bottom: 10.6667vw; /* 40 */
  }
  .l-footer__logo {
    padding-top: 10.6667vw; /* 40 */
  }
  .l-footer__logo img {
    width: 60.2667vw; /* 226 */
  }
  .l-footer__info {
    flex-direction: column;
    align-items: center;
    gap: 5.3333vw; /* 20 */
    margin-top: 5.3333vw;
  }
  .l-footer__info-left {
    width: 89.3333vw; /* 335 */
    gap: 2.6667vw; /* 10 */
  }
  /* 住所バー */
  .c-footer-address__inner {
    font-size: 3.4667vw; /* 13 */
    padding: 2.6667vw 4vw;
  }
  /* 連絡先：縦積み・中央 */
  .c-footer-contacts {
    flex-direction: column;
    align-items: center;
    gap: 1.3333vw; /* 5 */
    width: 100%;
  }
  .c-footer-contacts .c-contact {
    width: 68vw; /* 255 */
    padding: 4vw 5.3333vw;
  }
  .c-footer-contacts .c-contact::after {
    inset: 1.3333vw; /* 5 */
  }
  .c-contact__label {
    font-size: 3.4667vw; /* 13 */
  }
  .c-contact__tel {
    gap: 2.4vw; /* 9 */
    font-size: 4.8vw; /* 18 */
  }
  .c-contact__icon {
    width: 6.6667vw; /* 25 */
    height: 6.6667vw;
  }
  .c-footer-train {
    width: 68vw; /* 255 */
    gap: 2.6667vw;
    padding: 4.6667vw 3vw;
  }
  .c-footer-train::after {
    inset: 1.3333vw;
  }
  .c-footer-train__icon {
    width: 8vw; /* 30 */
    height: 8vw;
  }
  .c-footer-train__text {
    font-size: 3.4667vw; /* 13 */
  }
  .c-footer-train__text .is-lg {
    font-size: 4.2667vw; /* 16 */
  }
  /* 診療時間テーブル */
  .c-footer-hours {
    width: 89.3333vw; /* 335 */
  }
  .c-footer-hours__row dt,
  .c-footer-hours__row dd {
    font-size: 3.4667vw; /* 13 */
    padding: 3.2vw 0;
  }
  .c-footer-hours__row--head dt,
  .c-footer-hours__row--head dd {
    padding: 6.4vw 0 2.6667vw; /* 24 / 10 */
  }
  .c-footer-hours__row:not(:last-child)::after {
    left: 3.2vw; /* 12 */
    right: 3.2vw;
  }
  .c-mark-open {
    width: 4vw; /* 15 */
    height: 4vw;
  }
  .c-mark-close {
    width: 3.2vw; /* 12 */
  }
  /* GOOGLE MAP */
  .c-footer-mapbtn {
    top: 5.3333vw; /* 20 */
    left: 5.3333vw;
    gap: 4vw;
    font-size: 3.7333vw; /* 14 */
    padding: 4vw 5.3333vw;
  }
  .c-footer-mapbtn__arrow {
    border-top-width: 1.0667vw;
    border-bottom-width: 1.0667vw;
    border-left-width: 1.8667vw;
  }
  .c-footer-mapframe iframe {
    height: 117.3333vw; /* 440 */
  }
  /* SITE MAP */
  .l-footer__sitemap {
    max-width: 89.3333vw; /* 335 */
    gap: 5.3333vw;
    margin: 13.3333vw auto; /* 50 */
  }
  .c-footer-sitemap__tit {
    font-size: 6.4vw; /* 24 */
    padding-bottom: 2.6667vw;
  }
  .c-footer-sitemap__list {
    gap: 5.3333vw; /* 20 */
  }
  .c-footer-sitemap__list a {
    font-size: 3.7333vw; /* 14 */
  }
  /* copyright */
  .c-footer-copy {
    font-size: 3.2vw; /* 12 */
    padding: 8vw 2.6667vw 37.3333vw; /* 30 / 140 */
  }
}
/* CSS Document */
