body {
  background-color: #FBF6EE;
}

/* セクション1ここから */
.recruitment {
  margin-top: 68px;
  color: #000000;
}

.recruitment__tab {
  display: flex;
  margin-bottom: 50px;
}
.recruitment__tabItem {
  align-items: center;
  background-color: #fff;
  border: 1px solid #000;
  color: #282828;
  display: flex;
  font-size: 20px;
  font-weight: 700;
  height: 96px;
  justify-content: center;
  text-align: center;
  width: 50%;
}
.recruitment__tabItem-active {
  background-color: #000;
  color: #fff;
}
.recruitment__title {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 20px;
}
.recruitment__tabPanel {
  display: none;
  margin-bottom: 95px;
}
.recruitment__tabPanel.recruitment__show {
  display: block;
}
.recruitment__text {
  margin-bottom: 75px;
  p {
    font-weight: 500;
    line-height: 1.875;
  }
}
.recruitment__dl {
  margin-bottom: 45px;
  p {
    font-weight: 500;
    line-height: 1.875;
  }
}
.recruitment__dl-box {
  align-items: center;
  border-bottom: 0.5px solid #aeaeae;
  display: flex;
}
.recruitment__dt {
  font-weight: 700;
  width: 31.44%;
}
.recruitment__dd {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.71;
  padding: 16px 0;
  width: 68.56%;
}
.recruitment__tabPanel .entry-wide-btn {
  margin: 0 auto;
}
/* セクション1ここまで */

/* セクション2ここから */
.social-section2 {
  background-color: #fbf6f2;
  margin-bottom: 175px;
}

.social-section2 h2,
.social-section2 h3 {
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-weight: 700;
  line-height: 1.45;
}

.social-section2 h2 {
  margin-bottom: 45px;
}

.social-section2 .flex-box {
  display: flex;
  align-items: center;
  gap: 43px;
  padding-bottom: 58px;
  position: relative;
}

.social-section2 .flex-box:last-of-type {
  padding-bottom: unset;
}

.social-section2 dt {
  position: relative;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 2px solid black;
  background-color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 2; /* 線より上にくるように */
}

.social-section2 dt::before,
.social-section2 dt::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  border-left: 2px dashed black;
  z-index: -1; /* 丸の背景（白）の後ろに隠す */
}

/* 上に伸びる線（2つ目以降の要素で必要） */
.social-section2 dt::before {
  bottom: 100%; 
  height: 100vh; 
}

/* 下に伸びる線 */
.social-section2 dt::after {
  top: 100%; 
  height: 100vh; 
}

/* --- 最初の要素の上線、最後の要素の下線を消す --- */
.social-section2 .flex-box:first-of-type dt::before,
.social-section2 .flex-box:last-of-type dt::after {
  display: none;
}

/* --- 線の表示範囲を制限する --- */
.social-section2 .flex-box {
  overflow: hidden;
}

.social-section2 dt p {
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-weight: 700;
}

.social-section2 dd p {
  font-family: "Noto Sans JP";
  font-weight: 500;
  max-width: 790px;
  line-height: 1.43;
  margin-top: 5px;
}

.recruitment-sp {
  display: none;
}
/* セクション2ここまで */

/* レスポンシブはここから */
@media screen and (max-width: 767px) {

  /* セクション１ */
  .recruitment {
    margin-top: 41px;
  }

  .recruitment__tabItem {
    font-size: 0.875rem;
    height: 66px;
  }

  .recruitment-sp {
    display: block;
  }

  .recruitment__tab {
    margin-bottom: 41px;
  }

  .recruitment__tabPanel {
    margin-bottom: 84px;
  }

  .recruitment__title {
    line-height: 1.2;
    margin-bottom: 48px;
  }

  .recruitment__text {
    font-size: 0.875rem;
    margin-bottom: 85px;
  }

  .recruitment__dl-box {
    display: block;
  }

  .recruitment__dl {
    margin-bottom: 32px;
  }

  .recruitment__dt {
    line-height: 1.2;
    margin-top: 16px;
    width: 100%;
  }

  .recruitment__dd {
    width: 100%;
  }

  /* セクション２ */
  .social-section2 {
    margin-bottom: 84px;
  }

  .social-section2 h2 {
    margin-bottom: 30px;
  }

  .social-section2 h3 {
    font-size: 1rem;
  }

  .social-section2 dt {
    width: 78px;
    height: 78px;
  }

  .social-section2 dt p {
    font-size: 1.5rem;
  }

  .social-section2 dd p {
    font-size: 0.875rem;
  }

  .social-section2 .flex-box {
    align-items: unset;
    gap: 16px;
    padding-bottom: 37px;
  }
}