@charset "UTF-8";

/* Foundation ------------------------------------------------------------- */
:root {
  --color-bg: #f8f5ed;
  --color-paper: #fff;
  --color-text: #3d3d3d;
  --color-pink: #f1949b;
  --color-pink-deep: #ec7f87;
  --color-beige: #cfba93;
  --color-line: #e6ded0;
  --content-wide: 1200px;
  --content: 1100px;
  --fixed-cta-pc: 100px;
  --fixed-cta-sp: 50px;
  --fixed-cta-overhang: 90px;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 96px;
}

body {
  min-width: 1100px;
  overflow-x: visible;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: .08em;
}

/* Desktop width excludes the vertical scrollbar; tablet retains its canvas. */
@media (min-width: 1100px) {
  body { min-width: 0; }
}

button {
  border: 0;
  background: none;
}

:focus-visible {
  outline: 3px solid #3073d1;
  outline-offset: 3px;
}

.c-skip-link {
  position: fixed;
  z-index: 1000;
  top: 8px;
  left: 8px;
  padding: 8px 14px;
  transform: translateY(-150%);
  background: #fff;
}

.c-skip-link:focus {
  transform: translateY(0);
}

/* Layout ----------------------------------------------------------------- */
.l-header::before {
  position: fixed;
  z-index: 89;
  inset: 0 0 auto;
  height: 80px;
  background: rgba(255, 255, 255, .8);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  content: "";
}
.l-header.is-scrolled::before { opacity: 1; }

.l-header__logo {
  position: fixed;
  z-index: 90;
  top: 8px;
  left: 12px;
  width: 320px;
  transition: opacity .3s;
}

.l-header__tagline {
  display: block;
  margin-bottom: 6px;
  color: #686868;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .08em;
  white-space: nowrap;
}

.l-header__logo img {
  display: block;
  width: 100%;
}

.l-header__menu {
  position: fixed;
  z-index: 110;
  top: 0;
  right: 0;
  display: grid;
  place-content: center;
  width: 80px;
  height: 80px;
  gap: 5px;
  background: #686868;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 11px;
  letter-spacing: .14em;
  transition: background-color .3s;
}

.l-header__menu:hover {
  background: var(--color-pink-deep);
}

.l-header__menu-lines {
  display: grid;
  width: 36px;
  gap: 7px;
}

.l-header__menu-lines i {
  display: block;
  height: 1px;
  background: currentColor;
  transition: transform .4s ease, opacity .4s ease;
}

.l-header__menu[aria-expanded="true"] .l-header__menu-lines i:first-child { transform: translateY(8px) rotate(45deg); }
.l-header__menu[aria-expanded="true"] .l-header__menu-lines i:nth-child(2) { opacity: 0; }
.l-header__menu[aria-expanded="true"] .l-header__menu-lines i:last-child { transform: translateY(-8px) rotate(-45deg); }

.l-header__overlay {
  position: fixed;
  z-index: 98;
  inset: 0;
  background: rgba(0, 0, 0, .38);
}

.l-header__drawer {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  width: 620px;
  height: 100dvh;
  padding: 94px 70px 50px;
  overflow-y: auto;
  transform: translateX(105%);
  visibility: hidden;
  background: #fffdfa;
  box-shadow: -15px 0 50px rgba(0, 0, 0, .12);
  transition: transform .35s ease, visibility 0s .35s;
}

.l-header__drawer.is-open {
  transform: translateX(0);
  visibility: visible;
  transition-delay: 0s;
}

.l-header__drawer-logo {
  width: 390px;
  margin-bottom: 45px;
}

.l-header__drawer-list {
  border-top: 1px solid var(--color-line);
}

.l-header__drawer-list a {
  display: block;
  padding: 15px 4px;
  border-bottom: 1px solid var(--color-line);
  font-size: 16px;
  font-weight: 500;
  transition: color .2s ease;
}

.l-header__drawer-list a:hover {
  color: var(--color-pink-deep);
}

.l-header__drawer .c-button {
  margin-top: 34px;
  transition: background-color .2s ease;
}
.l-header__drawer .c-button:hover,
.l-header__drawer .c-button:focus-visible { background-color: var(--color-pink-deep); }
.l-header__drawer-list a:focus-visible { color: var(--color-pink-deep); }

.l-main-sections {
  display: flex;
  flex-direction: column;
}

.p-feature { order: 1; }
.p-data { order: 3; }
.p-message { order: 2; }
.p-benefits { order: 4; }
.p-team { order: 5; }
.p-education { order: 6; }
.p-schedule { order: 7; }
.p-voice { order: 8; }
.p-flow { order: 9; }
.p-recruit { order: 10; }

.l-footer {
  /* Keep the fixed CTA clearance inside the hospital footer's background. */
  padding-bottom: calc(var(--fixed-cta-pc) + var(--fixed-cta-overhang));
  background: var(--color-beige);
}

.l-footer__map {
  height: 658px;
  background: #e7e9e5 url("../images/map.webp") center / cover no-repeat;
}

.l-footer__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.l-footer__body {
  display: flex;
  min-height: 768px;
  align-items: center;
  flex-direction: column;
  padding: 94px 20px 45px;
  background: var(--color-beige);
  color: #fff;
  text-align: center;
}

.l-footer__brand {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin-bottom: 0;
  line-height: 1.2;
}
.l-footer__brand > img { width: 259px; height: auto; }
.l-footer__director { margin-top: 20px; }

.l-footer__mark {
  display: block;
  width: 59px;
  height: 54px;
  margin-bottom: 12px;
  overflow: hidden;
}

.l-footer__mark img {
  width: 496px;
  max-width: none;
  height: 54px;
  filter: brightness(0) invert(1);
}

.l-footer__brand > span:not(.l-footer__mark) {
  font-size: 17px;
  letter-spacing: .12em;
}

.l-footer__brand strong {
  margin-top: 18px;
  font-size: 44px;
  font-weight: 500;
  letter-spacing: .06em;
}

.l-footer__body address {
  margin: 24px 0 20px;
  font-size: 18px;
  font-style: normal;
  line-height: 1.8;
}

.l-footer__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 28px;
  font-family: "Oswald", sans-serif;
  font-size: 44px;
  letter-spacing: .05em;
}
.l-footer__tel > img { width: 27.5px; height: auto; }

.l-footer__hours {
  width: 570px;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  color: #b79b6c;
  font-size: 17px;
}

.l-footer__hours th,
.l-footer__hours td {
  padding: 9px 10px;
  border-bottom: 1px solid #e8dcc8;
  text-align: center;
}

.l-footer__hours thead {
  background: #f3eee5;
}

.l-footer__note {
  margin: 14px 0 36px;
  font-size: 13px;
  font-weight: 600;
}

.l-footer__body > small {
  font-size: 11px;
  letter-spacing: .14em;
}

/* Component -------------------------------------------------------------- */
.c-section-box {
  width: min(calc(100% - 36px), 1364px);
  margin-inline: auto;
  padding: 64px 80px 80px;
  border-radius: 16px;
  background: #fff;
}

.c-section-title {
  display: flex;
  align-items: center;
  margin-bottom: 55px;
  gap: 40px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .08em;
}

.c-section-title::after {
  height: 1px;
  flex: 1;
  background: var(--color-pink);
  content: "";
}

.c-button {
  display: flex;
  min-height: 78px;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 22px;
  letter-spacing: .1em;
}

.c-button small {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
}

.c-button--pink { background: var(--color-pink); }

.c-en-title {
  margin-bottom: 8px;
  color: #c8a86f;
  font-family: Georgia, serif;
  font-size: 34px;
  font-style: italic;
  letter-spacing: .04em;
  text-align: center;
}

.c-fade {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}

