@charset "utf-8";


/* ------- MAIN VISIAL ---------------------------------------------- */
.top-main-visial{
  background: #0E94CC;
  background: linear-gradient(202deg, rgba(14, 148, 204, 1) 0%, rgba(158, 214, 237, 1) 100%);
  position: relative;
}
.top-main-visial .catch{
  position: absolute;
}
.top-main-visial .catch img,
.top-main-visial .company img{
  height: auto;
  width: 100%;
}
#main-visial .swiper-slide{
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100% !important;
}
@media print, screen and (min-width:781px) {
  .top-main-visial{
    width: 100%;
  }
  .top-main-visial .catch{
    width: 92.606%;
    max-width: 1600px;
    left: calc(50% + 1.83%);
    top: 50%;
    transform: translate(-50%,-50%);
  }
  .top-main-visial .company{
    width: 37.042%;
    max-width: 506px;
    position: absolute;
    right: 13.909%;
    top: 77.6836%;
    z-index: 3;
  }
  
  #main-visial{
    margin: 0 auto;
    width: 100%;
    position: relative;
    z-index: 2;
    overflow: hidden;
    opacity: 0;
  }
  #main-visial .swiper-slide{
    height: calc(100vh - 60px) !important;
  }
  .top-main-visial .image-main1{
    background-image: url("../img/img_main01.png");
  }
  .top-main-visial .image-main2{
    background-image: url("../img/img_main02.png");
  }
  .top-main-visial .image-main3{
    background-image: url("../img/img_main03.png");
  }
  .top-main-visial .image-main4{
    background-image: url("../img/img_main04.png");
  }
  .top-main-visial .image-main5{
    background-image: url("../img/img_main05.png");
  }
  .top-main-visial .image-main6{
    background-image: url("../img/img_main06.png");
  }
  .top-main-visial .image-main7{
    background-image: url("../img/img_main07.png");
  }
}
@media screen and (max-width: 780px) {
  .top-main-visial{
    width: 100%;
  }
  .top-main-visial .catch{
    width: 88.2051%;
    max-width: 688px;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 3;
  }
  .top-main-visial .company{
    width: 40.2564%;
    max-width: 314px;
    position: absolute;
    right: 10%;
    top: calc(50% + 18.1282%);
    transform: translateY(-50%);
    z-index: 3;
  }
  #main-visial{
    margin: 0 auto;
    width: 100%;
    position: relative;
    z-index: 2;
    overflow: hidden;
    opacity: 0;
  }
  #main-visial .swiper-slide{
    padding-bottom: 96.1538%;
  }
  .top-main-visial .image-main1{
    background-image: url("../img/img_main01_sp.png");
  }
  .top-main-visial .image-main2{
    background-image: url("../img/img_main02_sp.png");
  }
  .top-main-visial .image-main3{
    background-image: url("../img/img_main03_sp.png");
  }
  .top-main-visial .image-main4{
    background-image: url("../img/img_main04_sp.png");
  }
  .top-main-visial .image-main5{
    background-image: url("../img/img_main05_sp.png");
  }
  .top-main-visial .image-main6{
    background-image: url("../img/img_main06_sp.png");
  }
  .top-main-visial .image-main7{
    background-image: url("../img/img_main07_sp.png");
  }
}



