@charset "utf-8";
.u-pb10 {
  padding-bottom: 10px;
}
.u-pb15 {
  padding-bottom: 15px;
}
.u-pb20 {
  padding-bottom: clamp(10px, var(--px-20), 20px);
}
.u-pb30 {
  padding-bottom: clamp(15px, var(--px-30), 30px);
}
.u-pb40 {
  padding-bottom: clamp(20px, var(--px-40), 40px);
}
.u-pb50 {
  padding-bottom: clamp(25px, var(--px-50), 50px);
}
.u-pb60 {
  padding-bottom: clamp(30px, var(--px-60), 60px);
}
.u-pb70 {
  padding-bottom: clamp(30px, var(--px-70), 70px);
}
.u-pb80 {
  padding-bottom: clamp(40px, var(--px-80), 80px);
}
.u-pb90 {
  padding-bottom: clamp(40px, var(--px-90), 90px);
}
.u-pb100 {
  padding-bottom: clamp(50px, var(--px-100), 100px);
}
.u-pb120 {
  padding-bottom: clamp(50px, var(--px-120), 120px);
}
.u-mb10 {
  margin-bottom: 10px;
}
.u-mb15 {
  margin-bottom: 15px;
}
.u-mb20 {
  margin-bottom: clamp(10px, var(--px-20), 20px);
}
.u-mb30 {
  margin-bottom: clamp(15px, var(--px-30), 30px);
}
.u-mb40 {
  margin-bottom: clamp(20px, var(--px-40), 40px);
}
.u-mb50 {
  margin-bottom: clamp(25px, var(--px-50), 50px);
}
.u-mb60 {
  margin-bottom: clamp(30px, var(--px-60), 60px);
}
.u-mb70 {
  margin-bottom: clamp(30px, var(--px-70), 70px);
}
.u-mb80 {
  margin-bottom: clamp(40px, var(--px-80), 80px);
}
.u-mb90 {
  margin-bottom: clamp(40px, var(--px-90), 90px);
}
.u-mb100 {
  margin-bottom: clamp(50px, var(--px-100), 100px);
}
.u-mb120 {
  margin-bottom: clamp(50px, var(--px-120), 120px);
}

/* =====================================================
  下層共通：メインビジュアル（c-mv / テキストのみ差し替え）
===================================================== */
.c-mv {
  position: relative;
  z-index: 5; /* 下に浮くナビ／診療案内ドロワーを後続セクションより前面に */
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(240px, 30.5556vw, 440px); /* 440 */
  margin-bottom: clamp(
    48px,
    var(--px-120),
    120px
  ); /* MV下に浮くナビの下半分ぶん */
  background-size: cover;
  background-position: center;
  isolation: isolate;
}
/* MV下に浮くナビバー（下層共通） */
.c-mv .c-gnav {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 50%);
  width: 88.8889vw;
  max-width: 1280px;
  background: #fff;
  box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25);
  padding-block: clamp(16px, 2.0833vw, 30px);
  z-index: 4;
}
/* 左下のストライプ三角（トップMVと同様。暗幕の上に出るので白系で視認性を確保） */
.c-mv::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 45%;
  height: 62%;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  background: repeating-linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.4) 0,
    rgba(255, 255, 255, 0.4) 4px,
    transparent 4px,
    transparent 7px
  );
  pointer-events: none;
  z-index: -1;
}
.c-mv__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 1.3889vw, 20px);
  color: #fff;
  text-align: center;
}
.c-mv__ja {
  font-size: clamp(28px, 3.3333vw, 48px); /* 48 */
  line-height: 1.2;
}
.c-mv__en {
  font-family: "Cinzel", serif;
  font-size: clamp(20px, 2.2222vw, 32px); /* 32 */
  line-height: 1.2;
}
/* =====================================================
  下層共通：セクション見出し帯（c-sec-band）
===================================================== */
.c-sec-band {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(64px, 6.9444vw, 100px); /* 100 */
  background: #c9b99f;
  overflow: hidden;
}
.c-sec-band__tit {
  color: #725e54;
  font-size: clamp(20px, 2.2222vw, 32px); /* 32 */
  line-height: 1.2;
}
/* 両端：上下の三角を端で交差させたリボン状装飾 */
.c-sec-band__deco {
  position: absolute;
  top: 0;
  height: 100%;
  width: clamp(64px, 11.1111%, 160px);
}
.c-sec-band__deco--left {
  left: 0;
}
.c-sec-band__deco--right {
  right: 0;
}
.c-sec-band__deco::before,
.c-sec-band__deco::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 62%;
}
.c-sec-band__deco::before {
  top: 0;
}
.c-sec-band__deco::after {
  bottom: 0;
}
.c-sec-band__deco--left::before {
  clip-path: polygon(0 0, 100% 0, 0 100%);
  background: #6b4e3e;
  z-index: 2;
}
.c-sec-band__deco--left::after {
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  background: #9c7b5c;
}
.c-sec-band__deco--right::before {
  clip-path: polygon(100% 0, 0 0, 100% 100%);
  background: #6b4e3e;
  z-index: 2;
}
.c-sec-band__deco--right::after {
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  background: #9c7b5c;
}