.c-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.p-video {
  position: relative;
  display: grid;
  overflow: hidden;
  place-items: center;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
  background: #050505;
}

.p-video__play {
  position: relative;
  width: 88px;
  height: 60px;
  border-radius: 15px;
  background: #f00;
}

.p-video__play::after {
  position: absolute;
  top: 16px;
  left: 35px;
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
  border-left: 22px solid #fff;
  content: "";
}

.p-hand-title {
  color: var(--color-text);
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-weight: 500;
  letter-spacing: .08em;
  text-align: center;
}

.p-hand-title small,
.p-hand-title strong {
  display: block;
}

.p-hand-title small,
.p-hand-title em { color: var(--color-pink); }
.p-hand-title em { font-style: normal; }

.p-hand-title-image {
  display: block;
  height: auto;
  margin-inline: auto;
}

.swiper-pagination {
  display: none;
}

/* Project: MV ------------------------------------------------------------ */
.p-mv {
  position: relative;
  z-index: 1;
  height: 900px;
  overflow: visible;
  background: #fff;
}

.p-mv__visual {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #fff;
}

.p-mv__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: scale(1.4);
  transform-origin: 38% 76%;
  object-fit: cover;
  object-position: center 39%;
}

.p-mv__visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, .78) 0, rgba(255, 255, 255, .12) 52%, transparent 70%);
  content: "";
}

.p-mv__contact {
  /* Fix horizontal alignment in CSS; JS preserves the original vertical exit. */
  position: fixed;
  z-index: 3;
  top: 0;
  right: 80px;
  display: flex;
  height: 80px;
  align-items: center;
  gap: 14px;
  color: #fff;
  font-family: "Oswald", sans-serif;
  font-size: 26px;
  letter-spacing: .06em;
}

.p-mv__phone-icon {
  width: 24px;
  height: 30px;
  flex: none;
  fill: #fff;
}

.p-mv__entry {
  display: flex;
  width: 180px;
  height: 80px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-left: 16px;
  background: rgba(241, 148, 155, .9);
  font-size: 17px;
  line-height: 1.15;
  text-align: center;
}

.p-mv__entry-icon {
  width: 38px;
  height: 40px;
  flex: none;
  fill: none;
  stroke: #fff;
  stroke-width: 1.5;
}

.p-mv__entry > span { display: flex; flex-direction: column; }
.p-mv__entry small { font-family: "Noto Sans JP", sans-serif; font-size: 8px; }

.p-mv__content {
  position: absolute;
  z-index: 2;
  top: 210px;
  left: calc(50% - 642px);
  width: 680px;
}

.p-mv__title img {
  width: 670px;
}

.p-mv__points {
  display: flex;
  width: 670px;
  margin-top: 58px;
  margin-left: 22px;
  padding: 7px 10px;
  border-top: 1px solid var(--color-pink);
  border-bottom: 1px solid var(--color-pink);
  gap: 0;
}

.p-mv__points p {
  display: flex;
  height: 58.8px;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1.7;
  letter-spacing: .2em;
  text-align: center;
  white-space: nowrap;
}

.p-mv__points p:first-child { width: 60%; }
.p-mv__points p:last-child { width: 40%; }
.p-mv__points p + p { position: relative; }
.p-mv__points p + p::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 26px;
  transform: translateY(-50%);
  background: var(--color-pink);
  content: "";
}
.p-mv__points span {
  display: inline-block;
  width: 34px;
  height: 34px;
  margin-right: 8px;
  vertical-align: -4px;
  background: center / contain no-repeat;
  color: transparent;
  font-size: 0;
}
.p-mv__points p:first-child > span:first-child {
  background-image: url("../images/icon-calendar.webp");
}
.p-mv__points p:last-child > span:first-child {
  background-image: url("../images/icon-tooth.webp");
}

.p-mv__points .p-mv__point-copy {
  display: flex;
  width: auto;
  height: auto;
  align-items: center;
  margin: 0;
  background: none;
  transform: translateY(3px);
}

.p-mv__point-copy img { display: block; max-width: none; height: auto; flex: none; }
.p-mv__point-copy--holidays { transform: translate(8px, 2px); }
.p-mv__point-holidays { width: 96px; }
.p-mv__point-number { width: 76px; margin-left: 22px; }
.p-mv__point-days { width: 68px; margin-left: 12px; }
.p-mv__point-no-substitute { width: 146px; }

.p-mv__lead {
  margin-top: 29px;
  margin-left: 22px;
  font-size: 20px;
  font-weight: 400;
  line-height: 2.25;
  letter-spacing: .3em;
}

.p-mv__tour {
  position: absolute;
  z-index: 3;
  right: 39px;
  bottom: -21px;
  display: flex;
  width: 299px;
  height: 299px;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  padding-top: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 5px 12px rgba(0, 0, 0, .14);
  color: var(--color-text);
  line-height: 1.5;
  text-align: center;
}

.p-mv__tour::before {
  position: absolute;
  z-index: -1;
  inset: 7px;
  border: 1px dashed var(--color-pink);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.p-mv__tour-icon { width: 70px; height: 70px; overflow: visible; }
.p-mv__tour-rays { transform: translateY(-12px); fill: none; stroke: var(--color-pink); stroke-width: 1; }
.p-mv__tour-flag { fill: var(--color-pink); stroke: var(--color-pink); stroke-width: 1; }
.p-mv__tour-title { display: block; width: 178px; height: auto; margin-top: 15px; }
.p-mv__tour-recruiting { display: flex; width: 238px; justify-content: center; margin-top: 10px; padding-top: 16px; border-top: 1px dashed var(--color-pink); }
.p-mv__tour-recruiting img { display: block; width: 217px; height: auto; }
.p-mv__tour-script { display: block; width: 96px; height: auto; margin-top: 11px; }

/* Project: feature ------------------------------------------------------- */
.p-feature {
  position: relative;
  display: grid;
  width: 100%;
  margin-inline: auto;
  grid-template-columns: max(0px, calc((100% - 1400px) / 2)) 225px minmax(0, 1fr);
  background: #fff;
}

.p-feature__heading { grid-column: 2; }
.p-feature__list { grid-column: 3; min-width: 0; }

.p-feature__heading {
  display: flex;
  justify-content: center;
  padding-top: 40px;
}

.p-feature__heading img { width: 114px; height: auto; align-self: flex-start; }

@media (min-width: 768px) {
  .p-feature::before {
    position: absolute;
    z-index: 2;
    top: -145px;
    left: calc(max(0px, (100% - 1400px) / 2) + 163px);
    width: 1px;
    height: 174px;
    background: #f6a9a9;
    pointer-events: none;
    content: "";
  }
}

.p-feature__item {
  position: relative;
  height: 565px;
  overflow: hidden;
  background: #fff;
}

.p-feature__photo { position: relative; height: 100%; overflow: hidden; }
.p-feature__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.p-feature__item::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, .99) 0, rgba(255, 255, 255, .9) 33%, rgba(255, 255, 255, .05) 70%);
  content: "";
}

.p-feature__text {
  position: absolute;
  z-index: 1;
  top: 95px;
  left: 60px;
  width: 650px;
}

.p-feature__num {
  display: block;
  margin-bottom: 36px;
  color: var(--color-pink);
  font-family: "Oswald", sans-serif;
  font-size: 58px;
  font-weight: 600;
  line-height: 1;
}

.p-feature__text h3 {
  margin-bottom: 22px;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.6;
}

.p-feature__text h3 em { color: var(--color-pink-deep); font-style: normal; }
.p-feature__text p { max-width: 640px; font-size: 16px; font-weight: 500; line-height: 2; }
.p-keep-word { display: inline-block; }

