@charset "utf-8";
/* ==========================================================
   画像コーディング → テキスト化（2026-11 修正）
   デザイン基準：XD「TOP20250308修正」PC=1920幅 / SP=430幅
   --u は PC デザインの 1px、--s は SP デザインの 1px
   ========================================================== */
:root {
  --u: min(1px, calc(100vw / 1920));
  --s: calc(100vw / 430);
  --blue: #069dd4;
  --navy: #0f285c;
  --gold: #9d783d;
  --gray: #e9e9e9;
  --beige: #ebe4d8;
  --bg-gray: #f2f2f2;
  --mincho: "Yu Mincho", "YuMincho", "游明朝", "游明朝体", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "Noto Serif JP", serif;
  --sans: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴシック", "Yu Gothic", "游ゴシック", sans-serif;
  --num: "Cormorant Garamond", "Footlight MT", "Times New Roman", serif;
}
.t-mincho { font-family: var(--mincho); }
.t-sans { font-family: var(--sans); }

/* ---------- 共通ボタン（電話・WEB予約） ---------- */
.btn-tel,
.btn-web {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: var(--mincho);
  line-height: 1.3;
  text-decoration: none;
}
.btn-tel {
  background: var(--gray);
  color: var(--blue);
  box-shadow: inset 0 0 0 4px var(--gray), inset 0 0 0 5px var(--blue);
}
.btn-tel__label { font-size: 0.5em; letter-spacing: 0.08em; }
.btn-tel__num {
  display: flex;
  align-items: center;
  gap: 0.6em;
  font-size: 1em;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.btn-tel__num::before {
  content: "\f095";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  display: grid;
  place-items: center;
  width: 1.4em;
  height: 1.4em;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 0.55em;
  transform: scaleX(-1);
}
.btn-tel--gold .btn-tel__label { color: var(--gold); }
.btn-web {
  background: var(--blue);
  color: #fff;
  box-shadow: inset 0 0 0 4px var(--blue), inset 0 0 0 5px #fff;
}
.btn-web::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  border-style: solid;
  border-width: 0 0 0.55em 0.55em;
  border-color: transparent transparent #fff transparent;
}
.btn-web__24 { font-size: 0.55em; white-space: nowrap; }
.btn-web__icon::before {
  content: "\f109";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 0.8em;
}
.btn-web__icon { font-size: 1.1em; line-height: 1.1; }
.btn-web__label { font-size: 1em; letter-spacing: 0.04em; white-space: nowrap; }

/* ヘッダー */
.h-contact {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: calc(var(--u) * 10);
}
.h-contact .btn-tel { width: calc(var(--u) * 428); height: calc(var(--u) * 122); font-size: calc(var(--u) * 39); }
.h-contact .btn-web { width: calc(var(--u) * 216); height: calc(var(--u) * 122); font-size: calc(var(--u) * 22); }

/* ---------- MV ---------- */
.mv {
  position: relative;
  height: calc(100vw * 931 / 1920);
  overflow: hidden;
  line-height: 1;
}
.mv__photo {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.mv__photo img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}
.mv__photo--left { clip-path: polygon(0 0, 65.52% 0, 52.87% 99.87%, 0 100%); }
.mv__photo--left img { left: -9.32%; top: -3.76%; width: 82.4%; height: 113.32%; }
.mv__photo--right { clip-path: polygon(64.81% 0, 100% 0, 100% 100%, 52.17% 100%); }
.mv__photo--right img { left: 51.46%; top: -7.41%; width: 78.13%; height: 107.41%; }
.mv__photo--left::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30%;
  height: 12%;
  background: linear-gradient(to top right, #fff 0%, rgba(255, 255, 255, 0) 60%);
}
.mv__catch {
  position: absolute;
  left: calc(100vw * 95 / 1920);
  top: calc(100vw * 535 / 1920);
  margin: 0;
  font-family: var(--mincho);
  font-weight: 600;
  font-size: calc(100vw * 56 / 1920);
  line-height: 1.96;
  letter-spacing: 0.04em;
  color: #000;
  text-shadow: 0 0 12px #fff, 0 0 20px #fff, 0 0 30px #fff;
}
.mv__en {
  position: absolute;
  left: calc(100vw * 847 / 1920);
  bottom: calc(100vw * -30 / 1920);
  font-family: var(--mincho);
  font-size: calc(100vw * 215 / 1920);
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0;
  pointer-events: none;
}

/* ---------- 無料相談バナー ---------- */
.counseling {
  display: block;
  aspect-ratio: auto;
  background: none;
  position: relative;
  line-height: 1.6;
  padding-top: calc(var(--u) * 30);
}
.counseling::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: calc(var(--u) * 682);
  background: url("../img/parts/fee_bg.webp") center / cover no-repeat;
  z-index: -1;
}
.counseling__head {
  position: relative;
  text-align: center;
  font-family: var(--mincho);
}
.counseling__badge {
  position: absolute;
  left: calc(var(--u) * 131);
  top: 0;
  width: calc(var(--u) * 236);
  height: calc(var(--u) * 236);
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: calc(var(--u) * 36);
  line-height: 1.6;
  letter-spacing: 0.04em;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
}
.counseling__badge::before {
  content: "";
  position: absolute;
  inset: calc(var(--u) * 12);
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
}
.counseling__en {
  display: block;
  padding-top: calc(var(--u) * 70);
  padding-left: calc(var(--u) * 92);
  font-size: calc(var(--u) * 140);
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--blue);
}
.counseling__en span { color: var(--gold); }
.counseling__lead {
  margin-top: calc(var(--u) * 40);
  padding-left: calc(var(--u) * 92);
  font-size: calc(var(--u) * 36);
  letter-spacing: 0.1em;
  color: #000;
}
.counseling__box {
  position: relative;
  width: calc(var(--u) * 1730);
  margin: calc(var(--u) * 70) auto 0;
  background: linear-gradient(var(--bg-gray) 0, var(--bg-gray) calc(var(--u) * 452), #fff calc(var(--u) * 452));
  padding: calc(var(--u) * 50) calc(var(--u) * 100) calc(var(--u) * 135);
  box-sizing: border-box;
  font-family: var(--mincho);
  isolation: isolate;
}
.counseling__ttl {
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 32);
  font-size: calc(var(--u) * 36);
  font-weight: normal;
  letter-spacing: 0.12em;
  white-space: nowrap;
  color: #000;
}
.counseling__ttl::before,
.counseling__ttl::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #000;
}
.counseling__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: calc(var(--u) * 19);
  margin-top: calc(var(--u) * 60);
}
.counseling__list li {
  position: relative;
  background: #fff;
  padding: calc(var(--u) * 15);
}
.counseling__list li p {
  display: grid;
  place-items: center;
  height: calc(var(--u) * 158);
  border: 2px solid var(--gray);
  text-align: center;
  font-size: calc(var(--u) * 22);
  line-height: 1.8;
  letter-spacing: 0.12em;
  color: #333;
}
.counseling__list li::before {
  content: "";
  position: absolute;
  left: calc(var(--u) * 32);
  top: calc(var(--u) * -6);
  width: calc(var(--u) * 14);
  height: calc(var(--u) * 30);
  border-right: calc(var(--u) * 4) solid var(--gold);
  border-bottom: calc(var(--u) * 4) solid var(--gold);
  transform: rotate(40deg);
}
.counseling__reserve {
  position: relative;
  margin-top: calc(var(--u) * 70);
  text-align: center;
  font-size: calc(var(--u) * 36);
  letter-spacing: 0.1em;
  color: #000;
}
.counseling__reserve::before {
  content: "RESERVE";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: calc(var(--u) * 120);
  letter-spacing: 0.08em;
  color: var(--beige);
  opacity: 0.8;
  z-index: -1;
  line-height: 1;
}
.counseling__reserve span { position: relative; }
.counseling__btns {
  display: flex;
  justify-content: space-between;
  width: calc(var(--u) * 1270);
  margin: calc(var(--u) * 70) auto 0;
}
.counseling__btns .btn-tel,
.counseling__btns .btn-web {
  width: 48%;
  height: calc(var(--u) * 173);
  font-size: calc(var(--u) * 52);
}
.counseling-space { height: calc(var(--u) * 134); }

@media (max-width: 1280px) {
  .h-contact { margin-right: 80px; }
}

