/************************************
  base
************************************/
#wrapper:before {
    background: url(../../images/common/bg04_white.jpg) center / cover;
    position: fixed;
    z-index: -1;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

h3.sec_title {
    display: block;
    text-align: center;
    font-weight: 900;
    font-style: italic;
    position: relative;
}
h3.sec_title span.title:after {
    content: "";
    position: absolute;
    width: 0;
    height: 3px;
    bottom: 0;
    left: 0;
    background-color: #fff;
    transition: 1s;
    transition-delay: .2s;
}
h3.sec_title.active span.title:after {
    width: 100%;
}

h3.sec_title span.ruby {
    display: inline-block;
    font-size: min(.32rem, 32px);
    letter-spacing: 0.05em;
    line-height: 1;
}

h3.sec_title span.title {
    display: inline-block;
    font-size: min(.65rem, 65px);
    letter-spacing: 0.025em;
    position: relative;
    padding-bottom: .2em;
}
h3.sec_title_wide {
    border-bottom: min(0.1563vw, 3px) solid #000;
    padding-bottom: min(1.5625vw, 30px);
    margin-bottom: min(2.0833vw, 40px);
    line-height: 1;
    font-weight: 900;
    font-style: italic;
}
h3.sec_title_wide .ruby {
    font-size: min(.25rem, 25px);
    margin-right: min(1.3021vw, 25px);
}
h3.sec_title_wide span.title {
    font-size: min(.44rem, 44px);
}
@media screen and (max-width: 768px) {
    h3.sec_title span.ruby {
        font-size: .32rem;
    }
    h3.sec_title span.title {
        font-size: .6rem;
        line-height: 1.4;
    }
    h3.sec_title_wide span.title {
        font-size: .41rem;
    }
    h3.sec_title_wide .ruby {
        font-size: .25rem;
    }   
    h3.sec_title_wide {
        padding-bottom: 2.6667vw;
        margin-bottom: 6.6667vw;
        border-bottom: 0.4vw solid #000;
    }
}
.title_wrapper {
    text-align: center;
}
.court_bg {
    background-color: #000;
}
#court_bg_fade li {
    position: absolute;
    width: 100%;
    height: 100vh;
    top: 0px;
    left: 0px;
}
#court_bg_fade li::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    z-index: 2;
    background: rgba(0, 0, 0, 0.6);
}
#court_bg_fade li img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/************************************
  fv
************************************/
#fv {
    position: relative;
}
#fv .fv_inner {
    display: flex;
    align-items: center;
}
#fv .fv_inner .img_area {
    width: 58%;
}
#fv .fv_inner .text_area {
    width: 42%;
    text-align: center;
}
#fv .fv_inner .text_area .info_wrapper {
    background-color: #fff;
    padding: 1.3021vw 0px;
    margin-bottom: 2.8646vw;
}
.fv_inner .text_area .info_wrapper p.text {
    font-size: .26rem;
}
#fv h1 {
    width: 33.8542vw;
    margin: 0 auto 1.0417vw;
}
#fv h2 {
    font-size: .32rem;
    font-weight: 900;
    font-style: italic;
    text-align: center;
    margin-bottom: 1.5625vw;
}
#fv .platform {
    width: 32.0313vw;
    margin: 0.7813vw auto 0;
}
#fv .platform .platform_inner {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
#fv .platform .platform_inner .platform_switch {
    width: 17.59%;
}
#fv .platform .platform_inner .platform_ps4 {
    width: 19.39%;
}
#fv .platform .platform_inner .platform_xone {
    width: 18.56%;
}
#fv .platform .platform_inner .platform_windows {
    width: 16.34%;
}
#fv .platform .platform_inner .platform_steam {
    width: 12.18%;
}
#fv p.release {
    font-size: .48rem;
    margin-bottom: 1.3021vw;
    font-style: italic;
}
#fv p.release small {
    font-size: .7em;
}
#fv .reserve_btn {
    margin-bottom: 3.6458vw;
}
#fv .sns {
    display: flex;
    justify-content: center;
    align-items: center;
}
#fv .sns a.X img {
    width: 2.1875vw;
}
#fv .sns a.Facebook img {
    width: 2.9687vw;
}
#fv .sns a.YouTube img {
    width: 3.125vw;
}
#fv .sns a:not(:first-child) {
    margin-left: 1.3020vw;
}
#fv .sns a.nl_btn {
    height: 3.75vw;
    background-color: #23557e;
    padding: 0 1.5625vw;
    display: flex;
    align-items: center;
    margin-left: 2.0833vw;
    cursor: pointer;
}
#fv .sns a.nl_btn span.icon_nl {
    margin-right: 0.7813vw;
    width: 1.6667vw;
}

#fv .sns a.nl_btn span {
    color: #fff;
    font-size: .12rem;
}
.en-US #fv .sns a.nl_btn span {
    font-size: 0.2rem;
    line-height: 1;
}
#fv .award {
    position: absolute;
}
body.ja #fv .sns a.X {
    height: 3.75vw;
    background-color: #000;
    padding: 0.7812vw;
    display: flex;
    align-items: center;
    margin-left: 2.0833vw;
    transition: opacity .2s;
}
body.ja #fv .sns a.X:hover {
    opacity: .8;
}
body.ja #fv .sns a.X img {
    width: 1.8229vw;
}
body.ja #fv .sns a.nl_btn {
    margin-left: 1.3021vw;
}

@media screen and (min-width: 769px) {
    #fv .reserve_btn a {
        min-width: 27vw;
        padding: 1.5625vw 40px;
        font-size: .37rem;
        box-shadow: 5px 5px 0 rgba(0,0,0,0.1);
    }
    body[class^="en"] #fv h1, body.fr #fv h1, body.de #fv h1 {
        width: 26.0416vw;
    }
    body.ja #fv h1 {
        width: 31.4583vw;
    }
}

@media screen and (max-width: 768px) {
    #fv .fv_inner {
        display: block;
    }
    #fv .fv_inner .img_area {
        width: 100%;
    }
    #fv .fv_inner .text_area {
        width: 100%;
        margin-top: -28vw;
    }
    #fv h1 {
        width: 80.5333vw;
        margin: 0 auto 2.6667vw;
    }
    #fv h2 {
        font-size: .32rem;
        margin-bottom: 4vw;
    }
    #fv .fv_inner .text_area .info_wrapper {
        padding: 4vw 0;
        margin-bottom: 6vw;
    }
    .fv_inner .text_area .info_wrapper p.text {
        line-height: 1.4;
    }
    #fv .platform {
        width: 82.6667vw;
        margin: 1.3333vw auto 0;
    }
    #fv p.release {
        margin-bottom: 4vw;
        font-size: .48rem;
    }
    #fv .reserve_btn {
        margin-bottom: 6.6667vw;
    }
    #fv .sns {
        margin-bottom: 10.6667vw;
    }
    #fv .sns a.X img {
        width: 5.6vw;
    }
    #fv .sns a.Facebook img {
        width: 7.6vw;
    }
    #fv .sns a.YouTube img {
        width: 8vw;
    }
    #fv .sns a:not(:first-child) {
        margin-left: 4vw
    }
    #fv .sns a.nl_btn {
        height: 10vw;
        padding: 2.6667vw;
        margin-left: 5.3333vw;
    }
    .en-US #fv .sns a.nl_btn {
        padding: 2.6667vw 4vw;
    }
    #fv .sns a.nl_btn span.icon_nl {
        width: 4.6667vw;
        margin-right: 2.1333vw;
    }
    #fv .sns a.nl_btn span {
        font-size: .14rem;
    }
    body.ja #fv .sns a.X {
        height: 10vw;
        padding: 0 2.5vw;
    }
    body.ja #fv .sns a.X img {
        width: 4.6667vw;
    }
    body.ja #fv .sns a.nl_btn {
        margin-left: 2.6667vw
    }
    .en-US #fv .sns a.nl_btn span {
        font-size: .18rem;
    }
    /* ゲーム大賞 */
    body.ja #fv .award {
        top: 2.6666vw;
        left: 2.6666vw;
        width: 21.3333vw;
    }
}


/************************************
  告知バナー
************************************/
section#banner {
    background-color: #b4b4b4;
}
#banner .banner_inner {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
    padding: min(2.0833vw, 40px) 0;
}
#banner .banner_box {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
#banner .banner_box .banner_item {
    border: 2px solid #000;
}
@media screen and (min-width: 769px) {
    #banner .banner_box .banner_item {
        width: 48.5%;
    }
    #banner .banner_box .banner_item:nth-child(2n) {
        margin-left: 3%;
    }
    #banner .banner_box .banner_item:nth-child(n+3) {
        margin-top: min(1.0416vw, 20px);
    }
}
@media screen and (max-width: 768px) {
    #banner .banner_inner {
        width: 84vw;
        padding: 5vw 0;
    }
    #banner .banner_box {
        display: block;
    }
    #banner .banner_box .banner_item {
        width: 100%;
        margin-bottom: 5.3333vw;
        display: block;
    }
    #banner .banner_box .banner_item:last-child {
        margin-bottom: 0;
    }
}