/* Project: data ---------------------------------------------------------- */
.l-main-sections { font-feature-settings: "palt"; }
.p-data {
  --data-background-overlap: 177.5px;
  padding: 0 0 50px;
  /* The white panel crosses the boundary between the director and beige backgrounds. */
  background: linear-gradient(to bottom, #fcfbf7 0 var(--data-background-overlap), #f8f5ed var(--data-background-overlap) 100%);
}
.p-data .c-section-box { border-top-left-radius: 15px; border-top-right-radius: 15px; }

.p-data__list,
.p-card-list {
  display: grid;
  gap: 20px;
}

.p-data__list { grid-template-columns: repeat(4, 1fr); }

.p-data__item {
  position: relative;
  min-height: 315px;
  padding: 64px 27px 28px;
  border-radius: 8px;
  background: #f7f5ef;
  color: var(--color-pink-deep);
}

.p-data__item > img {
  position: absolute;
  top: -36px;
  left: 50%;
  width: auto;
  height: 60px;
  transform: translateX(-50%);
}

.p-data__item::before { position: absolute; top: -48px; left: 50%; width: 120px; height: 120px; transform: translateX(-50%); border-radius: 50%; background: #fbfaf6; content: ""; }

.p-data__item h3 {
  position: relative;
  z-index: 1;
  min-height: 115px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}

.p-data__item h3 strong {
  display: block;
  font-family: "Oswald", sans-serif;
  font-size: 54px;
  font-weight: 600;
  line-height: 1.15;
}

.p-data__item h3 strong small { margin: 0 3px; font-family: "Noto Sans JP", sans-serif; font-size: 30px; font-weight: 500; }
.p-data__item h3 strong small:first-child:not(:last-child) { font-size: 17px; }
.p-data__item h3 em { display: block; font-size: 13px; font-style: normal; }
.p-data__item p { font-size: 14px; line-height: 1.9; }

/* Project: message ------------------------------------------------------- */
.p-message {
  position: relative;
  padding-top: 75px;
  padding-bottom: 0;
  background: #fcfbf7;
}

.p-message__body {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(100%, 1400px);
  min-height: 818px;
  margin: 0 auto;
  padding: 60px 80px 0 214px;
  grid-template-columns: 520px 548px;
  gap: 38px;
  background: transparent;
}

.p-message__hand {
  position: absolute;
  top: 0;
  left: 55px;
  width: 54px;
}

.p-message__copy { padding-top: 174px; }
.p-message__copy h3 { margin-bottom: 38px; font-size: 32px; font-weight: 500; line-height: 1.7; }
.p-message__copy > p { font-size: 17px; font-weight: 500; line-height: 2.3; }
.p-message__name { margin-top: 38px; }
.p-message__name strong { display: block; font-size: 32px; font-weight: 500; }
.p-message__doctor-frame { width: 548px; height: 758px; overflow: hidden; border-radius: 15px 15px 0 0; }
.p-message__doctor { width: 100%; height: 100%; object-fit: cover; object-position: center top; transform: scale(1.093); }

/* Project: benefits and cards ------------------------------------------- */
.p-benefits,
.p-education { padding: 35px 0; background: var(--color-bg); }

.p-card-list { grid-template-columns: repeat(3, 1fr); }
.p-card { overflow: hidden; border-radius: 8px; background: #fcfbf7; }
.p-card__photo { position: relative; width: 100%; height: 252px; overflow: hidden; }
.p-card__photo img { position: absolute; width: 108%; max-width: none; height: auto; left: -5%; top: -4%; }
.p-benefits .p-card:nth-child(2) .p-card__photo img { width: 134.3%; left: -34%; top: -23.6%; }
.p-benefits .p-card:nth-child(3) .p-card__photo img { width: 123.5%; left: -13.4%; top: -5%; }
.p-education .p-card:nth-child(2) .p-card__photo img { width: 114.4%; left: -11.3%; top: -3.6%; }
.p-education .p-card:nth-child(3) .p-card__photo img { width: 106.2%; left: -1.2%; top: -2.6%; }
.p-card h3 { min-height: 140px; padding: 24px 18px 10px; font-size: 22px; font-weight: 500; line-height: 1.6; text-align: center; letter-spacing: .06em; }
.p-card p { padding: 0 26px 32px; font-size: 15px; line-height: 1.9; letter-spacing: .16em; }

/* Keep the education copy on white; benefits retain their separate pale card. */
.p-data__item { background: #fbfaf6; }
.p-benefits .p-card { background: #fbfaf6; }
.p-education .p-card { background: #fff; }
.p-education .p-card__photo { border-radius: 8px; }

/* Project: team ---------------------------------------------------------- */
.p-team { --color-bg: #f8f5ed; position: relative; isolation: isolate; padding-bottom: 11px; background: var(--color-bg); }
.p-team::before { position: absolute; z-index: -1; top: 80px; bottom: 11px; left: 50%; width: min(calc(100% - 34px), 1366px); transform: translateX(-50%); border-radius: 16px; background: #fff; content: ""; }
/* The photo reaches the page edge; the white panel and lettering stay centered. */
.p-team__visual { position: relative; width: 100%; }
.p-team__visual > img:first-child { width: calc(50% + 350px); height: auto; aspect-ratio: 1050 / 480; object-fit: cover; object-position: center 43%; border-radius: 0 10px 10px 0; }
.p-team__hand { position: absolute; top: 4px; left: calc(50% + 463px); width: 124px; height: 822px; }
.p-team__body { display: grid; margin-top: 0; grid-template-columns: 320px 1fr; gap: 77px; background: transparent; }
.p-team__copy h3 { margin-bottom: 14px; font-size: 31px; font-weight: 500; line-height: 50px; letter-spacing: .1em; }
.p-team__copy p { font-size: 16px; line-height: 2; letter-spacing: .16em; }
.p-team__body .p-video { width: 555px; justify-self: center; }
.p-team__support > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* The lower photo keeps the former video size; align to the upper photo edge. */
@media (min-width: 768px) {
  .p-team { container-type: inline-size; --team-photo-edge: calc(50cqw + 350px); --team-body-right-pad: 80px; }
  .p-team__body > .p-video.p-team__support {
    position: relative;
    justify-self: end;
    align-self: start;
    left: calc(var(--team-photo-edge) - (50cqw + min(calc(50cqw - 18px), 682px) - var(--team-body-right-pad)));
  }
}
@media (min-width: 768px) and (max-width: 1399px) {
  .p-team {
    --team-body-right-pad: clamp(80px, calc(220px - (100vw - 1100px) * .466667), 220px);
    --team-support-width: min(555px, calc(min(calc(100cqw - 36px), 1364px) - var(--pc-gutter) - var(--team-body-right-pad) - 320px - clamp(40px, calc(40px + (100vw - 1100px) * .123333), 77px)));
    --team-photo-edge: max(75cqw, calc(50cqw - min(calc(50cqw - 18px), 682px) + var(--pc-gutter) + 320px + 24px + var(--team-support-width)));
  }
  /* Preserve the copy and lower frame; let the upper photograph grow as needed. */
  .p-team > .p-team__visual > img:first-child { width: var(--team-photo-edge); }
}

/* Project: schedule ------------------------------------------------------ */
.p-schedule {
  position: relative;
  display: grid;
  width: min(calc(100% - 160px), 1240px);
  margin: 0 auto;
  padding: 70px 0;
  grid-template-columns: 160px 1fr;
}

.p-schedule__hand { width: 80px; justify-self: start; }
.p-schedule__hand > img { width: 44px; margin-left: 15px; }
.p-schedule__clock {
  display: block;
  width: 60px;
  height: 60px;
  margin-bottom: 35px;
  background: url("../images/schedule-clock.webp") center / contain no-repeat;
}
.p-schedule__line { position: relative; padding-left: 75px; }
.p-schedule__line::before { position: absolute; top: 28px; bottom: 0; left: 0; width: 4px; background: var(--color-pink); content: ""; }
.p-schedule__item:last-child { padding-bottom: 0; }
.p-schedule__item:last-child::after { position: absolute; z-index: 1; left: -77px; top: 45px; bottom: 0; width: 8px; background: #f8f5ed; content: ""; }
.p-schedule__item { position: relative; display: grid; min-height: 310px; grid-template-columns: 1fr 365px; gap: 55px; }
.p-schedule__item::before { position: absolute; top: 15px; left: -86px; width: 22px; height: 22px; border-radius: 50%; background: var(--color-pink); content: ""; }
.p-schedule__item time { display: block; color: var(--color-pink); font-family: "Oswald", sans-serif; font-size: 47px; font-weight: 600; line-height: 1; }
.p-schedule__item:first-child::before,
.p-schedule__item:last-child::before { width: 35px; height: 35px; left: -90.5px; top: 10px; }
.p-schedule__item h3 { margin: 8px 0 20px; color: var(--color-pink); font-size: 25px; font-weight: 700; }
.p-schedule__item p { font-size: 16px; line-height: 1.94; letter-spacing: .12em; }
.p-schedule__item small { display: block; margin-top: 7px; font-size: 10px; }
.p-schedule__item img { width: 365px; height: 232px; object-fit: cover; border-radius: 8px; }

/* Project: voice --------------------------------------------------------- */
.p-voice { padding: 70px 80px 130px; background: #fcfaf6; }
.p-voice__head { width: min(100%, 1240px); margin: 0 auto 35px; }
.p-voice__head > span { color: #c8a86f; font-family: Georgia, serif; font-size: 32px; font-style: italic; }
.p-voice__head h2 img { width: 350px; }
.p-voice__head > span > img { width: 83.5px; margin-bottom: 23px; }
.c-en-title > img { width: auto; height: 37px; margin: 0 auto 24px; }
.p-voice__parent-tabs { display: flex; width: 600px; margin: -85px max(0px, calc((100% - 1240px) / 2)) 100px auto; }
.p-voice__parent-tabs button { width: 50%; height: 70px; border-radius: 35px 0 0 35px; background: #fff; color: var(--color-pink-deep); font-size: 17px; font-weight: 600; }
.p-voice__parent-tabs button + button { border-radius: 0 35px 35px 0; }
.p-voice__parent-tabs button.is-active { background: var(--color-pink); color: #fff; }
.p-voice__group { width: min(100%, 1240px); margin: auto; }
.p-voice__panel { padding: 50px 90px 65px; border-radius: 10px; background: #fff; }
.p-voice__panel header { display: flex; align-items: center; margin-bottom: 45px; gap: 24px; color: var(--color-pink-deep); }
.p-voice__panel header img { width: 100px; height: 100px; }
.p-voice__panel header strong { padding-right: 25px; border-right: 1px solid var(--color-pink); font-family: "Noto Sans JP", sans-serif; font-size: 23px; font-weight: 500; }
.p-voice__panel header span { font-size: 20px; }
.p-voice__panel dl { display: grid; gap: 28px; }
.p-voice__panel dt { margin-bottom: 7px; font-size: 21px; font-weight: 500; }
.p-voice__panel dd { font-size: 16px; line-height: 2; letter-spacing: .12em; }
.p-voice__scroll-hint { display: none; }
.js-parent-tab, .js-child-tab { cursor: pointer; }
.p-message__copy h3 > span { display: inline-block; }
.p-voice__child-tabs { display: grid; margin-top: 50px; grid-template-columns: repeat(5, 1fr); }
.p-voice__child-tabs button { min-height: 220px; padding: 15px; border-right: 1px solid #dedad2; text-align: center; }
.p-voice__child-tabs button:last-child { border-right: 0; }
.p-voice__child-tabs img { width: 90px; margin: 0 auto 8px; opacity: 1; }
.p-voice__child-tabs strong { display: block; font-family: "Noto Sans JP", sans-serif; font-size: 22px; font-weight: 500; }
.p-voice__child-tabs span { display: block; margin-top: 8px; font-size: 18px; line-height: 1.7; }
.p-voice__child-tabs .is-active { color: var(--color-pink-deep); }
.p-voice__child-tabs .is-active img { opacity: 1; }
.p-voice__group[data-group="reception"] .p-voice__child-tabs { grid-template-columns: repeat(2, 250px); justify-content: center; }

/* Project: flow ---------------------------------------------------------- */
.p-flow { padding: 85px 80px 48px; background: #fff; }
.p-flow > h2 img { width: 595px; margin: 0 auto 85px; }
.p-flow__list { display: grid; width: min(100%, 1200px); margin: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 35px; }
.p-flow__list li { position: relative; text-align: center; }
.p-flow__list li:not(:last-child)::after { position: absolute; top: 70px; right: -32px; width: 29.5px; height: 30.5px; background: url("../images/flow-arrow.webp") center / contain no-repeat; content: ""; }
.p-flow__icon { width: 170px; height: 170px; padding: 30px 22.5px; margin: auto; border-radius: 50%; background: #fbfaf7; }
/* Round only the background; rounding the replaced image clips its artwork. */
.p-flow__icon img { width: 100%; height: 100%; object-fit: contain; }
.p-flow__list li:nth-child(2) .p-flow__icon { padding-inline: 30.5px; }
.p-flow__list li:nth-child(3) .p-flow__icon { padding-inline: 34.5px; }
.p-flow__list li:nth-child(4) .p-flow__icon { padding-inline: 28px; }
.p-flow__list span { display: block; margin-top: 16px; color: var(--color-pink-deep); font-family: "Oswald", sans-serif; font-size: 18px; font-weight: 600; }
.p-flow__list h3 { min-height: 76px; margin-top: 7px; font-size: 18px; font-weight: 500; line-height: 1.7; }
.p-flow__list p { font-size: 15px; line-height: 1.9; text-align: left; }

/* Project: recruit ------------------------------------------------------- */
.p-recruit { padding: 35px 0 87px; background: #fff; }
.p-recruit > h2 img { width: 231px; margin: 0 auto 70px; }
.p-recruit__inner { width: min(100%, 1100px); margin: auto; }
.p-recruit__inner h3 { margin-bottom: 28px; padding-left: 20px; border-left: 4px solid var(--color-pink); font-size: 32px; font-weight: 500; }
.p-recruit table { width: 100%; overflow: hidden; border: 1px solid #999; border-radius: 12px; border-collapse: separate; border-spacing: 0; font-size: 17px; font-weight: 500; line-height: 1.82; }
.p-recruit th,
.p-recruit td { padding: 20px 35px; border-bottom: 1px solid #aaa; }
.p-recruit tr:last-child th,
.p-recruit tr:last-child td { border-bottom: 0; }
.p-recruit td { text-align: left; }
.p-recruit th { width: 270px; border-right: 1px solid #aaa; background: #f3efe5; font-weight: 500; text-align: center; }
.p-recruit th { font-size: 18px; }

/* Project: fixed CTA ----------------------------------------------------- */
.p-fixed-cta {
  position: fixed;
  z-index: 80;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  height: var(--fixed-cta-pc);
  grid-template-columns: repeat(2, minmax(0, 1fr)) 100px;
  padding-left: 0;
  transform: translateY(calc(100% + var(--fixed-cta-overhang)));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: #fff;
  transition: opacity .3s ease, transform .3s ease, visibility 0s .3s;
}

.p-fixed-cta.is-visible { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
.p-fixed-cta__doctor { position: absolute; z-index: 1; bottom: 0; left: 0; width: 115px; height: 190px; object-fit: contain; object-position: bottom; }
.p-fixed-cta__message { position: absolute; top: -50px; right: 100px; left: 0; height: 50px; padding-top: 14px; background: #fff; text-align: center; }
.p-fixed-cta__message img { width: 373px; height: auto; margin: auto; }
.p-fixed-cta__tel,
.p-fixed-cta__entry { display: flex; align-items: center; justify-content: center; color: #fff; }
.p-fixed-cta__tel { display: grid; grid-template-columns: 24px auto; align-content: center; column-gap: 8px; background: #f6a9a9; font-family: "Oswald", sans-serif; font-size: 33px; letter-spacing: .06em; line-height: 1.1; }
.p-fixed-cta__tel > span:first-child { grid-column: 1 / -1; padding-bottom: 7px; font-family: "Noto Sans JP", sans-serif; font-size: 12px; text-align: center; }
.p-fixed-cta__phone { width: 24px; height: auto; }
.p-fixed-cta__entry { gap: 15px; background: #ee9292; font-family: "Noto Sans JP", sans-serif; font-size: 24px; line-height: 1.2; }
.p-fixed-cta__entry > img { width: 40.5px; height: auto; }
.p-fixed-cta__entry > span { text-align: left; }
.p-fixed-cta__entry strong { display: block; font-weight: 500; }
.p-fixed-cta__entry small { display: block; margin-top: 0; font-size: 12px; }
.p-fixed-cta__top { position: relative; height: 150px; margin-top: -50px; background: #666; }
.p-fixed-cta__top span::before { position: absolute; top: 58px; left: calc(50% - 16.5px); width: 33px; height: 36px; background: url("../images/fixed-arrow.webp") center / contain no-repeat; content: ""; }

@media (min-width: 768px) and (max-width: 1099px) {
  .p-mv__entry { color: #fff; }
}

/* Utility ---------------------------------------------------------------- */
.u-sp-only { display: none !important; }

@media (hover: hover) and (pointer: fine) {
  a:not(.p-mv__tour):not(.l-header__logo):not(.l-header__drawer a):hover,
  button:not(.l-header__menu):not(.js-parent-tab):not(.js-child-tab):hover {
    opacity: .7;
    transition: opacity .3s;
  }
}

@media (min-width: 768px) {
  /* Approved design overlap; the panel may cover the embedded map's top controls. */
  .p-recruit {
    position: relative;
    padding-bottom: 14px;
    background: linear-gradient(to bottom, #fff 0 calc(100% - 14px), #f8f5ed calc(100% - 14px) 100%);
  }
  .p-recruit::after {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: -45px;
    left: 0;
    width: min(100%, 1218px);
    height: 59px;
    margin-inline: auto;
    border-radius: 0 0 15px 15px;
    background: #fff;
    pointer-events: none;
    content: "";
  }
  .js-sp-swiper { overflow: visible; }
  .l-main-sections { --color-bg: #fcfbf7; }
  .p-benefits,
  .p-education { background: #f8f5ed; }
  .c-section-title { margin-bottom: 44px; font-size: 36px; letter-spacing: .08em; }
  .p-feature__text p { letter-spacing: .16em; }
  .p-recruit table { letter-spacing: .16em; }
  .p-feature__heading { padding-top: 49px; padding-left: 16px; }
  .p-feature__item { width: 100%; min-width: 0; height: auto; min-height: 565px; aspect-ratio: 1175 / 565; }
  /* Join fractional-pixel photo edges without changing the source images. */
  .p-feature__item + .p-feature__item { margin-top: -1px; }
  .p-feature__photo { position: absolute; inset: 0; }
  .p-feature__photo picture { display: block; width: 100%; height: 100%; }
  .p-feature__photo img { width: 100%; height: 100%; object-fit: cover; object-position: right center; }
  .p-feature__item::after { display: none; }
  .p-feature__text h3 { margin-bottom: 20px; font-size: 33px; line-height: 46.5px; letter-spacing: .14em; }
  .p-feature__text p { max-width: 625px; }
  .p-feature__item:nth-child(2) .p-feature__text p { max-width: 638px; }
  .p-feature__item:nth-child(3) .p-feature__text p { max-width: 600px; }
  .p-feature__num { font-size: 73.5px; font-weight: 400; }
  .p-message__body { min-height: 816px; margin-top: 0; }
  .p-message__doctor-frame { align-self: end; }
  .p-message__hand { left: 65px; }
  .p-message__copy { padding-top: 174px; }
  .p-message__copy h3 { line-height: 46.5px; letter-spacing: .10em; }
  .p-message__copy > p { max-width: 490px; line-height: 40px; letter-spacing: .16em; }
  .p-message__copy > .p-message__name { margin-top: 36px; line-height: 28px; }
  .p-message__name strong { line-height: 46.5px; }
  .p-message__doctor { transform: translateY(-10px) scale(1.093); }
  .p-data .c-section-title, .p-benefits .c-section-title { letter-spacing: .14em; }
  .p-education .c-section-title { letter-spacing: .12em; }
  .p-data__item { padding: 42px 28px 28px; }
  .p-data__item > img { height: 52px; top: -27px; }
  .p-data__item:nth-child(2) > img { height: 56px; top: -22px; }
  .p-data__item:nth-child(4) > img { height: 58px; top: -32px; }
  .p-data__item h3 { font-size: 19px; font-weight: 700; letter-spacing: .14em; }
  .p-data__item h3 strong { font-size: 55px; letter-spacing: .10em; white-space: nowrap; }
  .p-data__item h3 strong small { margin-inline: 0; font-weight: 700; letter-spacing: .10em; }
  .p-data__item:nth-child(2) h3 strong small:first-child { font-size: 15px; }
  .p-data__item h3 em { margin-top: 4px; font-size: 15px; }
  .p-data__item p { line-height: 28px; letter-spacing: .16em; }
  .p-data__item h3 { min-height: 135px; }
  .p-benefits .p-card h3 { min-height: 140px; padding: 20px 15px 12px; line-height: 36px; letter-spacing: .10em; align-content: center; }
  .p-benefits .p-card p, .p-education .p-card p { padding: 0 28px 24px; line-height: 28px; }
  .p-education .p-card h3 { min-height: 136px; padding: 22px 3px 6px; font-size: 21px; line-height: 32.5px; letter-spacing: .10em; }
  .p-education .p-card:nth-child(2) h3 { letter-spacing: .07em; }
  .p-benefits .p-card__photo, .p-education .p-card__photo { height: auto; aspect-ratio: 388 / 251; }
  .p-education .p-card:last-child h3 { font-size: 22px; line-height: 36px; }
  .p-education .c-section-box { padding-top: 70px; }
  .p-education .p-card__photo img { top: -6.7%; left: -4.5%; width: 107.46%; }
  .p-education .p-card:nth-child(2) .p-card__photo img { top: -3.57%; }
  .p-education .p-card:nth-child(3) .p-card__photo img { top: -2.58%; }
  .p-voice__parent-tabs button { font-size: 20px; font-weight: 500; }
  .p-schedule__item time { font-size: 62px; }
  .p-mv__points p:first-child { padding-right: 30px; }
  .p-mv__points p:last-child { padding-left: 30px; }
  .p-mv__points p + p::before { top: calc(50% + 2px); height: 43px; }
  .p-mv__points p:first-child > span:first-child { width: 34px; height: 37px; }
  .p-mv__points p:last-child > span:first-child { width: 34px; height: 43px; transform: translateX(-10px); }
  .p-feature__text { top: 40px; }
  .p-feature__num { position: relative; margin-bottom: 178px; }
  .p-feature__item:not(:first-child) .p-feature__num { margin-bottom: 190px; }
  .p-feature__num::after {
    position: absolute;
    top: 10px;
    left: 124px;
    width: 1px;
    height: 181px;
    transform: rotate(30deg);
    transform-origin: top;
    background: var(--color-pink);
    content: "";
  }
  .p-education { padding: 12px 0 52px; }
  .p-education .c-section-box { padding-bottom: 36px; }
  .p-data { padding-bottom: 13px; }
  .p-data .c-section-box { padding-top: 70px; }
  .p-data .c-section-title { margin-bottom: 75px; }
  .p-benefits { padding: 12px 0 28px; }
  .p-benefits .c-section-box { padding-top: 70px; padding-bottom: 80px; }
  .p-team__body { padding-top: 42px; }
  .p-team__body .p-video { margin-top: 10px; justify-self: start; }
}

/* Narrow desktop: retain the 1100px canvas; adapt content, never crop the page. */
@media (min-width: 768px) and (max-width: 1399px) {
  :root { --pc-gutter: clamp(24px, calc((100vw - 1100px) * .186667 + 24px), 80px); }
  .c-section-box { padding-inline: var(--pc-gutter); }
  .p-mv__content { left: max(24px, calc(50% - 642px)); }
  .p-mv__title img { width: clamp(500px, calc(500px + (100vw - 1100px) * .566667), 670px); }
  .p-message__body {
    padding-left: clamp(140px, calc((100vw - 1100px) * .246667 + 140px), 214px);
    padding-right: var(--pc-gutter);
    grid-template-columns: minmax(0, 520fr) minmax(0, 548fr);
    gap: clamp(24px, calc((100vw - 1100px) * .046667 + 24px), 38px);
  }
  .p-message__hand { left: clamp(30px, calc((100vw - 1100px) * .116667 + 30px), 65px); }
  .p-message__doctor-frame { width: 100%; height: auto; aspect-ratio: 548 / 758; }
  .p-team { min-height: 850px; }
  .p-team__visual > img:first-child { width: 75%; }
  .p-team__hand { left: calc(87.5% - 62px); }
  .p-team__body { grid-template-columns: 320px minmax(0, 1fr); gap: clamp(40px, calc(40px + (100vw - 1100px) * .123333), 77px); padding-right: clamp(80px, calc(220px - (100vw - 1100px) * .466667), 220px); }
  .p-team__body .p-video { width: min(100%, 555px); }
  .p-schedule { width: calc(100% - var(--pc-gutter) * 2); grid-template-columns: 130px minmax(0, 1fr); }
  .p-schedule__item { grid-template-columns: minmax(0, 1fr) minmax(0, 365px); gap: 30px; }
  .p-schedule__item img { width: 100%; }
  .p-voice, .p-flow { padding-inline: var(--pc-gutter); }
  .p-voice__panel { padding-inline: clamp(40px, calc((100vw - 1100px) / 6 + 40px), 90px); }
  .p-voice__child-tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .p-voice__child-tabs button { min-width: 0; padding-inline: 8px; }
}

@media (min-width: 768px) and (max-width: 1279px) {
  .p-data__item h3 { min-height: 158px; }
  .p-data__item h3 > .p-keep-word { display: block; }
  .p-data__item h3 strong { font-size: 50px; }
  .p-data__item h3 strong small { font-size: 26px; }
  .p-benefits .p-card h3 { min-height: 164px; padding-inline: 8px; font-size: 20px; line-height: 32px; }
  .p-education .p-card h3, .p-education .p-card:last-child h3 { min-height: 164px; font-size: 20px; line-height: 32px; }
}

@media (min-width: 768px) and (max-width: 1099px) {
  /* Fixed controls must stay usable even when the 1100px page is scrolled sideways. */
  .p-fixed-cta__tel { padding-left: 115px; font-size: clamp(20px, calc(20px + (100vw - 768px) * .01813), 26px); }
}

/* Smartphone ------------------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --side: 15px;
    --fixed-cta-overhang: 0px;
  }

  html { scroll-padding-top: 72px; }

  body {
    min-width: 0;
    overflow-x: visible;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: .07em;
  }

  body.is-drawer-open { overflow: hidden; }

  .js-sp-swiper.is-swiper-fallback .swiper-slide:not(:first-child) { display: none; }

  .u-pc-only { display: none !important; }
  .u-sp-only { display: block !important; }

  .l-header__logo {
    top: 17px;
    left: 15px;
    width: min(68vw, 255px);
  }

  .l-header__menu { width: 61px; height: 61px; background: var(--color-pink); font-size: 9px; }
  .l-header::before { height: 61px; }
  .l-header__menu-lines { width: 30px; gap: 6px; }
  .l-header__drawer { width: 100%; padding: 86px 28px 40px; }
  .l-header__menu[aria-expanded="true"] .l-header__menu-lines i:first-child { transform: translateY(7px) rotate(45deg); }
  .l-header__menu[aria-expanded="true"] .l-header__menu-lines i:last-child { transform: translateY(-7px) rotate(-45deg); }
  .l-header__drawer-logo { width: 270px; max-width: calc(100% - 55px); }

  .p-feature { order: 1; }
  .p-message { order: 2; }
  .p-data { order: 3; }
  .p-benefits { order: 4; }
  .p-team { order: 5; }
  .p-education { order: 6; }
  .p-schedule { order: 7; }
  .p-voice { order: 8; }
  .p-flow { order: 9; }
  .p-recruit { order: 10; }

  .c-section-box {
    width: calc(100% - 30px);
    padding: 40px 15px 55px;
    border-radius: 12px;
  }

  .c-section-title {
    display: block;
    margin-bottom: 45px;
    padding-bottom: 23px;
    border-bottom: 1px solid var(--color-pink);
    color: var(--color-pink);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: .04em;
    text-align: center;
  }

  .c-section-title::after { display: none; }
  .c-en-title { font-size: 27px; }

  .p-mv {
    --mv-photo-height: 480px;
    --mv-photo-shift: -35px;
    height: auto;
    min-height: 740px;
  }

  .p-mv__photo {
    height: var(--mv-photo-height);
    transform: translateY(var(--mv-photo-shift));
    object-position: 75% center;
  }

  .p-mv__visual::after {
    /* Finish the fade at the translated photo's bottom, not the MV's bottom. */
    bottom: auto;
    height: calc(var(--mv-photo-height) + var(--mv-photo-shift));
    background: linear-gradient(180deg, rgba(255, 255, 255, .05) 0, rgba(255, 255, 255, .02) 76.4%, #fff 100%);
  }

  .p-mv__content {
    position: relative;
    top: auto;
    left: auto;
    margin-inline: var(--side);
    padding-top: 397px;
    width: calc(100% - var(--side) * 2);
    text-align: center;
  }

  .p-mv__title { display: flex; height: 131px; align-items: flex-end; }
  .p-mv__title picture { display: block; width: min(100%, 305.5px); margin-inline: auto; transform: translateY(10px); }
  .p-mv__title img { display: block; width: 100%; height: auto; }
  .p-mv__points { width: 100%; margin-top: 14px; margin-left: 0; padding: 12px 0; }
  .p-mv__points p { height: 26px; font-size: clamp(12px, 3.7vw, 16px); line-height: 1.2; letter-spacing: .04em; }
  .p-mv__points p:first-child { width: 58%; justify-content: flex-start; padding-left: 7px; }
  .p-mv__points p:last-child { width: 42%; }
  .p-mv__points span { width: 23px; height: 23px; margin-right: 4px; }
  .p-mv__points .p-mv__point-copy { width: auto; height: auto; margin: 0; transform: none; }
  .p-mv__point-copy--holidays { transform: translateX(3px); }
  .p-mv__point-holidays { width: 63px; }
  .p-mv__point-number { width: 48px; margin-left: 5px; }
  .p-mv__point-days { width: 43px; margin-left: 4px; }
  .p-mv__point-no-substitute { width: 95px; }
  .p-mv__lead { margin-top: 25px; margin-left: 0; font-size: 14px; font-weight: 400; line-height: 2.05; letter-spacing: .08em; }
  .p-mv__lead-phrase { display: inline-block; }
  .p-mv__tour { display: none; }

  .p-feature {
    display: block;
    width: 100%;
  }

  .p-feature__heading { padding: 30px 15px 30px; background: #fff; }
  .p-feature__heading .p-hand-title-image--feature { width: min(100%, 177.5px); }
  .p-feature__item { height: auto; overflow: visible; background: var(--color-bg); }
  .p-feature__photo { height: auto; aspect-ratio: 375 / 190; }
  .p-feature__photo img { position: absolute; max-width: none; width: 200.13%; height: auto; left: -37.47%; top: .53%; }
  .p-feature__item:nth-child(2) .p-feature__photo img { width: 204%; left: -41.73%; top: -10.53%; }
  .p-feature__item:nth-child(3) .p-feature__photo img { width: 164.8%; left: -29.47%; top: -3.16%; transform: scaleX(-1); }
  .p-feature__item::after { display: none; }
  .p-feature__text { position: static; width: 100%; min-height: 0; padding: 45px 15px 50px; text-align: center; }
  .p-feature__num { position: relative; width: fit-content; margin: -77px auto 20px; padding-bottom: 12px; font-size: 43px; font-weight: 400; }
  .p-feature__num::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--color-pink); content: ""; }
  .p-feature__text h3 { margin-bottom: 16px; font-size: 18px; line-height: 26px; letter-spacing: .14em; }
  .p-feature__text p { font-size: 14px; line-height: 28px; letter-spacing: .16em; text-align: left; }

  .p-video { border-radius: 10px; }
  .p-video__play { width: 54px; height: 38px; border-radius: 10px; }
  .p-video__play::after { top: 10px; left: 22px; border-top-width: 9px; border-bottom-width: 9px; border-left-width: 14px; }

  .p-message { padding-top: 40px; background: #fcfbf7; }
  .p-message__body { display: flex; width: 100%; min-height: 0; margin-top: 0; padding: 0 30px 50px; flex-direction: column; gap: 0; background: transparent; }
  .p-message__body > h2 { margin-bottom: 25px; }
  .p-hand-title-image--message { width: min(100%, 204.5px); margin-bottom: 0; }
  .p-message__body .p-hand-title { order: 1; margin-bottom: 45px; font-size: 35px; line-height: 1.55; }
  .p-message__body .p-hand-title small { color: var(--color-pink); }
  .p-message__doctor-frame { order: 2; width: 100%; height: auto; aspect-ratio: 315 / 434; margin: auto; border-radius: 12px; }
  .p-message__doctor { width: 100%; height: 100%; transform: scale(1.323); transform-origin: center 48%; object-position: center top; }
  .p-message__copy { order: 3; padding: 18px 0 0; text-align: center; }
  .p-message__copy h3 { margin-bottom: 14px; font-family: "Noto Sans JP", sans-serif; font-size: 23px; line-height: 35px; letter-spacing: .14em; }
  .p-message__copy > p { font-size: 14px; line-height: 28px; letter-spacing: .14em; text-align: left; }
  .p-message__copy > .p-message__name { margin-top: 24px; line-height: 24px; text-align: center; }
  .p-message__name strong { font-size: 25px; line-height: 36px; }

  .p-data { --data-background-overlap: 51.5px; padding: 0 0 35px; }
  .p-data .c-section-box { border-radius: 12px; }
  .p-data .c-section-box { padding-top: 14px; padding-bottom: 25px; }
  .p-data .c-section-title { margin-bottom: 20px; }
  .p-data .c-section-title { font-size: 20px; }

  .js-sp-swiper { display: flex; flex-direction: column; }
  .js-sp-swiper .swiper-wrapper { display: flex; gap: 0; }
  .js-sp-swiper .swiper-wrapper { order: 2; }
  .js-sp-swiper .swiper-slide { height: auto; }
  .swiper-pagination { position: static; display: flex; justify-content: center; margin: 0 auto 25px; order: 1; gap: 9px; }
  .swiper-pagination-bullet { width: 7px; height: 7px; margin: 0 !important; background: #e9e4d9; opacity: 1; }
  .swiper-pagination-bullet-active { background: var(--color-pink); }

  .p-data .js-sp-swiper .swiper-wrapper { padding-top: 36px; }
  .p-data__item { min-height: 0; padding: 42px 25px 25px; text-align: center; }
  .p-data__item::before { top: -36px; width: 90px; height: 90px; }
  .p-data__item > img { top: -22px; height: 48px; }
  .p-data__item h3 { min-height: 108px; font-size: 17px; letter-spacing: .10em; }
  .p-data__item h3 strong { margin-top: 0; font-size: 48px; }
  .p-data__item h3 strong small { font-size: 23px; }
  .p-data__item p { font-size: 14px; line-height: 24px; letter-spacing: .14em; text-align: left; }

  .p-benefits,
  .p-education { padding: 0 0 18px; }
  .p-benefits .c-section-box,
  .p-education .c-section-box { padding-top: 14px; padding-bottom: 20px; }
  .p-data .c-section-title, .p-benefits .c-section-title, .p-education .c-section-title { padding-bottom: 13px; }
  .p-benefits .c-section-title,
  .p-education .c-section-title { margin-bottom: 20px; }
  .p-card-list { display: flex; gap: 0; }
  .p-card { border-radius: 10px; }
  .p-card__photo { height: auto; aspect-ratio: 315 / 204; }
  .p-card h3 { min-height: 114px; padding: 18px 10px 15px; font-size: 18px; line-height: 27px; letter-spacing: .10em; align-content: center; }
  .p-education .p-card h3 { min-height: 141px; }
  .p-card p { padding: 0 18px 25px; font-size: 14px; line-height: 24px; letter-spacing: .10em; }

  .p-team { display: flex; padding: 30px 0 65px; flex-direction: column; }
  .p-team::before { display: none; }
  .p-team > h2 { order: 1; }
  /* Explicit height also reserves the crop when an absolute image is still loading. */
  .p-team__visual { z-index: 1; display: block; width: calc(100% - 30px); height: 0; padding-top: calc((100% - 30px) * 186 / 345); flex-shrink: 0; margin: 0 30px 0 0; overflow: hidden; border-radius: 0 8px 8px 0; order: 2; }
  .p-team__visual > img:first-child { position: absolute; top: -1.6%; left: -11.3%; width: 119.13%; max-width: none; height: auto; aspect-ratio: auto; border-radius: 0; }
  .p-hand-title-image--team { width: min(calc(100% - 30px), 313.5px); margin-bottom: 30px; }
  .p-team__body { position: relative; display: flex; width: calc(100% - 30px); margin-top: 0; padding: 16px 25px 0; flex-direction: column; order: 3; gap: 18px; background: transparent; }
  .p-team__body::before { position: absolute; z-index: -1; top: calc(16px - (100vw - 30px) * .53913); right: 0; bottom: max(80px, calc((100vw - 60px) * .5625 - 60px)); left: 0; border-radius: 12px; background: #fff; content: ""; }
  .p-team__copy h3 { margin-bottom: 8px; font-size: 23px; line-height: 36px; text-align: center; }
  .p-team__copy p { font-size: 15px; line-height: 30px; }
  .p-team__body .p-video { width: calc(100% + 20px); max-width: none; margin-inline: -10px; }

  .p-schedule { display: block; width: 100%; padding: 30px 15px 60px; }
  .p-schedule > .u-sp-only .p-schedule__clock { width: 45px; height: 45px; margin: 0 auto 15px; }
  .p-hand-title-image--schedule { width: min(100%, 238.5px); margin-bottom: 35px; }
  .p-schedule__line { padding-left: 19px; }
  .p-schedule__line::before { left: 1px; width: 2px; }
  .p-schedule__item { display: flex; min-height: 0; margin-bottom: 15px; flex-direction: column; gap: 18px; }
  .p-schedule__item::before { top: 8px; left: -23px; width: 12px; height: 12px; }
  .p-schedule__item:first-child::before,
  .p-schedule__item:last-child::before { top: 8px; left: -26.5px; width: 19px; height: 19px; }
  .p-schedule__item:last-child::after { left: -20px; top: 27px; width: 5px; }
  .p-schedule__item time { display: inline; margin-right: 10px; font-size: 40px; }
  .p-schedule__item h3 { display: inline; font-size: 17px; white-space: nowrap; }
  .p-schedule__item p { margin-top: 12px; font-size: 13px; line-height: 1.9; }
  .p-schedule__item small { font-size: 10px; }
  .p-schedule__item img { order: 2; width: 100%; height: auto; border-radius: 8px; }

  .p-voice { padding: 40px 15px 55px; }
  .p-voice__head { width: 100%; margin-bottom: 40px; text-align: center; }
  .p-voice__head > span { font-size: 28px; }
  .p-voice__head h2 img { width: min(100%, 245px); margin: 10px auto 0; }
  .p-voice__head > span > img { width: 64px; margin: 0 auto 15px; }
  .p-voice__parent-tabs { width: 100%; margin: 0 0 30px; }
  .p-voice__parent-tabs button { height: 45px; font-size: 15px; }
  .p-voice__group { width: 100%; }
  .p-voice__panel { min-height: 0; padding: 30px 15px; }
  .p-voice__panel header { display: grid; margin-bottom: 30px; grid-template-columns: 65px 1fr; gap: 0 15px; }
  .p-voice__panel header img { width: 65px; height: 65px; grid-row: span 2; }
  .p-voice__panel header strong { align-self: end; padding: 0; border: 0; font-size: 25px; }
  .p-voice__panel header span { align-self: start; font-size: 13px; }
  .p-voice__panel dl { gap: 25px; }
  .p-voice__panel dt { font-size: 16px; }
  .p-voice__panel dd { font-size: 14px; line-height: 2; letter-spacing: .08em; }
  .p-voice__child-tabs { display: flex; margin: 35px -5px 0; overflow-x: auto; }
  .p-voice__scroll-hint { display: block; margin: 18px 0 8px; font-size: 12px; text-align: left; }
  .p-voice__child-tabs { user-select: none; -webkit-user-select: none; }
  .p-voice__child-tabs.is-dragging, .p-voice__child-tabs.is-dragging button { cursor: grabbing; }
  .p-voice__scroll-hint + .p-voice__child-tabs { margin-top: 0; }
  .p-voice__child-tabs button { display: flex; min-width: 78px; min-height: 165px; padding: 10px 5px; flex: 0 0 25%; flex-direction: column; align-items: center; justify-content: flex-start; }
  .p-voice__child-tabs img { width: 65px; }
  .p-voice__child-tabs strong { font-size: 18px; }
  .p-voice__child-tabs span { font-size: 9.5px; letter-spacing: 0; white-space: nowrap; }
  .p-voice__group[data-group="reception"] .p-voice__child-tabs { display: flex; justify-content: center; }

  .p-flow { padding: 40px 15px 35px; }
  .p-flow > .c-en-title { margin-bottom: 15px; }
  .p-flow > .c-en-title img { width: 42.5px; height: auto; margin: 0 auto; }
  .p-flow > h2 img { width: min(100%, 233px); height: auto; margin: 0 auto 40px; }
  .p-recruit > .c-en-title { margin-bottom: 15px; }
  .p-recruit > .c-en-title img { width: 64.5px; height: auto; margin: 0 auto; }
  .p-recruit > h2 img { width: 125.5px; margin: 0 auto 45px; }
  .p-recruit__inner > h3 {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
    white-space: nowrap;
  }
  .p-flow__list { width: 100%; grid-template-columns: repeat(4, 1fr); gap: 9px; }
  .p-flow__list li:not(:last-child)::after { top: 26px; right: -11px; width: 13px; height: 14px; }
  .p-flow__icon { width: 60px; height: 60px; padding: 10px 8px; }
  .p-flow__list li:nth-child(2) .p-flow__icon { padding-inline: 11px; }
  .p-flow__list li:nth-child(3) .p-flow__icon { padding-inline: 12px; }
  .p-flow__list li:nth-child(4) .p-flow__icon { padding-inline: 10px; }
  .p-flow__list span { margin-top: 8px; font-size: 11px; }
  .p-flow__list h3 { min-height: 64px; margin-top: 4px; font-size: 11px; line-height: 1.55; letter-spacing: 0; }
  .p-flow__list p { display: none; }

  .p-recruit { padding: 0 15px 55px; }
  .p-recruit__inner { width: 100%; }
  .p-recruit table,
  .p-recruit tbody,
  .p-recruit tr,
  .p-recruit th,
  .p-recruit td { display: block; width: 100%; }
  .p-recruit tbody { display: flex; flex-direction: column; }
  .p-recruit table { border-radius: 7px; font-size: 13px; }
  .p-recruit th { padding: 4px 8px; border-right: 0; font-size: 13px; text-align: center; }
  .p-recruit td { padding: 8px 12px 10px; line-height: 1.65; text-align: left; }

  .l-footer { padding-bottom: var(--fixed-cta-sp); }
  .l-footer__map { height: 375px; }
  .l-footer__body { min-height: 545px; padding: 45px 15px 26px; }
  .l-footer__brand { margin-bottom: 14px; }
  .l-footer__brand > img { width: 215px; }
  .l-footer__mark { margin-bottom: 4px; }
  .l-footer__brand strong { margin-top: 5px; font-size: 34px; }
  .l-footer__director { display: block; margin-top: 2px; }
  .l-footer__body address { margin: 0; font-size: 15px; }
  .l-footer__tel { margin-bottom: 6px; font-size: 35px; }
  .l-footer__tel > img { width: 22px; }
  .l-footer__hours { width: 100%; max-width: 500px; font-size: 11px; }
  .l-footer__hours th,
  .l-footer__hours td { padding: 9px 5px; }
  .l-footer__note { margin-bottom: 12px; font-size: 11px; }
  .l-footer__body > small { font-size: 9px; }

  .p-fixed-cta {
    height: var(--fixed-cta-sp);
    grid-template-columns: 43.333% 43.333% 13.334%;
    padding-left: 0;
  }
  .p-fixed-cta__tel { display: flex; flex-direction: row; gap: 5px; font-size: 16px; }
  .p-fixed-cta__phone { width: 13px; }
  .p-fixed-cta__tel .u-sp-only { display: inline !important; font-family: "Oswald", sans-serif; font-size: clamp(15px, 5.333vw, 20px); letter-spacing: .02em; }
  .p-fixed-cta__entry { gap: 9px; padding-left: 8px; font-size: clamp(18px, 5vw, 23px); }
  .p-fixed-cta__entry > img { width: 21px; }
  .p-fixed-cta__entry small { margin-top: 3px; font-size: 9px; }
  .p-fixed-cta__top { height: auto; margin-top: 0; }
  .p-fixed-cta__top span::before { top: 14px; left: 50%; width: 20px; height: 22px; transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .c-fade { opacity: 1; transform: none; }
}
