@charset "UTF-8";

/* top-hero */
.top-hero{
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 800px;
}

.hero-bg{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background: url(/recruit/img/home/img-top-hero_2504.webp) center / cover no-repeat;
}

.hero-txt{
    position: absolute;
    left: 4.7%;
    bottom: 123px;
    font-size: 20px;
    color: #fff;
    z-index: 10;
	opacity: 0;
	-webkit-transform: translateY(-40px);
	transform: translateY(-40px);
	-webkit-transition: opacity .6s, -webkit-transform .6s;
	transition: opacity .6s, -webkit-transform .6s;
	transition: transform .6s, opacity .6s;
	transition: transform .6s, opacity .6s, -webkit-transform .6s;
	-webkit-transition-delay: 0.6s;
	transition-delay: 0.6s;
}


body.-load .hero-txt{
	z-index: 99;
	opacity: 1;
	-webkit-transform: translateY(0px);
	transform: translateY(0px);
}

.hero-txt .-en{
    font-size: 78px;
    font-weight: bold;
    line-height: 1.1;
}

.hero-ticker{
    position: absolute;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 823px;
    height: 78px;
    background: #EA6876;
}

.hero-ticker .ticker-body{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    padding: 0 30px 0 36px;
}

.hero-ticker .ticker-body em{
    margin-right: 20px;
    padding-right: 20px;
    font-size: 20px;
    font-weight: bold;
    line-height: 1.2;
    color: #fff;
    border-right: solid 1px #fff;
}

.hero-ticker .ticker-body .my-ticker{
    position: relative;
    width: 100%;
}

.hero-ticker .ticker-body .my-ticker li{
    width: 100%;
}

.hero-ticker .ticker-body .my-ticker a{
    position: relative;
    display: flex;
    width: 100%;
    font-size: 14px;
    color: #fff;
    background: #EA6876 url(/recruit/img/cmn/img-arrow-more.svg) center right 10px / 35.7px auto no-repeat;
    transition: .3s ease-in-out;
}

.hero-ticker .ticker-body .my-ticker a:hover{
    background-position: center right;
}

.hero-ticker .ticker-body .my-ticker .txt{
    margin-left: 10px;
}

/* message */
.message{
    position: relative;
    display: flex;
    padding-bottom: 106px;
}

.message .img-contents{
    position: relative;
    width: 50%;
    z-index: 50;
}

.message .img-contents .main-img{
    position: relative;
    width: 100%;
    height: 100%;
}

.message .img-contents .main-img img{
    object-fit: cover;
}

.message .img-contents .accent{
    position: absolute;
    bottom: -63px;
    right: -125px;
    width: 395px;
}

.message .txt-contents{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column;
    width: 50%;
    z-index: 75;
}

.message .txt-contents .ttl .-en{ 
    display: block;
}

.message .txt-contents .txt:first-of-type{
    margin: 43px 0 30px;
}

.message .txt-contents .txt strong{
    font-size: 28px;
    font-weight: bold;
    line-height: 1.6;
}

.message .txt-contents .txt:nth-of-type(2){
    font-size: 16px;
    line-height: 2.2;
}

.message .obj{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 87%;
    height: 165px;
    background: #F6F6F6;
}

/* about */
.about{
    position: relative;
    display: flex;
    flex-flow: row-reverse;
    padding-bottom: 136px;
}

.about .ttl{
    display: flex;
    align-items: center;
    gap: 17px;
}

.about .img-contents{
    width: 50%;
}

.about .txt-contents{
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: space-between;
    width: 50%;
    padding-top: 8vw;
}

.about .txt-contents .txt{
    margin: 24px 0 55px;
    font-size: 16px;
    line-height: 2.2;
}

.about-list{
    width: 100%;
    margin-top: 55px;
}

.about-list li{
    border-top: solid 1px #E5E5E5;
}

.about-list a{
    display: block;
    padding: max(29px,2.07vw) 0 max(29px,2.07vw) calc(50% - 251.5px);
    background: url(/recruit/img/cmn/img-arrow-more-gray.svg) center right 54px / 63.54px auto no-repeat;
    transition: .3s ease-in-out;
}