/************************************
  トピックス
************************************/
#news {
    overflow: hidden;
    background-color: rgba(255,255,255,.8);
}
#news .news_inner {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
    padding: min(5.2083vw, 100px) 0 min(2.0833vw, 40px);
}
#news .news_box {
    padding-bottom: min(1.0417vw, 20px);
}
#news .news_slide .swiper-scrollbar {
    bottom: max(-2.0833vw, -40px);
    width: 50%;
    margin: auto;
    left: 0;
    right: 0;
    background-color: rgba(0,0,0,.1);
    height: 6px;
    border-radius: 0;
    transform: skewX(-22deg);
}
#news .news_slide .swiper-scrollbar-drag {
    background-color: #d3101d;
    border-radius: 0;
}
.news_slide {
    position: relative;
}
#news .news_slide ul.news_box li.news_item.swiper-slide {
    margin-right: min(1.5625vw, 30px);
    width: min(26.0416vw, 500px);
}
#news .news_thumb {
    border: 2px solid #000;
}
#news p.news_date {
    margin-top: min(1.0417vw, 20px);
    font-size: min(.19rem, 19px);
    letter-spacing: 0.05em;
    color: #d3101d;
    line-height: 1;
}
#news p.news_text {
    margin-top: min(1.0417vw, 20px);
    font-size: min(.17rem, 17px);
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: .075em;
}
@media screen and (max-width: 768px) {
    #news .news_inner {
        width: 84vw;
        padding: 10.6667vw 0;
    }
    #news .news_slide .swiper-scrollbar {
        bottom: -8vw;
    }
    #news .news_slide ul.news_box li.news_item.swiper-slide {
        margin-right: 4vw;
    }
    #news p.news_date {
        margin-top: 2.6667vw;
        font-size: .24rem;
    }
    #news p.news_text {
        margin-top: 2.6667vw;
        font-size: .22rem;
    }
}


/************************************
  映像
************************************/
#trailer {
    overflow: hidden;
    background-color: rgba(255,255,255,.8);
}
#trailer .trailer_inner {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
    padding: min(5.2083vw, 100px) 0 min(7.29167vw, 140px);
}
#trailer .trailerslide .swiper-scrollbar {
    bottom: max(-2.0833vw, -40px);
    width: 50%;
    margin: auto;
    left: 0;
    right: 0;
    background-color: rgba(0,0,0,.1);
    height: 6px;
    border-radius: 0;
    transform: skewX(-22deg);
}
#trailer .trailerslide .swiper-scrollbar-drag {
    background-color: #d3101d;
    border-radius: 0;
}
.trailerslide {
    position: relative;
}

#trailer .trailerslide ul.trailer_box li.trailer_item.swiper-slide {
    margin-right: min(1.5625vw, 30px);
    width: min(26.0416vw, 500px);
}
#trailer a.trailer_link {
    width: 100%;
    height: auto;
    display: block;
    border: 2px solid #000;
    position: relative;
}
#trailer a.trailer_link::before {
    background: url(../../images/common/btn_play.png) center / contain;
    content: "";
    position: absolute;
    width: min(4.7656vw, 91.5px);
    height: min(4.7656vw, 91.5px);
    bottom: min(1.3021vw, 25px);
    right: min(1.3021vw, 25px);
    z-index: 1;
}
#trailer p.trailer_title {
    margin-top: min(1.0417vw, 20px);
    font-size: min(.24rem, 24px);
    text-align: center;
    letter-spacing: 0.05em;
}
#trailer .trailer_box {
    margin-bottom: min(5.2083vw, 100px);
}
#trailer .trailer_btn {
    text-align: center;
    margin: 0 auto min(3.6458vw, 70px);
    color: #fff;
}
#trailer .trailer_btn a {
    padding: 3.3333vw 10.6667vw;
    font-size: .23rem;
}
#trailer .trailer_btn a:before {
    width: 1.3333vw;
    height: 2vw;
    right: 5.3333vw;
}

#trailer .trailer_btn a {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    padding: min(1.5625vw, 30px) min(5.2083vw, 100px);
    font-size: min(.21rem, 21px);
    letter-spacing: 0.05em;
    display: inline-block;
    min-width: min(22.3958vw, 430px);
}
#trailer .trailer_btn a:before {
    content: "";
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.5208vw, 10px);
    height: min(0.7813vw, 15px);
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(2.0833vw, 40px);
    margin: auto;
}
#trailer .trailer_btn a:after {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    transform: skewX(-24deg);
    content: "";
    background-color: #d3101d;
    width: 100%;
}
#trailer .archive_area {
    text-align: center;
}
#trailer .archive_area_box {
    border: 2px solid #cacaca;
    padding: min(1.5625vw, 30px) min(3.125vw, 60px);
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
}
#trailer a.sns_link {
    color: #d3101d;
    text-decoration: underline;
}
#trailer .archive_area p {
    font-size: min(.23rem,23px);
    margin-right: 2em;
}
#trailer .archive_btn {
    background-color: #d3101d;
    color: #fff;
    padding: min(0.7813vw, 15px) min(1.8229vw, 35px) min(0.7813vw, 15px) min(1.3021vw, 25px);
    position: relative;
    letter-spacing: .05em;
}
#trailer .archive_btn:before {
    content: "";
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.3125vw, 6px);
    height: min(0.46875vw, 9px);
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(0.8333vw, 16px);
    margin: auto;
}

@media screen and (max-width: 768px) {
    #trailer .trailer_inner {
        width: 84vw;
        padding: 10.6667vw 0 14.6667vw;
    }
    #trailer .trailerslide .swiper-scrollbar {
        bottom: -8vw;
    }
    #trailer .trailerslide ul.trailer_box li.trailer_item.swiper-slide {
        margin-right: 2.6666vw;
    }
    #trailer p.trailer_title {
        margin-top: 2.6667vw;
        font-size: .24rem;
    }
    #trailer a.trailer_link::before {
        width: 11.3066vw;
        height: 11.3066vw;
        bottom: 2.6666vw;
        right: 4vw;
    }
    #trailer .trailer_box {
        margin-bottom: 14vw;
    }
    #trailer .trailer_btn {
        margin: 0 auto 6vw;
    }
    #trailer .trailer_btn a {
        padding: 3vw 10.6667vw;
        font-size: .23rem;
        min-width: 40vw;
    }
    #trailer .trailer_btn a:before {
        width: 1.3333vw;
        height: 2vw;
        right: 5.3333vw;
    }
    #trailer .archive_area_box {
        padding: 2.6667vw 3vw 3vw;
        flex-wrap: wrap;
    }
    
    #trailer .archive_area p {
        width: 100%;
        margin: 0;
    }
    #trailer .archive_btn {
        margin: 0 auto;
        padding: .75em 2.5em .75em 1.75em;
        font-size: .2rem;
        margin-top: .75em;
    }
    #trailer .archive_btn:before {
        width: .9vw;
        height: 1.3333vw;
        right: 2.6666vw;
    }
}