/* =====================================================
  画像＋テキストの交互レイアウト（c-media：下層共通で再利用）
===================================================== */
.c-media-list {
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 6.9444vw, 100px);
  padding: clamp(48px, 6.9444vw, 100px) 0 clamp(40px, var(--px-80), 80px);
}
.c-media {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(24px, 4.1667vw, 60px);
  /* max-width: 94.4444vw;
  margin-inline: auto; */
  isolation: isolate;
}
.c-media--reverse {
  flex-direction: row-reverse;
}
.c-media__img {
  position: relative;
  flex-shrink: 0;
  width: 41.6667vw; /* 600 */
  max-width: 600px;
  /* 画像を画面端までブリード（後続のテキストもこの分だけ画像側へ寄る） */
  margin-left: calc((100% - 100vw) / 2);
  transform: translateY(
    -4.9306vw
  ); /* 中央から上へ約71px（背景はテキスト中央のまま画像だけ段違い） */
}
/* 画像が右のときは右端までブリード */
.c-media--reverse .c-media__img {
  margin-left: 0;
  /* margin-right: calc((100% - 100vw) / 2); */
}
.c-media__img img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
/* コーナーの三角装飾（トップと同じ #c9b99f）。
   画像が左→右下、画像が右→左下 */
.c-media__img::after {
  content: "";
  position: absolute;
  bottom: -1.3889vw;
  width: clamp(100px, 18.0556vw, 260px); /* 260 */
  aspect-ratio: 1 / 1;
  background: #c9b99f;
  z-index: -1;
}
.c-media__img::after {
  right: -1.3889vw;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.c-media--reverse .c-media__img::after {
  right: auto;
  left: -1.3889vw;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.c-media__body {
  position: relative;
  flex: 1;
  /* 左右パディングは外す（画像〜テキストの距離は .c-media の gap=60px のみ） */
  padding-block: clamp(24px, 3.4722vw, 50px);
}
.c-media--reverse .c-media__body {
  max-width: var(--px-480);
  margin-right: clamp(24px, 4.1667vw, 60px);
}
/* 背景：斜め2トーンのストライプ風パネル（太枠つき）。
   画像の左右位置に関係なく、画面フル幅で左端までブリードし、右だけ80px空ける */
.c-media::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0; /* 行＝テキストの上下中央に合わせる */
  bottom: 0;
  left: calc(50% - 50vw); /* 画面左端まで */
  width: calc(100vw - clamp(24px, 5.5556vw, 80px)); /* 画面フル幅 − 右80px */
  background: linear-gradient(202.76deg, #ededed 39.404%, #d9d9d9 39.404%);
  border: clamp(8px, 1.3889vw, 20px) solid #d9d9d9;
}
/* 画像が右のときは斜めの向き（背景の三角）を左右反転 */
.c-media--reverse::before {
  background: linear-gradient(157.24deg, #ededed 39.404%, #d9d9d9 39.404%);
}
.c-media__tit {
  margin-bottom: clamp(12px, 1.3889vw, 20px);
  font-size: clamp(22px, 2.2222vw, 32px); /* 32 */
  line-height: 1.8;
  letter-spacing: 0;
  max-width: var(--px-508);
}
.c-media__tit.fs24 {
  font-size: clamp(18px, var(--px-24), 24px);
}
.c-media__text {
  font-size: clamp(14px, 1.1111vw, 16px); /* 16 */
  line-height: 2;
  max-width: var(--px-480);
  letter-spacing: 0;
}

/* =====================================================
  治療・検査設備（c-equip-card）
===================================================== */
.p-clinic__equip {
  padding: 0 0 clamp(48px, 6.9444vw, 100px);
}
.c-equip-list {
  --gap: clamp(24px, 2.7778vw, 40px);
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap);
  max-width: 88.8889vw; /* 1280 */
  margin-inline: auto;
}
.c-equip-card {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.3889vw, 20px);
  width: calc((100% - var(--gap) * 2) / 3);
  background: #eeeae4;
  padding: clamp(14px, 1.3889vw, 20px);
}
.c-equip-card__img {
  width: 100%;
  height: clamp(180px, 19.4444vw, 280px); /* 280 */
}
.c-equip-card__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-equip-card__tit {
  text-align: center;
  font-size: clamp(18px, 1.6667vw, 24px); /* 24 */
  line-height: 1.2;
}
.c-equip-card__text {
  font-size: clamp(14px, 1.1111vw, 16px); /* 16 */
  line-height: 2;
}

/* =====================================================
  施設基準（c-standard）
===================================================== */
.p-clinic__standard {
  padding-bottom: clamp(60px, 8.3333vw, 120px);
}
.c-standard {
  margin-top: clamp(24px, 2.7778vw, 40px);
  background: #eeeae4;
  padding: clamp(40px, 5.5556vw, 80px) 0;
}
.c-standard__list {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.3889vw, 20px);
  max-width: 88.8889vw;
  margin-inline: auto;
}
.c-standard__item {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.6944vw, 10px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(15px, 1.25vw, 18px); /* 18 */
  line-height: 1.4;
}
.c-standard__mark {
  flex-shrink: 0;
  width: clamp(14px, 1.3889vw, 20px);
  height: clamp(14px, 1.3889vw, 20px);
  border-radius: 50%;
  background: #c9b99f;
}

