@charset "UTF-8";
/* ************************************** _
タイトル：contents.css
概要：下層ページ用css
作成：2026.02.12
更新：2026.02.12
_ ************************************** */
/* lower-hero
_ ************************************** */
/* mixin
_ ************************************** */
/* mq
_ ************************************** */
/* =========================================
  Font Mixins
========================================= */
/* 英字装飾（Montserrat）
  - weight: medium(500) / semibold(600)
  - font-size は呼び出し側で指定
------------------------------------------ */
.p-lower-hero {
  /* デフォルト（指定なし：プライマリー） */
  --hero-accent-color: var(--page-accent-color, var(--color-primary));
  position: relative;
}
.p-lower-hero__bg {
  height: 280px;
  background-image: var(--hero-bg);
  background-size: cover;
  background-position: center;
}
.p-lower-hero {
  /* 画像直下のブロック（パンくず用） */
}
.p-lower-hero__inner {
  position: relative;
  padding-top: 0;
}
.p-lower-hero {
  /* 画像上の見出し（完全中央） */
}
.p-lower-hero__heading {
  position: relative;
  margin-top: -280px;
  height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-lower-hero__en {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
  /* 18px（PC最大）〜13px（SP最小） */
  font-size: clamp(13px, 1.15vw + 4px, 18px);
  color: var(--color-white);
  /* 40px（PC）〜20px（SP）で可変 */
  margin: 0 0 clamp(20px, 1.8vw + 6px, 40px);
  display: inline-flex;
  align-items: center;
  line-height: 1;
  gap: 10px;
}
.p-lower-hero__en::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--hero-accent-color);
  flex: 0 0 8px;
}
.p-lower-hero__title {
  margin: 0;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--color-white);
  text-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  /* SP（〜768px）：24〜36pxで可変 */
  font-size: clamp(24px, 4.2vw + 8px, 36px);
  /* タブレット以上：最小36pxを保証しつつ 〜48pxで可変 */
}
@media (min-width: 768px) {
  .p-lower-hero__title {
    font-size: clamp(36px, 1.2vw + 28px, 48px);
  }
}
.p-lower-hero {
  /* ===== パンくず上書き（このヒーロー内のみ） ===== */
}
.p-lower-hero .c-breadcrumb {
  margin-top: 14px;
  font-size: 14px;
  color: var(--color-text);
}
.p-lower-hero .c-breadcrumb__item:not(:last-child)::after {
  color: var(--color-text); /* ★「>」の色 */
}
.p-lower-hero .c-breadcrumb__link {
  color: var(--hero-accent-color);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
@media (max-width: 768px) {
  .p-lower-hero__bg {
    height: 200px;
  }
  .p-lower-hero__heading {
    margin-top: -200px;
    height: 200px;
  }
  .p-lower-hero__en::before {
    width: 6px;
    height: 6px;
    flex-basis: 6px;
  }
  .p-lower-hero .c-breadcrumb {
    font-size: 12px;
  }
}

/* treatment
_ ************************************** */
/* =========================================
   treatment（外来診療のご案内）
========================================= */
.p-treatment {
  --page-accent-color: var(--color-primary);
  /* ページ固有の微調整を入れる場合はここに */
}

/* Menu cards
========================================= */
.p-treatment-menu__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
@media (max-width: 1280px) {
  .p-treatment-menu__grid {
    gap: 20px;
  }
}
@media (max-width: 1024px) {
  .p-treatment-menu__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .p-treatment-menu__grid {
    gap: 28px 10px;
  }
}
@media (max-width: 414px) {
  .p-treatment-menu__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

.c-card-menu {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  background: var(--color-white);
  border-radius: 10px;
}
@media (max-width: 768px) {
  .c-card-menu {
    gap: 5px;
  }
}
.c-card-menu {
  /* カード全体の反応 */
  transition: filter 0.25s ease, box-shadow 0.25s ease;
}
.c-card-menu:hover, .c-card-menu:focus-visible {
  filter: brightness(1.04);
  text-decoration: none;
}
.c-card-menu__thumb {
  overflow: hidden;
  background: var(--color-grey-powder);
}
.c-card-menu__thumb img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
  will-change: transform;
}
@media (max-width: 768px) {
  .c-card-menu__thumb img {
    height: 170px;
  }
}
.c-card-menu {
  /* hover / focus 時の画像拡大 */
}
.c-card-menu:hover .c-card-menu__thumb img, .c-card-menu:focus-visible .c-card-menu__thumb img {
  transform: scale(1.06);
}
.c-card-menu__en {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
  margin: 15px 0 0;
  font-size: 10px;
  color: var(--color-primary);
  text-align: center;
}
.c-card-menu__title {
  margin: 0 0 10px 0;
  font-size: 20px;
  letter-spacing: 0.08em;
  text-align: center;
  color: var(--color-text);
}
.c-card-menu__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .c-card-menu__text {
    font-size: 13px;
  }
}
.c-card-menu__arrow {
  justify-self: end;
  margin-top: 6px;
  color: var(--color-primary);
  font-size: 18px;
  line-height: 1;
  transition: transform 0.35s ease;
}
.c-card-menu:hover .c-card-menu__arrow, .c-card-menu:focus-visible .c-card-menu__arrow {
  transform: translateX(4px);
}

