@charset "utf-8";

/************************************************************

	Home

************************************************************/

/*
    Home -> Hero
******************************/

.h-hero{
    position: relative;
}
.h-hero .h-hero__ttl,
.h-hero .h-hero__shoulder,
.h-hero .h-hero__credit,
.h-hero .h-hero__caps{
    position: absolute;
    background-size: 100%;
    background-repeat: no-repeat;
    text-indent: -9999px;
    z-index: 500;
}
.h-hero .h-hero__ttl{
    width: 54vw;
    height: 32vw;
    background-image: url(../img/h_hero_ttl.png);
    top: 108px;
    left: 3.2vw;
}
.h-hero .h-hero__shoulder{
    width: 9vw;
    height: 24vw;
    background-image: url(../img/h_hero_shoulder.png);
    top: 0;
    right: 2.4vw;
}
.h-hero .h-hero__credit{
    width: 24vw;
    height: 4vw;
    background-image: url(../img/h_hero_credit.png);
    bottom: 3.2vw;
    left: 3.2vw;
}
.h-hero .h-hero__caps{
    position: absolute;
    text-align: right;
    bottom: 3.2vw;
    right: 3.2vw;
    color: #fff;
}
.h-hero .h-hero__caps p.caps{
    color: #fff;
}

/*
    Home -> header
******************************/

header .inpage-nav{
    margin: 36px 0 0;
    text-align: center;
    position: relative;
}
header .inpage-nav ul.inpage-nav__inner{
    background: #fff;
    display: inline-block;
    padding: 0 1.8em;
}
header .inpage-nav::before,
header .inpage-nav::after{
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #222;
    z-index: -1;
}
header .inpage-nav::before{
    top: 42%;
}
header .inpage-nav::after{
    bottom: 42%;
}

header .inpage-nav ul li{
    display: inline-block;
}
header .inpage-nav ul li a{
    position: relative;
    display: inline-block;
    padding: 0.8em 0;
    margin: 0 1.2em;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 1;
}
header .inpage-nav ul li a:hover::after{
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 3px;
    background-color: #ff0000;
    left: 0;
    bottom: 2px;
    animation: navHover .3s forwards cubic-bezier(.8,.01,.37,1);
}
@keyframes navHover {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}

/*
    Home -> slider
******************************/

.slider.__pc{ display: block; }
.slider.__sp{ display: none; }


/*
    Home -> h-about
******************************/
.h-about{
    position: relative;
    max-width: 1680px;
    padding: 80px 60px;
    margin: 0 auto;
}
.h-about__inner{
    position: relative;
    padding: 0;
    overflow: hidden;
    display:-webkit-box;
    display:-moz-box;
    display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
    flex-flow: row-reverse;
    align-items: flex-end;
}
.h-about__desc{
    position: relative;
    width: 62%;
    padding-left: 48px;
}
.h-about__portlait{
    position: relative;
    width: 34%;
    margin-right: 4%;
}
.h-about__img{
    margin-bottom: 1.0em;
}
.h-about__lines .line__left01{
    display: block;
    position: absolute;
    width: 10px;
    height: calc( 80% + 1.6vw );
    background: #000;
    top: 0;
    left: 0;
    z-index: -1;
}
.h-about__lines .line__left02{
    display: block;
    position: absolute;
    width: 2px;
    height: calc( 80% + 1.6vw );
    background: #000;
    top: 0;
    left: 16px;
    z-index: -1;
}
.h-about__head{
    position: relative;
    width: 100%;
    text-align: right;
}
.h-about__head h2{
    display: inline-block;
    width: 85%;
    padding: 0 0 24px;
}
.h-about__head h2::before{
    content: "";
    position: absolute;
    display: block;
    width: 2px;
    height: 50%;
    background: #000;
    bottom: 0;
    left: calc( 15% - 24px );
}
.h-about__txt p{
    padding: 2em 0;
    border-top: 2px solid #000;
    border-bottom: 2px solid #000;
    line-height: 2;
}
.h-about__bottom{
    position: relative;
    width: 100%;
    text-align: right;
}
.h-about__bottom span{
    display: inline-block;
    width: 85%;
    padding: 24px 0 0;
}
.h-about__bottom span::before{
    content: "";
    position: absolute;
    display: block;
    width: 2px;
    height: 25%;
    background: #000;
    top: 0;
    left: calc( 15% - 24px );
}

