/*-------post（お知らせ / コラム）------*/
.l-post {
  width: min(950px, 100%);
  margin-inline: auto;
  padding: clamp(24px, 3.333vw, 48px) 5.556% clamp(50px, 6.944vw, 100px);
}
/* 一覧 */
.c-post-list__item {
  border-bottom: 1px solid #f3f3f3;
}
.c-post-list__link {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 1.667vw, 24px);
  padding-block: clamp(14px, 1.667vw, 24px);
}
.c-post-list__date {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(90px, 7.639vw, 110px);
  min-height: clamp(22px, 1.875vw, 27px);
  padding: 0 0.6em;
  border-radius: 29px;
  background: var(--c-pink);
  font-family: var(--b-font-en);
  font-size: clamp(12px, 0.972vw, 14px);
  line-height: 1.2;
  color: #fff;
}
.c-post-list__ttl {
  font-size: clamp(14px, 1.25vw, 18px);
  line-height: 1.75;
}
.c-post-list__none {
  padding-block: clamp(20px, 2.778vw, 40px);
  text-align: center;
}
/* ページネーション */
.pagination-area {
  margin-top: clamp(40px, 5.556vw, 80px);
}
.pagination-area .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
}
.pagination-area .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 0 0.6em;
  border: 1px solid var(--c-pink);
  font-family: var(--b-font-en);
  font-size: 15px;
  line-height: 1;
  color: var(--c-pink);
}
.pagination-area .page-numbers.current {
  background: var(--c-pink);
  color: #fff;
}
.pagination-area .page-numbers.dots {
  border: none;
}
/* 詳細 */
.p-single__head {
  padding-bottom: clamp(14px, 1.667vw, 24px);
  border-bottom: 1px solid #f3f3f3;
}
.p-single__date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(90px, 7.639vw, 110px);
  min-height: clamp(22px, 1.875vw, 27px);
  padding: 0 0.8em;
  border-radius: 29px;
  background: var(--c-pink);
  font-family: var(--b-font-en);
  font-size: clamp(12px, 0.972vw, 14px);
  line-height: 1.2;
  color: #fff;
}
.p-single__ttl {
  margin-top: clamp(10px, 1.111vw, 16px);
  font-size: clamp(19px, 2.222vw, 32px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.p-single__thumb {
  margin: clamp(20px, 2.778vw, 40px) 0 0;
}
.p-single__thumb img {
  width: 100%;
  height: auto;
}
/* 本文（エディタから出力される要素） */
.p-single__body {
  margin-top: clamp(20px, 2.778vw, 40px);
  font-size: clamp(14px, 1.111vw, 16px);
  line-height: 2;
}
.p-single__body > * + * {
  margin-top: 1.5em;
}
.p-single__body h2 {
  padding: 0.5em 0.8em;
  background: var(--c-pink-pale);
  font-size: clamp(17px, 1.667vw, 24px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.p-single__body h3 {
  padding-left: 0.7em;
  border-left: 3px solid var(--c-pink);
  font-size: clamp(16px, 1.389vw, 20px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.p-single__body a {
  color: var(--c-pink);
  text-decoration: underline;
}
.p-single__body ul li,
.p-single__body ol li {
  position: relative;
  margin-left: 1.4em;
  list-style: revert;
}
.p-single__body ul li {
  list-style: disc;
}
.p-single__body img {
  height: auto;
}
.p-single__body blockquote {
  margin-inline: 0;
  padding: 1em 1.2em;
  border-left: 3px solid #d9d9d9;
  background: #f9f9f9;
}
.p-single__back {
  margin-top: clamp(30px, 4.167vw, 60px);
  text-align: center;
}
/*-------hd------*/
/* 本文（position:relative や isolation:isolate を持つセクション）より前面、
   メニューパネル(700)より背面。閉じるボタンはパネル側にあるのでここは 600 でよい。 */
.l-header {
  position: absolute;
  top: clamp(8px, 0.972vw, 14px);
  left: 0;
  z-index: 600;
  width: 100%;
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 1.667vw, 24px);
  padding-inline: clamp(10px, 1.25vw, 18px);
}
.c-logo__link {
  display: block;
}
.c-logo__img {
  width: clamp(200px, 25vw, 360px);
  height: auto;
}
/* 追従時はロゴを濃色版（logo2）に差し替える */
.c-logo__img--fixed {
  display: none;
}
.is-fixed .c-logo__img--default {
  display: none;
}
.is-fixed .c-logo__img--fixed {
  display: block;
}
/*-------hd 追従時（Group 26）------*/
.l-header.is-fixed {
  top: 0;
  background: #fff;
  box-shadow: 0 2px 10px rgba(42, 15, 59, 0.08);
}
.l-header.is-fixed .l-header__inner {
  align-items: center;
  min-height: clamp(70px, 7.708vw, 111px);
  padding-inline: clamp(10px, 1.25vw, 18px);
}
.l-header__actions {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.833vw, 12px);
}
/*-------hd btn------*/
.c-hbtn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1em;
  min-height: var(--l-header-h);
  padding: 0.4em 0.8em;
  color: #fff;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.c-hbtn--tel {
  width: clamp(180px, 19.722vw, 284px);
  background: var(--c-pink);
}
.c-hbtn--web {
  width: clamp(180px, 19.722vw, 284px);
  background: var(--c-green);
}
.c-hbtn--access {
  width: clamp(120px, 12.986vw, 187px);
  background: var(--c-green-deep);
}
.c-hbtn__label {
  font-size: clamp(11px, 1.389vw, 20px);
}
.c-hbtn__main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 0.903vw, 13px);
  width: 100%;
  font-size: clamp(16px, 2.222vw, 32px);
  white-space: nowrap;
}
.c-hbtn--access .c-hbtn__main {
  font-size: clamp(14px, 1.667vw, 24px);
}
.c-hbtn__main img {
  width: clamp(16px, 1.667vw, 24px);
  height: auto;
  flex: none;
}
.c-hbtn__tel {
  font-family: var(--b-font-en);
  font-size: clamp(18px, 2.5vw, 36px);
  font-style: normal;
}
/*-------hd menu btn------*/
.c-menu-btn,
.c-menu-close {
  display: block;
  flex: none;
  width: clamp(44px, 4.097vw, 59px);
  height: clamp(44px, 4.097vw, 59px);
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  line-height: 0;
}
.c-menu-btn img,
.c-menu-close img {
  width: 100%;
  height: 100%;
}
/* 閉じるボタンはメニューパネル内。ハンバーガーと同じ位置に重なる */
.c-menu-close {
  position: absolute;
  top: clamp(12px, 2.153vw, 31px);
  right: clamp(10px, 1.319vw, 19px);
}
/*-------ft-----*/
.l-footer {
  padding-bottom: clamp(20px, 2.222vw, 32px);
  background: #fff;
}
.l-footer__map {
  width: 88.889%;
  margin-inline: auto;
  aspect-ratio: 1280 / 336;
}
.l-footer__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.l-footer__bnrs {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(16px, 2.222vw, 32px);
  margin-top: clamp(24px, 3.333vw, 48px);
  padding-inline: 5.556%;
}
.l-footer__bnr {
  display: block;
  width: min(818px, 100%);
  line-height: 0;
}
.l-footer__bnr--we img {
  width: 100%;
}
.l-footer__bnr--mama {
  width: min(560px, 100%);
}
.l-footer__nav {
  margin-top: clamp(30px, 4.583vw, 66px);
  padding-inline: 15.28%;
}
.l-footer__nav-inner {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, 10.417vw, 150px);
}
.l-footer__nav .c-nav__block {
  flex: none;
  width: 300px;
  max-width: 100%;
}
.l-footer__nav .c-nav__block--medical {
  flex: 1;
  width: auto;
  min-width: 0;
}
.c-copyright {
  margin-top: clamp(24px, 3.333vw, 48px);
  font-size: 13px;
  line-height: 1.75;
  letter-spacing: 0.13em;
  text-align: center;
}
/*-------SP下部固定バー------*/
/* common.css の `body .SP { display:block }` の方が詳細度が高く
   `.c-footer-icons { display:flex }` を打ち消してしまうため、ここで上書きする */
