main {
    overflow: visible
}

.ovh {
    overflow: hidden
}

#sec1 {
    position: relative;
    z-index: 1;
    padding-bottom: 30vw
}

#sec1::before {
    content: "";
    position: absolute;
    bottom: 14vw;
    left: 0;
    z-index: -1;
    background: rgba(252, 249, 242, .5);
    width: 100%;
    height: 100vw
}

#sec1 h2 {
    word-break: keep-all;
    padding-top: 15vw;
    margin: 0 auto 10vw
}
#sec1 .deco-tt {
    position: relative;
    margin-left: 11%;
    width: 48%;
    margin-bottom: -7%;
    z-index: 3;
}
#sec1 .group {
    position: relative;
    display: flex;
    align-items: flex-start;
    margin-top: 10vw
}

#sec1 .group .photo2 {
    position: relative;
    z-index: 1;
    margin: 40vw -10% 0 0
}

#sec1 .group .photo2 img {
    border-radius: 30px 0 0 0
}

#sec1 .group .txt-en {
    position: absolute;
    top: 12vw;
    left: 3%;
    width: 45%
}

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

@media screen and (min-width: 768px) {
    #sec1 {
        padding-bottom: 206px
    }

    #sec1::before {
        top: 422px;
        width: calc(50% + 166px);
        height: 717px
    }

    #sec1 h2 {
        width: 138px;
        margin: 0 auto;
        padding-top: 250px
    }

    #sec1 .photo1 {
        position: absolute;
        top: 211px;
        left: -250px;
        right: calc(50% + 232px);
        height: 555px
    }

    #sec1 .photo1 img {
        -o-object-position: right;
        object-position: right
    }

    #sec1 .group {
        position: absolute;
        top: 319px;
        right: -249px;
        margin: 0
    }

    #sec1 .group .photo2 {
        margin: 308px -81px 0 0
    }

    #sec1 .group .photo2 img {
        border-radius: 60px 0 0 0
    }

    #sec1 .group .txt-en {
        top: 372px;
        left: -215px;
        z-index: 1;
        width: auto
    }

    #sec1 .txt {
        text-align: center;
        margin-top: 378px
    }
}

@media screen and (min-width: 768px)and (max-width: 1500px) {
    #sec1 .photo1 {
        left: calc(-50vw + 50%)
    }

    #sec1 .group {
        right: calc(-50vw + 50%)
    }
}

#sec2 {
    position: relative
}

#sec2 .photo {
    position: absolute;
    top: -20vw;
    left: 5%;
    width: 40%;
    z-index: 3
}

#sec2 .deco {
    position: absolute;
    top: -15vw;
    left: 0;
    right: 0;
    z-index: 2
}

#sec2 .inner {
    position: relative;
    z-index: 1;
    margin-right: 0;
    background: #000000;
}

#sec2 .inner .bg {
    position: relative;
    margin-bottom: -55vw;
}

#sec2 .inner .bg img {
    -o-object-position: 50% 0;
    object-position: 50% 0
}

#sec2 .inner .group-txt {
    padding: 15vw 5%;
    color: #fff;
    position: relative;
    z-index: 2;
}

#sec2 .inner .group-txt .txt-en {
    color: #e6dfcd;
    opacity: .14;
    text-align: center;
    font-size: 17vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .02em;
        margin: 0 0 4vw -8vw;
}

#sec2 .inner .group-txt h2 {
    text-shadow: 2px 2px 10px #000;
    margin-top: -10vw;
    font-size: 6.04vw;
    line-height: 2.2;

}

#sec2 .inner .group-txt .txt {
    text-shadow: 2px 2px 10px #000;
    margin-top: 5vw
}

#sec2 .bg2 {
    border-left: 1px solid #47351d;
    margin: -20vw 0 0 10%;
    height: 50vw
}

@media screen and (max-width: 767px) {
    #sec2 .inner .bg::before {
        /* content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background: #000;
        opacity: .5 */
    }
}