/* ------- MESSAGE ---------------------------------------------- */
#message-sec{
  background: #245AA5;
  background: linear-gradient(40deg, rgba(36, 90, 165, 1) 0%, rgba(28, 123, 255, 1) 100%);
  color: #FFF;
  overflow: hidden;
  position: relative;
}
.message-inner h2{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.46;
}
.message-inner .message > p{
  font-weight: 500;
  line-height: 2.916;
}
.message-inner .message > .catch{
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1.166;
}
#message-sec .airplane1,
#message-sec .airplane2,
#message-sec .airplane3{
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
}
#message-sec .airplane1{
  background-image: url("../img/airplane1.svg");
  animation: floating-y 3s ease-in-out infinite alternate-reverse;
}
#message-sec .airplane2{
  background-image: url("../img/airplane2.svg");
  animation: floating-y 4s ease-in-out infinite alternate-reverse;
}
#message-sec .airplane3{
  background-image: url("../img/airplane3.svg");
  animation: floating-y 6s ease-in-out infinite alternate-reverse;
}
@keyframes floating-y {
  0% {
    transform: translateY(-5%);
  }
  100% {
    transform: translateY(5%);
  }
}
@media print, screen and (min-width:781px) {
  #message-sec{
    padding: 175px 40px 235px;
  }
  #message-sec .airplane1{
    right: 0;
    top: 5.774728%;
    padding-bottom: 16.1784387%;
    width: 23.499%;
  }
  #message-sec .airplane2{
    left: -1.830161%;
    top: 45.626072%;
    padding-bottom: 18.3015839%;
    width: 26.5739%;
  }
  #message-sec .airplane3{
    right: -8.2723279%;
    top: 55.06%;
    padding-bottom: 27.9648568%;
    width: 40.62957%;
  }
  .message-inner{
    display: flex;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    max-width: 1086px;
  }
  .message-inner h2{
    font-size:  min(4.6296vw,5.0rem);
    width: 29.926%;
  }
  .message-inner .message{
    width: calc(100% - 29.926%);
  }
  .message-inner .message > p{
    font-size: min(2.222vw,2.4rem);
  }
  .message-inner .message > .catch{
    font-size: min(11.111vw,12.0rem);
    margin-top: 60px;
  }
}
@media screen and (max-width: 780px) {
  #message-sec{
    padding: 125px 5% 140px 10%;
  }
  #message-sec .airplane1{
    right: -3.0769%;
    top: 2.9545%;
    padding-bottom: 28.33328%;
    width: 41.1538%;
  }
  #message-sec .airplane2{
    left: -8.2051%;
    bottom: -2.2727%;
    padding-bottom: 32.0512%;
    width: 46.5384%;
  }
  #message-sec .airplane3{
    right: -22.5641%;
    top: 64.7348%;
    padding-bottom: 48.97433%;
    width: 71.15384%;
  }
  .message-inner h2{
    font-size:  min(7.69vw,6.0rem);
  }
  .message-inner .message{
    margin-top: 30px;
  }
  .message-inner .message > p{
    font-size: min(3.846vw,3.0rem);
    line-height: 2.33;
  }
  .message-inner .message > .catch{
    font-size: min(15.38vw,12.0rem);
    margin-top: 80px;
  }
}




@keyframes floating-y2 {
  0% {
    transform: translateY(-10%);
  }
  100% {
    transform: translateY(10%);
  }
}

/* ------- SPECIAL ---------------------------------------------- */
#special-sec{
  overflow: hidden;
}
#special-sec:before{
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  opacity: .46;
}
#special-sec h2{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.46;
  display: flex;
  align-items: center;
  justify-content: center;
}
#special-sec h2:before{
  background-image: url("../img/ic_special.svg");
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  display: block;
  animation: floating-y2 3s ease-in-out infinite alternate-reverse;
}

.special-contents .detail .ttl > p{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.428;
}
.special-contents .detail .ttl > h3{
  font-weight: 700;
}

