@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600&family=Roboto:wght@400;500;700&display=swap");
/* =============================================== 
  TOP
=============================================== */
@media screen and (max-width: 768px) {
  #main::after {
    content: "";
    background: url(../img/top/parallax_bg.jpg) no-repeat center/cover;
    width: 100%;
    height: 100vh;
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
  }
}

.arrow::after {
  content: "";
  display: inline-block;
  width: 2vw;
  height: 0.3vw;
  border-style: solid;
  border-width: 0 1px 1px 0;
  border-color: #fff;
  transform: skew(45deg);
}
@media screen and (max-width: 768px) {
  .arrow::after {
    width: 22px;
    height: 4px;
  }
}

.grid_box .card {
  font-weight: 500;
  display: block;
  height: 100%;
}
.grid_box .card .under {
  font-size: 1.3vw;
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .grid_box .card .under {
    font-size: 4.26vw;
  }
}
.grid_box .card .under::after {
  margin: 0 0 0.3vw 0.8vw;
}
@media screen and (max-width: 768px) {
  .grid_box .card .under::after {
    margin: 0 0 1.5% 1vw;
  }
}
@media (hover: hover) {
  .grid_box .card a:hover {
    opacity: 0.6;
  }
  .grid_box .card a:hover .under {
    text-decoration: none;
    transition: all 0.3s ease-out;
  }
}
.grid_box h2 {
  font-size: 3.36vw;
  font-weight: bold;
  line-height: 1;
  margin-bottom: 1.84vw;
  letter-spacing: 0.08em;
  position: relative;
}
@media screen and (max-width: 768px) {
  .grid_box h2 {
    margin-bottom: 5.3vw;
    font-size: 6.9vw;
  }
}
.grid_box h2::before {
  content: "";
  background-size: auto auto;
  background-color: rgba(255, 255, 255, 0);
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgb(255, 255, 255) 3px, rgb(255, 255, 255) 4px);
  width: 4.76vw;
  height: 3.51vw;
  position: absolute;
  top: 0.1vw;
  left: -5.85vw;
}
@media screen and (max-width: 768px) {
  .grid_box h2::before {
    width: 7.5vw;
    height: 6vw;
    top: 0.7vw;
    left: -10.66vw;
  }
}
.grid_box h2 span {
  display: block;
  margin-top: 1.84vw;
  font-size: 1.3vw;
  letter-spacing: 0;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .grid_box h2 span {
    margin-top: 5.3vw;
    font-size: 4.26vw;
  }
}
.grid_box .txt {
  margin-bottom: 1.8vw;
  font-size: 1.17vw;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .grid_box .txt {
    margin-bottom: 2.66vw;
    font-size: 3.7vw;
    line-height: 1.6;
  }
}

.col_wrap {
  grid-template-columns: 1fr 2fr;
  background: url(../img/top/parallax_bg.jpg) no-repeat center/cover fixed;
  padding-bottom: 16.8vw;
}
@media screen and (max-width: 768px) {
  .col_wrap {
    background: none;
    grid-template-columns: 1fr;
    padding-bottom: 26.66vw;
  }
}
.col_wrap .card {
  aspect-ratio: 1/1.2;
}
@media screen and (max-width: 768px) {
  .col_wrap .card {
    aspect-ratio: inherit;
    height: auto;
  }
}
.col_wrap .company {
  background-image: linear-gradient(0deg, rgb(57, 188, 248), rgb(0, 158, 231) 35%, rgb(0, 117, 172) 65%);
  padding: 3.29vw 2.9vw 0 5.85vw;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .col_wrap .company {
    aspect-ratio: inherit;
    padding: 8vw 5.3vw 8vw 10.66vw;
  }
}
.col_wrap .company h2 span {
  color: #C5D5DD;
}
.col_wrap .company .txt {
  margin-bottom: 0.8vw;
}
@media screen and (max-width: 768px) {
  .col_wrap .company .txt {
    margin-bottom: 2.6vw;
  }
}
.col_wrap .company div a {
  display: block;
}
.col_wrap .company div a p {
  display: flex;
  align-items: center;
  background: #000;
  height: 3.66vw;
  padding-left: 1.09vw;
  color: #fff;
  font-size: 1.09vw;
}
@media screen and (max-width: 768px) {
  .col_wrap .company div a p {
    height: 13.3vw;
    padding-left: 5.3vw;
    font-size: 3.46vw;
  }
}
.col_wrap .company div a p::after {
  margin-left: 0.8vw;
}
@media screen and (max-width: 768px) {
  .col_wrap .company div a p::after {
    margin-left: 2vw;
  }
}
.col_wrap .service {
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .col_wrap .service {
    display: block;
  }
}
.col_wrap .service .card {
  position: relative;
}
.col_wrap .service .card h2 {
  width: 100%;
  color: #fff;
  position: absolute;
  top: 3.29vw;
  left: 3.66vw;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card h2 {
    margin: 0 5.3vw 0 10.66vw;
    position: relative;
    top: 0;
    left: 0;
  }
}
.col_wrap .service .card h2::after {
  content: "";
  border-top: 1px solid #9FA6AA;
  width: 27.16vw;
  position: absolute;
  top: 2vw;
  left: 50%;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card h2::after {
    width: 41vw;
    top: 4vw;
    left: 35%;
  }
}
.col_wrap .service .card a {
  display: block;
  padding: 11.5vw 2.9vw 0 3.66vw;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card a {
    padding: 10vw 5.3vw 10vw 10.66vw;
  }
}
.col_wrap .service .card:nth-of-type(1) {
  background: #000;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card:nth-of-type(1) {
    padding: 8vw 0 0;
  }
}
.col_wrap .service .card:nth-of-type(1) a {
  background: url(../img/top/service_bg01.jpg) no-repeat center/cover;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card:nth-of-type(1) a {
    background-size: 100%;
    background-position: center bottom;
  }
}
.col_wrap .service .card:nth-of-type(2) {
  background: #fff;
}
.col_wrap .service .card:nth-of-type(2) a {
  background: url(../img/top/service_bg02.jpg) no-repeat center/cover;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card:nth-of-type(2) a {
    background-size: 100%;
    background-position: center bottom;
  }
}
.col_wrap .service .card:nth-of-type(2) a .arrow::after {
  border-color: #000;
}
.col_wrap .service .card h3 {
  margin-bottom: 1.46vw;
  font-size: 2.19vw;
}
@media screen and (max-width: 768px) {
  .col_wrap .service .card h3 {
    font-size: 5.3vw;
  }
}

