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

/* =====================================================
  Components（トップ・下層で共通利用）
===================================================== */

/* ---------- 見出し c-title ---------- */
.c-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.597vw, 23px);
  font-weight: 600;
  text-align: center;
}
.c-title__en {
  display: block;
  font-family: var(--f-en);
  font-size: clamp(28px, 2.778vw, 40px);
  line-height: 1;
  letter-spacing: 0.06em;
}
.c-title__en::first-letter {
  color: var(--c-main);
}
.c-title__ja {
  display: block;
  font-size: clamp(18px, 1.667vw, 24px);
  line-height: 1.25;
}
/* 右に罫線が伸びるタイプ（GREETING） */
.c-title--line {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: clamp(16px, 2.361vw, 34px);
  row-gap: clamp(8px, 0.764vw, 11px);
  text-align: left;
}
.c-title--line::after {
  content: "";
  grid-column: 2;
  grid-row: 1;
  height: 1px;
  background: var(--c-main);
}
.c-title--line .c-title__ja {
  grid-column: 1;
  justify-self: end;
}
/* グラデーション文字（RECRUIT） */
.c-title--grad .c-title__en {
  font-size: clamp(32px, 3.472vw, 50px);
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.c-title--grad .c-title__en::first-letter {
  color: transparent;
}

/* ---------- パララックス見出し c-parallax-head ---------- */
.c-parallax-head {
  position: relative;
  display: grid;
  place-items: center;
  min-height: clamp(240px, 25.417vw, 366px);
  padding-block: 40px;
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: #fff;
}
.c-parallax-head::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.c-parallax-head__title {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2.292vw, 33px);
  font-weight: 600;
}
.c-parallax-head__en {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.5vw, 36px);
  font-family: var(--f-en);
  font-size: clamp(40px, 4.444vw, 64px);
  line-height: 1;
  letter-spacing: 0.05em;
}
.c-parallax-head__en::before,
.c-parallax-head__en::after {
  content: "";
  width: clamp(60px, 15.208vw, 219px);
  height: 1px;
  background: #fff;
}
.c-parallax-head__ja {
  font-size: clamp(22px, 2.083vw, 30px);
  line-height: 1.33;
  letter-spacing: 0.05em;
}

/* ---------- 電話ボックス c-tel ---------- */
.c-tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(220px, 19.375vw, 279px);
  min-height: clamp(76px, 6.944vw, 100px);
  padding: 6px 12px;
  background: var(--c-main);
  color: #fff;
  line-height: 1.3;
}
.c-tel__num {
  display: flex;
  align-items: center;
  gap: 0.2em;
  font-size: clamp(24px, 2.222vw, 32px);
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.c-tel__num img {
  width: 0.84em;
  height: auto;
}
.c-tel__time {
  font-size: clamp(12px, 1.111vw, 16px);
  white-space: nowrap;
}
.c-tel--lg {
  width: min(100%, 334px);
  min-height: 100px;
}
.c-tel--lg .c-tel__num {
  font-size: clamp(28px, 2.5vw, 36px);
}
.c-tel--lg .c-tel__time {
  font-size: 16px;
}

/* ---------- 最寄り駅 c-station ---------- */
.c-station {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5em;
  width: min(100%, 452px);
  min-height: clamp(56px, 5.031vw, 72px);
  padding: 12px 20px;
  border-radius: 9px;
  background: var(--c-pale-pill);
  line-height: 1.6;
}
.c-station img {
  width: 20px;
  height: auto;
}

/* ---------- 診療時間表 c-schedule ---------- */
.c-schedule {
  width: clamp(300px, 31.528vw, 454px);
  max-width: 100%;
}
.c-schedule__table {
  padding: clamp(4px, 0.694vw, 10px) clamp(8px, 1.806vw, 26px) clamp(4px, 0.833vw, 12px);
  border-collapse: separate;
  border-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}
.c-schedule__table th,
.c-schedule__table td {
  height: clamp(36px, 2.986vw, 43px);
  padding: 0;
  font-weight: 600;
  text-align: center;
}
.c-schedule__table th:first-child {
  width: 36%;
  padding-right: 0.5em;
  text-align: left;
}
.c-schedule__table th:last-child,
.c-schedule__table td:last-child {
  width: 15%;
}
.c-schedule__table thead th {
  border-bottom: 1px solid;
}
.c-schedule__dot {
  font-size: 1.15em;
}
.c-schedule__note {
  margin-top: 4px;
  line-height: 1.5;
  text-align: left;
}
/* 白背景（FV） */
.c-schedule--white .c-schedule__table {
  background: rgba(255, 255, 255, 0.9);
}
.c-schedule--white thead th {
  border-color: #333;
}
.c-schedule--white .c-schedule__dot {
  color: var(--c-main);
}
/* 水色背景 */
.c-schedule--blue .c-schedule__table {
  background: var(--c-light);
  color: #fff;
}
.c-schedule--blue thead th {
  border-color: #fff;
}

/* ---------- ボタン c-btn ---------- */
.c-btn {
  position: relative;
  display: flex;
  align-items: center;
  width: clamp(240px, 20.278vw, 292px);
  min-height: clamp(64px, 5.556vw, 80px);
  padding-left: clamp(24px, 2.153vw, 31px);
  overflow: hidden;
  background: #1aa1ff;
  color: #fff;
  font-size: clamp(20px, 1.667vw, 24px);
  letter-spacing: 0.05em;
}
.c-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 41.4%;
  border-top-left-radius: 201px;
  background: #2da9ff;
}
.c-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 7.2%;
  width: 54px;
  height: 9px;
  margin-top: -6px;
  background: url(../img/index/recruit_arrow.svg) no-repeat center / contain;
  transition: transform 0.3s;
}
.c-btn:hover {
  opacity: 1;
}
.c-btn:hover::after {
  transform: translateX(6px);
}