@media screen and (min-width: 768px) {
    #sec2 .photo {
        top: -199px;
        left: 75px;
        width: auto
    }

    #sec2 .deco {
        top: -174px;
        left: 0;
        right: auto
    }

    #sec2 .inner {
        margin-right: 110px
    }
#sec2 .inner .bg {
    position: absolute;
        inset: 0;
    z-index: -1;
    margin-bottom: 0;


}
    #sec2 .inner .bg img {
        -o-object-position: right;
        object-position: right
    }

    #sec2 .inner .group-txt {
        width: -moz-fit-content;
        width: fit-content;
        margin: 0 68px 0 auto;
        padding: 264px 0 127px
    }

    #sec2 .inner .group-txt .txt-en {
        text-align: left;
        font-size: 125px;
            margin: 0 0 24px 0;
    }

    #sec2 .inner .group-txt h2 {
        text-align: left;
        width: -moz-fit-content;
        width: fit-content;
        margin: -56px 209px 0 auto;
        font-size: 27px;
        line-height: 1.9;
    }

    #sec2 .inner .group-txt .txt {
        width: -moz-fit-content;
        width: fit-content;
        margin: 38px 0 0 auto
    }

    #sec2 .bg2 {
        margin: -178px 0 0 calc(50% - 325px);
        height: 367px
    }
}

#sec3 {
    padding-bottom: 15vw
}

#sec3 .note {
    padding: 10vw 5.33% 0
}

#sec3 .row .col-r {
    padding: 5vw 5.33% 0
}

#sec3 .row .col-r h2 {
    border-top: 1px solid #574a3e;
    border-bottom: 1px solid #574a3e;
    text-align: center;
    font-size: 4.4vw;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: .25em
}

#sec3 .row .col-r .name-price {
    margin-top: 6vw
}

#sec3 .row .col-r .name-price * {
    letter-spacing: .25em
}

#sec3 .row .col-r .name-price dt {
    text-align: center;
    width: 42%;
    margin: 0 auto;
    background: #49372c;
    color: #fff;
    border-radius: 17.5px;
    font-size: 4vw;
    font-weight: 400;
    line-height: 2.1875
}

#sec3 .row .col-r .name-price dd {
    text-align: center;
    margin-top: 3vw;
    font-size: 6.53vw;
    line-height: 1
}

#sec3 .row .col-r .txt {
    margin-top: 10vw
}

#sec3 .row .col-r .box {
    position: relative;
    border: 1px solid #574a3e;
    text-align: center;
    margin-top: 10vw;
    padding: 10vw 5%
}

#sec3 .row .col-r .box::before {
    content: "";
    position: absolute;
    inset: 2vw;
    border: 1px solid #574a3e
}

#sec3 .row .col-r .box .list {
    margin-top: 5vw
}

#sec3 .row .col-l {
    margin-top: 10vw
}

#sec3 .row .col-l .list-photo .slick-dots {
    display: flex !important;
    justify-content: center;
    margin: 5vw 10% 0
}

#sec3 .row .col-l .list-photo .slick-dots li {
    width: 25%;
    height: 2px
}

#sec3 .row .col-l .list-photo .slick-dots button {
    outline: none;
    display: block;
    border: none;
    cursor: pointer;
    -webkit-appearance: none;
    background: #17110e;
    width: 100%;
    height: 100%;
    font-size: 0;
    transition: .3s linear
}

#sec3 .row .col-l .list-photo .slick-dots .slick-active button {
    background: #d9cdbe
}

#sec3 .btn-link {
    margin: 10vw 5.33% 0
}

#sec3 .btn-link a {
    position: relative;
    z-index: 1;
    display: block;
    border-radius: 0 22.5px 0 22.5px;
    color: #fff;
    padding: 7vw 5%
}

#sec3 .btn-link a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border: 2vw solid #cdba88;
    mix-blend-mode: soft-light;
    border-radius: 0 22.5px 0 22.5px
}

