@charset "UTF-8";

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

/*--- mainTitle --*/
#mv{
    height: 55vw;
    max-height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    position: relative;
    background: url("../images/challenge/mv.jpg") center center / cover no-repeat;
}

#mv .title{
    max-width: 1200px;
    width: 80%;
}

#mv .clip01{
    animation: clip01 1s ease-in-out forwards;
    clip-path: inset(0 100% 0 0);
    animation-delay: 0.4s;
}

@keyframes clip01{
    0%{ clip-path: inset(0 100% 0 0); }
    100%{  clip-path: inset(0 0 0 0);}
}

#mv .scroll{
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%,0);
    padding-bottom: 80px;
}
#mv .scroll::before{
    content: "";
    display: block;
    width: 1px;
    height: 60px;
    background: #fff;
    opacity: 0.3;
    position: absolute;
    left: 50%;
    bottom: 0;
}
#mv .scroll::after{
    content: "";
    display: block;
    width: 1px;
    height: 20px;
    background: #fff;
    position: absolute;
    left: 50%;
    bottom: 20px;
    animation: scrollAnim 1.6s ease infinite;
}

@keyframes scrollAnim {
	0% { transform:translate(0,-100%); opacity: 1; }
	85% { transform:translate(0,100%); opacity: 1; }
	90% { transform:translate(0,100%); opacity: 0; }
	95% { transform:translate(0,-100%); opacity: 0; }
	100% { transform:translate(0,-100%); opacity: 1; }
}

#mv .scroll p{
    font-size: 11px;
    color: #fff;
}



/*--- intro --*/
#contents .intro .step{
    margin: 60px auto;
}


/*--- contents --*/
#contents .challengeContainer{
    position: relative;
}
#contents .challengeContainer::after{
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 2px);
    width: 4px;
    height: 120px;
    bottom: 0;
}
#contents .challengeContainer .inrWhiteBox{
    position: relative;
    padding: 0;
}
#contents .challengeContainer .inrWhiteBox::before,
#contents .challengeContainer .inrWhiteBox::after{
    width: 300px;
    height: 300px;
    display: block;
    position: absolute;
    content: "";
    z-index: 0;
}
#contents .challengeContainer .inrWhiteBox::before{
    left: -20px;
    top: -20px;
}
#contents .challengeContainer .inrWhiteBox::after{
    right: -20px;
    bottom: -20px;
}
#contents .challengeContainer .inrWhiteBox .inner{
    position: relative;
    z-index: 2;
    background: #fff;
    padding: 100px;
}
#contents .inrWhiteBox .icon{
    max-width: 85px;
    margin: 0 auto 5px;
}
#contents .inrWhiteBox .sectionTitle{
    font-size: 32px;
    line-height: 1.5;
    margin: 5px auto 20px;
    text-align: center;
    padding-bottom: 90px;
    position: relative;
}

#contents .inrWhiteBox .sectionTitle::after{
    content: "";
    display: block;
    width: 1px;
    height: 60px;
    position: absolute;
    left: 50%;
    bottom: 0;
}

#contents .inrWhiteBox .challengeBox01{
    max-width: 860px;
    margin: 0 auto;
}
#contents .inrWhiteBox .challengeBox01 .title{
    font-size: 26px;
    line-height: 1.5;
    margin: 0 auto 30px;
    text-align: center;
}
#contents .inrWhiteBox .challengeBox01 .inr{
    display: flex;
    justify-content: space-between;
}
#contents .inrWhiteBox .challengeBox01 .inr .info{
    width: 58%;
}
#contents .inrWhiteBox .challengeBox01 .inr .info .text{
    line-height: 1.8;
}
#contents .inrWhiteBox .challengeBox01 .inr .image{
    width: 35%;
}


#contents .inrWhiteBox .challengeBox01.type02{
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr{
    flex-direction: column;
    justify-content: center;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .info{
    width: 100%;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .info .text{
    line-height: 1.8;
    text-align: justify;
    columns: 2;
    -webkit-columns: 2;
    column-gap: 60px;
    -webkit-column-gap: 60px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .image{
    position: relative;
    width: 100%;
    aspect-ratio: 993 / 440;
    margin-top: 60px;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .image .image01{
    position: absolute;
    left: 0;
    top: 0;
    width: 66.4%;
    height: auto;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .image .image02,
#contents .inrWhiteBox .challengeBox01.type02 .inr .image .image03{
    position: absolute;
    right: 0;
    top: 0;
    width: 32.4%;
    height: auto;
}
#contents .inrWhiteBox .challengeBox01.type02 .inr .image .image03{
    top: auto;
    bottom: 0;
}
#challenge .challengeContainer > .image01{
    height: 620px;
    background-position: center center;
    background-size: cover;
    margin: 0 auto -60px;
    max-width: 1440px;
}
#challenge .challengeContainer > .image02{
    height: 600px;
    background-position: center center;
    background-size: cover;
    max-width: 1440px;
    margin: 100px auto 0;
}


#contents .yellow.challengeContainer::after{
    background: url("../images/challenge/dot_yellow.svg") center top / 100% auto repeat-y;
}
#contents .yellow .inrWhiteBox::before,
#contents .yellow .inrWhiteBox::after{
    background: #ffda00;
}
#contents .yellow .inrWhiteBox .sectionTitle{
    color: #f7b600;
}
#contents .yellow .inrWhiteBox .sectionTitle::after{
    background: #f7b600;
}

