/* CSS Document */
.section {
  margin: 80px auto;
  align-items: flex-start;
  position: relative;
}

.section:nth-child(odd) {
  flex-direction: row-reverse;
}

.section::before {
  content: "";
  display: block;
  width: 95%;
  height: 450px;
  background-color: #b2cbe4;
  position: absolute;
  top: 50px;
  left: 0;
  z-index: -10;
}

.section:nth-child(odd)::before {
  background-color: #003366;
  left: auto;
  right: 0;
}

.text-contents {
  width: 40%;
  min-width: 380px;
  margin: 100px 0 0 50px;
  padding: 3%;
  background-color: rgba(0, 51, 102, 0.9);
  color: #ccd8e3;
}

.section:nth-child(odd) .text-contents {
  margin: 100px 50px 0 0;
  background-color: rgba(234, 244, 252, 0.9);
  color: #003366;
}

.text-contents-wrapper {
  border: 1px solid #ccd8e3;
  padding: 15%;
}

.section:nth-child(odd) .text-contents-wrapper {
  border: 1px solid #003366;
}

.text-contents-wrapper h2 span {
  display: block;
  font-size: 2rem;
}
.text-contents-wrapper p {
  margin: 40px auto;
}

.section > img {
  width: 65%;
  aspect-ratio: 5 / 3;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -5;
}

.section:nth-child(odd) > img {
  left: 0;
}

.news {
  margin-bottom: 80px;
  color: #003366;
  text-align: left;
}

.news h2 {
  margin-bottom: 50px;
  text-align: center;
}

.news h2 span {
  display: block;
  font-size: 2rem;
}

.news > div {
  color: #333;
}

@media (max-width: 520px) {
  .section {
    width: 100%;
    margin: 0 auto;
  }
  .section::before {
    display: none;
  }

  .text-contents {
    width: 100%;
    min-width: auto;
    margin: 0 auto;
    padding: 5%;
  }

  .section:nth-child(odd) .text-contents {
    width: 100%;
    min-width: auto;
    margin: 0 auto;
    padding: 5%;
  }

  .text-contents-wrapper {
    padding: 10%;
  }

  .news {
    margin: 80px auto 50px;
  }
  .recruit {
    margin: 50px auto;
  }
}