/* ---------- 診療メニューカード c-med-card ---------- */
.c-med-card {
  position: relative;
  display: grid;
  aspect-ratio: 429 / 454;
  overflow: hidden;
  color: #fff;
  text-align: center;
}
.c-med-card > * {
  grid-area: 1 / 1;
}
.c-med-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s;
}
/* グラデーションのかぶせ：ホバーで外れて写真が見える */
.c-med-card::before {
  content: "";
  grid-area: 1 / 1;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 110, 187, 0.8), rgba(81, 183, 223, 0.8));
  transition: opacity 0.4s;
}
/* 四隅の飾り罫 */
.c-med-card::after {
  content: "";
  position: absolute;
  inset: clamp(14px, 1.528vw, 22px) clamp(14px, 1.528vw, 22px) clamp(12px, 1.25vw, 18px);
  z-index: 2;
  background:
    linear-gradient(#fff, #fff) top left / clamp(36px, 4.236vw, 61px) 1px,
    linear-gradient(#fff, #fff) top left / 1px clamp(60px, 7.014vw, 101px),
    linear-gradient(#fff, #fff) bottom right / clamp(36px, 4.236vw, 61px) 1px,
    linear-gradient(#fff, #fff) bottom right / 1px clamp(60px, 7.014vw, 101px);
  background-repeat: no-repeat;
  pointer-events: none;
}
.c-med-card__en,
.c-med-card__ja,
.c-med-card__btn {
  z-index: 3;
  align-self: start;
  justify-self: center;
  font-size: clamp(18px, 1.667vw, 24px);
  line-height: 1.67;
  letter-spacing: 0.05em;
}
.c-med-card__en {
  margin-top: 22.1%;
  font-family: var(--f-en);
  white-space: nowrap;
}
.c-med-card__ja {
  margin-top: 36.4%;
}
.c-med-card__btn {
  margin-top: 68.1%;
  padding: 10px;
  border: 1px solid #fff;
  font-family: var(--f-en);
  line-height: 1.67;
}
.c-med-card:hover {
  opacity: 1;
}
.c-med-card:hover::before {
  opacity: 0;
}
.c-med-card:hover .c-med-card__img {
  transform: scale(1.05);
}

/* =====================================================
  Components SP
===================================================== */
@media screen and (max-width: 680px) {
  .c-title__en {
    font-size: 30px;
  }
  .c-title__ja {
    font-size: 20px;
  }
  .c-title--line {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .c-title--line::after {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
  }
  .c-title--line .c-title__ja {
    grid-row: 3;
    justify-self: center;
  }
  .c-title--grad .c-title__en {
    font-size: 40px;
  }
  .c-parallax-head {
    min-height: 208px;
    background-attachment: scroll;
  }
  .c-parallax-head__en {
    font-size: 40px;
  }
  .c-parallax-head__en::before,
  .c-parallax-head__en::after {
    width: 60px;
  }
  .c-parallax-head__ja {
    font-size: 24px;
  }
  .c-tel {
    width: 100%;
  }
  .c-station {
    gap: 1.5em;
  }
  .c-schedule__table {
    padding-inline: 6px;
    font-size: 13px;
  }
  .c-schedule__table th,
  .c-schedule__table td {
    height: 32px;
  }
  .c-schedule__note {
    font-size: 14px;
  }
  .c-med-card {
    aspect-ratio: 335 / 190;
  }
  .c-med-card__en {
    margin-top: 5%;
    font-size: 20px;
  }
  .c-med-card__ja {
    margin-top: 16%;
    font-size: 20px;
  }
  .c-med-card__btn {
    margin-top: 31%;
    padding: 2px 10px;
    font-size: 18px;
  }
  .c-med-card::after {
    inset: 14px;
    background-size:
      45px 1px,
      1px 60px,
      45px 1px,
      1px 60px;
  }
}

/* =====================================================
  下層共通
===================================================== */
.l-main {
  overflow-x: clip;
}

/* ---------- 下層MV c-page-mv ---------- */
.c-page-mv {
  display: grid;
  min-height: clamp(220px, 34.722vw, 500px);
}
.c-page-mv > *,
.c-page-mv::after {
  grid-area: 1 / 1;
}
.c-page-mv__bg {
  width: 100%;
  height: 0;
  min-height: 100%;
  object-fit: cover;
  object-position: 50% 75%;
}
/* 下端のストライプ */
.c-page-mv::after {
  content: "";
  align-self: end;
  height: 10.625vw;
  background:
    url(../img/sub/common/page_mv_tri.svg) no-repeat center / 100% 100%,
    url(../img/sub/common/page_mv_stripe.webp) no-repeat center / 100% 100%;
}
.c-page-mv__title {
  z-index: 1;
  align-self: start;
  justify-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: clamp(280px, 44.306vw, 638px);
  margin-top: 10.625vw;
  padding: clamp(10px, 1.25vw, 18px) 20px clamp(10px, 1.319vw, 19px);
  background: rgba(255, 255, 255, 0.83);
  font-weight: 600;
}
.c-page-mv__ja {
  font-size: clamp(28px, 3.472vw, 50px);
  line-height: 1.4;
  letter-spacing: 0.06em;
}
.c-page-mv__en {
  color: var(--c-main);
  font-family: var(--f-en);
  font-size: clamp(18px, 2.222vw, 32px);
  line-height: 1.3;
  letter-spacing: 0.06em;
}

/* ---------- 両側に罫線が付く見出し c-title--lines ---------- */
.c-title--lines {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  column-gap: clamp(16px, 3.958vw, 57px);
  row-gap: clamp(12px, 1.389vw, 20px);
  width: fit-content;
  margin-inline: auto;
}
.c-title--lines::before,
.c-title--lines::after {
  content: "";
  grid-row: 1;
  width: clamp(40px, 15.208vw, 219px);
  height: 1px;
  background: var(--c-main);
}
.c-title--lines::before {
  grid-column: 1;
  justify-self: end;
}
.c-title--lines::after {
  grid-column: 3;
}
.c-title--lines .c-title__en {
  grid-column: 2;
  grid-row: 1;
  font-size: clamp(30px, 3.472vw, 50px);
  letter-spacing: 0.05em;
}
.c-title--lines .c-title__ja {
  grid-column: 1 / -1;
  grid-row: 2;
  font-size: clamp(20px, 2.083vw, 30px);
  line-height: 1.33;
  letter-spacing: 0.05em;
}

/* ---------- 画像＋テキストの横並び c-media ---------- */
.c-media {
  position: relative;
  display: grid;
  grid-template-columns: 42.639vw 1fr;
  column-gap: 5.208vw;
  align-items: center;
  padding: 3.958vw 1.528vw 3.958vw 5.556vw;
}
.c-media--reverse {
  grid-template-columns: 1fr 42.639vw;
  padding: 3.958vw 1.736vw 3.958vw 5.764vw;
}
.c-media--reverse .c-media__img {
  grid-column: 2;
  grid-row: 1;
}
.c-media--reverse .c-media__body {
  grid-column: 1;
  grid-row: 1;
}
.c-media--gray {
  background: var(--c-gray);
}
/* 右上のグラデーション三角 */
.c-media--grad::before {
  content: "";
  position: absolute;
  top: -2.083vw;
  left: 30.972vw;
  right: 0;
  height: 13.333vw;
  background: url(../img/index/feat_grad1.svg) no-repeat center / 100% 100%;
}
.c-media__img,
.c-media__body {
  position: relative;
  z-index: 2;
}
.c-media__img img {
  display: block;
  width: 100%;
  aspect-ratio: 614 / 427;
  object-fit: cover;
}
.c-media__title {
  font-size: clamp(20px, 2.083vw, 30px);
  line-height: 1.77;
  letter-spacing: 0.05em;
}
.c-media__text {
  margin-top: clamp(16px, 2.361vw, 34px);
  line-height: 2.5;
  letter-spacing: 0.05em;
}

/* ---------- お知らせ枠 c-notice ---------- */
.c-notice {
  width: min(100%, 1097px);
  margin-inline: auto;
  padding: clamp(28px, 3.264vw, 47px) 20px clamp(28px, 2.5vw, 36px);
  background: #e5f8ff;
  outline: 1px solid var(--c-main);
  outline-offset: -10px;
  box-shadow: 0 0 12px rgba(81, 183, 223, 0.35);
  text-align: center;
}
.c-notice__title {
  font-size: clamp(20px, 2.083vw, 30px);
  line-height: 1.33;
  letter-spacing: 0.06em;
}
.c-notice__text {
  width: fit-content;
  margin: clamp(20px, 2.847vw, 41px) auto 0;
  line-height: 2.1875;
  letter-spacing: 0.06em;
  text-align: left;
}

/* =====================================================
  医院紹介
===================================================== */
.p-clinic {
  padding: clamp(50px, 5.972vw, 86px) 0 clamp(80px, 21.597vw, 311px);
}
.p-clinic__rows {
  position: relative;
  margin-top: 9.236vw;
}
/* 斜めの飾り罫 */
.p-clinic__rows::before,
.p-clinic__rows::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  z-index: 1;
  pointer-events: none;
}
.p-clinic__rows::before {
  top: 37.569vw;
  height: 36.25vw;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), var(--c-light) 50%, transparent calc(50% + 1px));
}
.p-clinic__rows::after {
  top: 66.25vw;
  height: 78.472vw;
  background: linear-gradient(to top right, transparent calc(50% - 1px), var(--c-light) 50%, transparent calc(50% + 1px));
}
.p-clinic .c-notice {
  margin-top: 8.472vw;
}

/* =====================================================
  下層 SP
===================================================== */
@media screen and (max-width: 680px) {
  .c-page-mv::after {
    height: 16vw;
  }
  .c-page-mv__title {
    align-self: center;
    width: 86%;
    margin-top: 0;
  }
  .c-page-mv__ja {
    font-size: clamp(20px, 7.467vw, 28px);
    white-space: nowrap;
  }
  .c-title--lines {
    width: auto;
    margin-inline: 20px;
  }
  .c-title--lines::before,
  .c-title--lines::after {
    width: 100%;
  }
  .c-media,
  .c-media--reverse {
    grid-template-columns: 1fr;
    row-gap: 24px;
    padding: 40px 20px;
  }
  .c-media__img,
  .c-media--reverse .c-media__img,
  .c-media--reverse .c-media__body {
    grid-column: 1;
    grid-row: auto;
  }
  .c-media--grad::before {
    top: -20px;
    left: 20%;
    height: 80px;
  }
  .c-media__text {
    line-height: 2.2;
  }
  .p-clinic__rows {
    margin-top: 50px;
  }
  .p-clinic__rows::before,
  .p-clinic__rows::after {
    content: none;
  }
  .c-notice {
    width: auto;
    margin-inline: 20px;
  }
  .p-clinic .c-notice {
    margin-top: 50px;
  }
  .c-notice__text {
    margin-top: 20px;
    line-height: 2;
  }
}

/* ---------- 院長名プレート c-name-badge ---------- */
.c-name-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--grad);
  color: #fff;
  font-weight: 400;
  line-height: 1.33;
}
.c-name-badge__ja {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.8em;
  width: 87%;
  padding-bottom: 6px;
  border-bottom: 1px solid #fff;
  font-size: clamp(18px, 1.958vw, 28px);
  letter-spacing: 0.05em;
}
.c-name-badge__ja small {
  font-size: 0.8em;
}
.c-name-badge__en {
  padding-top: 6px;
  font-family: var(--f-en);
  font-size: clamp(13px, 1.305vw, 19px);
  letter-spacing: 0.05em;
}