#sec3 .btn-link a:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    z-index: 2;
    transform: translateX(-50%);
    background: url("../img/shared/bg5.jpg") repeat center;
    width: 16vw;
    height: 8vw;
    -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%)
}

#sec3 .btn-link a .photo {
    position: absolute;
    inset: 0;
    z-index: -1
}

#sec3 .btn-link a .photo img {
    border-radius: 0 22.5px 0 22.5px
}

#sec3 .btn-link a h3 span {
    text-align: center;
    display: block;
    line-height: 1
}

#sec3 .btn-link a h3 span.en {
    position: relative;
    width: 95%;
    margin: 0 auto 6vw;
    font-size: 12.13vw;
    letter-spacing: .02em
}

#sec3 .btn-link a h3 span.en:before {
    content: "";
    position: absolute;
    bottom: 2vw;
    left: 0;
    background: #fff;
    width: 100%;
    height: 1px
}

#sec3 .btn-link a h3 span.en:after {
    content: "";
    position: absolute;
    bottom: 2vw;
    right: 0;
    background: url("../img/shared/icon_arrow.png") no-repeat center/contain;
    aspect-ratio: 14/11;
    width: 10px;
    height: auto
}

#sec3 .btn-link a h3 span.jp {
    font-size: 4.21vw;
    font-weight: 400;
    letter-spacing: .25em
}

#sec3 .btn-link a .txt {
    margin-top: 6vw
}

#sec3 .btn-popup {
    margin: 10vw 5.33% 0
}

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

    #sec3 .note {
        padding: 29px 0 19px 34px;
        line-height: 30px
    }

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

    #sec3 .row .col-r {
        width: 50%;
        order: 2;
        padding: 0
    }

    #sec3 .row .col-r .inner {
        max-width: 400px;
        margin: 111px 0 0 103px
    }

    #sec3 .row .col-r h2 {
        width: auto;
        font-size: 20px
    }

    #sec3 .row .col-r .name-price {
        margin-top: 27px
    }

    #sec3 .row .col-r .name-price dt {
        width: 149px;
        margin: 0;
        font-size: 16px
    }

    #sec3 .row .col-r .name-price dd {
        text-align: left;
        margin-top: 10px;
        font-size: 35px
    }

    #sec3 .row .col-r .txt {
        width: 391px;
        margin-top: 38px
    }

    #sec3 .row .col-r .sticky {
        height: calc(400vh - 700px)
    }

    #sec3 .row .col-r .box {
        position: sticky;
        top: 120px;
        width: 370px;
        padding: 33px 0 40px;
        margin: 48px 0 0
    }

    #sec3 .row .col-r .box::before {
        inset: 8px
    }

    #sec3 .row .col-r .box .list {
        margin-top: 15px
    }

    #sec3 .row .col-l {
        order: 1;
        width: 50%;
        margin-top: 0
    }

    #sec3 .row .col-l .list-photo li {
        position: relative;
        height: 100vh
    }

    #sec3 .row .col-l .list-photo li span {
        display: block;
        clip: rect(0, auto, auto, 0);
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: -1
    }

    #sec3 .row .col-l .list-photo li span img {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 0;
        width: 50%;
        -o-object-fit: cover;
        object-fit: cover
    }

    #sec3 .btn-link {
        max-width: 875px;
        margin: 147px auto 0
    }

    #sec3 .btn-link a {
        border-radius: 0 45px 0 45px;
        padding: 63px 0 82px
    }

    #sec3 .btn-link a::before {
        border-width: 11px;
        border-radius: 0 45px 0 45px
    }

    #sec3 .btn-link a:after {
        width: 88px;
        height: 44px
    }

    #sec3 .btn-link a .photo img {
        border-radius: 0 45px 0 45px
    }

    #sec3 .btn-link a h3 span.en {
        width: 400px;
        margin-bottom: 32px;
        font-size: 63px
    }

    #sec3 .btn-link a h3 span.en:before {
        bottom: 11px
    }

    #sec3 .btn-link a h3 span.en:after {
        bottom: 11px;
        width: 14px
    }

    #sec3 .btn-link a h3 span.jp {
        font-size: 22px
    }

    #sec3 .btn-link a .txt {
        text-align: center;
        margin-top: 42px;
        line-height: 33px
    }

    #sec3 .btn-popup {
        width: 337px;
        margin: 94px auto 0
    }
}