/* ---------- SP ---------- */
@media (max-width: 425px) {
  .mv { height: auto; }
  .mv__photo { position: relative; inset: auto; height: calc(var(--s) * 258); clip-path: none; }
  .mv__photo--left img,
  .mv__photo--right img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
  .mv__photo--left img { object-position: 30% 30%; }
  .mv__photo--right { height: calc(var(--s) * 237); }
  .mv__photo--left::after { display: none; }
  .mv__catch {
    left: calc(var(--s) * 14);
    top: calc(var(--s) * 195);
    font-size: calc(var(--s) * 30);
    line-height: 1.75;
    text-shadow: 0 0 8px #fff, 0 0 14px #fff, 0 0 20px #fff;
  }
  .mv__en { left: calc(var(--s) * 29); bottom: calc(var(--s) * -10); font-size: calc(var(--s) * 80); }

  .counseling { padding-top: calc(var(--s) * 10); }
  .counseling::before { top: calc(var(--s) * 520); left: calc(var(--s) * 16); }
  .counseling__en { padding: 0; font-size: calc(var(--s) * 48); letter-spacing: 0.06em; }
  .counseling__lead { margin-top: calc(var(--s) * 8); padding: 0; font-size: calc(var(--s) * 16); line-height: 1.7; }
  .counseling__badge {
    left: calc(var(--s) * 31);
    top: calc(var(--s) * 113);
    width: calc(var(--s) * 95);
    height: calc(var(--s) * 95);
    font-size: calc(var(--s) * 13);
    z-index: 1;
  }
  .counseling__badge::before { inset: calc(var(--s) * 5); }
  .counseling__box {
    width: calc(var(--s) * 402);
    margin: calc(var(--s) * 48) 0 0 auto;
    padding: calc(var(--s) * 45) calc(var(--s) * 8) calc(var(--s) * 40);
    background: linear-gradient(var(--bg-gray) 0, var(--bg-gray) calc(var(--s) * 358), #fff calc(var(--s) * 358));
  }
  .counseling__ttl { gap: calc(var(--s) * 6); font-size: calc(var(--s) * 20); letter-spacing: 0.1em; }
  .counseling__ttl::before, .counseling__ttl::after { flex: 0 0 calc(var(--s) * 16); }
  .counseling__list { grid-template-columns: repeat(2, 1fr); gap: calc(var(--s) * 12) calc(var(--s) * 18); margin-top: calc(var(--s) * 22); }
  .counseling__list li { padding: calc(var(--s) * 8); }
  .counseling__list li p { height: calc(var(--s) * 80); font-size: calc(var(--s) * 11.5); border-width: 1.5px; letter-spacing: 0.08em; }
  .counseling__list li::before {
    left: calc(var(--s) * 18); top: calc(var(--s) * -4);
    width: calc(var(--s) * 7); height: calc(var(--s) * 15);
    border-right-width: 2.5px; border-bottom-width: 2.5px;
  }
  .counseling__reserve { margin-top: calc(var(--s) * 30); font-size: calc(var(--s) * 16); }
  .counseling__reserve::before { font-size: calc(var(--s) * 60); }
  .counseling__btns { flex-direction: column; gap: calc(var(--s) * 20); width: calc(var(--s) * 340); margin-top: calc(var(--s) * 40); }
  .counseling__btns .btn-tel,
  .counseling__btns .btn-web { width: 100%; height: calc(var(--s) * 97); font-size: calc(var(--s) * 30); }
  .counseling-space { height: calc(var(--s) * 50); }
}

/* PC/SP 切り替え（テキスト化に合わせて 767px に統一） */
@media (max-width: 425px) {
  .pc { display: none !important; }
  .sp { display: block; }
  br.sp { display: inline; }
}
@media (min-width: 425.01px) {
  br.sp { display: none; }
}

/* ---------- セクション見出し（共通） ---------- */
.sec-head {
  text-align: center;
  font-family: var(--mincho);
  color: #000;
  line-height: 1.5;
}
.sec-head__en {
  font-size: calc(var(--u) * 140);
  line-height: 1;
  letter-spacing: 0.08em;
  color: var(--blue);
}
.sec-head__en span { color: var(--gold); }
.sec-head__sub {
  margin-top: calc(var(--u) * 40);
  font-size: calc(var(--u) * 32);
  letter-spacing: 0.05em;
}
.sec-head__sub .num { font-size: 1.5em; letter-spacing: 0; }
.sec-head__ttl {
  margin-top: calc(var(--u) * 10);
  font-size: calc(var(--u) * 48);
  font-weight: normal;
  letter-spacing: 0.05em;
}
br.pc-br { display: inline; }

/* ---------- 選ばれる3つの理由 ---------- */
.professional {
  margin-top: calc(var(--u) * 100);
  padding-bottom: calc(var(--u) * 130);
  line-height: 1.6;
  text-align: left;
}
.pro-item {
  display: flex;
  align-items: flex-start;
  margin-top: calc(var(--u) * 100);
}
.pro-item:first-of-type { margin-top: calc(var(--u) * 100); }
.pro-item--rev { flex-direction: row-reverse; }
.pro-item__img { flex: 0 0 calc(var(--u) * 987); }
.pro-item__img img { display: block; width: 100%; aspect-ratio: 987 / 602; object-fit: cover; }
.pro-item__body {
  position: relative;
  flex: 1;
  padding: calc(var(--u) * 10) calc(var(--u) * 110) 0 calc(var(--u) * 84);
  isolation: isolate;
}
.pro-item--rev .pro-item__body { padding: calc(var(--u) * 10) calc(var(--u) * 84) 0 calc(var(--u) * 95); }
.pro-item__num {
  position: absolute;
  right: calc(var(--u) * 110);
  top: calc(var(--u) * 40);
  z-index: -1;
  font-family: var(--num);
  font-weight: 300;
  font-size: calc(var(--u) * 273);
  font-variant-numeric: lining-nums;
  line-height: 1;
  color: var(--gray);
}
.pro-item--rev .pro-item__num { right: calc(var(--u) * 84); }
.pro-item__num--beige { color: var(--beige); }
.pro-item__sub,
.pro-item__ttl {
  font-family: var(--mincho);
  text-align: center;
  letter-spacing: 0.05em;
  color: #000;
}
.pro-item__sub { font-size: calc(var(--u) * 28); }
.pro-item__ttl {
  margin-top: calc(var(--u) * 40);
  font-size: calc(var(--u) * 36);
  font-weight: normal;
  line-height: 1.6;
}
.pro-item__txt,
.reason__txt,
.reason-card__txt,
.facility__txt {
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
  line-height: 2.4;
  letter-spacing: 0.04em;
  color: #000;
  text-align: left;
}
.pro-item__txt { margin-top: calc(var(--u) * 50); }

/* ---------- ジンヴィインプラントが選ばれる理由 ---------- */
.reason {
  background: var(--gray);
  padding: calc(var(--u) * 90) 0 calc(var(--u) * 150);
  line-height: 1.6;
  text-align: center;
}
.reason__band {
  width: calc(var(--u) * 1686);
  margin: 0 auto;
  padding: calc(var(--u) * 42) 0;
  background: var(--blue);
  color: #fff;
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.reason__ttl {
  margin-top: calc(var(--u) * 90);
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #000;
}
.reason__txt { width: calc(var(--u) * 1060); margin: calc(var(--u) * 40) auto 0; }
.reason-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: calc(var(--u) * 80);
  width: calc(var(--u) * 1542);
  margin: calc(var(--u) * 50) auto 0;
  padding: calc(var(--u) * 80);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #707070;
  text-align: left;
}
.reason-card--rev { flex-direction: row-reverse; }
.reason-card__body { flex: 1; }
.reason-card__img { flex: 0 0 calc(var(--u) * 674); }
.reason-card__img img { display: block; width: 100%; aspect-ratio: 674 / 454; object-fit: cover; }
.reason-card__ttl {
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 36);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #000;
}
.reason-card__txt { margin-top: calc(var(--u) * 45); }

/* ---------- 設備 ---------- */
.facility {
  display: flex;
  justify-content: space-between;
  width: calc(var(--u) * 1730);
  margin: calc(var(--u) * 100) auto;
  line-height: 1.6;
}
.facility__item {
  width: calc(var(--u) * 820);
  padding: calc(var(--u) * 55) calc(var(--u) * 63) calc(var(--u) * 50);
  box-sizing: border-box;
  border: calc(var(--u) * 10) solid var(--gray);
  background: #fff;
}
.facility__img img { display: block; width: 100%; aspect-ratio: 674 / 454; object-fit: cover; }
.facility__ttl {
  margin: calc(var(--u) * 40) calc(var(--u) * -40) 0;
  white-space: nowrap;
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
}
.facility__txt { margin-top: calc(var(--u) * 40); }

@media (max-width: 425px) {
  br.pc-br { display: none; }
  .sec-head__en { font-size: calc(var(--s) * 40); letter-spacing: 0.03em; }
  .sec-head__sub { margin-top: calc(var(--s) * 12); font-size: calc(var(--s) * 13); }
  .sec-head__ttl { margin-top: calc(var(--s) * 4); font-size: calc(var(--s) * 24); }

  .professional { margin-top: calc(var(--s) * 50); padding-bottom: calc(var(--s) * 40); }
  .pro-item, .pro-item--rev { display: block; margin: calc(var(--s) * 30) calc(var(--s) * 18) 0; }
  .pro-item:first-of-type { margin-top: calc(var(--s) * 30); }
  .pro-item__img img { aspect-ratio: 402 / 245; }
  .pro-item__body, .pro-item--rev .pro-item__body { padding: calc(var(--s) * 20) 0 calc(var(--s) * 20); }
  .pro-item__num, .pro-item--rev .pro-item__num { right: 0; top: calc(var(--s) * 50); font-size: calc(var(--s) * 177); }
  .pro-item__sub { font-size: calc(var(--s) * 15); }
  .pro-item__ttl { margin-top: calc(var(--s) * 14); font-size: calc(var(--s) * 21); }
  .pro-item__txt, .reason__txt, .reason-card__txt, .facility__txt { font-size: calc(var(--s) * 15); line-height: 2.25; }
  .pro-item__txt { margin-top: calc(var(--s) * 14); }

  .reason { margin: 0 calc(var(--s) * 14); padding: calc(var(--s) * 45) calc(var(--s) * 13) calc(var(--s) * 40); }
  .reason__band { width: auto; padding: calc(var(--s) * 18) 0; font-size: calc(var(--s) * 22); }
  .reason__ttl { margin-top: calc(var(--s) * 25); font-size: calc(var(--s) * 21); }
  .reason__txt { width: auto; margin-top: calc(var(--s) * 15); }
  .reason-card, .reason-card--rev { display: block; width: auto; margin-top: calc(var(--s) * 20); padding: calc(var(--s) * 12) calc(var(--s) * 12) calc(var(--s) * 18); }
  .reason-card__img { margin-bottom: calc(var(--s) * 20); }
  .reason-card { display: flex; flex-direction: column-reverse; }
  .reason-card__ttl { font-size: calc(var(--s) * 21); text-align: center; }
  .reason-card__txt { margin-top: calc(var(--s) * 14); }

  .facility { display: block; width: auto; margin: calc(var(--s) * 40) calc(var(--s) * 28); }
  .facility__item { width: auto; margin-top: calc(var(--s) * 30); padding: calc(var(--s) * 18) calc(var(--s) * 18) calc(var(--s) * 15); border-width: calc(var(--s) * 7); }
  .facility__ttl { margin: calc(var(--s) * 15) 0 0; font-size: calc(var(--s) * 21); white-space: normal; }
  .facility__txt { margin-top: calc(var(--s) * 12); }
}

