@charset "UTF-8";

/* ------------------------------------------------------------------------------------------ */
/* games */
/* ------------------------------------------------------------------------------------------ */

/* top */
.contents-top {
    background: #000;
    width: 100%;
    position: relative;
    z-index: 50;
}

.contents-top .top-inner {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
}

.contents-top .top-inner:before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
}

.contents-top.game-arcade .top-inner:before {
    background: url(../img/arcade_top_sp.jpg) center top no-repeat;
    background-size: 100% auto;
}
.contents-top.game-dracula .top-inner:before {
    background: url(../img/dracula_top_sp.jpg) center top no-repeat;
    background-size: 100% auto;
}
.contents-top.game-contra .top-inner:before {
    background: url(../img/contra_top_sp.jpg) center top no-repeat;
    background-size: 100% auto;
}

.contents-top .top-inner:after {
    content: '';
    display: block;
    width: 100%;
    height: 50%;
    background: -moz-linear-gradient(bottom, #000 60%, rgba(0, 0, 0, 0));
    background: -webkit-linear-gradient(bottom, #000 60%, rgba(0, 0, 0, 0));
    background: linear-gradient(to top, #000 60%, rgba(0, 0, 0, 0));
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: -1;
}

.contents-top .info {
    box-sizing: border-box;
    width: 100%;
    max-width: 420px;
    margin: 0 auto;
    position: relative;
}

.contents-top .info:before {
    content: '';
    display: block;
    width: 100%;
    height: 70vw;
}

.contents-top .info img {
    width: 100%;
}

.contents-top .logo-main {
    width: 100%;
    margin: 0 auto;
}

.contents-top .logo-main-text {
    width: 100%;
    margin: 0 auto;
    font-size: 10px;
    text-align: center;
}

.contents-top.game-dracula .info .ttl {
    padding: 0 3%;
}
.contents-top.game-dracula .logo-main-text {
    margin-top: 3%;
}

.contents-top.game-contra .info .ttl {
    padding: 0 5%;
}
.contents-top.game-contra .logo-main-text {
    margin-top: 2%;
}

.contents-top .logo-50th {
    max-width: 65px;
    position: absolute;
    left: 4%;
    top: 2%;
}

.contents-top .logo-50th img {
    width: 100%;
}

.contents-top .pratform {
    width: 100%;
    margin: 0 auto;
    padding: 20px 0;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    -webkit-align-items: center;
    align-items: center;
    -webkit-justify-content: center;
    justify-content: center;
}

.contents-top .pratform span {
    box-sizing: border-box;
    width: 23%;
    display: block;
    padding: 0 3%;
}

.contents-top .pratform span:nth-child(1) {
    width: 20%;
}
.contents-top .pratform span:nth-child(2) {
    width: 28%;
}

.contents-top .pratform img {
    width: 100%;
}


@media screen and (min-width: 601px){
    .contents-top .logo-50th {
        left: 2%;
    }

    .contents-top .logo-main {
        width: auto;
        margin: 0;
    }

    .contents-top .logo-50th {
        width: 8vw;
    }

    .contents-top .top-inner:after {
        display: none;
    }

    .contents-top .top-inner {
        max-height: 437px;
    }


    .contents-top .info {
        width: 42%;
        height: 45vw;
        max-height: 437px;
        margin: 0;
        position: relative;
    }

    .contents-top .info .ttl {
        padding: 0 3%;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
    }

    .contents-top .info:before {
        display: none;
    }

    .contents-top .pratform {
        width: 95%;
        padding: 0;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: 5%;
    }

    .contents-top.game-arcade .info .ttl {
        padding: 0 4%;
    }
    .contents-top.game-arcade .top-inner:before {
        right: -10%;
        background: url(../img/arcade_top_pc.jpg) right center no-repeat;
        background-size: auto 100%;
    }

    .contents-top.game-dracula .top-inner:before {
        right: -20%;
        background: url(../img/dracula_top_pc.jpg) center top no-repeat;
        background-size: auto 100%;
    }

    .contents-top.game-contra .info .ttl.ja {
        margin-top: 2%;
        padding: 0 8%;
    }

    .contents-top.game-contra .info .ttl.en {
        margin-top: 2%;
        padding: 0 1%;
    }

    .contents-top.game-contra .top-inner:before {
        right: -20%;
        background: url(../img/contra_top_pc.jpg) center top no-repeat;
        background-size: auto 100%;
    }
}

@media screen and (min-width: 1201px){
    .contents-top .top-inner {
        height: 437px;
    }
}


/* ------------------------------------------------------------------------------------------ */

/* main */
.contents-main {
    position: relative;
    z-index: 40;
    background: rgba(0, 0, 0, 0.6);
}

.contents-main:before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    max-width: 693px;
    max-height: 693px;
    position: absolute;
    left: 50%;
    top: -10%;
    transform: translateX(-50%);
    background: url(../img/top_band_effect.png) center center no-repeat;
    background-size: 100% auto;
}

@media screen and (min-width: 751px){
    .contents-main:before {
        top: -400px;
        opacity: 0.5;
    }
}


/* ------------------------------------------------------------------------------------------ */

/* contents-info */

.contents-info {
    width: 90%;
    max-width: 980px;
    margin: 25px auto;
    position: relative;
}

.contents-info .info-text {
    font-size: 13px;
    padding: 20px 0 70px;
}

.contents-info.is-store_off .info-text {
    padding-bottom: 10px;
}

.contents-info .info-text h1 {
    width: 100%;
    padding: 0 5px 10px;
    margin-bottom: 10px;
    box-sizing: border-box;
    line-height: 26px;
    border-bottom: 1px rgba(255, 255, 255, 0.3) solid;
    text-align: left;
}


.contents-info .info-text h1 img {
    height: 13vw;
    max-height: 56px;
}
.contents-info .info-text h1.dracula.ja img { max-height: 60px; }

.contents-info .info-text h1.arcade.en img {
    height: 7vw;
    max-height: 35px;
}
.contents-info .info-text h1.contra.en img {
    max-height: 77px;
}
.contents-info .info-text h1.dracula.en img {
    height: 13vw;
    max-height: 56px;
}

@media screen and (min-width: 751px) {
    .contents-info {
        width: 95%;
    }

    .contents-info .info-text h1 img {
        height: 2.2vw;
        max-height: 24px;
    }

    .contents-info .info-text h1.dracula.ja img {
        max-height: 25px;
    }

    .contents-info .info-text h1.arcade.en img {
        height: 2.2vw;
        min-height: 20px;
        max-height: 26px;
    }

    .contents-info .info-text h1.dracula.en img {
        height: 2.2vw;
        min-height: 18px;
        max-height: 21px;
    }
    .contents-info .info-text h1.contra.en img {
        height: 2.2vw;
        min-height: 57px;
    }
}


.contents-info .info-text span {
    display: inline-block;
}

.contents-info .buy {
    width: 100%;
}

.contents-info .buy .text.ja,
.contents-info .buy .text.en {
    margin: 0 auto;
}

.contents-info .buy .text.ja {
    max-width: 308px;
}

.contents-info .buy .text.en {
    max-width: 325px;
}

.contents-info .buy .text img {
    width: 100%;
}

.contents-info .buy .button {
    width: 70%;
    max-width: 217px;
    box-sizing: border-box;
    margin-top: 10px;
    position: absolute;
    left: 50%;
    bottom: -75px;
    transform: translateX(-50%);
}

.contents-info .buy .button img {
    width: 100%;
}

@media screen and (min-width: 751px){

    .contents-info .buy {
        width: 40%;
        position: absolute;
        right: 0;
        top: 80%;
        transform: translateY(-50%);
        text-align: center;
        padding-left: 20px;
    }
    .contents-info.is-store_off .buy {
        top: 50%;
    }
    .contents-info.is-store_off .buy {
        top: 58%;
    }

    .contents-info .info-text {
        min-height: 130px;
        width: 60%;
        padding: 0;
    }

    .contents-info .buy .button {
        position: relative;
        left: auto;
        bottom: auto;
        transform: none;
        margin: 0 auto;
        transition: .5s;
    }

    .contents-info .buy .button:hover {
        transform: translateY(10px);
    }

    .contents-info.is-store_on .buy .text.en {
        margin-bottom: 15px;
    }

}

/* ------------------------------------------------------------------------------------------ */

/* movie */
.contents-movie {
    width: 90%;
    max-width: 600px;
    margin: 0 auto;
    padding: 50px 0 30px;
}

@media screen and (min-width: 751px){
    .contents-movie {
        padding: 70px 0 60px;
    }
}

/* ------------------------------------------------------------------------------------------ */

/* list */
.contents-list {
    padding: 50px 0 20px;
    text-align: center;
}

.contents-list span {
    display: inline-block;
}

.contents-list ul {
    padding: 0 20px;
    max-width: 1040px;
    margin: 0 auto;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
}

.contents-list .text {
    font-size: 12px;
    margin: 3px 0 10px;
}

.contents-list .img {
    width: 100%;
    background: rgba(0, 0, 0, 0.7);
    border: 1px rgba(255, 255, 255, 0.7) solid;
    line-height: 0;
    overflow: hidden;
}

.contents-list .games {
    margin-top: 30px;
}

.contents-list .games span {
    display: block;
    text-align: left;
    color: #f1b647;
}

.contents-list .games li {
    width: 48%;
    margin: 0 1% 3%;
}

.contents-list .games .img {
    height: 34vw;
    max-height: 235px;
    position: relative;
}

.contents-list .games .img img {
    width: auto;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
}

.contents-list .bonus li {
    width: 98%;
    margin: 0 1% 3%;
}
.contents-list .bonus a {
    display: block;
}

.contents-list .bonus .img {
    box-sizing: border-box;
    padding: 0 20px;
    width: 100%;
    overflow: hidden;
}

.contents-list .bonus .img img {
    max-width: 95%;
    margin: 20px 0;
}

.contents-list .bonus .text {
    text-align: left;
}

@media screen and (min-width: 751px){
    .contents-list .text {
        margin: 10px 0 0;
    }

    .contents-list .games li {
        width: 23%;
    }

    .contents-list .games li .is-modal_open img,
    .contents-list .bonus li .is-modal_open-bonus img {
        transition: .3s;
    }
    .contents-list .games li .is-modal_open:hover img {
        height: 110%;
    }
    .contents-list .bonus li .is-modal_open-bonus:hover img {
        transform: scale(1.05);
    }

    .contents-list .games .img {
        height: 16vw;
        max-height: 170px;
    }

    .contents-list .bonus li {
        width: 48%;
    }
}

/* ------------------------------------------------------------------------------------------ */

/* modal */

.contents-modal,
#modal-game,
#modal-bonus,
#sample-innner li,
#sample-innner-bonus li {
    display: none;
}

.contents-modal span {
    display: inline-block;
}

.contents-modal.is-active,
#modal-game.is-active,
#modal-bonus.is-active,
#sample-innner li.is-active,
#sample-innner-bonus li.is-active {
    display: block;
}