/* =====================================================
  院長・歯科医師紹介（p-staff）
===================================================== */
.p-staff__greeting-inner {
  background: #eeeae4;
  padding: clamp(30px, var(--px-60), 60px) 5.5556vw;
}
.p-staff__greeting-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(32px, 4.1667vw, 60px);
  max-width: 83.3333vw; /* 1200 */
  margin-inline: auto;
}
.p-staff__greeting-body {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.3889vw, 20px);
}
.p-staff__lead {
  font-size: clamp(22px, 2.2222vw, 32px); /* 32 */
  line-height: 1.8;
}
.p-staff__desc {
  max-width: 480px;
  font-size: clamp(14px, 1.1111vw, 16px); /* 16 */
  line-height: 2;
}
.p-staff__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: clamp(12px, 1.3889vw, 20px);
  margin-top: clamp(8px, 1.3889vw, 20px);
}
.p-staff__name-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(96px, 8.3333vw, 120px);
  padding: clamp(6px, 0.6944vw, 10px) 0;
  background: #fff;
  font-size: clamp(15px, 1.25vw, 18px); /* 18 */
  font-weight: 500;
  letter-spacing: 0.2em;
}
.p-staff__name-ja {
  font-size: clamp(22px, 2.2222vw, 32px); /* 32 */
  font-weight: 500;
  letter-spacing: 0.1em;
}
.p-staff__name-en {
  color: #9c7b5c;
  font-size: clamp(13px, 1.0417vw, 15px); /* 15 */
  letter-spacing: 0.1em;
}
/* 写真＋対角の三角フレーム（左上・右下） */
.c-staff-photo {
  position: relative;
  flex-shrink: 0;
  width: 30.5556vw; /* 440 */
  max-width: 440px;
}
.c-staff-photo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.c-staff-photo::before,
.c-staff-photo::after {
  content: "";
  position: absolute;
  width: clamp(110px, 18.0556vw, 260px); /* 260 */
  aspect-ratio: 1 / 1;
  background: #c9b99f;
  z-index: 0;
}
/* 左上 */
.c-staff-photo::before {
  top: -1.3889vw;
  left: -1.3889vw;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
/* 右下 */
.c-staff-photo::after {
  bottom: -1.3889vw;
  right: -1.3889vw;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

/* =====================================================
  診療時間・アクセス（p-access）
===================================================== */
/* クリニック概要：画像＋情報テーブル */
.p-access__overview-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 2.7778vw, 40px);
  padding: clamp(48px, 6.9444vw, 100px) 5.5556vw;
}
.p-access__overview-img {
  flex-shrink: 0;
  width: 41.6667vw; /* 600 */
  max-width: 600px;
}
.p-access__overview-img img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.c-info-table {
  display: flex;
  flex-direction: column;
}
.c-info-table__row {
  display: flex;
  /* dt・dd の間を10px空ける（下線もその分切れる） */
  gap: clamp(6px, 0.6944vw, 10px);
}
.c-info-table dt,
.c-info-table dd {
  display: flex;
  align-items: center;
  border-bottom: 1px solid #9c7b5c;
  color: #9c7b5c;
  font-size: clamp(14px, 1.1111vw, 16px); /* 16 */
  font-weight: 500;
  line-height: 1.4;
  padding: clamp(14px, 1.3889vw, 20px);
}
.c-info-table dt {
  flex: 0 0 clamp(96px, 10.4167vw, 150px); /* 150 */
  justify-content: center;
  white-space: nowrap;
}
.c-info-table dd {
  flex: 1;
}

