.ttl-shared span {
    display: block;
    text-align: center;
    line-height: 1;
    letter-spacing: .15em
}

.ttl-shared span:nth-child(1) {
    position: relative;
    width: 55vw;
    margin: 0 auto;
    padding-bottom: 3.5vw;
    margin-bottom: 2.5vw;
    font-size: 7.5vw;
}

.ttl-shared span:nth-child(1)::before,
.ttl-shared span:nth-child(1):after {
    content: "";
    position: absolute;
    background: rgba(255, 255, 255, .5);
    height: 1px;
    width: 76%
}

.ttl-shared span:nth-child(1)::before {
    left: 0;
    bottom: 4px
}

.ttl-shared span:nth-child(1)::after {
    right: 0;
    bottom: 0
}

.ttl-shared span:nth-child(2) {
    font-size: 4vw;
}

@media screen and (min-width: 768px) {
    .ttl-shared span:nth-child(1) {
        width: 213px;
        padding-bottom: 23px;
        margin-bottom: 20px;
        font-size: 30px
    }

    .ttl-shared span:nth-child(1)::before,
    .ttl-shared span:nth-child(1):after {
        width: 164px
    }

    .ttl-shared span:nth-child(2) {
        font-size: 16px
    }
}

.name-price {
    display: flex;
    justify-content: space-between;
    padding: 4vw 2vw;
    font-size: 5.07vw;
    line-height: 1.5
}

.name-price dt small {
    font-size: 4.13vw
}

.name-price dd small {
    font-size: 4.53vw
}

#keyvisual .item img {
    object-position: 43% 0;
}

@media screen and (min-width: 768px) {
    .name-price {
        padding: 20px 17px 18px;
        font-size: 22px
    }

    .name-price dt small {
        font-size: 15px
    }

    .name-price dd small {
        font-size: 18px
    }
}

#sec1 {
    background: url("../img/kaiseki/sec1_deco.png") no-repeat left bottom/100%, url("../../../shared/img/shared/bg1.png") repeat center top;
    padding-top: 20vw
}

#sec1 h2 {
    text-align: center;
    font-size: 6.13vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: .2em
}

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

#sec1 .bg {
    margin: -20vw 0
}

#sec1 .note li {
    display: flex;
    opacity: .8;
    font-size: 12px;
    font-weight: 200;
    letter-spacing: .15em
}

@media screen and (min-width: 768px) {
    #sec1 {
        background-size: auto;
        background-position: left 235px bottom, center top;
        position: relative;
        padding-top: 143px
    }

    #sec1 .wrap {
        position: unset;
        background-size: auto;
        max-width: 1030px;
        padding-bottom: 64px
    }

    #sec1 .lead {
        display: flex;
        justify-content: center;
        -moz-column-gap: 97px;
        column-gap: 97px;
        margin-left: 11px
    }

    #sec1 h2 {
        text-align: left;
        order: 2;
        font-size: 30px
    }

    #sec1 .txt {
        order: 1;
        margin: 116px 0 0;
        line-height: 46px
    }

    #sec1 .bg {
        position: absolute;
        margin: 0;
        left: 0;
        bottom: 0
    }

    #sec1 .note {
        width: -moz-fit-content;
        width: fit-content;
        margin: 285px -136px 0 auto;
        line-height: 35px
    }

    #sec1 .note li {
        font-size: 15px
    }
}

@media screen and (min-width: 768px)and (max-width: 1350px) {
    #sec1 .note {
        margin-right: calc(-50vw + 50% + 30px)
    }
}

#sec2 {
    position: relative;
    background: url("../img/kaiseki/sec2_bg_deco.png") repeat-x center top;
    padding: 20vw 0
}

#sec2::before {
    content: "";
    position: absolute;
    background: url("../img/kaiseki/sec2_deco.png") no-repeat;
    width: 80vw;
    height: 52vw;
    background-size: 100%;
    bottom: 20vw;
    right: 0;
    z-index: 1
}

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

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

