#sec1 {
    padding: 20vw 0;
    position: relative;
    z-index: 1
}

#sec1 h2 {
    font-size: 5.2vw;
    line-height: 10vw;
    letter-spacing: .32em;
    color: #fff;
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    top: 14vw;
    z-index: 1
}

#sec1 h2 .eng {
    display: block;
    opacity: .58;
    color: #e4e4e4;
    margin-top: 1vw;
    font-size: 2.27vw;
    letter-spacing: .22em
}

#sec1 .img {
    margin: 0 -8vw 10vw
}

#sec1 .img img {
    height: 60vw;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 70%;
    object-position: 70%
}

@media screen and (min-width: 768px) {
    #sec1 {
        padding: 145px 0 111px
    }

    #sec1 h2 {
        font-size: 27px;
        line-height: 60px;
        top: 216px;
        left: 12px
    }

    #sec1 h2 .eng {
        margin: 6px 8px 0 0;
        font-size: 13px;
        line-height: 30px
    }

    #sec1 .img {
        width: 1136px;
        margin: 0 -67px 72px
    }

    #sec1 .img img {
        height: auto
    }

    #sec1 .txt {
        margin: 0 auto;
        padding-left: 8px
    }
}

#sec2 {
    position: relative;
    z-index: 0;
    padding: 10vw 0 8vw;
    margin-bottom: 20vw
}

#sec2:before {
    content: "";
    width: 80vw;
    height: 70vw;
    background-image: url("../img/floor/sec2_deco1.png");
    background-repeat: no-repeat;
    background-size: 100%;
    position: absolute;
    left: -5vw;
    top: -30vw;
    z-index: -1
}

#sec2:after {
    content: "";
    width: 100vw;
    background-image: url("../img/floor/sec2_deco2.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 20% top;
    position: absolute;
    right: 0;
    bottom: 0;
    top: 0;
    z-index: -2
}

#sec2 h2 {
    font-size: 5.2vw;
    line-height: 10vw;
    letter-spacing: .32em;
    background: url("../img/floor/line1.png") no-repeat left bottom/auto;
    margin-bottom: 10vw
}

#sec2 ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap
}

#sec2 ul li {
    width: 40vw;
    height: 40vw;
    border-radius: 50%;
    background-image: url("../img/floor/sec2_catch.png");
    background-repeat: no-repeat;
    background-size: 100%;
    text-align: center;
    font-size: 4vw;
    letter-spacing: .2em;
    line-height: 6vw;
    margin-bottom: 5vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 0
}

#sec2 ul li:before {
    content: "";
    background-image: url("../img/floor/line2.png");
    background-repeat: no-repeat;
    background-size: 34vw;
    background-position: 50%;
    position: absolute;
    left: 0;
    right: 0;
    top: .6vw;
    bottom: 0;
    z-index: -1
}

@media screen and (min-width: 768px) {
    #sec2 {
        padding: 84px 0 82px;
        margin-bottom: 186px
    }

    #sec2:before {
        width: 698px;
        height: 520px;
        left: 0;
        top: -312px
    }

    #sec2:after {
        width: calc(50% + 507px);
        height: 445px;
        background-position: 0% top;
        top: auto
    }

    #sec2 h2 {
        font-size: 27px;
        line-height: 30px;
        letter-spacing: .26em;
        margin: 0 0 29px 65px;
        padding-bottom: 8px;
        background-position: 5px bottom
    }

    #sec2 ul {
        flex-wrap: nowrap;
        margin: 0 34px 0 35px
    }

    #sec2 ul li {
        width: 213px;
        height: 213px;
        font-size: 22px;
        line-height: 36px;
        margin-bottom: 0;
        padding-top: 6px
    }

    #sec2 ul li:before {
        background-size: auto;
        top: 3px
    }
}

#sec3 {
    padding: 12vw 0 0vw;
    position: relative;
    z-index: 0
}

#sec3:before {
    content: "";
    height: 70vw;
    background-image: url("../img/floor/sec3_bg.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 40%;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    z-index: -1
}

#sec3:after {
    content: "";
    width: 40%;
    height: 80vw;
    background-image: url("../img/floor/sec3_deco1.png");
    background-repeat: no-repeat;
    background-size: 100%;
    position: absolute;
    right: 0;
    top: 70vw;
    z-index: -1
}