/************************************
  逆転裁判456とは
************************************/
#about {
    position: relative;
}
#about .about_inner {
    width: min(87.5vw, 1680px);
    margin: 0 auto;
    padding: min(5.2083vw, 100px) 0 min(2.6042vw, 50px);
    color: #fff;
}
#about h3 {
    margin-bottom: min(3.6458vw, 70px);
    text-shadow: min(0.2083vw, 4px) min(0.2083vw, 4px) min(0.6771vw, 4px) rgba(0,0,0,0.8), max(-0.1042vw, -2px) max(-0.1042vw, -2px) min(0.2083vw, 4px) rgba(0,0,0,4);

}
#about ul.logo_box {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: min(2.0833vw, 40px);
}
#about ul.logo_box li:nth-child(2) {
    transition-delay: .1s;
}
#about ul.logo_box li:last-child {
    transition-delay: .2s;
}
#about .logo_box li.logo_item {
    width: min(20.8333vw, 400px);
    margin-right: min(2.0833vw, 40px);
    position: relative;
}
#about .logo_box li.logo_item:before {
    content: "+";
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    left: max(-3.125vw, -60px);
    font-size: min(1rem, 100px);
    height: min(5.2083vw, 100px);
    width: min(5.2083vw, 100px);
    text-align: center;
    line-height: 1;
}
#about .logo_box li.logo_item:first-child:before {
    content: none;
}
#about .logo_box li.logo_item:first-child {
    text-align: right;
    margin-top: max(-2.0833vw, -40px);
}
#about .logo_box li.logo_item:first-child img {
    width: 80%;
}
#about p.about_lead {
    font-size: min(.22rem, 22px);
    line-height: 1.8;
    text-align: center;
    letter-spacing: 0.05em;
    text-shadow: min(0.2083vw, 4px) min(0.2083vw, 4px) min(0.6771vw, 4px) rgba(0,0,0,0.8), max(-0.1042vw, -2px) max(-0.1042vw, -2px) min(0.2083vw, 4px) rgba(0,0,0,4);
    transition-delay: .3s;
    width: min(62.5vw, 1200px);
    margin: 0 auto;
}
#about p.about_lead span.strong {
    color: #fff000;
    font-size: 1.2em;
    margin: 0 0.1em;
}
#about .about_btn {
    text-align: center;
    margin: min(2.6042vw, 50px) auto min(5.2083vw, 100px);
}
#about .about_btn a {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    padding: min(1.5625vw, 30px) min(5.2083vw, 100px);
    font-size: min(.2rem, 20px);
    letter-spacing: 0.05em;
    display: inline-block;
}
#about .about_btn a:before {
    content: "";
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.5208vw, 10px);
    height: min(0.7813vw, 15px);
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(2.6042vw, 50px);
    margin: auto;
}
#about .about_btn a:after {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    transform: skewX(-24deg);
    content: "";
    background-color: #d3101d;
    width: 100%;
    box-shadow: min(0.2083vw, 4px) min(0.2083vw, 4px) min(0.6771vw, 13px) rgba(0,0,0,0.2), min(0.1042vw, 2px) min(0.1042vw, 2px) min(0.2083vw, 4px) rgba(0,0,0,2);
}
#about #special01, #about #special02 {
    position: relative;
    padding: min(3.6458vw, 70px) min(7.2917vw, 140px) min(4.6875vw, 90px);
    background-color: rgba(0,0,0,.7);
    margin-bottom: min(3.125vw, 60px);
}
#about #special01 {
    margin-bottom: min(3.125vw, 60px);
}
h4.special_title {
    margin-right: min(5.2083vw, 100px);
    position: relative;
    font-style: italic;
    font-weight: 900;
    line-height: 1;
}
.ko h4.special_title span.title {
    font-size: min(0.46rem, 46px);
}
#about [class^="special"] .title_box {
    display: flex;
    align-items: flex-end;
    margin-bottom: min(2.6042vw, 50px);
}
h4.special_title:after {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background-color: #fff;
    bottom: 0;
    right: max(-3.6458vw, -70px);
    transform: skewX(-30deg);
}
h4.special_title span.ruby {
    font-size: min(.27rem, 27px);
    padding-bottom: min(1.0417vw, 20px);
    display: inline-block;
    letter-spacing: 0.05em;
}
h4.special_title span.title {
    font-size: min(.49rem, 49px);
    letter-spacing: 0.025em;
}

#about [class^="special"] .title_box p {
    font-size: min(.28rem, 28px);
    letter-spacing: 0.025em;
}

#about ul.thumb_box {
    display: flex;
    justify-content: space-between;
}

#about ul.thumb_box {
    margin-bottom: min(4.1667vw, 80px);
}

#about ul.thumb_box li.thumb_item {
    width: 32%;
}

#about ul.thumb_box li.thumb_item h5 {
    line-height: 1.3;
    font-size: min(.22rem, 22px);
    padding-left: .7em;
    border-left: 8px solid #d3101d;
    margin-bottom: .7em;
    letter-spacing: 0.025em;
}
#about .thumb_slide .thumb {
    border: 1px solid #fff;
}
#about .thumb_slide span.swiper-pagination-bullet {
    opacity: .4;
    border-radius: 0;
    width: min(2.6042vw, 50px);
    height: min(1.5625vw, 30px);
    margin: 0 min(.3125vw, 6px);
    transition: opacity .2s;
    position: relative;
    background-color: transparent;
}

#about .thumb_slide span.swiper-pagination-bullet:before {
    background-color: #d3101d;
    z-index: -1;
    content: "";
    position: absolute;
    width: 100%;
    height: 4px;
    bottom: min(0.5208vw, 10px);
    left: 0;
}
#about .thumb_slide .swiper-pagination {
    position: relative;
    bottom: auto;
    height: min(1.5625vw, 30px);
    top: auto;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
#about .thumb_slide span.swiper-pagination-bullet-active, #about .thumb_slide span.swiper-pagination-bullet:hover {
    opacity: 1;
}
#about .thumb_slide .swiper {
    margin-bottom: min(1.3021vw, 25px);
}
#about .more .more_box {
    position: relative;
    min-height: min(14.3229vw, 275px);
}
#about #special01 .more .more_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#about .more {
    background-color: rgba(56,56,56,.6);
    padding: min(3.125vw, 60px) min(3.6458vw, 70px);
    width: min(62.5vw, 1200px);
    margin: 0 auto;
}
#about .more_box .thumb_slide {
    width: min(23.4896vw, 451px);
}
#special02 .more_box .thumb_slide {
    top: 0;
    left: 0;
    position: absolute;
}
#about .more .thumb_slide .swiper {
    margin: 0;
}
#about .thumb_slide + p {
    font-weight: 500;
    line-height: 1.8;
}
#about .more h5.more_title {
    line-height: 1.3;
    font-size: min(.33rem, 33px);
    padding-left: .7em;
    border-left: 8px solid #d3101d;
    margin-bottom: .7em;
    letter-spacing: 0.025em;
}
#special02 .more h5.more_title {
    margin-left: min(26.6145vw, 511px);
}
#special01 .more h5.more_title {
    width: 100%;
    margin-bottom: 1.25em;
}
#about .more .more_text {
    line-height: 2;
    font-weight: 500
}
#about .more .more_text p.caution {
    font-size: .75em;
    margin-top: 1.5em;
}
#special01 .more .more_text {
    width: min(28.6458vw, 550px);
}
#special02 .more .more_text {
    margin-left: min(26.6145vw, 511px);
}
div#music_btn {
    border: 1px solid #fff;
    padding: min(1.0417vw, 20px) min(2.0833vw, 40px);
    position: relative;
    text-align: center;
    min-width: min(14.4271vw, 277px);
    line-height: 1;
    margin: 0 auto;
    display: block;
    width: fit-content;
    cursor: pointer;
    transition: opacity .2s;
}
div#music_btn:hover {
    opacity: .8;
}
#about .music .thumb_slide + p {
    margin-bottom: min(1.0417vw, 20px);
}
#about .music_btn_box {
    text-align: center;
}
#about div#music_btn:after {
    content: "+";
    font-size: min(.3rem, 30px);
    position: absolute;
    right: min(0.5208vw, 10px);
    top: 0;
    bottom: 0;
    margin: auto;
    width: min(1.5625vw, 30px);
    height: min(1.5625vw, 30px);
    line-height: 1;
}
.animation_chara {
    position: absolute;
    width: min(29.4271vw, 565px);
    top: max(-6.7708vw, -130px);
    left: 0;
    transform: translate(-50%, 0);
    opacity: 0;
}
.animation_text {
    position: absolute;
    width: min(26.0417vw, 500px);
    top: max(-2.6042vw, -50px);
    left: min(4.1667vw, 80px);
    opacity: 0;
}
.animation_chara.active {

    animation: slideIn .5s 1.5s forwards;
}
.animation_text.active {
    animation: appear 1.5s;
}
@keyframes appear{
0% {
    opacity: 0;
    transform: translate(0);
}
5% {
    opacity: 1;
}
10% {
    transform: scale(1.1) translate(30px, 30px);
}
12% {
    transform: scale(1) translate(0);
}
14% {
    transform: translate(15px, 15px);
}
16% {
    transform: translate(-15px, -15px);
}
20% {
    transform: translate(0);
}
80% {
    opacity: 1;
}
100% {
    opacity: 0;
}
}
@keyframes slideIn {
    0% {
        opacity: 0;
        transform: translate(-50%, 0);
    }
    100% {
        opacity: 1;
        transform: translate(0);
    }
}
@media screen and (min-width: 769px) {
    body[class^="en"] #about p.about_lead {
        width: min(52.0833vw, 1000px);
    }
    body.fr #special02 h4.special_title {
        width: 28%;
    }
    body.fr #about #special02 .title_box p {
        width: 80%;
        padding-left: 2%;
    }
}
@media screen and (max-width: 768px) {
    #about .about_inner {
        width: 100%;
        padding: 10.6667vw 0 6.6667vw;
    }
    
    #about h3 {
        margin-bottom: 68vw;
    }
    body[class^="en"] #about h3 .title, body.de #about h3 .title, body.fr #about h3 .title {
        font-size: .36rem;
        padding-bottom: .5em;
    }
    .animation_chara {
        left: 24.2667vw;
        top: 22.8vw;
        width: 56.9333vw;
    }
    .animation_text {
        top: 38.6667vw;
        width: 72vw;
        right: 0;
        left: 0;
        margin: auto;
    }
    #about ul.logo_box {
        margin-bottom: 5.3333vw;
    }
    #about .logo_box li.logo_item {
        width: 30.1333vw;
        margin-right: 4vw;
    }
    #about .logo_box li.logo_item:first-child {
        margin-top: -2.6667vw;
    }
    #about .logo_box li.logo_item:before {
        left: -4.8vw;
        font-size: 6.6667vw;
        width: 6.6667vw;
        height: 6.6667vw;
    }
    #about p.about_lead {
        font-size: .23rem;
        width: 90%;
        margin: 0 auto;
    }
    #about .about_btn {
        margin: 5.3333vw auto 10.6667vw;
    }
    #about .about_btn a {
        padding: 3.3333vw 10.6667vw;
        font-size: .23rem;
    }
    #about .about_btn a:before {
        width: 1.3333vw;
        height: 2vw;
        right: 5.3333vw;
    }
    h4.special_title {
        margin-bottom: 5.3333vw;
    }
    #about [class^="special"] .title_box {
        width: 84vw;
        display: block;
        margin: 0 auto 8vw;
    }
    h4.special_title:after {
        content: none;
    }
    h4.special_title span.ruby {
        font-size: .27rem;
        margin-bottom: 1.3333vw;
    }
    h4.special_title span.title {
        font-size: .49rem;
    }
    #about [class^="special"] .title_box p {
        font-size: .24rem;
    }
    #about #special01, #about #special02 {
        padding: 8vw 0 0;
    }
    #about #special01 {
        margin-bottom: 13.3333vw;
    }
    #about ul.thumb_box {
        display: block;
        width: 84vw;
        margin: 0 auto 9.3333vw;
    }
    #about ul.thumb_box li.thumb_item {
        width: 100%;
    }
    #about ul.thumb_box li.thumb_item:first-child {
        margin-bottom: 10.6667vw;
    }
    #about ul.thumb_box li.thumb_item:nth-child(2) {
        margin-bottom: 12.6667vw;
    }
    #about ul.thumb_box li.thumb_item h5 {
        font-size: .31rem;
    }
    #about .music .thumb_slide + p {
        font-size: .23rem;
        margin-bottom: 5.3333vw;
    }
    #about ul.thumb_box li.thumb_item p {
        font-size: .23rem;
        line-height: 1.8;
    }
    div#music_btn {
        padding: 3.3333vw 6.6667vw;
        min-width: 51.4667vw;
    }
    #about div#music_btn:after {
        font-size: .4rem;
        width: 5.3333vw;
        height: 5.3333vw;
        right: 2vw;
        font-weight: 400;
    }
    #about .thumb_slide .swiper-pagination {
        height: 5.4667vw;
    }
    #about .thumb_slide .swiper {
        margin-bottom: 2vw;
    }
    #about .thumb_slide span.swiper-pagination-bullet {
        width: 9.3333vw;
        height: 5.4667vw;
        margin: 0 0.6667vw;
    }
    #about .thumb_slide span.swiper-pagination-bullet:before {
        height: 0.6667vw;
        bottom: 2vw;
    }
    #about .more {
        width: 100%;
        padding: 8vw;
    }
    #about .more .more_box {
        display: block;
        position: relative;
    }
    #about .more .more_box > * {
        width: 100%;
        position: relative;
    }
    .more_box .thumb_slide {
        position: relative;
        margin-bottom: 3.3333vw;
    }
    #about .more h5.more_title {
        margin-bottom: 4vw;
        margin-left: 0;
    }
    #about .more .more_text {
        line-height: 1.8;
        margin-left: 0;
        width: 100%;
    }
}