/*  Clinic hours
========================================= */
.p-clinic-hours__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 365px;
  gap: 45px;
  align-items: center;
}
@media (max-width: 1024px) {
  .p-clinic-hours__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
@media (max-width: 768px) {
  .p-clinic-hours__grid {
    gap: 5px;
  }
}
.p-clinic-hours__tableWrap {
  overflow-x: auto;
  /* 小さい幅で保険 */
  -webkit-overflow-scrolling: touch;
}
.p-clinic-hours thead th {
  height: 50px;
}
@media (max-width: 768px) {
  .p-clinic-hours thead th {
    height: 25px;
  }
}
.p-clinic-hours tbody th,
.p-clinic-hours tbody td {
  height: 90px;
}
@media (max-width: 768px) {
  .p-clinic-hours tbody th,
  .p-clinic-hours tbody td {
    height: 35px;
  }
}
.p-clinic-hours {
  /* notes */
}
.p-clinic-hours__noteList {
  display: flex;
  flex-direction: column;
  /* デフォルト：縦並び（PC） */
  gap: 14px;
  margin-top: 12px;
  /* タブレット（md 以下）だけ横並び */
}
@media (max-width: 1024px) {
  .p-clinic-hours__noteList {
    flex-direction: row;
    align-items: center;
    gap: 28px;
  }
}
.p-clinic-hours__noteList {
  /* SP（sm 以下）は再び縦並び */
}
@media (max-width: 768px) {
  .p-clinic-hours__noteList {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
}
.p-clinic-hours__note {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--color-text);
  font-size: 15px;
  letter-spacing: 0.04em;
  line-height: 1.6;
}
.p-clinic-hours__note .c-pill-label {
  width: 110px;
}
@media (max-width: 768px) {
  .p-clinic-hours__note {
    font-size: 13px;
    gap: 10px;
  }
  .p-clinic-hours__note .c-pill-label {
    width: 90px;
  }
}
.p-clinic-hours__noteText {
  display: inline-block;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.8;
}
@media (max-width: 1024px) {
  .p-clinic-hours__noteText {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-clinic-hours__noteText {
    font-size: 13px;
  }
}
.p-clinic-hours__small {
  margin-top: 16px;
}
.p-clinic-hours__small p {
  margin: 0;
}
.p-clinic-hours__small p + p {
  margin-top: 8px;
}
@media (max-width: 768px) {
  .p-clinic-hours__small p + p {
    margin-top: 5px;
  }
}

/* 下層ページ用（文字大きめ） */
.c-hours-table--lg {
  font-size: 20px;
}
@media (max-width: 768px) {
  .c-hours-table--lg {
    font-size: 12px;
  }
}

/*  Medical cooperation
========================================= */
.p-medical-coop__grid {
  display: grid;
  grid-template-columns: 1fr clamp(200px, 25vw, 360px) 1fr;
  gap: 20px;
  align-items: center;
  margin-block: 35px 35px;
}
.p-medical-coop__img {
  margin: 0;
}
.p-medical-coop__img img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}
.p-medical-coop__mark {
  width: min(300px, 100%);
  height: 255px;
  border-radius: 9999px;
  margin-inline: auto;
  display: grid;
  place-items: center;
}
.p-medical-coop__markText {
  font-size: 18px;
  letter-spacing: 0.08em;
  text-align: center;
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.6;
}
.p-medical-coop__text {
  margin-top: 18px;
  font-size: 16px;
  line-height: 2;
  color: var(--color-text);
}
@media (max-width: 1024px) {
  .p-medical-coop__text {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-medical-coop__text {
    font-size: 14px;
  }
}
.p-medical-coop__text p {
  margin: 0;
}
.p-medical-coop__text p + p {
  margin-top: 12px;
}
@media (max-width: 1280px) {
  .p-medical-coop__img img {
    height: 260px;
  }
  .p-medical-coop__mark {
    width: min(260px, 100%);
    height: 255px;
  }
}
@media (max-width: 768px) {
  .p-medical-coop {
    margin-inline: auto;
    width: min(640px, 100%);
  }
  .p-medical-coop__grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .p-medical-coop__img img {
    height: 260px;
  }
  .p-medical-coop__mark {
    width: 200px;
    height: min(200px, 100%);
  }
}
@media (max-width: 414px) {
  .p-medical-coop__img img {
    height: 200px;
  }
  .p-medical-coop__mark {
    width: 150px;
    height: min(150px, 100%);
  }
}

/* affiliates */
.p-affiliates {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 768px) {
  .p-affiliates {
    gap: 8px;
  }
}
.p-affiliates__item {
  background: var(--color-white);
}
.p-affiliates__item img {
  width: 100%;
  object-fit: contain;
  display: block;
  border: 1px solid var(--color-gray-light);
  border-radius: 5px;
}
.p-affiliates__item:hover, .p-affiliates__item:focus-visible {
  opacity: 0.9;
}
@media (max-width: 768px) {
  .p-affiliates {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 414px) {
  .p-affiliates {
    grid-template-columns: 1fr;
  }
}

/* sanka
_ ************************************** */
/* =========================================
   sanka（産科）
========================================= */
.p-sanka {
  --page-accent-color: var(--color-primary);
  /* ページ固有の微調整を入れる場合はここに */
}

/*  画像左固定ブロック
========================================= */
.p-obst-item {
  margin-top: 52px;
}
@media (max-width: 768px) {
  .p-obst-item {
    margin-top: 40px;
  }
}
.p-obst-item__grid {
  display: grid;
  grid-template-columns: clamp(480px, 44vw, 540px) 1fr;
  align-items: center;
  gap: clamp(30px, 5vw, 60px);
}
@media (max-width: 1024px) {
  .p-obst-item__grid {
    grid-template-columns: clamp(440px, 40vw, 480px) 1fr;
    gap: clamp(30px, 4vw, 50px);
  }
}
.p-obst-item__grid {
  /* 900px以下で1カラム */
}
@media (max-width: 900px) {
  .p-obst-item__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}
@media (max-width: 768px) {
  .p-obst-item__grid {
    gap: 25px;
  }
}
.p-obst-item__media {
  margin: 0;
  width: min(540px, 100%);
}
.p-obst-item__media img {
  width: 100%;
  aspect-ratio: 540/400;
  /* ＝ 1.35 */
  height: auto;
  display: block;
  object-fit: cover;
}
@media (max-width: 900px) {
  .p-obst-item__media {
    margin-inline: auto;
    width: min(600px, 100%);
  }
}
.p-obst-item__body {
  min-width: 0;
}
.p-obst-item__body .c-subhead.c-subhead--tight {
  margin-top: 0;
}
.p-obst-item__text {
  margin-top: 14px;
  font-size: 16px;
  line-height: 2.2;
}
@media (max-width: 1024px) {
  .p-obst-item__text {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-obst-item__text {
    font-size: 14px;
  }
}
.p-obst-item__text p {
  margin: 0;
}
.p-obst-item__text p + p {
  margin-top: 12px;
}
.p-obst-item__cta {
  margin-top: 22px;
  margin-inline: auto;
  /* 中央寄せ */
  display: flex;
  justify-content: center;
}

/* 料金など */
.p-obst-meta {
  margin-top: 18px;
}
.p-obst-meta__row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 20px;
  align-items: center;
}
.p-obst-meta__label {
  margin: 0;
  padding: 7px 12px;
  border-radius: 9999px;
  background: var(--color-gray);
  color: var(--color-white);
  line-height: 1;
  text-align: center;
  width: 114px;
}
.p-obst-meta__value {
  margin: 0;
  color: var(--color-text);
  font-size: 15px;
}
@media (max-width: 768px) {
  .p-obst-meta__value {
    font-size: 14px;
  }
}

/* セクション末CTA */
.p-obst-wide-cta {
  margin-top: 40px;
  display: grid;
  place-items: center;
}

/* Postnatal / Breast */
.p-postnatal__lead {
  margin: 10px 0 0;
}
.p-postnatal__text {
  margin-top: 22px;
  font-size: 14px;
  line-height: 2.2;
  color: var(--color-text);
}
.p-postnatal__text p {
  margin: 0;
}
.p-postnatal__text p + p {
  margin-top: 12px;
}

.p-breast__text {
  margin-top: 12px;
  font-size: 16px;
  line-height: 2.2;
  color: var(--color-text);
}
@media (max-width: 1024px) {
  .p-breast__text {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-breast__text {
    font-size: 14px;
  }
}
.p-breast__text p {
  margin: 0;
}
.p-breast__text p + p {
  margin-top: 12px;
}

/* 産後サポート
========================================= */
.p-birth-postpartum {
  /* 3カード */
}
.p-birth-postpartum__cards {
  margin: 60px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
@media (max-width: 900px) {
  .p-birth-postpartum__cards {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-inline: auto;
    width: min(600px, 100%);
  }
}

/* カード */
.p-birth-postpartum-card {
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  padding: 50px 20px;
  text-align: center;
}
@media (max-width: 900px) {
  .p-birth-postpartum-card {
    /* ★md：2カラム化（左：icon+title / 右：list） */
    display: grid;
    grid-template-columns: 220px 1fr;
    column-gap: 30px;
    align-items: stretch;
    /* 左列の縦中央寄せのため */
    text-align: left;
    /* 右側リストの見た目を自然に */
    padding: 40px 20px;
  }
}
@media (max-width: 768px) {
  .p-birth-postpartum-card {
    grid-template-columns: clamp(160px, 30vw, 220px) 1fr;
    column-gap: 20px;
    padding: 30px 20px;
  }
}
@media (max-width: 414px) {
  .p-birth-postpartum-card {
    /* ★sm：縦積みに戻す */
    display: block;
    padding: 22px 18px;
    text-align: center;
  }
}
.p-birth-postpartum-card__icon {
  width: 105px;
  height: 80px;
  display: grid;
  place-items: center;
  margin-inline: auto;
}
.p-birth-postpartum-card__icon img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
@media (max-width: 900px) {
  .p-birth-postpartum-card__icon {
    /* 左列に配置 */
    grid-column: 1;
    grid-row: 1;
    margin-inline: 0;
    justify-self: center;
    align-self: flex-end;
  }
}
@media (max-width: 768px) {
  .p-birth-postpartum-card__icon {
    width: 80px;
    height: 60px;
  }
}
@media (max-width: 414px) {
  .p-birth-postpartum-card__icon {
    margin-inline: auto;
  }
}
.p-birth-postpartum-card__title {
  margin: 30px 0 30px;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
@media (max-width: 900px) {
  .p-birth-postpartum-card__title {
    grid-column: 1;
    grid-row: 2;
    /* 左列の「icon+title」全体を上下中央寄せしたいので、
       title自身は余白を調整して詰める */
    margin: 16px 0 0;
    text-align: center;
  }
}
@media (max-width: 768px) {
  .p-birth-postpartum-card__title {
    font-size: 18px;
  }
}
@media (max-width: 414px) {
  .p-birth-postpartum-card__title {
    margin: 18px 0 18px;
    text-align: center;
  }
}
.p-birth-postpartum-card__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 5px;
  /* キャプチャは「左寄せの箇条書き」 */
  width: fit-content;
  margin-inline: auto;
  text-align: left;
}
@media (max-width: 900px) {
  .p-birth-postpartum-card__list {
    grid-column: 2;
    grid-row: 1/span 2;
    /* icon+title の高さに合わせて並ぶ */
    align-self: center;
    /* ★右側も上下中央に寄せたい場合 */
    margin-inline: 0;
    width: 100%;
  }
}
@media (max-width: 414px) {
  .p-birth-postpartum-card__list {
    width: fit-content;
    margin-inline: auto;
    text-align: left;
  }
}
.p-birth-postpartum-card__item {
  position: relative;
  padding-left: 16px;
  line-height: 1.9;
}
.p-birth-postpartum-card__item::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--color-primary);
  position: absolute;
  left: 0;
  top: 0.95em;
  transform: translateY(-50%);
}
.p-birth-postpartum-card {
  /* ★左列（icon+title）を上下中央寄せするための“列のセンタリング” */
}
@media (max-width: 900px) {
  .p-birth-postpartum-card {
    /* icon/title が入る左列の縦方向センタリング */
    grid-auto-rows: min-content;
    align-content: center;
    /* これが効くように card 自体が grid になっている */
    justify-items: center;
  }
}

/* birth
_ ************************************** */
/* =========================================
  birth（出産・入院のご案内）
========================================= */
.p-birth {
  --page-accent-color: var(--color-primary);
  /* ページ固有の微調整を入れる場合はここに */
}

/* 入院時の持ち物
========================================= */
/* ---------- 入院時、すぐに必要なもの ---------- */
.p-birth-box {
  padding: clamp(20px, 4vw, 50px) clamp(30px, 4.5vw, 60px);
  background: var(--color-primary-powder);
  border-radius: var(--radius-sm);
}
@media (max-width: 768px) {
  .p-birth-box {
    padding: clamp(25px, 3vw, 45px);
  }
}
.p-birth-box .c-subhead.c-subhead--tight {
  margin-top: 0;
  column-gap: 10px;
}
.p-birth-box .c-subhead__en {
  color: var(--color-text);
  font-size: 16px;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
}
.p-birth-box__alert {
  margin: 0 0 20px;
  color: var(--color-red);
}

.p-birth-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 40px;
  row-gap: 10px;
}
@media (max-width: 600px) {
  .p-birth-list {
    grid-template-columns: 1fr;
    row-gap: 8px;
  }
}
.p-birth-list__item {
  position: relative;
  padding-left: 18px;
}
.p-birth-list__item::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--color-text);
  position: absolute;
  left: 0;
  top: 0.95em;
  transform: translateY(-50%);
}

.p-birth-inlineNote {
  font-size: 12px;
  opacity: 0.75;
  margin-left: 6px;
}

/* ---------- テーブル枠 ---------- */
.p-birth-tableWrap {
  padding: clamp(30px, 4.5vw, 60px) clamp(30px, 4.5vw, 60px);
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  margin-block: clamp(30px, 4.5vw, 60px);
}
@media (max-width: 768px) {
  .p-birth-tableWrap {
    padding: clamp(20px, 3vw, 45px);
  }
}
.p-birth-tableWrap .c-subhead.c-subhead--tight {
  margin-top: 0;
  column-gap: 10px;
}
.p-birth-tableWrap .c-subhead__en {
  color: var(--color-text);
  font-size: 16px;
  font-family: "Zen Old Mincho", serif;
  font-weight: 600;
}
.p-birth-tableWrap__table {
  overflow-x: auto;
}

.c-table-list {
  margin: 0;
  padding-left: 1.2em;
  list-style: none;
}
.c-table-list li {
  position: relative;
  padding-left: 18px;
}
.c-table-list li::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--color-primary);
  position: absolute;
  left: 0;
  top: 0.95em;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .c-table-list {
    padding-left: 1em;
  }
  .c-table-list li {
    padding-left: 10px;
  }
}