/* =====================================================
  院長紹介
===================================================== */
.p-doctor {
  position: relative;
  padding: clamp(50px, 5.972vw, 86px) 0 clamp(80px, 22.014vw, 317px);
}
/* 斜めの飾り罫 */
.p-doctor::before,
.p-doctor::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
}
.p-doctor::before {
  top: 23.472vw;
  height: 35.139vw;
  background: linear-gradient(to top right, transparent calc(50% - 1px), var(--c-light) 50%, transparent calc(50% + 1px));
}
.p-doctor::after {
  top: 42.639vw;
  height: 73.333vw;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), var(--c-light) 50%, transparent calc(50% + 1px));
}
.p-doctor > * {
  position: relative;
  z-index: 1;
}
.p-doctor__intro {
  display: grid;
  grid-template-columns: 43.264vw 40.556vw;
  column-gap: 3.264vw;
  align-items: start;
  margin-top: 4.931vw;
  padding: 0 5.903vw 6.875vw 7.014vw;
}
.p-doctor__photo {
  display: grid;
  grid-template-columns: 28.125vw 15.139vw 4.306vw;
  grid-template-rows: auto 3.194vw 4.653vw;
}
.p-doctor__photo img {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
  width: 100%;
  aspect-ratio: 623 / 510;
  object-fit: cover;
  object-position: 30% 50%;
  box-shadow: -20px 20px 0 var(--c-deep);
}
.p-doctor__photo .c-name-badge {
  grid-column: 2 / 4;
  grid-row: 2 / 4;
}
.p-doctor__subtitle {
  color: var(--c-deep);
  font-size: clamp(20px, 1.667vw, 24px);
  line-height: 1.67;
  letter-spacing: 0.05em;
}
.p-doctor__text {
  margin-top: clamp(14px, 1.528vw, 22px);
  font-weight: 400;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}