#sec5 {
    overflow: hidden;
    position: relative;
    margin-bottom: -1px;
    padding-bottom: 5vw;
}
#sec5::after {
    content: "";
    position: absolute;
    bottom:0;
    left: 0;
    right: 0;
    z-index: -2;
    background: #fcf9f2;
    height: 20vw;
    opacity: .5;
}




#sec5 .set1 {
    position: relative
}

#sec5 .set1 h2 {
    position: absolute;
    bottom: 5vw;
    left: 0;
    z-index: 1;
    color: #fff;
    padding-left: 10%;
    font-size: 12vw;
    line-height: 1;
    letter-spacing: .02em
}

#sec5 .set1 h2::before {
    content: "";
    position: absolute;
    bottom: 1.7vw;
    left: 0;
    right: 0;
    background: #fff;
    height: 1px
}

#sec5 .set1 .photo {
    height: 80vw
}

#sec5 .set2 .txt-en {
    padding: 7vw 35% 5vw 0
}

#sec5 .set2 h3 {
    text-align: center
}

#sec5 .set2 .photo {
    margin: 7vw 0
}

#sec5 .set2 .photo img {
    border-radius: 0 30px 0 0
}

#sec5 .set2 .btn-popup-circle {
    box-shadow: 0 0 10px rgba(0, 0, 0, .5);
    border-radius: 50%;
    width: 48vw;
    height: 48vw;
    margin: 7vw auto 0
}

#sec5 .set2 .btn-popup-circle a {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
    gap: 3vw;
    background: url("../img/shared/bg5.jpg") repeat center;
    color: #fff;
    padding-top: 3vw;
    border-radius: 50%;
    width: 100%;
    height: 100%
}

#sec5 .set2 .btn-popup-circle a span {
    display: block
}

#sec5 .set2 .btn-popup-circle a .jp {
    font-size: 4.93vw;
    line-height: 1.4782608696;
    font-weight: 400;
    letter-spacing: .25em
}

#sec5 .set2 .btn-popup-circle a .en {
    font-size: 10.27vw;
    line-height: 1;
    letter-spacing: .02em
}

#sec5 .set2 .btn-popup-circle a .icon {
    width: 3vw
}

#sec5 .set2 .btn-popup-circle a .icon img {
    display: block
}

@media screen and (min-width: 768px) {

#sec5 {

    margin-bottom: 0;
    padding-bottom: 0;
}
#sec5::after {
    display: none;
}


    #sec5 .set1 h2 {
        bottom: 62px;
        padding-left: 70px;
        font-size: 92px
    }

    #sec5 .set1 h2::before {
        bottom: 16px
    }

    #sec5 .set1 .photo {
        height: 715px
    }

    #sec5 .set2 {
        margin-top: 98px
    }

    #sec5 .set2 .wrap {
        max-width: 1260px;
        padding: 0 30px 32px
    }

    #sec5 .set2 .txt-en {
        text-align: right;
        padding: 64px 71px 0 0
    }

    #sec5 .set2 h3 {
        text-align: left;
        width: -moz-fit-content;
        width: fit-content;
        margin: 16px -15px 0 auto
    }

    #sec5 .set2 .photo {
        top: 0;
        left: calc(-50vw + 50%);
        right: 569px;
        margin: 0;
        height: 582px
    }

    #sec5 .set2 .photo img {
        border-radius: 0 60px 0 0
    }

    #sec5 .set2 .txt {
        width: 400px;
        margin: 40px 22px 0 auto
    }

    #sec5 .set2 .btn-popup-circle {
        position: absolute;
        bottom: 10px;
        right: 504px;
        width: 251px;
        height: 251px;
        margin: 0
    }

    #sec5 .set2 .btn-popup-circle a {
        gap: 11px;
        padding-top: 10px
    }

    #sec5 .set2 .btn-popup-circle a .jp {
        font-size: 23px
    }

    #sec5 .set2 .btn-popup-circle a .en {
        font-size: 63px
    }

    #sec5 .set2 .btn-popup-circle a .icon {
        width: 19px;
        margin-top: 5px
    }

    #sec5 .set2 .btn-popup-circle a .icon img {
        width: 100%
    }

    #sec5 .set2 .btn-popup-circle a:hover {
        opacity: .8
    }
}

