@charset "UTF-8";

/*----------------------------------------------------
	☆PC
----------------------------------------------------*/

/*--- mainTitle --*/
#mainTitle .title .en::before{
    content: "NEW GRADUATES";
    white-space: nowrap;
}
#mainTitle .title::before{
    background: url("../images/information/icon_mainTitle.png") center center / contain no-repeat;
}
#mainTitle .deco01{
    width: min(204px,18vw);
    left: 20px;
    top: 15%;
}

#career #mainTitle .title .en::before{
    content: "CAREERS";
}
#career #mainTitle .title::before{
    background: url("../images/career/icon_mainTitle.png") center center / contain no-repeat;
}


/*--- message --*/

#contents .message .image{
    background: url("../images/information/img_01.jpg") center top / cover no-repeat;
    width: calc(100% - 80px);
    max-width: 1320px;
    height: 460px;
    border-radius: 30px;
    margin: 0 auto max(-60px,-7vw);
}
#contents .message .info{
    max-width: 960px;
    position: relative;
    z-index: 1;
    margin-left: auto;
    margin-right: auto;
    width: 80%;
}

#contents .message .info .deco01{
    width: 184px;
    left: -60px;
    top: -60px;
}

/*--- outline --*/
#contents .outline .deco01{
    width: 310px;
    left: -146px;
    top: -85px;
}
#contents .outline .deco02{
    width: 420px;
    right: -220px;
    top: -245px;
}


/*--- flow --*/
#contents .flow .slider{
    position: relative;
    padding-bottom: 180px;
}


#contents .flow .slider .belt{
    width: 100%;
    height: 106px;
    z-index: -1;
    position: absolute;
    left: 0;
    bottom: 110px;
    animation: moveBelt 1.5s linear infinite;
    background: url("../images/common/bg_conveyor_a.png") center calc(100% - 31px) / 78px repeat-x;
}
#contents .flow .slider .belt::after{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    height: 31px;
    width: 100%;
    background: url("../images/common/bg_conveyor_b.png") center top / 78px repeat-x;
}
#career #contents .flow .slider .belt::after{
    background: url("../images/common/bg_conveyor_d.png") center top / 78px repeat-x;
}


#contents .flow .swiper-button-next,
#contents .flow .swiper-button-prev{
    width: 60px;
    height: 53px;
    position: absolute;
    margin: 0;
    display: block;
    left: 50%;
    top: auto;
    bottom: 0;
    right: auto;
}

#contents .flow ul{
    padding-top: 50px;
}
#contents .flow ul li{
    width: 300px;
    padding: 5px;
    border: 2px solid #000;
    border-radius: 30px;
    background: #66dd9f;
    position: relative;
}
#contents .flow ul li .num{
    position: absolute;
    border-radius: 100px;
    width: 80px;
    height: 80px;
    padding: 3px;
    background: #b3b3b3;
    border: 2px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 32px;
    left: 50%;
    top: 0;
    transform: translate(-50%,-50%);
}
#contents .flow ul li .num span{
    z-index: 1;
    width: 100%;
    height: 100%;
    border: 2px solid #000;
    background: #ffbb33;
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    padding: 0 0 5px 0;
}
#contents .flow ul li .inner{
    border: 2px solid #000;
    background: #fff;
    border-radius: 25px;
    padding: 50px 30px 30px;
}
#contents .flow ul li .title{
    text-align: center;
    color: #e9651f;
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: 0.01em;
    margin-bottom: 8px;
}
#contents .flow ul li .btn01{
    margin-top: 20px;
}

#contents .flow .swiper-button-next{
    transform: translate(50%,0);
}
#contents .flow .swiper-button-prev{
    transform: translate(-150%,0);
}

#contents .flow .swiper-button-next::before,
#contents .flow .swiper-button-next::after,
#contents .flow .swiper-button-prev::before,
#contents .flow .swiper-button-prev::after{
    content: "";
    display: block;
    width: 100%;
    aspect-ratio: 60 / 46;
    position: absolute;
    left: 0;
}
#contents .flow .swiper-button-prev::before{
    background: url("../images/information/btn_l_02.png") center bottom / contain no-repeat;
    bottom: 0;
}
#contents .flow .swiper-button-prev::after{
    background: url("../images/information/btn_l_01.png") center top / contain no-repeat;
    top: 0;
}
#contents .flow .swiper-button-next::before{
    background: url("../images/information/btn_r_02.png") center bottom / contain no-repeat;
    bottom: 0;
}
#contents .flow .swiper-button-next::after{
    background: url("../images/information/btn_r_01.png") center top / contain no-repeat;
    top: 0;
}

