/* ============================================
   About Page
   ============================================ */

/* --------------------------------------------
   Section heading (h2) pattern
   Used across multiple sections
   -------------------------------------------- */
.section-heading {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.section-heading__en {
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-navy);
  font-style: normal;
}

.section-heading__en em {
  color: var(--color-pink);
  font-style: normal;
}

.section-heading__ja {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-navy);
}

/* --------------------------------------------
   About Section
   -------------------------------------------- */
.about-section {
  padding: 40px 40px 0;
}

.about-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.about-section__text {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.about-section__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.about-section__body .highlight {
  font-weight: 700;
  color: var(--color-pink);
}

.about-section__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  overflow: hidden;
}

.about-section__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 769px) {
  .about-section {
    padding: 60px 120px 0;
  }

  .about-section__inner {
    flex-direction: row;
    gap: 60px;
    align-items: flex-start;
  }

  .about-section__text {
    flex: 1;
    min-width: 0;
  }

  .about-section__photo {
    flex-shrink: 0;
    width: min(400px, 38%);
    aspect-ratio: 4 / 3;
  }
}

/* --------------------------------------------
   Feature Section
   -------------------------------------------- */
.feature-section {
  padding: 40px 40px 0;
}

.feature-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

/* Feature block (photo + text) */
.feature-block {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.feature-block__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  overflow: hidden;
}

.feature-block__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-block__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.feature-block__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--color-navy);
}

.feature-block__title strong {
  font-weight: 700;
  color: var(--color-pink);
}

.feature-block__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.feature-block__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.feature-block__body .highlight {
  font-weight: 700;
  color: var(--color-pink);
}

/* "各部屋・院内設備はこちら" link */
.feature-block__link {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: flex-end;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-pink);
  text-decoration: none;
}

.feature-block__link img {
  flex-shrink: 0;
}

/* Dashed divider */
.feature-divider {
  border: none;
  border-top: 2px dashed var(--color-pink);
  margin: 0;
}

/* Feature 3 (no photo) */
.feature-block--no-photo {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Pill buttons grid */
.feature-pills {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.feature-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  height: 45px;
  border-radius: 110px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  padding: 0 40px;
}

.feature-pill--dark {
  background: var(--color-pink);
}

.feature-pill--light {
  background: #f09eba;
}

.feature-pill__arrow {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 12px;
}

.feature-pill__mixed {
  font-size: 16px;
}

.feature-pill__mixed small {
  font-size: 14px;
}

@media (min-width: 769px) {
  .feature-section {
    padding: 60px 120px 0;
  }

  /* Feature block (photo + text side by side) */
  .feature-block {
    flex-direction: row;
    gap: 60px;
    align-items: flex-start;
  }

  .feature-block__photo {
    flex-shrink: 0;
    width: min(288px, 30%);
    aspect-ratio: 4 / 3;
  }

  .feature-block__text {
    flex: 1;
    min-width: 0;
  }

  /* Feature 2: reversed layout (text left, photo right) */
  .feature-block--reverse {
    flex-direction: row;
  }

  .feature-block--reverse .feature-block__photo {
    order: 2;
  }

  .feature-block--reverse .feature-block__text {
    order: 1;
  }

  /* Feature 3 (no photo) stays column */
  .feature-block--no-photo {
    flex-direction: column;
  }

  /* Pill buttons: 3-column grid */
  .feature-pills {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }

  .feature-pill {
    width: 324px;
  }
}

/* --------------------------------------------
   Greeting Section
   -------------------------------------------- */
.greeting-section {
  padding: 40px 40px 0;
}

.greeting-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

/* SP: heading + text first, sidebar second (via order) */
.greeting-section__main {
  display: flex;
  flex-direction: column;
  gap: 40px;
  order: 1;
}

.greeting-section__sidebar {
  display: flex;
  flex-direction: column;
  gap: 40px;
  order: 2;
}

/* Photo + Profile card */
.greeting-photo {
  display: flex;
  flex-direction: column;
}

.greeting-photo__img {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
}

.greeting-photo__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.greeting-photo__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(to bottom, #ffe3ec, rgba(249, 243, 245, 0));
  mix-blend-mode: multiply;
  opacity: 0.6;
}

.greeting-profile {
  background: var(--color-pink-bg);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.greeting-profile__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-pink);
}

.greeting-profile__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.greeting-profile__body {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

/* Career box */
.greeting-career {
  border: 1px solid #cce8fe;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.greeting-career__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-pink);
}

.greeting-career__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.greeting-career__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.greeting-career__row {
  display: flex;
  gap: 8px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
  padding-bottom: 8px;
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(to right, #fedbde, #cce8fe) 1;
}

.greeting-career__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
  border-image: none;
}

.greeting-career__row dt {
  flex-shrink: 0;
  white-space: nowrap;
}

.greeting-career__row dd {
  flex: 1;
  min-width: 0;
}

/* Greeting content (text) */
.greeting-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.greeting-content__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-navy);
}

.greeting-content__title strong {
  font-weight: 700;
  color: var(--color-pink);
}

.greeting-content__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.greeting-content__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.greeting-content__body .highlight {
  font-weight: 700;
  color: var(--color-pink);
}

/* Greeting videos */
.greeting-videos {
  display: flex;
  flex-direction: column;
  gap: 40px;
  order: 3;
}

.greeting-videos__item {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.greeting-videos__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-navy);
}

.greeting-videos__title strong {
  font-weight: 700;
  color: var(--color-pink);
}

