header {
  position: relative;
  width: 100%;
  height: 100vh; /* 画面の高さ */
  overflow: hidden;
}

.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px;
  z-index: 10; /* スライダーより前面にする */
  display: flex;
  justify-content: space-between;
  color: #fff; /* 背景が画像の場合、文字色は白などが見やすい */
}

header ul.slider{
  width: 100%;
  height: 100vh;

}
header ul.slider li{
  width: 100%;
  height: 100vh;
  object-fit: cover; /* 画像が歪まないように全体を覆う */
  background-position: center top;
  background-size: cover;
}

header .copy{
  position: absolute;
  font-size:9rem;
  color: #fff;
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
  font-weight: normal;
  text-shadow:0 0 3px rgba(0, 0, 0, 0.5),0 0 3px rgba(0, 0, 0, 0.5),0 0 3px rgba(0, 0, 0, 0.5),0 0 3px rgba(0, 0, 0, 0.5);  
  font-family: lato-black;
  font-weight: 900;
}
header .copy span{
  font-size: 2.8rem;
  display: block;
}

h2{
  font-size:5.0rem;
  color: #333;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 20px;
}
h2 span{
  font-family: "Lato", sans-serif;
  font-weight: 300;
  letter-spacing: 0.05em;  
  font-size:3.0rem;
  font-weight: bold;
  display: block;
  margin: 0 auto;
  color: #1146bb;
}



.news{
  position: relative;
  top: -120px;
  width: 80%;
  margin: 0 auto;
  background-color: rgba(0, 45, 139,.8);
  padding: 120px 80px;
}
.news h2{
  color: #fff;
  margin-right: 50px;
  width: 20%;
}
.news h2 span{
  color: #c9c9c9;
}
.news .flex{
  display: flex;
}
.news .flex ul{
  display: flex;
  width: 80%;
}
.news .flex ul li{
  width: 33%;
  margin-right: 30px;  
}
.news .flex ul li:last-child{
  margin-right: 0;
}

.news .flex ul li a{
  color: #fff;
  display: block;

}
.news .flex ul li img{
  width: 100%;
  display: block;
}
.news .flex ul li a span.date{
  display: block;
  color: #c9c9c9;
  font-size: 1.4rem;
}
.news .link{
  text-align: right;
  margin-top: 20px;
}
.news .link a {
  color: #fff;
  border-bottom: 1px solid #fff;
  font-size: 1.4rem;
}
.business{
  padding: 160px 0 280px 0;
}
.business .flex{
  display: flex;
}
.business .flex .img{
  width: 57%;
  position: relative;
  margin-right: 3%;
}
.business .flex .img .photo01{
  position: absolute;
  left: -10%;
  top: -30%;
  display: block;
}
.business .flex .img .photo02{
  position: absolute;
  left: 10%;
  top: 30%;
}
.business .flex .text_wrap{
  width: 40%;
}

.business .flex .text_wrap .btn{
  margin-top: 50px;
}
.system{
  background-image: url(../image/bg.jpg);
  background-size: cover;
  width: 100%;
  padding: 120px 0;
}
.system .img .photo01 img{
  margin: 0  0 0 auto;
  display: block;
}
.system .text_wrap{
  margin-top: -80px;
}
.system .text_wrap .btn{
  margin-top: 80px;
}

.company{
  background: #001848;
  padding:80px 0;
}
.company .img{
  width: 90%;
  margin: 30px auto;
}
.company .text_wrap{
  color: #fff;
}
.company .text_wrap .flex{
  display: flex;
  align-items: center;
}