.recruit {
  grid-template-rows: 43.9vw;
}
@media screen and (max-width: 768px) {
  .recruit {
    grid-template-rows: auto auto;
  }
  .recruit.grid_box.col2 {
    display: block;
  }
  .recruit .card {
    aspect-ratio: 3/1.3;
  }
}
.recruit > .card {
  background: url(../img/top/recruit_bg01.jpg) no-repeat center/100%;
}
@media screen and (max-width: 768px) {
  .recruit > .card {
    aspect-ratio: inherit;
    background-position: right top;
    background-size: cover;
    height: auto;
    padding: 8vw 5.3vw 8vw 0;
  }
}
.recruit > .card .txt_wrap {
  padding: 4.17vw 0 0 5.85vw;
}
@media screen and (max-width: 768px) {
  .recruit > .card .txt_wrap {
    padding: 0 0 0 10.66vw;
  }
}
.recruit > .card h2::before {
  background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgb(0, 0, 0) 3px, rgb(0, 0, 0) 4px);
}
.recruit > .card .btn_wrap {
  margin-right: 0.95vw;
}
@media screen and (max-width: 768px) {
  .recruit > .card .btn_wrap {
    margin: 0;
  }
}
.recruit > .card .btn_wrap a {
  display: block;
  background: url(../img/top/recruit_bg02.jpg) no-repeat left bottom/100%;
  padding: 0 0 19.39vw 5.85vw;
}
@media screen and (max-width: 768px) {
  .recruit > .card .btn_wrap a {
    padding: 0 0 35vw 10.66vw;
  }
}
.recruit > .card .btn_wrap p {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  width: 26.57vw;
  height: 3.66vw;
  padding: 0 !important;
  font-size: 1.09vw;
  color: #fff;
  text-align: center;
  position: relative;
}
@media screen and (max-width: 768px) {
  .recruit > .card .btn_wrap p {
    width: 100%;
    height: 13.3vw;
    padding-left: 5.3vw;
    font-size: 3.46vw;
  }
}
.recruit > .card .btn_wrap p::after {
  position: absolute;
  transform: skew(45deg) translateY(-50%);
  top: 50%;
  right: 1vw;
}
@media screen and (max-width: 768px) {
  .recruit > .card .btn_wrap p::after {
    right: 3vw;
  }
}
.recruit .row2 {
  grid-template-rows: repeat(2, 1fr);
  color: #fff;
}
.recruit .row2 a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.recruit .row2 h3 {
  background: rgba(0, 158, 231, 0.75);
  width: 16.1vw;
  aspect-ratio: 1/1;
  padding: 2.56vw 1.83vw;
  font-size: 2.34vw;
  font-weight: bold;
  position: relative;
}
@media screen and (max-width: 768px) {
  .recruit .row2 h3 {
    width: 33.1vw;
    padding: 4vw;
    font-size: 4.8vw;
  }
}
.recruit .row2 h3::after {
  position: absolute;
  transform: skew(45deg) translateX(-50%);
  left: 50%;
  bottom: 4vw;
}
.recruit .row2 h3 span {
  display: block;
  margin-top: 0.87px;
  font-size: 1.31vw;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .recruit .row2 h3 span {
    font-size: 3.46vw;
  }
}
.recruit .row2 .card:nth-of-type(1) a {
  background: url(../img/top/interview.jpg) no-repeat center/cover;
}
.recruit .row2 .card:nth-of-type(2) a {
  background: url(../img/top/job.jpg) no-repeat center/cover;
}
/*# sourceMappingURL=top.css.map */