/* 診療時間テーブル（下層共通 c-hours） */
.p-access__hours-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2.0833vw, 30px);
  background: #eeeae4;
  padding: clamp(40px, 5.5556vw, 80px) 5.5556vw;
}
.c-hours-wrap {
  width: min(100%, 1120px);
  overflow-x: auto;
}
.c-hours {
  width: 100%;
  min-width: 560px;
  background: #fff;
  border: 1px solid #725e54;
}
.c-hours__row {
  position: relative;
  display: flex;
}
.c-hours__row dt,
.c-hours__row dd {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 400;
  font-size: clamp(15px, 1.6667vw, 24px); /* 24 */
  text-align: center;
  padding: clamp(14px, 1.5278vw, 22px) 0;
}
/* 1列目（時間ラベル）は22% */
.c-hours__row dt {
  flex: 0 0 22%;
  letter-spacing: 0;
}
/* 見出し行は上下paddingを大きめに */
.c-hours__row--head dt,
.c-hours__row--head dd {
  padding: clamp(20px, 2.7778vw, 40px) 0 clamp(10px, 1.3889vw, 20px);
}
/* 行間の区切り線：左右を40px内側に */
.c-hours__row:not(:last-child)::after {
  content: "";
  position: absolute;
  left: clamp(16px, 2.7778vw, 40px);
  right: clamp(16px, 2.7778vw, 40px);
  bottom: 0;
  height: 1px;
  background: #c9b99f;
}
.p-access__closed {
  width: min(100%, 1120px);
  font-size: clamp(15px, 1.3889vw, 20px); /* 20 */
}

/* MAP・アクセス */
.c-map {
  position: relative;
  background: #e2e2e2;
}
.c-map__btn {
  position: absolute;
  top: clamp(20px, 2.7778vw, 40px);
  left: clamp(20px, 2.7778vw, 40px);
  z-index: 1;
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.3889vw, 20px);
  background: #fff;
  border: 1px solid #9c7b5c;
  color: #9c7b5c;
  font-family: "Cinzel", serif;
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
  letter-spacing: 0.1em;
  padding: clamp(12px, 1.0417vw, 15px) clamp(18px, 2.0833vw, 30px);
}
.c-map__arrow {
  width: 0;
  height: 0;
  border-top: 0.4167vw solid transparent;
  border-bottom: 0.4167vw solid transparent;
  border-left: 0.6944vw solid #9c7b5c;
}
.c-map__frame iframe {
  display: block;
  width: 100%;
  height: clamp(300px, 30.5556vw, 440px);
  border: 0;
}
.p-access__train {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.6944vw, 10px);
  max-width: 88.8889vw; /* 1280 */
  margin: clamp(24px, 2.7778vw, 40px) auto clamp(48px, 6.9444vw, 100px);
  background: #eeeae4;
  padding: clamp(14px, 1.3889vw, 20px) clamp(10px, 1.3889vw, 20px);
}
.p-access__train-icon {
  flex-shrink: 0;
  width: clamp(14px, 1.1111vw, 16px);
}
.p-access__train-icon img {
  display: block;
  width: 100%;
  height: auto;
}
.p-access__train p {
  font-size: clamp(15px, 1.3889vw, 20px); /* 20 */
  letter-spacing: 0.1em;
}

/* =====================================================
  採用情報（p-recruit）
===================================================== */
.p-recruit__prep {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(140px, 15.1389vw, 218px); /* 218 */
  margin-bottom: clamp(60px, 8.3333vw, 120px);
  background: #eeeae4;
  padding: clamp(40px, 4.1667vw, 60px) 5.5556vw;
}
.p-recruit__prep-text {
  font-size: clamp(28px, 3.3333vw, 48px); /* 48 */
  line-height: 1.2;
}