#sec2 .row1 .group-txt .menu .name-price+.name-price {
    margin-top: 3vw
}

#sec2 .row1 .group-txt .txt {
    margin-top: 7vw
}

#sec2 .row2 {
    margin-top: 7vw
}

#sec2 .row2 .box {
    background: url("../../../shared/img/shared/bg2.jpg") repeat center;
    border: 3px solid rgba(255, 255, 255, .05);
    padding: 10vw 5vw
}

#sec2 .row2 .box .inner {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto
}
#sec2 .row2 .box .inner .course_ttl {
    font-size: 4.5vw;    
    padding-bottom: 3vw;
    text-align: center;
}

#sec2 .row2 .group-photo li:nth-child(1) {
    margin: 10vw 0 0 25%
}

#sec2 .row2 .group-photo li:nth-child(2) {
    margin: -5vw 55% 0 0;
}
#sec2 .image_come {
    font-size: 3.5vw;
    opacity: .8;
}
#sec2 .come {
    font-size: 3.5vw;
    padding-top: 3vw;
    opacity: .8;
}

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

    #sec2::before {
        width: 583px;
        height: 389px;
        bottom: 257px;
        right: 0
    }

    #sec2 .wrap {
        max-width: 1264px;
        padding: 0 20px
    }

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

    #sec2 .row1 .photo {
        flex: 1;
        max-width: 740px;
        height: 550px
    }

    #sec2 .row1 .group-txt {
        width: 393px;
        margin: 72px 34px 0 54px
    }

    #sec2 .row1 .group-txt .menu .name-price+.name-price {
        margin-top: 19px
    }

    #sec2 .row1 .group-txt .txt {
        margin: 81px 0 0 6px
    }

    #sec2 .row2 {
        display: flex;
        margin-top: 46px
    }

    #sec2 .row2 .box {
        width: 483px;
        height: -moz-fit-content;
        height: fit-content;
        border-width: 6px;
        padding: 71px 20px 61px;
        line-height: 45px
    }

    #sec2 .row2 .box .inner .course_ttl {
        font-size: 20px;    
        padding-bottom: 10px;
    }
    
    #sec2 .row2 .group-photo li:nth-child(1) {
        margin: 110px 0 0 146px
    }

    #sec2 .row2 .group-photo li:nth-child(2) {
        max-width: 290px;
        margin: 112px 0 0 90px
    }

    #sec2 .image_come {
        font-size: 15px;
        text-align: left;
    }

    #sec2 .come {
        font-size: 15px;
        padding-top: 25px;
        text-align: center;
    }

}

#sec3 {
    position: relative;
    background: url("../../../shared/img/shared/bg1.png") repeat center top, url("../img/kaiseki/sec3_bg_deco.png") no-repeat right top/95%;
    padding: 20vw 0
}

#sec3::before {
    content: "";
    position: absolute;
    background: url("../img/kaiseki/sec3_deco.png") no-repeat;
    width: 68vw;
    height: 48vw;
    background-size: 100%;
    top: -22vw;
    left: 0
}

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

#sec3 .txt {
    margin-top: 8vw
}

#sec3 .menu {
    margin-top: 8vw
}

#sec3 .menu .name-price+.name-price {
    margin-top: 3vw
}

#sec3 .box {
    background: url("../../../shared/img/shared/bg2.jpg") repeat center;
    border: 3px solid rgba(255, 255, 255, .05);
    margin-top: 10vw;
    padding: 10vw 5vw
}

#sec3 .box .inner {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto
}

#sec3 .image_come {
    font-size: 3.5vw;
    opacity: .8;
}

#sec3 .come {
    font-size: 3.5vw;
    padding-top: 3vw;
    opacity: .8;
}