.special-contents .image{
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.special-contents1 .image{
  background-image: url("../img/img_special1.jpg");
}
.special-contents2 .image{
  background-image: url("../img/img_special2.jpg");
}
.special-contents3 .image{
  background-image: url("../img/img_special3.jpg");
}
.special-contents .detail > p{
  font-weight: 500;
  line-height: 1.57;
}
.special-contents .detail .ttl > p{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.46;
}
.special-contents .detail .ttl > h3{
  font-weight: 700;
  line-height: 1.2;
}
@media print, screen and (min-width:781px) {
  #special-sec{
    padding-top: 115px;
    position: relative;
    z-index: 0;
  }
  #special-sec:before{
    background-image: url("../img/bg_special1.png");
    padding-bottom: 70.790629%;
    width: 100%;
    left: 0;
    top: 0;
  }
  #special-sec h2{
    font-size:  min(4.62962vw,5.0rem);
  }
  #special-sec h2:before{
    margin-right: 20px;
    height: 37px;
    width: 53px;
  }
  .special-contents{
    display: flex;
  }
  .special-contents1{
    align-items: center;
    margin-bottom: 105px;
    margin-top: 130px;
  }
  .special-contents2{
    align-items: flex-start;
    flex-direction: row-reverse;
  }
  .special-contents3{
    align-items: flex-end;
    position: relative;
    padding-bottom: 265px;
  }
  .special-contents3:before{
    background-image: url("../img/bg_special2.png");
    background-size: cover;
    content: "";
    display: block;
    padding-bottom: 56.039112%;
    width: 90%;
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
    opacity: .46;
  }
  
  .special-contents1 .image{
    padding-bottom: 34.48018%;
    width: 56.14934%;
  }
  .special-contents2 .image{
    padding-bottom: 36.53%;
    width: 50%;
  }
  .special-contents3 .image{
    padding-bottom: 36.5299%;
    width: 41.874%;
  }
  
  .special-contents1 .detail,
  .special-contents3 .detail{
    margin-left: 5%;
  }
  .special-contents2 .detail{
    margin-right: 5%;
  }
  .special-contents .detail .ttl > p{
    font-size: min(1.29vw,1.4rem);
    margin-bottom: 20px;
  }
  .special-contents .detail .ttl > h3{
    font-size: min(5.74vw,6.2rem);
  }
  .special-contents1 .detail .ttl > h3{
    font-size: min(7.685vw,8.3rem);
  }
  .special-contents .detail > p{
    font-size: min(1.29vw,1.4rem);
    margin-top: 25px;
    margin-bottom: 25px;
  }
}
@media screen and (max-width: 780px) {
  #special-sec{
    padding-top: 90px;
    padding-bottom: 110px;
    position: relative;
    z-index: 0;
  }
  #special-sec:before{
    background-image: url("../img/bg_special1_sp.png");
    padding-bottom: 153.7179%;
    width: 100%;
    left: 0;
    top: 0;
  }
  #special-sec:after{
    display: none;
  }
  #special-sec h2{
    font-size:  min(7.6923vw,6.0rem);
  }
  #special-sec h2:before{
    margin-right: 10px;
    height: 26px;
    width: 39px;
  }
  .special-contents{
    margin-top: 95px;
  }
  .special-contents1{
    padding-right: 10%;
    margin-top: 85px;
  }
  .special-contents2{
    padding-left: 10%;
  }
  .special-contents3{
    padding-right: 10%;
    position: relative;
  }
  .special-contents3:before{
    background-image: url("../img/bg_special2_sp.png");
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    display: block;
    padding-bottom: 153.8461%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: .46;
  }
  
  .special-contents .image{
    padding-bottom: 67.094%;
  }
  
  .special-contents .detail{
    margin-top: 50px;
  }
  .special-contents1 .detail,
  .special-contents3 .detail{
    margin-left: 10%;
  }
  .special-contents2 .detail{
    margin-right: 10%;
  }
  .special-contents .detail .ttl > p{
    font-size: min(3.0769vw,2.4rem);
    margin-bottom: 20px;
  }
  .special-contents .detail .ttl > h3{
    font-size: min(13.9743vw,10.9rem);
  }
  .special-contents .detail > p{
    font-size: min(3.0769vw,2.4rem);
    margin-top: 25px;
    margin-bottom: 25px;
  }
}



/* ------- CAREER ---------------------------------------------- */
#career-sec {
  position: relative;
  z-index: 0;
}
#career-sec h2{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  line-height: 1.44;
  display: flex;
  align-items: center;
}
#career-sec h2:after{
  background-image: url("../img/ic_career.svg");
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  display: block;
  animation: floating-y2 3s ease-in-out infinite alternate-reverse;
}
#career-sec .bg{
  background-color: #DEEEFE;
  z-index: -1;
}
.career-contents .ttl > p{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.5;
}
.career-contents .ttl > h3{
  font-weight: 700;
  line-height: 1.76;
}
.career-contents .image{
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.career-contents1 .image{
  background-image: url("../img/img_career1.jpg");
}
.career-contents2 .image{
  background-image: url("../img/img_career2.jpg");
}
.career-contents .detail > p{
  color: #707070;
  font-weight: 500;
  line-height: 1.57;
}

#work-list{
  overflow: hidden;
}
.work-list-item {
  position: relative;
}
.work-list-item .image{
  background-color: #BFBDBD;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.work-list-item1 .image{
  background-image: url("../img/img_work1.jpg");
}
.work-list-item2 .image{
  background-image: url("../img/img_work2.jpg");
}
.work-list-item3 .image{
  background-image: url("../img/img_work3.jpg");
}
.work-list-item4 .image{
  background-image: url("../img/img_work4.jpg");
}
.work-list-item5 .image{
  background-image: url("../img/img_work5.jpg");
}
.work-list-item6 .image{
  background-image: url("../img/img_work6.jpg");
}