#contents .flow .swiper-button-next::after,
#contents .flow .swiper-button-prev::after {
    transition: transform 0.1s ease;
}

#contents .flow .swiper-button-next:active::after,
#contents .flow .swiper-button-prev:active::after {
    transform: translateY(3px);
}

#contents .flow .swiper-pagination{
    bottom: 70px;
}

#contents .flow .deco01{
    width: 165px;
    left: 20%;
    bottom: 150px;
    z-index: -2;
    animation: hop 4s ease-in-out infinite;
}

#contents .flow .deco02{
    width: 240px;
    left: 20px;
    top: 0;
}

#contents .flow ul li.seven .num,
#contents .flow ul li .num.noBg{
    background: none;
    border: none;
    width: 90px;
    height: 90px;
}
#contents .flow ul li.seven .inner{
    background: url("../images/information/bg_nainai.png") center center / cover no-repeat #fff;
    padding: 0;
}
#contents .flow ul li.seven .inner img{
    display: block;
    position: relative;
    z-index: 1;
    width: 76%;
    margin: 35px auto 0;
}

#contents .flow ul li.seven .inner .num img{
    width: 100%;
    margin: 0;
}

#contents .flow ul li.seven .inner .shine{
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    overflow: hidden;
}
#contents .flow ul li.seven .inner .shine::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.4),
    transparent
  );
  transition: left 0.6s ease;
    animation: shineMove 2.6s ease-in-out infinite;
}
@keyframes shineMove {
  0% {
    left: -100%;
  }
  30% {
    left: 100%;
  }
  100% {
    left: 100%;
  }
}

/*--- faq --*/

#contents .faq{
    margin-bottom: 60px;
}

#contents .faq .faqList dl{
    position: relative;
    padding: 20px 0;
}
#contents .faq .faqList dl::after{
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    border-radius: 100px;
    opacity: 0.2;
    position: absolute;
    left: 0;
    bottom: 0;
}
#contents .faq .faqList dl dt{
    position: relative;
    color: #fff;
    font-size: 20px;
    line-height: 1.5;
    font-weight: bold;
    padding: 10px 40px 20px 70px;
    cursor: pointer;
    transition: .3s;
}
#contents .faq .faqList dl dt:hover{
    color: #ffbb33;
}
#contents .faq .faqList dl dt::before{
    content: "Q";
    font-size: 30px;
    width: 50px;
    height: 50px;
    border-radius: 100px;
    color: #00a550;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    padding-bottom: 0.2em;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    top: 0;
}

#contents .faq .faqList dl dt .icon{
    width: 20px;
    height: 20px;
    position: absolute;
    right: 0;
    top: 20px;
    display: block;
}
#contents .faq .faqList dl dt .icon::before,
#contents .faq .faqList dl dt .icon::after{
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background: #ffbb33;
    border-radius: 100px;
    position: absolute;
    left: 0;
    top: calc(50% - 1px);
    transition: .3s;
    transform-origin: center center;
}
#contents .faq .faqList dl dt .icon::after{
    transform: rotate(90deg);
}

#contents .faq .faqList dl dd{
    padding: 40px;
    border-radius: 20px;
    background: rgba(255,255,255,0.6);
    margin-left: 70px;
}

#contents .faq .info{
    margin-top: 60px;
    font-weight: bold;
}

#contents .faq .faqList dl dt.active .icon::after{
    transform: rotate(90deg) scale(0,1);
}


/*--- career ---*/

#career #mainTitle .deco01{
    width: 610px;
    left: -52px;
    top: 50%;
    transform: translateY(-49%);
}

#career #contents .btn01{
    display: table;
    margin: 20px auto 0;
}

#career #contents .registration{
    position: relative;
    z-index: 2;
}
#career #contents .registration .deco01{
    width: 155px;
    left: -60px;
    top: -60px;
}
#career #contents .registration .deco02{
    width: 240px;
    left: -70px;
    bottom: -84px;
}
#career #contents .registration .deco03{
    width: 165px;
    right: -40px;
    bottom: -60px;
}
#career #contents .flow .deco01{
    width: 243px;
}


/*----------------------------------------------------
	☆ANIMATION
----------------------------------------------------*/



/*----------------------------------------------------
	☆901以上　PCのみ & HOVER
----------------------------------------------------*/

@media screen and (min-width:901px) {
}


/*----------------------------------------------------
	☆UNDER 1200
----------------------------------------------------*/