.greeting-videos__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.greeting-videos__player {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  overflow: hidden;
  background: #000;
}

.greeting-videos__player video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.greeting-videos__desc {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

@media (min-width: 769px) {
  .greeting-section {
    padding: 60px 120px 0;
  }

  .greeting-section__inner {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 60px;
    align-items: flex-start;
  }

  /* PC: sidebar left, main right (reset order) */
  .greeting-section__sidebar {
    order: 0;
    flex-shrink: 0;
    width: min(400px, 38%);
  }

  .greeting-section__main {
    order: 0;
    flex: 1;
    min-width: 0;
  }

  /* Videos: full width row below */
  .greeting-videos {
    order: 0;
    width: 100%;
    flex-direction: row;
    gap: 40px;
  }

  .greeting-videos__item {
    flex: 1;
    min-width: 0;
  }
}

/* --------------------------------------------
   Message Section (Vice Director)
   -------------------------------------------- */
.message-section {
  padding: 60px 40px;
  background: linear-gradient(to bottom, #fff, var(--color-pink-bg));
}

.message-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.message-section__main {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.message-section__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.message-section__sidebar {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* Photo + Profile card */
.message-photo {
  display: flex;
  flex-direction: column;
}

.message-photo__img {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
}

.message-photo__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.message-photo__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(to bottom, #ffe3ec, rgba(249, 243, 245, 0));
  mix-blend-mode: multiply;
  opacity: 0.6;
}

.message-profile {
  background: var(--color-pink-bg);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.message-profile__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-pink);
}

.message-profile__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.message-profile__body {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

/* Career box */
.message-career {
  border: 1px solid #cce8fe;
  padding: 24px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.message-career__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-pink);
}

.message-career__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.message-career__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.message-career__row {
  display: flex;
  gap: 8px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
  padding-bottom: 8px;
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(to right, #fedbde, #cce8fe) 1;
}

.message-career__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
  border-image: none;
}

.message-career__row dt {
  flex-shrink: 0;
  white-space: nowrap;
}

.message-career__row dd {
  flex: 1;
  min-width: 0;
}

@media (min-width: 769px) {
  .message-section {
    padding: 60px 120px;
  }

  .message-section__inner {
    flex-direction: row;
    gap: 60px;
    align-items: flex-start;
  }

  .message-section__main {
    flex: 1;
    min-width: 0;
  }

  .message-section__sidebar {
    flex-shrink: 0;
    width: min(400px, 38%);
  }
}

/* --------------------------------------------
   Doctors Section
   -------------------------------------------- */
.doctors-section {
  padding: 40px 40px 0;
}

.doctors-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.doctors-section__desc {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

/* Doctor cards */
.doctors-cards {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.doctor-card {
  border: 1px solid #cce8fe;
  background: #fff;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.doctor-card__name {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-pink);
}

.doctor-card__diamond {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  background: var(--color-pink);
  transform: rotate(45deg);
}

.doctor-card__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.doctor-card__row {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
  padding-bottom: 8px;
  border-bottom: 1px solid transparent;
  border-image: linear-gradient(to right, #fedbde, #cce8fe) 1;
}

.doctor-card__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
  border-image: none;
}

@media (min-width: 769px) {
  .doctors-section {
    padding: 60px 120px 0;
  }

  .doctors-cards {
    flex-direction: row;
    gap: 40px;
  }

  .doctor-card {
    flex: 1;
    min-width: 0;
  }
}

/* --------------------------------------------
   Movies Section
   -------------------------------------------- */
.movies-section {
  padding: 60px 40px;
  background: linear-gradient(to bottom, #fff, var(--color-pink-bg));
}

.movies-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.movies-section__desc {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.movies-grid {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.movies-grid__item {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  overflow: hidden;
  background: #000;
}

.movies-grid__item video,
.movies-grid__item iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 769px) {
  .movies-section {
    padding: 60px 120px;
  }

  .movies-grid {
    flex-direction: row;
    gap: 40px;
  }

  .movies-grid__item {
    flex: 1;
    min-width: 0;
  }
}

/* --------------------------------------------
   Recruit Section
   -------------------------------------------- */
.recruit-section {
  padding: 40px 40px 0;
}

.recruit-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.recruit-section__text {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.recruit-section__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.recruit-section__body .highlight {
  font-weight: 700;
  color: var(--color-pink);
}

.recruit-section__body .highlight a {
  color: inherit;
  text-decoration: none;
}

.recruit-section__photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 4px;
  overflow: hidden;
}

.recruit-section__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(1px);
}

@media (min-width: 769px) {
  .recruit-section {
    padding: 60px 120px 0;
  }

  .recruit-section__inner {
    flex-direction: row;
    gap: 60px;
    align-items: flex-start;
  }

  .recruit-section__text {
    flex: 1;
    min-width: 0;
  }

  .recruit-section__photo {
    flex-shrink: 0;
    width: min(400px, 38%);
  }
}

/* --------------------------------------------
   Standards Section
   -------------------------------------------- */
.standards-section {
  padding: 40px 40px 60px;
}

.standards-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1040px;
  margin: 0 auto;
}

.standards-section__content {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.standards-section__desc {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-navy);
}

.standards-section__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 324px;
  height: 45px;
  border-radius: 110px;
  background: var(--color-pink);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  padding: 0 40px;
}

.standards-section__btn-arrow {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 12px;
}

@media (min-width: 769px) {
  .standards-section {
    padding: 60px 120px;
  }
}
