/* ===== RECRUIT ===== */
.recruit {
  position: relative;
  background-color: rgb(248, 250, 251);
  padding: 12rem 0;
}

.recruitInner {
  position: relative;
}

.recruit .ttl01 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px 0;
  margin-bottom: 4rem;
}

.recruit .ttl01En {
  font-size: 5.6rem;
  font-weight: 700;
  font-family: var(--font-poppins), Poppins, sans-serif;
  letter-spacing: 0.02em;
  color: rgb(28, 44, 67);
  line-height: 1;
}

.recruit .ttl01Ja {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: rgb(28, 44, 67);
  line-height: 1;
}

/* ===== タブ ===== */
.recruitTabs {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 0;
  border-bottom: 2px solid rgb(43, 185, 176);
}

.recruitTab {
  flex: 0 0 auto;
  padding: 1.6rem 3.2rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: rgb(70, 86, 110);
  background-color: rgb(232, 236, 240);
  border: none;
  border-radius: 8px 8px 0 0;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
  letter-spacing: 0.04em;
}

.recruitTab:hover {
  color: rgb(28, 44, 67);
  background-color: rgb(216, 222, 228);
}

.recruitTab.is-active {
  color: rgb(255, 255, 255);
  background-color: rgb(43, 185, 176);
}

/* ===== パネル ===== */
.recruitPanels {
  background-color: rgb(255, 255, 255);
  border: 1px solid rgb(220, 224, 230);
  border-top: none;
  border-radius: 0 8px 8px 8px;
  padding: 3.2rem 3.6rem;
}

.recruitPanel {
  display: none;
}

.recruitPanel.is-active {
  display: block;
}

.recruitList {
  display: flex;
  flex-direction: column;
}

.recruitRow {
  display: grid;
  grid-template-columns: 18rem 1fr;
  gap: 2.4rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid rgb(232, 236, 240);
}

.recruitRow:last-child {
  border-bottom: none;
}

.recruitRow dt {
  font-size: 1.4rem;
  font-weight: 700;
  color: rgb(28, 44, 67);
  letter-spacing: 0.04em;
}

.recruitRow dd {
  font-size: 1.4rem;
  line-height: 1.7;
  color: rgb(70, 86, 110);
}

/* ===== タブレット（〜1024px）===== */
@media screen and (max-width: 1024px) {
  .recruit {
    padding: 10rem 0;
  }
}

/* ===== モバイル（〜767px）===== */
@media screen and (max-width: 767px) {
  .recruit {
    padding: 13.3333vw 0;
  }

  .recruit .ttl01En {
    font-size: 9.6vw;
  }

  .recruit .ttl01Ja {
    font-size: 3.2vw;
  }

  .recruit .ttl01 {
    margin-bottom: 6.4vw;
  }

  .recruitTab {
    flex: 1 1 0;
    padding: 3.2vw 1.6vw;
    font-size: 3.46667vw;
  }

  .recruitPanels {
    padding: 5.33333vw 4.26667vw;
  }

  .recruitRow {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 3.2vw 0;
  }

  .recruitRow dt {
    font-size: 3.46667vw;
  }

  .recruitRow dd {
    font-size: 3.46667vw;
  }
}