.about-list a:hover{
    opacity: 0.5;
    background-position: center right 44px;
}

.about .obj{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 87%;
    height: 136px;
    background: #F6F6F6;
}

/* concept-movie */

.concept-movie{
    padding: 89px 0 125px;
    text-align: center;
    background-color: #F6F6F6;
}

.concept-movie .movie-box .ttl {
    margin-bottom: 26px;
}

.concept-movie .movie-box .ttl .-en{
    display: block;
    line-height: 1;
}

/* works */
.works{
    position: relative;
}

.works .inner-contents{
    position: relative;
    bottom: 0;
    right: -8%;
    width: 92%;
    margin-top: -89px;
    padding: 78px 0 147px 99px;
    background: #fff;
}

.works .ttl .-en{
    padding-right: 9px;
}

.works .contents-list{
    display: flex;
    margin-top: 21px;
}

.works .contents-list li{
    position: relative;
}

.works .contents-list .img{
    overflow: hidden;
}

.works .contents-list .img img{
    transition: .5s ease-in-out;
}

.works .contents-list .img:hover img{
    transform: scale(1.1);
}

.works .contents-list .btn{
    position: absolute;
    left: 27px;
    bottom: -28px;
}

/* voice */
.voice{
    position: relative;
    padding: 71px 0 146px;
    background: linear-gradient(180deg, #EA6876 0%, #EA6876 56%, #F6F6F6 56%, #F6F6F6 100%);
    margin-bottom: 31px;
}

.voice-ttl{
    display: flex;
    flex-flow: column;
    align-items: center;
    color: #fff;
    font-size: 14px;
}

.voice-ttl .-en{
    font-size: 45px;
    font-weight: bold;
}

.voice-list{
    margin-top: 30px;
    padding: 0 10%;
    overflow: hidden;
}

.voice-list .slick-slide{
    position: relative;
}

.voice-list .slick-arrow{
    position: absolute;
    top: 37%;
    transform: translateY(-50%);
    width: 20.9px;
    height: 33.44px;
    z-index: 10;
}

.voice-list .slick-arrow::before{
    content: none;
}

.voice-list .slick-arrow.slick-prev{
    left: 0;
    background: url(/recruit/img/cmn/img-arrow-prev.svg) center / 100% auto no-repeat;
}

.voice-list .slick-arrow.slick-next{
    right: 0;
    background: url(/recruit/img/cmn/img-arrow-next.svg) center / 100% auto no-repeat;
}

.voice-list li{
    padding: 0 10%;
    text-align: center;
}

.voice-list .photo{
    position: relative;
    width: 100%;
    border-radius: 50%;
}

.voice-list .photo .icon{
    position: absolute;
    right: 0;
    left: 0;
    bottom: -31px;
    width: 51.52px;
    margin: auto;
    z-index: 1;
}

.voice-list .photo .icon-ay{
    position: absolute;
    right: 0;
    left: 0;
    bottom: -25px;
    width: 85px;
    margin: auto;
    z-index: 1;
}

.voice-list .photo .icon-sw{
    position: absolute;
    right: 0;
    left: 0;
    bottom: -20px;
    width: 97px;
    margin: auto;
    z-index: 1;
}

.voice-list li .txt{
    margin-top: 41px;
}

.voice .btn{
    position: absolute;
    bottom: -31px;
    left: 0;
    right: 0;
    margin: auto;
}

/* story */
.story{
    position: relative;
    padding: 209px 0 217px;
    /* overflow: hidden; */
}

.story .story-ttl-wrap{
    position: absolute;
    top: 255px;
    left: max(calc(50% + 74px), 774px);
    width: 540px;
}

.story .story-ttl-wrap .ttl .-en{
    display: block;
} 

.story .story-ttl-wrap .txt{
    margin-top: 43px;
    font-size: 16px;
}

.story .ttl strong{
    display: block;
}

.story .story-contents{
    display: flex;
}

.story .img-list{
    width: 50%;
    min-width: 700px;
    line-height: 0;
}

.story .txt-contents-wrap{
    width: min(50%, calc(100% - 700px));
    padding: 332px 0 0;
}

.story .txt-contents-wrap .txt-list{
    position: relative;
    padding: 67px 0 77px max(5.2%, 74px);
    border-top: solid 1px #E5E5E5;
    border-bottom: solid 1px #E5E5E5;
}

.story .txt-contents-wrap .slick-arrow{
    display: none !important;
}

.story .story-list-contents{
    display: flex;
    flex-flow: column;
}

.story .story-list-contents-ttl{
    font-size: 20px;
}

.story .story-list-contents-ttl span{
    display: block;
    padding-top: 5px;
    font-size: 26px;
    font-weight: bold;
}

.story .btn{
    margin-top: 34px;
}

.story .controller{
    margin-top: 35px;
}

.story .controller-top{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    font-size: 50px;
}

.story .controller-top .prev,
.story .controller-top .next{
    width: 12.73px;
    height: 20.37px;
    margin-top: 15px;
    cursor: pointer;
}

.story .controller-top .prev{
    background: url(/recruit/img/cmn/img-arrow-darkgray-left.svg);
}

.story .controller-top .next{
    background: url(/recruit/img/cmn/img-arrow-darkgray-right.svg);
}

.story .controller-list{
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 25px;
    padding: 0 15px;
}

.story .controller-list .controller-bar{
    width: 88px;
    height: 3px;
    background: #DDDDDD;
    cursor: pointer;
    transition: .3s ease-in-out;
}

.story .controller-list .controller-bar.now{
    background: #EA6876;
}

.story .obj{
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 217px;
    background: #F6F6F6;
} 

/* other */
.other{
    display: flex;
    padding-bottom: 132px;
}

.other .other-contents{
    position: relative;
    width: 50%;
}

.other .other-contents:nth-child(2){
    margin-top: -72px;
}

.other .other-contents a{
    height: 100%;
}

.other .other-contents .img{
    position: relative;
    top: 0;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.other .other-contents img{
    transition: .5s ease-in-out;
}

.other .other-contents:hover img{
    transform: scale(1.1);
}

.other .other-contents .img::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.5;
    z-index: 1;
}

.other .other-contents:last-of-type .img::before{
    opacity: 0.25;
}

.other-contents .ttl{
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    gap: 5px;
    transform: translateY(-50%);
    display: flex;
    flex-flow: column;
    justify-content: center;
    z-index: 2;
    color: #fff;
    text-align: center;
}

.other-contents .ttl .-en{
    color: #fff;
}

/* info */
.info{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column;
    width: 100%;
    min-height: 400px;
    height: 28.58vw;
    background: url(/recruit/img/home/img-info.jpg) center/ cover no-repeat;
}

.info::after{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #EA6876;
    opacity: 0.61;
}

.info .ttl{
    position: relative;
    display: flex;
    flex-flow: column;
    align-items: center;
    gap: 5px;
    margin-bottom: 36px;
    z-index: 1;
    color: #fff;
}

.info .ttl .-en{
    color: #fff;
}

.info .btn{
    position: relative;
    z-index: 1;
}

/* news */
.news .inner{
    width: 100%;
    max-width: 1124px;
    margin: auto;
    padding: 145px 30px 114px;
}

.news .ttl .-en{
    margin-right: 9px;
}

.news .news-list{
    margin-top: 19px;
}

.news .news-list{
    border-top: solid 1px #E5E5E5;
}

.news .news-list li{
    border-bottom: solid 1px #E5E5E5;
}

.news .news-list a{
    display: flex;
    gap: 11px;
    padding: 39px 28px 39px 19px;
    background: url(/recruit/img/cmn/img-arrow-more-gray.svg) center right 28px / 63.54px auto no-repeat;
}

.news .news-list li:hover a{
    background-position: center right 18px;
}

.news .news-list .news-ttl{
    color: #EA6876;
}

.news .btn{
    margin: 40px auto 0;
}


@media screen and (max-width:949px) {

    /* top-hero */
    .top-hero{
        position: relative;
        width: 100%;
        height: 100vh;
        min-height: 670px;
    }
    .hero-bg{
        background-image: url(../../img/home/img-top-hero-sp_2504.webp);
    }

    .hero-txt{
        position: absolute;
        left: 8.5%;
        top: 78px;
        bottom: auto;
        font-size: 13px;
    }

    .hero-txt .-en{
        font-size: 50px;
    }

    .hero-ticker{
        width: 89%;
        height: 103px;
    }

    .hero-ticker .ticker-body{
        justify-content: flex-start;
        align-items: flex-start;
        flex-flow: column;
        padding: 0 30px 0 36px;
    }

    .hero-ticker .ticker-body em{
        margin-right: auto;
        margin-bottom: 8px;
        padding-right: 0;
        font-size: 20px;
        border-right: none;
    }

    .hero-ticker .ticker-body .my-ticker a{
        background: none;
    }

    /* message */
    .message{
        flex-flow: column-reverse;
        padding: 49px 4.8% 152px;
    }

    .message .img-contents{
        width: 100%;
    }

    .message .img-contents .main-img{
        right: -5.45%;
        margin-top: 60px;
    }

    .message .img-contents .accent{
        position: absolute;
        bottom: -30px;
        left: -4.8vw;
        right:auto; 
        width: 53vw;
    }

    .message .txt-contents{
        width: 100%;
    }

    .message .txt-contents .txt:first-of-type{
        margin: 23px 0 25px;
    }

    .message .txt-contents .txt strong{
        font-size: 20px;
    }

    .message .txt-contents .txt:nth-of-type(2){
        font-size: 13px;
    }

    .message .obj{
        width: 85%;
        height: 390px;
        background: #F6F6F6;
    }

    /* about */
    .about{
        flex-flow: column;
        padding-bottom: 0;
    }

    .about .ttl{
        position: absolute;
        top: -90px;
        flex-flow: column;
        align-items: flex-start;
        gap: 0;
        left: 4.8%;
    }

    .about .img-contents{
        width: 100%;
    }

    .about .txt-contents{
        display: flex;
        flex-flow: column;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding-top: 36px;
    }

    .about .txt-contents .txt{
        margin: 24px 0 54px;
        padding: 0 4.8%;
        font-size: 13px;
    }

    .about-list{
        margin-top: 0;
    }

    .about-list a{
        padding-left: 4.8%;
        background-position: center right 4.8%;
    }

    .about .obj{
        position: absolute;
        bottom: 0;
        left: 0;
        width: 87%;
        height: 136px;
        background: #F6F6F6;
    }
    
    /* concept-movie */

    .concept-movie{
        padding: 43px 4.8% 32px;
    }

    .concept-movie .movie-box .ttl {
        margin-bottom: 13px;
    }

    .concept-movie .movie-box iframe{
        width: 100%;
        height: auto;
    }

    /* works */

    .works .inner-contents{
        position: relative;
        bottom: auto;
        right: 0;
        width: 100%;
        margin-top: 70px;
        padding: 0 4.8% 99px;
    }

    .works .contents-list{
        display: block;
        margin-top: 28px;
    }

    .works .contents-list li:not(:first-of-type){
        margin-top: 43px;
    }

    .works .contents-list .btn{
        position: absolute;
        left: 0;
        bottom: -26px;
        width: 90%;
        max-width: 252px;
        height: 55px;
    }

    /* voice */
    .voice{
        position: relative;
        padding: 51px 0 80px;
        background: linear-gradient(180deg, #EA6876 0%, #EA6876 56%, #F6F6F6 56%, #F6F6F6 100%);
        margin-bottom: 31px;
    }

    .voice-ttl .-en{
        font-size: 35px;
        line-height: 1;
    }

    .voice-list{
        padding: 0;
    }

    .voice-list .slick-arrow{
        position: absolute;
        top: 85%;
        transform: translateY(-50%);
        width: 20.9px;
        height: 33.44px;
        z-index: 1;
    }

    .voice-list .slick-arrow::before{
        content: none;
    }

    .voice-list .slick-arrow.slick-prev{
        left: 20%;
        background-image: url(/recruit/img/cmn/img-arrow-prev-pink.svg);
    }

    .voice-list .slick-arrow.slick-next{
        right: 20%;
        background-image: url(/recruit/img/cmn/img-arrow-next-pink.svg);
    }

    .voice-list li{
        padding: 0 10%;
    }

    .voice-list .photo .icon{
        position: absolute;
        right: 0;
        left: 0;
        bottom: -20px;
        width: 31px;
        margin: auto;
        z-index: 1;
    }
    
    .voice-list .photo .icon-ay{
        position: absolute;
        right: 0;
        left: 0;
        bottom: -10px;
        width: 65px;
        margin: auto;
        z-index: 1;
    }
    
    .voice-list .photo .icon-sw{
        position: absolute;
        right: 0;
        left: 0;
        bottom: -12px;
        width: 75px;
        margin: auto;
        z-index: 1;
    }
    
    .voice-list li .txt{
        margin-top: 24px;
    }

    .voice .btn{
        bottom: -23px;
        width: 85%;
        max-width: 188px;
        height: 46px;
    }

    /* story */
    .story{
        position: relative;
        margin-top: 128px;
        padding: 300px 0 75px;
        /* overflow: hidden; */
    }

    .story .story-ttl-wrap{
        position: absolute;
        top: 0;
        left: 4.8%;
        width: auto;
    }

    .story .ttl .-en{
        display: block;
    }

    .story .story-ttl-wrap .txt{
        padding-right: 4.8%;
    }

    .story .story-contents{
        display: block;
    }

    .story .img-list{
        width: 86%;
        min-width: auto;
    }

    .story .txt-contents-wrap{
        width: 100%;
        padding: 36px 0 0;
    }

    .story .txt-contents-wrap .txt-list{
        position: relative;
        padding: 0 4.8% 50px;
        border-top: none;
        border-bottom: solid 1px #E5E5E5;
    }

    .story .story-list-contents-ttl{
        line-height: 1.6;
    }

    .story .story-list-contents-ttl span{
        padding-top: 0;
    }

    .story .story-list-contents .txt{
        margin-top: 22px;
    }

    .story .btn{
        width: 85%;
        max-width: 188px;
        height: 46px;
        margin-top: 26px;
    }

    .story .controller{
        margin-top: 22px;
    }

    .story .controller-top{
        gap: 24px;
    }

    .story .controller-list{
        display: flex;
        justify-content: center;
        gap: 10px;
        margin-top: 25px;
        padding: 0 15px;
    }

    .story .controller-list .controller-bar{
        width: 64px;
    }
        
    /* other */
    .other{
        position: relative;
        display: block;
        padding: 63px 0 97px;
    }

    .other .other-contents{
        width: 100%;
        padding: 0 4.8%;
    }

    .other .other-contents:not(:first-of-type){
        margin-top: 16px;
    }

    .other .obj{
        position: absolute;
        top: 0;
        width: 100%;
        height: 412px;
        background: #F6F6F6;
    }

    /* info */
    .info{
        min-height: auto;
        height: 318px;
    }

    .info .ttl{
        gap: 0px;
        margin-bottom: 26px;
    }

    /* news */
    .news .inner{
        width: 100%;
        max-width: none;
        margin: auto;
        padding: 65px 4.8% 69px;
    }

    .news .ttl{
        display: flex;
        flex-flow: column;
    }

    .news .news-list a{
        display: block;
        padding: 19px 0;
    }

    .news .news-list li a{
        background-position: center right 0;
        background-size: 37.55px auto;
    }

    .news .btn{
        margin: 39px auto 0;
    }

}