/************************************
  収録タイトル
************************************/
#recorded .recorded_inner {
    width: min(87.5vw, 1680px);
    margin: 0 auto;
    padding: min(2.6042vw, 50px) 0 min(6.7708vw, 130px);
    color: #fff;
}
#recorded h3.sec_title {
    text-shadow: min(0.2083vw, 4px) min(0.2083vw, 4px) min(0.6771vw, 4px) rgba(0,0,0,0.8), max(-0.1042vw, -2px) max(-0.1042vw, -2px) min(0.2083vw, 4px) rgba(0,0,0,4);
    display: inline-block;
    margin: 0;
}
#recorded .title_wrapper {
    margin-bottom: min(2.0833vw, 40px);
}
#recorded h3.sec_title.blink:after, #recorded h3.sec_title.blink:before {
background-color: #ff2634;
}
#recorded p.recorded_lead {
    font-size: min(.28rem, 28px);
    margin-bottom: min(2.0833vw, 40px);
}
section#recorded {
    text-align: center;
}
#recorded .title_box {
    display: flex;
    justify-content: space-between;
}

#recorded .title_box a.title_item {
    display: block;
    border: 2px solid;
    width: min(28.6458vw, 550px);
    height: min(40.625vw, 780px);
    background-size: cover;
    background-position: center;
    position: relative;
    transition: .3s;
    box-shadow: min(0.4167vw, 8px) min(0.4167vw, 8px) 0 rgba(0,0,0,.4);
    overflow: hidden;
}
#recorded .title_box a.title_item:first-of-type {
    background-image: url(../../images/top/title04_pc.jpg);
}
#recorded .title_box a.title_item:nth-of-type(2) {
    background-image: url(../../images/top/title05_pc.jpg);
}
#recorded .title_box a.title_item:last-of-type {
    background-image: url(../../images/top/title06_pc.jpg);
}
#recorded .title_box * {
    transition: .2s;
}
#recorded .title_box a.title_item .detail {
    color: #d3101d;
    display: inline-block;
    font-style: italic;
    font-size: min(.15rem, 15px);
    font-weight: 900;
    position: absolute;
    right: 0;
    bottom: 0;
    padding: min(0.4167vw, 8px) min(1.8229vw, 35px) min(0.4167vw, 8px) min(1.3021vw, 25px);
    line-height: 1;
    z-index: 1;
}
#recorded .title_box a.title_item .detail:before {
    position: absolute;
    right: max(-0.5208vw, -10px);
    bottom: 0;
    padding: min(0.4167vw, 8px) min(1.3021vw, 25px);
    line-height: 1;
    transform: skewX(-24deg);
    background-color: #fff;
    content: "";
    width: 100%;
    height: 100%;
    z-index: -1;
}
#recorded .title_box a.title_item .detail:after {
    content: "";
    position: absolute;
    right: min(0.5208vw, 10px);
    bottom: min(0.4167vw, 8px);
    width: min(0.4167vw, 8px);
    height: min(0.625vw, 12px);
    background: url(../../images/common/arrow_btn_r.png) center / contain no-repeat;
    z-index: 2;
}
#recorded .title_box a.title_item:hover .detail {
    bottom: -20%;
}
#recorded .title_box a.title_item .info_box {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
}
#recorded p.info_text, #recorded .title_btn {
    opacity: 0;
}
#recorded .title_box a.title_item .info_box .info_logo {
    width: 86%;
    margin-bottom: min(1.0417vw, 20px);
    position: absolute;
    bottom: 6.5%;
}
@media screen and (min-width: 769px) {
    #recorded a.title_item:hover p.info_text, #recorded a.title_item:hover .title_btn {
        opacity: 1;
    }
    #recorded .title_box a.title_item:hover .info_box {
        opacity: 1;
        background-color: rgba(255,255,255,.9);
    }
    #recorded .title_box a.title_item:hover {
        box-shadow: min(0.4167vw, 8px) min(0.4167vw, 8px) 0 #d3101d;
    }
    #recorded .title_box a.title_item:hover .info_box .info_logo {
        position: initial;
    }
}
#recorded .title_item:first-of-type .info_box .info_logo img {
    width: 80%;
    margin-top: -10%;
}
#recorded .title_box a.title_item .info_box p.info_text {
    width: 100%;
    color: #000;
    font-size: min(.32rem, 32px);
    font-style: italic;
    font-weight: 900;
    margin-bottom: min(1.5625vw, 30px);
}
#recorded .title_btn:before {
    content: "";
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.4167vw, 8px);
    height: min(0.7292vw, 14px);
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(2.3438vw, 45px);
    margin: auto;
}
#recorded .title_btn:after {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    transform: skewX(-24deg);
    content: "";
    background-color: #d3101d;
    width: 100%;
}
#recorded .title_btn {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    padding: min(1.0417vw, 20px) min(3.6458vw, 70px) min(1.0417vw, 20px) min(3.125vw, 60px);
    font-size: min(.16rem, 16px);
    letter-spacing: 0.05em;
    display: block;
}
@media screen and (max-width: 768px) {
    #recorded .recorded_inner {
        padding: 6.6667vw 0 13.3333vw;
        width: 84vw;
    }
    #recorded .title_wrapper {
        margin-bottom: 4vw;
    }
    #recorded p.recorded_lead {
        font-size: .24rem;
        margin-bottom: 4vw;
    }
    #recorded .title_box {
        display: block;
    }
    #recorded .title_box a.title_item .detail {
        display: none;
    }
    #recorded .title_box a.title_item {
        width: 84vw;
        height: 84vw;
        margin-bottom: 5.3333vw;
        box-shadow: 1.0667vw 1.0667vw 0 rgba(0,0,0,.4);
    }
    #recorded .title_btn {
        opacity: 1;
        width: 100%;
        position: absolute;
        bottom: 0;
        padding: 2.6667vw;
        font-size: .2rem;
    }
    #recorded .title_btn:after {
        width: 100%;
        display: block;
        transform: initial;
        background-color: rgba(0,0,0,0.8);
    }
    #recorded .title_box a.title_item .info_box {
        position: relative;
        display: block;
    }
    #recorded .title_btn:before {
        width: 1.3333vw;
        height: 2vw;
        right: 3.3333vw;
    }
    #recorded .title_box a.title_item .info_box .info_logo {
        width: 70%;
        bottom: 13.3333vw;
        right: 0;
        left: 0;
        margin: auto;
    }
    #recorded .title_box a.title_item:first-of-type {
        background-image: url(../../images/top/title04_sp.jpg);
    }
    #recorded .title_box a.title_item:nth-of-type(2) {
        background-image: url(../../images/top/title05_sp.jpg);
    }
    #recorded .title_box a.title_item:last-of-type {
        background-image: url(../../images/top/title06_sp.jpg);
        margin-bottom: 0;
    }
}

