@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Crimson+Text:wght@400;600;700&display=swap');

.mv {
    position: relative;
}
.mv-ttl {
    position: absolute;
    bottom: 27.5%;
    left: 31%;
    width: 44%;
}
.mv-txt {
    position: absolute;
    bottom: 21%;
    left: 20.2%;
    width: 9%;
}
.mv-catch {
    position: absolute;
    bottom: 77%;
    left: 21.2%;
    width: 37%;
}
.mv-balloon {
    position: absolute;
    bottom: 53%;
    right: 20%;
    width: 8%;
}
.mv-day {
    position: absolute;
    bottom: 29%;
    right: 20.4%;
    width: 7%;
}

@media screen and (max-width:768px) {
    .mv-ttl {
        bottom: 22%;
        left: auto;
        right: 4%;
        width: 69%;
    }
    .mv-day {
        bottom: 17%;
        right: 3%;
        width: 12%;
    }
    .mv-txt {
        bottom: 15%;
        left: 3.5%;
        width: 20%;
    }
    .mv-balloon {
        bottom: 47.4%;
        right: 5%;
        width: 14%;
    }
    .mv-catch {
        position: absolute;
        bottom: 66.3%;
        left: 2%;
        width: 67%;
    }
}


.details {
    background-color: #FFF;
}
.details-wrapper {
    padding: 4% 0;
}
.menu {
    display: flex;
    justify-content: center;
    margin: 0 0 3%;
}
.menu-item {
    width: 268px;
    margin: 0 .5%;
}
.menu-btn {
    display: block;
    position: relative;
}
.menu-txt {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Noto Sans JP', sans-serif;
    text-align: center;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    color: #FFF;
}
@media screen and (max-width:1000px) {
    .menu-txt {
        font-size: 2vw;
    }
}

@media screen and (max-width:980px) {
    .menu-item {
        width: 26%;
    }
}
@media screen and (max-width:768px) {
    .details-wrapper {
        padding: 16% 0;
    }
    .menu {
        flex-wrap: wrap;
        margin: 0 0 10%;
    }
    .menu-last {
        margin: 0 0 18%;
    }
    .menu-item {
        width: 74%;
        margin: 0 0 10%;
    }
    .menu-item:last-child {
        margin: 0;
    }
    .menu-txt {
        font-size: 4vw;
    }
}


.icon {
    display: flex;
    justify-content: center;
    margin: 0 0 4%;
}
.icon-item {
    width: 45px;
    height: 45px;
    margin: 0 1%;
}
.icon-btn {
    display: block;
}

.bnr-btn {
    display: block;
    width: 100%;
    max-width: 250px;
    margin: auto;
}
@media screen and (max-width:768px) {
    .icon {
        margin: 0 0 14%;
    }
    .icon-item {
        margin: 0 4%;
    }
}


.intro {
    background-color: #FFF;
}
.intro-wrapper {
    padding: 150px 0 0;
}
.intro-ttl {
    width: 100%;
    max-width: 638px;
    margin: 0 auto 75px;
}
.intro-catch {
    position: relative;
    overflow: hidden;
}
.intro-catch:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.3);
}
.intro-catch-bg {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}
.intro-catch-bg video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}
.intro-catch-img {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 220px 0;
}

.intro-txt-column {
    padding: 90px 0;
    background-image: url(../images/home/bg_flower_pc.jpg);
    background-size: cover;
}

.intro-txt-range {
    width: 100%;
    max-width: 840px;
    height: 470px;
    margin: 0 auto 20px;
    padding-right: 50px;
    overflow-y: scroll;
}
.intro-txt {
    font-size: 16px;
    font-weight: 700;
    text-align: justify;
    line-height: 1.6em;
    color: #FFF;
}
.intro-txt-note {
    width: 100%;
    max-width: 840px;
    margin: auto;
    text-align: right;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6em;
    color: #FFF;
}