/* ---------- ご相談 ---------- */
.consultation { margin: calc(var(--u) * 30) 0 0; line-height: 1.6; }
.consult-photo {
  position: relative;
  z-index: 1;
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 100) 0 calc(var(--u) * 230);
  background: url("../img/parts/consultation_bg.webp") center top / cover no-repeat;
  clip-path: polygon(0 0, 100% 0, 100% 91.6%, 50% 100%, 0 91.6%);
}
.consult-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(var(--u) * 25) calc(var(--u) * 18);
  width: calc(var(--u) * 1740);
  margin: 0 auto;
}
.consult-list li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: calc(var(--u) * 415);
  height: calc(var(--u) * 415);
  padding-top: calc(var(--u) * 55);
  box-sizing: border-box;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 calc(var(--u) * 18) #f2f2f2, 0 2px 6px rgba(0, 0, 0, 0.08);
  text-align: center;
  font-family: var(--mincho);
}
.consult-list__num {
  font-family: var(--num);
  font-variant-numeric: lining-nums;
  font-weight: 300;
  font-size: calc(var(--u) * 96);
  line-height: 1;
  color: var(--gray);
}
.consult-list li:nth-child(even) .consult-list__num { color: var(--beige); }
.consult-list li p {
  display: grid;
  place-items: center;
  flex: 1;
  padding-bottom: calc(var(--u) * 60);
  font-size: calc(var(--u) * 36);
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: #000;
}
.consult-recommend {
  position: relative;
  margin-top: calc(var(--u) * -120);
  padding: calc(var(--u) * 240) 0 calc(var(--u) * 110);
  background: var(--gray);
  text-align: center;
  font-family: var(--mincho);
  font-weight: 600;
  isolation: isolate;
}
.consult-recommend__en {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(var(--u) * 80);
  z-index: -1;
  font-weight: normal;
  font-size: calc(var(--u) * 225);
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
}
.consult-recommend__sub { font-size: calc(var(--u) * 36); letter-spacing: 0.1em; color: var(--gold); }
.consult-recommend__ttl { margin-top: calc(var(--u) * 10); font-size: calc(var(--u) * 60); letter-spacing: 0.1em; color: #000; }

/* ---------- インプラント治療とは ---------- */
.treatment { margin: calc(var(--u) * 100) 0 calc(var(--u) * 50); line-height: 1.6; }
.what {
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 74) calc(var(--u) * 95) calc(var(--u) * 73) 0;
  background: url("../img/parts/treatment01_bg.webp") center / cover no-repeat;
}
.what__box {
  position: relative;
  width: calc(var(--u) * 1042);
  margin-left: auto;
  padding: calc(var(--u) * 50) calc(var(--u) * 130) calc(var(--u) * 80);
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.82);
  font-family: var(--mincho);
  text-align: center;
}
.what__box::before,
.what__box::after {
  content: "";
  position: absolute;
  width: calc(var(--u) * 36);
  height: calc(var(--u) * 33);
  border: 0 solid var(--navy);
}
.what__box::before { left: calc(var(--u) * 15); top: calc(var(--u) * 18); border-left-width: 1px; border-top-width: 1px; }
.what__box::after { right: calc(var(--u) * 20); bottom: calc(var(--u) * 20); border-right-width: 1px; border-bottom-width: 1px; }
.what__sub { font-size: calc(var(--u) * 31); letter-spacing: 0.05em; color: var(--gold); }
.what__ttl { margin-top: calc(var(--u) * 30); font-size: calc(var(--u) * 48); font-weight: normal; letter-spacing: 0.05em; color: #000; }
.what__txt,
.merit__txt,
.bone-lead__txt,
.bone__txt,
.denture__txt {
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
  line-height: 2.4;
  letter-spacing: 0.04em;
  color: #000;
  text-align: left;
}
.what__txt { margin-top: calc(var(--u) * 40); }
.band {
  width: calc(var(--u) * 1686);
  margin: calc(var(--u) * 100) auto 0;
  padding: calc(var(--u) * 42) 0;
  background: var(--blue);
  color: #fff;
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
}
.merit {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(var(--u) * 50) calc(var(--u) * 48);
  width: calc(var(--u) * 1731);
  margin: calc(var(--u) * 50) auto 0;
}
.merit__item {
  padding: calc(var(--u) * 30) calc(var(--u) * 30) calc(var(--u) * 40);
  border: calc(var(--u) * 4) solid var(--gray);
  background: #fff;
}
.merit__item img { display: block; width: 100%; aspect-ratio: 485 / 301; object-fit: cover; }
.merit__ttl {
  margin-top: calc(var(--u) * 30);
  font-family: var(--mincho);
  font-weight: 600;
  font-size: calc(var(--u) * 36);
  letter-spacing: 0.05em;
  color: var(--navy);
  text-align: center;
}
.merit__txt { margin-top: calc(var(--u) * 15); padding: 0 calc(var(--u) * 10); }
.treatment .note { line-height: 1.6; }
.bone-lead__ttl {
  margin-top: calc(var(--u) * 100);
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #000;
}
.bone-lead__txt { margin-top: calc(var(--u) * 40); text-align: center; }
.bone {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(var(--u) * 50) calc(var(--u) * 28);
  width: calc(var(--u) * 1576);
  margin: calc(var(--u) * 100) auto 0;
}
.bone__item { width: calc(var(--u) * 505); background: var(--bg-gray); }
.bone__ttl {
  padding: calc(var(--u) * 15) 0;
  background: var(--blue);
  color: #fff;
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 36);
  letter-spacing: 0.1em;
  text-align: center;
}
.bone__txt { padding: calc(var(--u) * 25) calc(var(--u) * 30) calc(var(--u) * 60); }
.denture {
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 100) 0;
  background: var(--bg-gray);
}
.denture .band { margin-top: 0; }
.denture__card {
  display: flex;
  align-items: center;
  gap: calc(var(--u) * 60);
  width: calc(var(--u) * 1550);
  margin: calc(var(--u) * 75) auto 0;
  padding: calc(var(--u) * 70) calc(var(--u) * 150) calc(var(--u) * 70) calc(var(--u) * 70);
  box-sizing: border-box;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.denture__img { flex: 0 0 calc(var(--u) * 640); }
.denture__img img { display: block; width: 100%; }
.denture__body { flex: 1; }
.denture__ttl { font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.6; letter-spacing: 0.1em; color: #000; }
.denture__en { margin-top: calc(var(--u) * 15); font-family: var(--mincho); font-size: calc(var(--u) * 28); letter-spacing: 0.1em; color: var(--gold); }
.denture__txt { margin-top: calc(var(--u) * 30); }

@media (max-width: 425px) {
  .consultation { margin-top: calc(var(--s) * 40); }
  .consult-photo {
    margin: calc(var(--s) * 30) calc(var(--s) * 14) 0;
    padding: calc(var(--s) * 18) calc(var(--s) * 12) calc(var(--s) * 90);
    clip-path: polygon(0 0, 100% 0, 100% 93%, 50% 100%, 0 93%);
  }
  .consult-list { width: auto; gap: calc(var(--s) * 10) calc(var(--s) * 10); }
  .consult-list li { width: calc(var(--s) * 175); height: calc(var(--s) * 175); padding-top: calc(var(--s) * 24); box-shadow: inset 0 0 0 calc(var(--s) * 8) #f2f2f2, 0 2px 4px rgba(0, 0, 0, 0.08); }
  .consult-list__num { font-size: calc(var(--s) * 40); }
  .consult-list li p { padding-bottom: calc(var(--s) * 30); font-size: calc(var(--s) * 13); }
  .consult-recommend { margin: calc(var(--s) * -50) calc(var(--s) * 14) 0; padding: calc(var(--s) * 90) 0 calc(var(--s) * 40); }
  .consult-recommend__en { bottom: calc(var(--s) * 30); font-size: calc(var(--s) * 83); }
  .consult-recommend__sub { font-size: calc(var(--s) * 13); }
  .consult-recommend__ttl { margin-top: 0; font-size: calc(var(--s) * 22); }

  .treatment { margin: calc(var(--s) * 50) 0 calc(var(--s) * 30); }
  .what { margin-top: calc(var(--s) * 30); padding: calc(var(--s) * 80) calc(var(--s) * 14) calc(var(--s) * 55); background-position: 30% center; }
  .what__box { width: auto; padding: calc(var(--s) * 40) calc(var(--s) * 18) calc(var(--s) * 45); }
  .what__box::before { left: calc(var(--s) * 14); top: calc(var(--s) * 14); width: calc(var(--s) * 32); height: calc(var(--s) * 30); }
  .what__box::after { right: calc(var(--s) * 14); bottom: calc(var(--s) * 14); width: calc(var(--s) * 32); height: calc(var(--s) * 30); }
  .what__sub { font-size: calc(var(--s) * 20); }
  .what__ttl { margin-top: calc(var(--s) * 10); font-size: calc(var(--s) * 34); }
  .what__txt, .merit__txt, .bone-lead__txt, .bone__txt, .denture__txt { font-size: calc(var(--s) * 15); line-height: 2.2; }
  .what__txt { margin-top: calc(var(--s) * 15); }
  .band { width: auto; margin: calc(var(--s) * 45) calc(var(--s) * 14) 0; padding: calc(var(--s) * 15) 0; font-size: calc(var(--s) * 20); }
  .merit { grid-template-columns: 1fr; width: auto; gap: calc(var(--s) * 18); margin: calc(var(--s) * 30) calc(var(--s) * 14) 0; }
  .merit__item { padding: calc(var(--s) * 18) calc(var(--s) * 18) calc(var(--s) * 22); border-width: calc(var(--s) * 3); }
  .merit__ttl { margin-top: calc(var(--s) * 18); font-size: calc(var(--s) * 22); }
  .merit__txt { padding: 0; }
  .bone-lead__ttl { margin-top: calc(var(--s) * 30); padding: 0 calc(var(--s) * 14); font-size: calc(var(--s) * 20); }
  .bone-lead__txt { margin-top: calc(var(--s) * 15); padding: 0 calc(var(--s) * 14); text-align: left; }
  .bone { display: block; width: auto; margin: calc(var(--s) * 30) calc(var(--s) * 14) 0; }
  .bone__item { width: auto; margin-top: calc(var(--s) * 18); }
  .bone__ttl { padding: calc(var(--s) * 14) 0; font-size: calc(var(--s) * 22); }
  .bone__txt { padding: calc(var(--s) * 20) calc(var(--s) * 20) calc(var(--s) * 40); }
  .denture { margin: calc(var(--s) * 45) calc(var(--s) * 14) 0; padding: calc(var(--s) * 30) calc(var(--s) * 14) calc(var(--s) * 40); }
  .denture .band { margin: 0; }
  .denture__card { display: block; width: auto; margin-top: calc(var(--s) * 30); padding: calc(var(--s) * 20) calc(var(--s) * 15) calc(var(--s) * 30); }
  .denture__ttl { margin-top: calc(var(--s) * 20); font-size: calc(var(--s) * 22); text-align: center; }
  .denture__en { margin-top: calc(var(--s) * 4); font-size: calc(var(--s) * 15); text-align: center; }
  .denture__txt { margin-top: calc(var(--s) * 10); }
  .treatment .note { margin: calc(var(--s) * 40) calc(var(--s) * 14) 0; }
}

/* ---------- 考えるインプラント治療 ---------- */
.thought { margin-top: calc(var(--u) * 100); line-height: 1.6; }
.thought-hero {
  position: relative;
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 100) 0 calc(var(--u) * 150);
  background: linear-gradient(rgba(140, 170, 200, 0.25), rgba(140, 170, 200, 0.25)), url("../img/parts/professional_03.webp") center 30% / cover no-repeat;
  text-align: center;
  color: #fff;
  font-family: var(--mincho);
}
.thought-hero__ttl { font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.6; letter-spacing: 0.05em; text-shadow: 0 0 10px rgba(0, 0, 0, 0.25); }
.thought-hero__txt,
.thought-close__txt {
  margin-top: calc(var(--u) * 40);
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
  line-height: 2.4;
  letter-spacing: 0.04em;
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.thought-circles {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(var(--u) * 160);
  margin-top: calc(var(--u) * 140);
}
.thought-circles li {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(var(--u) * 420);
  height: calc(var(--u) * 420);
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 calc(var(--u) * 18) #f2f2f2;
  font-size: calc(var(--u) * 48);
  letter-spacing: 0.05em;
  color: #000;
}
.thought-circles li .thought-circles__en { margin-top: calc(var(--u) * 15); font-size: 0.66em; letter-spacing: 0.1em; color: #beb7b6; }
.thought-circles li.is-gold .thought-circles__en { color: var(--gold); }
.thought-circles li + li::before,
.thought-circles li + li::after {
  content: "";
  position: absolute;
  left: calc(var(--u) * -120);
  top: 50%;
  width: calc(var(--u) * 80);
  height: 2px;
  background: #fff;
  transform: rotate(45deg);
}
.thought-circles li + li::after { transform: rotate(-45deg); }
.thought-row {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 50);
  width: calc(var(--u) * 1920);
  margin-top: calc(var(--u) * 120);
  padding: 0 calc(var(--u) * 125) 0 calc(var(--u) * 25);
  box-sizing: border-box;
}
.thought-row--rev { flex-direction: row-reverse; padding: 0 calc(var(--u) * 25) 0 calc(var(--u) * 115); }
.thought-row__label {
  flex: 0 0 calc(var(--u) * 140);
  display: grid;
  place-items: center;
  height: calc(var(--u) * 550);
  border-radius: calc(var(--u) * 70);
  background: linear-gradient(#e9e9e9, #fff);
  font-family: var(--mincho);
  font-size: calc(var(--u) * 48);
  line-height: 1.15;
  color: #000;
  text-align: center;
}
.thought-row--rev .thought-row__label { background: linear-gradient(#ebe4d8, #fff); }
.thought-row__body { flex: 0 0 calc(var(--u) * 700); }
.thought-row__sub { font-family: var(--mincho); font-size: calc(var(--u) * 28); letter-spacing: 0.05em; color: #b4b4b4; }
.thought-row--rev .thought-row__sub { color: var(--gold); }
.thought-row__ttl { margin-top: calc(var(--u) * 10); font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.6; letter-spacing: 0.05em; color: #000; }
.thought-row__txt { margin-top: calc(var(--u) * 40); font-family: var(--sans); font-size: calc(var(--u) * 20); line-height: 2.4; letter-spacing: 0.04em; color: #000; }
.thought-row__en { margin-top: calc(var(--u) * 50); font-family: var(--mincho); font-size: calc(var(--u) * 90); line-height: 1; letter-spacing: 0.05em; color: var(--gray); }
.thought-row--rev .thought-row__en { color: var(--beige); }
.thought-row__img { flex: 0 0 calc(var(--u) * 844); margin-top: calc(var(--u) * 15); }
.thought-row--rev .thought-row__img { margin-left: calc(var(--u) * -20); }
.thought-row__img img { display: block; width: 100%; aspect-ratio: 844 / 565; object-fit: cover; }
.thought-close {
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 250) 0 calc(var(--u) * 200);
  background: linear-gradient(rgba(10, 60, 140, 0.25), rgba(10, 60, 140, 0.25)), url("../img/parts/reason04_02.webp") center / cover no-repeat;
  clip-path: polygon(0 0, 50% 10%, 100% 0, 100% 100%, 0 100%);
  text-align: center;
  color: #fff;
}
.thought-close__ttl { font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.6; letter-spacing: 0.1em; }

/* ---------- 院長紹介 ---------- */
.greeting { margin-top: calc(var(--u) * 120); line-height: 1.6; text-align: left; }
.greeting__inner {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 100);
  margin-top: calc(var(--u) * 120);
  padding-right: calc(var(--u) * 140);
}
.greeting__photo { position: relative; flex: 0 0 calc(var(--u) * 700); margin-top: calc(var(--u) * 150); }
.greeting__photo img { display: block; width: 100%; aspect-ratio: 700 / 820; object-fit: cover; object-position: 45% center; }
.greeting__name {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: calc(var(--u) * 30) 0;
  background: rgba(6, 157, 212, 0.85);
  color: #fff;
  font-family: var(--mincho);
  font-size: calc(var(--u) * 56);
  letter-spacing: 0.05em;
  text-align: center;
}
.greeting__name span { margin-right: 1.2em; font-size: 0.55em; }
.greeting__body { flex: 1; }
.greeting__ttl { font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.7; letter-spacing: 0.05em; color: #000; }
.greeting__txt { margin-top: calc(var(--u) * 50); font-family: var(--sans); font-size: calc(var(--u) * 20); line-height: 2.4; color: #000; }
.career {
  width: calc(var(--u) * 900);
  margin: calc(var(--u) * 120) 0 0 calc(var(--u) * 75);
  padding: calc(var(--u) * 70) calc(var(--u) * 75) calc(var(--u) * 70);
  box-sizing: border-box;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.career__ttl { padding: calc(var(--u) * 18) 0; background: var(--blue); color: #fff; font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 28); text-align: center; }
.career__list {
  display: grid;
  grid-template-columns: calc(var(--u) * 260) 1fr;
  row-gap: calc(var(--u) * 15);
  margin-top: calc(var(--u) * 40);
  padding: 0 calc(var(--u) * 40);
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
  line-height: 1.5;
  color: #000;
}

@media (max-width: 425px) {
  .thought { margin-top: calc(var(--s) * 50); }
  .thought-hero { margin-top: calc(var(--s) * 30); padding: calc(var(--s) * 40) calc(var(--s) * 14) calc(var(--s) * 50); }
  .thought-hero__ttl { font-size: calc(var(--s) * 20); }
  .thought-hero__txt, .thought-close__txt { margin-top: calc(var(--s) * 15); font-size: calc(var(--s) * 14); line-height: 2.1; text-align: left; }
  .thought-circles { flex-direction: column; gap: calc(var(--s) * 50); margin-top: calc(var(--s) * 30); }
  .thought-circles li { width: calc(var(--s) * 190); height: calc(var(--s) * 190); font-size: calc(var(--s) * 24); box-shadow: inset 0 0 0 calc(var(--s) * 9) #f2f2f2; }
  .thought-circles li + li::before, .thought-circles li + li::after { left: 50%; top: calc(var(--s) * -27); width: calc(var(--s) * 34); margin-left: calc(var(--s) * -17); }
  .thought-row, .thought-row--rev { display: block; width: auto; margin: calc(var(--s) * 50) calc(var(--s) * 14) 0; padding: 0; }
  .thought-row__label { height: auto; padding: calc(var(--s) * 10) 0; border-radius: calc(var(--s) * 30); font-size: calc(var(--s) * 22); }
  .thought-row__label br { display: none; }
  .thought-row__body { margin-top: calc(var(--s) * 20); }
  .thought-row__sub { font-size: calc(var(--s) * 15); text-align: center; }
  .thought-row__ttl { font-size: calc(var(--s) * 22); text-align: center; }
  .thought-row__txt { margin-top: calc(var(--s) * 15); font-size: calc(var(--s) * 15); line-height: 2.2; }
  .thought-row__en { margin-top: calc(var(--s) * 10); font-size: calc(var(--s) * 44); text-align: center; }
  .thought-row__img, .thought-row--rev .thought-row__img { margin: calc(var(--s) * 15) 0 0; }
  .thought-close { margin-top: calc(var(--s) * 50); padding: calc(var(--s) * 90) calc(var(--s) * 14) calc(var(--s) * 60); clip-path: polygon(0 0, 50% 6%, 100% 0, 100% 100%, 0 100%); }
  .thought-close__ttl { font-size: calc(var(--s) * 20); letter-spacing: 0.05em; }

  .greeting { margin-top: calc(var(--s) * 50); }
  .greeting__inner { display: block; margin-top: calc(var(--s) * 30); padding: 0 calc(var(--s) * 14); }
  .greeting__photo { margin: 0; }
  .greeting__name { font-size: calc(var(--s) * 30); padding: calc(var(--s) * 12) 0; }
  .greeting__body { margin-top: calc(var(--s) * 30); }
  .greeting__ttl { font-size: calc(var(--s) * 20); }
  .greeting__txt { margin-top: calc(var(--s) * 15); font-size: calc(var(--s) * 15); line-height: 2.2; }
  .career { width: auto; margin: calc(var(--s) * 30) 0 0; padding: calc(var(--s) * 25) calc(var(--s) * 18); }
  .career__ttl { padding: calc(var(--s) * 10) 0; font-size: calc(var(--s) * 18); }
  .career__list { grid-template-columns: 1fr; row-gap: 0; margin-top: calc(var(--s) * 15); padding: 0; font-size: calc(var(--s) * 15); }
  .career__list dt { margin-top: calc(var(--s) * 10); color: var(--blue); }
}

/* ---------- リスク ---------- */
.risk { margin-top: calc(var(--u) * 120); line-height: 1.6; }
.risk-hero {
  position: relative;
  z-index: 1;
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 95) 0 calc(var(--u) * 130) calc(var(--u) * 95);
  background: url("../img/parts/professional_03.webp") center 35% / cover no-repeat;
  clip-path: polygon(0 0, 100% 0, 100% 92%, 50% 100%, 0 92%);
}
.risk-hero__box { margin-left: 0; }
.risk-care {
  margin-top: calc(var(--u) * -80);
  padding: calc(var(--u) * 180) 0 calc(var(--u) * 150);
  background: linear-gradient(#fff, #f2f2f2);
  text-align: center;
}
.risk-care .what__sub { font-family: var(--mincho); letter-spacing: 0.1em; }
.risk-care__ttl { margin-top: calc(var(--u) * 40); font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 48); line-height: 1.6; letter-spacing: 0.1em; color: #000; }
.risk-care__card { margin-top: calc(var(--u) * 40); }

/* ---------- 治療の流れ ---------- */
.flow {
  width: auto;
  margin: 0;
  padding: calc(var(--u) * 100) 0 calc(var(--u) * 100);
  background: linear-gradient(#fff, #f2f2f2);
  line-height: 1.6;
}
.flow-list { width: calc(var(--u) * 1540); margin: calc(var(--u) * 100) auto 0; list-style: none; }
.flow-step {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: calc(var(--u) * 80);
  margin-top: calc(var(--u) * 90);
  padding: calc(var(--u) * 50) calc(var(--u) * 50) calc(var(--u) * 50) calc(var(--u) * 80);
  background: #fff;
  border: 1px solid #707070;
}
.flow-step:first-child { margin-top: 0; }
.flow-step::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 100%;
  width: 1px;
  height: calc(var(--u) * 90);
  background: #707070;
}
.flow-step:first-child::before { display: none; }
.flow-free + .flow-step::before { height: calc(var(--u) * 90); }
.flow-step__num {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: calc(var(--u) * 80);
  height: calc(var(--u) * 80);
  min-width: 36px;
  min-height: 36px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff;
  font-family: var(--num);
  font-variant-numeric: lining-nums;
  font-size: calc(var(--u) * 40);
  line-height: 1;
}
.flow-step__body { flex: 1; }
.flow-step__ttl { font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 36); letter-spacing: 0.1em; color: var(--navy); }
.flow-step__txt { margin-top: calc(var(--u) * 15); font-family: var(--sans); font-size: calc(var(--u) * 20); line-height: 2.4; letter-spacing: 0.02em; color: #000; }
.flow-step__img { flex: 0 0 calc(var(--u) * 432); }
.flow-step__img img { display: block; width: 100%; aspect-ratio: 432 / 262; object-fit: cover; }
.flow-free {
  position: relative;
  padding: calc(var(--u) * 60) 0 calc(var(--u) * 80);
  background: var(--gray);
  text-align: center;
  isolation: isolate;
}
.flow-free__en {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--u) * 40);
  z-index: -1;
  font-family: var(--mincho);
  font-weight: 600;
  font-size: calc(var(--u) * 112);
  line-height: 1;
  letter-spacing: 0.2em;
  color: #fff;
}
.flow-free__txt { font-family: var(--mincho); font-size: calc(var(--u) * 36); line-height: 1.6; letter-spacing: 0.05em; color: #000; }
.flow-free__btns { display: flex; justify-content: center; gap: calc(var(--u) * 60); margin-top: calc(var(--u) * 50); }
.flow-free__btns .btn-tel,
.flow-free__btns .btn-web { width: calc(var(--u) * 600); height: calc(var(--u) * 173); font-size: calc(var(--u) * 52); }

@media (max-width: 425px) {
  .risk { margin-top: calc(var(--s) * 50); }
  .risk-hero { margin-top: calc(var(--s) * 30); padding: calc(var(--s) * 60) calc(var(--s) * 14) calc(var(--s) * 70); clip-path: polygon(0 0, 100% 0, 100% 96%, 50% 100%, 0 96%); }
  .risk-care { margin-top: calc(var(--s) * -30); padding: calc(var(--s) * 70) calc(var(--s) * 14) calc(var(--s) * 50); }
  .risk-care__ttl { margin-top: calc(var(--s) * 10); font-size: calc(var(--s) * 20); letter-spacing: 0.05em; }
  .risk-care__card { margin: calc(var(--s) * 25) 0 0; }

  .flow { padding: calc(var(--s) * 50) calc(var(--s) * 14) calc(var(--s) * 50); }
  .flow-list { width: auto; margin-top: calc(var(--s) * 40); }
  .flow-step { display: flex; flex-direction: column-reverse; gap: calc(var(--s) * 15); margin-top: calc(var(--s) * 50); padding: calc(var(--s) * 35) calc(var(--s) * 15) calc(var(--s) * 20); }
  .flow-step::before, .flow-free + .flow-step::before { height: calc(var(--s) * 50); }
  .flow-step__img { flex: none; width: 100%; }
  .flow-step__ttl { font-size: calc(var(--s) * 21); text-align: center; }
  .flow-step__txt { margin-top: calc(var(--s) * 8); font-size: calc(var(--s) * 15); line-height: 2.1; }
  .flow-step__num { width: calc(var(--s) * 50); height: calc(var(--s) * 50); font-size: calc(var(--s) * 22); }
  .flow-free { padding: calc(var(--s) * 35) calc(var(--s) * 15) calc(var(--s) * 30); }
  .flow-free__en { top: calc(var(--s) * 30); font-size: calc(var(--s) * 44); letter-spacing: 0.08em; }
  .flow-free__txt { font-size: calc(var(--s) * 17); }
  .flow-free__btns { flex-direction: column; gap: calc(var(--s) * 15); margin-top: calc(var(--s) * 25); }
  .flow-free__btns .btn-tel, .flow-free__btns .btn-web { width: 100%; height: calc(var(--s) * 90); font-size: calc(var(--s) * 28); }
}

/* ---------- 費用 ---------- */
.fee { margin-top: calc(var(--u) * 120); line-height: 1.6; }
.fee__band { margin-top: calc(var(--u) * 100); }
.fee-table {
  width: calc(var(--u) * 1340);
  margin: calc(var(--u) * 90) auto 0;
  border-collapse: collapse;
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
}
.fee-table th,
.fee-table td { padding: calc(var(--u) * 20) calc(var(--u) * 50); border: 1px solid #ccc; text-align: left; }
.fee-table th { width: 61%; background: #b0b0b0; color: #fff; font-weight: 500; border-color: #c8c8c8 #b0b0b0; }
.fee-table td { background: #fff; color: #000; padding-left: calc(var(--u) * 45); }
.pay {
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 100) 0 calc(var(--u) * 100);
  background: linear-gradient(rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.12)), url("../img/parts/fee_bg.webp") center / cover no-repeat;
  text-align: center;
}
.pay__lead { font-family: var(--mincho); font-size: calc(var(--u) * 36); line-height: 2.8; letter-spacing: 0.1em; color: #fff; text-shadow: 0 0 10px rgba(0, 0, 0, 0.35); }
.pay__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: calc(var(--u) * 20);
  width: calc(var(--u) * 1580);
  margin: calc(var(--u) * 20) auto 0;
}
.pay__list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: calc(var(--u) * 40) 0 calc(var(--u) * 40);
  background: #fff;
  font-family: var(--mincho);
  font-size: calc(var(--u) * 28);
  letter-spacing: 0.1em;
  color: var(--navy);
}
.pay__icon {
  display: grid;
  place-items: center;
  width: calc(var(--u) * 222);
  height: calc(var(--u) * 222);
  margin-bottom: calc(var(--u) * 25);
  border-radius: 50%;
  background: #d0d5e0;
}
.pay__icon img { width: auto; height: 50%; }
.deduction {
  margin-top: calc(var(--u) * 100);
  padding: calc(var(--u) * 70) 0 calc(var(--u) * 120);
  background: var(--bg-gray);
  text-align: center;
}
.deduction__ttl { font-family: var(--mincho); font-weight: normal; font-size: calc(var(--u) * 36); letter-spacing: 0.05em; color: var(--blue); }
.deduction__txt { width: calc(var(--u) * 1180); margin: calc(var(--u) * 40) auto 0; font-family: var(--sans); font-size: calc(var(--u) * 20); line-height: 2.4; text-align: left; color: #000; }
.fee .deduction__btn {
  position: relative;
  display: inline-block;
  margin-top: calc(var(--u) * 50);
  padding: calc(var(--u) * 15) calc(var(--u) * 90) calc(var(--u) * 15) calc(var(--u) * 60);
  background: var(--blue);
  color: #fff;
  font-family: var(--mincho);
  font-size: calc(var(--u) * 32);
  letter-spacing: 0.1em;
}
.deduction__btn::after {
  content: "";
  position: absolute;
  right: calc(var(--u) * 40);
  top: 50%;
  width: 0.35em;
  height: 0.35em;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}

@media (max-width: 425px) {
  .fee { margin: calc(var(--s) * 50) 0 0; }
  .fee__band { margin-top: calc(var(--s) * 30); }
  .fee-table { width: calc(100% - var(--s) * 28); margin-top: calc(var(--s) * 30); font-size: calc(var(--s) * 14); }
  .fee-table th, .fee-table td { padding: calc(var(--s) * 18) calc(var(--s) * 10); }
  .fee-table td { text-align: center; }
  .pay { margin-top: calc(var(--s) * 40); padding: calc(var(--s) * 35) calc(var(--s) * 14) calc(var(--s) * 40); }
  .pay__lead { font-size: calc(var(--s) * 20); line-height: 1.8; }
  .pay__list { grid-template-columns: 1fr 1fr; width: auto; gap: calc(var(--s) * 12); margin-top: calc(var(--s) * 30); }
  .pay__list li { padding: calc(var(--s) * 18) 0; font-size: calc(var(--s) * 13); }
  .pay__icon { width: calc(var(--s) * 115); height: calc(var(--s) * 115); margin-bottom: calc(var(--s) * 12); }
  .deduction { margin-top: calc(var(--s) * 50); padding: calc(var(--s) * 40) calc(var(--s) * 14) calc(var(--s) * 50); }
  .deduction__ttl { font-size: calc(var(--s) * 22); }
  .deduction__txt { width: auto; margin-top: calc(var(--s) * 15); font-size: calc(var(--s) * 15); line-height: 2.1; }
  .fee .deduction__btn { width: 100%; box-sizing: border-box; margin-top: calc(var(--s) * 25); padding: calc(var(--s) * 14) calc(var(--s) * 30); font-size: calc(var(--s) * 18); }
  .deduction__btn::after { right: calc(var(--s) * 18); }
}

/* ---------- 医院紹介・フッター ---------- */
.clinic { margin-top: calc(var(--u) * 120); line-height: 1.6; }
.clinic-box { align-items: flex-start; }
.clinic-bunner {
  display: flex;
  justify-content: center;
  gap: calc(var(--u) * 12);
  max-width: none;
  width: auto;
  margin: 0 auto calc(var(--u) * 50);
}
.clinic-bunner .btn-tel { width: calc(var(--u) * 428); height: calc(var(--u) * 122); font-size: calc(var(--u) * 39); }
.clinic-bunner .btn-web { width: calc(var(--u) * 216); height: calc(var(--u) * 122); font-size: calc(var(--u) * 22); }
.hours {
  display: inline-block;
  padding: calc(var(--u) * 35) calc(var(--u) * 60) calc(var(--u) * 30) calc(var(--u) * 60);
  background: #fff;
  border: calc(var(--u) * 8) solid var(--bg-gray);
  font-family: var(--sans);
  font-size: calc(var(--u) * 20);
  color: #000;
  text-align: left;
}
.hours__table { border-collapse: collapse; border: 1px solid #000; }
.hours__table th,
.hours__table td { padding: calc(var(--u) * 6) calc(var(--u) * 14); text-align: center; font-weight: normal; }
.hours__table tr > :first-child { padding-left: calc(var(--u) * 35); padding-right: calc(var(--u) * 60); text-align: left; }
.hours__table tr > :last-child { padding-right: calc(var(--u) * 35); }
.hours__table tr:first-child > * { padding-top: calc(var(--u) * 30); padding-bottom: calc(var(--u) * 14); border-bottom: 1px solid #000; }
.hours__table tr:first-child > * { box-shadow: none; }
.hours__table tr:nth-child(2) > * { padding-top: calc(var(--u) * 20); }
.hours__table tr:last-child > * { padding-bottom: calc(var(--u) * 25); }
.hours__table td { color: var(--blue); }
.hours__table td:first-child { color: #000; }
.hours__note { display: grid; grid-template-columns: auto 1fr; gap: calc(var(--u) * 8) calc(var(--u) * 60); margin-top: calc(var(--u) * 20); padding-left: calc(var(--u) * 35); }
.clinic-access {
  width: calc(var(--u) * 1686);
  margin: calc(var(--u) * 100) auto;
  padding: calc(var(--u) * 50) 0;
  background: var(--blue);
  color: #fff;
  font-family: var(--mincho);
  font-weight: normal;
  font-size: calc(var(--u) * 48);
  letter-spacing: 0.1em;
  text-align: center;
}
.qa .sec-head { margin-bottom: calc(var(--u) * 100); }
.interview .sec-head { margin-bottom: calc(var(--u) * 70); }
.icon-q {
  position: absolute;
  left: 1.5%;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--mincho);
  font-size: calc(var(--u) * 110);
  line-height: 1;
  color: var(--blue);
}
#page_top a {
  width: 98px;
  height: 98px;
  border-radius: 50%;
  background: rgba(6, 157, 212, 0.9);
}
#page_top a::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 56%;
  width: 26px;
  height: 26px;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}
.footer-box .clinic-right { text-align: center; }

@media (max-width: 1280px) {
  #page_top a { width: 70px; height: 70px; }
  #page_top a::before { width: 18px; height: 18px; }
}
@media (max-width: 425px) {
  .clinic { margin-top: calc(var(--s) * 50); }
  .clinic-box { display: block; margin-top: calc(var(--s) * 30); }
  .clinic-left, .clinic-right { width: auto; margin: 0 calc(var(--s) * 14); }
  .clinic-left { margin-bottom: calc(var(--s) * 30); }
  .clinic-logo { margin: 0 calc(var(--s) * 20) calc(var(--s) * 25); }
  .clinic-bunner { flex-direction: column; align-items: stretch; gap: calc(var(--s) * 12); margin-bottom: calc(var(--s) * 30); }
  .clinic-bunner .btn-tel, .clinic-bunner .btn-web { width: 100%; height: calc(var(--s) * 85); font-size: calc(var(--s) * 28); }
  .hours { display: block; padding: calc(var(--s) * 15) calc(var(--s) * 10); border-width: calc(var(--s) * 6); font-size: calc(var(--s) * 12.5); }
  .hours__table { width: 100%; }
  .hours__table th, .hours__table td { padding: calc(var(--s) * 5) calc(var(--s) * 3); }
  .hours__table tr > :first-child { padding: 0 calc(var(--s) * 6); }
  .hours__table tr > :last-child { padding-right: calc(var(--s) * 6); }
  .hours__table tr:first-child > * { padding-top: calc(var(--s) * 12); padding-bottom: calc(var(--s) * 8); }
  .hours__table tr:nth-child(2) > * { padding-top: calc(var(--s) * 10); }
  .hours__table tr:last-child > * { padding-bottom: calc(var(--s) * 12); }
  .hours__note { gap: calc(var(--s) * 4) calc(var(--s) * 20); margin-top: calc(var(--s) * 12); padding-left: calc(var(--s) * 6); }
  .clinic-access { width: auto; margin: calc(var(--s) * 40) calc(var(--s) * 14); padding: calc(var(--s) * 18) 0; font-size: calc(var(--s) * 22); }
  .qa .sec-head { margin-bottom: calc(var(--s) * 30); }
  .interview .sec-head { margin-bottom: calc(var(--s) * 30); }
  .icon-q { left: 4%; font-size: calc(var(--s) * 40); }
  .footer-box { display: block; }
}

/* 調整：アコーディオンの折り返し・診療時間表のはみ出し */
.accordion-title { height: auto; min-height: 70px; box-sizing: border-box; display: flex; align-items: center; line-height: 1.7; padding-right: 70px; }
.hours { box-sizing: border-box; max-width: 100%; }
.hours__table { width: 100%; }
.hours__table tr > :first-child { padding-left: calc(var(--u) * 25); padding-right: calc(var(--u) * 30); white-space: nowrap; }
.hours__table th, .hours__table td { padding-left: calc(var(--u) * 8); padding-right: calc(var(--u) * 8); }
@media (max-width: 425px) {
  .accordion-title { min-height: 0; padding-right: 50px; }
}
.icon-q { bottom: auto !important; width: auto !important; }
@media (max-width: 425px) {
  .thought-hero__ttl { font-size: calc(var(--s) * 17); letter-spacing: 0.02em; }
  .greeting__ttl { font-size: calc(var(--s) * 17); letter-spacing: 0.02em; }
  .risk-hero .what__ttl { font-size: calc(var(--s) * 24); }
}
.pay__icon img { height: calc(var(--u) * 110); max-height: none; }
@media (max-width: 425px) {
  .pay__icon img { height: calc(var(--s) * 56); }
  .clinic-bunner .btn-tel, .clinic-bunner .btn-web { height: calc(var(--s) * 95); font-size: calc(var(--s) * 24); }
}

/* ---------- ロゴ（テキスト） ---------- */
.logo-text {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 48px;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.logo-text__name {
  font-family: var(--mincho);
  font-weight: 600;
  font-size: 1em;
  letter-spacing: 0;
  color: #3f8aad;
}
.logo-text__sub {
  margin-top: 0.22em;
  padding: 0.12em 0 0.1em;
  border: max(1.5px, 0.045em) solid var(--blue);
  font-family: var(--sans);
  font-weight: 700;
  font-size: 0.5em;
  letter-spacing: 0.22em;
  text-indent: 0.22em;
  color: var(--blue);
}
.h-logo h1 { line-height: 1; }
.h-logo h1 a { display: inline-block; }
.h-logo .logo-text { font-size: clamp(20px, 2.5vw, 48px); }
.clinic-logo .logo-text { font-size: clamp(24px, 2.5vw, 48px); }
.mv__en { pointer-events: auto; }
@media (max-width: 425px) {
  .h-logo .logo-text { font-size: calc(var(--s) * 24); }
  .clinic-logo .logo-text { font-size: calc(var(--s) * 28); }
}
.logo-text__sub { padding: 0.28em 0 0.24em; font-size: 0.52em; }

/* ---------- フォントウェイトを XD に合わせる ---------- */
.black-bg ul li a { font-family: var(--mincho); font-weight: 600; letter-spacing: 0.05em; color: var(--navy); }
.hamb-text { font-family: var(--sans); font-weight: 400; letter-spacing: 0.1em; }
.note-title,
.note-text,
.accordion-content p,
.clinic-address { font-family: var(--sans); font-weight: 400; }
.note-title { font-size: calc(var(--u) * 20); }
.note-text { font-size: calc(var(--u) * 20); line-height: 2.4; }
.accordion-title { font-family: var(--mincho); font-weight: 400; }
.accordion-content p { line-height: 2.4; }
.copyright { font-family: var(--sans); font-weight: 300; }
.flow-step__num { font-weight: 300; }
.fee-table th { font-weight: 400; }
@media (max-width: 425px) {
  .note-text { font-size: calc(var(--s) * 14); line-height: 2.1; }
  .accordion-content p { line-height: 2.1; }
}

/* メニュー：狭い画面でも外側をクリックして閉じられるよう幅を制限 */
.black-bg { width: min(780px, 85vw); right: calc(min(780px, 85vw) * -1); }
.black-bg.open { right: 0; }
@media (max-width: 425px) { .black-bg { width: 70%; right: -70%; } .black-bg.open { right: 0; } }

/* 文字を選択しやすく：中央揃えの対象を1要素に、装飾はクリック対象外に */
.counseling__badge::before,
.counseling__list li::before { pointer-events: none; }
.thought-circles__jp,
.thought-circles__en { display: block; text-align: center; }
.counseling__list li p span,
.consult-list li p span { white-space: nowrap; }


/* 注意点・リスク・副作用：文字サイズは公開中サイトと同じに戻す */
.note-title { font-size: 24px; line-height: 2; }
.note-text { font-size: 18px; line-height: 2; }
@media (max-width: 1280px) { .note-text { font-size: 16px; } }
@media (max-width: 425px) { .note-title { font-size: 20px; } .note-text { font-size: 15px; line-height: 2; } }
/* 注意点・リスク・副作用：書体も公開中サイトと同じ明朝に戻す */
.note-title, .note-text { font-family: "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif; }

/* ==========================================================
   公開中サイトの見た目に合わせる（2026-11-12 本人指示）
   デザインと公開中が違う場合は公開中を正とする。
   公開中の画像がセクションごとに何倍で表示されていたかを --u に入れ直す。
   ========================================================== */
:root {
  --orig: "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

/* --- もともとテキストだった部分：公開中の書体・太さ・行間に戻す --- */
.black-bg ul li a { font-family: var(--orig); font-weight: bold; letter-spacing: normal; color: #0F285C; }
.hamb-text { font-family: var(--orig); font-weight: normal; letter-spacing: normal; }
.note-title, .note-text { font-family: var(--orig); }
.accordion-title { font-family: var(--orig); font-weight: normal; line-height: 2.5; }
.accordion-content p { font-family: var(--orig); line-height: 2.5; }
.clinic-address, .copyright { font-family: var(--orig); font-weight: normal; }
@media (max-width: 1280px) { .accordion-title { line-height: 2; } }
@media (max-width: 425px) {
  .accordion-title { line-height: 1.5; }
  .note-title { font-size: 24px; }
  .note-text { font-size: 16px; line-height: 2; }
}

/* --- セクションごとの表示倍率（PC：公開中の画像幅 ÷ 元画像幅） --- */
.reason { --u: min(1px, calc(100vw / 1686)); padding: 90px 0 150px; }
.reason .reason-card { --u: min(1px, calc(100vw / 1542)); }
.facility { --u: min(1px, calc(95vw / 1730)); }
.merit { --u: min(1px, calc(min(95vw, 1740px) * 0.31 / 545)); width: min(95vw, 1740px); column-gap: calc(min(95vw, 1740px) * 0.035); }
.greeting { --u: min(1px, calc(100vw / 1617)); }
.clinic-access { --u: min(1px, calc(89vw / 1686)); margin: 100px auto; }
.hours { --u: min(1px, calc(48vw / 836)); }
#interview .sec-head { --u: 1px; }
#clinic .sec-head { --u: 1px; }
#qa .sec-head { --u: 1px; }
.icon-q { font-size: 135px; }

/* 院長紹介：公開中の画像（1617幅）の配置に合わせる */
.greeting__inner { gap: calc(var(--u) * 87); margin-top: calc(var(--u) * 115); padding-right: 0; }
.greeting__photo { flex: 0 0 calc(var(--u) * 589); margin-top: calc(var(--u) * 130); }
.greeting__photo img { aspect-ratio: 589 / 690; }
.greeting__name { padding: calc(var(--u) * 33) 0; font-size: calc(var(--u) * 48); }
.greeting__name span { font-size: 0.58em; }
.career { width: calc(var(--u) * 760); margin: calc(var(--u) * 110) 0 0 calc(var(--u) * 64); padding: calc(var(--u) * 60) calc(var(--u) * 64) calc(var(--u) * 60); }
.career__list { grid-template-columns: calc(var(--u) * 215) 1fr; padding: 0 calc(var(--u) * 30); }

/* 縮まないボタン類（公開中は原寸の画像） */
.h-contact .btn-tel, .clinic-bunner .btn-tel { width: 428px; height: 122px; font-size: 39px; }
.h-contact .btn-web, .clinic-bunner .btn-web { width: 216px; height: 122px; font-size: 22px; }
.btn-web__24 { font-size: 0.68em; }
.clinic-bunner { gap: 0; justify-content: space-between; max-width: 660px; width: 95%; }
.clinic-bunner .btn-tel, .clinic-bunner .btn-web { flex-shrink: 1; }
.fee .deduction__btn { width: 397px; height: 72px; box-sizing: border-box; padding: 0 40px 0 0; display: inline-grid; place-items: center; font-size: 30px; }
.deduction__btn::after { right: 30px; }

/* 電話・WEB予約の大ボタン（公開中：70%幅の中に48%ずつ） */
.counseling__btns, .flow-free__btns { width: min(70vw, 1270px); justify-content: space-between; gap: 0; }
.counseling__btns .btn-tel, .counseling__btns .btn-web,
.flow-free__btns .btn-tel, .flow-free__btns .btn-web {
  width: 48%;
  height: auto;
  aspect-ratio: 603 / 173;
  font-size: calc(min(70vw, 1270px) * 0.48 / 603 * 52);
}

/* ロゴ（公開中：ヘッダーは幅40%の枠内で縮小、医院紹介・フッターは原寸） */
.h-logo .logo-text { font-size: calc(min(631px, 40vw - 86px) * 48 / 631); }
.clinic-logo .logo-text { font-size: 48px; }

@media (max-width: 1280px) {
  .h-contact .btn-tel { width: 210px; height: 60px; font-size: 19px; }
  .h-contact .btn-web { width: 106px; height: 60px; font-size: 11px; }
  .h-contact { margin-right: 80px; }
  .h-logo .logo-text { font-size: calc(min(631px, 40vw - 30px) * 48 / 631); }
  .merit { --u: min(1px, calc(min(95vw, 1740px) * 0.48 / 545)); grid-template-columns: repeat(2, 1fr); column-gap: calc(min(95vw, 1740px) * 0.04); }
  .hours { --u: min(1px, calc(95vw / 836)); }
  #interview .sec-head { --u: calc(60vw / 915); }
  #clinic .sec-head { --u: calc(35vw / 563); }
  #qa .sec-head { --u: calc(25vw / 351); }
  .fee .deduction__btn { width: 25vw; height: calc(25vw * 72 / 397); font-size: calc(25vw * 30 / 397); padding-right: calc(25vw * 40 / 397); }
  .deduction__btn::after { right: calc(25vw * 30 / 397); }
}

/* --- SP（425px以下）：公開中のSP画像（XD SP 430幅）の文字サイズ・配置に合わせる --- */
@media (max-width: 425px) {
  .mv__catch { font-size: calc(var(--s) * 35); }
  .sec-head__en { font-size: calc(var(--s) * 48); letter-spacing: 0.08em; }
  #consultation .sec-head__en { font-size: calc(var(--s) * 44); }
  #interview .sec-head, #clinic .sec-head, #qa .sec-head { --u: 1px; }
  .sec-head__sub { font-size: calc(var(--s) * 13); }
  .sec-head__ttl { font-size: calc(var(--s) * 24); }

  .pro-item__sub { font-size: calc(var(--s) * 17); }
  .pro-item__ttl { font-size: calc(var(--s) * 23); }
  .pro-item__txt, .reason__txt, .what__txt, .merit__txt, .bone-lead__txt, .bone__txt, .denture__txt,
  .thought-hero__txt, .thought-row__txt, .thought-close__txt, .greeting__txt, .flow-step__txt, .deduction__txt { font-size: calc(var(--s) * 16); line-height: 2.25; }
  .reason { padding: calc(var(--s) * 45) calc(var(--s) * 13) calc(var(--s) * 40); }
  .reason__band { font-size: calc(var(--s) * 24); }
  .reason__ttl, .reason-card__ttl, .facility__ttl { font-size: calc(var(--s) * 23); }
  .reason-card__txt, .facility__txt { font-size: calc(var(--s) * 20); line-height: 2.4; }
  .facility { --u: 1px; }
  .merit { --u: 1px; width: auto; column-gap: 0; grid-template-columns: 1fr; }

  .consult-list__num { font-size: calc(var(--s) * 43); }
  .consult-list li p { font-size: calc(var(--s) * 16); }

  .what__sub { font-size: calc(var(--s) * 24); }
  .what__ttl { font-size: calc(var(--s) * 40); }
  .band { font-size: calc(var(--s) * 24); }
  .merit__ttl { font-size: calc(var(--s) * 26); }
  .bone-lead__ttl { font-size: calc(var(--s) * 23); }
  .bone__ttl { font-size: calc(var(--s) * 27); }
  .denture__ttl { font-size: calc(var(--s) * 23); }
  .denture__en { font-size: calc(var(--s) * 16); }

  /* 考えるインプラント治療 */
  .thought-hero__ttl { font-size: calc(var(--s) * 23); letter-spacing: 0; }
  .thought-hero__txt, .thought-close__txt { line-height: 2.25; }
  .thought-circles { flex-direction: row; gap: calc(var(--s) * 32); margin-top: calc(var(--s) * 30); }
  .thought-circles li { width: calc(var(--s) * 112); height: calc(var(--s) * 112); font-size: calc(var(--s) * 16); box-shadow: inset 0 0 0 calc(var(--s) * 6) #f2f2f2; }
  .thought-circles li .thought-circles__en { margin-top: calc(var(--s) * 6); font-size: calc(var(--s) * 8); }
  .thought-circles li + li::before, .thought-circles li + li::after { left: calc(var(--s) * -27); top: 50%; width: calc(var(--s) * 22); margin-left: 0; }
  .thought-row, .thought-row--rev { display: flex; flex-direction: column; margin: calc(var(--s) * 50) calc(var(--s) * 14) 0; }
  .thought-row__img, .thought-row--rev .thought-row__img { order: -1; margin: 0 0 calc(var(--s) * 30); }
  .thought-row__label, .thought-row--rev .thought-row__label { height: calc(var(--s) * 80); padding: 0; border-radius: calc(var(--s) * 40); background: linear-gradient(to right, #fff, #e9e9e9); font-size: calc(var(--s) * 26); letter-spacing: 0.1em; }
  .thought-row--rev .thought-row__label { background: linear-gradient(to right, #fff, #ebe4d8); }
  .thought-row__sub { font-size: calc(var(--s) * 16); }
  .thought-row__ttl { font-size: calc(var(--s) * 24); }
  .thought-row__en { font-size: calc(var(--s) * 48); text-align: left; }
  .thought-close__ttl { font-size: calc(var(--s) * 23); }

  /* 院長紹介 */
  .greeting { --u: 1px; }
  .greeting__inner { display: block; margin-top: calc(var(--s) * 30); padding: 0 calc(var(--s) * 18); }
  .greeting__photo { margin: 0; }
  .greeting__photo img { aspect-ratio: 402 / 390; }
  .greeting__name { padding: calc(var(--s) * 20) 0; font-size: calc(var(--s) * 32); }
  .greeting__name span { font-size: 0.6em; }
  .greeting__ttl { font-size: calc(var(--s) * 23); text-align: center; }
  .career { width: auto; margin: calc(var(--s) * 50) 0 0; padding: calc(var(--s) * 30) calc(var(--s) * 8); }
  .career__ttl { font-size: calc(var(--s) * 28); padding: calc(var(--s) * 5) 0; }
  .career__list { grid-template-columns: calc(var(--s) * 130) 1fr; row-gap: calc(var(--s) * 6); padding: 0; font-size: calc(var(--s) * 15); }
  .career__list dt { margin-top: 0; color: #000; }

  /* リスク */
  .risk-hero .what__sub, .risk-care .what__sub { font-size: calc(var(--s) * 23); }
  .risk-hero .what__ttl, .risk-care__ttl { font-size: calc(var(--s) * 23); }

  /* 治療の流れ：番号 → 見出し → 写真 → 本文 */
  .flow-step { display: flex; flex-direction: column; gap: 0; padding: calc(var(--s) * 60) calc(var(--s) * 36) calc(var(--s) * 40); }
  .flow-step__body { display: contents; }
  .flow-step__ttl { order: 1; font-size: calc(var(--s) * 36); }
  .flow-step__img { order: 2; margin-top: calc(var(--s) * 40); }
  .flow-step__txt { order: 3; margin-top: calc(var(--s) * 25); }
  .flow-step__num { width: calc(var(--s) * 80); height: calc(var(--s) * 80); font-size: calc(var(--s) * 40); }
  .flow-step::before, .flow-free + .flow-step::before { height: calc(var(--s) * 60); }
  .flow-step { margin-top: calc(var(--s) * 60); }
  .flow-free__txt { font-size: calc(var(--s) * 18); }
  .flow-free__en { font-size: calc(var(--s) * 37); letter-spacing: 0.2em; }

  /* 費用 */
  .fee-table { font-size: calc(var(--s) * 16); }
  .pay__lead { font-size: calc(var(--s) * 23); }
  .pay__list li { font-size: calc(var(--s) * 14); }
  .deduction__ttl { font-size: calc(var(--s) * 23); }
  .fee .deduction__btn { width: 90vw; height: calc(90vw * 72 / 397); font-size: calc(90vw * 30 / 397); padding: 0 calc(90vw * 40 / 397) 0 0; }
  .deduction__btn::after { right: calc(90vw * 30 / 397); }

  /* ボタン（公開中のSP：相談=幅70%、流れ=幅80%、医院紹介=幅いっぱい） */
  .counseling__btns { width: 70vw; flex-direction: column; gap: 20px; }
  .flow-free__btns { width: 80vw; margin-left: auto; margin-right: auto; flex-direction: column; gap: 20px; }
  .counseling__btns .btn-tel, .counseling__btns .btn-web { width: 100%; height: auto; aspect-ratio: 603 / 173; font-size: calc(70vw * 52 / 603); }
  .flow-free__btns .btn-tel, .flow-free__btns .btn-web { width: 100%; height: auto; aspect-ratio: 603 / 173; font-size: calc(80vw * 52 / 603); }
  .clinic-bunner { width: 100%; max-width: none; flex-direction: column; gap: calc(var(--s) * 20); }
  .clinic-bunner .btn-tel { width: 100%; height: auto; aspect-ratio: 428 / 122; font-size: calc(var(--s) * 32); }
  .clinic-bunner .btn-web { width: 100%; height: auto; aspect-ratio: 608 / 173; font-size: calc(var(--s) * 34); }
  .clinic-bunner .btn-tel__label { font-size: 0.5em; }

  /* 医院紹介・その他 */
  .hours { --u: 1px; font-size: calc(var(--s) * 14); }
  .clinic-access { --u: 1px; margin: 50px auto; font-size: calc(var(--s) * 24); }
  .h-logo .logo-text { font-size: calc((70vw - 20px) * 48 / 631); }
  .clinic-logo .logo-text { font-size: calc(90vw * 48 / 631); }
  .icon-q { font-size: 15.8vw; left: 1%; }
}

/* SP：公開中のSP画像は元幅が画像ごとに違う（434/438/446/462/403）ため、セクションごとに倍率を合わせる */
@media (max-width: 425px) {
  .mv { --s: calc(100vw / 434); }
  .counseling { --s: calc(100vw / 446); }
  .professional, .reason, .facility { --s: calc(100vw / 438); }
  .consultation { --s: calc(100vw / 462); }
  .note ~ .band, .bone-lead__ttl, .bone-lead__txt, .bone, .denture { --s: calc(100vw / 438); }
  .thought { --s: calc(100vw / 462); }
  .greeting { --s: calc(100vw / 438); }
  .flow { --s: calc(95vw / 403); }
}

/* 院長紹介の見出し：「す。」だけ折り返さないよう、PCでは行単位で改行しない */
@media (min-width: 425.01px) { .greeting__ttl { white-space: nowrap; } }
/* 住所：公開中はセクションの line-height:0 を継承している */
@media (min-width: 425.01px) { .clinic-address { line-height: 0; } }
@media (min-width: 425.01px) { .greeting__ttl { letter-spacing: 0.03em; } .greeting__inner { padding-right: calc(var(--u) * 10); } }
@media (max-width: 425px) {
  .hours__table th, .hours__table td { padding-left: calc(var(--s) * 3); padding-right: calc(var(--s) * 3); }
  .hours__table tr > :first-child { padding-left: calc(var(--s) * 6); padding-right: calc(var(--s) * 6); }
}

/* 院長紹介：右余白をヘッダー（Menuボタン）の右余白にそろえる。写真との間隔はその分詰める */
@media (min-width: 425.01px) {
  .greeting__inner { padding-right: 30px; gap: max(20px, calc(var(--u) * 97 - 30px)); }
}
@media (min-width: 425.01px) and (max-width: 1280px) {
  .greeting__inner { padding-right: 15px; gap: max(20px, calc(var(--u) * 97 - 15px)); }
}

/* Q：色は白（公開中と同じ）。質問文が折り返さないよう右余白は「＋」が重ならない最小限に */
.icon-q { color: #fff; }
.accordion-title { padding-right: 52px; }
@media (max-width: 425px) { .accordion-title { padding-right: 50px; } }
/* 質問文を1行に収める：いちばん長い質問（約43文字分）が入る大きさまでだけ縮める。上限は公開中の28px/18px */
.accordion-title { font-size: min(28px, calc((min(95vw, 1550px) * 0.9 - 52px) / 43)); }
@media (max-width: 1280px) {
  .accordion-title { font-size: max(14px, min(18px, calc((95vw * 0.82 - 52px) / 43))); }
}
@media (max-width: 425px) { .accordion-title { font-size: 16px; } }

/* Q の位置・大きさを公開中（画像 109x191、下端 -3%、左 1%）と同じに。文字の描画範囲で一致させた値 */
.icon-q { font-size: 120.6px; top: calc(103% - 152.7px); bottom: auto !important; left: calc(1% + 1px); transform: none; }
@media (max-width: 425px) {
  /* 公開中SP：幅13%・下端22%（画像倍率 f = 0.13 × 95vw ÷ 109） */
  .icon-q { font-size: 13.66vw; top: calc(78% - 17.3vw); left: calc(1% + 0.11vw); }
}
/* 質問欄の高さは公開中と同じ 130px（height 70px ＋ 上下 padding 30px）を保つ */
@media (min-width: 425.01px) { .accordion-title { min-height: 130px; } }
/* Q：グレーの枠の上下中央に収める（文字の描画範囲 高さ117px の中心を枠の中心に） */
.icon-q { top: calc(50% - 72.2px); }
@media (max-width: 425px) { .icon-q { top: calc(50% - 8.18vw); } }

/* SP 無料相談バナー：グレー枠の位置を公開中（446幅で 左30／右14）に合わせる */
@media (max-width: 425px) {
  .counseling__box { margin-right: calc(var(--s) * 14); }
}
/* 医院紹介・フッターのロゴ：公開中は枠幅に合わせて縮む（img max-width:100%） */
.clinic-logo .logo-text { font-size: min(48px, calc(48vw * 48 / 631)); }
@media (max-width: 1280px) { .clinic-logo .logo-text { font-size: min(48px, calc(95vw * 48 / 631)); } }
@media (max-width: 425px) { .clinic-logo .logo-text { font-size: calc(90vw * 48 / 631); } }
/* SP 注意点の枠：公開中と同じ左右20px */
@media (max-width: 425px) { .treatment .note { margin: 50px 20px 50px; } }
/* SP 設備カード：左右の余白を上のセクション（ジンヴィの枠：外14・内12）に合わせて詰め、見出しの不自然な改行をなくす */
@media (max-width: 425px) {
  .facility { margin-left: calc(var(--s) * 14); margin-right: calc(var(--s) * 14); }
  .facility__item { padding-left: calc(var(--s) * 12); padding-right: calc(var(--s) * 12); }
}

/* SP：見出しの意図しない改行をなくす（公開中SPと同じ行分け） */
@media (max-width: 425px) {
  .what__box { padding-left: calc(var(--s) * 10); padding-right: calc(var(--s) * 10); }
  .what__ttl { letter-spacing: 0.02em; }
  .risk-care { padding-left: calc(var(--s) * 8); padding-right: calc(var(--s) * 8); }
  .risk-care .what__sub { letter-spacing: 0.04em; }
  .flow-step { padding-left: calc(var(--s) * 12); padding-right: calc(var(--s) * 12); }
  .flow-step__ttl { letter-spacing: 0.05em; }
  .flow-step__img, .flow-step__txt { margin-left: calc(var(--s) * 22); margin-right: calc(var(--s) * 22); }
  .pay { padding-left: calc(var(--s) * 6); padding-right: calc(var(--s) * 6); }
  .pay__lead { letter-spacing: 0.06em; }
}
@media (max-width: 425px) { .flow-step__ttl { letter-spacing: 0.02em; } .flow-step { padding-left: calc(var(--s) * 10); padding-right: calc(var(--s) * 10); } }

/* SP 本文の字間を詰める（1〜2文字だけの最終行を防ぐ） */
@media (max-width: 425px) {
  .pro-item__txt, .reason__txt, .reason-card__txt, .facility__txt, .what__txt, .merit__txt,
  .bone-lead__txt, .bone__txt, .denture__txt, .thought-hero__txt, .thought-row__txt, .thought-close__txt,
  .greeting__txt, .flow-step__txt, .deduction__txt { letter-spacing: 0; }
}
.u-nowrap { white-space: nowrap; }
/* SP 注意点・リスク・副作用：見出しが1行に収まるよう枠内の左右余白を詰める（文字サイズは公開中のまま） */
@media (max-width: 425px) { .note { padding: 40px 20px; } .note-title { white-space: nowrap; } }
@media (max-width: 425px) { .note-title { font-size: min(24px, calc((100vw - 80px) / 11.2)); } }
/* SP 考えるインプラント治療：ラベル（奥歯で噛める等）を公開中と同じく横幅いっぱい・高さ80の楕円に */
@media (max-width: 425px) {
  .thought-row__label, .thought-row--rev .thought-row__label { flex: none; align-self: stretch; width: auto; height: calc(var(--s) * 80); }
}
@media (max-width: 425px) { .thought-row, .thought-row--rev { margin-left: calc(var(--s) * 30); margin-right: calc(var(--s) * 30); } }
/* SP：BACK TEETH / MEAL / HEALTH を公開中と同じく中央揃え・間隔を合わせる（462幅で 本文→英字 約53、英字→次の写真 約66） */
@media (max-width: 425px) {
  .thought-row__en { text-align: center; margin-top: calc(var(--s) * 40); }
  .thought-row + .thought-row { margin-top: calc(var(--s) * 58); }
}
@media (max-width: 425px) { .thought-row__en { margin-top: calc(var(--s) * 29); } .thought-row + .thought-row { margin-top: calc(var(--s) * 60); } }

/* 締めブロック（このように皆さんの健康を…）：公開中の色・形に合わせる */
.thought-close { background: url("../img/parts/reason04_02.webp") center / cover no-repeat; }
@media (max-width: 425px) {
  .thought-close {
    margin: calc(var(--s) * 50) calc(var(--s) * 16) 0;
    padding: calc(var(--s) * 120) calc(var(--s) * 14) calc(var(--s) * 45);
    background: url("../img/parts/thought_bg_sp.webp") 18% center / cover no-repeat;
    clip-path: polygon(0 0, 50% calc(var(--s) * 63), 100% 0, 100% 100%, 0 100%);
  }
}
@media (max-width: 425px) { .thought-close { background-size: auto 125%; background-position: 12% 30%; } }
/* SP リスク「術後のメインテナンス・保証制度」カード：公開中SP（430幅）の寸法に合わせる */
@media (max-width: 425px) {
  .risk-care { padding-left: calc(var(--s) * 14); padding-right: calc(var(--s) * 14); }
  .risk-care__card { padding: calc(var(--s) * 32) calc(var(--s) * 16) calc(var(--s) * 40); }
  .risk-care__card .reason-card__img { margin: 0 calc(var(--s) * 18) calc(var(--s) * 28); }
  .risk-care__card .reason-card__txt { font-size: calc(var(--s) * 16); line-height: 2.25; letter-spacing: 0; margin-top: calc(var(--s) * 20); }
}
/* SP 治療の流れ：縦並びで PC 用の flex-basis が高さに効いていたのを解除（写真のはみ出し・見出しの左寄りを修正） */
@media (max-width: 425px) {
  .flow-step__img { flex: none; align-self: stretch; width: auto; }
  .flow-step__ttl { align-self: stretch; text-align: center; }
  .flow-step__txt { align-self: stretch; }
}
@media (max-width: 425px) {
  .flow-list { margin-top: calc(var(--s) * 75); }
  .flow-step { padding-top: calc(var(--s) * 50); }
  .flow-step__txt { margin-left: calc(var(--s) * 26); }
}

/* 大きいWEB予約ボタン：公開中の画像（608幅）では「WEB予約」約31px・「24時間受付中」約20px。電話番号基準(52)になっていたのを修正 */
.counseling__btns .btn-web, .flow-free__btns .btn-web { font-size: calc(min(70vw, 1270px) * 0.48 / 608 * 31); }
.counseling__btns .btn-web .btn-web__icon, .flow-free__btns .btn-web .btn-web__icon { margin: 0.15em 0; }
@media (max-width: 425px) {
  .counseling__btns .btn-web { font-size: calc(70vw * 31 / 608); }
  .flow-free__btns .btn-web { font-size: calc(80vw * 31 / 608); }
  .clinic-bunner .btn-web { font-size: calc(100vw * 0.9 * 31 / 608); }
  /* 治療の流れ：縦の間隔を公開中に合わせる（403幅で 見出し→01 約54、01→見出し 約29、見出し→写真 約82） */
  .flow-list { margin-top: calc(var(--s) * 86); }
  .flow-step { padding-top: calc(var(--s) * 58); }
  .flow-step__img { margin-top: calc(var(--s) * 34); }
}
/* SP 無料相談：見出しとバッジが近いので枠内の上余白を広げる */
@media (max-width: 425px) { .counseling__box { padding-top: calc(var(--s) * 72); background: linear-gradient(var(--bg-gray) 0, var(--bg-gray) calc(var(--s) * 385), #fff calc(var(--s) * 385)); } }

/* SP：無料相談まわりの余白（写真との間・説明文とバッジの間）を広げる */
@media (max-width: 425px) {
  .counseling { padding-top: calc(var(--s) * 28); }
  .counseling__badge { top: calc(var(--s) * 128); }
  .counseling__box { margin-top: calc(var(--s) * 63); }
  /* 大きいWEB予約ボタン：文字の上下に電話ボタンと同程度の余白 */
  .counseling__btns .btn-web, .flow-free__btns .btn-web, .clinic-bunner .btn-web { line-height: 1.15; }
  .counseling__btns .btn-web .btn-web__icon, .flow-free__btns .btn-web .btn-web__icon { margin: 0.05em 0; }
}
@media (max-width: 425px) { .clinic-address { box-sizing: border-box; } }

/* 医院紹介・フッターの電話ボタン：公開中（clinic-tel）は青い枠線なしの灰色 */
.btn-tel--gold { box-shadow: none; }
/* 公開中と同じく、枠に収まらないときはWEB予約ボタンが下に回り込む（縮めない） */
.clinic-bunner { flex-wrap: wrap; justify-content: space-between; }
.clinic-bunner .btn-tel, .clinic-bunner .btn-web { flex-shrink: 0; }
@media (max-width: 425px) {
  .clinic-bunner { width: 90.3vw; margin-left: auto; margin-right: auto; }
  /* ロゴ：枠からはみ出して右に寄らないよう、枠の幅に収める */
  .clinic-logo .logo-text { font-size: calc((100vw - 60px) / 13.6); }
  /* ハンバーガーメニュー：横幅いっぱいに開く */
  .black-bg { width: 100%; right: -100%; }
  .black-bg.open { right: 0; }
}
@media (max-width: 425px) { #footer .clinic-left { margin-left: 0; margin-right: 0; } }
/* 電話アイコン：受話器が青い円からはみ出して見えないよう、円を少し大きく・受話器を少し小さく
   （円の直径：番号の0.77em→0.84em、受話器：番号の0.55em→0.46em） */
.btn-tel__num::before { font-size: 0.46em; width: 1.83em; height: 1.83em; }
/* 灰色の電話ボタン：縁の青い線を消す（全箇所） */
.btn-tel { box-shadow: none; }

/* メニュー：780px以下は横幅いっぱいに開く。文字が右の三角に重ならないよう右に余白 */
.black-bg ul li a { padding-right: 40px; }
@media (max-width: 780px) {
  .black-bg { width: 100%; right: -100%; }
  .black-bg.open { right: 0; }
}
@media (max-width: 425px) { .black-bg ul li a { padding-right: 30px; } }