.work-list-item .detail{
  background: #245AA5;
  background: linear-gradient(40deg, rgba(36, 90, 165, 1) 0%, rgba(28, 123, 255, 1) 100%);
  color: #FFF;
  display: flex;
  flex-direction: column;
  margin-left: 20px;
  margin-right: -20px;
  margin-top: -72%;
  position: relative;
}
.work-list-item .detail h4{
  align-self: center;
  font-weight: 700;
  font-style: italic;
  letter-spacing: -.03em;
  line-height: 1.34;
  white-space: nowrap;
  min-height: 7em;
  transform: rotate(-5deg);
}
.work-list-item .detail p{
  font-weight: 700;
  line-height: 1.5;
}


.swiper-button-prev:after,
.swiper-button-next:after{
  background-size: cover;
  content: "";
  display: block;
}
.swiper-button-prev:after{
  background-image: url("../common/img/btn_prev.svg")
}
.swiper-button-next:after{
  background-image: url("../common/img/btn_next.svg")
}
@media print, screen and (min-width:781px) {
  #career-sec{
    padding-bottom: 360px;
  }
  #career-sec .bg{
    position: absolute;
    left: 10%;
    right: 0;
    bottom: 0;
    top: 0;
  }
  #career-sec h2{
    font-size: min(10.98vw,15.0rem);
    margin-top: -.8em;
  }
  #career-sec h2:after{
    margin-left: 30px;
    height: 63px;
    width: 91px;
  }
  .career-inner{
    margin-left: auto;
    margin-right: auto;
    padding-top: 1px;
    width: 80%;
  }
  .career-contents-wrap{
    padding: 0 8.333%;
    display: flex;
    justify-content: space-between;
  }
  .career-contents{
    margin-top: 100px;
    width: 44.444%;
  }
  .career-contents .ttl > p{
    font-size: min(0.878vw,1.2rem);
  }
  .career-contents .ttl > h3{
    font-size: min(2.489vw,3.4rem);
  }
  .career-contents .image{
    padding-bottom: 67%;
    margin-top: 20px;
  }
  .career-contents .detail{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 20px;
    position: relative;
  }
  .career-contents .detail > p{
    font-size: 1.4rem;
  }
  .career-contents .detail .btn{
    font-size: 1.2rem;
    white-space: nowrap;
    padding: 15px 10px;
    margin-left: 10px;
    width: 110px;
  }
  
  #work-list{
    margin-top: 130px;
  }
  
  .work-list-item .image{
    padding-bottom: 154.166%;
  }
  
  .work-list-item .detail{
    padding: 50px 30px 25px;
  }
  .work-list-item .detail h4{
    font-size: min(1.39vw,1.9rem);
  }
  .work-list-item .detail p{
    font-size: min(0.878vw,1.2rem);
    margin-top: 35px;
  }
  
  
  
  .swiper-button-prev, .swiper-button-next {
    height: 70px;
    width: 70px;
  }
  .swiper-button-prev:after, .swiper-button-next:after {
    height: 70px;
    width: 70px;
  }
  .swiper-button-prev{
    left: 50px;
  }
  .swiper-button-next{
    right: 50px;
  }
}
@media screen and (max-width: 780px) {
  #career-sec{
    padding-bottom: 215px;
  }
  #career-sec .bg{
    position: absolute;
    left: 5%;
    right: 0;
    bottom: 0;
    top: 0;
  }
  #career-sec h2{
    font-size: min(19.23vw,15.0rem);
    margin-top: -.8em;
  }
  #career-sec h2:after{
    margin-left: 15px;
    height: 32px;
    width: 46px;
  }
  .career-inner{
    margin-left: auto;
    margin-right: auto;
    padding-top: 1px;
    width: 90%;
  }
  .career-contents-wrap{
    margin-left: 10%;
    margin-right: 5%;
  }
  .career-contents{
    margin-top: 60px;
  }
  .career-contents .ttl > p{
    font-size: min(3.0769vw,2.4rem);
  }
  .career-contents .ttl > h3{
    font-size: min(6.41vw,5.0rem);
  }
  .career-contents .image{
    padding-bottom: 62.5%;
    margin-top: 20px;
  }
  .career-contents .detail{
    margin-top: 20px;
    position: relative;
  }
  .career-contents .detail > p{
    font-size: 1.2rem;
  }
  .career-contents .detail .btn{
    padding: 12px 10px;
    margin-top: 15px;
    width: 120px;
  }
  
  #work-list{
    margin-top: 90px;
  }
  
  .work-list-item .image{
    padding-bottom: 154.166%;
  }
  
  .work-list-item .detail{
    padding: 50px 10% 25px;
  }
  .work-list-item .detail h4{
    font-size: min(3.487vw,3.5rem);
  }
  .work-list-item .detail p{
    font-size: min(2.82vw,2.2rem);
    margin-top: 35px;
  }
  
  
  .swiper-button-prev, .swiper-button-next {
    height: 50px;
    width: 50px;
  }
  .swiper-button-prev:after, .swiper-button-next:after {
    height: 50px;
    width: 50px;
  }
  .swiper-button-prev{
    left: 5%;
  }
  .swiper-button-next{
    right: 5%;
  }
}