/************************************
  商品情報
************************************/
#product .product_inner {
    width: min(87.5vw, 1680px);
    margin: 0 auto;
    padding: min(5.2083vw, 100px) 0;
}
#product .title_wrapper {
    margin-bottom: min(3.125vw, 60px);
}
#product h3.sec_title {
    display: inline-block;
    margin: 0;
}
#product h3.sec_title span.title:after {
    background-color: #000;
}
.product_box {
    width: min(87.5vw, 1680px);
    background-color: rgba(255,255,255,.9);
    border: 1px solid #e5e5e5;
    margin: 0 auto;
    margin-bottom: min(5.2083vw, 100px);
}
.product_box_inner.buy {
    display: flex;
    padding: min(5.2083vw, 100px) min(7.2917vw, 140px);
}
.product_left {
    width: 45.7%;
}
.product_right {
    width: 54.3%;
    padding-left: min(4.1667vw, 80px);
}
.product_img {
    border: 2px solid #000;
    margin-bottom: min(2.6042vw, 50px);
    position: relative;
}
.product_img .logo {
    width: 70%;
    position: absolute;
    right: 0;
    left: 0;
    margin: auto;
    top: 62%;
}
body[class^="en"] .product_img .logo, body.fr .product_img .logo, body.de .product_img .logo {
    top: 59%;
    width: 50%;
}
#product p.caution {
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.05em;
    text-align: left;
    margin-top: 1em;
}
p.product_format {
    font-size: min(.42rem, 42px);
    font-weight: 900;
    letter-spacing: 0.05em;
    margin-bottom: min(0.5208vw, 10px);
}
p.product_price {
    font-size: min(.3rem, 30px);
    letter-spacing: 0.05em;
    margin-bottom: min(1.5625vw, 30px);
}
a.switch {
    background-color: #e60012;
}
a.ps4 {
    background-color: #0248a0;
}
a.xone {
    background-color: #107c10;
}
a.windows {
    background-color: #0078d4;
}
a.steam {
    background-color: #1b3e52;
}
a.p_platform {
    width: 48%;
    padding: min(1.0417vw, 20px);
    text-align: center;
    color: #fff;
    line-height: 1;
    position: relative;
    font-size: min(.16rem, 16px);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
a.p_platform.disable {
    pointer-events: none;
    background-color: #000;
    opacity: .3;
}
a.p_platform:nth-child(n+3) {
    margin-top: min(1.5625vw, 30px);
}
a.p_platform:not(.disable):after {
    content: "";
    position: absolute;
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.4167vw, 8px);
    height: min(0.625vw, 12px);
    top: 0;
    bottom: 0;
    right: min(1.1979vw, 23px);
    margin: auto;
}
body:not(.ja) .package a.p_platform {
    pointer-events: none;
}
body:not(.ja) .package a.p_platform:after {
    content: none;
}
.product_platform {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.product_platform:not(:last-child) {
    margin-bottom: min(3.6458vw, 70px);
}
.product_platform p.caution {
    font-size: .2rem;
    width: 100%;
    margin-top: .5em;
    font-weight: 500;
}
a.p_platform img {
    height: min(1.5625vw, 30px);
    margin-bottom: min(0.5208vw, 10px);
}
.product_box_inner.shop {
    border-top: 1px solid #e5e5e5;
    padding: min(4.1667vw, 80px) min(7.2917vw, 140px) min(5.2083vw, 100px);
    text-align: center;
}
.product_box_inner.shop h4 {
    margin-bottom: min(1.0417vw, 20px);
    font-size: min(.42rem, 42px);
    font-weight: 900;
    letter-spacing: 0.05em;
}
.product_box_inner.shop .shoplead {
    margin-bottom: min(2.0833vw, 40px);
    font-size: min(.28rem, 28px);
    letter-spacing: 0.025em;
}
ul.shop_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
li.shop_item {
    width: 33.3%;
    border: 1px solid #e5e5e5;
    padding: min(2.6042vw, 50px) min(1.8229vw, 35px) min(1.8229vw, 35px);
    display: flex;
    flex-direction: column;
}
.shop_logo {
    margin-bottom: min(1.0417vw, 20px);
}
.shop_logo img {
    max-width: min(15.1042vw, 290px);
}
.shop_logo + p {
    margin-bottom: min(1.5625vw, 30px);
    font-size: min(.22rem, 22px);
    line-height: 1.4;
    flex-grow: 1;
    letter-spacing: 0.025em;
}
.shop_buy {
    display: flex;
    justify-content: space-between;
}
a.shop_buy_btn {
    width: 49%;
    padding: min(1.0417vw, 20px) min(1.5625vw, 30px) min(1.0417vw, 20px) min(1.0417vw, 20px);
    position: relative;
}
a.shop_buy_btn img {
    height: min(1.4063vw, 27px);
}
a.shop_buy_btn:not(.disable):after {
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(0.9375vw, 18px);
    margin: auto;
    width: min(0.4167vw, 8px);
    height: min(0.625vw, 12px);
}
a.shop_buy_btn.disable {
    pointer-events: none;
    background-color: #000;
    opacity: .3;
}
.limited_banner a {
    width: min(61.9791vw, 1190px);
    display: block;
    margin: 0 auto;
    border: 2px solid #000;
}
.series_banner {
    margin-top: min(5.2083vw, 100px);
}
.series_banner a {
    width: min(33.4375vw, 642px);
    display: block;
    margin: 0 auto;
}
.goods_banner a {
    width: min(35.4166vw, 680px);
    display: block;
    margin: 0 auto;
}
@media screen and (min-width: 769px) {
    .ko .product_platform.package .p_platform.switch img, .zh-cmn-Hant .product_platform.package .p_platform.switch img, .zh-cmn-Hans .product_platform.package .p_platform.switch img {
        height: min(2.0833vw, 40px);
        margin: 0;
    }
}
@media screen and (max-width: 768px) {
    #product .title_wrapper {
        margin-bottom: 6.6667vw;
    }
    #product .product_inner {
        width: 100%;
        padding: 10.6667vw 0 12vw;
    }
    .product_box {
        width: 100%;
        margin-bottom: 12vw;
    }
    .product_box_inner.buy {
        padding: 8vw;
        direction: revert;
        flex-wrap: wrap;
        position: relative;
    }
    .product_left {
        width: 100%;
        order: 2;
    }
    .product_right {
        width: 100%;
        order: 1;
        padding: 0;
        margin-top: 89.3333vw;
    }
    .product_img {
        position: absolute;
        top: 8vw;
        right: 0;
        left: 0;
        width: 84vw;
        margin: auto;
    }
    .product_img .logo {
        top: 60%;
    }
    body[class^="en"] .product_img .logo, body.fr .product_img .logo, body.de .product_img .logo {
        top: 58%;
    }
    p.product_format {
        font-size: .4rem;
        margin-bottom: .25em;
    }
    p.product_price {
        font-size: .28rem;
        margin-bottom: 4vw;
    }
    a.p_platform {
        padding: 2.6667vw;
        font-size: .15rem;
        width: 48.2%;
    }
    a.p_platform img {
        height: 4vw;
        margin-bottom: 1.0667vw;
    }
    .ko .product_platform.package .p_platform.switch img, .zh-cmn-Hant .product_platform.package .p_platform.switch img, .zh-cmn-Hans .product_platform.package .p_platform.switch img {
        height: 5vw;
        margin: 0;
    }
    a.p_platform:nth-child(n+3) {
        margin-top: 2.6667vw;
    }
    a.p_platform:not(.disable):after {
        width: 1.0667vw;
        height: 1.6vw;
        right: 2.6667vw;
    }
    .product_platform:not(:last-child) {
        margin-bottom: 6.6667vw;
    }
    .product_platform {
        margin-bottom: 8vw;
    }
    p.caution {
        line-height: 1.8;
        font-size: .18rem;
    }
    .product_box_inner.shop {
        padding: 8vw;
    }
    .product_box_inner.shop h4 {
        font-size: .42rem;
        margin-bottom: 2.6667vw;
    }
    .product_box_inner.shop .shoplead {
        font-size: .25rem;
        line-height: 1.6;
    }
    li.shop_item {
        width: 100%;
        padding: 4vw 6.6667vw;
    }
    .shop_logo img {
        max-width: 100%;
        width: 38.6667vw;
    }
    .shop_logo {
        margin-bottom: 2.6667vw;
    }
    .shop_logo + p {
        font-size: .22rem;
        margin-bottom: 2.6667vw;
    }
    a.shop_buy_btn img {
        height: 4.6667vw;
    }
    a.shop_buy_btn {
        padding: 2.6667vw 4vw 2.6667vw 2.6667vw;
    }
    a.shop_buy_btn:not(.disable):after {
        width: 1.3333vw;
        height: 2vw;
        right: 2.6667vw;
    }
    .limited_banner a {
        width: 85.3333vw;
    }
    .series_banner {
        margin-top: 20vw;
    }
    .series_banner a {
        width: 85.3333vw;
    }
    .goods_banner a {
        width: 85.3333vw;
    }
}


