/* //////////////// */
/* hero */
/* //////////////// */

.section-hero {
  position: relative;
}

.hero-img-wrapper {
  width: 100%;
}

.hero-img {
  width: 100%;
  object-fit: cover;
  user-select: none;
}

.hero-textbox {
  position: absolute;
  bottom: 10%;
  left: 10rem;
  z-index: 1;
}

.heading-primary-en {
  text-transform: uppercase;
  font-family: var(--font-family-en);
  font-size: 9.6rem;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.heading-primary-ja {
  font-size: 2.4rem;
}

/* //////////////// */
/* about */
/* //////////////// */

.section-about {
  height: 100rem;
  position: relative;
}

.about-textbox {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  max-width: 64rem;
  position: absolute;
  bottom: 20%;
  right: 10rem;
  z-index: 1;
}

.about-description {
  margin-bottom: 1.8rem;
}

.arrow-wrapper {
  width: 2.4rem;
  height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.arrow {
  width: 100%;
}

/* //////////////// */
/* service */
/* //////////////// */

.heading-flex {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.heading-en {
  font-size: 6.4rem;
}

.service-grid {
  margin-top: 3rem;
}

.service-btn {
  align-self: baseline;
}

.service-flex {
  grid-column: 2 / -1;
  display: flex;
  flex-direction: column;
}
.service-box {
  display: flex;
  align-items: center;
  gap: 10rem;
  padding: 3rem 0;
  border-bottom: 1px solid var(--color-black);
}

.service-box:first-child {
  border-top: 1px solid var(--color-black);
}

.service-number {
  font-size: 6.4rem;
  letter-spacing: -0.04em;
}
.service-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* //////////////// */
/* case */
/* //////////////// */

.section-case {
  margin: 15rem 0;
  background-color: var(--color-lightGray);
  padding: 10rem 0;
}

.case-head {
  margin-bottom: 6rem;
}

.case-flex {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

.case-grid {
  gap: 3rem;
}

.case-box {
  background-color: var(--color-white);
  padding: 4rem 3rem;
  border-radius: 10px;
}

.case-title {
  font-size: 2.4rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-bottom: 2rem;
}

.case-btn {
  background-color: var(--color-white);
  box-shadow: none;
}

/* //////////////// */
/* news */
/* //////////////// */

.section-news {
  margin-bottom: 20rem;
}

.news-grid {
  margin-top: 6rem;
}

.news-btn {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  align-self: baseline;
}

.news-flex {
  grid-column: 2 / -1;
  display: flex;
  flex-direction: column;
}

.news-link {
  transition: all 0.3s;
}

.news-link:active,
.news-link:hover {
  background-color: var(--color-lightGray);
}

.news-box {
  display: flex;
  align-items: center;
  gap: 10rem;
  padding: 3rem 1rem;
  border-bottom: 1px solid var(--color-lightGray);
}

.news-box:first-child {
  border-top: 1px solid var(--color-lightGray);
}

.news-date {
  font-size: 1.6rem;
  font-family: var(--font-family-en);
}

/* //////////////// */
/* queries*/
/* //////////////// */

@media screen and (max-width: 768px) {
  /* //////////////// */
  /* hero */
  /* //////////////// */

  .section-hero {
    height: 100vh;
  }

  .hero-img-wrapper {
    position: absolute;
    top: 10%;
    left: -55%;
    width: 150%;
  }

  .hero-textbox {
    bottom: 20%;
    left: 5%;
  }

  /* //////////////// */
  /* about */
  /* //////////////// */

  .section-about {
    height: 100rem;
    position: relative;
  }

  .about-textbox {
    display: flex;
    flex-direction: column;
    gap: 3.2rem;
    max-width: 54rem;
    position: absolute;
    bottom: 20%;
    right: 5%;
  }

  /* //////////////// */
  /* service */
  /* //////////////// */

  .service-grid {
    margin-top: 10rem;
  }

  .service-btn {
    justify-self: end;
  }

  .service-flex {
    grid-column: 1 / -1;
    grid-row: 1 / 2;
    margin-bottom: 6rem;
  }
  .service-box {
    gap: 5rem;
  }

  /* //////////////// */
  /* news */
  /* //////////////// */

  .section-news {
    margin-bottom: 20rem;
  }

  .news-grid {
    margin-top: 6rem;
    gap: 6rem;
  }

  .news-btn {
    grid-row: 2 / 3;
    justify-self: end;
  }

  .news-flex {
    grid-column: 1 / -1;
    grid-row: 1 / 2;
  }

  .news-box {
    gap: 5rem;
  }
}