#sec6 {
    position: relative;
    z-index: 1;
    overflow: hidden;
    padding: 20vw 0 15vw
}

#sec6::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: -2;
    background: #fcf9f2;
    height: 170vw;
    opacity: .5;
}

#sec6 .deco {
    position: absolute;
    bottom: 0;
    left: -20%;
    right: -20%;
    z-index: -1
}

#sec6 h2 {
    position: relative
}

#sec6 h2 span {
    display: block
}

#sec6 h2 span.jp {
    position: relative;
    z-index: 1;
    border-top: 1px solid #574a3e;
    border-bottom: 1px solid #574a3e;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    padding: 0 1vw 0 2vw;
    font-size: 5.6vw;
    font-weight: 400;
    line-height: 1.9285714286;
    letter-spacing: .25em
}

#sec6 h2 span.en {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    color: #baa68c;
    opacity: .2;
    text-align: center;
    font-size: 18.53vw;
    line-height: 1
}

#sec6 .slider-main {
    margin-top: 20vw
}

#sec6 .slider-main .item {
    display: flex !important;
    flex-direction: column;
    justify-content: space-between;
    min-height: 170vw
}

#sec6 .slider-main .item .group-txt .txt-en {
    text-align: center;
    color: #3e2c21;
    font-size: 4.67vw;
    line-height: 1;
    letter-spacing: .02em
}

#sec6 .slider-main .item .group-txt .name-price {
    text-align: center;
    margin-top: 5vw
}

#sec6 .slider-main .item .group-txt .name-price * {
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .25em
}

#sec6 .slider-main .item .group-txt .name-price dt {
    font-size: 5.33vw
}

#sec6 .slider-main .item .group-txt .name-price dd {
    margin-top: 5vw;
    font-size: 5.07vw
}

#sec6 .slider-main .item .group-txt .txt {
    border-top: 1px solid #6c6054;
    margin-top: 5vw;
    padding-top: 5vw
}

#sec6 .slider-main .item .photo {
    margin-top: auto
}

#sec6 .slider-thumb {
    margin-top: 5vw
}

#sec6 .slider-thumb .slick-track {
    display: flex;
    justify-content: center;
    gap: 3vw;
    width: 100% !important;
    transform: none !important
}

#sec6 .slider-thumb .slick-slide {
    position: relative;
    width: 25vw
}

#sec6 .slider-thumb .slick-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(23, 17, 14, .5);
    transition: .3s
}

#sec6 .slider-thumb .slick-current::before {
    background: rgba(0, 0, 0, 0)
}

#sec6 .btn-popup {
    margin-top: 10vw
}

