#sec1 {
    background: url("../img/floor/sec1_deco_sp.png") no-repeat right top 20vw/100%;
    padding: 47vw 0 20vw
}

#sec1 h2 {
    background: url("../img/floor/sec1_ttl_deco1.png") no-repeat center left/11vw auto, url("../img/floor/sec1_ttl_deco2.png") no-repeat center right/11vw auto;
    text-align: center;
    font-size: 5.67vw;
    line-height: 1;
    letter-spacing: .15em
}

#sec1 .photo {
    margin-top: 10vw
}

#sec1 .ttl {
    background: url("../img/floor/sec1_ttl_deco3.png") no-repeat center top/100%, url("../img/floor/sec1_ttl_deco4.png") no-repeat center bottom/100%;
    width: 50%;
    margin: 10vw auto 0;
    padding: 16vw 0
}

#sec1 .ttl h3 {
    word-break: keep-all;
    margin: 0 auto;
    font-size: 5.67vw;
    line-height: 2.4;
    letter-spacing: .28em
}

#sec1 .txt {
    margin-top: 10vw
}

@media screen and (min-width: 768px) {
    #sec1 {
        background: url("../img/floor/sec1_deco1.png") no-repeat left top, url("../img/floor/sec1_deco2.png") no-repeat right -109px top 298px/auto;
        padding: 212px 0 112px
    }

    #sec1 .wrap {
        max-width: 1200px
    }

    #sec1 h2 {
        background-size: 48px auto;
        width: 398px;
        margin: 0 auto;
        font-size: 25px
    }

    #sec1 .photo {
        margin: 144px 20px 0 50px;
        height: 700px
    }

    #sec1 .group-txt {
        display: flex;
        justify-content: space-between;
        max-width: 1000px;
        margin: 0 auto
    }

    #sec1 .ttl {
        position: relative;
        width: 149px;
        margin: -125px 0 0 50px;
        padding: 86px 0 76px
    }

    #sec1 .ttl h3 {
        font-size: 25px
    }

    #sec1 .txt {
        width: 715px;
        margin-top: 128px;
        letter-spacing: .05em
    }
}

#sec2 {
    background: url("../img/floor/sec2_deco.png") no-repeat center top/auto;
    padding: 20vw 0
}

#sec2 h2 span {
    display: block;
    line-height: 1
}

#sec2 h2 span.en {
    font-size: 3.2vw;
    letter-spacing: .1em
}

#sec2 h2 span.jp {
    font-size: 5.67vw;
    letter-spacing: .28em
}

#sec2 h3 {
    text-align: center;
    font-size: 5.67vw;
    line-height: 1.5;
    letter-spacing: .28em
}

#sec2 .set1 {
    display: flex;
    align-items: center
}

#sec2 .set1 .photo {
    flex: 1;
    margin-left: -7%
}

#sec2 .set1 h2 {
    position: relative;
    z-index: 1;
    margin-left: -17%
}

#sec2 .set1 h2::before {
    content: "";
    position: absolute;
    background: url("../img/floor/sec2_deco_ttl.png") no-repeat;
    background-size: 100%;
    width: 42vw;
    height: 17vw;
    bottom: -10vw;
    left: -7vw;
    z-index: -1
}

#sec2 .set1 h2 span.jp {
    margin-top: 3vw
}

#sec2 .set2 {
    margin-top: 10vw
}

#sec2 .set2 .group-txt .txt {
    margin-top: 5vw
}

#sec2 .set2 .photo {
    margin: 10vw 10vw 20vw 10vw;
}

#sec2 .set3 {
    margin-top: 13vw
}

#sec2 .set3 .row1 {
    display: flex;
    align-items: center
}

#sec2 .set3 .row1 .photo {
    flex: 1;
    margin-right: -7%
}

#sec2 .set3 .row1 h2 {
    position: relative;
    z-index: 1;
    margin: 0 8% 0 3%
}

#sec2 .set3 .row1 h2::before {
    content: "";
    position: absolute;
    background: url("../img/floor/sec2_deco_ttl.png") no-repeat;
    background-size: 100%;
    width: 42vw;
    height: 17vw;
    bottom: -10vw;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1
}

#sec2 .set3 .row1 h2 span {
    text-align: left
}

#sec2 .set3 .row1 h2 span.jp {
    margin-right: 13%
}

#sec2 .set3 .row2 .photo {
    margin: 10vw 10vw 20vw 10vw;
}

#sec2 .set3 .row2 .group-txt {
    margin-top: 10vw
}

#sec2 .set3 .row2 .group-txt .txt {
    margin-top: 5vw
}

#sec2 .set3 .row2 .btn-shared {
    margin: 10vw auto 0;
    width: 90%
}

