@charset "UTF-8";

html,
body {
  margin: 0;
  padding: 0;
  border: 0;
}

.wrap {
    font-size: 16px;
    font-family: "M PLUS 1p", sans-serif;
    font-style: normal;
    font-feature-settings: "palt" 1;
    letter-spacing: .02em;
    overflow: hidden;
    text-align: center;
}

.wrap * {
    margin: 0;
    padding: 0;
}

.wrap ul,
.wrap ol {
    list-style: none;
}

.wrap img {
    max-width: 100%;
}

.wrap picture {
    display: flex;
    justify-content: center;
}

.wrap h2 {
    width: 60%;
    margin: 0 auto 7% auto;
}

.sp {
    display: block;
}

.pc {
    display: none;
}

.inner {
    padding: 7% 5%;
}

.spacer {
    display: block;
    height: .8em;
}

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


    .wrap {
        letter-spacing: .1em;
    }

    .wrap h2 {
        width: 32%;
        margin: 0 auto clamp(40px, 5vw, 55px) auto;
    }

    .sp {
        display: none;
    }

    .pc {
        display: block;
    }

    .inner {
        padding: clamp(70px, 7vw, 90px) 5%;
        max-width: 1400px;
        margin: 0 auto;
    }

}

/* =========================================
    　　　　　　　　背景
============================================*/

.wrap::before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: url("/sp/zoom/images/bg_cast_sp.jpg") center/cover no-repeat;
    z-index:-1;
}

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

    .wrap::before {
        background: url("/sp/zoom/images/bg_cast_pc.jpg") center/cover no-repeat;

    }

}

/* =========================================
    　　メインビジュアル(class="mv")
============================================*/

.mv {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    background: url(/sp/zoom/images/main_sp.jpg) no-repeat center center / cover;
}

.mv::after {
    position: absolute;
    bottom: 0;
    content: "";
    width: 150%;
    display: block;
    background: url(/sp/zoom/images/bg_dot.png) no-repeat center center / 100%;
    aspect-ratio: 1920 / 136;
    z-index: 2;
}

.mv__person {
    width: 90%;
    height: fit-content;
    display: flex;
    opacity: 0;
    transform: translateX(-80px) scale(0.95);
    transition: 1s cubic-bezier(.2, .9, .2, 1);
    margin: 0 auto;
}
  
.mv__logo {
    width: 90%;
    height: fit-content;
    display: flex;
    justify-content: center;
    opacity: 0;
    transform: translateX(60px) scale(0.9);
    transition: 1s cubic-bezier(.2, .9, .2, 1);
    margin: 5% auto 0 auto;
}
  
.mv.is-active .mv__person,
.mv.is-active .mv__logo {
    opacity: 1;
    transform: translateX(0) scale(1);
}

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

    .mv {
        background: url(/sp/zoom/images/main_pc.jpg) no-repeat center center / cover;
    }

    .mv::after {
        width: 100%;
    }

    .mv__person {
        width: 49%;
        margin: auto 0 0 3%;
        order: 1;
    }

    .mv__logo {
        width: 44%;
        margin: 4% 3% 7% 1%;
        order: 2;
    }

}

/* =========================================
    　　イントロ関連(class="intro_wrap")
============================================*/

.intro_wrap {
    background: 
    url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / 40%,
    url(/sp/zoom/images/bg_intro2.png) no-repeat top 20% right / 40%,
    url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 13% right / 35%,
    url(/sp/zoom/images/bg_intro4.png) no-repeat bottom 20% left / 35%,
    #fff;
}

/* .intro_wrap {
    background: 
    url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / clamp(120px, 23vw, 220px),
    url(/sp/zoom/images/bg_intro2.png) no-repeat top 17% right / clamp(130px, 30vw, 330px),
    url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 10% right / clamp(110px, 25vw, 250px),
    url(/sp/zoom/images/bg_intro4.png) no-repeat bottom -1% left / clamp(120px, 26vw, 280px),
    #FFF;
} */

.intro_wrap section:not(:last-of-type) {
    margin-bottom: 5%;
}

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

    .intro_wrap {
        background: 
        url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / 17%,
        url(/sp/zoom/images/bg_intro2.png) no-repeat top 15% right / 22%,
        url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 18% right / 20%,
        url(/sp/zoom/images/bg_intro4.png) no-repeat bottom 3% left / 20%,
        #fff;
    }

    /* .intro_wrap {
        background: 
        url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / clamp(165px, 16vw, 269px),
        url(/sp/zoom/images/bg_intro2.png) no-repeat top 0% right / clamp(240px, 21vw, 400px),
        url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 18% right / clamp(190px, 14vw, 250px),
        url(/sp/zoom/images/bg_intro4.png) no-repeat bottom 0% left / clamp(180px, 15vw, 250px),
        #fff;
    } */

    .intro_wrap section:not(:last-of-type) {
        margin-bottom: clamp(50px, 7vw, 70px);
    }

}

/* =========================================
    　　　　　　Tverバナー(class="tver")
============================================*/

.tver p {
    filter: drop-shadow(3px 3px 1px rgba(1, 23, 83, 0.13));
    max-width: 550px;
    margin: 0 auto;
}


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

    .tver p {
        width: 80%;
        max-width: 750px;
    }

    .tver a {
        transition-duration: .2s;
    }

    .tver a:hover {
        opacity: .7;
    }

}