/* =====================================================
  診療案内（p-medical / 各疾患セクション共通パーツ）
===================================================== */
/* 区切り見出しバー（上下2本線） */
.c-med-head {
  width: 88.8889vw;
  margin: clamp(48px, 6.9444vw, 100px) auto clamp(28px, 3.4722vw, 50px);
  padding: clamp(14px, 1.3889vw, 20px) 10px;
  border-top: 2px solid #9c7b5c;
  border-bottom: 2px solid #9c7b5c;
  text-align: center;
  font-size: clamp(20px, 1.9444vw, 28px); /* 28 */
  line-height: 1.2;
}
/* テキスト＋画像の行 */
.c-med-row {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, 2.7778vw, 40px);
  max-width: 88.8889vw; /* 1280 */
  margin: clamp(28px, 3.4722vw, 50px) auto;
}
.c-med-row__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(14px, 1.3889vw, 20px);
  flex: 1;
}
.c-med-row__head {
  color: #9c7b5c;
  font-size: clamp(18px, 1.6667vw, 24px); /* 24 */
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.c-med-row__line {
  width: clamp(120px, 16.6667vw, 240px);
  height: 1px;
  background: #9c7b5c;
}
.c-med-row__text {
  font-size: clamp(14px, 1.0417vw, 15px); /* 15 */
  line-height: 2;
  letter-spacing: 0.1em;
}
.c-med-row__img {
  flex-shrink: 0;
  width: 41.6667vw; /* 600 */
  max-width: 600px;
}
.c-med-row__img img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* 原因リスト（#eeeae4 背景） */
.p-medical__cause {
  background: #eeeae4;
  padding: clamp(40px, 5.5556vw, 80px) 5.5556vw;
}
.c-med-cause-list {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 2.7778vw, 40px);
  max-width: 77.7778vw; /* 1120 */
  margin-inline: auto;
}
.c-med-cause__head {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.6944vw, 10px);
  padding-bottom: clamp(10px, 1.0417vw, 15px);
  border-bottom: 2px solid #9c7b5c;
}
.c-med-cause__title {
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
}
.c-med-cause__text {
  margin-top: clamp(12px, 1.3889vw, 20px);
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
/* 歯アイコン（枠線で表現） */
.c-tooth-icon {
  flex-shrink: 0;
  width: clamp(22px, 2.0833vw, 30px);
  height: clamp(22px, 2.0833vw, 30px);
  border: solid #9c7b5c;
  border-width: 2px 4px 4px 2px;
}

/* 進行度カード（C0〜C4） */
.c-med-stages {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 88.8889vw; /* 1280 */
  margin-inline: auto;
}
.c-med-stage {
  width: 100%;
}
.c-med-stage:not(:last-child) {
  position: relative;
  margin-bottom: clamp(48px, 5.5556vw, 80px);
}
.c-med-stage:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: clamp(6px, 0.6944vw, 16px);
  width: clamp(40px, 4.1667vw, 60px);
  height: clamp(26px, 2.7778vw, 40px);
  background: #c9b99f;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.c-med-stage__inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(24px, 2.7778vw, 40px);
  background: #eeeae4;
  padding: clamp(28px, 2.7778vw, 40px) clamp(40px, 5.5556vw, 80px);
}
.c-med-stage__body {
  flex: 1;
  max-width: 840px;
}
.c-med-stage__head {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.6944vw, 10px);
  margin-bottom: clamp(12px, 1.3889vw, 20px);
  border-bottom: 2px solid #9c7b5c;
}
.c-med-stage__num {
  font-family: "Cinzel", serif;
  font-weight: 700;
  font-size: clamp(24px, 2.2222vw, 32px); /* 32 */
  letter-spacing: 0.05em;
  /* 塗りは透明、#c9b99f で縁取り（グリフのアウトラインを描くので
     「4」などの交差部も内側の穴は透明のまま重ならない） */
  color: transparent;
  -webkit-text-stroke: 1px #c9b99f;
  paint-order: stroke fill;
}
.c-med-stage__title {
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
}
.c-med-stage__text {
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
.c-med-stage__img {
  flex-shrink: 0;
  width: clamp(140px, 16.6667vw, 240px); /* 240 */
}
.c-med-stage__img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* 茶色リンクボタン（▶） */
.c-link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.6944vw, 10px);
  width: clamp(160px, 13.8889vw, 200px);
  padding: clamp(10px, 0.6944vw, 12px);
  background: #6b4e3e;
  color: #fff;
  font-size: clamp(14px, 1.1111vw, 16px); /* 16 */
}
.c-link-btn__arrow {
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid #fff;
}
.c-media__body .c-link-btn {
  margin-top: clamp(16px, 1.3889vw, 20px);
}