body .c-footer-icons.SP {
  display: none;
}
.c-spfix__btn {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 4px calc(8px + env(safe-area-inset-bottom) / 2);
  font-size: 11px;
  line-height: 1.2;
  color: #fff;
}
.c-spfix__btn img {
  width: 20px;
  height: auto;
}
.c-spfix__btn--tel {
  background: var(--c-pink);
}
.c-spfix__btn--web {
  background: var(--c-green);
}
.c-spfix__btn--access {
  background: var(--c-green-deep);
}
.c-fixed-bnr {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 480;
  transform: translateY(-50%);
  line-height: 0;
}
.c-fixed-bnr img {
  width: clamp(48px, 4.942vw, 71px);
  height: auto;
}
/*-------btn------*/
/*-------fv------*/
.p-index-fv {
  display: grid;
  overflow: hidden;
}
.p-index-fv > * {
  grid-area: 1 / 1;
  min-width: 0;
}
.p-index-fv__row {
  display: grid;
}
.p-index-fv__row--a {
  grid-template-columns: 662fr 340fr 438fr;
}
.p-index-fv__row--b {
  grid-template-columns: 553fr 368fr 519fr;
}
/* 高さは各セルの aspect-ratio が決める（行コンテナ側に付けると
   行トラックが auto のままになり、img の height:100% が解決できず画像が実寸まで伸びる） */