/* 略歴・所属 */
.p-doctor__career {
  display: grid;
  grid-template-columns: repeat(2, 39.514vw);
  justify-content: center;
  gap: 4.792vw;
  padding: 3.403vw 0;
  background: var(--c-gray);
}
.p-doctor__box {
  padding: 21px 15px;
  background: #fff;
}
.p-doctor__box-title {
  padding: 10px;
  background: var(--c-main);
  color: #fff;
  font-size: clamp(20px, 1.667vw, 24px);
  line-height: 1.67;
  letter-spacing: 0.06em;
  text-align: center;
}
.p-doctor__box--light .p-doctor__box-title {
  background: var(--c-light);
}
.p-doctor__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 20px;
}
.p-doctor__row {
  display: flex;
  gap: 0.5em;
  padding: 3px 10px;
  border-bottom: 1px dashed #989898;
  font-size: 15px;
  line-height: 2.67;
  letter-spacing: 0.06em;
}
.p-doctor__row dt {
  flex-shrink: 0;
  width: 8.2em;
}
/* 重要視していること */
.p-doctor__important {
  margin-top: clamp(60px, 11.181vw, 161px);
}
.p-doctor__share {
  width: min(100% - 40px, 862px);
  margin: clamp(30px, 3.889vw, 56px) auto 0;
  padding: clamp(24px, 2.986vw, 43px) clamp(20px, 3.056vw, 44px);
  border: 1px solid var(--c-deep);
}
.p-doctor__share-title {
  color: var(--c-deep);
  font-size: clamp(18px, 1.667vw, 24px);
  line-height: 1.67;
  letter-spacing: 0.05em;
}
.p-doctor__share-list {
  margin: 8px 0 0;
  padding: 0;
}
.p-doctor__share-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
  color: #000;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