/* ---------- 病院でご用意しているもの（青薄背景） ---------- */
.p-birth-provided {
  padding: clamp(20px, 4vw, 50px) clamp(30px, 4.5vw, 60px);
  background: var(--color-secondary-powder);
  border-radius: var(--radius-sm);
  margin-block: clamp(30px, 4.5vw, 60px);
}
@media (max-width: 768px) {
  .p-birth-provided {
    padding: clamp(25px, 3vw, 45px);
  }
}
.p-birth-provided__title.c-subhead.c-subhead--tight {
  margin-top: 0;
}
.p-birth-provided__title .c-subhead__jp::before {
  background: var(--color-secondary);
}
.p-birth-provided__lead {
  margin: 0 0 20px;
}

.p-birth-dotList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  column-gap: 40px;
  row-gap: 8px;
  margin: 0 0 20px;
}
@media (max-width: 600px) {
  .p-birth-dotList {
    grid-template-columns: 1fr;
    row-gap: 6px;
  }
}
.p-birth-dotList__item {
  position: relative;
  padding-left: 18px;
}
.p-birth-dotList__item::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: var(--color-secondary);
  position: absolute;
  left: 0;
  top: 0.95em;
  transform: translateY(-50%);
}

/* お食事
========================================= */
.p-birth-meals__lead {
  margin-top: 30px;
}
.p-birth-meals__catch {
  margin: 0 0 14px;
  color: var(--color-primary);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .p-birth-meals__catch {
    font-size: 20px;
  }
}
.p-birth-meals__text p {
  margin: 0;
}
.p-birth-meals__text p + p {
  margin-top: 10px;
}
.p-birth-meals__grid {
  margin: clamp(35px, 4.5vw, 55px) 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
@media (max-width: 1024px) {
  .p-birth-meals__grid {
    gap: 20px;
  }
}
@media (max-width: 768px) {
  .p-birth-meals__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
}
@media (max-width: 414px) {
  .p-birth-meals__grid {
    gap: 10px;
  }
}
.p-birth-meals__item img {
  margin-inline: auto;
  max-width: 600px;
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* 入院サービス（3カード）
========================================= */
.p-birth-services {
  margin-top: 34px;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.p-birth-services__card {
  min-width: 0;
}
.p-birth-services__card .c-subhead.c-subhead--tight {
  margin-top: 24px;
}
.p-birth-services__card .c-subhead__jp {
  width: 100%;
}
.p-birth-services__img {
  margin-inline: auto;
  max-width: 600px;
  width: 100%;
  aspect-ratio: 360/240;
  height: auto;
  object-fit: cover;
  display: block;
}
@media (max-width: 1024px) {
  .p-birth-services {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .p-birth-services {
    grid-template-columns: 1fr;
  }
}

/* 入院期間（タイムライン）
========================================= */
.p-birth-stay__lead {
  margin-block: 60px;
  line-height: 2.2;
  color: var(--color-text);
}
.p-birth-stay__lead p {
  margin: 0;
}
.p-birth-stay__lead p + p {
  margin-top: 8px;
}

.p-birth-timeline {
  /* 位置計算用 */
  --timeline-badge-w: 300px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 20px;
}
.p-birth-timeline__row {
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  align-items: stretch;
}
.p-birth-timeline__badge {
  flex: 0 0 var(--timeline-badge-w);
  /* ★固定幅 */
  background: var(--color-primary);
  color: var(--color-white);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 22px 16px;
  min-height: 130px;
}
.p-birth-timeline__badgeEn {
  display: block;
  font-size: 12px;
  letter-spacing: 0.12em;
  opacity: 0.9;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
.p-birth-timeline__badgeJp {
  display: block;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.p-birth-timeline__body {
  flex: 1 1 auto;
  background: var(--color-grey-powder);
  padding: 18px 20px 18px clamp(20px, 3vw, 40px);
  line-height: 2.1;
  min-height: 130px;
  /* ★badgeと同じ高さにした上で、中身を縦中央寄せしたいなら↓をON */
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-birth-timeline__body p {
  margin: 0;
}
.p-birth-timeline__body p + p {
  margin-top: 6px;
}
.p-birth-timeline__arrow {
  height: 14px;
  position: relative;
}
.p-birth-timeline__arrow::before {
  content: "";
  position: absolute;
  /* バッジ列の中心 */
  left: calc(var(--timeline-badge-w) / 2);
  top: 0;
  transform: translateX(-50%) rotate(90deg);
  width: 32px;
  height: 9px;
  /* abort と同じ表現（色はお好みで） */
  background-color: var(--color-text);
  -webkit-mask-image: url("../images/cmn_img/cmn_arrow.svg");
  mask-image: url("../images/cmn_img/cmn_arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  opacity: 0.9;
}
@media (max-width: 768px) {
  .p-birth-timeline__row {
    flex-direction: column;
    /* ★SPは縦積み */
  }
  .p-birth-timeline__badge {
    flex-basis: auto;
    /* ★固定幅解除 */
    min-height: 70px;
    padding: 12px 15px 8px 15px;
    width: 100%;
  }
  .p-birth-timeline__badgeEn {
    font-size: 11px;
  }
  .p-birth-timeline__badgeJp {
    font-size: 18px;
  }
  .p-birth-timeline__body {
    padding: 16px 16px;
    min-height: 100px;
  }
  .p-birth-timeline__arrow {
    height: 14px;
  }
  .p-birth-timeline {
    /* SPは消す（既存挙動維持） */
  }
  .p-birth-timeline__arrow::before {
    left: 50%;
  }
}

/* 入院費用
========================================= */
.p-birth-noteBox {
  margin-top: 60px;
  padding: 40px 40px;
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  text-align: center;
}
.p-birth-noteBox__text {
  margin: 0;
  color: var(--color-primary);
  font-size: 20px;
  letter-spacing: 0.06em;
}
.p-birth-noteBox__text + .p-birth-noteBox__text {
  margin-top: 6px;
}
@media (max-width: 768px) {
  .p-birth-noteBox {
    margin-top: 40px;
    padding: 30px 30px;
  }
  .p-birth-noteBox__text {
    font-size: 18px;
  }
}

/* 面会時間
========================================= */
.p-birth-visit {
  margin-top: 22px;
}
.p-birth-visit__grid {
  display: grid;
  grid-template-columns: 1fr clamp(460px, 44vw, 550px);
  gap: clamp(40px, 5vw, 60px);
  align-items: center;
}
@media (max-width: 1024px) {
  .p-birth-visit__grid {
    grid-template-columns: 1fr clamp(420px, 42vw, 460px);
    gap: 32px;
  }
}
@media (max-width: 900px) {
  .p-birth-visit__grid {
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: start;
  }
}
.p-birth-visit__content {
  display: grid;
  gap: 40px;
  /* bar と本文の間隔（必要なら調整） */
}
@media (max-width: 900px) {
  .p-birth-visit__content {
    gap: 20px;
  }
}
.p-birth-visit__bar {
  display: grid;
  grid-template-columns: 170px 1fr;
  align-items: center;
  background: var(--color-grey-powder);
  overflow: hidden;
}
@media (max-width: 768px) {
  .p-birth-visit__bar {
    grid-template-columns: 140px 1fr;
  }
}
@media (max-width: 414px) {
  .p-birth-visit__bar {
    grid-template-columns: 1fr;
  }
}
.p-birth-visit__tag {
  background: var(--color-primary);
  color: var(--color-white);
  padding: 7px 20px;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .p-birth-visit__tag {
    padding: 7px 10px;
  }
}
.p-birth-visit__time {
  padding: 7px 20px 7px 40px;
  font-size: 18px;
  font-weight: 700;
}
@media (max-width: 1280px) {
  .p-birth-visit__time {
    padding: 7px 10px 7px 20px;
    font-size: 16px;
  }
}
@media (max-width: 414px) {
  .p-birth-visit__time {
    text-align: center;
  }
}
.p-birth-visit__sub {
  margin: 0 0 12px;
  color: var(--color-primary);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.p-birth-visit__text {
  line-height: 2.2;
}
.p-birth-visit__text p {
  margin: 0;
}
.p-birth-visit__text p + p {
  margin-top: 10px;
}
.p-birth-visit__media {
  margin: 0;
  width: min(550px, 100%);
}
.p-birth-visit__media img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
@media (max-width: 900px) {
  .p-birth-visit__media {
    margin-inline: auto;
    width: min(600px, 100%);
  }
}

/* 産後ケア
========================================= */
.p-reco-box {
  margin-top: 34px;
  /* 背景枠（外側） */
  background: rgba(45, 52, 74, 0.03);
  border-radius: var(--radius-sm);
  /* 上下余白は固定40px、左右は可変でOK */
  padding-block: 40px;
  padding-inline: clamp(22px, 3vw, 34px);
  /* 中身の最大幅を1080pxで中央寄せ（HTML増やさず実現） */
  display: grid;
  justify-items: center;
  /* 1080px枠の中に要素を収める */
}
.p-reco-box > * {
  width: min(1080px, 100%);
}
.p-reco-box__eyebrow {
  margin: 0 0 8px;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--color-primary);
  text-align: center;
}
@media (max-width: 768px) {
  .p-reco-box__eyebrow {
    font-size: 11px;
  }
}
.p-reco-box__title {
  margin: 0 0 30px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--color-text);
  text-align: center;
  /* 左右の点線（dotted） */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.p-reco-box__title::before, .p-reco-box__title::after {
  content: "";
  flex: 1 1 auto;
  border-top: 1px dotted var(--color-gray);
  transform: translateY(1px);
  min-width: 25px;
}
@media (max-width: 768px) {
  .p-reco-box__title {
    font-size: 16px;
    gap: 10px;
    line-height: 1.4;
  }
}
.p-reco-box__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1024px) {
  .p-reco-box__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 22px 14px;
  }
}
@media (max-width: 414px) {
  .p-reco-box__grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
}
.p-reco-box__mediaText {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 22px;
  align-items: start;
}
@media (max-width: 768px) {
  .p-reco-box__mediaText {
    grid-template-columns: 1fr;
  }
}
.p-reco-box__media {
  margin: 0;
  width: min(250px, 100%);
}
.p-reco-box__media img {
  width: 100%;
  aspect-ratio: 250/180;
  height: auto;
  object-fit: cover;
  display: block;
}
.p-reco-box__body p {
  margin: 0;
  font-size: 15px;
  line-height: 2.1;
}
@media (max-width: 768px) {
  .p-reco-box__body p {
    font-size: 13px;
  }
}

.p-reco-card {
  margin: 0;
  text-align: center;
}
.p-reco-card__img {
  width: min(250px, 100%);
  aspect-ratio: 250/180;
  height: auto;
  object-fit: cover;
  display: block;
  margin-inline: auto;
}
@media (max-width: 768px) {
  .p-reco-card__img {
    height: 160px;
  }
}
.p-reco-card__text {
  margin: 14px 0 0;
  /* テキスト＋ドットを一塊に */
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-text);
  width: min(12em, 100%);
}
.p-reco-card__text::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-primary);
  flex: 0 0 8px;
  transform: translateY(1px);
}
@media (max-width: 768px) {
  .p-reco-card__text {
    margin-top: 10px;
    gap: 8px;
    font-size: 15px;
  }
  .p-reco-card__text::before {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
  }
}

/*  p-reco-box--simple：タブレット時に画像を中央寄せ */
@media (max-width: 1024px) {
  .p-reco-box--simple {
    /* 2カラムのまま、左カラム（figure）を中央に */
  }
  .p-reco-box--simple .p-reco-box__mediaText {
    justify-items: center;
  }
  .p-reco-box--simple {
    /* figure 自体も中央に寄せる（念のため） */
  }
  .p-reco-box--simple .p-reco-box__media {
    margin-inline: auto;
  }
}

/* fuzinka
_ ************************************** */
/* =========================================
   fuzinka（婦人科）
========================================= */
.p-fuzinka {
  --page-accent-color: var(--color-secondary);
  /* ページ固有の微調整を入れる場合はここに */
}

/* =========================================
   画像左固定ブロック（p-obst-item踏襲 / 色除外）
========================================= */
.p-fuzinka-card {
  margin-top: 52px;
}
@media (max-width: 414px) {
  .p-fuzinka-card {
    margin-top: 40px;
  }
}
.p-fuzinka-card {
  /* 産科の p-obst-item__grid を踏襲 */
}
.p-fuzinka-card__grid {
  display: grid;
  grid-template-columns: clamp(480px, 44vw, 540px) 1fr;
  align-items: center;
  gap: clamp(30px, 5vw, 60px);
}
@media (max-width: 1024px) {
  .p-fuzinka-card__grid {
    grid-template-columns: clamp(440px, 40vw, 480px) 1fr;
    gap: clamp(30px, 4vw, 50px);
  }
}
.p-fuzinka-card__grid {
  /* 900px以下で1カラム */
}
@media (max-width: 900px) {
  .p-fuzinka-card__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}
@media (max-width: 768px) {
  .p-fuzinka-card__grid {
    gap: 35px;
  }
}
.p-fuzinka-card__media {
  margin: 0;
  width: min(540px, 100%);
}
.p-fuzinka-card__media img {
  width: 100%;
  aspect-ratio: 540/400;
  /* ＝ 1.35 */
  height: auto;
  display: block;
  object-fit: cover;
}
@media (max-width: 900px) {
  .p-fuzinka-card__media {
    margin-inline: auto;
    width: min(600px, 100%);
  }
}
.p-fuzinka-card__body {
  min-width: 0;
  padding-top: 0;
  /* 産科寄せ：不要なら0 */
}
.p-fuzinka-card__body .c-subhead.c-subhead--tight {
  margin-top: 0;
}
.p-fuzinka-card__text {
  margin-top: 14px;
  font-size: 16px;
  line-height: 2.2;
}
@media (max-width: 1024px) {
  .p-fuzinka-card__text {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-fuzinka-card__text {
    font-size: 14px;
  }
}
.p-fuzinka-card__text p {
  margin: 0;
}
.p-fuzinka-card__text p + p {
  margin-top: 12px;
}
.p-fuzinka-card__cta {
  margin-top: 22px;
  margin-inline: auto;
  display: flex;
  justify-content: center;
}
.p-fuzinka-card {
  /* note（予防接種の箱） */
}
.p-fuzinka-card__note {
  margin-top: 14px;
  padding: 18px 20px;
  border-radius: var(--radius-sm);
  background: var(--color-grey-powder);
}
.p-fuzinka-card__note-title {
  margin: 0 0 12px;
  letter-spacing: 0.08em;
  font-weight: 700;
}
.p-fuzinka-card__note-title.c-pill-label {
  background-color: var(--color-white);
  font-size: 15px;
  padding: 7px 20px;
}
@media (max-width: 768px) {
  .p-fuzinka-card__note-title.c-pill-label {
    font-size: 13px;
  }
}
.p-fuzinka-card__note-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px 5px;
  line-height: 1.7;
  font-size: 15px;
}
@media (max-width: 768px) {
  .p-fuzinka-card__note-list {
    font-size: 13px;
  }
}
.p-fuzinka-card__note-list li {
  position: relative;
  padding-left: 14px;
}
.p-fuzinka-card__note-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  /* 色は既存トーンに合わせる（必要なら --page-accent-color に差替OK） */
  color: var(--page-accent-color);
}
@media (max-width: 1440px) {
  .p-fuzinka-card__note-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 10px;
  }
}
@media (max-width: 460px) {
  .p-fuzinka-card__note-list {
    grid-template-columns: 1fr;
  }
}
.p-fuzinka-card {
  /* 避妊相談 */
}
.p-fuzinka-card__bullets {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
}
.p-fuzinka-card__bullets li {
  padding-left: 0;
  position: static;
}
.p-fuzinka-card__bullets li::before {
  content: none;
}
.p-fuzinka-card {
  /* 無痛中絶：メタ情報 */
}
.p-fuzinka-card__meta {
  margin-top: 18px;
  padding: 0;
  display: grid;
  gap: 0;
}
.p-fuzinka-card__meta-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 25px;
  align-items: center;
  /* 先頭以外の行に区切り線 */
}
.p-fuzinka-card__meta-row + .p-fuzinka-card__meta-row {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dotted var(--color-gray);
}
@media (max-width: 520px) {
  .p-fuzinka-card__meta-row {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 10px;
  }
}
.p-fuzinka-card__label {
  margin: 0;
  padding: 7px 12px;
  border-radius: 9999px;
  background: var(--color-gray);
  color: var(--color-white);
  line-height: 1;
  text-align: center;
  width: 114px;
}
@media (max-width: 520px) {
  .p-fuzinka-card__label {
    justify-self: start;
  }
}
.p-fuzinka-card__meta-text {
  margin: 0;
  font-size: 14px;
  line-height: 2;
}