@media screen and (min-width: 768px) {
    #sec6 {
        padding: 82px 0 148px
    }

    #sec6::before {
        top: 398px;
        right: calc(50% - 306px);
        height: 630px
    }

    #sec6 .deco {
        left: 0;
        right: 0
    }

    #sec6 .wrap {
        max-width: 1260px;
        padding: 0 30px
    }

    #sec6 h2 {
        position: relative
    }

    #sec6 h2 span {
        display: block
    }

    #sec6 h2 span.jp {
        text-align: center;
        width: 225px;
        padding: 0;
        font-size: 28px
    }

    #sec6 h2 span.en {
        top: -6px;
        left: -172px;
        font-size: 125px;
        transform: unset
    }

    #sec6 .slider-main {
        margin-top: 88px
    }

    #sec6 .slider-main .slick-list {
        overflow: visible
    }

    #sec6 .slider-main .item {
        display: flex !important;
        flex-direction: row;
        min-height: auto
    }

    #sec6 .slider-main .item .group-txt {
        width: 353px;
        margin: 217px 66px 0 100px
    }

    #sec6 .slider-main .item .group-txt .txt-en {
        text-align: left;
        font-size: 15px
    }

    #sec6 .slider-main .item .group-txt .name-price {
        text-align: left;
        margin-top: 13px
    }

    #sec6 .slider-main .item .group-txt .name-price dt {
        margin-right: -30px;
        font-size: 20px
    }

    #sec6 .slider-main .item .group-txt .name-price dd {
        margin-top: 22px;
        font-size: 18px
    }

    #sec6 .slider-main .item .group-txt .txt {
        margin-top: 16px;
        padding-top: 47px
    }

    #sec6 .slider-main .item .photo {
        flex: 1;
        margin: 0 calc(-50vw + 50% + 50px) 0 0;
        margin-top: 0;
        height: 640px
    }

    #sec6 .slider-thumb {
        margin: 17px 0 0 500px
    }

    #sec6 .slider-thumb .slick-track {
        gap: 19px;
        justify-content: flex-start
    }

    #sec6 .slider-thumb .slick-slide {
        cursor: pointer;
        width: auto
    }

    #sec6 .slider-thumb .slick-slide:hover {
        opacity: .8
    }

    #sec6 .btn-popup {
        width: 374px;
        margin: 98px auto 0
    }
}

#sec7 {
    position: relative;
    z-index: 1;
    overflow: hidden;
    background: url("../img/shared/bg3.jpg") repeat center;
    color: #fff;
    padding-bottom: 15vw
}

#sec7:after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: -2;
    background: rgba(0, 0, 0, .3);
    width: 30%
}

#sec7 .deco {
    position: absolute;
    bottom: 0;
    left: -10%;
    right: -10%;
    z-index: -1
}

#sec7 .photo1 {
    height: 80vw
}

#sec7 .photo1 img {
    -o-object-position: 57% 0;
    object-position: 57% 0
}

#sec7 .group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6%;
    position: relative;
    margin-top: 15vw
}

#sec7 .group .txt-en {
    position: absolute;
    top: -10vw;
    right: 0;
    z-index: 1;
    width: 45%
}

#sec7 .group .photo2 {
    flex: 1
}

#sec7 .photo3 {
    margin-top: 10vw
}

#sec7 .group-txt {
    margin-top: 8vw
}

#sec7 .group-txt .btn-popup {
    margin-top: 10vw
}

@media screen and (min-width: 768px) {
    #sec7 {
        padding-bottom: 175px
    }

    #sec7:after {
        width: calc(50% - 206px)
    }

    #sec7 .deco {
        left: 0;
        right: 0
    }

    #sec7 .photo1 {
        height: 715px
    }

    #sec7 .photo1 img {
        -o-object-position: center;
        object-position: center
    }

    #sec7 .group {
        gap: 70px;
        width: -moz-fit-content;
        width: fit-content;
        padding-top: 271px;
        margin: 0 36px 0 auto
    }

    #sec7 .group .txt-en {
        top: 192px;
        right: -11px;
        width: auto
    }

    #sec7 .group h2 {
        margin-top: 72px
    }

    #sec7 .photo3 {
        top: 102px;
        right: 588px;
        left: calc(-50vw + 50%);
        height: 560px;
        margin-top: 0
    }

    #sec7 .group-txt {
        margin: 36px 0 0 53px
    }

    #sec7 .group-txt .btn-popup {
        margin-top: 68px
    }
}

#sec8 {
    overflow: hidden;
    background: url("../img/shared/bg2.jpg") repeat center;
    padding: 12vw 5%
}