div#modal_benefits {
    color: #fff;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,.9);
    overflow: scroll;
}
.modal_benefits_inner {
    padding: min(62.5vw, 120px) 0;
    text-align: center;
}
#benefits_btn {
    text-align: center;
    margin: min(2.6042vw, 50px) auto 0;
    cursor: pointer;
}
#benefits_btn span {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    padding: min(1.5625vw, 30px) min(5.2083vw, 100px) min(1.5625vw, 30px) min(6.25vw, 120px);
    font-size: min(.2rem, 20px);
    letter-spacing: 0.05em;
    display: inline-block;
    color: #fff;
    letter-spacing: 0.05em;
}
#benefits_btn span:before {
    content: "+";
    font-size: min(0.4rem, 40px);
    position: absolute;
    left: min(2.0833vw, 40px);
    top: 0;
    bottom: 0;
    margin: auto;
    width: min(0.4rem, 40px);
    height: min(0.4rem, 40px);
    line-height: 1;
    font-weight: 400;
    z-index: 2;
    color: #fff;
}
#benefits_btn span:after {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    transform: skewX(-24deg);
    content: "";
    background-color: #d3101d;
    width: 100%;
}
#modal_benefits li.shop_item {
    border: none;
    padding: 0 min(2.6041vw, 50px);
}
#modal_benefits ul.shop_box {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
}
h3.benefits_title {
    font-size: min(.5rem, 50px);
    display: inline-block;
    padding-bottom: min(0.5208vw, 10px);
    position: relative;
    margin-bottom: min(3.125vw, 60px);
    text-align: center;
    font-style: italic;
}
h3.benefits_title:after {
    content: "";
    position: absolute;
    width: 100%;
    height: min(0.1563vw, 3px);
    background-color: #fff;
    bottom: 0;
    right: 0;
}
#modal_benefits .shop_logo img {
    display: block;
    max-width: 100%;
}
#modal_benefits .shop_logo {
    padding: 3% 0;
    background-color: #fff;
    width: 80%;
    margin: 0 auto min(1.5625vw, 30px);
}
#modal_benefits .shop_benefits_image {
    margin-bottom: min(1.0417vw, 20px);
}
#modal_benefits .shop_benefits_image + p {
    font-size: min(.22rem, 22px);
}
@media screen and (min-width: 769px) {
    #modal_benefits li.shop_item:nth-child(n+4) {
        margin-top: min(3.6458vw, 70px);
    }
}
@media screen and (max-width: 768px) {
    .modal_benefits_inner {
        padding: 16vw 0;
    }
    h3.benefits_title {
        font-size: .44rem;
        padding-bottom: .25em;
        margin-bottom: 10.6667vw;
    }
    #benefits_btn {
        margin-top: 6.6667vw;
    }
    #benefits_btn span {
        padding: 3.3333vw 10.6667vw 3.3333vw 13.6667vw;
        font-size: .23rem;
    }
    #benefits_btn span:before {
        width: .4rem;
        height: .4rem;
        left: 5.3333vw;
    }
    #modal_benefits li.shop_item {
        width: 100%;
        position: relative;
        padding-left: 43%;
        height: 33.6vw;
        margin-bottom: 8vw;
        display: flex;
        align-items: center;
        align-content: center;
        flex-wrap: wrap;
        padding-right: 0;
        justify-content: center;
    }
    #modal_benefits .shop_logo {
        padding: 2% 0;
        width: 70%;
        margin-bottom: 3vw;
    }
    #modal_benefits .shop_benefits_image {
        position: absolute;
        width: 40%;
        left: 0;
        top: 0;
    }
    #modal_benefits ul.shop_box {
        width: 100%;
        padding: 0 8vw;
    }
    #modal_benefits .shop_benefits_image + p {
        font-size: .24rem;
    }
}


/************************************
  スペック
************************************/
section#spec {
    background-color: #000;
    color: #fff;
    position: relative;
}
.spec_inner {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
    padding: min(3.6458vw, 70px) 0;
}
.spec_box {
    display: flex;
    position: relative;
}
.spec_logo img {
    width: 78.6%;
}
.spec_logo {
    text-align: center;
    display: flex;
    align-items: center;
    width: 37.8%;
    justify-content: center;
}
.spec_detail {
    width: 62.2%;
}
#spec h3 {
    margin-bottom: min(2.0833vw, 40px);
    font-size: min(.38rem, 38px);
    letter-spacing: 0.025em;
}
#spec .spec_platform {
    display: flex;
    width: min(30.7292vw, 590px);
    justify-content: space-between;
    margin-bottom: min(2.0833vw, 40px);
}
#spec .spec_platform .platform_switch {
    width: 17.59%;
}
#spec .spec_platform .platform_ps4 {
    width: 19.39%;
}
#spec .spec_platform .platform_xone {
    width: 18.56%;
}
#spec .spec_platform .platform_windows {
    width: 16.34%;
}
#spec .spec_platform .platform_steam {
    width: 12.18%;
}
.spec_list_item * {
    display: inline-block;
}
.spec_list_item dt {
    color: #939393;
    margin-right: 1em;
    position: relative;
}
.spec_list_item dt:after {
    content: "：";
    position: absolute;
    width: 1em;
    height: 1em;
    top: 0;
    right: -1em;
}
dl.spec_list {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    width: min(30.7292vw, 590px);
}
.spec_list_item {
    margin-bottom: min(1.0417vw, 20px);
    letter-spacing: 0.05em;
    text-wrap: nowrap;
    width: auto;
    display: inline-block;
    margin-right: 2em;
}
.spec_list_item:nth-of-type(5) {
    width: 100%;
    margin: 0;
}
.rating {
    position: absolute;
    left: 85%;
    bottom: min(3.125vw, 60px);
}
.rating a {
    width: 100%;
    height: 100%;
    display: block;
}
.rating a:hover {
    filter: none;
}
.rating a img {
    height: 71px;
}
.en-GB .rating a img, .fr .rating a img {
    width: 58px;
}
div#pagetopbtn {
    cursor: pointer;
    width: min(7.7083vw, 148px);
    height: min(7.7083vw, 148px);
    position: absolute;
    z-index: 1;
    top: max(-1.5625vw, -30px);
    right: min(4.1667vw, 80px);
    padding-top: min(0.5208vw, 10px);
    text-align: center;
    transition: opacity .2s;
}
div#pagetopbtn:after {
    content: "";
    background-color: #000;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0;
    transform: rotate(45deg);
    z-index: -1;
}
div#pagetopbtn img {
    width: min(2.1875vw, 42px);
    display: block;
    margin: 0 auto min(0.7813vw, 15px);
}
div#pagetopbtn:hover > * {
    opacity: .8;
}
div#pagetopbtn span {
    font-size: min(.16rem, 16px);
    letter-spacing: 0.05em;
}

@media screen and (min-width: 769px) {
    .en-SG .spec_list_item:last-child {
        width: 100%;
    }
    .en-US .spec_inner {
        width: min(87.5vw, 1680px);
    }
    .en-US .rating a img {
        min-width: 268px;
        max-width: 300px;
        height: auto;
        width: 19vw;
        display: block;
    }
    .en-US .rating {
        top: 0;
        bottom: 0;
        height: fit-content;
        margin: auto;
        z-index: 2;
        left: auto;
        right: 0;
    }
    .en-US .spec_logo {
        width: calc(37.8% - 105px);
    }
    .en-US .spec_list_item:nth-of-type(5) {
        display: flex;
        text-wrap: wrap;
    }
    .en-US .spec_list_item:nth-of-type(5) dt {
        width: 20%;
    }
    .en-US .spec_list_item:nth-of-type(5) dd {
        width: 80%;
    }
}