/* 治療法リスト：アイコン見出し＋本文＋小画像（#eeeae4内で使用） */
.c-med-treat-list {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 2.7778vw, 40px);
  max-width: 77.7778vw; /* 1120 */
  margin-inline: auto;
}
.c-med-treat {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, 2.7778vw, 40px);
}
.c-med-treat__body {
  flex: 1;
}
.c-med-treat__head {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.6944vw, 10px);
  padding-bottom: clamp(10px, 1.0417vw, 15px);
  border-bottom: 2px solid #9c7b5c;
}
.c-med-treat__title {
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
}
.c-med-treat__text {
  margin-top: clamp(12px, 1.3889vw, 20px);
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
.c-med-treat__img {
  flex-shrink: 0;
  width: clamp(140px, 16.6667vw, 240px); /* 240 */
}
.c-med-treat__img img {
  display: block;
  width: 100%;
  height: clamp(110px, 11.1111vw, 160px); /* 160 */
  object-fit: cover;
}

/* 予防処置カード（枠付き3カラム） */
.c-prevent-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 2.7778vw, 40px);
  max-width: 88.8889vw; /* 1280 */
  margin-inline: auto;
}
.c-prevent-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.3889vw, 20px);
  width: calc((100% - clamp(48px, 5.5556vw, 80px)) / 3);
  border: 1px solid #725e54;
  padding: clamp(14px, 1.3889vw, 20px);
}
.c-prevent-card__img {
  width: 100%;
  height: clamp(180px, 16.6667vw, 240px); /* 240 */
}
.c-prevent-card__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-prevent-card__title {
  text-align: center;
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
}
.c-prevent-card__text {
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
/* 2択カード（画像＋見出し＋本文＋ボタン） */
.c-choice-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 2.7778vw, 40px);
  max-width: 88.8889vw;
  margin-inline: auto;
}
.c-choice-cards .c-prevent-card {
  width: clamp(280px, 30.5556vw, 400px); /* 400 */
}

/* 重要性ボックス（白・影付き＋番号リスト） */
.c-merit {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.0833vw, 30px);
  max-width: 88.8889vw; /* 1280 */
  margin: clamp(28px, 3.4722vw, 50px) auto;
  background: #fff;
  box-shadow: 4px 4px 15px rgba(114, 94, 84, 0.4);
  padding: clamp(28px, 2.7778vw, 40px) clamp(28px, 4.1667vw, 60px);
}
.c-line-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 4.1667vw, 60px);
  text-align: center;
  font-size: clamp(18px, 1.6667vw, 24px); /* 24 */
  line-height: 1.2;
}
.c-line-heading::before,
.c-line-heading::after {
  content: "";
  flex: 1;
  height: 2px;
  background: #9c7b5c;
}
.c-merit__list {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.0833vw, 30px);
}
.c-merit__item {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.3889vw, 20px);
}
.c-merit__num {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 3.4722vw, 50px);
  height: clamp(40px, 3.4722vw, 50px);
  border: 2px solid #9c7b5c;
  color: #9c7b5c;
  font-weight: 700;
  font-size: clamp(18px, 1.6667vw, 24px); /* 24 */
}
.c-merit__text {
  font-size: clamp(15px, 1.3889vw, 20px); /* 20 */
  line-height: 1.5;
}
/* 重要性ボックス内のリード文・丸ポチ注意書きリスト */
.c-merit__lead {
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
.c-merit__notes {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.3889vw, 20px);
}
.c-merit__note {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 0.6944vw, 10px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 1.6;
}
.c-merit__note::before {
  content: "";
  flex-shrink: 0;
  width: clamp(16px, 1.3889vw, 20px);
  height: clamp(16px, 1.3889vw, 20px);
  margin-top: 0.15em;
  border-radius: 50%;
  background: #9c7b5c;
}