.company .text_wrap .flex h2{
  width: 30%;
  color: #fff;
}
.company .text_wrap .flex h2 span{
  color: #8497fc;
}
.company .text_wrap .btn{
  text-align: right;
  margin: 80px 0 40px 0;
}
.company .text_wrap .btn a{
  color: #fff;
  border: 1px solid #fff;
}
.recruit{
  padding: 160px 80px;
}
.recruit h2{
  text-align: left;
}
.recruit .flex{
  display: flex;
  align-items: flex-end;
}
.recruit .flex .text_wrap{
  background-color: rgba(247, 247, 247, .7);
  padding: 100px;
  position: relative;
  right: 10%;
  bottom: -50px;
  box-sizing: border-box;
  width: 40%;
}
.recruit .flex .text_wrap .btn{
  margin: 50px auto 0 0;
}
  @media screen and (max-width: 1800px){
    .news h2{
      font-size: 2vw;
      margin-right: 2%;
      width: 18%;
    }
    .news h2 span{
      font-size: 3vw;
    }
    .news .flex ul{
      width: 80%;
    }
    .news .flex ul li{
      width: 32%;
    }
    .recruit{
      padding: 80px 40px;
    }
    .recruit .flex .text_wrap{
      width: 50%;
      padding: 70px;
    }
  }
  @media screen and (max-width: 1300px){
    .recruit{
      padding: 80px 40px;
      margin-bottom: 50px;
    }
    .recruit .flex .text_wrap{
      width: 100%;
      padding: 50px;
      bottom: -80px;
    }
    .recruit .flex{
      align-items: flex-start;
    }
  }

  @media screen and (max-width: 1000px){

    header .copy{
      font-size: 5rem;
    }
    header .copy span{
      font-size: 2.0rem;
    }
    header{
      height: 70vw;
    }
    header ul.slider{
      width: 100%;
      height: 70vw;
    }
    header ul.slider li{
      width: 100%;
      height: 70vw;
      object-fit: cover; /* 画像が歪まないように全体を覆う */
    }
    h2{
      font-size:6vw;
    }
    h2 span{
      font-size:5vw;
    }    
    .btn a{
      padding: 10px 60px;
    }
    .news{
      padding: 60px 40px;
    }
    .business{
      padding: 60px 0;
    }
    .business .flex{
      display: block;
      padding-right: 20px;
      padding-left: 20px;
    }
    .business .flex .img{
      width: 100%;
      position: static;
      display: flex;
    }
    .business .flex .text_wrap{
      width: 100%;
    }
    .business .flex .img .photo01{
      top: 0;
      position: static;
      margin-top: -40px;
      margin-right: -50px;
    }
    .business .flex .img .photo02{
      top: 100px;
      position: static;
    }
    .system{
      background-position: center top;
      padding: 80px 0;
    }
    .system .text_wrap{
      margin-top: 20px;
    }
    .system .text_wrap .btn{
      margin-top: 50px;
    }
    .company .text_wrap .flex{
      display: block;
    }
    .company .text_wrap .flex h2{
      width: 100%;
    }
    .info .tel{
      font-size: 6vw;
    }
  }

  @media screen and (max-width: 800px){
    h2{
      font-size:4vw;
    }
    h2 span{
      font-size:6vw;
    } 
    .news{
      padding: 30px 30px;
      top: -80px;
    }
    .news .flex{
      display: block;
    }
    .news .flex ul{
      width: 100%;
    }
    .news .flex ul li{
      width: 33%;
    }
    .news .flex ul li a{
      margin-right: 10px;
    }
    .news h2{
      font-size: 4vw;
    }
    .news h2 span{
      font-size: 6vw;
    }
    .news h2{
      width: 100%;
    }
    .recruit .flex{
      display: block;
    }
    .recruit .flex .text_wrap{
      position: static;
      width: 80%;
      margin-top: -50px;
      margin-left: auto;
      margin-right: -20px;
    }
    .info{
      padding: 75px 0;
    }
    .info .flex{
      display: block;
    }
    .info .flex .mail{
      width: 100%;
    }    
    .info .flex .mail .btn{
      text-align: center;
    }
    .info .text{
      margin-top: 30px;
    }
    .info h2{
      text-align: center;
      font-size: 4vw;
    }
    .info h2 span{
      font-size:6vw;
    }

  }

  @media screen and (max-width: 600px){
    header .copy{
      font-size: 5vw;
      padding: 20px;
      box-sizing: border-box;
    }
    header .copy span{
      font-size: 3vw
    }
    header .logo img{
      width: 30vw;
    }    
    .news{
      padding: 30px 30px;
      top: -50px;
    }  
    .recruit .flex .text_wrap{
      width: 100%;
      margin-top: -50px;
      margin-left: auto;
      margin-right: -20px;
    }  
    .recruit{
      padding: 60px 20px;
    }    
  }

  @media screen and (max-width: 400px){
    header .copy{
      font-size: 6vw;
    }
    header .copy span{
      font-size: 3.8vw
    }
    .news .flex ul li a{
      font-size: 1.4rem;
    }
  }

}