/*
    Home -> h-outline
******************************/
.h-outline{
    position: relative;
    max-width: 1680px;
    padding: 80px 60px;
    margin: 0 auto;
}
.h-outline__inner{
    position: relative;
    padding: 40px 70px 0 140px;
    overflow: hidden;
}
.h-outline__lines .line__left{
    display: block;
    position: absolute;
    width: 2px;
    height: 100%;
    background: #222;
    top: 0;
    left: 110px;
    z-index: -1;
}
.h-outline__lines .line__right{
    display: block;
    position: absolute;
    width: 2px;
    height: 100%;
    background: #222;
    top: 0;
    right: 40px;
    z-index: -1;
}
.h-outline__lines .line__top{
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #222;
    top: 90px;
    left: 0;
    z-index: -1;
}
.h-outline__head{
    margin-bottom: 4em;
}
.h-outline__head h2{
    font-size: 1.5em;
    font-weight: 700;
}
.h-outline__head .h-outline__shoulder{
    position: absolute;
    font-size: 1.1rem;
    font-weight: 700;
    color: #ff0000;
    top: 44px;
    left: 0;
    letter-spacing: 0.05em;
}
.h-outline__txt{
    margin: 2em 0;
}
.h-outline__txt h3{
    font-size: 1.2em;
    margin-bottom: 0.5em;
    color: #ff0000;
}
.h-outline__txt p{
    line-height: 1.8;
    margin-bottom: 0.5em;
}
.h-outline__note{
    margin: 0.5em 0;
}
.h-outline__note li{
    position: relative;
    font-size: 0.9em;
    line-height: 1.8;
    padding:0 0 0 1em;
}
.h-outline__note li::before{
    position: absolute;
    content: "※";
    left: 0;
}
.h-outline__portlait{
    width: 54vw;
    max-width: 960px;
    position: absolute;
    z-index: -100;
    right: 0;
    bottom: 0;
}
.h-outline__caps{
    text-align: right;
    margin: 2.4em 70px 40px 0;
}

/*
    Home -> h-section
******************************/
.h-section{
    position: relative;
    max-width: 1680px;
    padding: 20px 0 60px;
    margin: 0 auto;
}
.h-section__head{
    position: relative;
    padding: 40px 70px 0 140px;
    margin: 0 60px 6.4em;
}
.h-section__head h2{
    font-size: 1.5em;
    font-weight: 700;
}
.h-section__head .h-section__shoulder{
    position: absolute;
    font-size: 1.1rem;
    font-weight: 700;
    color: #ff0000;
    top: 44px;
    left: 0;
    letter-spacing: 0;
}
.h-section__lines .line__left{
    display: block;
    position: absolute;
    width: 2px;
    height: 120px;
    background: #000;
    top: 0;
    left: 110px;
    z-index: -1;
}
.h-section__lines .line__top{
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #000;
    top: 90px;
    left: 0;
    z-index: -1;
}
.h-section__num{
    position: absolute;
    display: block;
    width: 90px;
    height: 108px;
    background-repeat: no-repeat;
    background-size: 100%;
    top: 3px;
    left: 54px;
}
.h-section_01,
.h-section_02,
.h-section_03,
.h-section_04{
    background-repeat: no-repeat;
    background-size: contain;
}

.h-section_01{ background-image: url(../img/h_section_01_bg.jpg); }
.h-section_02{ background-image: url(../img/h_section_02_bg.jpg); }
.h-section_03{ background-image: url(../img/h_section_03_bg.jpg); }
.h-section_04{ background-image: url(../img/h_section_04_bg.jpg); }

.h-section_01 .h-section__num{ background-image: url(../img/h_section_num_01.png); }
.h-section_02 .h-section__num{ background-image: url(../img/h_section_num_02.png); }
.h-section_03 .h-section__num{ background-image: url(../img/h_section_num_03.png); }
.h-section_04 .h-section__num{ background-image: url(../img/h_section_num_04.png); }
.h-section_05 .h-section__num{ background-image: url(../img/h_section_num_05.png); }

