/*-------fv------*/
.p-index-fv {
  position: relative;
}
/* トップFV（背景＝一枚画像／各要素を重ねる） */
.p-fv {
  position: relative;
  min-height: clamp(560px, 54.7vw, 788px);
  overflow: hidden;
}
.p-fv__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}
/* キャッチコピー */
.p-fv__catch {
  position: absolute;
  top: 28%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  padding-inline: 20px;
  color: #000;
  text-align: center;
  /* 黒文字＋白フチ（白線を文字の背面に描いて黒を太らせない） */
  -webkit-text-stroke: clamp(2px, 0.34vw, 5px) #fff;
  paint-order: stroke fill;
}
.p-fv__lead {
  margin-bottom: clamp(16px, var(--px-28), 28px);
  font-size: clamp(20px, var(--px-36), 36px);
  font-weight: 700;
  line-height: 1.2;
}
.p-fv__ttl {
  font-size: clamp(26px, var(--px-48), 48px);
  font-weight: 700;
  line-height: 1.4;
}
/* よくあるご質問ボックス（左下） */
.p-fv-qa {
  position: absolute;
  left: clamp(16px, 5.55%, 83px);
  bottom: clamp(20px, 10.6%, 84px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(6px, var(--px-10), 10px);
  width: clamp(260px, var(--px-334), 334px);
  padding: clamp(12px, var(--px-16), 16px);
  background: #e9f6e0;
  box-shadow: 2px 4px 0 0 #bae0a0;
  color: var(--b-color);
}
.p-fv-qa::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed #9cbe30;
  pointer-events: none;
}
.p-fv-qa__sub {
  font-size: clamp(12px, var(--px-14), 14px);
  line-height: 1.2;
}
.p-fv-qa__main {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #9cbe30;
  font-size: clamp(18px, var(--px-24), 24px);
  line-height: 1.2;
}
.p-fv-qa__icon {
  width: clamp(18px, var(--px-20), 20px);
  height: auto;
}
.p-fv-qa__arrow {
  width: 8px;
  height: 8px;
  border-right: 2px solid #9cbe30;
  border-bottom: 2px solid #9cbe30;
  transform: rotate(-45deg);
}
/* 右下バッジ（背景画像を用意して差し込む） */
.p-fv-badges {
  position: absolute;
  right: clamp(16px, 5.55%, 80px);
  bottom: clamp(16px, 4.7%, 37px);
  display: flex;
  gap: clamp(8px, var(--px-12), 12px);
}
.p-fv-badge {
  display: grid;
  place-items: center;
  width: clamp(130px, 13vw, 188px);
  aspect-ratio: 1 / 1;
  padding: 10px;
  background: url(../img/index/fv-badge.webp) center / contain no-repeat;
  color: #008796;
  font-size: clamp(14px, var(--px-24), 24px);
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}
/* PC/SP切替（バッジ文言・キャッチの改行はデフォルト非表示） */
.p-fv-badge__sp,
.u-br-sp {
  display: none;
}
/* --- FV（SP：Figma 375基準） --- */
@media screen and (max-width: 680px) {
  /* 背景をSP用画像へ差し替え（PCの1枚画像は隠す） */
  .p-fv {
    min-height: 0;
    aspect-ratio: 375 / 649;
    background: url(../img/index/fv-bg-sp.jpg) center / cover no-repeat;
  }
  .p-fv__bg {
    display: none;
  }
  /* PC/SP切替 */
  .p-fv-badge__pc {
    display: none;
  }
  .p-fv-badge__sp {
    display: block;
  }
  .u-br-sp {
    display: inline;
  }
  /* キャッチコピー（黒文字＋白フチは共通ルールを継承／4行組み） */
  .p-fv__catch {
    top: 20.3%;
    padding-inline: 10px;
  }
  .p-fv__lead {
    margin-bottom: clamp(10px, 3.7vw, 14px);
    font-size: clamp(17px, 5.33vw, 20px);
  }
  .p-fv__ttl {
    font-size: clamp(20px, 6.4vw, 24px);
    line-height: 1.7;
  }
  /* バッジ（中央に円形2つ／文字色は個別） */
  .p-fv-badges {
    top: 55.8%;
    right: auto;
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
    gap: 2.4vw;
  }
  .p-fv-badge {
    width: 35.7vw;
    max-width: 160px;
    padding: 6px;
    border-radius: 50%;
    font-size: clamp(13px, 4.27vw, 16px);
    line-height: 1.4;
  }
  .p-fv-badge--1 {
    color: #009640;
  }
  .p-fv-badge--2 {
    color: #008796;
  }
  /* よくあるご質問（中央・小型／上に緑ピル） */
  .p-fv-qa {
    top: 80.6%;
    right: auto;
    bottom: auto;
    left: 50%;
    transform: translateX(-50%);
    width: min(70.4vw, 320px);
    padding: clamp(10px, 3.2vw, 12px) clamp(12px, 4.3vw, 16px);
    gap: clamp(8px, 2.9vw, 11px);
  }
  .p-fv-qa::after {
    inset: clamp(3px, 1.1vw, 4px);
  }
  .p-fv-qa__sub {
    align-self: stretch;
    padding: clamp(4px, 1.3vw, 5px) 10px;
    background: #9cbe30;
    border-radius: 999px;
    color: #fff;
    font-size: clamp(10px, 3.2vw, 12px);
    text-align: center;
  }
  .p-fv-qa__main {
    font-size: clamp(14px, 4.27vw, 16px);
  }
}
/* =====================================================
  TOP（front-page.php）2セクション目以降
===================================================== */
/* 丸もや（5か所）※ベースは common.css の .c-moya / .c-moya-wrap */
.c-moya--1 {
  top: 14%;
  left: 72%;
  width: clamp(260px, 41vw, 591px);
}
.c-moya--2 {
  top: 32%;
  left: 0;
  transform: translateX(-50%);
}
.c-moya--3 {
  top: 37%;
  left: 78%;
}
.c-moya--4 {
  top: 62%;
  left: 76%;
}
.c-moya--5 {
  top: 75%;
  left: 20%;
}
/* 共通：セクション余白 */
.p-top2 .l-inner {
  padding-bottom: clamp(50px, var(--px-90), 90px);
}
/* 英字見出し（NEWS / INFORMATION / ACCESS） */
.c-info-box__en {
  font-size: clamp(26px, var(--px-36), 36px);
  letter-spacing: 0.09em;
  line-height: 1.1;
  text-align: center;
}
.c-info-box__en .is-first {
  color: #f79428;
}
.c-info-box__ja {
  margin-top: 4px;
  color: #9cbe30;
  font-size: clamp(15px, var(--px-20), 20px);
  text-align: center;
}
/* NEWS / 診療時間 / アクセス（外枠の色帯＋白い内側／全幅） */
.p-top-info__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}
.p-top-info__col {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, var(--px-40), 40px);
  padding: 20px clamp(10px, var(--px-45), 45px);
}
.p-top-info__col--green {
  background: #e9f6e0;
}
.p-top-info__col--blue {
  background: #e0ebf6;
}
.c-info-box {
  display: flex;
  flex-direction: column;
  padding: clamp(20px, var(--px-20), 20px);
  background: #fff;
  height: 100%;
}
.c-info-box .c-hours {
  padding-top: 0;
}
/* お知らせリスト（最大15件・枠内スクロール） */
.c-news {
  flex: 1;
  min-height: 0; /* flex子で overflow を効かせるため */
  max-height: clamp(280px, 39vw, 560px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.c-news__item {
  border-bottom: 1px dashed #bae0a0;
}
.c-news__link {
  display: block;
  padding-block: clamp(10px, var(--px-16), 16px);
  padding-right: 4px;
}
.c-news__date {
  display: inline-block;
  padding: 3px clamp(10px, var(--px-14), 14px);
  background: #9cbe30;
  border-radius: 999px;
  color: #fff;
  font-size: clamp(12px, var(--px-14), 14px);
  line-height: 1.5;
}
.c-news__text {
  display: block;
  margin-top: clamp(6px, var(--px-10), 10px);
  font-size: clamp(14px, var(--px-16), 16px);
  line-height: 1.6;
}
.c-info-box__access {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, var(--px-20), 20px);
  text-align: center;
}
.c-info-box__access img {
  width: min(100%, clamp(240px, var(--px-420), 420px));
}
/* CONCEPT / 医院について
   背景は cobg.jpg を疑似要素で2枚（Figmaの image12 / image13 相当）。
   1枚目＝左上から 幅50%・高さ844px、2枚目＝右側「笑顔を支える」の中ほどから 幅50%・高さ724px。
   どちらも写真・テキストの下に敷く。 */
.p-concept-wrap {
  position: relative;
  padding-block: clamp(40px, 6.67vw, 96px) clamp(30px, 4vw, 60px);
}
.p-concept-wrap::before,
.p-concept-wrap::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 50%;
  background: url(../img/index/cobg.jpg) center / cover no-repeat;
  pointer-events: none;
}
/* 1枚目：左上 */
.p-concept-wrap::before {
  top: 0;
  left: 0;
  height: clamp(300px, 58.6vw, 844px);
}
/* 2枚目：右側・「笑顔を支える」の半分あたりから */
.p-concept-wrap::after {
  top: clamp(150px, var(--px-450), 450px);
  right: 0;
  height: clamp(260px, 50.3vw, 724px);
}
/* CONCEPT */
.p-concept__en {
  padding-left: clamp(20px, 6.25%, 90px);
  color: #bae0a0;
  font-size: clamp(40px, var(--px-96), 96px);
  letter-spacing: 0.06em;
  line-height: 1.2;
}
.p-concept__cols {
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, var(--px-40), 40px);
}
/* 写真は画面左端まで到達させる */
.p-concept__img {
  flex: 0 0 53.7%;
}
.p-concept__img img {
  display: block;
  width: 100%;
  aspect-ratio: 773 / 516;
  object-fit: cover;
}
.p-concept__body {
  flex: 1;
  padding-right: clamp(20px, 5.55%, 80px);
  text-align: center;
}
.p-concept__catch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, var(--px-26), 26px);
}
/* キャッチはグラデの帯 */
.p-concept__catch-line {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 422px);
  min-height: clamp(48px, 5.42vw, 78px);
  padding: 10px;
  background: linear-gradient(to bottom, #e9f6e0, #e0ebf6);
  font-size: clamp(22px, var(--px-48), 48px);
  font-weight: 400;
  line-height: 1.2;
}
.p-concept__sub {
  margin-top: clamp(16px, var(--px-30), 30px);
  font-size: clamp(17px, var(--px-32), 32px);
  line-height: 1.65;
}
/* 医院について */
.p-about {
  margin-top: clamp(40px, var(--px-60), 60px);
}
.p-about__cols {
  display: flex;
  align-items: center;
  gap: clamp(20px, var(--px-40), 40px);
}
.p-about__body {
  flex: 1;
  padding-left: clamp(20px, 5.55%, 80px);
}
.p-about__ttl {
  position: relative;
  margin-bottom: clamp(20px, var(--px-30), 30px);
  padding-bottom: clamp(16px, var(--px-24), 24px);
  font-size: clamp(20px, var(--px-32), 32px);
  font-weight: 400;
  line-height: 1.45;
  text-align: center;
}
.p-about__ttl::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: clamp(40px, var(--px-63), 63px);
  height: 1px;
  background: #9cbe30;
}
.p-about__text {
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.8;
  letter-spacing: 0.02em;
}
/* 写真は画面右端まで到達させる */
.p-about__img {
  position: relative;
  flex: 0 0 53.7%;
}
.p-about__img img {
  display: block;
  width: 100%;
  aspect-ratio: 773 / 515;
  object-fit: cover;
}
/* 名前プレート（白地＋黒枠）を写真に重ねる */
.p-about__name {
  position: absolute;
  right: clamp(12px, 5.6vw, 80px);
  bottom: clamp(12px, 3.7vw, 53px);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(200px, 28.7vw, 413px);
  min-height: clamp(56px, 8.7vw, 125px);
  padding: 10px 20px;
  background: #fff;
  border: 1px solid #000;
  font-size: clamp(14px, var(--px-24), 24px);
  line-height: 1.4;
  text-align: center;
}
/* 選ばれる6つの理由 */
/* 縦書き見出し（各列の右に罫線・全体を中央寄せ） */
.p-reason__head {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(4px, var(--px-8), 8px);
  margin-bottom: 0;
  position: relative;
  z-index: 1;
}
.p-reason__head-sub,
.p-reason__head-main {
  writing-mode: vertical-rl;
  padding-right: clamp(6px, var(--px-13), 13px);
  border-right: 1px solid #000;
  font-size: clamp(24px, var(--px-44), 44px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
}

/* REASON01 / 02（画像は外側の画面端まで到達） */
.c-reason {
  display: flex;
  align-items: center;
}
.c-reason + .c-reason {
  margin-top: clamp(50px, var(--px-90), 90px);
}
.c-reason--rev {
  flex-direction: row-reverse;
}
.c-reason__img {
  position: relative;
  flex: 0 0 46.8%;
}
.c-reason__img img {
  display: block;
  width: 100%;
  aspect-ratio: 674 / 450;
  object-fit: contain;
}
/* 円グラフ（家族みんなのお口の健康を支える）を写真に重ねる */
.c-reason__circle {
  position: absolute;
  top: 50%;
  left: -2.8%;
  width: 88.6%;
  aspect-ratio: 597 / 626;
  object-fit: contain;
  pointer-events: none;
}
.c-reason__body {
  flex: 0 1 clamp(280px, 40.97vw, 590px);
  min-width: 0;
  margin-inline: auto;
}
.c-reason__en {
  margin-bottom: clamp(8px, var(--px-16), 16px);
  color: #f79428;
  font-size: clamp(18px, var(--px-24), 24px);
  letter-spacing: 0.06em;
  text-align: center;
}
.c-reason__ttl {
  margin-bottom: clamp(16px, var(--px-24), 24px);
  font-size: clamp(20px, var(--px-32), 32px);
  font-weight: 400;
  line-height: 1.45;
  text-align: center;
}
.c-reason__text {
  font-size: clamp(14px, var(--px-16), 16px);
  line-height: 1.8;
  letter-spacing: 0.02em;
  -webkit-text-stroke: 1px #fff;
  paint-order: stroke fill;
}

/* REASON01：背景の帯（左端から92.6%幅）＋円グラフのはみ出し分を確保 */
.c-reason--lead {
  position: relative;
  padding-bottom: clamp(110px, var(--px-150), 150px);
}
.c-reason--lead::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -7.22vw;
  left: calc(50% - 50vw);
  width: 92.6vw;
  height: 43.3vw;
  background: url(../img/common/reco-bg.jpg) left top / 100% 100% no-repeat;
  pointer-events: none;
}
.c-reason--lead + .c-reason {
  margin-top: clamp(20px, 2.6vw, 37px);
}