#contents .orange.challengeContainer::after{
    background: url("../images/challenge/dot_orange.svg") center top / 100% auto repeat-y;
}
#contents .orange .inrWhiteBox::before,
#contents .orange .inrWhiteBox::after{
    background: #f7931e;
}
#contents .orange .inrWhiteBox .sectionTitle{
    color: #f7931e;
}
#contents .orange .inrWhiteBox .sectionTitle::after{
    background: #f7931e;
}

#contents .pink.challengeContainer::after{
    background: url("../images/challenge/dot_pink.svg") center top / 100% auto repeat-y;
}
#contents .pink .inrWhiteBox::before,
#contents .pink .inrWhiteBox::after{
    background: #f75e5e;
}
#contents .pink .inrWhiteBox .sectionTitle{
    color: #f75e5e;
}
#contents .pink .inrWhiteBox .sectionTitle::after{
    background: #f75e5e;
}

#contents .redColor.challengeContainer::after{
    background: url("../images/challenge/dot_red.svg") center top / 100% auto repeat-y;
}
#contents .redColor .inrWhiteBox::before,
#contents .redColor .inrWhiteBox::after{
    background: #e21b13;
}
#contents .redColor .inrWhiteBox .sectionTitle{
    color: #e21b13;
}
#contents .redColor .inrWhiteBox .sectionTitle::after{
    background: #e21b13;
}

#contents .purple.challengeContainer::after{
    display: none;
}
#contents .purple .inrWhiteBox::before,
#contents .purple .inrWhiteBox::after{
    background: #59287f;
}
#contents .purple .inrWhiteBox .sectionTitle{
    color: #59287f;
}
#contents .purple .inrWhiteBox .sectionTitle::after{
    background: #59287f;
}


/*--- sample --*/




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



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

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


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

@media screen and (max-width:1200px) {
    
    #contents .inrWhiteBox .challengeBox01.type02 .inr .info .text {
        column-gap: 40px;
        -webkit-column-gap: 40px;
    }
    #challenge .challengeContainer > .image01,
    #challenge .challengeContainer > .image02{
        height: auto;
        aspect-ratio: 2 / 1;
    }
    
}

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

@media screen and (max-width:900px) {  
    
    #contents .inrWhiteBox .challengeBox01 .inr{
        flex-direction: column;
    }
    #contents .inrWhiteBox .challengeBox01 .inr .info,
    #contents .inrWhiteBox .challengeBox01 .inr .image{
        width: 100%;
    }
    #contents .inrWhiteBox .challengeBox01 .inr .image{
        max-width: 300px;
        margin: 40px auto 0;
    }
    
    #contents .inrWhiteBox .challengeBox01.type02 .inr .info .text {
        column-gap: 0px;
        -webkit-column-gap: 0px;
        columns: 1;
        -webkit-columns: 1;
    }
    #contents .inrWhiteBox .challengeBox01.type02 .inr .image{
        max-width: none;
    }
    
}


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

@media screen and (max-width:600px) {
    
    #mv {
        height: 120vw;
    }
    #mv .scroll {
        padding-bottom: 45px;
    }
    #mv .scroll::before {
        height: 40px;
    }
    #mv .scroll::after {
        height: 12px;
        bottom: 18px;
    }
    #mv .scroll p {
        font-size: 8px;
    }
    
    
    #contents .challengeContainer .inrWhiteBox::before,
    #contents .challengeContainer .inrWhiteBox::after {
        width: 150px;
        height: 150px;
    }
    #contents .challengeContainer .inrWhiteBox::before {
        left: -10px;
        top: -10px;
    }
    #contents .challengeContainer .inrWhiteBox::after {
        right: -10px;
        bottom: -10px;
    }
    #contents .challengeContainer .inrWhiteBox .inner {
        padding: 45px 30px;
    }
    
    #contents .inrWhiteBox .icon {
        max-width: 70px;
        margin: 0 auto 12px;
    }
    #contents .inrWhiteBox .sectionTitle {
        padding-bottom: 70px;
        font-size: 22px;
    }
    #contents .inrWhiteBox .challengeBox01 .title{
        font-size: 18px;
        margin-bottom: 18px;
    }
    
    #contents .inrWhiteBox .challengeBox01.type02 .inr .image {
        width: 100%;
        aspect-ratio: auto;
        margin-top: 30px;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 10px 0;
    }
    #contents .inrWhiteBox .challengeBox01.type02 .inr .image .image01{
        width: 100%;
        position: relative;
    }
    #contents .inrWhiteBox .challengeBox01.type02 .inr .image .image03,
    #contents .inrWhiteBox .challengeBox01.type02 .inr .image .image02{
        width: 48%;
        position: relative;
    }
    #challenge .challengeContainer > .image01,
    #challenge .challengeContainer > .image02 {
        aspect-ratio: 1.5 / 1;
        margin-bottom: -30px;
    }
    #challenge .challengeContainer > .image02{
        margin-bottom: 0;
        margin-top: 60px;
    }
    
}

