@charset "utf-8";

/* トップのメニュー */
#top .banner {
    margin: 30px auto 0;
}

#top .top-menu {
    margin: -15% auto 0;
    position: relative;
    max-width: 1400px;
    padding: 0 40px;
}

#top .top-menu a {
    transition: opacity 0.3s ease;
}

#top .top-menu a:hover {
    opacity: 0.6;
}

#top .top-menu .bg_border1 {
    padding: 45px 20px 30px;
}

#top .menu_block .menu_name {
    font-size: clamp(1.25rem, -0.25rem + 2vw, 1.5rem);
}

#top .top-menu .flex_cn:has(.menu_block) {
    gap: 45px 70px;
}

#top .link_store-button {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999;
    max-width: 250px;
    width: 40%;
}

#top .link_store-button img {
    transition: 0.6s ease;
}

#top .link_store-button:hover img {
    filter: drop-shadow(0 0 10px #619EA8);
}

#top .link_store-button.link_store-button_stop {
    opacity: 0;
    visibility: hidden;
}

@media screen and (max-width: 1200px) {
    .bg_border1 {
        padding: 20px 10px 30px 40px;
        font-size: clamp(1.125rem, 1.0682rem + 0.2424vw, 1.25rem);
    }

    .menu_block .ruby {
        font-weight: bold;
        font-size: 12px;
    }

    #top .top-menu .bg_border1 {
        padding: 30px 20px 20px;
    }
}

@media screen and (max-width: 1000px) {
    #top .top-menu {
        margin: 30px auto 0;
        max-width: 740px;
        padding: 0 10px;
    }

    .bg_border1 {
        padding: 20px 10px 30px 10px;
    }

    #top .menu_block {
        width: 100%;
        padding-bottom: 10px;
        border-bottom: 1px solid #ddd;
    }

    #top .menu_block:last-child {
        border-bottom: none;
    }

    #top .top-menu .flex_cn:has(.menu_block) {
        gap: 27px 70px;
    }

    #top .menu_name::before {
        left: 0px;
    }

    #top .menu_name::after {
        content: "";
        background-image: url(../img/add/dec_arrow.png);
        background-size: contain;
        position: absolute;
        width: 15px;
        height: 15px;
        right: 0px;
        top: 0;
        bottom: 0;
        margin: auto;
        transform: rotate(180deg);
        z-index: 1;
    }
}

@media screen and (max-width: 480px) {
    .bg_border1 {
        padding: 10px;
    }

    #top .top-menu .flex_cn:has(.menu_block) {
        gap: 30px 70px;
    }

    #top .link_store-button {
        right: 10px;
        bottom: 10px;
    }
}

/* INTRODUCTION */

#introduction h3 {
    font-size: clamp(1.25rem, 0.3354rem + 3.9024vw, 3.75rem);
    font-weight: 300;
    margin: 30px 0;
    text-shadow: 0px 0px 15px #0c0f2a;
}

#introduction .intro_text_first {
    background-color: #0c0f2acc;
    display: inline;
    line-height: 2.5em;
    padding: 0em 0.5em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    letter-spacing: 0.1em;
    font-size: clamp(0.8125rem, 0.6982rem + 0.4878vw, 1.125rem);
    font-weight: 300;
}

#introduction .flex_sb:has(.intro_text_second) {
    margin-top: 80px;
    align-items: center;
}

#introduction .intro_text {
    text-align: right;
    width: 65%;
    margin-left: -40%;
    position: relative;
    z-index: 1;
}

#introduction .intro_img {
    aspect-ratio: 14 / 9;
    width: 85%;
    height: auto;
    margin-left: -10%;
    position: relative;
    z-index: 1;
    background-image: linear-gradient(to left, #0c0f2a9c 20%, #0c0f2a00 45%), url(../img/add/intro_img.jpg);
    background-size: contain;
    background-repeat: no-repeat;
}

#introduction .intro_text_second {
    background-color: #ffffffe0;
    color: #003C78;
    display: inline;
    line-height: 2.5em;
    padding: 0em 0.5em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    letter-spacing: 0.1em;
    font-size: clamp(0.8125rem, 0.6982rem + 0.4878vw, 1.125rem);
    font-weight: 500;
    text-align: right;
}