.p-doctor__share-list img {
  flex-shrink: 0;
  width: 19px;
}

@media screen and (max-width: 680px) {
  .p-doctor::before,
  .p-doctor::after {
    content: none;
  }
  .p-doctor__intro {
    grid-template-columns: 1fr;
    row-gap: 50px;
    margin-top: 40px;
    padding: 0 20px 50px 40px;
  }
  .p-doctor__photo {
    grid-template-columns: 0 59.7% 40.3%;
    grid-template-rows: auto 6.133vw 15.333vw;
  }
  .p-doctor__photo img {
    grid-column: 1 / -1;
  }
  .p-doctor__photo .c-name-badge {
    grid-column: 1 / 3;
    padding-block: 8px;
  }
  .p-doctor__intro .p-doctor__body {
    margin-left: -20px;
  }
  .p-doctor__career {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 40px 20px;
  }
  .p-doctor__row {
    flex-direction: column;
    gap: 0;
    padding-block: 8px;
    line-height: 1.8;
  }
  .p-doctor__share-list li {
    align-items: flex-start;
    line-height: 1.8;
  }
  .p-doctor__share-list img {
    margin-top: 0.3em;
  }
}

/* 見出し：英字小さめ／罫線長め */
.c-title--sm .c-title__en {
  font-size: clamp(26px, 2.778vw, 40px);
}
.c-title--wide::before,
.c-title--wide::after {
  width: clamp(40px, 26.667vw, 384px);
}