#sec3 h2 {
    color: #fff;
    font-size: 5.2vw;
    line-height: 10vw;
    letter-spacing: .32em;
    margin: 0 auto 30vw;
    position: relative;
    white-space: nowrap
}

#sec3 h2:before {
    content: "";
    width: 1px;
    height: 15vw;
    background: #fff;
    position: absolute;
    left: 50%;
    bottom: -17vw
}

#sec3 h3 {
    font-size: 4.8vw;
    letter-spacing: .26em;
    line-height: 6vw;
    margin-bottom: 5vw;
    text-align: center
}

#sec3 .floor {
    width: 84vw;
    margin: 0 auto 15vw
}

#sec3 .set1 {
    margin-bottom: 15vw;
    position: relative;
    z-index: 1
}

#sec3 .set1 .img-group {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10vw
}

#sec3 .set1 .img-group .img1 {
    margin: 5vw 1vw 0 0
}

#sec3 .set1 .img-group .img1 img:first-child {
    margin-bottom: 10px;
}

#sec3 .set2 {
    position: relative;
    z-index: 0;
    margin-bottom: 15vw
}

#sec3 .set2:before {
    content: "";
    width: 70vw;
    height: 70vw;
    background-image: url("../img/floor/sec3_deco2.png");
    background-repeat: no-repeat;
    background-size: 100%;
    position: absolute;
    right: 0;
    top: -40vw;
    z-index: -1
}

#sec3 .set2 .img {
    margin-bottom: 10vw
}

#sec3 .set3 {
    position: relative;
    z-index: 0;
    padding-bottom: 20vw
}

#sec3 .set3:before {
    content: "";
    width: 70%;
    height: 100vw;
    background-image: url("../img/floor/sec3_deco3.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: right bottom;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1
}

#sec3 .set3 .img {
    margin-bottom: 10vw
}

@media screen and (min-width: 768px) {
    #sec3 {
        padding: 187px 0 0
    }

    #sec3:before {
        height: 568px
    }

    #sec3:after {
        width: 399px;
        height: 863px;
        top: 568px
    }

    #sec3 h2 {
        height: 381px;
        font-size: 27px;
        line-height: 40px;
        margin: 0 calc(50% - 371px) 109px auto
    }

    #sec3 h2:before {
        height: 158px;
        left: 50%;
        bottom: 0
    }

    #sec3 h3 {
        font-size: 25px;
        line-height: 36px;
        margin-bottom: 42px
    }

    #sec3 .floor {
        width: 100%;
        margin: 0 0 101px 2px;
        text-align: center
    }

    #sec3 .set1 {
        margin-bottom: 134px
    }

    #sec3 .set1 .img-group {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin: 0 -27px 0 -26px
    }

    #sec3 .set1 .img-group .img1 {
        margin: 74px 0 0 0
    }

    #sec3 .set1 .col-text {
        width: 320px;
        margin: -350px -8px 0 auto;
        position: relative;
        z-index: 1
    }

    #sec3 .set1 .col-text h3 {
        margin: 0 0 34px 6px
    }

    #sec3 .set2 {
        margin-bottom: 141px
    }

    #sec3 .set2:before {
        width: 666px;
        height: 520px;
        top: -315px
    }

    #sec3 .set2 .wrap {
        display: flex;
        justify-content: space-between;
        align-items: flex-start
    }

    #sec3 .set2 .img {
        order: 2;
        width: 700px;
        margin: 0 -17px 0 0
    }

    #sec3 .set2 .col-text {
        order: 1;
        margin: 59px 0 0 29px
    }

    #sec3 .set2 .col-text h3 {
        margin-left: 16px
    }

    #sec3 .set3 {
        padding-bottom: 244px
    }

    #sec3 .set3:before {
        width: 618px;
        height: 555px
    }

    #sec3 .set3 .wrap {
        display: flex;
        justify-content: flex-end;
        align-items: flex-start;
        column-gap: 63px;
        max-width: 1097px;
        padding: 0 30px;
    }

    #sec3 .set3 .img {
        width: 700px;
        margin: 0
    }

    #sec3 .set3 .col-text {
        margin: 49px 0 0;
    }

    #sec3 .set3 .col-text h3 {
        margin-left: 6px
    }
}