/* =====================================================
   RECRUIT PAGE — assets/css/recruit.css
   ===================================================== */

/* =====================================================
   HERO / MV
   ===================================================== */

.recruit-mv {
  position: relative;
  background: #2e3c5a;
  height: clamp(220px, 30.9vw, 593px);
  overflow: hidden;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.recruit-mv__photo {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(899px, 46.8vw);
  height: 100%;
  object-fit: cover;
  display: block;
}

.recruit-mv__deco {
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(280px, 40vw, 710px);
  pointer-events: none;
}

.recruit-mv__deco img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 767px) {
  .recruit-mv {
    height: auto;
    aspect-ratio: 4 / 3;
    min-height: 200px;
  }

  .recruit-mv__photo {
    width: 100%;
    left: 0;
    transform: none;
  }

  .recruit-mv__deco {
    width: 65vw;
  }
}

/* =====================================================
   CATCH
   ===================================================== */

.recruit-catch {
  padding-top: clamp(40px, 5.2vw, 100px);
  padding-bottom: clamp(24px, 3vw, 48px);
  text-align: center;
}

.recruit-catch__inner {
  max-width: 1004px;
  margin-inline: auto;
  padding-inline: clamp(16px, 2.5vw, 40px);
}

.recruit-catch__heading {
  font-family: var(--font-mincho);
  font-size: clamp(1.25rem, 2.29vw, 2.75rem);
  font-weight: 700;
  color: #4d4c4c;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-bottom: clamp(16px, 2vw, 40px);
}

.recruit-catch__text {
  font-family: var(--font-mincho);
  font-size: clamp(0.9375rem, 1.25vw, 1.5rem);
  line-height: 2.25;
  color: #4d4c4c;
  letter-spacing: 0.02em;
}

.recruit-catch__deco {
  margin: clamp(20px, 3vw, 48px) auto 0;
  max-width: min(514px, 60vw);
  mix-blend-mode: multiply;
}

.recruit-catch__deco img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 767px) {
  .recruit-catch {
    padding-top: 32px;
  }

  .recruit-catch__heading {
    font-size: 1.375rem;
  }

  .recruit-catch__text {
    font-size: 0.9375rem;
    line-height: 2;
    text-align: left;
  }

  .recruit-catch__deco {
    max-width: 70vw;
  }
}

/* =====================================================
   COMMON SECTION
   ===================================================== */

.recruit-section {
  padding-top: clamp(48px, 6.25vw, 120px);
  padding-bottom: clamp(40px, 5vw, 80px);
}

.recruit-section__inner {
  max-width: 1027px;
  margin-inline: auto;
  padding-inline: clamp(16px, 10.57vw, 203px);
}

.recruit-section__heading {
  font-family: var(--font-mincho);
  font-size: clamp(1.375rem, 2.08vw, 2.5rem);
  font-weight: 700;
  color: #4d4c4c;
  letter-spacing: 0.05em;
  margin-bottom: clamp(16px, 2vw, 32px);
}

.recruit-section__lead {
  font-family: var(--font-mincho);
  font-size: clamp(0.875rem, 1.04vw, 1.25rem);
  line-height: 2;
  color: #4d4c4c;
  margin-bottom: clamp(20px, 2.5vw, 40px);
}

@media (max-width: 767px) {
  .recruit-section {
    padding-top: 48px;
    padding-bottom: 40px;
  }

  .recruit-section__heading {
    font-size: 1.5rem;
  }

  .recruit-section__lead {
    font-size: 0.9375rem;
  }
}

/* =====================================================
   2×2 PHOTO GRID
   ===================================================== */

.recruit-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(8px, 1vw, 17px);
}

.recruit-photos__item {
  display: block;
  width: 100%;
  aspect-ratio: 505 / 362;
  object-fit: cover;
}

@media (max-width: 567px) {
  .recruit-photos {
    grid-template-columns: 1fr;
  }
}

/* =====================================================
   CONTACT
   =====================================================  */

.recruit-contact {
  padding-top: clamp(32px, 4vw, 80px);
  padding-bottom: clamp(48px, 6vw, 100px);
}

.recruit-contact__channels {
  font-family: var(--font-mincho);
  font-size: clamp(1.25rem, 2.08vw, 2.5rem);
  font-weight: 700;
  color: #4d4c4c;
  letter-spacing: 0.08em;
  margin-bottom: clamp(16px, 2vw, 32px);
}

.recruit-contact__note {
  font-family: var(--font-mincho);
  font-size: clamp(0.875rem, 1.04vw, 1.25rem);
  line-height: 2;
  color: #4d4c4c;
}

.recruit-contact__link {
  color: #4d4c4c;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity 0.2s;
}

.recruit-contact__link:hover {
  opacity: 0.7;
}

@media (max-width: 767px) {
  .recruit-contact__channels {
    font-size: 1.375rem;
  }

  .recruit-contact__note {
    font-size: 0.9375rem;
  }
}