/* REASON03（全面画像＋中央テキスト） */
.c-reason--full {
  position: relative;
  display: grid;
  place-items: center;
  min-height: clamp(360px, 43.5vw, 627px);
  margin-top: clamp(50px, var(--px-90), 90px);
  padding: clamp(40px, var(--px-60), 60px) 20px;
  overflow: hidden;
  text-align: center;
}
.c-reason--full .c-reason__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}
.c-reason--full .c-reason__body {
  flex: none;
  max-width: 900px;
}
/* SP */
@media screen and (max-width: 680px) {
  /* NEWS / 診療時間 / アクセス：1列に縦積み（外枠の色帯はそのまま） */
  .p-top-info__col {
    gap: 16px;
    padding: 24px 10px;
  }
  .c-info-box {
    padding: 20px 16px;
  }
  .c-news {
    max-height: 260px;
  }
  .p-top-info__grid {
    grid-template-columns: 1fr;
  }
  /* --- 選ばれる6つの理由（SP） --- */
  .p-reason__head {
    gap: clamp(6px, 2.4vw, 9px);
    margin-bottom: clamp(24px, 9.3vw, 35px);
  }
  .p-reason__head-sub,
  .p-reason__head-main {
    padding-right: clamp(3px, 1.2vw, 5px);
    font-size: clamp(20px, 6.9vw, 26px);
  }
  /* SPは「テキスト → 写真」の順に縦積み */
  .c-reason,
  .c-reason--rev {
    flex-direction: column-reverse;
    gap: clamp(14px, 5.3vw, 20px);
  }
  .c-reason__img,
  .c-reason__body {
    flex: none;
    width: 100%;
    margin-inline: 0;
  }
  .c-reason + .c-reason {
    margin-top: clamp(30px, 12vw, 45px);
  }
  /* 写真は中央に75%幅 */
  .c-reason__img {
    width: 100%;
    margin-inline: auto;
  }
  .c-reason__img img:not(.c-reason__circle) {
    aspect-ratio: auto;
    left: auto;
    width: 72%;
    margin-inline: auto;
  }
  .c-reason__img .c-reason__circle {
    aspect-ratio: auto;
    left: auto;
  }
  .c-reason__body {
    padding-inline: 10px;
  }
  .c-reason__en {
    margin-bottom: clamp(10px, 3.7vw, 14px);
    font-size: clamp(14px, 4.3vw, 16px);
  }
  .c-reason__ttl {
    margin-bottom: clamp(10px, 3.5vw, 13px);
    font-size: clamp(17px, 5.3vw, 20px);
  }
  .c-reason__text {
    font-size: clamp(12px, 3.5vw, 13px);
  }
  /* 円グラフは写真の左右にはみ出して重なる（親の c-moya-wrap でクリップ） */
  .c-reason__circle {
    top: 33.5%;
    left: -23%;
    width: 148.2%;
    aspect-ratio: 418 / 439;
  }
  /* 円グラフのはみ出し分（写真高の約167%）を下に確保 */
  .c-reason--lead {
    padding-bottom: 320px;
  }
  .c-reason--lead + .c-reason {
    margin-top: clamp(10px, 4vw, 15px);
  }
  /* 背景の帯は左端から84.5vw幅 */
  .c-reason--lead::before {
    top: -16.3vw;
    left: calc(50% - 50vw);
    width: 84.5vw;
    height: 107.3vw;
    background: url(../img/index/cobg-sp.jpg) center / 100% 100% no-repeat;
  }

  /* --- CONCEPT / 医院について（SP） --- */
  /* 背景は1枚だけ・全幅 */
  .p-concept-wrap {
    padding-block: clamp(24px, 8vw, 40px) clamp(24px, 8vw, 40px);
  }
  .p-concept-wrap::before {
    width: 100%;
    height: clamp(300px, 117vw, 439px);
  }
  .p-concept-wrap::after {
    display: none;
  }
  /* CONCEPTは中央寄せ */
  .p-concept__en {
    padding-left: 0;
    font-size: clamp(32px, 12.8vw, 48px);
    text-align: center;
  }
  /* SPは「テキスト → 写真」の順 */
  .p-concept__cols {
    flex-direction: column-reverse;
    gap: clamp(20px, 5.4vw, 24px);
  }
  .p-concept__body {
    flex: none;
    width: 100%;
    padding-inline: 10px;
  }
  .p-concept__catch {
    gap: clamp(12px, 4.3vw, 16px);
  }
  .p-concept__catch-line {
    width: min(100%, 240px);
    min-height: clamp(42px, 13vw, 49px);
    font-size: clamp(18px, 6.4vw, 24px);
  }
  .p-concept__sub {
    margin-top: clamp(12px, 4.3vw, 16px);
    font-size: clamp(15px, 5.3vw, 20px);
  }
  /* 写真は中央に75%幅 */
  .p-concept__img,
  .p-about__img {
    flex: none;
    width: 75%;
    margin-inline: auto;
  }
  .p-about {
    margin-top: clamp(24px, 8vw, 40px);
  }
  .p-about__cols {
    flex-direction: column;
    gap: clamp(20px, 5.4vw, 24px);
  }
  .p-about__body {
    flex: none;
    width: 100%;
    padding-inline: 10px;
  }
  .p-about__ttl {
    margin-bottom: clamp(12px, 4.3vw, 16px);
    padding-bottom: clamp(10px, 3.5vw, 13px);
    font-size: clamp(16px, 5.3vw, 20px);
  }
  .p-about__text {
    font-size: clamp(12px, 3.5vw, 13px);
  }
  /* 名前プレートは写真の右下に重ねる */
  .p-about__name {
    right: 4%;
    bottom: 8%;
    min-width: clamp(120px, 41vw, 154px);
    min-height: clamp(44px, 15vw, 56px);
    padding: 6px 10px;
    font-size: clamp(11px, 3.5vw, 13px);
  }
}
/* 丸矢印（円＋白い矢羽根） */
.c-circle-arrow {
  display: grid;
  place-items: center;
  width: clamp(24px, var(--px-32), 32px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #f79428;
}
/* 白い三角（Figma Polygon 8×11） */
.c-circle-arrow::before {
  content: "";
  width: 0;
  height: 0;
  margin-left: 2px;
  border-top: 5.5px solid transparent;
  border-bottom: 5.5px solid transparent;
  border-left: 8px solid #fff;
}
.c-circle-arrow--green {
  background: #9cbe30;
}
/* REASON04-06（3カード） */
.p-reason-cards {
  padding-block: clamp(30px, 6.53vw, 94px);
  background: #f3ffea;
}
/* フェードアップの時間差（カード／メニューを左から順に） */
.p-reason-cards__grid .c-reason-card:nth-child(2) {
  transition-delay: 0.12s;
}
.p-reason-cards__grid .c-reason-card:nth-child(3) {
  transition-delay: 0.24s;
}
.p-menu__grid .c-menu-card:nth-child(3n + 2) {
  transition-delay: 0.08s;
}
.p-menu__grid .c-menu-card:nth-child(3n + 3) {
  transition-delay: 0.16s;
}
/* カード幅398 + 間隔16 の3列（合計1226 / 1440 = 85.14%） */
.p-reason-cards__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, var(--px-16), 16px);
  width: min(100%, 85.14vw);
  margin-inline: auto;
}
.c-reason-card {
  display: flex;
  flex-direction: column;
  padding-bottom: clamp(10px, 1.18vw, 17px);
  background: #fff;
}
/* 写真はカードの右上に接地（264 / 398 = 66.33%） */
.c-reason-card__img {
  width: 66.33%;
  margin-left: auto;
}
.c-reason-card__img img {
  display: block;
  width: 100%;
  aspect-ratio: 264 / 168;
  object-fit: cover;
}
.c-reason-card__en {
  margin-top: clamp(16px, 2.29vw, 33px);
  color: #f79428;
  font-size: clamp(18px, var(--px-24), 24px);
  letter-spacing: 0.06em;
  text-align: center;
}
.c-reason-card__ttl {
  margin-top: clamp(8px, 0.76vw, 11px);
  font-size: clamp(16px, var(--px-24), 24px);
  font-weight: 400;
  line-height: 1.45;
  text-align: center;
}
/* 丸矢印はカード右下 */
.c-reason-card__arrow {
  width: clamp(24px, 2.01vw, 29px);
  margin: clamp(10px, 1.11vw, 16px) clamp(12px, var(--px-24), 24px) 0 auto;
}
/* 診療メニュー（9種） */
.p-menu {
  padding-block: clamp(50px, var(--px-90), 90px);
  background: linear-gradient(120deg, #eafbe4 0%, #f7f6d8 50%, #eafbe4 100%);
}
.p-menu__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(12px, var(--px-24), 24px);
}
.c-menu-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, var(--px-10), 10px);
  width: clamp(140px, 17.5%, 242px);
  aspect-ratio: 242 / 234;
  padding: clamp(14px, var(--px-20), 20px);
  background: #fff;
  text-align: center;
}
.c-menu-card__icon {
  width: clamp(32px, var(--px-44), 44px);
  height: auto;
}
.c-menu-card__ja {
  font-size: clamp(15px, var(--px-20), 20px);
  line-height: 1.3;
}
.c-menu-card__en {
  color: #008796;
  font-size: clamp(10px, var(--px-13), 13px);
  letter-spacing: 0.06em;
  line-height: 1.3;
}
.c-menu-card__arrow {
  position: absolute;
  right: clamp(10px, var(--px-16), 16px);
  bottom: clamp(10px, var(--px-16), 16px);
}
/* 矢印付きボタン（採用情報はこちら等） */
.c-btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, var(--px-14), 14px);
  min-width: clamp(200px, var(--px-239), 239px);
  min-height: clamp(56px, var(--px-72), 72px);
  padding: 10px 24px;
  background: url(../img/common/btn-bg.jpg) center / cover no-repeat;
  color: #009640;
  font-size: clamp(14px, var(--px-16), 16px);
  text-align: center;
}
.c-btn-arrow__icon {
  flex-shrink: 0;
  width: clamp(16px, var(--px-18), 18px);
  height: clamp(16px, var(--px-18), 18px);
  background: url(../img/common/under-arrow.webp) center / contain no-repeat;
}
/* RECRUIT CTA（緑帯の中に白カード。写真はカード上辺・右辺から飛び出して重なる） */
.p-recruit-cta {
  padding-block: clamp(60px, 9.5vw, 137px) clamp(40px, 6.6vw, 95px);
  background: #e9f6e0;
}
.p-recruit-cta__inner {
  position: relative;
  display: flex;
  align-items: center;
  /* カードは写真の高さで伸ばさず、Figmaの固定比率（1280:383）を保つ */
  min-height: clamp(300px, 26.6vw, 383px);
  padding: clamp(36px, var(--px-68), 68px) clamp(20px, var(--px-120), 120px);
  background: #fff;
}
.p-recruit-cta__watermark {
  position: absolute;
  top: clamp(4px, var(--px-14), 14px);
  left: clamp(20px, var(--px-120), 120px);
  color: #e9f6e0;
  font-size: clamp(48px, var(--px-96), 96px);
  letter-spacing: 0.06em;
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}
.p-recruit-cta__body {
  position: relative;
  z-index: 1;
  max-width: clamp(260px, 33vw, 470px);
}
.p-recruit-cta__ttl {
  margin-bottom: clamp(16px, var(--px-24), 24px);
  font-size: clamp(22px, var(--px-32), 32px);
  font-weight: 400;
  line-height: 1.45;
}
.p-recruit-cta__text {
  margin-bottom: clamp(20px, var(--px-32), 32px);
  font-size: clamp(15px, var(--px-24), 24px);
  line-height: 1.45;
  letter-spacing: 0.02em;
}
/* 写真2枚：カードの右上に重ねて配置（上へ40px・右へ47px はみ出し） */
.p-recruit-cta__imgs {
  position: absolute;
  top: clamp(-40px, -2.78vw, -20px);
  right: clamp(-47px, -3.67%, -16px);
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, var(--px-22), 22px);
  width: clamp(360px, 61.25%, 784px);
}
.p-recruit-cta__imgs img {
  width: 100%;
  aspect-ratio: 381 / 350;
  object-fit: cover;
}
/* 画像の無限ループ（Splide） */
.p-loop {
  overflow: hidden;
}
.p-loop .splide__slide img {
  width: 100%;
  aspect-ratio: 264 / 168;
  object-fit: cover;
}
/* SP（最低限） */
@media screen and (max-width: 680px) {
  /* --- REASON03（全面画像）SP --- */
  .c-reason + .c-reason--full {
    margin-top: clamp(40px, 16.5vw, 62px);
  }
  .c-reason--full {
    min-height: clamp(320px, 116.8vw, 438px);
    padding: clamp(28px, 10.7vw, 40px) 10px clamp(26px, 10.1vw, 38px);
  }
  .c-reason--full .c-reason__text {
    text-align: left;
  }

  /* --- REASON04-06 カード SP --- */
  .p-reason-cards {
    padding-block: clamp(20px, 8.5vw, 32px);
  }
  .p-reason-cards__grid {
    grid-template-columns: 1fr;
    gap: clamp(6px, 2.1vw, 8px);
    width: min(100%, 87.5vw);
  }
  .c-reason-card {
    padding-bottom: clamp(14px, 5.6vw, 21px);
  }
  .c-reason-card__img {
    width: 66.5%;
  }
  .c-reason-card__img img {
    aspect-ratio: 218 / 138;
  }
  .c-reason-card__en {
    margin-top: clamp(16px, 6.7vw, 25px);
    font-size: clamp(14px, 4.3vw, 16px);
  }
  .c-reason-card__ttl {
    margin-top: clamp(6px, 2.4vw, 9px);
    font-size: clamp(17px, 5.3vw, 20px);
  }
  .c-reason-card__arrow {
    width: clamp(24px, 7.7vw, 29px);
    margin: clamp(6px, 2.1vw, 8px) clamp(12px, 4.8vw, 18px) 0 auto;
  }
  /* --- 診療メニュー（9種）SP：2列 --- */
  .p-menu {
    padding-block: clamp(28px, 10.7vw, 40px);
  }
  .p-menu .l-inner {
    padding-inline: clamp(8px, 2.7vw, 10px);
  }
  .p-menu__grid {
    justify-content: flex-start;
    gap: clamp(6px, 2.1vw, 8px) clamp(8px, 3.5vw, 13px);
  }
  .c-menu-card {
    justify-content: center;
    gap: 0;
    width: calc((100% - clamp(8px, 3.5vw, 13px)) / 2);
    aspect-ratio: 171 / 166;
    padding: clamp(18px, 6.4vw, 24px) 6px clamp(8px, 2.7vw, 10px);
  }
  .c-menu-card__icon {
    width: auto;
    height: clamp(22px, 7.2vw, 27px);
    object-fit: contain;
  }
  .c-menu-card__ja {
    margin-top: clamp(3px, 1.1vw, 4px);
    font-size: clamp(14px, 4.3vw, 16px);
  }
  .c-menu-card__en {
    margin-top: clamp(5px, 1.9vw, 7px);
    font-size: clamp(10px, 3.2vw, 12px);
  }
  .c-menu-card__arrow {
    right: clamp(8px, 2.7vw, 10px);
    bottom: clamp(8px, 2.7vw, 10px);
    width: clamp(16px, 5.5vw, 21px);
  }

  /* --- RECRUIT SP：縦積み＋写真をボタンの上へ --- */
  .p-recruit-cta {
    padding-block: clamp(28px, 10.7vw, 40px);
  }
  .p-recruit-cta .l-inner {
    padding-inline: clamp(8px, 2.7vw, 10px);
  }
  .p-recruit-cta__inner {
    flex-direction: column;
    align-items: center;
    gap: 0;
    min-height: 0;
    padding: clamp(40px, 14.7vw, 55px) clamp(20px, 7.7vw, 29px)
      clamp(24px, 9.6vw, 36px);
    text-align: center;
  }
  /* 子を直接フレックスアイテム化して並び替える */
  .p-recruit-cta__body {
    display: contents;
  }
  .p-recruit-cta__watermark {
    top: clamp(20px, 8.5vw, 32px);
    left: 50%;
    transform: translateX(-50%);
    font-size: clamp(30px, 10.7vw, 40px);
  }
  .p-recruit-cta__ttl {
    order: 1;
    margin-bottom: clamp(14px, 5.3vw, 20px);
    font-size: clamp(17px, 5.3vw, 20px);
  }
  .p-recruit-cta__text {
    order: 2;
    margin-bottom: clamp(14px, 5.3vw, 20px);
    font-size: clamp(14px, 4.3vw, 16px);
    line-height: 1.45;
  }
  .p-recruit-cta__imgs {
    position: static;
    top: auto;
    right: auto;
    order: 3;
    flex: none;
    width: 100%;
    gap: clamp(6px, 2.1vw, 8px);
    margin-bottom: clamp(12px, 4.3vw, 16px);
  }
  .p-recruit-cta__imgs img {
    aspect-ratio: 144 / 132;
  }
  .p-recruit-cta .c-btn-arrow {
    order: 4;
  }
}
/* =====================================================
  お知らせ（archive.php 一覧 / single.php 詳細）
===================================================== */
.p-news-body,
.p-single-body {
  padding-top: clamp(32px, var(--px-56), 56px);
}
/* --- 一覧：TOPの .c-news を流用（枠内スクロールは解除） --- */
.c-news--archive {
  max-height: none;
  overflow: visible;
}
.c-news--archive .c-news__link {
  display: flex;
  align-items: baseline;
  gap: clamp(10px, var(--px-24), 24px);
  padding-block: clamp(14px, var(--px-22), 22px);
}
.c-news__meta {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: clamp(8px, var(--px-12), 12px);
}
.c-news__cat {
  padding: 2px clamp(8px, var(--px-12), 12px);
  border: 1px solid #9cbe30;
  border-radius: 999px;
  color: #9cbe30;
  font-size: clamp(11px, var(--px-13), 13px);
  line-height: 1.6;
  white-space: nowrap;
}
.c-news--archive .c-news__text {
  margin-top: 0;
  transition: color 0.2s;
}
.c-news--archive .c-news__link:hover .c-news__text {
  color: #f79428;
}
.p-news-body__empty {
  padding-block: clamp(40px, var(--px-80), 80px);
  text-align: center;
}
/* --- ページネーション --- */
.c-pager {
  margin-top: clamp(32px, var(--px-56), 56px);
}
.c-pager .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}
.c-pager .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(6px, var(--px-10), 10px);
}
.c-pager .page-numbers {
  display: grid;
  place-items: center;
  min-width: clamp(38px, var(--px-46), 46px);
  min-height: clamp(38px, var(--px-46), 46px);
  padding: 0 10px;
  border: 1px solid #bae0a0;
  background: #fff;
  color: var(--b-color);
  font-family: "EB Garamond", serif;
  font-size: clamp(15px, var(--px-18), 18px);
  line-height: 1;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s;
}
.c-pager .page-numbers:hover,
.c-pager .page-numbers.current {
  background: #9cbe30;
  border-color: #9cbe30;
  color: #fff;
}
.c-pager .page-numbers.dots {
  border: none;
  background: transparent;
}
/* --- 詳細記事 --- */
.p-single .c-article,
.p-single .c-post-nav {
  max-width: 860px;
  margin-inline: auto;
}
.c-article__head {
  margin-bottom: clamp(20px, var(--px-32), 32px);
  padding-bottom: clamp(16px, var(--px-24), 24px);
  border-bottom: 1px solid #bae0a0;
}
.c-article__meta {
  display: flex;
  align-items: center;
  gap: clamp(8px, var(--px-12), 12px);
  margin-bottom: clamp(12px, var(--px-16), 16px);
}
.c-article__date {
  padding: 3px clamp(10px, var(--px-14), 14px);
  background: #9cbe30;
  border-radius: 999px;
  color: #fff;
  font-size: clamp(12px, var(--px-14), 14px);
  line-height: 1.5;
}
.c-article__cat {
  padding: 2px clamp(8px, var(--px-12), 12px);
  border: 1px solid #9cbe30;
  border-radius: 999px;
  color: #9cbe30;
  font-size: clamp(11px, var(--px-13), 13px);
  line-height: 1.6;
}
.c-article__title {
  font-size: clamp(22px, var(--px-32), 32px);
  font-weight: 500;
  line-height: 1.5;
}
.c-article__thumb {
  margin-bottom: clamp(20px, var(--px-32), 32px);
}
.c-article__thumb img {
  display: block;
  width: 100%;
  height: auto;
}
/* 本文（WordPressエディタ出力） */
.c-article__body {
  font-size: clamp(15px, var(--px-16), 16px);
  line-height: 2;
}
.c-article__body > * + * {
  margin-top: 1.5em;
}
.c-article__body h2 {
  margin-top: 2em;
  padding-left: clamp(10px, var(--px-14), 14px);
  border-left: 4px solid #f79428;
  font-size: clamp(19px, var(--px-24), 24px);
  font-weight: 500;
  line-height: 1.5;
}
.c-article__body h3 {
  margin-top: 1.8em;
  font-size: clamp(17px, var(--px-20), 20px);
  font-weight: 500;
  line-height: 1.5;
}
.c-article__body a {
  color: #009640;
  text-decoration: underline;
}
.c-article__body img {
  height: auto;
}
.c-article__body ul,
.c-article__body ol {
  padding-left: 1.4em;
}
.c-article__body ul {
  list-style: disc;
}
.c-article__body ol {
  list-style: decimal;
}
.c-article__body li + li {
  margin-top: 0.4em;
}
.c-article__body blockquote {
  padding: clamp(14px, var(--px-20), 20px) clamp(16px, var(--px-24), 24px);
  background: #f3ffea;
  border-left: 4px solid #bae0a0;
  color: #555;
}
/* --- 記事下ナビ --- */
.c-post-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(10px, var(--px-16), 16px);
  margin-top: clamp(40px, var(--px-64), 64px);
}
.c-post-nav__link {
  color: #009640;
  font-size: clamp(13px, var(--px-15), 15px);
  transition: opacity 0.2s;
}
.c-post-nav__link--prev {
  justify-self: start;
}
.c-post-nav__link--next {
  justify-self: end;
}
.c-post-nav__link:hover {
  opacity: 0.7;
}
.c-post-nav__link.is-disabled {
  visibility: hidden;
}
.c-post-nav__list {
  display: grid;
  place-items: center;
  justify-self: center;
  min-width: clamp(160px, var(--px-220), 220px);
  min-height: clamp(48px, var(--px-56), 56px);
  padding: 0 24px;
  background: linear-gradient(to bottom, #e9f6e0, #e0ebf6);
  border-radius: 999px;
  font-size: clamp(14px, var(--px-16), 16px);
  transition: opacity 0.2s;
}
.c-post-nav__list:hover {
  opacity: 0.85;
}
/* --- SP --- */
@media screen and (max-width: 680px) {
  .c-news--archive .c-news__link {
    flex-direction: column;
    gap: 6px;
  }
  .c-post-nav {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: clamp(12px, 4vw, 16px);
  }
  .c-post-nav__list {
    order: 1;
  }
  .c-post-nav__link--prev,
  .c-post-nav__link--next {
    order: 2;
    justify-self: center;
  }
}
/* CSS Document */