.p-index-fv__cell {
  margin: 0;
  overflow: hidden;
}
.p-index-fv__cell--01 {
  aspect-ratio: 662 / 369;
}
.p-index-fv__cell--02 {
  aspect-ratio: 340 / 369;
}
.p-index-fv__cell--03 {
  aspect-ratio: 438 / 369;
}
.p-index-fv__cell--04 {
  aspect-ratio: 553 / 368;
}
.p-index-fv__cell--05 {
  aspect-ratio: 368 / 368;
}
.p-index-fv__cell--06 {
  aspect-ratio: 519 / 368;
}
.p-index-fv__cell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-index-fv__cell--01 img {
  object-position: 50% 54%;
}
.p-index-fv__cell--02 img {
  object-position: 89% 50%;
}
.p-index-fv__cell--03 img {
  object-position: 100% 100%;
}
.p-index-fv__cell--04 img {
  object-position: 50% 50%;
}
.p-index-fv__cell--05 img {
  object-position: 89% 50%;
}
.p-index-fv__over {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 13.472% 5.556% 4.444%;
}
/*-------fv catch------*/
.p-index-fv__catch {
  font-size: inherit;
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.578vw;
  text-align: center;
  color: #fff;
  /* MVの背景が白い壁で白文字が沈むため、文字の縁だけを落として視認性を上げる。
     色・サイズ・位置は変えず、3枚重ねのぼかしで硬い縁取りに見えないようにする */
  text-shadow:
    0 0 4px rgba(42, 15, 59, 0.85),
    0 2px 8px rgba(42, 15, 59, 0.65),
    0 0 30px rgba(42, 15, 59, 0.55);
}
.p-index-fv__catch span {
  display: block;
}
.p-index-fv__catch-s {
  font-size: clamp(26px, 3.333vw, 48px);
}
.p-index-fv__catch-l {
  font-size: clamp(32px, 4.444vw, 64px);
}
/*-------fv bottom------*/
.p-index-fv__bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(10px, 1.389vw, 20px);
}
.p-index-fv__points {
  display: flex;
  gap: clamp(6px, 1.014vw, 14.6px);
}
.c-point {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(110px, 13.907vw, 200px);
  min-height: clamp(60px, 6.267vw, 90px);
  padding: 0.5em;
  border-radius: 2.5px;
  background: var(--c-pink-pale);
  overflow: hidden;
}
.c-point__ico {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(36px, 4.476vw, 64px);
  height: auto;
  transform: translate(-50%, -50%);
  opacity: 0.72;
}
.c-point__ico--time {
  width: clamp(33px, 4.118vw, 59px);
}
.c-point__ico--car {
  width: clamp(40px, 5.073vw, 73px);
}
.c-point__txt {
  position: relative;
  font-size: clamp(13px, 1.432vw, 20.6px);
  font-weight: 500;
  line-height: 1.4;
  color: var(--c-pink-txt);
  text-align: center;
}
/*-------fv white essence / ママとこどものはいしゃさん------*/
.c-we-bnr {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(180px, 21.944vw, 316px);
  padding: clamp(5px, 0.694vw, 10px);
  border: 3px solid var(--c-we-blue);
  background: #fff;
}
/* MV下段：ママバナー + WEバナーを右寄せで横並び（カンプ実測 間隔13.7px） */
.p-index-fv__bnrs {
  display: flex;
  align-items: flex-end;
  gap: clamp(6px, 0.951vw, 13.7px);
}
/* MVのママバナーはフッター版より少し細い（カンプ実測 298.3 x 90）
   .c-bnr-mama は後読みの sub.css にあるため、セレクタを2段にして詳細度で上書きする */