/* 素材・治療法の詳細（説明＋画像／メリット・デメリットの白枠カード） */
.p-medical__material {
  background: #eeeae4;
  padding: clamp(48px, 6.9444vw, 100px) 0;
}
/* 見出しが帯内の先頭にある場合は二重余白を防ぐ */
.p-medical__material > .c-med-head:first-child {
  margin-top: 0;
}
.c-spec-list {
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 6.9444vw, 100px);
  max-width: 77.7778vw; /* 1120 */
  margin-inline: auto;
}
.c-spec {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 2.7778vw, 40px);
}
/* 上段：説明＋画像 */
.c-spec__main {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, 2.7778vw, 40px);
}
.c-spec__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.0417vw, 15px);
}
.c-spec__head {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.6944vw, 10px);
  padding-bottom: clamp(10px, 1.0417vw, 15px);
  border-bottom: 2px solid #9c7b5c;
}
.c-spec__title {
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
}
.c-spec__text {
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 2;
  letter-spacing: 0.1em;
}
.c-spec__meta {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(16px, 2.7778vw, 40px);
}
.c-spec__meta-item {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.0417vw, 15px);
}
.c-spec__meta-label {
  border: 1px solid #725e54;
  padding: clamp(3px, 0.3472vw, 5px) clamp(8px, 0.6944vw, 10px);
  font-size: clamp(13px, 1.0417vw, 15px);
  white-space: nowrap;
}
.c-spec__meta-value {
  font-size: clamp(13px, 1.0417vw, 15px);
  white-space: nowrap;
}
.c-spec__img {
  flex-shrink: 0;
  width: clamp(180px, 19.4444vw, 280px); /* 280 */
}
.c-spec__img img {
  display: block;
  width: 100%;
  height: clamp(160px, 15.2778vw, 220px); /* 220 */
  object-fit: cover;
}
/* 下段：メリット／デメリットの白枠カード */
.c-spec__pn {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 2.7778vw, 40px);
}
.c-spec__card {
  flex: 1;
  min-width: 300px;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.0833vw, 30px);
  background: #fff;
  border: 1px solid #725e54;
  padding: clamp(16px, 1.3889vw, 20px) clamp(20px, 2.0833vw, 30px);
}
.c-spec__card-head {
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 0.6944vw, 10px);
  color: #725e54;
}
.c-spec__card-en {
  font-family: "Cinzel", serif;
  font-size: clamp(24px, 2.2222vw, 32px); /* 32 */
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.c-spec__card-ja {
  font-size: clamp(16px, 1.3889vw, 20px); /* 20 */
  letter-spacing: 0.1em;
}
.c-spec__card-list {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.3889vw, 20px);
}
.c-spec__card-item {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 0.6944vw, 10px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(14px, 1.0417vw, 15px);
  line-height: 1.6;
  color: #725e54;
}
.c-spec__card-item::before {
  content: "";
  flex-shrink: 0;
  width: clamp(16px, 1.3889vw, 20px);
  height: clamp(16px, 1.3889vw, 20px);
  margin-top: 0.15em;
  border-radius: 50%;
  background: #9c7b5c;
}
.c-spec__card--demerit .c-spec__card-item::before {
  background: #c9b99f;
}