.h-section__body{
    position: relative;
    padding: 40px 60px 0 200px;
    margin-bottom: 1.5em;
}
.h-section__txt{
    position: relative;
    margin: 0;
    padding-bottom: 1.0em;
}
.h-section__txt .h-section__lines .line__block{
    display: block;
    position: absolute;
    width: 2px;
    height: calc( 100% - 1.8em );
    background: #000;
    top: 0.9em;
    left: -30px;
    z-index: -1;
}
.h-section__txt .h-section__lines .line__paragraph{
    display: block;
    position: absolute;
    width: 2px;
    height: 100%;
    background: #000;
    top: -0.9em;
    left: -30px;
    z-index: -1;
}
.h-section__txt h3{
    font-size: 1.8em;
    margin-bottom: 1em;
}
.h-section__txt p{
    line-height: 2;
    margin-bottom: 1em;
}
.h-section__img{
    width: 80%;
    margin: 3em auto;
}
.h-section__img figure{
    margin-bottom: 1em;
}

/*
    Home -> h-ticket
******************************/
.h-ticket{
    position: relative;
    max-width: 1680px;
    padding: 80px 60px;
    margin: 0 auto;
}
.h-ticket__inner{
    position: relative;
    padding: 6.4vw 6.4vw 3.2vw;
    border: 2px solid #000;
}
.h-ticket__lines .line__lt,
.h-ticket__lines .line__lb,
.h-ticket__lines .line__rt,
.h-ticket__lines .line__rb{
    position: absolute;
    width: 40px;
    height: 40px;
    background-repeat: no-repeat;
    background-size: 100%;
    z-index: 500;
}
.h-ticket__lines .line__lt{
    background-image: url(../img/h_ticket_corner_lt.png);
    top: -2px;
    left: -2px;
}
.h-ticket__lines .line__lb{
    background-image: url(../img/h_ticket_corner_lb.png);
    bottom: -2px;
    left: -2px;
}
.h-ticket__lines .line__rt{
    background-image: url(../img/h_ticket_corner_rt.png);
    top: -2px;
    right: -2px;
}
.h-ticket__lines .line__rb{
    background-image: url(../img/h_ticket_corner_rb.png);
    bottom: -2px;
    right: -2px;
}

.h-ticket__head{
    position: absolute;
    width: 100%;
    top: -64px;
    left: 0;
    text-align: center;
}
.h-ticket__head h2{
    font-size: 2em;
    background: #fff;
    padding: 0 80px;
    display: inline-block;
    line-height: 1.3;
}
.h-ticket__head h2 span{
    font-size: 1.2rem;
    color: #ff0000;
}
.h-ticket__body{}
.h-ticket__body .h-ticket__sub{
    margin: 4.8em 0 3em;
    text-align: center;
}
.h-ticket__body .h-ticket__sub h3{
    font-size: 1.6em;
}
.h-ticket__body .h-ticket__txt{
    margin-bottom: 3em;
    text-align: center;
}
.h-ticket__body .h-ticket__txt h3{
    border-top: 2px solid #bbb;
    border-bottom: 2px solid #bbb;
    padding: 1.2em 0;
    margin-bottom: 2em;
    font-size: 1.3rem;
    font-weight: 400;
    text-align: center;
    color: #ff0000;
}
.h-ticket__body .h-ticket__txt p{
    line-height: 1.8;
}


/*
    Home -> Coming Soon
******************************/