@media screen and (min-width: 768px) {
    #sec3 {
        background-size: auto;
        padding: 157px 0 184px
    }

    #sec3::before {
        width: 508px;
        height: 353px;
        top: -210px
    }

    #sec3 .photo {
        text-align: center;
        margin-top: 71px
    }

    #sec3 .txt {
        text-align: center;
        margin-top: 62px
    }

    #sec3 .menu {
        max-width: 393px;
        margin: 57px auto 0
    }

    #sec3 .menu .name-price+.name-price {
        margin-top: 19px
    }

    #sec3 .box {
        width: 570px;
        border-width: 6px;
        margin: 74px auto 0;
        padding: 58px 20px 55px;
        line-height: 45px
    }
    #sec3 .image_come {
        font-size: 15px;
        text-align: right;
        padding-right: 70px;
    }
    #sec3 .come {
        font-size: 15px;
        padding-top: 25px;
        text-align: center;
    }
    
}

#sec4 {
    background: url("../img/kaiseki/sec4_bg.jpg") no-repeat center/cover;
    padding: 20vw 0
}

#sec4 .lead h2 {
    position: relative;
    text-align: center;
    margin: 0 11%;
    padding-bottom: 3.5vw;
    font-size: 5.33vw;
    line-height: 1;
    letter-spacing: .2em;
}

#sec4 .lead h2::before,
#sec4 .lead h2:after {
    content: "";
    position: absolute;
    background: rgba(255, 255, 255, .5);
    height: 1px;
    left: 0;
    right: 0;
}

#sec4 .lead h2::before {
    bottom: 2.5px;
}

#sec4 .lead h2:after {
    bottom: 0;
}

#sec4 .lead .group-txt {
    margin-top: 11vw
}

#sec4 .lead .group-txt .btn-tel {
    text-align: center
}

#sec4 .lead .group-txt .btn-tel dt {
    width: 170px;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, .4);
    margin: 0 auto;
    padding-left: 13px;
    line-height: 26px;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: .2em
}

#sec4 .lead .group-txt .btn-tel dt small {
    font-size: 13px
}

#sec4 .lead .group-txt .btn-tel dd {
    margin-top: 10px;
    font-size: 36px;
    line-height: 1;
    letter-spacing: .025em
}

#sec4 .lead .group-txt .btn-tel dd img {
    width: 20px;
    margin: -6px 6px 0 0
}

#sec4 .lead .group-txt .note {
    margin-top: 7vw
}

#sec4 .lead .group-txt .note li {
    display: flex
}

#sec4 .btn-shared {
    margin: 10vw 7% 0
}

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

    #sec4 .lead {
        display: flex
    }

    #sec4 .lead h2 {
        margin: 0 0 0 80px;
        padding: 0 0 0 18px;
        font-size: 26px
    }

    #sec4 .lead h2::before,
    #sec4 .lead h2:after {
        height: auto;
        width: 1px;
    }

    #sec4 .lead h2::before {
        inset: 0 auto 0 0;
    }

    #sec4 .lead h2:after {
        inset: 0 auto 0 4px;
    }

    #sec4 .lead .group-txt {
        margin: 5px 0 0 164px
    }

    #sec4 .lead .group-txt .btn-tel {
        text-align: left
    }

    #sec4 .lead .group-txt .btn-tel dt {
        width: 185px;
        margin: 0;
        padding-left: 19px;
        line-height: 28px;
        font-size: 20px
    }

    #sec4 .lead .group-txt .btn-tel dt small {
        font-size: 16px
    }

    #sec4 .lead .group-txt .btn-tel dd {
        margin-top: 12px;
        font-size: 40px
    }

    #sec4 .lead .group-txt .btn-tel dd img {
        width: 23px;
        margin: -5px 5px 0 0
    }

    #sec4 .lead .group-txt .note {
        margin-top: 32px
    }

    #sec4 .lead .group-txt .note li {
        line-height: 38px
    }

    #sec4 .btn-shared {
        width: 268px;
        margin: 32px 74px 0 auto
    }
}