/* funin
_ ************************************** */
/* =========================================
   p-infertility（不妊治療）
========================================= */
.p-funin {
  --page-accent-color: var(--color-secondary);
  /* ページ固有の微調整を入れる場合はここに */
}

/* 検診内容 */
.p-infertility-exam__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}
.p-infertility-exam__card {
  background: var(--color-grey-powder);
  border-radius: var(--radius-md);
  padding: 30px;
  min-height: 280px;
}
.p-infertility-exam__icon {
  width: 123px;
  height: 123px;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-infertility-exam__icon img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.p-infertility-exam__name {
  margin: 0 0 14px;
  text-align: center;
  font-size: 20px;
  letter-spacing: 0.12em;
}
.p-infertility-exam__desc {
  margin: 0;
  font-size: 15px;
}
@media (max-width: 1024px) {
  .p-infertility-exam__grid {
    gap: 22px;
  }
}
@media (max-width: 768px) {
  .p-infertility-exam__grid {
    gap: 20px;
  }
  .p-infertility-exam__card {
    padding: 26px;
    min-height: auto;
  }
}
@media (max-width: 600px) {
  .p-infertility-exam__grid {
    grid-template-columns: 1fr;
  }
  .p-infertility-exam__card {
    padding: 22px 20px;
    min-height: auto;
  }
}

/* 治療方法 */
.p-infertility-method__list {
  margin-top: 20px;
}
.p-infertility-method__item {
  display: grid;
  grid-template-columns: 165px 1fr;
  column-gap: 50px;
  align-items: center;
  padding-block: 28px;
}
.p-infertility-method__item .c-subhead.c-subhead--tight {
  margin-top: 0;
}
.p-infertility-method__icon {
  width: 165px;
  margin: 0 auto;
}
.p-infertility-method__icon img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
}
.p-infertility-method__note {
  margin-top: 1em;
}
@media (max-width: 768px) {
  .p-infertility-method__contents {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .p-infertility-method__item {
    grid-template-columns: 1fr;
    row-gap: 18px;
  }
  .p-infertility-method__icon {
    width: 160px;
  }
}

/* childbirth
_ ************************************** */
/* =========================================================
   p-childbirth（無痛分娩）
========================================================= */
.p-childbirth {
  --page-accent-color: var(--color-primary);
}

/* Intro：補足ボックス（硬膜外麻酔法とは） */
.p-childbirth-note {
  margin-top: 35px;
  padding: 30px 40px;
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
}
.p-childbirth-note__text {
  margin: 0;
  font-size: 14px;
  line-height: 2.1;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .p-childbirth-note__text {
    font-size: 13px;
  }
}
@media (max-width: 768px) {
  .p-childbirth-note {
    padding: 20px 20px;
  }
}

/* PRICE */
.p-childbirth-price__grid {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
.p-childbirth-price__card {
  background: var(--color-grey-powder);
  overflow: hidden;
  text-align: center;
  padding-bottom: 28px;
}
.p-childbirth-price__head {
  margin: 0;
  padding: 14px 18px;
  background: var(--page-accent-color);
  color: var(--color-white);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.p-childbirth-price__value {
  margin: 24px 0 0;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}
.p-childbirth-price__tax {
  font-size: 16px;
  margin-left: 0;
  line-height: 1;
  position: relative;
  top: 1px;
}
@media (max-width: 1024px) {
  .p-childbirth-price__grid {
    gap: 30px;
  }
  .p-childbirth-price__head {
    padding: 10px 18px;
    min-height: 4.32em;
    line-height: 1.6;
  }
}
@media (max-width: 768px) {
  .p-childbirth-price__grid {
    gap: 20px;
    grid-template-columns: 1fr;
  }
  .p-childbirth-price__card {
    padding-bottom: 20px;
  }
  .p-childbirth-price__head {
    padding: 10px 15px;
    font-size: 16px;
  }
  .p-childbirth-price__value {
    margin: 16px 0 0;
    font-size: 27px;
  }
  .p-childbirth-price__tax {
    font-size: 14px;
    margin-left: 6px;
  }
}

/* FEATURES */
.p-childbirth-features__subhead {
  margin-top: 34px;
}
.p-childbirth-features__subhead--mt {
  margin-top: 48px;
}
.p-childbirth-features__grid {
  margin-top: 26px;
  display: grid;
  gap: 40px 40px;
}
.p-childbirth-features__grid--merit, .p-childbirth-features__grid--demerit {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1024px) {
  .p-childbirth-features__grid--merit, .p-childbirth-features__grid--demerit {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 30px;
  }
}
@media (max-width: 768px) {
  .p-childbirth-features__grid--merit, .p-childbirth-features__grid--demerit {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media (max-width: 414px) {
  .p-childbirth-features__grid--merit, .p-childbirth-features__grid--demerit {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* FEATUREカード */
.p-childbirth-feature-card__icon {
  width: 165px;
  height: 165px;
  margin: 0 auto 25px;
  display: grid;
  place-items: center;
}
@media (max-width: 768px) {
  .p-childbirth-feature-card__icon {
    width: 130px;
    height: 130px;
    margin: 0px auto 20px;
  }
}
.p-childbirth-feature-card__icon img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
  object-fit: contain;
}
.p-childbirth-feature-card__title {
  margin: 0 0 18px;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.12em;
}
.p-childbirth-feature-card__text {
  margin: 0;
  font-size: 15px;
}
@media (max-width: 768px) {
  .p-childbirth-feature-card__title {
    font-size: 16px;
    margin: 0 0 12px;
  }
  .p-childbirth-feature-card__text {
    font-size: 13px;
  }
}

/* FLOW */
.p-childbirth-flow__panel {
  margin-top: 34px;
  background: var(--color-grey-powder);
  border-radius: var(--radius-md);
  padding: 50px 40px;
}
.p-childbirth-flow__cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  position: relative;
}
.p-childbirth-flow {
  /* 中央の点線 */
}
.p-childbirth-flow__cols::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 50%;
  width: 1px;
  transform: translateX(-0.5px);
  /* ドット表現 */
  background-image: radial-gradient(circle, #a0a0a0 1.2px, transparent 1.2px);
  background-size: 1px 4px; /* 縦方向のドット間隔 */
  background-repeat: repeat-y;
}
.p-childbirth-flow__col {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-childbirth-flow__col-title {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  background: var(--color-white);
  border-radius: 9999px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  width: min(300px, 90%);
}
.p-childbirth-flow__col-lead {
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--page-accent-color);
  letter-spacing: 0.06em;
  text-align: center;
}
.p-childbirth-flow__steps {
  width: 100%;
  align-self: stretch;
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: grid;
  gap: 40px;
}
.p-childbirth-flow__step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 25px;
}
.p-childbirth-flow__num {
  position: static;
  flex: 0 0 auto;
  left: 0;
  top: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 27px;
  border-radius: 9999px;
  background: var(--page-accent-color);
  color: var(--color-white);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.12em;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
.p-childbirth-flow {
  /* 矢印（各ステップの間） */
}
.p-childbirth-flow__step:not(:last-child)::before {
  content: "";
  position: absolute;
  /* num（幅58px）の中央に矢印中心を合わせる */
  left: 13px;
  top: calc(100% + 15px);
  width: 32px;
  height: 9px;
  background-color: var(--color-gray);
  background-image: none;
  -webkit-mask-image: url("../images/cmn_img/cmn_arrow.svg");
  mask-image: url("../images/cmn_img/cmn_arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  opacity: 0.95;
  pointer-events: none;
  transform: rotate(90deg);
  transform-origin: center;
}
.p-childbirth-flow__step-text {
  margin: 0;
  font-size: 14px;
}
.p-childbirth-flow {
  /* 右カラム：枠線バッジ */
}
.p-childbirth-flow__steps--outline .p-childbirth-flow__num--outline {
  background: var(--color-white);
  color: var(--page-accent-color);
  border: 1px solid var(--page-accent-color);
}
.p-childbirth-flow__note {
  margin: 25px 0 0;
}
@media (max-width: 768px) {
  .p-childbirth-flow__panel {
    padding: 30px 20px;
  }
  .p-childbirth-flow__cols {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .p-childbirth-flow__cols::before {
    display: none;
  }
  .p-childbirth-flow__step {
    gap: 15px;
  }
  .p-childbirth-flow__step:not(:last-child)::before {
    left: 7px;
  }
  .p-childbirth-flow__num {
    width: 46px;
    height: 24px;
    font-size: 15px;
  }
  .p-childbirth-flow__col-title {
    font-size: 18px;
  }
  .p-childbirth-flow__col-lead {
    font-size: 16px;
  }
  .p-childbirth-flow__step-text {
    font-size: 13px;
  }
}

/* abort
_ ************************************** */
/* =========================================================
   p-abort（無痛中絶・中期中絶）
========================================================= */
.p-abort {
  /* ページアクセント：キャプチャではブルー系 */
  --page-accent-color: var(--color-secondary);
}

.p-abort {
  /* 文字色 テキスト色 */
}
.p-abort .c-page-intro__catch {
  color: var(--color-text);
}

/* =========================================
   Features
========================================= */
.p-abort-features {
  margin-top: 10px;
}
.p-abort-features__grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 768px) {
  .p-abort-features__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
  }
}
@media (max-width: 600px) {
  .p-abort-features__grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

.p-abort-feature-card {
  position: relative;
  background: var(--color-white);
  border: 1px solid var(--color-gray-light);
  border-radius: var(--radius-sm);
  padding: 20px clamp(15px, 2.5vw, 30px);
  min-height: 120px;
  display: grid;
  grid-template-columns: 66px 1fr;
  align-items: center;
  column-gap: clamp(15px, 2.5vw, 30px);
}
.p-abort-feature-card__icon {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
}
.p-abort-feature-card__icon img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.p-abort-feature-card__title {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
.p-abort-feature-card__num {
  position: absolute;
  top: 10px;
  right: 10px;
  margin: 0;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.12em;
  color: var(--page-accent-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
@media (max-width: 1024px) {
  .p-abort-feature-card__title {
    font-size: 18px;
  }
}
@media (max-width: 768px) {
  .p-abort-feature-card {
    padding: 10px 15px;
    min-height: 100px;
    grid-template-columns: 60px 1fr;
    column-gap: 15px;
  }
  .p-abort-feature-card__icon {
    width: 60px;
    height: 60px;
  }
  .p-abort-feature-card__num {
    top: 8px;
    right: 8px;
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .p-abort-feature-card {
    min-height: 85px;
    grid-template-columns: 50px 1fr;
    column-gap: 15px;
  }
  .p-abort-feature-card__icon {
    width: 50px;
    height: 50px;
  }
  .p-abort-feature-card__title {
    font-size: 16px;
  }
}

/* =========================================
   About
========================================= */
.p-abort-about__list {
  display: grid;
  gap: 46px;
}
@media (max-width: 768px) {
  .p-abort-about__list {
    gap: 30px;
  }
}
.p-abort-about__item {
  display: grid;
}
.p-abort-about__item .c-subhead.c-subhead--tight {
  margin-top: 0;
}
.p-abort-about__text p {
  margin: 0;
  line-height: 2.05;
}
.p-abort-about__text p + p {
  margin-top: 10px;
}

/* =========================================
   Flow
========================================= */
.p-abort-flow {
  /* 位置計算用（PC default） */
  --flow-pad-x: 30px;
  --flow-left-w: 270px;
  --flow-left-pr: 30px;
}
.p-abort-flow__list {
  margin-top: 34px;
  display: grid;
  gap: 26px;
}
.p-abort-flow__card {
  background: var(--color-grey-powder);
  border-radius: var(--radius-md);
  padding: 20px var(--flow-pad-x);
  display: grid;
  grid-template-columns: var(--flow-left-w) 1fr;
  column-gap: 40px;
  align-items: center;
}
.p-abort-flow__left {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  padding-block: 20px;
  padding-right: var(--flow-left-pr);
  position: relative;
}
.p-abort-flow {
  /* 左右の区切り（点線） */
}
.p-abort-flow__left::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 1px;
  background-image: radial-gradient(#a0a0a0 1px, rgba(0, 0, 0, 0) 1px);
  background-size: 1px 10px;
  background-repeat: repeat-y;
}
.p-abort-flow__num {
  margin: 0;
  font-size: 18px;
  letter-spacing: 0.12em;
  color: var(--page-accent-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
.p-abort-flow__title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1.7;
}
.p-abort-flow__right {
  padding-block: 20px;
}
.p-abort-flow__right p {
  margin: 0;
}
.p-abort-flow__right p + p {
  margin-top: 10px;
}
.p-abort-flow {
  /* カード間の矢印（ボタン矢印を流用：mask + 回転） */
}
.p-abort-flow__arrow {
  height: 18px;
  position: relative;
}
.p-abort-flow__arrow::before {
  content: "";
  position: absolute;
  left: calc(var(--flow-pad-x) + var(--flow-left-w) / 2 - var(--flow-left-pr) / 2);
  top: 0;
  transform: translateX(-50%) rotate(90deg); /* 右矢印SVGを下向きに */
  width: 32px;
  height: 9px;
  background-color: var(--color-secondary);
  -webkit-mask-image: url("../images/cmn_img/cmn_arrow.svg");
  mask-image: url("../images/cmn_img/cmn_arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  opacity: 0.9;
}
@media (max-width: 1024px) {
  .p-abort-flow {
    --flow-pad-x: 26px;
    --flow-left-w: 220px;
    --flow-left-pr: 26px; /* 念のため明示 */
  }
  .p-abort-flow__card {
    padding: 20px var(--flow-pad-x);
    grid-template-columns: var(--flow-left-w) 1fr;
  }
}
@media (max-width: 768px) {
  .p-abort-flow__card {
    grid-template-columns: 1fr;
    gap: 0px;
    padding: 20px 20px;
    align-items: start;
  }
  .p-abort-flow__left {
    justify-content: flex-start;
    align-items: flex-start;
    padding-right: 0;
    padding-block: 10px;
  }
  .p-abort-flow__left::after {
    display: none;
  }
  .p-abort-flow__title {
    text-align: left;
  }
  .p-abort-flow__right {
    padding-block: 10px;
  }
  .p-abort-flow__arrow {
    height: 14px;
  }
  .p-abort-flow {
    /* SPは従来どおり中央でOKなら */
  }
  .p-abort-flow__arrow::before {
    left: 50%;
  }
}

/* =========================================
   Mid-term
========================================= */
.p-abort-midterm {
  /* h2内の「中期中絶」と small を縦中央揃え */
}
.p-abort-midterm .c-block-head__jp {
  display: inline-flex;
  align-items: center;
  gap: 8px; /* ← margin-left の代わり（安全） */
  flex-wrap: wrap; /* 画面が狭い時の折り返し保険 */
}
.p-abort-midterm__small {
  margin-left: 0; /* gap を使うのでリセット */
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2; /* small側の上下ズレ防止（任意） */
}
@media (max-width: 768px) {
  .p-abort-midterm__small {
    font-size: 15px;
  }
}
.p-abort-midterm__lead {
  margin-top: 22px;
}
.p-abort-midterm__lead p {
  margin: 0;
  font-size: 15px;
  line-height: 2.05;
}
.p-abort-midterm__lead p + p {
  margin-top: 10px;
}
.p-abort-midterm__stack {
  display: grid;
}
.p-abort-midterm__block {
  display: grid;
}
.p-abort-midterm__text p {
  margin: 0;
  font-size: 16px;
  line-height: 2.05;
}
@media (max-width: 1024px) {
  .p-abort-midterm__text p {
    font-size: 15px;
  }
}
@media (max-width: 768px) {
  .p-abort-midterm__text p {
    font-size: 14px;
  }
}
.p-abort-midterm__text p + p {
  margin-top: 10px;
}
.p-abort-midterm__box {
  margin-block: 30px 25px;
  background: var(--color-grey-powder);
  border-radius: var(--radius-md);
  padding: 30px 40px;
}
.p-abort-midterm__notes p + p {
  margin-top: 0.5em;
}
.p-abort-midterm__list {
  margin-block: 10px;
}
@media (max-width: 414px) {
  .p-abort-midterm__box {
    padding: 15px 20px;
  }
}

/* =========================================
   Notes
========================================= */
.p-abort-notes__box {
  margin-top: 34px;
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  padding: 30px 40px;
}
.p-abort-notes__box-list.c-list {
  padding-left: 0;
}
.p-abort-notes__box-list li.c-note-title {
  margin-bottom: 0;
}
@media (max-width: 414px) {
  .p-abort-notes__box {
    padding: 15px 20px;
  }
}

.p-abort .c-faq {
  margin-top: 60px;
}
@media (max-width: 768px) {
  .p-abort .c-faq {
    margin-top: auto;
  }
}

/* access
_ ************************************** */
/* =========================================
   access（当院概要・アクセス）
========================================= */
.p-access {
  --page-accent-color: var(--color-primary);
}

/* -----------------------------
  Overview（スライダー＋医院概要）
----------------------------- */
/* swiper CSSカスタムプロパティ（必要なら色だけ差し替え） */
.js-access-slider {
  --swiper-pagination-color: var(--color-primary);
  --swiper-pagination-bullet-inactive-color: var(--color-gray-light);
  --swiper-pagination-bullet-horizontal-gap: 10px;
}

.p-access-overview__grid {
  display: grid;
  /* 左：slider（最大520）／右：content（最大600） */
  grid-template-columns: minmax(0, 520px) minmax(0, 600px);
  /* 画面が狭くなるほど gap が縮む（最大80px） */
  column-gap: clamp(24px, 5vw, 80px);
  align-items: start;
  /* ★追加：grid item を縮められるようにする */
}
.p-access-overview__grid > * {
  min-width: 0;
}
.p-access-overview__grid {
  /* タブレット帯：PC画像のまま、レイアウトだけ上下積み */
}
@media (min-width: 768px) and (max-width: 1024px) {
  .p-access-overview__grid {
    grid-template-columns: 1fr;
    column-gap: 0;
  }
}
@media (max-width: 768px) {
  .p-access-overview__grid {
    grid-template-columns: 1fr;
  }
}
.p-access-overview {
  /* swiper 部分 */
}
.p-access-overview__slider {
  width: 100%;
  max-width: 520px;
  aspect-ratio: 520/600;
}
.p-access-overview__slider .swiper {
  border-radius: 10px;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.p-access-overview__slider .swiper-slide picture,
.p-access-overview__slider .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
}
.p-access-overview__slider .swiper-slide img {
  object-fit: cover;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .p-access-overview__slider {
    max-width: 768px;
    margin-inline: auto;
  }
}
@media (max-width: 1024px) {
  .p-access-overview__slider {
    margin-bottom: 30px;
    max-width: 768px;
    aspect-ratio: 395/250;
  }
}
.p-access-overview__content {
  min-width: 0;
  align-self: center;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .p-access-overview__content {
    width: min(768px, 100%);
    align-self: stretch;
    margin-inline: auto;
  }
}

/* 医院概要（右側の罫線＋ドット） */
.p-access-info {
  margin: 0;
  padding: 0;
  border-bottom: 1px dotted var(--color-gray);
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 1px;
  /* dt+dd を 1行扱いで揃える */
  row-gap: 0;
}
@media (max-width: 768px) {
  .p-access-info {
    grid-template-columns: 120px 1fr;
  }
}
@media (max-width: 520px) {
  .p-access-info {
    grid-template-columns: 1fr;
  }
}
.p-access-info__label, .p-access-info__value {
  padding: 18px 0;
  border-bottom: 1px dotted var(--color-gray);
}
@media (max-width: 768px) {
  .p-access-info__label, .p-access-info__value {
    padding: 14px 0;
  }
}
.p-access-info {
  /* 最終行の dt/dd の下線を消す */
}
.p-access-info__label:last-of-type, .p-access-info__value:last-of-type {
  border-bottom: 0;
}
.p-access-info__label {
  margin: 0;
  padding-inline: clamp(10px, 1.5vw, 30px);
  color: var(--color-text);
  letter-spacing: 0.08em;
  white-space: nowrap;
}
@media (max-width: 520px) {
  .p-access-info__label {
    white-space: normal;
    font-weight: 600;
    padding-bottom: 0; /* 1カラム時は dt と dd の間を詰める */
    border-bottom: 0; /* 1カラム時：dt の線は消す */
  }
}
.p-access-info__value {
  margin: 0;
  padding-inline: clamp(10px, 1.5vw, 30px);
  color: var(--color-text);
  line-height: 2;
  min-width: 0;
}
@media (max-width: 520px) {
  .p-access-info__value {
    padding-top: 8px; /* dt の直後なので少しだけ余白 */
  }
}

/* -----------------------------
  Access map
----------------------------- */
.p-access-map__frame {
  background-color: var(--color-gray-light);
  width: 100%;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.p-access-map__frame iframe {
  display: block;
  width: 100%;
  height: 400px;
  border: 0;
}
@media (max-width: 768px) {
  .p-access-map__frame {
    border-radius: 10px;
  }
  .p-access-map__frame iframe {
    height: 240px;
  }
}
.p-access-map__info {
  margin-top: 30px;
  padding: clamp(20px, 3vw, 36px) clamp(20px, 3vw, 36px);
  border-radius: var(--radius-sm);
  background: var(--color-grey-powder);
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 30px;
  align-items: start;
}
@media (max-width: 900px) {
  .p-access-map__info {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px 18px;
  }
}
.p-access-map__divider {
  width: 1px;
  height: 100%;
  background: repeating-linear-gradient(to bottom, var(--color-text) 0 2px, transparent 2px 6px);
}
@media (max-width: 900px) {
  .p-access-map__divider {
    display: none;
  }
}
.p-access-map__panel {
  padding-block: 10px;
}
.p-access-map__title.c-subhead {
  margin-block: 0;
}
.p-access-map__title .c-subhead__jp::before {
  display: none;
}
.p-access-map__title {
  /* 日本語 */
}
.p-access-map__title .c-subhead__jp {
  font-size: 20px;
  padding-left: 0;
}
.p-access-map__title {
  /* 英語 */
}
.p-access-map__title .c-subhead__en {
  font-size: 11px;
  line-height: 1.85;
}
@media (max-width: 768px) {
  .p-access-map .p-access-map__title .c-subhead__jp {
    font-size: 16px;
  }
  .p-access-map .p-access-map__title .c-subhead__en {
    font-size: 10px;
  }
}
.p-access-map__text {
  margin: 20px 0 0 0;
}
@media (max-width: 768px) {
  .p-access-map__text {
    margin: 10px 0 0 0;
  }
}
.p-access-map__text + .p-access-map__text {
  margin-top: 10px;
}
.p-access-map__cta {
  margin-top: 30px;
  display: grid;
  place-items: center;
}

/* greeting
_ ************************************** */
/* =========================================
   greeting（スタッフ紹介）
========================================= */
.p-greeting {
  --page-accent-color: var(--color-secondary);
}

/* Intro */
.p-greeting .c-page-intro__grid {
  grid-template-columns: 1fr;
}
.p-greeting .c-page-intro__catch {
  margin-bottom: 40px;
}
.p-greeting .c-page-intro__text p + p {
  padding-top: 18px;
}

/* Profiles */
.p-greeting-staff__list {
  display: grid;
  gap: 80px;
}
@media (max-width: 900px) {
  .p-greeting-staff__list {
    gap: 56px;
  }
}
@media (max-width: 768px) {
  .p-greeting-staff__list {
    gap: 40px;
  }
}

.p-greeting-profile__grid {
  display: grid;
  grid-template-columns: 1fr clamp(360px, 40vw, 550px);
  gap: clamp(12px, 4vw, 70px);
  align-items: center;
}
.p-greeting-profile {
  /* 左カラム（head+content）の塊 */
}
.p-greeting-profile__col {
  min-width: 0;
  display: grid;
}
@media (max-width: 900px) {
  .p-greeting-profile__grid {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .p-greeting-profile__col {
    display: contents;
    /* SPでは col を消して順番を組み替える */
  }
  .p-greeting-profile__head {
    order: 1;
  }
  .p-greeting-profile__media {
    order: 2;
  }
  .p-greeting-profile__content {
    order: 3;
  }
}
.p-greeting-profile {
  /* 左右反転（顧問ブロック） */
}
.p-greeting-profile--reverse .p-greeting-profile__grid {
  grid-template-columns: clamp(360px, 40vw, 550px) 1fr;
}
.p-greeting-profile--reverse {
  /* PCでは左：media / 右：col にしたいので順番だけ入れ替える */
}
.p-greeting-profile--reverse .p-greeting-profile__media {
  order: 1;
}
.p-greeting-profile--reverse .p-greeting-profile__col {
  order: 2;
}
@media (max-width: 900px) {
  .p-greeting-profile--reverse .p-greeting-profile__grid {
    grid-template-columns: 1fr;
  }
  .p-greeting-profile--reverse .p-greeting-profile__media,
  .p-greeting-profile--reverse .p-greeting-profile__col {
    order: initial;
    /* SPは通常順に戻す */
  }
}
.p-greeting-profile__role {
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: 0.18em;
  color: var(--page-accent-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-greeting-profile__role {
    font-size: 11px;
    margin: 0 0 8px;
  }
}
.p-greeting-profile__name {
  margin: 0 0 40px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 18px;
  letter-spacing: 0.08em;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .p-greeting-profile__name {
    margin-bottom: 10px;
    gap: 15px 18px;
  }
}
.p-greeting-profile__pos {
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-greeting-profile__pos {
    font-size: 18px;
  }
}
.p-greeting-profile__jp {
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-greeting-profile__jp {
    font-size: 26px;
  }
}
.p-greeting-profile__meta {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .p-greeting-profile__meta {
    font-size: 16px;
  }
}
.p-greeting-profile__panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 768px) {
  .p-greeting-profile__panels {
    grid-template-columns: 1fr;
  }
}
.p-greeting-profile__lead {
  line-height: 2.2;
}
.p-greeting-profile__lead p {
  margin: 0;
}
.p-greeting-profile__media {
  margin: 0;
  border: 1px solid var(--color-border, #d9dfe8);
  border-radius: var(--radius-md, 16px);
  background: #fff;
  padding: clamp(20px, 2vw, 26px);
  display: grid;
  place-items: center;
}
.p-greeting-profile__media img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 420px;
  aspect-ratio: 1/1;
  object-fit: contain;
}
@media (max-width: 900px) {
  .p-greeting-profile__media {
    margin-inline: auto;
    /* 既存の中央寄せを維持したいなら */
    max-width: 720px;
  }
  .p-greeting-profile__media img {
    max-width: 360px;
  }
}

/* panel（経歴/資格など） */
.p-greeting-panel {
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  padding: clamp(20px, 1.5vw, 30px);
}
.p-greeting-panel__title {
  margin: 0 0 15px;
  font-size: 18px;
  letter-spacing: 0.16em;
  color: var(--page-accent-color);
  font-weight: 700;
}
@media (max-width: 768px) {
  .p-greeting-panel__title {
    font-size: 16px;
  }
}
.p-greeting-panel__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 2px;
  font-size: 15px;
  color: var(--color-text);
}
.p-greeting-panel__list li {
  margin: 0;
}
@media (max-width: 768px) {
  .p-greeting-panel__list {
    font-size: 13px;
  }
}

/* Mini profiles */
.p-greeting-mini {
  padding-block: 20px 0;
}
.p-greeting-mini__grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(20px, 3vw, 60px);
  align-items: start;
}
@media (max-width: 900px) {
  .p-greeting-mini__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}
.p-greeting-mini__divider {
  width: 1px;
  height: 100%;
  background: repeating-linear-gradient(to bottom, var(--color-border, #d9dfe8) 0 2px, transparent 2px 6px);
}
@media (max-width: 900px) {
  .p-greeting-mini__divider {
    display: none;
  }
}
.p-greeting-mini__item {
  display: grid;
  grid-template-columns: 260px 1fr;
  /* 左：テキスト塊 / 右：box */
  gap: clamp(10px, 1.5vw, 20px);
  align-items: center;
}
@media (max-width: 900px) {
  .p-greeting-mini__item {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
@media (max-width: 768px) {
  .p-greeting-mini__item {
    gap: 15px;
  }
}
.p-greeting-mini__head {
  min-width: 0;
}
.p-greeting-mini__role {
  margin: 0 0 10px;
  font-size: 14px;
  letter-spacing: 0.18em;
  color: var(--page-accent-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-greeting-mini__role {
    font-size: 11px;
    margin: 0 0 7px;
  }
}
.p-greeting-mini__name {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 16px;
  color: var(--color-text);
  letter-spacing: 0.08em;
}
.p-greeting-mini__pos {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
}
@media (max-width: 768px) {
  .p-greeting-mini__pos {
    font-size: 16px;
  }
}
.p-greeting-mini__jp {
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-greeting-mini__jp {
    font-size: 26px;
  }
}
.p-greeting-mini__box {
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  padding: clamp(20px, 1.5vw, 30px);
}
.p-greeting-mini__box-title {
  margin: 0 0 10px;
  font-size: 18px;
  letter-spacing: 0.16em;
  color: var(--page-accent-color);
  font-weight: 700;
}
@media (max-width: 768px) {
  .p-greeting-mini__box-title {
    font-size: 16px;
  }
}
.p-greeting-mini__box-text {
  margin: 0;
  font-size: 15px;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .p-greeting-mini__box-text {
    font-size: 13px;
  }
}

/* faq
_ ************************************** */
/* =========================================================
   FAQ
========================================================= */
.p-faq {
  --page-accent-color: var(--color-secondary);
}

/* 下層ヒーローヘッダー 無地（白）タイプ */
.p-faq .p-lower-hero .p-lower-hero__bg {
  height: 210px;
  background-image: none;
  background-color: var(--color-white);
}
.p-faq .p-lower-hero .p-lower-hero__heading {
  margin-top: -210px;
  height: 210px;
}
.p-faq .p-lower-hero .p-lower-hero__en {
  color: var(--page-accent-color);
}
.p-faq .p-lower-hero .p-lower-hero__title {
  color: var(--color-text);
  text-shadow: none;
}
@media (max-width: 768px) {
  .p-faq .p-lower-hero .p-lower-hero__bg {
    height: 130px;
  }
  .p-faq .p-lower-hero .p-lower-hero__heading {
    margin-top: -130px;
    height: 130px;
  }
}

/* contact
_ ************************************** */
/* =========================================
   contact（お問い合わせ）
========================================= */
.p-contact {
  --page-accent-color: var(--color-primary);
}

/* 下層ヒーローヘッダー 無地（白）タイプ */
.p-contact .p-lower-hero .p-lower-hero__bg {
  height: 210px;
  background-image: none;
  background-color: var(--color-white);
}
.p-contact .p-lower-hero .p-lower-hero__heading {
  margin-top: -210px;
  height: 210px;
}
.p-contact .p-lower-hero .p-lower-hero__en {
  color: var(--page-accent-color);
}
.p-contact .p-lower-hero .p-lower-hero__title {
  color: var(--color-text);
  text-shadow: none;
}
@media (max-width: 768px) {
  .p-contact .p-lower-hero .p-lower-hero__bg {
    height: 130px;
  }
  .p-contact .p-lower-hero .p-lower-hero__heading {
    margin-top: -130px;
    height: 130px;
  }
}

/* Intro */
.p-contact-intro__lead {
  margin: 0;
  text-align: center;
  line-height: 2.2;
}

/* ---------------------------------
  Contact Tel Head（このセクション専用）
--------------------------------- */
.p-contact-tel__head {
  text-align: center;
  margin-bottom: 28px;
}
@media (max-width: 414px) {
  .p-contact-tel__head {
    text-align: left;
  }
}

/* 英字（上） */
.p-contact-tel__en {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--color-primary);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  /* 英字装飾としての共通“質感” */
  font-feature-settings: "kern";
  letter-spacing: 0.12em;
}
@media (max-width: 768px) {
  .p-contact-tel__en {
    font-size: 11px;
  }
}
@media (max-width: 414px) {
  .p-contact-tel__en {
    font-size: 10px;
  }
}

/* 日本語タイトル */
.p-contact-tel__jp {
  position: relative;
  margin: 0;
  padding-left: 20px; /* ドット分の余白 */
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.6;
  color: var(--color-text);
  display: inline-block; /* 中央寄せ用 */
}
@media (max-width: 768px) {
  .p-contact-tel__jp {
    font-size: 20px;
    padding-left: 15px;
  }
}
@media (max-width: 414px) {
  .p-contact-tel__jp {
    font-size: 18px;
  }
}

/* 飾りドット */
.p-contact-tel__dot {
  position: absolute;
  left: 0;
  top: 0.8em;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-primary);
}
@media (max-width: 768px) {
  .p-contact-tel__dot {
    width: 6px;
    height: 6px;
  }
}

/* contact tel box（footer のTEL UIを流用） */
.p-contact-tel {
  margin-top: 36px;
}
.p-contact-tel__inner {
  background: var(--color-grey-powder);
  border-radius: var(--radius-sm);
  padding: clamp(30px, 4vw, 50px);
  text-align: center; /* footerと同じ */
}
@media (max-width: 768px) {
  .p-contact-tel__inner {
    padding: clamp(20px, 2.5vw, 30px) clamp(8px, 1.5vw, 30px);
  }
}
.p-contact-tel {
  /* 注意書きの余白だけ調整 */
}
.p-contact-tel__small {
  margin-top: 14px;
}

.p-contact-form .c-form {
  margin-top: 60px;
}
@media (max-width: 768px) {
  .p-contact-form .c-form {
    margin-top: 20px;
  }
}

/* recruit
_ ************************************** */
/* =========================================
   recruit（採用情報）
========================================= */
.p-recruit {
  --page-accent-color: var(--color-primary);
}

/* Workplace feature */
.p-recruit-feature {
  display: grid;
  grid-template-columns: clamp(460px, 44vw, 550px) 1fr;
  gap: clamp(50px, 5vw, 60px);
  align-items: center;
  /* タブレット境界 */
}
@media (max-width: 1024px) {
  .p-recruit-feature {
    grid-template-columns: 1fr clamp(420px, 42vw, 460px);
    gap: clamp(30px, 4vw, 50px);
  }
}
.p-recruit-feature {
  /* 900px以下で1カラム */
}
@media (max-width: 900px) {
  .p-recruit-feature {
    grid-template-columns: 1fr;
    gap: 0px;
  }
}
.p-recruit-feature__media {
  margin: 0;
  border-radius: var(--radius-md, 16px);
  overflow: hidden;
  width: min(560px, 100%);
}
.p-recruit-feature__media img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 560/380;
  object-fit: cover;
}
@media (max-width: 900px) {
  .p-recruit-feature__media {
    margin-inline: auto;
    width: min(600px, 100%);
  }
}
.p-recruit-feature__text {
  line-height: 2.2;
}
.p-recruit-feature__text p {
  margin: 0;
}

/* Guideline block spacing */
.p-recruit-guideline {
  margin-top: 62px;
}
@media (max-width: 900px) {
  .p-recruit-guideline {
    margin-top: 48px;
  }
}

/* Table */
.p-recruit-table {
  margin: 18px 0 0;
  padding: 0;
  /* dt/dd を2列グリッドに */
  display: grid;
  grid-template-columns: 200px 1fr;
  border-top: 1px dotted var(--color-gray-light);
}
@media (max-width: 900px) {
  .p-recruit-table {
    grid-template-columns: 150px 1fr;
  }
}
@media (max-width: 600px) {
  .p-recruit-table {
    grid-template-columns: 1fr;
  }
}
.p-recruit-table__label, .p-recruit-table__value {
  border-bottom: 1px dotted var(--color-gray-light);
}
.p-recruit-table__label {
  margin: 0;
  background: var(--page-accent-color);
  color: var(--color-white, #fff);
  display: grid;
  place-items: center;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 16px 14px;
  text-align: center;
}
@media (max-width: 600px) {
  .p-recruit-table__label {
    justify-items: start;
    place-items: start;
    padding: 10px 16px;
    text-align: left;
  }
}
@media (max-width: 768px) {
  .p-recruit-table__label {
    padding: 5px 16px;
  }
}
.p-recruit-table__value {
  margin: 0;
  padding: 20px;
  color: var(--color-text);
}
.p-recruit-table__value p + p {
  margin-top: 0.5em;
}
@media (max-width: 600px) {
  .p-recruit-table__value {
    padding: 15px;
  }
}
@media (max-width: 768px) {
  .p-recruit-table__value {
    padding: 10px;
  }
}
.p-recruit-table__subhead {
  font-size: 18px;
  font-weight: 700;
}
@media (max-width: 768px) {
  .p-recruit-table__subhead {
    font-size: 16px;
  }
}
.p-recruit-table__list {
  margin: 0;
  padding-left: 1.2em;
  display: grid;
}
.p-recruit-table__list li {
  margin: 0;
}
.p-recruit-table__box {
  margin-block: 12px;
  padding: 15px 20px;
  border-radius: var(--radius-sm);
  line-height: 2;
}
@media (max-width: 768px) {
  .p-recruit-table__box {
    padding: 10px 15px;
  }
}
.p-recruit-table__box--gray {
  background-color: var(--color-grey-powder);
}
.p-recruit-table__box--primary {
  background-color: var(--color-primary-powder);
}
.p-recruit-table__box .p-recruit-table__list {
  padding-inline: 45px 0;
}
@media (max-width: 768px) {
  .p-recruit-table__box .p-recruit-table__list {
    padding-inline: 26px 0;
  }
}
.p-recruit-table__box-title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
@media (max-width: 768px) {
  .p-recruit-table__box-title {
    font-size: 16px;
  }
}

/* CTA */
.p-recruit-cta {
  margin-top: 32px;
  display: grid;
  place-items: center;
}

.p-recruit-divider {
  margin: 10px 0 !important;
  border: none !important;
  height: 1px;
  background: var(--color-gray-light);
}

/* entry
_ ************************************** */
/* =========================================
   entry（お問い合わせ）
========================================= */
.p-entry {
  --page-accent-color: var(--color-primary);
}

/* 下層ヒーローヘッダー 無地（白）タイプ */
.p-entry .p-lower-hero .p-lower-hero__bg {
  height: 210px;
  background-image: none;
  background-color: var(--color-white);
}
.p-entry .p-lower-hero .p-lower-hero__heading {
  margin-top: -210px;
  height: 210px;
}
.p-entry .p-lower-hero .p-lower-hero__en {
  color: var(--page-accent-color);
}
.p-entry .p-lower-hero .p-lower-hero__title {
  color: var(--color-text);
  text-shadow: none;
}
@media (max-width: 768px) {
  .p-entry .p-lower-hero .p-lower-hero__bg {
    height: 130px;
  }
  .p-entry .p-lower-hero .p-lower-hero__heading {
    margin-top: -130px;
    height: 130px;
  }
}

/* Intro */
.p-entry-intro {
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .p-entry-intro {
    margin-bottom: 20px;
  }
}
.p-entry-intro__lead {
  margin: 0;
  line-height: 2.2;
}

/* privacy
_ ************************************** */
/* =========================================
   privacy（プライバシーポリシー）
========================================= */
.p-privacy {
  --page-accent-color: var(--color-secondary);
}

/* 下層ヒーローヘッダー 無地（白）タイプ */
.p-privacy .p-lower-hero .p-lower-hero__bg {
  height: 210px;
  background-image: none;
  background-color: var(--color-white);
}
.p-privacy .p-lower-hero .p-lower-hero__heading {
  margin-top: -210px;
  height: 210px;
}
.p-privacy .p-lower-hero .p-lower-hero__en {
  color: var(--page-accent-color);
}
.p-privacy .p-lower-hero .p-lower-hero__title {
  color: var(--color-text);
  text-shadow: none;
}
@media (max-width: 768px) {
  .p-privacy .p-lower-hero .p-lower-hero__bg {
    height: 130px;
  }
  .p-privacy .p-lower-hero .p-lower-hero__heading {
    margin-top: -130px;
    height: 130px;
  }
}

/* Policy */
.p-privacy-policy__lead {
  margin: 0 0 26px;
}
.p-privacy-policy__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 20px;
}
.p-privacy-policy__item {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: start;
}
@media (max-width: 600px) {
  .p-privacy-policy__item {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.p-privacy-policy__no {
  letter-spacing: 0.22em;
  color: var(--color-gray);
}
@media (max-width: 600px) {
  .p-privacy-policy__no {
    letter-spacing: 0.18em;
  }
}
.p-privacy-policy__text {
  margin: 0;
}
.p-privacy-policy__text p {
  margin: 0;
}
.p-privacy-policy__text p + p {
  margin-top: 12px;
}
.p-privacy-policy__bullets {
  margin: 5px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 2px;
}
.p-privacy-policy__bullets li {
  position: relative;
  padding-left: 1.2em;
  margin: 0;
}
.p-privacy-policy__bullets li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-text);
}

/* guide
_ ************************************** */
/* =========================================
   guide（ご利用にあたって）
========================================= */
.p-guide {
  --page-accent-color: var(--color-secondary);
}

/* 下層ヒーローヘッダー 無地（白）タイプ（privacyと同様） */
.p-guide .p-lower-hero .p-lower-hero__bg {
  height: 210px;
  background-image: none;
  background-color: var(--color-white);
}
.p-guide .p-lower-hero .p-lower-hero__heading {
  margin-top: -210px;
  height: 210px;
}
.p-guide .p-lower-hero .p-lower-hero__en {
  color: var(--page-accent-color);
}
.p-guide .p-lower-hero .p-lower-hero__title {
  color: var(--color-text);
  text-shadow: none;
}
@media (max-width: 768px) {
  .p-guide .p-lower-hero .p-lower-hero__bg {
    height: 130px;
  }
  .p-guide .p-lower-hero .p-lower-hero__heading {
    margin-top: -130px;
    height: 130px;
  }
}

/* Guide content */
.p-guide-policy__list {
  display: grid;
  gap: 40px;
}
.p-guide-policy__item {
  display: grid;
  grid-template-columns: 1fr; /* 縦積み */
  /* 見出し直下の余白が出る場合だけ詰める（任意） */
}
.p-guide-policy__item .c-subhead {
  margin-top: 0;
}
.p-guide-policy__text {
  margin: 0;
}
.p-guide-policy__text p {
  margin: 0;
}
.p-guide-policy__text p + p {
  margin-top: 10px;
}
.p-guide-policy__link {
  word-break: break-all;
  color: var(--color-text);
}/*# sourceMappingURL=contents.css.map */