.cs-wrapper{
    margin: 128px 0;
    position: relative;
    width: 100%;
    background-image: url(../img/h_cs_wrapper_bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

/*
    Home -> h-event
******************************/
.h-event{
    position: relative;
    padding: 12vw 6.4vw;
    background: rgba(0,0,0,0.2);
    margin: 0;
}
.h-event .h-event__head{
    position: relative;
    text-align: center;
    margin-bottom: 2em;
    color: #fff;
}
.h-event .h-event__head h2{
    position: relative;
    font-size: 1.6em;
}
.h-event .h-event__head h2 span{
    display: block;
    position: relative;
}
.h-event .h-event__head h2 span::after{
    content: "";
    display: block;
    width: 48px;
    height: 2px;
    margin: 24px auto;
    background: #fff;
}
.h-event__body{
    text-align: center;
    color: #fff;
    font-size: 1.1em;
}
.h-event__body h3{
    margin-bottom: 1em;
}
.c-event__btn{}

/*
    Home -> h-goods
******************************/
.h-goods{
    position: relative;
    padding: 16vw 6.4vw;
    background: rgba(0,0,0,0.4);
    margin: 0;
}
.h-goods .h-goods__head{
    position: relative;
    text-align: center;
    margin-bottom: 2em;
    color: #fff;
}
.h-goods .h-goods__head h2{
    position: relative;
    font-size: 1.6em;
}
.h-goods .h-goods__head h2 span{
    display: block;
    position: relative;
}
.h-goods .h-goods__head h2 span::after{
    content: "";
    display: block;
    width: 48px;
    height: 2px;
    margin: 24px auto;
    background: #fff;
}
.h-goods__body{
    text-align: center;
    color: #fff;
    font-size: 1.1em;
}

/*
    Home -> bgm
******************************/
.bgm{}
.bgm .bgm-control{
    position: fixed;
    z-index: 900;
    top: 24px;
    left: 2.4vw;
}
.bgm .bgm-control .btn__play,
.bgm .bgm-control .btn__pause{
    display: block;
    position: relative;
    width: 50px;
    height: 50px;
    transition: .4s;
    border: 1px solid rgba(0,0,0,0.5);
    background-color: rgba(255,255,255,0.8);
    border-radius: 100%;
    overflow: hidden;
    z-index: 10;
}
.bgm .bgm-control .btn__play span,
.bgm .bgm-control .btn__pause span{
    display: block;
    width: 50px;
    height: 50px;
    background-image:url(../img/btn_play.png);
    background-repeat: no-repeat;
    background-size: 100%;
    text-indent: -9999px;
    border-radius: 100%;
    overflow: hidden;
    transition: .4s;
}
.bgm .bgm-control .btn__play span:hover,
.bgm .bgm-control .btn__pause span:hover{
    background-color: rgba(255,255,255,1);
}
.bgm .bgm-control .btn__play{}
.bgm .bgm-control .btn__pause{
    display: none;
}
.bgm .bgm-control .btn__pause span{
    animation: fluffy 1.9s linear infinite;
    animation-delay: .3s;
}
@keyframes fluffy {
    0% { transform:translateY(0) }
    25% { transform:translateY(4px) }
    75% { transform:translateY(-4px) }
    100% { transform:translateY(0) }
}
.bgm .bgm-control .btn__pause::after{
    content: "";
    position: absolute;
    height: 50px;
    width: 25px;
    border-right: 1px solid rgba(0,0,0,0.7);
    -moz-transform: skew(-45deg);
    -webkit-transform: skew(-45deg);
    transform: skew(-45deg);
    top: 0;
    left: 0;
    z-index: 5;
}
.bgm .bgm-control .btn__replay{}

.h-bgm-credit{
    position: relative;
    width: 94%;
    margin: 9.6vw auto 3.2vw;
    padding: 3em 1.5em;
    border-left: 5px solid #222;
    border-right: 1px solid #222;
    border-top: 1px solid #222;
    border-bottom: 1px solid #222;
    text-align: center;
}
.h-bgm-credit::before{
    content: "";
    display: block;
    position: absolute;
    width: 60px;
    height: 60px;
    background-color: #fff;
    background-image:url(../img/btn_play.png);
    background-repeat: no-repeat;
    background-size: 100%;
    top: -30px;
    left: 50%;
    margin-left: -30px;
}
.h-bgm-credit::after{
    content: "";
    display: block;
    position: absolute;
    width: 1px;
    height: 100%;
    background-color: #222;
    top: 0;
    left: calc( 2% + 5px);
    margin-left: -30px;
}
.h-bgm-credit h2{
    font-size: 1.2em;
    margin-bottom: 1em;
}
.h-bgm-credit p{
    line-height: 2;
}
.h-bgm-credit p span{
    font-size: 0.85em;
}