@media screen and (max-width:1200px) {
    
    /*--- message --*/
    #contents .message .image{
        aspect-ratio: 2 / 1;
        height: auto;
    }
    
    
    /*--- outline --*/
    #contents .outline .deco01{
        width: 250px;
        left: -116px;
        top: -65px;
    }
    #contents .outline .deco02{
        width: 350px;
        right: -220px;
        top: -175px;
    }
    
    /*--- flow --*/
    #contents .flow .deco01{
        width: 135px;
        left: 17%;
    }
    #contents .flow .deco02{
        width: 170px;
        left: 20px
    }
    
    /*--- career --*/
    #career #contents .registration .deco01 {
        left: -5%;
    }
    #career #contents .registration .deco02 {
        width: 170px;
        left: -70px;
        bottom: -114px;
    }
    #career #contents .registration .deco03 {
        width: 115px;
        right: -40px;
        bottom: -84px;
    }
    #career #contents .flow .deco01{
        width: 180px;
    }
}

/*----------------------------------------------------
	☆UNDER 900
----------------------------------------------------*/

@media screen and (max-width:900px) { 
    
    /*--- message --*/
    #contents .message .info .deco01 {
        width: 150px;
        left: -40px;
        top: -50px;
    }
    
    
    /*--- outline --*/
    #contents .outline .deco01{
        width: 210px;
        left: -88px;
        top: -65px;
    }
    #contents .outline .deco02{
        width: 300px;
        right: -150px;
        top: -150px;
    }
    
    /*--- flow --*/
    #contents .flow .deco01{
        width: 120px;
        left: 9%;
    }
    #contents .flow .deco02{
        width: 149px;
        left: 20px
    }
    
    /*--- faq --*/
    #contents .faq .faqList dl dt {
        font-size: 16px;
    }
    
    
    /*--- career --*/
    #career #mainTitle .deco01 {
        width: 53%;
        min-width: 350px;
    }
    
}


/*----------------------------------------------------
	☆UNDER 600
----------------------------------------------------*/

@media screen and (max-width:600px) {
    
    /*--- message --*/
    #contents .message .image{
        border-radius: 20px;
        aspect-ratio: 2 / 1.3;
    }
    #contents .message .info .text{
        line-height: 2;
    }
    
    #contents .message .info .deco01 {
        width: 110px;
        left: -17px;
        top: -41px;
    }
    
    /*--- outline --*/
    #contents .outline .deco01{
        width: 140px;
        left: -48px;
        top: -52px;
    }
    #contents .outline .deco02{
        width: 200px;
        right: -120px;
        top: -116px;
    }
    
    /*--- flow --*/
    #contents .flow .slider{
        overflow: visible;
    }
    #contents .flow .deco01 {
        width: 90px;
        left: 75%;
        top: -112px;
    }
    #contents .flow .deco02 {
        width: 100px;
        left: 14px;
        top: -63px;
    }
    
    #career #contents .flow .deco01{
        width: 133px;
        left: 65%;
        top: -60px;
    }
    
    /*#contents .flow .slider .belt,
    #career #contents .flow .slider .belt{
        height: 70px;
        background-size: auto 100%;
    }*/

    #contents .flow .slider .belt {
        height: 80px;
        bottom: 140px;
        background-position: center calc(100% - 21px);
        background-size: auto 53px;
        animation: moveBelt-sp 2s linear infinite;
    }
    #contents .flow .slider .belt::after{
        height: 21px;
        background-size: auto 21px;
    }
    
    
    /*--- faq --*/
    #contents .faq .faqList dl{
        position: relative;
        padding: 20px 0;
    }
    #contents .faq .faqList dl dt{
        font-size: 16px;
        padding: 2px 30px 0 40px;
    }
    #contents .faq .faqList dl dt::before{
        font-size: 18px;
        width: 30px;
        height: 30px;
    }

    #contents .faq .faqList dl dt .icon{
        width: 15px;
        height: 15px;
        top: 7px;
    }

    #contents .faq .faqList dl dd{
        padding: 20px;
        border-radius: 15px;
        background: rgba(255,255,255,0.6);
        font-size: 14px;
        line-height: 1.8;
        letter-spacing: 0.01em;
        margin: 20px 0 0 40px;
    }
    #contents .faq .info {
        margin: 40px 0;
        font-size: 12px;
        letter-spacing: 0;
    }
    
    /*--- career ---*/
    
    #career #mainTitle .deco01 {
        width: 70%;
        min-width: auto;
    }
    
    #career #contents .registration .deco01 {
        left: -7%;
        top: -30px;
        width: 110px;
    }
    
    #career #contents .registration .deco02 {
        width: 114px;
        left: -50px;
        bottom: -126px;
    }
    #career #contents .registration .deco03 {
        width: 80px;
        right: -40px;
        bottom: -109px;
    }
    #career .frameBox > .inner {
        border-radius: 25px;
        padding: 45px 25px;
    }
    
}