#introduction .intro_title {
    margin: -60px auto 0;
    display: inline-block;
    width: 100%;
}

#introduction h2 {
    max-width: 1080px;
    margin: auto;
    display: block;
    mix-blend-mode: screen;
    width: 80%;
}

#introduction .page-link_btn {
    margin-left: calc(100% - 450px);
}

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

    #introduction .intro_img {
        aspect-ratio: 14 / 9;
        width: 80%;
    }

    #introduction .intro_text {
        text-align: right;
        width: 70%;
        margin-left: -45%;
        position: relative;
        z-index: 1;
    }
}

@media screen and (max-width: 1000px) {
    #introduction h3 {
        text-align: center;
        letter-spacing: 0;
        line-height: 2em;
    }

    #introduction h2 {
        width: 90%;
    }

    #introduction .intro_text_first {
        background-color: unset;
        display: block;
        line-height: 3em;
        padding: 0;
        letter-spacing: 0;
        font-weight: 300;
        text-align: center;
    }

    #introduction .intro_text_second {
        background-color: unset;
        display: block;
        line-height: 3em;
        padding: 0;
        letter-spacing: 0;
        font-weight: 300;
        text-align: center;
        color: #fff;
    }

    #introduction .flex_sb:has(.intro_text_second) {
        margin-top: 0px;
        flex-direction: column-reverse;
        gap: 70px;
    }

    #introduction .intro_text {
        text-align: center;
        width: 100%;
        margin-left: 0%;
    }

    #introduction .intro_img {
        width: 100%;
        margin-left: 0%;
        margin-bottom: 0px;
    }

    #introduction .wrapper {
        padding: 0;
    }

    #introduction .page-link_btn {
        margin: 40px auto 0;
        max-width: 90%;
        width: 450px;
    }

    #introduction .intro_title {
        margin: -40px auto 0;
    }

    #introduction .intro_img {
        background-image: url(../img/add/intro_img.jpg);
        aspect-ratio: 2 / 1;
        background-position: center;
        background-size: cover;
    }
}

@media screen and (max-width: 630px) {
    #introduction .flex_sb:has(.intro_text_second) {
        gap: 70px;
    }

    #introduction h2 {
        width: 95%;
    }
}

@media screen and (max-width: 480px) {
    #introduction .flex_sb:has(.intro_text_second) {
        gap: 50px;
    }
}

/* CAST */

.cast .flex_cn {
    gap: 40px 40px;
}

.cast .wrapper {
    max-width: 880px;
}

.cast {
    padding: 100px 0 100px;
    color: #003C78;
    font-size: clamp(0.8125rem, 0.7168rem + 0.4082vw, 1.125rem);
}

.cast h2 {
    max-width: 276px;
    margin-bottom: 50px !important;
}

@media screen and (max-width: 1000px) {
    .cast .flex_cn {
        gap: 21px 30px;
    }

    .cast .wrapper {
        max-width: 660px;
    }

    .cast h2 {
        margin-bottom: 45px !important;
    }
}

@media screen and (max-width: 768px) {
    .cast .flex_cn.show_768 {
        display: flex;
    }
}

@media screen and (max-width: 480px) {
    .cast .wrapper {
        max-width: 350px;
        font-size: 14px;
    }

    .cast h2 {
        margin-bottom: 30px !important;
    }

    .cast .flex_cn {
        gap: 15px 30px;
    }
}

/* SPEC */
#staff-cast .producer {
    padding-bottom: 150px;
}

#spec .bg_border1 {
    border-image-width: 100px;
    padding: 60px 20px 60px;
}

#spec .bg_border-inline:has(.bg_border1) {
    padding: 0;
    border-radius: 10px;
}

#spec {
    padding-top: 130px;
    background-image: linear-gradient(to bottom, #345B7D, #003c78af, #0c0f2ae3);
    padding-bottom: 150px;
    background-size: 80px, 100%;
    color: #333333;
    font-size: clamp(0.6875rem, 0.6189rem + 0.2927vw, 0.875rem);
    position: relative;
    font-weight: 600;
}

#spec .spec_pkg {
    align-items: end;
    gap: 30px;
    margin: 0 auto 30px;
    max-width: 700px;
}