/*スクロールバー全体*/
.intro-txt-range::-webkit-scrollbar {
    width: 4px;
}
/*スクロールバーの軌道*/
.intro-txt-range::-webkit-scrollbar-track {
    border-radius: 4px;
    background-color: rgba(0, 0, 0, .2);
}
/*スクロールバーの動く部分*/
.intro-txt-range::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 1);
    border-radius: 4px;
}

.intro-gallery {
    padding: 2% 0;
    background-color: #000;
}
@media screen and (max-width:768px) {
    .intro-wrapper {
        padding: 10% 0 0;
    }
    .intro-ttl {
        width: 62.4%;
        max-width: none;
        margin: 0 auto 7%;
    }
    .intro-catch-img {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: row;
        width: 90%;
        max-width: none;
        padding: 0;
    }
    .intro-txt {
        font-size: 14px;
    }
    .intro-txt-column {
        padding: 8% 4%;
    }
    .intro-txt-range {
        width: 100%;
        max-width: none;
        height: 284px;
        margin: 0 auto 6%;
        padding-right: 2%;
    }
    .intro-txt-note {
        font-size: 14px;
        text-align: left;
    }
}



.story {
    background-image: url(../images/home/story_bg_pc.jpg);
    background-size: cover;
    background-attachment: fixed;
    background-color: #000;
}
.story-ttl {
    width: 100%;
    max-width: 278px;
    margin: auto;
    padding: 100px 0 80px;
}
.story-txt-img {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto 60px;
}
.story-txt {
    width: 100%;
    max-width: 990px;
    margin: auto;
    padding: 0 0 30px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6em;
    color: #FFF;
}

.story-gallery {
    padding: 2% 0;
    background-color: #000;
}
.story-character {
    width: 84%;
}
@media screen and (max-width:768px) {
    .story {
        background-image: url(../images/home/story_bg_sp.jpg);
        background-size: cover;
        background-attachment: local;
    }
    .story-ttl {
        width: 27.5%;
        max-width: none;
        padding: 9% 0 8%;
    }
    .story-txt-img {
        width: 87.4%;
        max-width: none;
        margin: 0 auto 6%;
    }
    .story-txt {
        width: 87%;
        max-width: none;
        margin: auto;
        padding: 0 0 6%;
        font-size: 14px;
    }
}