/* =========================================
    　　　　　　番宣動画(class="movie")
============================================*/


.movie_wrap {
    max-width: 900px;
    margin: 0 auto;
}
#movie {
    position: relative;
    width: 100%;
    padding-top: calc(9 / 16 * 100%);
    margin: 0 auto;
    overflow: hidden;
}
.tvo-video {
	position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
}

/* Equipmedia用 */
.jstream-eqPlayer,
.eq-h5_player {
	width: 100% !important;
	height: 100% !important;
}
/* Equipmedia用 */


/* =========================================
    　　　　　　イントロ(class="intro")
============================================*/

.intro p {
    font-size: clamp(14px, 4vw, 22px);
    font-weight: 800;
    color: #011753;
}

.intro p span {
    font-size: clamp(18px, 4vw, 26px);
    font-weight: 800;
    color: #fa6e14;
}

.intro p rt {
    transform: translateY(3px);
}

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

    .intro p {
        font-size: clamp(20px, 2.5vw, 30px);
    }

    .intro p span {
        font-size: clamp(22px, 2.5vw, 36px);
    }

}

/* =========================================
　　　　　　　画像スクロール
============================================*/

.swiper {
    width: 100vw;
    pointer-events: none;
    margin-left: calc(50% - 50vw);
}

.swiper-wrapper {
	transition-timing-function: linear !important;
}

.swiper li {
    padding-right: 15px;
}

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

    .swiper li {
        padding-right: 30px;
    }

}

/* =========================================
    　　　　　　出演者(class="cast")
============================================*/

.cast {
    position: relative;
}

.cast::before,
.cast::after{
    position: absolute;
    left: 0;
    content: "";
    width: 150%;
    display: block;
    background: url(/sp/zoom/images/bg_dot.png) no-repeat center center / 100%;
    aspect-ratio: 1920 / 136;
}

.cast::before {
    top: -1px;
    transform: scaleY(-1);
}

.cast::after {
    bottom: 0;
}

.cast .inner {
    padding: 13% 5%;
}

.cast ul li {
    width: 75%;
    margin: 0 auto;
}

.cast ul li:not(:last-of-type) {
    margin-bottom: 5%;
}

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

    .cast::before,
    .cast::after{
        width: 100%;
    }

    .cast .inner {
        padding: clamp(70px, 9vw, 160px) 5%;
    }

    .cast ul {
        display: flex;
        align-items: center;
    }

    .cast ul li {
        width: 30%;
    }

    .cast ul li:not(:last-of-type) {
        margin-bottom: 0;
    }

}

/* =========================================
    　　　　　　ラインナップ(class="lineup")
============================================*/

.lineup {
    background: 
    url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / 35%,
    url(/sp/zoom/images/bg_intro2.png) no-repeat top 32% right / 40%,
    url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 5% right / 35%,
    url(/sp/zoom/images/bg_intro4.png) no-repeat bottom 30% left / 40%,
    #fff;
}

.lineup p {
    font-size: clamp(14px, 4vw, 22px);
    font-weight: 800;
    color: #011753;
    margin-bottom: 8%;
}

.lineup p span {
    font-size: clamp(18px, 4vw, 26px);
    font-weight: 800;
    color: #fa6e14;
}

.lineup ul li {
    filter: drop-shadow(3px 3px 1px rgba(1, 23, 83, 0.13));
}

.lineup ul li:not(:last-of-type) {
    margin-bottom: 5%;
}


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

    .lineup {
        background: 
        url(/sp/zoom/images/bg_intro1.png) no-repeat top 5% left / 15%,
        url(/sp/zoom/images/bg_intro2.png) no-repeat top 20% right / 20%,
        url(/sp/zoom/images/bg_intro3.png) no-repeat bottom 5% right / 17%,
        url(/sp/zoom/images/bg_intro4.png) no-repeat bottom 0% left / 20%,
        #fff;
    }

    .lineup p {
        font-size: clamp(20px, 2.5vw, 30px);
        margin: 0 auto clamp(50px, 5vw, 70px) auto;
    }

    .lineup p span {
        font-size: clamp(22px, 2.5vw, 36px);
    }

    .lineup ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        row-gap: 3vw;
        column-gap: 2%;
    }

    .lineup ul li {
        width: 48%;
    }

    .lineup ul li:not(:last-of-type) {
        margin-bottom: 0;
    }

}

/* =========================================
    　　　　　　　スライドイン
============================================*/

.slide-in {
    opacity: 0;
    transform: translateY(40px) scale(0.9);
    transition:
      opacity 0.8s ease,
      transform 0.8s cubic-bezier(.18,1.35,.4,1);
}
  
.slide-in.is-active {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* =========================================
    　　　　　　トップボタン
============================================*/

#page-top {
    position: fixed;
    bottom: 3%;
    right: 0;
    width: 12%;
    max-width: 60px;
    aspect-ratio: 100 / 102;
    background: url(/sp/zoom/images/pagetop_btn.png) no-repeat center / 100%;
    z-index: 100;
}

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

    #page-top {
        width: 8%;
        max-width: 90px;
        transition-duration: .2s;
    }

    #page-top:hover {
        opacity: .7;
    }

}