#spec .spec_pkg .spec_pkg_img {
    width: 75%;
}

#spec .spec_pkg .spec_pkg-cero_img {
    width: 13%;
    max-width: 90px;
}


#spec tr {
    width: 100%;
    border-bottom: 1px solid #D0CEC9;
}

#spec tr:last-child {
    border-bottom: none;
}

#spec table {
    width: 100%;
    max-width: 650px;
    margin: auto;
}

#spec th {
    width: 25%;
    padding: 10px 0px;
    position: relative;
}

#spec td {
    width: 75%;
    padding: 5px 0px;
}

#spec th::after {
    position: absolute;
    content: "";
    background-image: url(../img/add/dec_arrow2.png);
    background-size: contain;
    position: absolute;
    width: 15px;
    height: 15px;
    right: 20px;
    top: 15px;
    margin: auto;
    z-index: 2;
    background-repeat: no-repeat;
}

#spec::before {
    content: "";
    background: url(../img/bottom_dec.png);
    position: absolute;
    width: 30%;
    max-width: 500px;
    height: auto;
    aspect-ratio: 75 / 73;
    bottom: 0;
    left: 0;
    opacity: 0.3;
    transform: scale(-1, 1);
    background-repeat: no-repeat;
    background-size: contain;
    filter: drop-shadow(0 0 0.75rem #fff);
}

#spec::after {
    content: "";
    background: url(../img/bottom_dec.png);
    position: absolute;
    width: 30%;
    max-width: 500px;
    height: auto;
    aspect-ratio: 75 / 73;
    bottom: 0;
    right: 0;
    opacity: 0.2;
    background-repeat: no-repeat;
    background-size: contain;
    filter: drop-shadow(0 0 0.75rem #fff);
}

#spec .wrapper {
    max-width: 1000px;
}

#spec .bg_border1 {
    font-size: clamp(0.6875rem, 0.6023rem + 0.3636vw, 0.875rem);
}

@media screen and (max-width: 1000px) {
    #spec th {
        width: 37%;
    }

    #spec td {
        width: 63%;
    }

    #spec .bg_border1 {
        border-image-width: 60px;
        padding: 30px;
    }

    #spec .bg_border-inline:has(.bg_border1) {
        border-radius: 4px;
    }
}

@media screen and (max-width: 480px) {
    #spec {
        padding-top: 80px;
        padding-bottom: 100px;
        background-size: 40px, 100%;
    }

    #spec::before {
        width: 50%;
        left: -50px;
    }

    #spec .bg_border1 {
        border-image-width: 60px;
        padding: 30px 10px;
    }

    #spec::after {
        width: 50%;
        right: -50px;
    }

    #spec .spec_pkg {
        gap: 10px;
        margin-bottom: 10px;
    }

    #spec .spec_pkg .spec_pkg-cero_img {
        width: 15%;
    }

    #spec th::after {
        top: 12px;
        right: 15px;
    }
}

/* その他調整 */
.trailer_bg {
    background-image: linear-gradient(to bottom, #003c7845 0%, #003c7882 26%, #003c7800 100%);
}

#catch_copy {
    margin-bottom: 150px;
}

#staff-cast {
    padding-top: 150px;
    background-image: linear-gradient(to bottom, #05213d87, #285887df, #0C0F2A);
}

.producer .page-link_btn {
    width: 600px;
    margin: 30px auto 0;
}

#trailer .movie_main-movie-dec .trailer_dec {
    width: 30px;
}

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

    #staff-cast .cast h2 {
        width: 45%;
    }

    .producer .page-link_btn {
        max-width: 450px;
    }

    #catch_copy {
        margin-bottom: 100px;
    }

    #staff-cast {
        padding-top: 120px;
    }

    #staff-cast .producer {
        padding-bottom: 120px;
    }
}

@media screen and (max-width: 480px) {
    #trailer .movie_main-movie-dec .trailer_dec {
        width: 16px;
    }

    #catch_copy {
        margin-bottom: 60px;
    }

    #staff-cast {
        padding-top: 80px;
    }

    #staff-cast .producer {
        padding: 0 15px 80px;
    }

    .cast {
        padding: 50px 0 50px;
    }

    .producer .page-link_btn {
        max-width: 97%;
    }
}