@media screen and (max-width: 768px) {
    .spec_inner {
        width: 84vw;
        padding: 8vw 0;
    }
    .spec_logo {
        width: 100%;
        margin-bottom: 4vw;
    }
    .spec_detail {
        width: 100%;
    }
    .spec_box {
        display: block;
    }
    dl.spec_list {
        width: 100%;
    }
    #spec .spec_platform {
        width: 100%;
        margin-bottom: 4vw;
    }
    .spec_logo img {
        width: 55.6vw;
    }
    #spec h3 {
        font-size: .38rem;
        margin-bottom: 2.6667vw;
    }
    dl.spec_list {
        font-size: .22rem;
        display: block;
    }
    .spec_list_item {
        margin-bottom: 4vw;
        width: 100%;
        text-wrap: wrap;
        display: block;
    }
    .spec_list_item:nth-of-type(5) {
        display: flex;
    }
    .spec_list_item:nth-of-type(5) dt {
        word-break: keep-all;
    }
    .rating {
        bottom: 13.3333vw;
        right: auto;
        left: 50vw;
    }
    body.de .rating {
        bottom: 19vw;
    }
    .rating a img {
        height: 71px;
    }
    .en-US .rating a img {
        width: 268px;
        height: auto;
    }
    .en-US .rating {
        position: initial;
        /* top: 0; */
        text-align: center;
        margin-top: 4vw;
    }
    div#pagetopbtn img {
        width: 4.6667vw;
        margin: 0px auto 2vw;
    }
    div#pagetopbtn span {
        line-height: 1;
        display: block;
    }
    div#pagetopbtn {
        width: 16.1333vw;
        height: 16.1333vw;
    }
}

/************************************
  WEBマニュアル
************************************/
section#manual {
    background-color: #000;
    border-top: 2px solid #5d5d5d;
    color: #fff;
    position: relative;
}
.manual_inner {
    width: min(72.9167vw, 1400px);
    margin: 0 auto;
    padding: min(3.6458vw, 70px) 0;
}
@media screen and (max-width: 768px) {
    .manual_inner {
        width: 84vw;
        padding: 8vw 0;
    }
}
#manual .faq {
    display: flex;
    font-size:min(1.0416666667vw,20px);
    justify-content: center;
}
#manual .faq dt {
    color: #909090;
}
#manual .faq dd a {
    position: relative;
    transition: .2s;
}
#manual .faq dd a:before {
    content: "";
    position: absolute;
    border-right:min(.1041666667vw,2px) solid #fff;
    border-top: min(.1041666667vw,2px) solid #fff;
    height: min(.4166666667vw,8px);
    right: min(-.78125vw,-15px);
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    transition: right .3s cubic-bezier(.25,.25,.75,.75);
    width: min(.4166666667vw,8px)
}

@media screen and (max-width: 768px) {
    #manual .faq {
        font-size: 2.9333333333vw;
        flex-wrap: wrap;
    }
    #manual .faq dt {
        width:100%;
        text-align: center;
    }
    #manual .faq dd {
        display:flex;
        margin-top: 3.7333333333vw;
        width: 42%
    }
    #manual .faq dd:nth-child(n+3) {
        margin-top:4vw
    }
    #manual .faq dd:nth-of-type(odd) {
        justify-content: flex-end;
        margin-right: 10vw;
    }
    #manual .faq dd a:before {
        transform: translateY(-40%) rotate(45deg);
        border-right: .5333333333vw solid #fff;
        border-top: .5333333333vw solid #fff;
        height: 1.6vw;
        right: -2.2666666667vw;
        width: 1.6vw
    }

}
@media screen and (min-width: 769px) {
    #manual .faq dt {
        padding-right: min(1.9270833333vw,37px)
    }
    #manual .faq dd {
        padding-right:min(3.125vw,60px)
    }
    #manual .faq dd a:hover {
        opacity: .8;
    }
}

#manual .manual_btn {
    text-align: center;
}
.ja #manual .manual_btn {
    margin: min(1.5625vw, 30px) auto 0;
}
#manual .manual_btn a {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    padding: min(1.5625vw, 30px) min(5.2083vw, 100px);
    font-size: min(.2rem, 20px);
    letter-spacing: 0.05em;
    display: inline-block;
    border: 1px solid;
}
#manual .manual_btn a:before {
    content: "";
    background: url(../../../assets/images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.5208vw, 10px);
    height: min(0.7813vw, 15px);
    position: absolute;
    top: 0;
    bottom: 0;
    right: min(2.6042vw, 50px);
    margin: auto;
}
@media screen and (max-width: 768px) {
    .ja #manual .manual_btn {
        margin: 6vw auto 0;
    }
    #manual .manual_btn a {
        padding: 3vw 10.6667vw;
        font-size: .23rem;
        min-width: 40vw;
    }
    #manual .manual_btn a:before {
        width: 1.3333vw;
        height: 2vw;
        right: 5.3333vw;
    }
}

/************************************
  シリーズリンク
************************************/
section#link {
    background-color: #000;
    border-top: 2px solid #5d5d5d;
}
.link_inner {
    padding: min(2.0833vw, 40px) 0;
}
#link ul.link_list {
    width: min(39.6vw, 760px);
    margin: 0 auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
#link li.link_list {
    width: min(19vw, 365px);
}
#link li.link_list a {
    display: block;
    border: 1px solid #999;
    transition: .2s;
}
#link li.link_list a:hover {
    opacity: .8;
}
@media screen and (min-width: 769px) {
    #link ul.link_list li:nth-child(2n-1) {
        margin-right: min(1.5625vw, 30px);
    }
    #link ul.link_list li:nth-child(n+3) {
        margin-top: min(1.5625vw, 30px);
    }
    body:not(.ja) #link ul.link_list li {
        width: min(33.4375vw, 480px);
    }
}
@media screen and (max-width: 768px) {
    #link ul.link_list {
        width: 63.3333vw;
        display: block;
    }
    body:not(.ja) #link ul.link_list {
        width: 100%;
    }
    #link li.link_list {
        width: 100%;
    }
    #link li.link_list:nth-child(n+2) {
        margin-top: 4vw;
    }
    .link_inner {
        padding: 10.6666vw;
    }
}

/************************************
  ニュースレター
************************************/
#cusacrm-popup {
    bottom: 0;
    position: fixed;
    right: 0;
    z-index: 10000;
}
#cusacrm-popup-close {
    right: 30px!important;
}

/************************************
  収録楽曲
************************************/
div#modal_music {
    color: #fff;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,.9);
    overflow: scroll;
    padding: min(12.5vw, 240px) 0 min(7.2917vw, 140px);
}
.modal_music_inner {
    width: min(63.0208vw, 1210px);
    margin: 0 auto;
    position: relative;
    text-align: center;
}
.music_chara {
    position: absolute;
}
.music_chara.ramiroa {
    top: max(-2.6563vw, -51px);
    left: max(-4.0104vw, -77px);
    z-index: 1;
    width: min(5.5208vw, 106px);
}
.music_chara.akane {
    left: min(0.4688vw, 9px);
    top: max(-7.3438vw, -141px);
    width: min(7.0833vw, 136px);
}
.music_chara.minuki {
    left: min(6.6667vw, 128px);
    top: max(-3.2813vw, -63px);
    z-index: 1;
    width: min(6.0417vw, 116px);
}
.music_chara.garyuu {
    left: min(11.25vw, 216px);
    top: max(-7.1354vw, -137px);
    width: min(5.4167vw, 104px);
}
.music_chara.odoroki {
    left: min(15.7292vw, 302px);
    top: max(-3.9583vw, -76px);
    z-index: 1;
    width: min(7.0833vw, 136px);
}
.music_chara.naruhodo {
    right: min(13.6458vw, 262px);
    top: max(-3.125vw, -60px);
    z-index: 1;
    width: min(9.0625vw, 174px);
}
.music_chara.yugami {
    right: min(9.5313vw, 183px);
    top: max(-7.7083vw, -148px);
    width: min(5.9896vw, 115px);
}
.music_chara.kokone {
    right: min(4.0104vw, 77px);
    top: max(-2.6042vw, -50px);
    z-index: 1;
    width: min(7.6563vw, 147px);
}
.music_chara.nayuta {
    right: min(0.2604vw, 5px);
    top: max(-7.5521vw, -145px);
    width: min(5.4167vw, 104px);
}
.music_chara.reifa {
    right: max(-5.9375vw, -114px);
    top: max(-3.5938vw, -69px);
    z-index: 1;
    width: min(6.7188vw, 129px);
}
@media screen and (min-width: 769px) {
    body.fr .music_chara.ramiroa {
        left: max(-8.1771vw, -157px);
    }
    body.fr .music_chara.akane {
        left: max(-3.6979vw, -71px);
    }
    body.fr .music_chara.minuki {
        left: min(2.5vw, 48px);
    }
    body.fr .music_chara.garyuu {
        left: min(7.0833vw, 136px);
    }
    body.fr .music_chara.odoroki {
        left: min(11.5625vw, 222px);
    }
    body.fr .music_chara.naruhodo {
        right: min(9.4792vw, 182px);
    }
    body.fr .music_chara.yugami {
        right: min(5.3646vw, 103px);
    }
    body.fr .music_chara.kokone {
        right: max(-0.1563vw, -3px);
    }
    body.fr .music_chara.nayuta {
        right: max(-3.9063vw, -75px);
    }
    body.fr .music_chara.reifa {
        right: max(-10.1042vw, -194px);
    }
}
h3.music_title {
    font-size: min(.5rem, 50px);
    display: inline-block;
    padding-bottom: min(0.5208vw, 10px);
    font-style: italic;
    position: relative;
    margin-bottom: min(3.6458vw, 70px);
}
h3.music_title:after {
    content: "";
    position: absolute;
    width: 100%;
    height: min(0.1563vw, 3px);
    background-color: #fff;
    bottom: 0;
    right: 0;
}
.game_box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: min(4.1667vw, 80px);
}
a.game_item {
    display: block;
    background-color: #d3101d;
    padding: 0 0 min(1.0417vw, 20px);
    width: min(20.3125vw, 390px);
    margin-bottom: min(1.0417vw, 20px);
    height: min(5.9375vw, 114px);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: min(.18rem, 18px);
    position: relative;
}
a.game_item:after {
    content: "";
    position: absolute;
    background: url(../../images/common/arrow_btn.png) center / contain no-repeat;
    width: min(0.5208vw, 10px);
    height: min(0.7813vw, 15px);
    transform: rotate(90deg);
    bottom: min(0.7813vw, 15px);
    right: 0;
    left: 0;
    margin: auto;
}
@media screen and (min-width: 769px) {
    a.game_item {
        margin-right: min(0.9895vw, 19px);
    }
    a.game_item:nth-child(3) {
        margin-right: 0;
    }
}
#modal_music h5 {
    line-height: 1.3;
    padding-left: .7em;
    border-left: 4px solid #d3101d;
    letter-spacing: 0.025em;
    font-size: min(.35rem,35px);
    padding-left: min(1.5625vw, 30px);
    margin-bottom: 1em;
}
.music_list {
    text-align: left;
}
#modal_music ul[class*="music"] {
    border-top: 2px solid #3b3b3b;
}
#modal_music ul[class*=music] li {
    font-size: min(.22rem,22px);
    padding: min(1.0417vw, 20px);
    border-bottom: 2px solid #3b3b3b;
    line-height: 1;
}
#modal_music .music_list [id*="music"] {
    margin-bottom: min(5.2083vw, 100px);
}