#sample-select li,
#sample-select-bonus li {
    border: 1px #a81c2a solid;
}

#sample-select li.is-active,
#sample-select-bonus li.is-active {
    border: 1px #fff solid;
}

.contents-modal {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    overflow: hidden;
    overflow-y: auto; /* scrollにはしないことでスクロールの必要がないときはスクロールバーを表示させない */
    -webkit-overflow-scrolling: touch;
    z-index: 1000;
}

.contents-modal .modal-posi {
    width: 90%;
    max-width: 780px;
    margin: 0 auto;
    padding-bottom: 100px;
    position: relative;
    z-index: 1100;
}

.contents-modal .modal-main {
    position: relative;
    border: 3px #a0a0a0 solid;
    background: #000;
}

.contents-modal .modal-main .innner {
    width: 100%;
}

.contents-modal .modal-main .innner ul {
     position: relative;
     width: 100%;
     height: 50vw;
     max-height: 435px;
     overflow: hidden;
 }

.contents-modal .modal-main .innner iframe {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 50vw;
    max-height: 435px;
}
.contents-modal .modal-main .innner img {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
    width: auto;
}

.contents-modal .modal-main .select {
    width: 100%;
    padding: 3% 8% 1%;
    background: -moz-linear-gradient(left, #63030e, #950111 50%, #63030e);
    background: -webkit-linear-gradient(left, #63030e, #950111 50%, #63030e);
    background: linear-gradient(to right, #63030e, #950111 50%, #63030e);
    position: relative;
}
.contents-modal .modal-main .select ul {
    width: 95%;
    margin: 0 auto;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.contents-modal .modal-main .select li {
    width: 31.3333%;
    height: 14vw;
    margin: 0 1% 3%;
    background: #000;
    position: relative;
    overflow: hidden;
}
.contents-modal .modal-main .select li p {
    cursor: pointer;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    text-align: center;
}

.contents-modal .modal-main .select img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    height: 100%;
    width: auto;
}

.contents-modal .modal-main .select .is-movie {
    position: relative;
}
.contents-modal .modal-main .select .is-movie:after {
    content: '';
    display: block;
    width: 40px;
    height: 40px;
    background: url(../img/icon_play.png) no-repeat;
    background-size: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
}
.contents-modal .modal-main .select .is-movie:after {
    cursor: pointer;
}

@media screen and (min-width: 751px){
    .contents-modal .modal-posi {
        padding-bottom: 100px;
    }

    .contents-modal .modal-main .select {
        padding: 20px;
    }

    .contents-modal .modal-main .select li {
        width: 14.66%;
        height: 8.5vw;
        max-height: 70px;
        margin: 0 1%;
    }

    .contents-modal .modal-main .select li img {
        transition: .2s;
    }

    .contents-modal .modal-main .select li:hover img {
        height: 110%;
    }
}


/* info */
.contents-modal .game-info {
    width: 100%;
    padding: 15px 20px;
    font-size: 12px;
    line-height: 20px;
    background: #2c2c2c;
    position: relative;
}

.contents-modal .game-info li {
    display: none;
}

.contents-modal .game-info li.is-active {
    display: block;
}

.contents-modal .game-info .ttl span {
    display: inline-block;
}

.contents-modal .game-info .ttl .name,
.contents-modal .game-info .ttl .release,
.contents-modal .game-info .ttl .tag {
    display: inline-block;
}

.contents-modal .game-info .ttl .name {
    font-size: 20px;
    line-height: 24px;
}

.contents-modal .game-info .ttl .name span {
    font-size: 13px;
}

.contents-modal .game-info .ttl .release {
    font-size: 12px;
    margin-left: 2px;
}
.contents-modal .game-info .ttl .tag {
    margin-left: 5px;
    padding: 5px 8px;
    font-size: 10px;
    line-height: 1;
    color: #bfbfbf;
    border-radius: 20px;
    background: #535353;
}
.contents-modal .game-info .copy {
    margin-top: 5px;
}

.contents-modal .game-info .note {
    margin-top: 10px;
    color: #bfbfbf;
}

.contents-modal .game-info .bonus-ttl {
    color: #f8b551;
}

.contents-modal .game-info .bonus-text {
    padding-left: 1em;
}


@media screen and (min-width: 751px){
    .contents-modal .game-info .ttl .tag {
        position: absolute;
        top: 14px;
    }
}

/* system */
.contents-modal .close-button {
    position: absolute;
    right: -3px;
    top: -51px;
    height: 48px;
}

.contents-modal .close-button img {
    height: 100%;
}

.contents-modal .is-modal_close,
.is-modal_open,
.is-modal_open-bonus {
    cursor: pointer;
}


