@charset "UTF-8";

/* メイン */
.top__lead {
  width: min(71.4vw, 1000px);
  text-align: left;
  margin: 0 auto;
  padding: 102px 0 122px;
}
.top__lead p,
.top__lead h3 {
  display: block;
}
.top__lead h3 {
  font-size: clamp(2.5rem, 2.5vw, 3.5rem);
  margin-bottom: min(6vw, 88px);
}
.top__lead p {
  font-size: clamp(1.5rem, 1.6vw, 2.3rem);
}
.top__lead p span {
  display: block;
  margin-bottom: min(5vw, 70px);
}
.top__main-bg {
  width: 100%;
  background-image: url(/assets/images/pc/top/top__bg-1-pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 84px;
}

@media (max-width: 767px) {
  .top__main-bg {
    background-image: none;
  }
  .top__lead {
    width: 85vw;
    padding: 25px 0 93px;
  }
  .top__lead h3 {
    margin-bottom: 25px;
  }
  .top__lead p span {
    margin-bottom: 25px;
  }
  .top__main-bg-sp {
    width: 100vw;
    background-image: url(/assets/images/sp/top/top__bg-1-sp.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center 40px;
  }
}

/* about */
.top__about {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  padding-bottom: 296px;
}
.top__about-p1 {
  width: 90%;
  max-height: 455px;
  aspect-ratio: 642/464;
  height: auto;
  border-radius: 0 20px 20px 0;
  overflow: hidden;
}
.top__about-p1 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top__about-text {
  width: min(39vw, 536px);
  padding-top: 9%;
}
.top__about h3 {
  line-height: 1;
  margin-bottom: 52px;
}
.top__about-textmask {
  background-image: url(/assets/images/common/text__bg-1.webp);
  background-repeat: no-repeat;
  background-size: 130%;
  background-position: 50% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(8.2rem, 8vw, 11.3rem);
  padding-right: 0.2em;
  white-space: nowrap;
}

.top__about-h3sub {
  position: relative;
  font-size: clamp(1.65rem, 1.6vw, 2.3rem);
  padding-left: 50px;
}
.top__about-h3sub::before {
  position: absolute;
  content: "";
  left: 0;
  top: 50%;
  width: 42px;
  height: 2px;
  background: #333;
  transform: translateY(-50%);
}
.top__about-text h4 {
  display: inline;
  font-size: clamp(2.55rem, 2.5vw, 3.5rem);
  line-height: 1.6;
  color: #fff;
  padding: 0 0 0 19px;
  background: linear-gradient(35deg, #333 75%, #41adbf);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: 0 19px;
}
.top__about-text p {
  display: inline-block;
  font-size: clamp(1.3rem, 1.5vw, 2.1rem);
  width: min(531px, 37.9vw);
  line-height: 2;
  margin: 30px 0 40px;
  text-align: justify;
}
/* ボタン */
.top_about-btn {
  width: 156px;
  height: 39px;
  color: #fff;
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.top_about-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(35deg, #41adbf, #333 85%);
  opacity: 1;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.top_about-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #333;
  z-index: -2;
}
.top_about-btn:hover::before {
  opacity: 0;
}
.top_about-btn-p {
  font-size: 2rem;
  line-height: 1.6;
}
.top_about-btn-img {
  width: 6px;
  height: auto;
}
@media (max-width: 767px) {
  .top__about {
    grid-template-columns: 1fr;
    margin-top: -42px;
    padding-bottom: 50px;
  }
  .top__about-p1 {
    width: 92vw;
  }
  .top__about-text {
    width: 85vw;
    padding-top: 20px;
    margin-inline: auto;
  }
  .top__about h3 {
    margin-bottom: 21px;
  }
  .top__about-text p {
    margin: 20px 0 35px;
    width: auto;
  }
  .top_about-btn {
    width: 127px;
    height: 32px;
    gap: 17px;
  }
  .top_about-btn-p {
    font-size: 1.6rem;
  }
  .top_about-btn-img {
    width: 5px;
  }
}
/* swiper */
.swiper {
  margin: -119px 0 109px;
}
.swiper-slide picture,
.swiper-slide img {
  width: 661px;
  height: auto;
  display: block;
}
.swiper-slide {
  width: auto !important;
}
.swiper-wrapper {
  transition-timing-function: linear !important;
}

@media (max-width: 767px) {
  .swiper {
    margin: 0;
  }
  .swiper-slide picture,
  .swiper-slide img {
    width: 330px;
  }
}

/* works */
.top__works {
  display: grid;
  grid-template-columns:
    auto
    min(35%, 500px)
    50%;
  align-items: center;
  margin-bottom: 110px;
}
.top_works-left {
  grid-column: 2;
  grid-row: 1;
  align-self: self-start;
  margin-top: 10px;
}
.top__works-text {
  grid-column: 3;
  width: min(39vw, 536px);
}
.top__works-h3sub {
  letter-spacing: 0.15em;
}
.top__works-text h4 {
  display: inline;
  font-size: clamp(2.55rem, 2.5vw, 3.5rem);
  line-height: 1.6;
  color: #fff;
  background: linear-gradient(35deg, #333 75%, #bcaa60);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  white-space: nowrap;
  padding: 0 19px;
}
.top__works-text p {
  display: inline-block;
  width: min(39vw, 536px);
  font-size: clamp(1.3rem, 1.5vw, 2.1rem);
  line-height: 2;
  margin: 30px 0 0;
  text-align: justify;
}
.top__works-textmask {
  background-image: url(/assets/images/common/text__bg-2.webp);
  background-repeat: no-repeat;
  background-size: 130%;
  background-position: 50% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: clamp(8.2rem, 8vw, 11.3rem);
  padding-right: 0.2em;
  line-height: 1;
}
/* ボタン */
.top__works-btn {
  width: 156px;
  height: 39px;
  color: #fff;
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: center;
  margin-bottom: 28px;
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.top__works-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(35deg, #bcaa60, #333 85%);
  opacity: 1;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.top__works-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #333;
  z-index: -2;
}
.top__works-btn:hover::before {
  opacity: 0;
}
.top__works-btn-p {
  font-size: 2rem;
  line-height: 1.6;
}
.top__works-btn-img {
  width: 6px;
  height: auto;
}

@media (max-width: 767px) {
  .top__works {
    width: 85vw;
    grid-template-columns: 1fr;
    padding-top: 20px;
    margin-bottom: 40px;
    margin-inline: auto;
  }
  .top_works-left {
    grid-column: 1;
    grid-row: 1;
    margin-right: 0;
    margin-top: 0;
  }
  .top__works-text {
    grid-column: 1;
    grid-row: 2;
    width: 85vw;
    margin-inline: auto;
  }
  .top__works h3 {
    margin-bottom: 21px;
    grid-row: 1;
  }
  .top__works-text p {
    margin: 20px 0 35px;
    width: auto;
  }
  .top__works-btn {
    grid-column: 1;
    grid-row: 3;
    width: 127px;
    height: 32px;
    gap: 17px;
    margin-bottom: 0;
  }
  .top__works-btn-p {
    font-size: 1.6rem;
  }
  .top__works-btn-img {
    width: 5px;
  }
}

/* リクルート */
.top__recruit {
  color: #fff;
  width: 100vw;
  padding: 147px 0 170px;
  background:
    url(/assets/images/pc/top/top__bg-2-1-pc.webp) left/96vw auto no-repeat,
    url(/assets/images/pc/top/top__bg-2-2-pc.webp) center/cover no-repeat;
}
.top__recruit-text {
  width: min(631px, 71vw);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.top__recruit-text h4 {
  font-size: clamp(2.6rem, 3.5vw, 4.9rem);
  letter-spacing: 0.19em;
  white-space: nowrap;
}
.top__recruit-text h3 {
  line-height: 1;
}
/* 背景のあしらい */
.top__recruit-text-head {
  position: relative;
  z-index: 0;
  margin-inline: auto;
}
.top__recruit-text-head::before {
  z-index: -1;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  content: "";
  width: min(53vw, 743px);
  aspect-ratio: 597 / 334;
  background: url(/assets/images/common/recruit__fv-textbg-1.webp) no-repeat
    center/contain;
}
.top__recruit-text-head-1 {
  color: #0071ff;
  font-size: clamp(9.6rem, 13vw, 18.4rem);
  white-space: nowrap;
}
.top__recruit-h3sub {
  position: relative;
  font-size: clamp(1.65rem, 1.6vw, 2.3rem);
  padding-left: 50px;
  letter-spacing: 0.15em;
}
.top__recruit-h3sub::before {
  position: absolute;
  content: "";
  left: 0;
  top: 50%;
  width: 42px;
  height: 2px;
  background: #fff;
  transform: translateY(-50%);
}
.top__recruit-text-p {
  font-size: clamp(1.5rem, 1.6vw, 2.3rem);
  margin-top: 62px;
  text-align: justify;
  line-height: 2;
  text-shadow:
    0 0 2px rgba(51, 51, 51, 0.99),
    0 0 8px rgba(51, 51, 51, 0.75),
    0 0 12px rgba(51, 51, 51, 0.55);
}
/* ボタン */
.top_recruit-btn {
  width: 338px;
  height: 85px;
  color: #fff;
  display: flex;
  gap: 44px;
  justify-content: center;
  align-items: center;

  margin-top: 433px;
  margin-inline: auto;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.top_recruit-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(35deg, #002e67, #0071ff 99%);
  opacity: 1;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.top_recruit-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #002e67;
  z-index: -2;
}
.top_recruit-btn:hover::before {
  opacity: 0;
}
.top_recruit-btn-p {
  font-size: 4.3rem;
}
.top_recruit-btn-img {
  width: 13px;
  height: auto;
}

@media (max-width: 767px) {
  .top__recruit {
    color: #fff;
    width: 100vw;
    padding: 58px 0 45px;
    background:
      url(/assets/images/sp/top/top__bg-2-1-sp.webp) center calc(100% - 120px) /
        100vw no-repeat,
      url(/assets/images/sp/top/top__bg-2-2-sp.webp) center/cover no-repeat;
  }
  .top__recruit-text {
    width: 85vw;
    margin-inline: auto;
  }
  .top__recruit-text-p {
    margin-top: 42px;
  }
  .top_recruit-btn {
    width: 198px;
    height: 50px;
    margin-top: 567px;
    gap: 25px;
  }
  .top_recruit-btn-p {
    font-size: 2.5rem;
  }
  .top_recruit-btn-img {
    width: 7px;
    height: auto;
  }
  .top__recruit-text-head::before {
    width: min(550px, 85vw);
  }
  .top__recruit-text h4 {
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
}