@media screen and (max-width: 768px) {
    div#modal_music {
        padding: 10.6667vw 0;
    }
    h3.music_title {
        font-size: .44rem;
        padding-bottom: .25em;
        margin-bottom: 26.6667vw;
    }
    a.game_item {
        width: 48%;
        margin-bottom: 3.3333vw;
        height: 13.3333vw;
        font-size: .18rem;
        padding: 0 0 2vw;
        line-height: 1.2;
        margin-right: 3.3333vw;
    }
    .game_box {
        justify-content: space-around;
        margin-bottom: 9.3333vw;
    }
    .game_box:after {
        content: none;
    }
    a.game_item:nth-child(2n) {
        margin-right: 0;
    }
    a.game_item:after {
        width: 1.3333vw;
        height: 2vw;
        bottom: 1.3333vw;
    }
    .modal_music_inner {
        width: 84vw;
    }
    #modal_music h5 {
        font-size: .35rem;
        padding-left: 1em;
    }
    #modal_music ul[class*=music] li {
        padding: 3vw 4.6667vw;
        font-size: .22rem;
    }
    #modal_music .music_list [id*="music"] {
        margin-bottom: 10.6667vw;
    }
    .music_chara.ramiroa {
        top: 18.6667vw;
        left: -3.6vw;
        width: 9.0667vw;
    }
    .music_chara.akane {
        top: 11.2vw;
        left: 3.4667vw;
        width: 11.4667vw;
    }
    .music_chara.minuki {
        top: 17.8667vw;
        left: 12.9333vw;
        width: 9.8667vw;
    }
    .music_chara.garyuu {
        top: 11.4667vw;
        left: 20.8vw;
        width: 8.8vw;
    }
    .music_chara.odoroki {
        top: 16.6667vw;
        left: 27.4667vw;
        width: 11.6vw;
    }
    .music_chara.naruhodo {
        top: 18.4vw;
        right: 26.1333vw;
        width: 14.6667vw;
    }
    .music_chara.yugami {
        top: 10.8vw;
        right: 19.7333vw;
        width: 9.4667vw;
    }
    .music_chara.kokone {
        top: 19.0667vw;
        right: 10.8vw;
        width: 12.5333vw;
    }
    .music_chara.nayuta {
        top: 10.9333vw;
        right: 3.7333vw;
        width: 8.8vw;
    }
    .music_chara.reifa {
        top: 17.3333vw;
        right: -5.4667vw;
        width: 10.9333vw;
    }
}

div#modal_requirements {
    color: #fff;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: rgba(0,0,0,.9);
    overflow: scroll;
}
.modal_requirements_inner {
    padding: min(12.5vw, 240px) 0 min(7.2917vw, 140px);
}
table.requirements {
    width: min(62.5vw,1200px);
    margin: 0 auto;
    border-top: 1px solid #696969;
    border-left: 1px solid #696969;
    text-align: center;
}
table.requirements th {
    padding: min(.7812vw, 15px);
    background-color: rgba(59,59,59,.6);
    font-size: min(.19rem,19px);
    font-weight: 700;
}
table.requirements th, table.requirements td {
    border-right: 1px solid #696969;
    border-bottom: 1px solid #696969;
    vertical-align: middle;
}
table.requirements td {
    padding: min(1.0416vw, 20px);
    font-weight: 500;
    font-size: min(.17rem, 17px);
}
table.requirements td.r_sp_head {
    font-size: min(.18rem, 18px);
    font-weight: 700;
}
#requirements_btn {
    font-size: min(.19rem, 19px);
    border: 1px solid #747474;
    padding: min(1.302vw, 25px) min(3.6458vw, 70px) min(1.302vw, 25px) min(3.125vw, 60px);
    position: relative;
    text-align: center;
    line-height: 1;
    margin: 0 auto;
    display: block;
    width: fit-content;
    cursor: pointer;
    transition: opacity .2s;
    font-weight: 700;
    letter-spacing: .05em;
}
#requirements_btn:hover {
    opacity: .8;
}
#requirements_btn:after {
    content: "+";
    font-size: min(.3rem, 30px);
    position: absolute;
    right: min(1.0417vw, 20px);
    top: 0;
    bottom: 0;
    margin: auto;
    width: min(1.5625vw, 30px);
    height: min(1.5625vw, 30px);
    line-height: 1;
    font-weight: 400;
}
@media screen and (min-width: 769px) {
    table.requirements td.r_sp_head {
        width: 18%;
    }
    table.requirements td.r_3col {
        width: 41%;
    }
    table.requirements td.r_2col {
        width: 82%;
    }
    table.requirements tr:last-of-type td.r_3col:nth-child(2) {
        text-align: left;
    }
}
@media screen and (max-width: 768px) {
    .modal_requirements_inner {
        padding: 16vw 0;
    }
    table.requirements {
        width: 92vw;
    }
    table.requirements th, table.requirements td {
        display: block;
        border: none;
    }
    table.requirements tr {
        border-right: 1px solid #696969;
        border-bottom: 1px solid #696969;
    }
    table.requirements td.r_sp_head {
        border-bottom: 1px solid #696969;
        padding: 2vw;
        font-size: .24rem;
        background-color: rgba(59,59,59,.6);
    }
    table.requirements td:before {
        content: attr(data-table-th);
        display: block;
        font-size: .19rem;
        color: #8f8f8f;
    }
    table.requirements td {
        padding: 4vw;
    }
    table.requirements td:nth-child(3) {
        padding-top: 0;
    }
    table.requirements td:not(.r_sp_head) {
        font-size: .23rem;
    }
    #requirements_btn {
        padding: 3.3333vw 8vw 3.3333vw 6.6667vw;
        min-width: 51.4667vw;
        font-size: .23rem;
    }
    #requirements_btn:after {
        font-size: .4rem;
        width: 5.3333vw;
        height: 5.3333vw;
        right: 2vw;
        font-weight: 400;
    }
}

#fixed_btn {
    transform: translateY(-110%);
    opacity: 0;
}

/* 231130 */
span.wishlist {
    color: #0248a0;
    position: absolute;
    bottom: -1.5em;
    left: 0;
    right: 0;
    margin: auto;
    pointer-events: none;
}
a.p_platform:nth-child(n+3) {
    margin-top: min(2.0833vw, 40px);
}
@media screen and (max-width: 768px) {
    span.wishlist {
        bottom: -1.4em;
    }
    a.p_platform:nth-child(n+3) {
        margin-top: 4.6667vw;
    }
}