.p-index-fv__bnrs .c-bnr-mama--fv {
  position: relative;
  width: clamp(170px, 20.714vw, 298px);
  aspect-ratio: 298 / 90;
}
/* WEバナーもカンプでは同じ高さ（316 x 91）。既定の padding だけでは 72px にしかならない */
.p-index-fv__bnrs .c-we-bnr {
  aspect-ratio: 316 / 91;
}
/* 右下の小さな三角（カンプ実測 12.1 x 10.5、直角が右下） */
.p-index-fv__bnrs .c-bnr-mama--fv::after,
.p-index-fv__bnrs .c-we-bnr::after {
  content: "";
  position: absolute;
  width: clamp(7px, 0.842vw, 12.1px);
  aspect-ratio: 12.1 / 10.5;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.p-index-fv__bnrs .c-bnr-mama--fv::after {
  right: 0.229vw;
  bottom: 0.243vw;
  background: #fff;
}
.p-index-fv__bnrs .c-we-bnr::after {
  right: 0.486vw;
  bottom: 0.451vw;
  background: #004ea2;
}
.c-we-bnr img {
  width: 100%;
  height: auto;
}
/*-------SP専用：MV下の予約バー＋バナー------*/
.p-index-spbar,
.p-index-spbnr {
  display: none;
}
/*-------index news / information------*/
.p-index-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.p-index-info__col {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.778vw, 40px);
  padding: clamp(20px, 2.778vw, 40px) clamp(16px, 3.194vw, 46px);
}
.p-index-info__col--news {
  background: var(--c-pink-bg);
}
.p-index-info__col--access {
  background: var(--c-green-bg);
}
.p-index-info__col--news .c-panel {
  flex: 1;
  justify-content: flex-start;
  padding-inline: clamp(20px, 5.833vw, 84px);
}
.p-index-info__addr {
  margin-top: clamp(12px, 1.319vw, 19px);
  font-size: clamp(13px, 1.111vw, 16px);
  line-height: 1.4;
  text-align: center;
}
.p-index-info__logo {
  width: clamp(220px, 25vw, 360px);
  height: auto;
  margin-top: clamp(12px, 1.319vw, 19px);
}
/*-------index concept------*/
.p-index-concept {
  position: relative;
  overflow-x: clip;
  padding-block: clamp(40px, 5.556vw, 80px) clamp(50px, 7.014vw, 101px);
}
.p-index-concept__deco {
  position: absolute;
  z-index: 0;
  display: block;
  width: 35.25%;
  line-height: 0;
  pointer-events: none;
}
.p-index-concept__deco img {
  width: 100%;
  height: auto;
}
.p-index-concept__deco--r {
  top: -10.09%;
  right: -12.1%;
}
.p-index-concept__deco--l {
  top: 35.67%;
  left: -11.6%;
}
.p-index-concept__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, 3.403vw, 49px);
  padding-inline: 5.556%;
}
.p-index-concept__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.153vw, 31px);
}
.p-index-concept__en {
  font-family: var(--b-font-en);
  font-size: clamp(30px, 3.333vw, 48px);
  line-height: 1.75;
  letter-spacing: 0.13em;
  background: linear-gradient(90deg, var(--c-pink-txt) 0%, var(--c-pink) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.p-index-concept__lead {
  font-size: clamp(21px, 2.5vw, 36px);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.13em;
}
.p-index-concept__txt {
  font-size: clamp(14px, 1.389vw, 20px);
  line-height: 1.75;
  letter-spacing: 0.13em;
}
.p-index-concept__img {
  flex: none;
  width: clamp(160px, 26.181vw, 377px);
  margin: 0;
}
.p-index-concept__img img {
  width: 100%;
  aspect-ratio: 377 / 553;
  object-fit: cover;
}
/*-------index feature------*/
.p-index-feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: clamp(20px, 2.639vw, 38px);
}
.p-index-feature .c-sec-ttl--rev {
  margin-bottom: clamp(20px, 3.333vw, 48px);
}
.p-index-feature__photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(8px, 1.528vw, 22px);
  width: 100%;
  padding-inline: 7.5%;
}
.p-index-feature__photo {
  margin: 0;
}
.p-index-feature__photo img {
  width: 100%;
  aspect-ratio: 290 / 420;
  object-fit: cover;
}
.p-index-feature__photo--01 img {
  object-position: 72% 100%;
}
.p-index-feature__photo--02 img {
  object-position: 50% 54%;
}
.p-index-feature__photo--03 img {
  object-position: 74% 50%;
}
.p-index-feature__photo--04 img {
  object-position: 83% 50%;
}
/* 写真の下端に白いテキストパネルを重ねる（デザイン通りの被り） */
.c-feature-lead {
  position: relative;
  z-index: 1;
  width: min(929px, 64.514%);
  margin-top: -4.653%;
  padding-top: clamp(14px, 1.944vw, 28px);
  background: #fff;
}
/*-------index mama to kodomo------*/
.p-index-mama {
  width: 100%;
  margin-top: clamp(30px, 5.556vw, 80px);
  padding-inline: 5.556%;
}
.p-index-mama__frame {
  position: relative;
  padding: clamp(40px, 5.347vw, 77px) clamp(16px, 3.403vw, 49px)
    clamp(40px, 10.833vw, 156px);
  background: linear-gradient(168.66deg, #fcecf1 64.773%, #f5d7f3 64.985%);
}
/* 内側の白枠（装飾） */
.p-index-mama__frame::after {
  content: "";
  position: absolute;
  inset: clamp(10px, 1.181vw, 17px) clamp(10px, 1.111vw, 16px);
  border: 4px solid #fff;
  pointer-events: none;
}
.p-index-mama__garland {
  position: absolute;
  top: 11.72%;
  width: 13.83%;
  height: auto;
}
.p-index-mama__garland--l {
  left: 10.94%;
}
.p-index-mama__garland--r {
  right: 9.92%;
  transform: rotate(180deg) scaleY(-1);
}
.p-index-mama__head {
  text-align: center;
}
.p-index-mama__sub {
  font-size: clamp(15px, 1.667vw, 24px);
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.p-index-mama__sub em,
.p-index-mama__ttl em {
  font-style: normal;
  color: var(--c-pink);
}
.p-index-mama__ttl {
  position: relative;
  margin-top: clamp(20px, 2.5vw, 36px);
  font-size: clamp(16px, 2.5vw, 36px);
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.p-index-mama__ttl-txt {
  position: relative;
  z-index: 1;
}
.p-index-mama__watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  transform: translate(-50%, -50%);
  font-family: var(--b-font-en);
  font-size: clamp(56px, 8.889vw, 128px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #fff;
  white-space: nowrap;
  pointer-events: none;
}
.p-index-mama__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: stretch;
  gap: clamp(8px, 1.319vw, 19px);
  width: min(905px, 100%);
  margin: clamp(24px, 3.472vw, 50px) auto 0;
}
/*-------index white essence（特徴03）------*/
.p-index-we {
  position: relative;
  overflow: hidden;
  /* 親(.p-index-feature)が align-items:center なので明示的に全幅にする */
  width: 100%;
  margin-top: clamp(30px, 2.639vw, 38px);
  isolation: isolate;
}
/* 背景写真 + 水色のオーバーレイ */
.p-index-we__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-index-we::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(164, 220, 255, 0.6);
}
/* 右の人物（切り抜き） */
.p-index-we__person {
  position: absolute;
  top: -3.82%;
  left: 63.68%;
  width: 36.53%;
  height: auto;
}
.p-index-we__inner {
  position: relative;
  padding-inline: 5.556%;
  padding-bottom: clamp(20px, 1.667vw, 24px);
}
.p-index-we__badge {
  display: inline-flex;
  align-items: center;
  gap: clamp(12px, 2.014vw, 29px);
  padding: clamp(8px, 0.972vw, 14px) clamp(20px, 4.583vw, 66px);
  background: linear-gradient(
    to bottom,
    rgba(0, 123, 199, 0.85) 0%,
    rgba(4, 134, 215, 0.85) 100%
  );
  font-size: clamp(18px, 2.222vw, 32px);
  line-height: 1.4;
  letter-spacing: 0.0625em;
  color: #fff;
}
.p-index-we__badge img {
  width: clamp(80px, 11.163vw, 161px);
  height: auto;
}
.p-index-we__txt {
  max-width: 918px;
  margin-top: clamp(14px, 1.597vw, 23px);
  font-size: clamp(13px, 1.111vw, 16px);
  line-height: 1.75;
  letter-spacing: 0.125em;
}
.p-index-we__circles {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 1.181vw, 17px);
  margin-top: clamp(14px, 1.25vw, 18px);
}
.p-index-we__circles li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(120px, 15.972vw, 230px);
  aspect-ratio: 1;
  padding: 0.5em;
  background: url("../img/index/we-circle.svg") center / contain no-repeat;
  font-size: clamp(14px, 1.667vw, 24px);
  line-height: 1.75;
  letter-spacing: 0.083em;
  text-align: center;
  color: #fff;
}
.p-index-we .c-btn-gold {
  margin-top: clamp(20px, 2.5vw, 36px);
}
/*-------index feature 04 / 05------*/
.p-index-feature2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 4.792vw, 69px);
  width: 100%;
  margin-top: clamp(40px, 5.556vw, 80px);
  padding-inline: 7.882%;
}
.c-feature-photo__media img {
  object-position: 88% 8%;
}
.p-index-feature2 li:last-child .c-feature-photo__media img {
  object-position: 79% 87%;
}
/*-------index medical（診療内容）------*/
.p-index-medical {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(40px, 5.556vw, 80px) 24px;
}
.p-index-medical__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: clamp(16px, 3.125vw, 45px);
  row-gap: clamp(24px, 3.333vw, 48px);
  width: min(1228px, 100%);
  margin-top: clamp(32px, 5.486vw, 79px);
}
/* 3行目はデザイン通り2列目・3列目に配置 */
.p-index-medical__list li:nth-child(9) {
  grid-column: 2;
}
.p-index-medical__list li:nth-child(10) {
  grid-column: 3;
}
.c-medical {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(6px, 0.764vw, 11px);
  height: 100%;
}
.c-medical__head {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.875vw, 27px);
  margin-top: auto;
}
.c-medical__icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 3.819vw, 55px);
  aspect-ratio: 55 / 57;
  border-radius: 999px;
  background: #f1f1f1;
}
.c-medical__icon img {
  height: auto;
}
/* 各アイコンは円に対する比率がデザインで異なる */
.c-medical__icon--general img {
  width: 100%;
}
.c-medical__icon--kids img {
  width: 73.2%;
}
.c-medical__icon--prevention img {
  width: 52.7%;
}
.c-medical__icon--whitening img {
  width: 56.4%;
}
.c-medical__icon--surgery img {
  width: 63.9%;
}
.c-medical__icon--ortho img {
  width: 47.2%;
}
.c-medical__icon--denture img {
  width: 63.1%;
}
.c-medical__icon--implant img {
  width: 42.1%;
}
.c-medical__icon--esthetic img {
  width: 65%;
}
.c-medical__icon--perio img {
  width: 63.7%;
}
.c-medical__name {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 1.75;
}
.c-medical__ja {
  font-size: clamp(15px, 1.667vw, 24px);
  letter-spacing: 0.13em;
  white-space: nowrap;
}
.c-medical__en {
  font-family: var(--b-font-en);
  font-size: clamp(12px, 1.389vw, 20px);
  font-weight: 500;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--c-pink);
  white-space: nowrap;
}
.c-medical__arrow {
  width: 100%;
  height: auto;
}
/*-------index greeting（院長挨拶）------*/
.p-index-greeting {
  position: relative;
  overflow: hidden;
  padding-bottom: clamp(20px, 1.458vw, 21px);
  isolation: isolate;
}
.p-index-greeting__bg {
  position: absolute;
  top: 4.653%;
  left: 0;
  z-index: -1;
  width: 100%;
  height: auto;
}
.p-index-greeting__inner {
  display: flex;
  align-items: flex-start;
}
.p-index-greeting__body {
  width: 46.32%;
  padding: 4.583% 0 0 5.556%;
}
.p-index-greeting__txt {
  font-size: clamp(13px, 1.111vw, 16px);
  line-height: 1.75;
  letter-spacing: 0.13em;
}
.p-index-greeting__sign {
  margin-top: clamp(16px, 3.125vw, 45px);
  margin-left: auto;
  margin-right: clamp(10px, 2.222vw, 32px);
  width: fit-content;
}
.p-index-greeting__name {
  font-size: clamp(22px, 2.5vw, 36px);
  line-height: 1.75;
  letter-spacing: 0.13em;
}
.p-index-greeting__name span {
  margin-right: 0.5em;
  font-size: clamp(13px, 1.389vw, 20px);
  color: var(--c-pink);
}
.p-index-greeting__en {
  font-family: var(--b-font-en);
  font-size: clamp(19px, 2.222vw, 32px);
  font-style: italic;
  line-height: 1.75;
  letter-spacing: 0.11em;
  text-align: center;
  color: var(--c-pink);
}
/* 写真と縦帯を同じセルに重ねる（高さは背の高い縦帯が決める） */
.p-index-greeting__visual {
  display: grid;
  width: 53.68%;
}
.p-index-greeting__visual > * {
  grid-area: 1 / 1;
  min-width: 0;
}
.p-index-greeting__photo {
  width: 89.65%;
  margin: 7.11% 0 0;
}
.p-index-greeting__photo img {
  width: 100%;
  aspect-ratio: 693 / 570;
  object-fit: cover;
}
.p-index-greeting__vts {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 2.07%;
  width: 20.44%;
  margin-left: 6.86%;
}
.p-index-greeting__vt {
  flex: 1;
  display: flex;
  align-items: center;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  padding: clamp(6px, 0.694vw, 10px) 0;
  background: linear-gradient(
    to right,
    var(--c-pink) 0%,
    var(--c-pink-deep) 100%
  );
  font-size: clamp(22px, 3.333vw, 48px);
  line-height: 1.22;
  letter-spacing: 0.13em;
  text-align: center;
  color: #fff;
  white-space: nowrap;
}
/*-------index movie------*/
.p-index-movie {
  padding-block: clamp(60px, 5.556vw, 80px);
}
.p-index-movie .splide__slide iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1111 / 625;
  border: 0;
}
/*-------index recruit------*/
.p-index-recruit {
  position: relative;
  display: flex;
  align-items: stretch;
  padding-left: 5.556%;
  background: linear-gradient(3.37deg, #b887d7 7.735%, var(--c-pink) 92.265%);
  color: #fff;
}
.p-index-recruit__photo {
  flex: none;
  width: 55.45%;
  line-height: 0;
}
.p-index-recruit__photo img {
  width: 100%;
  aspect-ratio: 798 / 316;
  object-fit: cover;
  object-position: 50% 60%;
}
.p-index-recruit__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 35.2%;
  margin-left: 3.17%;
  padding-top: 3.01%;
}
.p-index-recruit__ttl {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 0.833vw, 12px);
  font-family: "Shippori Mincho B1", var(--b-font-family);
  font-size: clamp(22px, 3.303vw, 47.5px);
  line-height: 1;
  letter-spacing: 0.2em;
  color: #fff;
}
.p-index-recruit__ttl img {
  width: clamp(22px, 3.302vw, 47.5px);
  height: auto;
}
.p-index-recruit__en {
  margin-top: clamp(8px, 1.458vw, 21px);
  font-family: var(--b-font-en);
  font-size: clamp(17px, 2.378vw, 34.2px);
  line-height: 1;
  letter-spacing: 0.2em;
  color: #fffed2;
}
.p-index-recruit__txt {
  margin-top: clamp(10px, 1.319vw, 19px);
  font-size: clamp(12px, 1.111vw, 16px);
  line-height: 2.125;
  color: #fff;
}
.p-index-recruit__badge {
  position: absolute;
  top: -3.96%;
  left: 86.8%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12.55%;
  aspect-ratio: 1;
  padding: 0.66%;
  border-radius: 50%;
  background: #fff;
  filter: drop-shadow(0 0 9.5px rgba(42, 15, 59, 0.1));
}
.p-index-recruit__badge-in {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #fff;
  font-family: "Shippori Mincho B1", var(--b-font-family);
  text-align: center;
}
.p-index-recruit__badge-s {
  font-size: clamp(12px, 1.585vw, 22.8px);
  line-height: 1.5;
  color: #2a0f3b;
}
.p-index-recruit__badge-l {
  font-size: clamp(16px, 2.114vw, 30.4px);
  line-height: 1.5;
  color: var(--c-purple-light);
}
/*-------index instagram / topics------*/
.p-index-sns {
  display: flex;
  align-items: flex-start;
  gap: clamp(30px, 10.278vw, 148px);
  padding: clamp(40px, 5.556vw, 80px) 5.556%;
}
.p-index-sns__col {
  flex: 1;
  min-width: 0;
}
.p-index-sns__insta {
  display: block;
  margin-top: clamp(14px, 1.875vw, 27px);
  aspect-ratio: 340 / 300;
  overflow: hidden;
}
.p-index-sns__insta img {
  width: 198.82%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: left top;
}
.p-index-sns__col:last-child .c-topics {
  margin-top: clamp(18px, 2.361vw, 34px);
}
/*-------ipad----*/
@media screen and (max-width: 1180px) {
  .c-hbtn__label {
    display: none;
  }
}
/*-------iphone----*/
@media screen and (max-width: 680px) {
  .l-header {
    top: 0;
  }
  .l-header__inner {
    padding: 10px 12px;
  }
  .c-logo__link img {
    width: min(58vw, 240px);
  }
  /* ヘッダー内のボタンはSPでは下の帯（.p-index-spbar）と固定バーが担当 */
  .l-header__actions .c-hbtn {
    display: none;
  }
  /* SP専用ブロックを表示 */
  .p-index-spbar {
    display: flex;
  }
  .p-index-spbar .c-hbtn {
    flex: 1;
    min-height: 56px;
    padding: 6px 4px;
  }
  .p-index-spbar .c-hbtn__label {
    display: block;
    font-size: 9px;
  }
  .p-index-spbar .c-hbtn__main {
    gap: 5px;
    font-size: 14px;
  }
  .p-index-spbar .c-hbtn__tel {
    font-size: 16px;
  }
  .p-index-spbar .c-hbtn__main img {
    width: 13px;
  }
  .p-index-spbnr {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px 7.5%;
  }
  .p-index-spbnr .c-we-bnr {
    width: 100%;
  }
  /* MV内の2つのバナーはSPでは下の .p-index-spbnr が担当 */
  .p-index-fv__bnrs {
    display: none;
  }
  /* SPは TOP_sp カンプの並び（2枚 / 2枚 / 全幅 / 全幅）。
     display:contents で行コンテナを畳み、6枚を1つのグリッドに並べ直して order で入れ替える */
  .p-index-fv__bg {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .p-index-fv__row {
    display: contents;
  }
  .p-index-fv__cell--01 {
    order: 1;
    aspect-ratio: 188 / 220;
  }
  .p-index-fv__cell--02 {
    order: 2;
    aspect-ratio: 188 / 220;
  }
  .p-index-fv__cell--05 {
    order: 3;
    aspect-ratio: 188 / 180;
  }
  .p-index-fv__cell--06 {
    order: 4;
    aspect-ratio: 188 / 180;
  }
  .p-index-fv__cell--04 {
    order: 5;
    grid-column: span 2;
    aspect-ratio: 375 / 158;
  }
  .p-index-fv__cell--03 {
    order: 6;
    grid-column: span 2;
    aspect-ratio: 375 / 164;
  }
  .p-index-fv__over {
    padding: 50% 5% 5%;
  }
  .p-index-fv__catch {
    letter-spacing: 0.13em;
  }
  .p-index-fv__catch-s {
    font-size: 30px;
  }
  .p-index-fv__catch-l {
    font-size: 40px;
  }
  .p-index-fv__bottom {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  /* チップは2列＋3つ目を中央に */
  .p-index-fv__points {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }
  .c-point {
    flex: 0 0 calc(50% - 4px);
    width: auto;
    min-height: 52px;
  }
  .c-fixed-bnr {
    display: none;
  }
  .p-index-info {
    grid-template-columns: 1fr;
  }
  .p-index-info__col--news .c-panel {
    padding-inline: 24px;
  }
  .p-index-concept__inner {
    flex-direction: column;
    align-items: stretch;
    padding-inline: 6.4%;
  }
  .p-index-concept__img {
    width: 100%;
  }
  .p-index-concept__img img {
    aspect-ratio: 375 / 260;
  }
  .p-index-concept__deco {
    width: 60%;
  }
  .p-index-concept__deco--r {
    top: -4%;
    right: -20%;
  }
  .p-index-concept__deco--l {
    top: 50%;
    left: -22%;
  }
  .p-index-feature__photos {
    grid-template-columns: repeat(2, 1fr);
    padding-inline: 6.4%;
  }
  .c-feature-lead {
    width: 100%;
    margin-top: 0;
    padding: 24px 6.4% 0;
  }
  .p-index-mama {
    padding-inline: 4%;
  }
  .p-index-mama__frame {
    padding: 32px 16px 40px;
  }
  .p-index-mama__garland {
    width: 20%;
    top: 7%;
  }
  .p-index-mama__garland--l {
    left: 5%;
  }
  .p-index-mama__garland--r {
    right: 5%;
  }
  .p-index-mama__cards {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  /* SPカンプ実測（375px基準）
     バッジ=全幅×104 / 本文=左右14 / 円=直径146・すきま15・左右33 / ボタン=幅332×52 */
  .p-index-we__person {
    top: auto;
    bottom: -15%;
    left: auto;
    right: -15%;
    width: 100%;
    opacity: 1;
  }
  /* 左右の余白は各要素側で取る（バッジを全幅にするため） */
  .p-index-we__inner {
    padding: 0 0 120px;
  }
  .p-index-we__badge {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    gap: 3.733vw;
    min-height: 27.733vw;
    padding: 2.667vw 5.333vw;
    font-size: 4.533vw;
    white-space: nowrap;
  }
  .p-index-we__badge img {
    width: 20.267vw;
  }
  .p-index-we__txt {
    margin-top: 4.267vw;
    padding-inline: 3.733vw;
  }
  .p-index-we__circles {
    justify-content: center;
    gap: 4vw;
    margin-top: 5.333vw;
    padding-inline: 8.8vw;
  }
  .p-index-we__circles li {
    width: calc(50% - 2vw);
    font-size: 4.267vw;
  }
  .p-index-we .c-btn-gold {
    width: auto;
    min-height: 13.867vw;
    margin: 5.333vw 5.867vw 0;
  }
  .p-index-feature2 {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-inline: 6.4%;
  }
  .p-index-medical {
    padding-inline: 6.4%;
  }
  /* SPカンプ実測（375px基準）：1列・幅274・行ピッチ131
     アイコンは左、テキストは右（PCと同じ並び） */
  .p-index-medical__list {
    grid-template-columns: 1fr;
    width: 73.067vw;
    margin-inline: auto;
    row-gap: 11.467vw;
  }
  .p-index-medical__list li:nth-child(9),
  .p-index-medical__list li:nth-child(10) {
    grid-column: auto;
  }
  .c-medical__head {
    flex-direction: row;
    gap: 7.2vw;
  }
  .c-medical__icon {
    width: 15.467vw;
  }
  .c-medical__ja {
    font-size: 5.333vw;
  }
  .c-medical__en {
    font-size: 4vw;
  }
  /* SPカンプ実測（375px基準）
     帯は縦書きではなく横書き2段（x=20・高さ44・帯間13）→ 本文 → 署名 → 写真(315x238)
     display:contents で入れ子を畳み、order で並べ替える */
  .p-index-greeting__inner {
    flex-direction: column;
    padding: 5.333vw 5.333vw 0;
  }
  .p-index-greeting__body,
  .p-index-greeting__visual {
    display: contents;
  }
  .p-index-greeting__vts {
    order: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 3.467vw;
    width: 100%;
    margin-left: 0;
  }
  /* 縦書きをやめて横書きの帯に */
  .p-index-greeting__vt {
    flex: none;
    writing-mode: horizontal-tb;
    padding: 2.4vw;
    font-size: 5.333vw;
    line-height: 1.22;
    text-align: left;
  }
  .p-index-greeting__txt {
    order: 2;
    /* カンプ実測：本文16px／行送り28px（375px基準） */
    font-size: 4.267vw;
    margin-top: 5.333vw;
  }
  .p-index-greeting__sign {
    order: 3;
    margin: 6.4vw 0 0;
  }
  .p-index-greeting__en {
    text-align: left;
  }
  .p-index-greeting__photo {
    order: 4;
    width: 84vw;
    margin: 6.4vw 0 0;
  }
  .p-index-greeting__photo img {
    aspect-ratio: 315 / 238;
    object-position: 50% 30%;
  }
  /* SPは背景写真を使わず、淡いピンクの斜め帯だけ（カンプ実測）。
     写真の下まで伸ばすため下パディングも確保する */
  .p-index-greeting {
    padding-bottom: 23.467vw;
  }
  .p-index-greeting__bg {
    display: none;
  }
  /* 斜めの面。右端40px（10.667vw）だけ塗りが切り替わる（カンプ実測：境界は x=335 でグラデ無しの段差） */
  .p-index-greeting::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
      linear-gradient(to left, #faedf1 0 10.667vw, transparent 10.667vw),
      linear-gradient(to bottom, #f9e8ea 0%, #f7e5e5 100%);
    clip-path: polygon(100% 0, 100% 83.5%, 0 100%, 0 18.7%);
    pointer-events: none;
  }
  /* SPカンプ実測（375px基準）
     ・写真は全幅ではなく 316x193 を左右30px空けて配置（上は円バッジのぶん109px空ける）
     ・円バッジは直径180px（PCと同寸）でセクション上端から38px飛び出す */
  .p-index-recruit {
    flex-direction: column;
    padding: 0 0 16.267vw;
  }
  .p-index-recruit__photo {
    width: 84.267vw;
    margin: 29.067vw auto 0;
  }
  .p-index-recruit__photo img {
    aspect-ratio: 316 / 193;
  }
  .p-index-recruit__body {
    width: 100%;
    margin-left: 0;
    padding: 9.333vw 5.6vw 0;
  }
  .p-index-recruit__ttl {
    gap: 17.6vw;
    font-size: 9.867vw;
  }
  .p-index-recruit__ttl img {
    width: 12.8vw;
  }
  .p-index-recruit__en {
    margin-top: 0;
    font-size: 5.6vw;
  }
  .p-index-recruit__txt {
    margin-top: 2.4vw;
    font-size: 4.267vw;
  }
  .p-index-recruit__badge {
    top: -10.133vw;
    left: auto;
    right: 2.4vw;
    width: 48vw;
  }
  .p-index-recruit__badge-s {
    font-size: 6.08vw;
  }
  .p-index-recruit__badge-l {
    font-size: 8.107vw;
  }
  .p-index-sns {
    flex-direction: column;
    gap: 36px;
    padding-inline: 6.4%;
  }
  .p-index-sns__col {
    width: 100%;
  }
  body .c-footer-icons.SP {
    display: flex;
  }
  .l-footer {
    /* SP下部固定バーの分だけ余白を確保 */
    padding-bottom: calc(64px + env(safe-area-inset-bottom));
  }
  .l-footer__map {
    width: 100%;
    aspect-ratio: 375 / 260;
  }
  .l-footer__nav {
    padding-inline: 6.4%;
  }
  .l-footer__nav-inner {
    flex-direction: column;
    gap: 28px;
  }
  .l-footer__nav .c-nav__block {
    width: 100%;
  }
  #page-top {
    bottom: calc(72px + env(safe-area-inset-bottom));
  }
}
/* CSS Document */