/* 料金表（茶ラベル｜ベージュ金額の2列） */
.c-price {
  width: min(100%, 1120px);
  margin-inline: auto;
}
.c-price__row {
  display: flex;
}
.c-price__label {
  flex-shrink: 0;
  width: clamp(120px, 22.2222vw, 320px); /* 320 */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: #9c7b5c;
  color: #fff;
  border-bottom: 1px solid #eeeae4;
  padding: clamp(12px, 1.3889vw, 20px) clamp(8px, 0.6944vw, 10px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(13px, 1.0417vw, 15px);
  line-height: 1.6;
}
.c-price__value {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  background: #eeeae4;
  color: #725e54;
  border-bottom: 1px solid #9c7b5c;
  padding: clamp(12px, 1.3889vw, 20px) clamp(16px, 2.7778vw, 40px);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(13px, 1.0417vw, 15px);
}

/* 820px から：浮くナビを非表示にしてヘッダーのハンバーガーに集約 */
@media screen and (max-width: 820px) {
  .c-mv .c-gnav {
    display: none;
  }
}

/* ===== 下層 SP（スマホ用にいい感じに調整） ===== */
@media screen and (max-width: 680px) {
  .c-media-list {
    padding: 12vw 0;
    gap: 14vw;
  }
  /* SPは front-page の .p-feature__02 と同じデザイン：
     上にテキスト・下に画像、ベタのグレー＋明るい三角ウェッジ＋太枠 */
  .c-media,
  .c-media--reverse {
    flex-direction: column-reverse; /* 上：テキスト / 下：画像 */
    align-items: center;
    gap: 0;
    max-width: 100%;
  }
  .c-media--reverse .c-media__body {
    max-width: 100%;
  }
  /* パネル：ベタのグレー＋8vwの太枠 */
  .c-media::before {
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: auto;
    background: #d9d9d9;
    border: none;
    box-shadow: inset 0 0 0 8vw #d9d9d9;
  }
  /* 上が広く下に細くなる明るい三角ウェッジ（枠の内側 8vw から） */
  .c-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: #ededed;
    clip-path: polygon(37% 8vw, 91% 8vw, 91% 84%);
    pointer-events: none;
  }
  .c-media__body {
    position: relative;
    z-index: 1;
    width: 80vw;
    margin: 0 auto;
    padding: 12vw 0 8vw;
    text-align: center;
  }
  .c-media__tit {
    text-align: center;
    width: 100%;
    max-width: none;
  }
  .c-media__text {
    max-width: none;
    text-align: left;
  }
  /* 画像は下に配置して下枠をまたいではみ出す */
  .c-media__img,
  .c-media--reverse .c-media__img {
    position: relative;
    z-index: 1;
    width: 66vw;
    max-width: none;
    margin: 0 auto -8vw;
    transform: none;
  }
  /* 三角装飾は画像コーナーに（控えめ） */
  .c-media__img::after {
    width: 16vw;
    bottom: -3vw;
    right: -3vw;
  }
  .c-media--reverse .c-media__img::after {
    right: auto;
    left: -3vw;
  }
  .c-equip-list {
    --gap: 6vw;
  }
  .c-equip-card {
    width: 100%;
  }
  .c-standard__list {
    max-width: 88vw;
  }
  /* 院長挨拶：縦積み（テキスト→写真） */
  .p-staff__greeting-row {
    flex-direction: column;
    gap: 8vw;
    max-width: 100%;
  }
  .p-staff__desc {
    max-width: none;
  }
  .c-staff-photo {
    width: 80vw;
    max-width: 440px;
  }
  .c-staff-photo::before,
  .c-staff-photo::after {
    width: 24vw;
  }
  .c-staff-photo::before {
    top: -3vw;
    left: -3vw;
  }
  .c-staff-photo::after {
    bottom: -3vw;
    right: -3vw;
  }
  /* 概要：画像→テーブルを縦積み */
  .p-access__overview-inner {
    flex-direction: column;
    gap: 8vw;
    padding: 12vw 6vw;
  }
  .p-access__overview-img {
    width: 100%;
    max-width: none;
  }
  .c-info-table {
    width: 100%;
  }
  /* 診療時間：横スクロールせず、フッターSPと同じく画面内に収める */
  .p-access__hours-inner {
    padding: 10vw 4vw;
  }
  .c-hours-wrap {
    overflow-x: visible;
  }
  .c-hours {
    min-width: 0;
  }
  .c-hours__row dt,
  .c-hours__row dd {
    font-size: 3.4667vw; /* 13 */
    padding: 3.2vw 0;
  }
  .c-hours__row--head dt,
  .c-hours__row--head dd {
    padding: 6.4vw 0 2.6667vw; /* 24 / 10 */
  }
  .c-hours__row:not(:last-child)::after {
    left: 3.2vw;
    right: 3.2vw;
  }
  .c-hours__row dt {
    flex: 0 0 28%;
  }
  /* アクセスバー：折り返し可 */
  .p-access__train {
    max-width: 92vw;
    flex-wrap: wrap;
    text-align: center;
  }

  /* 診療案内：テキスト＋画像を縦積み */
  .c-med-row {
    flex-direction: column;
    gap: 6vw;
  }
  .c-med-row__img {
    width: 100%;
    max-width: none;
  }
  .p-medical__cause {
    padding: 10vw 6vw;
  }
  .c-med-cause-list {
    max-width: 100%;
  }
  .c-med-stages {
    max-width: 100%;
    padding: 0 6vw;
  }
  /* 進行度カード：縦積み */
  .c-med-stage__inner {
    flex-direction: column;
    align-items: center;
    gap: 6vw;
    padding: 8vw 6vw;
  }
  .c-med-stage__body {
    max-width: none;
    width: 100%;
  }
  .c-med-stage__img {
    width: 50vw;
    max-width: 240px;
  }
  /* 治療法リスト：縦積み */
  .c-med-treat-list {
    max-width: 100%;
  }
  .c-med-treat {
    flex-direction: column;
    gap: 5vw;
  }
  .c-med-treat__img {
    width: 100%;
  }
  .c-med-treat__img img {
    height: auto;
    aspect-ratio: 3 / 2;
  }
  /* 予防処置カード：1カラム */
  .c-prevent-cards {
    max-width: 100%;
  }
  .c-prevent-card {
    width: 100%;
  }
  /* 重要性ボックス */
  .c-merit {
    padding: 9vw 6vw;
  }
  .c-merit__item {
    align-items: flex-start;
  }
  /* 素材詳細・料金表 */
  .c-spec-list {
    max-width: 88vw;
  }
  .c-spec__main {
    flex-direction: column;
    gap: 5vw;
  }
  .c-spec__img {
    width: 100%;
  }
  .c-spec__img img {
    height: auto;
    aspect-ratio: 14 / 11;
  }
  .c-spec__pn {
    flex-direction: column;
  }
  .c-spec__card {
    min-width: 0;
  }
  .c-price {
    width: 88vw;
  }
  .c-price__label {
    width: 32vw;
  }
}
