html {
    scroll-behavior: smooth;
}

.opening {
    background-color: #604c4e;
    position: fixed;
    top: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    z-index: 10000;
}

.opening_inner {
    position: absolute;
    translate: 0 -50%;
    top: 50%;
    display: grid;
    grid-template-columns: 1fr;
}

.opening_slide {
    grid-column: 1;
    grid-row: 1;
}

.opening .slide01 .cap {
    bottom: 10px;
}

.opening .slide02 {
    opacity: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    mix-blend-mode: screen;
}

.opening .slide02.active {
    opacity: 1;
}

#mask {
    width: 100%;
    height: 100%;
}


#mask .st0 {
    fill: none;
    stroke: #fff;
    stroke-width: 40;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-miterlimit: 10;
}

.opening .slide02.active #mask .st0 {
    animation: line-animation 1s ease-in forwards;
}

@keyframes line-animation {

    100% {
        stroke-dashoffset: 0;
    }
}

.opening .slide03 {
    display: none;
    z-index: 2;
    mix-blend-mode: screen;
}

.opening .txt {
    display: none;
    position: absolute;
    translate: 0 -50%;
    top: 50%;
    left: 5%;
    width: 40%;
}

.opening .foot {
    display: none;
    position: absolute;
    width: 8%;
    top: 26%;
    left: 43%;
}

.opening .station_txt {
    display: none;
    position: absolute;
    width: 15%;
    bottom: 15%;
    left: 47%;
    z-index: 10001;
}

.mv {
    position: sticky;
    top: 0;
    z-index: -1;
    background-color: #000;
}

.mv img {
    transition: 1s all;
}


.merit {
    background-color: #e5e1d8;
    padding: 15px 0;
}

.merit img {
    display: block;
    max-width: 1200px;
    width: 85%;
    margin: 0 auto;
}

.index_entry_wrap {
    margin: 60px auto;
}

.index_entry_lead {
    text-align: center;
    font-size: clamp(26px, 2.8vw, 30px);
}

.index_entry_txt {
    text-align: center;
    font-size: clamp(14px,1.5vw,18px);
    line-height: 1.8;
    margin: 20px 0 30px;
    letter-spacing: 0.05em;
}

.index_entry_wrap ul {
    max-width: 800px;
    width: 90%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}

.index_entry_wrap ul li {
    width: calc(50% - 10px);
}

.index_entry_wrap ul li a {
    position: relative;
    display: block;
    padding: 8px 1em 8px 13px;
    text-align: center;
    position: relative;
    color: #fff;
    font-size: clamp(18px,2vw,22px);
}

.index_entry_wrap ul li a::after {
    position: absolute;
    content: '\0232A';
    translate: 0 -50%;
    top: 50%;
    right: 5px;
}

.index_entry_wrap ul li.entry a {
    background: var(--entryBgColor);
    border: 3px solid var(--entryBorderColor);
}

.index_entry_wrap ul li.limited a {
    background: var(--limitedBgColor);
    border: 3px solid var(--limitedBorderColor);
}

.concept_wrap {
    background-color: #807071;
    padding: 120px 0;
}

.concept_wrap .trigger {
    opacity: 0;
}

.concept_wrap .trigger.active {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(30px);

    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.concept_ttl {
    max-width: 650px;
    width: 80%;
    margin: 0 auto;
}

.concept_txt {
    text-align: center;
    line-height: 2.5;
    color: #fff;
    font-size: clamp(14px,1.5vw,16px);
    letter-spacing: 0.1em;
    margin-top: 50px;
}

/* SP調整 */
@media screen and (max-width:730px) {

    .opening .slide01 .cap {
        bottom: 5px;
    }


    .mv {
        margin-bottom: -29vw;
        
    }

    .mv .cap {
        right: auto;
        left: 5px;
        bottom: 20%;
    }

    .mv_ttl {
        background: hsla(344, 13%, 33%, 0.85);
        padding: 8vw 0;
    }

    .mv_ttl img {
        display: block;
        margin: 0 auto;
        width: 80vw;
    }

    #mask {
        position: absolute;
        top: -63.5%;
        left: -74%;
        width: 225%;
        height: 225%;
    }

    .opening .txt {
        width: 85%;
        translate: -50% 0;
        top: 10%;
        left: 50%;
    }

    .opening .foot {
        width: 22%;
        top: 30%;
        left: 18%;
    }

    .opening .station_txt {
        width: 34%;
        left: 31%;
        bottom: 24%;
    }

    .merit {
        padding: 20px 0;
    }


    .index_entry_wrap {
        margin: 50px auto;
    }

    .index_entry_txt {
        margin: 15px 0 20px;
    }

    .index_entry_wrap ul {
        flex-direction: column;
        gap: 20px 0;
    }

    .index_entry_wrap ul li {
        width: 100%;
    }

    .index_entry_wrap ul li a {
        padding: 10px 1em 10px 13px;
    }

    .concept_wrap {
        padding: 60px 0;
    }

    .concept_txt {
        margin-top: 30px;
    }
}




















.scroll_contents {
    position: relative;
    z-index: 3;
}

.scroll_contents .enpty_slide {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    position: sticky;
    top: 0;
}

.scroll_contents .slide {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    position: absolute;
    top: 0;
    opacity: 0;
    background-size: cover;
}

.scroll_contents .slide.active {
    position: fixed;
    top: 0;
}




.scroll_contents .slide01 {
    opacity: 1;
    background-image: url(../images/index/scroll_slide_img01.jpg);
    background-position: center;
}

.scroll_contents .slide04 {
    background-image: url(../images/index/scroll_slide_img02.jpg);background-position: center;
}
.scroll_contents .slide07 {
    background-image: url(../images/index/scroll_slide_img03.jpg);
}

.scroll_contents .slide_grayout {
    background: hsla(0, 0%, 0%, 0.35);
}

.scroll_contents .slide_lead {
    position: absolute;
    max-width: 102px;
    width: 12%;
    translate: -50% -50%;
    left: 50%;
    top: 40%;
}

.scroll_contents .txt01 {
    position: absolute;
    bottom: 20%;
    right: 10%;
    max-width: 290px;
    width: 50%;
}

.scroll_contents .txt02 {
    position: absolute;
    bottom: 20%;
    left: 10%;
    max-width: 270px;
    width: 50%;
}

.scroll_contents .txt03 {
    position: absolute;
    bottom: 20%;
    right: 10%;
    max-width: 270px;
    width: 50%;
}


.scroll_contents.end .slide {
    top: auto;
    bottom: 0;
}






.bottom_note {
    margin-top: 30px;
}

#common_footer {
    margin-top: 0;
    padding-top: 80px;
    background-color: #fff;
}

/* SP調整 */
@media screen and (max-width:730px) {

    .scroll_contents .slide01 {
        background-image: url(../images/index/scroll_slide_img01_sp.jpg);
    }
    
    .scroll_contents .slide04 {
        background-image: url(../images/index/scroll_slide_img02_sp.jpg);
    }

    .scroll_contents .slide07 {
        background-image: url(../images/index/scroll_slide_img03_sp.jpg);
    }

    .scroll_contents .slide_lead {
        width: 16%;
        top: 30%;
    }

    .scroll_contents .txt01 {
        width: 70%;
        bottom: 10%;
    }

    .scroll_contents .txt02 {
        width: 65%;
        bottom: 10%;
    }

    .scroll_contents .txt03 {
        width: 65%;
        bottom: 10%;
        right: auto;
        left: 10%;
    }


    #common_footer {
        padding-top: 50px;
    }


    .footer_btn_wrap {
        z-index: 2;
    }

}