/* =====================================================
  診療時間・アクセス
===================================================== */
.p-access {
  padding: clamp(50px, 5.764vw, 83px) 0 clamp(80px, 21.458vw, 309px);
}
.p-access__tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  margin: clamp(30px, 4.236vw, 61px) auto 0;
}
.p-access__tel-num {
  display: flex;
  align-items: center;
  gap: 13px;
  color: var(--c-main);
  font-size: clamp(30px, 2.778vw, 40px);
  line-height: 1.3;
  letter-spacing: 0.06em;
}
.p-access__tel-num img {
  width: 0.83em;
}
.p-access__tel-time {
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.p-access__hours-body {
  display: grid;
  grid-template-columns: 37.014vw 38.542vw;
  column-gap: 9.236vw;
  align-items: start;
  margin-top: clamp(30px, 3.194vw, 46px);
  padding: 0 6.25vw 0 9.028vw;
}
.p-access__schedule .c-schedule {
  width: 100%;
  font-size: clamp(14px, 1.297vw, 18.68px);
}
.p-access__schedule .c-schedule__table th,
.p-access__schedule .c-schedule__table td {
  height: clamp(36px, 3.486vw, 50px);
}
.p-access__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 555 / 342;
  object-fit: cover;
}
.p-access__access {
  margin-top: clamp(60px, 8.194vw, 118px);
}
.p-access__address {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: clamp(30px, 3.542vw, 51px);
  line-height: 1.7;
  letter-spacing: 0.06em;
}
.p-access__address img {
  width: 23px;
}
.p-access__map {
  width: 76.667vw;
  margin: clamp(16px, 1.944vw, 28px) auto 0;
  aspect-ratio: 1104 / 326;
}
.p-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-access__ways {
  display: grid;
  grid-template-columns: repeat(3, 27.014vw);
  justify-content: center;
  gap: 1.736vw;
  margin-top: clamp(30px, 3.403vw, 49px);
}
.p-access__way {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-access__way-icon {
  position: relative;
  z-index: 1;
  width: clamp(50px, 4.583vw, 66px);
  margin-bottom: -10px;
}
.p-access__way-title {
  width: 100%;
  padding: 10px;
  background: var(--c-main);
  color: #fff;
  font-size: clamp(18px, 1.667vw, 24px);
  line-height: 1.125;
  letter-spacing: 0.06em;
  text-align: center;
}
.p-access__way--deep .p-access__way-title {
  background: var(--c-deep);
}
.p-access__way--light .p-access__way-title {
  background: var(--c-light);
}
.p-access__way-text {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 104px;
  padding: 10px;
  border: 1px solid var(--c-main);
  line-height: 1.9;
  letter-spacing: 0.06em;
  text-align: center;
}

@media screen and (max-width: 680px) {
  .p-access__hours-body {
    grid-template-columns: 1fr;
    row-gap: 30px;
    padding-inline: 20px;
  }
  .p-access__schedule .c-schedule {
    font-size: 13px;
  }
  .p-access__schedule .c-schedule__table th,
  .p-access__schedule .c-schedule__table td {
    height: 32px;
  }
  .p-access__address {
    align-items: flex-start;
    margin-inline: 20px;
    text-align: left;
  }
  .p-access__map {
    width: auto;
    margin-inline: 20px;
    aspect-ratio: 335 / 280;
  }
  .p-access__ways {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-inline: 20px;
  }
}

/* =====================================================
  採用情報
===================================================== */
.p-recruit {
  padding: clamp(50px, 5.764vw, 83px) 0 clamp(80px, 21.042vw, 303px);
}
.p-recruit__intro {
  display: grid;
  grid-template-columns: 9.236vw 2.292vw 25.903vw 2.431vw 17.708vw 8.194vw 28.681vw;
  grid-template-rows: 25.347vw 10.069vw 5vw;
  margin-top: clamp(30px, 4.028vw, 58px);
  padding-bottom: 3.75vw;
  background:
    url(../img/index/recruit_bg.svg) no-repeat 0 3.889vw / 100% 40.278vw,
    url(../img/index/recruit_stripe.webp) no-repeat 0 12.917vw / 100% 31.25vw;
}
.p-recruit__text {
  grid-column: 2 / 6;
  grid-row: 1;
  align-self: start;
  max-width: 494px;
  margin-top: 9.444vw;
  line-height: 2.5;
  letter-spacing: 0.05em;
}
.p-recruit__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-recruit__img--main {
  grid-column: 6 / 8;
  grid-row: 1 / 3;
}
.p-recruit__img--sub1 {
  grid-column: 5 / 7;
  grid-row: 2 / 4;
  z-index: 1;
}
.p-recruit__img--sub2 {
  grid-column: 3;
  grid-row: 2 / 4;
}
.p-recruit__guide {
  width: min(100% - 40px, 1007px);
  margin: clamp(60px, 12.847vw, 185px) auto 0;
}
.p-recruit__guide-title {
  padding: 16px 10px;
  border-block: 2px solid var(--c-deep);
  color: var(--c-deep);
  font-size: clamp(22px, 2.083vw, 30px);
  line-height: 1.33;
  letter-spacing: 0.06em;
  text-align: center;
}
.p-recruit__soon {
  display: grid;
  place-items: center;
  width: clamp(240px, 21.458vw, 309px);
  min-height: clamp(80px, 7.222vw, 104px);
  margin: clamp(60px, 8.264vw, 119px) auto 0;
  padding: 10px;
  background: var(--c-main);
  color: #fff;
  font-size: clamp(22px, 2.083vw, 30px);
  letter-spacing: 0.06em;
}

@media screen and (max-width: 680px) {
  .p-recruit__intro {
    grid-template-columns: 20px 1fr 8px 1fr 20px;
    grid-template-rows: auto;
    row-gap: 8px;
    padding-bottom: 40px;
    background:
      url(../img/index/recruit_bg.svg) no-repeat 0 0 / 100% 100%,
      url(../img/index/recruit_stripe.webp) no-repeat 0 100% / 100% 50%;
  }
  .p-recruit__text {
    grid-column: 2 / 5;
    grid-row: 1;
    margin-top: 40px;
    line-height: 2;
  }
  .p-recruit__img {
    aspect-ratio: 3 / 2;
  }
  .p-recruit__img--main {
    grid-column: 2 / 5;
    grid-row: 2;
  }
  .p-recruit__img--sub1 {
    grid-column: 4;
    grid-row: 3;
  }
  .p-recruit__img--sub2 {
    grid-column: 2;
    grid-row: 3;
  }
}

/* 見出し：罫線が幅いっぱいに伸びるタイプ（診療案内） */
.c-title--fill {
  width: 100%;
  column-gap: clamp(16px, 3.958vw, 57px);
}
.c-title--fill::before,
.c-title--fill::after {
  width: 100%;
}
.c-title--fill .c-title__en {
  color: var(--c-main);
  font-size: clamp(20px, 2.083vw, 30px);
  line-height: 1.33;
}

/* ---------- グレーの説明ボックス c-gray-box ---------- */
.c-gray-box {
  width: min(100%, 1107px);
  margin: clamp(40px, 4.514vw, 65px) auto 0;
  padding: 27px 36px 27px 41px;
  background: var(--c-gray);
  scroll-margin-top: 110px;
}
.c-gray-box__title {
  padding: 10px;
  font-size: clamp(18px, 1.667vw, 24px);
  line-height: 1.67;
  letter-spacing: 0.05em;
}
.c-gray-box__text {
  padding: 10px;
  font-weight: 500;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}

/* ---------- 料金表 c-price-table ---------- */
.c-price-table {
  border: 1px solid #989898;
}
.c-price-table th,
.c-price-table td {
  height: 58px;
  padding: 8px 12px;
  border: 1px solid #989898;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-align: center;
}
.c-price-table thead th {
  height: 48px;
}
.c-price-table tbody th[scope="row"] {
  padding-left: clamp(12px, 1.736vw, 25px);
  text-align: left;
}
.c-price-table--4col th[scope="rowgroup"] {
  width: 19%;
}
.c-price-table--4col tbody th[scope="row"] {
  width: 42%;
}
.c-price-table--4col td {
  width: 19.5%;
}
.c-price-table--3col thead th {
  height: 62px;
}
.c-price-table--3col tbody th[scope="row"] {
  width: 31%;
  padding-left: clamp(12px, 2.778vw, 40px);
}
.c-price-table--3col td {
  width: 34.5%;
}
.c-price-table--2col tbody th[scope="row"] {
  width: 65%;
  padding-left: 12px;
  text-align: center;
}

/* =====================================================
  診療案内
===================================================== */
.p-medical {
  width: min(100% - 40px, 1280px);
  margin-inline: auto;
  padding: clamp(50px, 8.542vw, 123px) 0 clamp(80px, 17.431vw, 251px);
}
.p-medical__links {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.p-medical__links li {
  width: 151px;
}
.p-medical__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  text-align: center;
}
.p-medical__link img {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}
.p-medical__link-en {
  color: var(--c-light);
  font-family: var(--f-en);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.p-medical__link-ja {
  line-height: 1.4;
  letter-spacing: 0.06em;
}
.p-med-sec {
  padding-block: clamp(60px, 6.944vw, 100px);
  border-bottom: 1px dashed var(--c-deep);
  scroll-margin-top: 110px;
}
.p-med-sec--first {
  margin-top: clamp(60px, 11.25vw, 162px);
  padding-top: 0;
}
/* 画像＋テキスト */
.p-med-media {
  display: grid;
  grid-template-columns: 584px 623px;
  column-gap: 45px;
  align-items: start;
  margin-top: clamp(40px, 4.514vw, 65px);
  padding-left: 23px;
}
.p-med-media__img {
  grid-column: 2;
  grid-row: 1;
}
.p-med-media__body {
  grid-column: 1;
  grid-row: 1;
}
.p-med-media--img-left {
  grid-template-columns: 623px 1fr;
  padding-left: 0;
}
.p-med-media--img-left .p-med-media__img {
  grid-column: 1;
}
.p-med-media--img-left .p-med-media__body {
  grid-column: 2;
}
.p-med-media__img img {
  display: block;
  width: 100%;
  aspect-ratio: 623 / 436;
  object-fit: cover;
}
.p-med-media__title {
  padding-block: 10px;
  font-size: clamp(18px, 1.389vw, 20px);
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.p-med-media__title + .p-med-media__text {
  margin-top: 23px;
}
.p-med-media__text {
  font-weight: 400;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}
/* 長文 */
.p-med-long {
  width: min(100%, 1176px);
  margin: clamp(40px, 4.514vw, 65px) auto 0;
  padding: 10px;
  color: #000;
  font-weight: 400;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}
.p-med-long p + p {
  margin-top: 2.1875em;
}
/* 症例 */
.p-med-cases__lead {
  width: min(100%, 1024px);
  margin: clamp(40px, 4.514vw, 65px) auto 0;
  font-weight: 400;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}
.p-med-cases__row {
  display: grid;
  grid-template-columns: repeat(2, 600px);
  justify-content: center;
  column-gap: 73px;
  align-items: start;
  margin-top: clamp(40px, 4.514vw, 65px);
  padding-bottom: 33px;
  border-bottom: 1px dashed #989898;
}
.p-med-cases__row:last-child {
  border-bottom: none;
}
.p-med-case__head {
  padding: 10px;
  background: var(--c-gray);
}
.p-med-case__title {
  color: var(--c-deep);
  font-size: 20px;
  line-height: 1.69;
  letter-spacing: 0.05em;
}
.p-med-case__text {
  margin-top: 6px;
  font-weight: 500;
  line-height: 2.11;
  letter-spacing: 0.05em;
}
.p-med-case__img {
  display: block;
  width: 100%;
  margin-top: 22px;
}
.p-med-case__img--tall {
  aspect-ratio: 600 / 1085;
  object-fit: cover;
}
/* メリット・デメリット */
.p-med-merits {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 33px;
  margin-top: 21px;
}
.p-med-merit {
  padding: 20px 10px;
  background: #fff;
}
.p-med-merit__title {
  padding: 10px;
  background: var(--c-light);
  color: #fff;
  font-size: clamp(16px, 1.389vw, 20px);
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: center;
}
.p-med-merit__text {
  margin-top: 26px;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.04em;
}
/* 料金表 */
.p-med-price {
  margin-top: clamp(80px, 13.125vw, 189px);
  scroll-margin-top: 110px;
}
.p-med-price__block {
  width: min(100%, 998px);
  margin-inline: auto;
  padding: clamp(40px, 4.861vw, 70px) clamp(0px, 2.431vw, 35px);
  border-bottom: 1px dashed #989898;
}
.p-med-price__block:first-of-type {
  margin-top: 23px;
}
.p-med-price__title {
  color: var(--c-deep);
  font-size: clamp(20px, 1.667vw, 24px);
  line-height: 2.42;
  letter-spacing: 0.06em;
}
.p-med-price__block .c-price-table {
  margin-top: 15px;
}

/* タブレット：固定幅をやめて流す */
@media screen and (max-width: 1320px) {
  .p-med-media,
  .p-med-media--img-left {
    grid-template-columns: 1fr 1.07fr;
  }
  .p-med-media--img-left {
    grid-template-columns: 1.07fr 1fr;
  }
  .p-med-cases__row {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 40px;
  }
}

@media screen and (max-width: 680px) {
  .c-title--fill {
    margin-inline: 0;
  }
  .c-title--fill::before,
  .c-title--fill::after {
    min-width: 20px;
  }
  .p-medical__links {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px 10px;
  }
  .p-medical__links li {
    width: auto;
  }
  .p-medical__link-en {
    font-size: 8px;
    white-space: normal;
  }
  .p-medical__link-ja {
    font-size: 12px;
  }
  .p-med-media,
  .p-med-media--img-left {
    grid-template-columns: 1fr;
    row-gap: 24px;
    padding-left: 0;
  }
  .p-med-media__img,
  .p-med-media__body,
  .p-med-media--img-left .p-med-media__img,
  .p-med-media--img-left .p-med-media__body {
    grid-column: 1;
    grid-row: auto;
  }
  .c-gray-box {
    padding: 16px 10px;
  }
  .p-med-long p + p {
    margin-top: 1.5em;
  }
  .p-med-cases__row {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
  .p-med-merits {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .c-price-table th,
  .c-price-table td {
    height: auto;
    padding: 8px 6px;
    font-size: 13px;
  }
}

/* =====================================================
  パンくず c-breadcrumb
===================================================== */
.c-breadcrumb {
  width: min(100% - 40px, 1280px);
  margin: 16px auto 0;
}
.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.c-breadcrumb__list li + li::before {
  content: ">";
  margin: 0 0.8em;
  color: #989898;
}
.c-breadcrumb__list a {
  color: var(--c-main);
}
.c-breadcrumb__list [aria-current] {
  overflow: hidden;
  max-width: 30em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* =====================================================
  お知らせ（詳細・一覧）
===================================================== */
.p-post {
  width: min(100% - 40px, 950px);
  margin-inline: auto;
  padding: clamp(40px, 5.556vw, 80px) 0 clamp(80px, 11.111vw, 160px);
}
.p-post__head {
  padding-bottom: clamp(16px, 1.667vw, 24px);
  border-bottom: 1px solid var(--c-light);
}
.p-post__date {
  color: var(--c-main);
  font-family: var(--f-en);
  letter-spacing: 0.08em;
}
.p-post__title {
  margin-top: 8px;
  font-size: clamp(20px, 1.944vw, 28px);
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-post__thumb {
  margin-top: clamp(24px, 2.778vw, 40px);
}
.p-post__thumb img {
  display: block;
  width: 100%;
  height: auto;
}
/* 本文（エディタで入力される内容） */
.p-post__body {
  margin-top: clamp(24px, 2.778vw, 40px);
  font-weight: 500;
  line-height: 2.1875;
  letter-spacing: 0.05em;
}
.p-post__body > * + * {
  margin-top: 1.5em;
}
.p-post__body h2 {
  padding: 8px 16px;
  border-left: 4px solid var(--c-main);
  background: var(--c-gray);
  font-size: clamp(18px, 1.528vw, 22px);
  line-height: 1.6;
}
.p-post__body h3 {
  padding-bottom: 6px;
  border-bottom: 1px dashed var(--c-light);
  color: var(--c-main);
  font-size: clamp(17px, 1.389vw, 20px);
  line-height: 1.6;
}
.p-post__body * + h2,
.p-post__body * + h3 {
  margin-top: 2.5em;
}
.p-post__body a {
  color: var(--c-deep);
  text-decoration: underline;
}
.p-post__body ul,
.p-post__body ol {
  padding-left: 1.5em;
}
.p-post__body ul li {
  list-style: disc;
}
.p-post__body ol li {
  list-style: decimal;
}
.p-post__body img {
  height: auto;
}
/* 前後・一覧 */
.p-post__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-top: clamp(50px, 5.556vw, 80px);
  padding-top: clamp(24px, 2.778vw, 40px);
  border-top: 1px dashed #989898;
  font-size: 15px;
}
.p-post__nav a {
  color: var(--c-main);
}
.p-post__nav-next {
  text-align: right;
}
.p-post__nav-list {
  padding: 10px 32px;
  border: 1px solid var(--c-main);
  letter-spacing: 0.06em;
}
.p-post__nav .p-post__nav-list:hover {
  opacity: 1;
  background: var(--c-main);
  color: #fff;
}
/* 一覧 */
.p-news-list {
  border-top: 1px dotted var(--c-light);
}
.p-news-list__item {
  border-bottom: 1px dotted var(--c-light);
}
.p-news-list__link {
  display: grid;
  grid-template-columns: 7em 1fr;
  column-gap: 2em;
  padding: clamp(16px, 1.667vw, 24px) 8px;
  line-height: 1.875;
}
.p-news-list__date {
  color: var(--c-main);
  font-family: var(--f-en);
  letter-spacing: 0.08em;
}
.p-post__empty {
  text-align: center;
}
/* ページ送り */
.pagination-area {
  margin-top: clamp(40px, 4.167vw, 60px);
}
.pagination-area .nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.pagination-area .page-numbers {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--c-main);
  color: var(--c-main);
  font-family: var(--f-en);
}
.pagination-area .page-numbers.current {
  background: var(--c-main);
  color: #fff;
}
.pagination-area .page-numbers.dots {
  border: none;
}

/* =====================================================
  404
===================================================== */
.p-404 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(50px, 6.944vw, 100px) 20px clamp(80px, 11.111vw, 160px);
  text-align: center;
}
.p-404__code {
  color: var(--c-light);
  font-family: var(--f-en);
  font-size: clamp(64px, 8.333vw, 120px);
  line-height: 1;
  letter-spacing: 0.1em;
}
.p-404__text {
  margin-top: clamp(20px, 2.083vw, 30px);
  line-height: 2.2;
  letter-spacing: 0.05em;
}
.p-404__btn {
  margin-top: clamp(30px, 3.472vw, 50px);
}

@media screen and (max-width: 680px) {
  .c-breadcrumb__list [aria-current] {
    max-width: 14em;
  }
  .p-post__nav {
    grid-template-columns: 1fr 1fr;
  }
  .p-post__nav-list {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
  }
  .p-news-list__link {
    grid-template-columns: 1fr;
  }
  .p-404__text br {
    display: none;
  }
}