@media screen and (min-width: 768px) {
    #sec2 {
        padding: 128px 0 202px
    }

    #sec2 h2 span.en {
        font-size: 14px
    }

    #sec2 h2 span.jp {
        font-size: 25px
    }

    #sec2 h3 {
        text-align: left;
        font-size: 25px
    }

    #sec2 .wrap {
        max-width: 1060px;
        padding: 0 30px
    }

    #sec2 .set1 .photo {
        margin-left: calc(-50vw + 50%);
        height: 630px
    }

    #sec2 .set1 h2 {
        margin: 57px 108px 0 -85px
    }

    #sec2 .set1 h2::before {
        width: 363px;
        height: 148px;
        bottom: -87px;
        left: -49px
    }

    #sec2 .set1 h2 span.jp {
        margin-top: 36px
    }

    #sec2 .set2 {
        display: flex;
        justify-content: space-between;
        margin-top: 98px
    }

    #sec2 .set2 .group-txt {
        width: 413px;
        margin-top: 54px
    }

    #sec2 .set2 .group-txt .txt {
        margin-top: 44px;
        letter-spacing: .05em
    }

    #sec2 .set2 .photo {
        margin: 0;
    }

    #sec2 .set3 {
        margin-top: 178px
    }

    #sec2 .set3 .row1 .photo {
        margin-right: calc(-50vw + 50%);
        height: 630px
    }

    #sec2 .set3 .row1 h2 {
        margin: 0 149px 120px 24px
    }

    #sec2 .set3 .row1 h2::before {
        width: 363px;
        height: 148px;
        bottom: -96px;
        left: calc(50% + 30px)
    }

    #sec2 .set3 .row1 h2 span.jp {
        margin-right: 29px
    }

    #sec2 .set3 .row2 {
        position: relative
    }

    #sec2 .set3 .row2 .photo {
        position: absolute;
        top: -117px;
        left: -150px;
        margin: 0 0px 0 0;
    }

    #sec2 .set3 .row2 .group-txt {
        width: -moz-fit-content;
        width: fit-content;
        padding-top: 105px;
        margin: 0 0 0 440px;
    }

    #sec2 .set3 .row2 .group-txt .txt {
        margin-top: 47px
    }

    #sec2 .set3 .row2 .btn-shared {
        width: 360px;
        margin-top: 116px
    }
}

#sec3 .lead {
    position: relative
}

#sec3 .lead h2 {
    position: absolute;
    bottom: 5vw;
    left: 5vw;
    z-index: 1
}

#sec3 .lead h2 span {
    display: block;
    line-height: 1.5
}

#sec3 .lead h2 span.en {
    font-size: 3.2vw;
    letter-spacing: .1em
}

#sec3 .lead h2 span.jp {
    margin-top: 4vw;
    font-size: 5.67vw;
    letter-spacing: .28em
}

#sec3 .lead .photo {
    height: 51vw;
}

#sec3 .lead .photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#sec3 .group-txt {
    margin-top: 10vw
}

#sec3 .group-txt .btn-shared {
    margin: 10vw auto 0
}

@media screen and (min-width: 768px) {
    #sec3 .wrap {
        max-width: 1030px
    }

    #sec3 .lead h2 {
        bottom: 43px;
        left: 49px
    }

    #sec3 .lead h2 span.en {
        font-size: 14px
    }

    #sec3 .lead h2 span.jp {
        margin-top: 27px;
        font-size: 25px
    }

    #sec3 .lead .photo {
        height: 580px
    }

    #sec3 .group-txt {
        display: flex;
        justify-content: space-between;
        margin: 41px 50px 0 53px
    }

    #sec3 .group-txt .btn-shared {
        margin: 18px 0 0
    }
}

#sec4 {
    padding: 20vw 0
}

#sec4 .scroll {
    position: sticky;
    top: 10vw;
    left: 0;
    z-index: 1
}

#sec4 .scroll * {
    filter: drop-shadow(2px 2px 10px rgba(0, 0, 0, 0.5))
}

#sec4 .scroll .floor-map {
    width: 60%;
    margin: 0 auto
}

#sec4 .scroll h2 {
    margin-top: 5vw
}

#sec4 .scroll h2 span {
    text-align: center;
    display: block;
    line-height: 1.5
}

#sec4 .scroll h2 span.en {
    font-size: 3.2vw;
    letter-spacing: .1em
}

#sec4 .scroll h2 span.jp {
    margin-top: 4vw;
    font-size: 5.67vw;
    letter-spacing: .28em
}

#sec4 .loop-slider {
    align-items: flex-start !important;
    margin-top: 10vw
}

#sec4 .loop-slider .item1 {
    width: 54vw;
    margin: 16vw 13vw 0 0
}

#sec4 .loop-slider .item2 {
    width: 49.6vw;
    margin-top: 6vw
}

#sec4 .loop-slider .item3 {
    width: 23vw;
    margin: 22vw 13vw 0
}

#sec4 .loop-slider .item4 {
    width: 40vw
}

#sec4 .loop-slider .item5 {
    margin: 7.5vw 13vw 0;
    width: 51.5vw
}

@media screen and (min-width: 768px) {
    #sec4 {
        padding: 203px 0 175px
    }

    #sec4 .scroll {
        top: 100px
    }

    #sec4 .scroll .floor-map {
        width: -moz-fit-content;
        width: fit-content
    }

    #sec4 .scroll h2 {
        position: absolute;
        top: 181px;
        left: calc(50% + 252px);
        right: 0;
        margin-top: 0
    }

    #sec4 .scroll h2 span {
        text-align: left
    }

    #sec4 .scroll h2 span.en {
        font-size: 14px
    }

    #sec4 .scroll h2 span.jp {
        margin-top: 25px;
        font-size: 30px;
        letter-spacing: .05em
    }

    #sec4 .loop-slider {
        margin-top: 62px
    }

    #sec4 .loop-slider .item1 {
        width: auto;
        margin: 121px 100px 0 0
    }

    #sec4 .loop-slider .item2 {
        width: auto;
        margin-top: 47px
    }

    #sec4 .loop-slider .item3 {
        width: auto;
        margin: 170px 100px 0
    }

    #sec4 .loop-slider .item4 {
        width: auto
    }

    #sec4 .loop-slider .item5 {
        width: auto;
        margin: 56px 100px 0
    }
}