/* ------- INFORMATION ---------------------------------------------- */
#information-sec > .image{
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 2;
}
#information-sec h2{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: italic;
  line-height: 1;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 3;
}
#information-sec h2:before{
  background-image: url("../img/ic_information.svg");
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  display: block;
  animation: floating-y2 3s ease-in-out infinite alternate-reverse;
}
.information-contents .ttl > p{
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  line-height: 1.5;
}
.information-contents .ttl > h3{
  font-weight: 700;
  line-height: 1.76;
}
.information-contents .image{
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-bottom: 67%; 
}
.information-contents1 .image{
  background-image: url("../img/img_information1.jpg");
}
.information-contents2 .image{
  background-image: url("../img/img_information2.jpg");
}
.information-contents .detail > p{
  color: #707070;
  font-weight: 500;
  line-height: 1.57;
}
@media print, screen and (min-width:781px) {
  #information-sec{
    background: url("../img/bg_information.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    padding-top: 1px;
    padding-bottom: 160px;
  }
  #information-sec > .image{
    background-image: url("../img/img_information.jpg");
    padding-bottom: 36.674811%;
    width: 90%;
    margin-top: -160px;
  }
  #information-sec h2{
    font-size: min(10.98vw,15.0rem);
    justify-content: flex-end;
    margin-top: -.15em;
  }
  #information-sec h2:before{
    margin-left: 30px;
    height: 63px;
    width: 91px;
  }
  
  .information-inner{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 95px auto 0;
    width: 65.885%;
  }
  .information-contents{
    width: 44.2967%;
  }
  .information-contents .ttl > p{
    font-size: min(0.878vw,1.2rem);
  }
  .information-contents .ttl > h3{
    font-size: min(2.489vw,3.4rem);
    margin-top: 5px;
  }
  .information-contents .image{
    margin-top: 20px;
  }
  .information-contents .detail{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: 20px;
    position: relative;
  }
  .information-contents .detail > p{
    font-size: 1.4rem;
  }
  .information-contents .detail .btn{
    font-size: 1.2rem;
    white-space: nowrap;
    padding: 15px 10px;
    margin-left: 10px;
    width: 110px;
  }
}
@media screen and (max-width: 780px) {
  #information-sec{
    background: url("../img/bg_information_sp.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    padding-top: 1px;
    padding-bottom: 120px;
  }
  #information-sec > .image{
    background-image: url("../img/img_information.jpg");
    padding-bottom: 89.7435%;
    width: 95%;
    margin-top: -125px;
  }
  #information-sec h2{
    font-size: min(19.23vw,15.0rem);
    margin: 50px 5% 0;
    justify-content: center;
    position: relative;
  }
  #information-sec h2:before{
    position: absolute;
    right: 0;
    top: 0;
    margin-left: 30px;
    height: 18px;
    width: 26px;
  }
  
  .information-inner{
    margin-left: 10%;
    margin-right: 10%;
  }
  .information-contents{
    margin-top: 60px;
  }
  .information-contents .ttl > p{
    font-size: min(3.0769vw,2.4rem);
  }
  .information-contents .ttl > h3{
    font-size: min(6.41vw,5.0rem);
  }
  .information-contents .image{
    margin-top: 20px;
  }
  .information-contents .detail{
    margin-top: 20px;
    position: relative;
  }
  .information-contents .detail > p{
    font-size: 1.2rem;
  }
  .information-contents .detail .btn{
    padding: 12px 10px;
    margin-top: 15px;
    width: 120px;
  }
}