#sec8 .wrap {
    background: url("../img/shared/bg1.jpg") repeat center;
    padding: 12vw 6%
}

#sec8 h2 span {
    text-align: center;
    display: block
}

#sec8 h2 span.en {
    color: #3e2c21;
    margin-bottom: 3vw;
    font-size: 14.27vw;
    line-height: 1;
    letter-spacing: .02em
}

#sec8 .txt1 {
    margin-top: 7vw
}

#sec8 .floor-map {
    margin-top: 7vw
}

#sec8 .floor-map dt {
    color: #5e4f46;
    margin-bottom: 3vw;
    font-size: 7.47vw;
    line-height: 1;
    letter-spacing: .02em
}

#sec8 .row {
    position: relative;
    margin-top: 25vw
}

#sec8 .row .txt-en {
    position: absolute;
    top: -18vw;
    left: 5%;
    z-index: 1;
    width: 40%
}

#sec8 .row .group-txt {
    margin-top: 6vw
}

#sec8 .row .group-txt h3 {
    text-align: center
}

#sec8 .row .group-txt .txt2 {
    margin-top: 5vw
}

#sec8 .btn-tel {
    position: relative;
    text-align: center;
    border-top: 1px solid #bcb5a7;
    border-bottom: 1px solid #bcb5a7;
    padding: 5vw 0;
    margin-top: 9vw;
    line-height: 1
}

#sec8 .btn-tel::before,
#sec8 .btn-tel:after {
    content: "";
    position: absolute;
    left: 0;
    background: #bcb5a7;
    height: 1px;
    width: 100%
}

#sec8 .btn-tel::before {
    top: 3px
}

#sec8 .btn-tel:after {
    bottom: 3px
}

#sec8 .btn-tel dl * {
    letter-spacing: .08em
}

#sec8 .btn-tel dl dt {
    font-size: 14px
}

#sec8 .btn-tel dl dd {
    margin-top: 6px;
    font-size: 25px
}

#sec8 .btn-tel dl dd img {
    width: 17.5px;
    margin: -3px 9.5px 0 0
}

#sec8 .btn-tel .note {
    margin-top: 10px;
    font-size: 10px;
    letter-spacing: .1em
}

@media screen and (min-width: 768px) {
    #sec8 {
        padding: 110px 30px
    }

    #sec8 .wrap {
        max-width: 1346px;
        padding: 136px 30px 102px
    }

    #sec8 h2 span.en {
        margin-bottom: 19px;
        font-size: 93px
    }

    #sec8 .txt1 {
        text-align: center;
        margin-top: 55px;
        line-height: 33px
    }

    #sec8 .floor-map {
        width: -moz-fit-content;
        width: fit-content;
        margin: 70px auto 0
    }

    #sec8 .floor-map dt {
        margin-bottom: 12px;
        font-size: 42px
    }

    #sec8 .row {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 30px;
        max-width: 1080px;
        margin: 135px auto 0
    }

    #sec8 .row .txt-en {
        top: -49px;
        left: auto;
        right: 359px;
        width: auto
    }

    #sec8 .row .photo {
        flex: 1;
        max-width: 540px;
        height: 360px
    }

    #sec8 .row .group-txt {
        margin: 128px 30px 0 0
    }

    #sec8 .row .group-txt h3 {
        text-align: left
    }

    #sec8 .row .group-txt .txt2 {
        margin-top: 28px;
        line-height: 33px
    }

    #sec8 .btn-tel {
        width: 565px;
        padding: 37px 0 41px;
        margin: 59px auto 0
    }

    #sec8 .btn-tel dl dt {
        font-size: 18px
    }

    #sec8 .btn-tel dl dd {
        margin-top: 5px;
        font-size: 38px
    }

    #sec8 .btn-tel dl dd img {
        width: 26px;
        margin: -6px 12px 0 0
    }

    #sec8 .btn-tel .note {
        margin-top: 18px;
        font-size: 16px
    }
}