.cast {
    background-image: url(../images/home/cast_bg_pc.jpg);
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    background-color: #060C10;
}
.cast-wrapper {
    width: 100%;
    max-width: 1200px;
    margin: auto;
    padding: 155px 0;
}
.cast-area {
    padding: 10% 6%;
    background-color: rgba(255,255,255,.3);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
.cast-ttl {
    width: 100%;
    max-width: 222px;
    margin: auto;
    padding: 0 0 80px;
}
.main-cast {
    display: flex;
    justify-content: space-between;
    margin: 0 0 2%;
}
.main-cast li {
    width: 24%;
}
.other-cast {
    display: flex;
    justify-content: space-between;
    margin: 0 0 18%;
}
.other-cast li {
    width: 19%;
}

.staff-ttl {
    width: 100%;
    max-width: 256px;
    margin: auto;
    padding: 0 0 80px;
}
.staff-column {
    display: flex;
    justify-content: space-between;
}
.staff-img {
    width: 32%;
}
.staff-details {
    width: 65%;
}
.staff-details-name {
    width: 100%;
    max-width: 382px;
    margin: 0 0 2%;
}
.staff-details-profile {
    width: 100%;
    max-width: 55px;
    margin: 0 0 1%;
}
.staff-details-txt {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6em;
    color: #FFF;
}
@media screen and (max-width:768px) {
    .cast {
        background-image: url(../images/home/cast_bg_sp.jpg);
        background-size: 100%;
        background-position: top center;
        background-repeat: no-repeat;
        background-color: #060C10;
    }
    .cast-wrapper {
        width: 94%;
        max-width: none;
        margin: auto;
        padding: 8% 0 8%;
    }
    .cast-area {
        padding: 12% 4%;
    }
    .cast-ttl {
        width: 23%;
        max-width: none;
        padding: 0 0 12%;
    }
    .main-cast {
        flex-wrap: wrap;
        margin: 0;
    }
    .main-cast li {
        width: 48%;
        margin: 0 0 6%;
    }
    .other-cast {
        flex-wrap: wrap;
        justify-content: center;
    }
    .other-cast li {
        width: 32%;
        margin-bottom: 4%;
        margin-right: 2%;
    }
    .other-cast li:nth-child(3) {
        margin-right: 0;
    }
    .staff-ttl {
        width: 26.7%;
        max-width: none;
        padding: 0 0 10%;
    }
    .staff-column {
        flex-wrap: wrap;
    }
    .staff-img {
        width: 73%;
        margin: 0 auto 7%;
    }
    .staff-details {
        width: 100%;
    }
    .staff-details-name {
        width: 90%;
        max-width: none;
        margin: 0 0 10%;
    }
    .staff-details-txt {
        font-size: 14px;
    }
}



.production {
    background-image: url(../images/home/bg_flower_pc.jpg);
    background-size: cover;
}
.production-wrapper {
    width: 100%;
    max-width: 840px;
    margin: auto;
    padding: 90px 0;
}
.production-ttl {
    width: 100%;
    max-width: 788px;
    padding: 0 0 80px;
}
.production-txt-range {
    width: 100%;
    max-width: 840px;
    height: 470px;
    margin: 0 auto 20px;
    padding-right: 50px;
    overflow-y: scroll;
}
.production-txt {
    font-size: 16px;
    font-weight: 700;
    text-align: justify;
    line-height: 1.6em;
    color: #FFF;
}
.production-txt-note {
    width: 100%;
    max-width: 840px;
    margin: auto;
    text-align: right;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.6em;
    color: #FFF;
}

/*スクロールバー全体*/
.production-txt-range::-webkit-scrollbar {
    width: 4px;
}
/*スクロールバーの軌道*/
.production-txt-range::-webkit-scrollbar-track {
    border-radius: 4px;
    background-color: rgba(0, 0, 0, .2);
}
/*スクロールバーの動く部分*/
.production-txt-range::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 1);
    border-radius: 4px;
}
@media screen and (max-width:768px) {
    .production-wrapper {
        max-width: none;
        margin: auto;
        padding: 15% 6% 12%;
    }
    .production-ttl {
        width: 90%;
        max-width: none;
        margin: auto;
        padding: 0 0 12%;
    }
    .production-txt-range {
        width: 100%;
        max-width: none;
        height: 480px;
        margin: 0 auto 6%;
        padding-right: 5%;
    }
    .production-txt {
        font-size: 14px;
    }
    .production-txt-note {
        text-align: left;
        font-size: 14px;
    }
}




.footer {
    background-color: #000;
}
.footer-wrapper {
    padding: 200px 0 130px;
}
.footer-ttl {
    width: 100%;
    max-width: 586px;
    margin: 0 auto 115px;
}
.footer-day {
    width: 100%;
    max-width: 136px;
    margin: 0 auto 40px;
}
.footer-details {
    width: 100%;
    max-width: 814px;
    margin: 0 auto 100px;
}

.footer-bnr {
    display: flex;
    justify-content: center;
}
.footer-bnr-item {
    width: 100%;
    margin: 0 10px;
}
.footer-bnr-item:nth-child(1) {
    width: 85px;
}
.footer-bnr-item:nth-child(2) {
    width: 73px;
}
.footer-bnr-item:nth-child(3) {
    width: 68px;
}
.footer-bnr-item a {
    display: block;
}

@media screen and (max-width:768px) {
    .footer-wrapper {
        padding: 15% 5%;
    }
    .footer-ttl {
        width: 96%;
        max-width: none;
        margin: 0 auto 15%;
    }
    .footer-day {
        width: 20%;
        max-width: none;
        margin: 0 auto 10%;
    }
    .footer-details {
        max-width: none;
        margin: 0 auto 14%;
    }
}












