.ttls-shared {
    font-size: 7vw;
    text-align: center;
    margin-bottom: 4vw;
    letter-spacing: 0.1em;
    line-height: 1.1;
}
.ttls-shared small {
    font-size: 3.5vw;
    display: block;
    text-align: right;
    width: 91%;
    letter-spacing: 0.05em;
}
.ttls-shared span {
    font-size: 9vw;
}
@media only screen and (min-width: 768px) {
    .ttls-shared {
        font-size: 48px;
        margin-bottom: 20px;
		line-height: 74px;
    }
    .ttls-shared small {
        font-size: 18px;
    }
    .ttls-shared span {
        font-size: 70px;
    }
}


/* sec1 */
#sec1 {
    position: relative;
    padding: 15vw 0 23vw;
    background: url(../img/shared/bd_bg.jpg) repeat;
    z-index: 1;
}
#sec1 .deco1 {
    position: absolute;
    top: -30vw;
    left: -35vw;
    width: 85vw;
    z-index: 0;
}
#sec1::after {
    content: "";
    position: absolute;
    background: url(../img/course/main_bg.jpg) repeat;
    top: -5vw;
    left: -20vw;
    right: -20vw;
    height: 30vw;
    border-radius: 100%;
    z-index: -1;
}
#sec1::before {
    content: "";
    background: url("../img/dinner/sec1_deco3.png") no-repeat;
    position: absolute;
    bottom: 0;
    left: -15%;
    width: 60%;
    height: 60vw;
    background-size: 100%;
}
#sec1 h2 {
    font-size: 8vw;
    line-height: 1.6;
    width: 25vw;
    margin: 0 auto;
    height: 60vw;
    letter-spacing: 0.15em;
}
#sec1 .txt {
    color: #282828;
}
#sec1 .deco2 {
    width: 38%;
    position: absolute;
    right: 0;
    bottom: -17vw;
}
@media only screen and (min-width: 768px) {
    #sec1 {
        padding: 64px 0 111px;
    }
    #sec1 .deco1 {
        top: -203px;
        left: calc(50% - 50vw - 280px);
        width: 689px;
    }
    #sec1::before {
        width: 487px;
        bottom: 0;
        left: 0;
        height: 591px;
    }
    #sec1::after {
        top: -135px;
        left: 50%;
        aspect-ratio: 2639/1505;
        width: 122.933333%;
        height: 660px;
        transform: translateX(-50%);
        right: unset;
    }
    #sec1 h2 {
        font-size: 45px;
        width: 50px;
        position: absolute;
        right: 90px;
        top: -79px;
        height: 400px;
        letter-spacing: 5px;
    }
    #sec1 .txt {
        height: 402px;
        margin-left: 225px;
        line-height: 41px;
    }
    #sec1 .deco2 {
        width: auto;
        position: absolute;
        right: calc(50% - 50vw);
        bottom: -80px;
    }
}


/* sec2 */
#sec2 {
    position: relative;
    padding: 15vw 0 91vw;
    background-color: #331e09;
    color: #fff;
}
#sec2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    border: 9px solid;
    border-image: url(../img/dinner/frame.png) 24 round;
    z-index: 5;
}
#sec2 h2 {
    text-align: center;
    font-size: 7vw;
    font-weight: normal;
    margin-bottom: 6vw;
}
#sec2 h2 small {
    color: #c0b09f;
    font-size: 4vw;
}
#sec2 h2 span {
    color: #edcea4;
    font-size: 10vw;
}
#sec2 .note {
    text-align: center;
    margin-bottom: 6vw;
}
#sec2 .row {
    flex-direction: column;
    position: relative;
    z-index: 5;
}
#sec2 .row .photo {
    margin-bottom: 9vw;
}
#sec2 .row .col .price {
    margin-bottom: 3vw;
}
#sec2 .row .col .price dt {
    padding: 3%;
    text-align: center;
    font-size: 5vw;
    margin-bottom: 2vw;
    font-weight: normal;
}
#sec2 .row .col .price dt span {
    background: #860202;
    color: #ffe5a1;
    display: inline-block;
    padding: 3% 5%;
}
#sec2 .row .col .price dd {
    flex-direction: column;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 6vw;
    letter-spacing: 0.15em;
    font-weight: normal;
}
#sec2 .row .col .price dd small {
    font-size: 4vw;
}
#sec2 .row .col .txt {
    color: #fff;
}
#sec2 .photo2 {
    margin-right: -10%;
    width: auto;
    margin-left: 10%;
    margin-bottom: -20vw;
}
#sec2 .js {
    margin: 0 -5.6% 18vw;
}
#sec2 .js .scroll1 span {
    display: block;
    width: 210px;
}
#sec2 .deco2 {
    position: absolute;
    left: 0;
    bottom: -91vw;
}
@media only screen and (max-width: 767px) {
	#sec2 .row .col .price dt span{
		display: block;
	}

}
@media only screen and (min-width: 768px) {
    #sec2 {
        padding: 64px 0 20px;
    }
    #sec2 .wrap {
        width: 1350px;
        padding: 0 20px;
    }
    #sec2::before {
        border: 35px solid;
        border-image: url(../img/dinner/frame.png) 37 round;
    }
    #sec2 h2 {
        font-size: 40px;
        margin-bottom: 39px;
        line-height: 59px;
        letter-spacing: 7px;
    }
    #sec2 h2 small {
        font-size: 18px;
        letter-spacing: 0;
    }
    #sec2 h2 span {
        font-size: 70px;
        margin-right: -9px;
        margin-left: -6px;
        letter-spacing: 1px;
    }
    #sec2 .note {
        margin-bottom: 70px;
        letter-spacing: 0;
    }
    #sec2 .row {
        flex-direction: row;
        margin-bottom: 38px;
    }
    #sec2 .row .photo {
        margin-bottom: 20px;
        margin-left: -43px;
    }
    #sec2 .row .col {
        width: 460px;
        margin-top: 65px;
    }
    #sec2 .row .col .price {
        margin-bottom: 8px;
    }
    #sec2 .row .col .price dt {
        font-size: 33px;
        margin-bottom: 5px;
    }
    #sec2 .row .col .price dt span {
        padding: 17px 17px;
        display: block;
    }
    #sec2 .row .col .price dd {
        font-size: 33px;
        line-height: 52px;
        letter-spacing: 1px;
    }
    #sec2 .row .col .price dd small {
        font-size: 23px;
    }
    #sec2 .row .col .txt {
        width: 400px;
        margin: 0 auto 0 40px;
    }
    #sec2 .photo2 {
            margin-bottom: -20px;
			width: auto;
			position: absolute;
			right: calc(50% - 50vw);
			top: 900px;
			margin-right: 0;
    }

    #sec2 .js {
        margin: 0 200px 97px calc(50% - 50vw);
    }
    #sec2 .js .scroll1 span {
        width: 360px;
    }
    #sec2 .row2 {
        flex-direction: row-reverse;
        justify-content: space-between;
        margin-bottom: 180px;
    }
    #sec2 .row2 .photo {
        margin-left: 0;
        margin-right: -49px;
        margin-top: 60px;
    }
    #sec2 .row2 .col {
        margin-left: -37px;
        width: 487px;
    }
    #sec2 .row2 .col .price {
        margin-bottom: 1px;
    }
    #sec2 .row2 .col .txt {
        margin-left: 10px;
        width: 460px;
    }
    #sec2 .deco2 {
        bottom: -190px;
        left: calc(50% - 50vw);
        width: 660px;
    }
}
@media only screen and (min-width: 768px) and (max-width: 1400px) {
    #sec2 .row2 .col {
        margin-left: 30px;
		margin-right: 40px;
    }
    #sec2 .row2 .col .txt {
        margin-left: 10px;
        width: 430px;
        margin: 0 auto;
    }
}

/* sec 3 */
#sec3 {
    position: relative;
    padding: 15vw 0 15vw;
}
#sec3::before {
    content: "";
    background: url("../img/dinner/sec3_bg_top.jpg") repeat-x;
    position: absolute;
    top: 0;
    left: 0;
    width: 103vw;
    height: 65vw;
}
#sec3 .ttls-shared {
    position: relative;
    z-index: 5;
}
#sec3 .note {
    text-align: center;
    margin-bottom: 9vw;
    z-index: 5;
    position: relative;
    color: #282828;
}
#sec3 .para {
    background: #EAE8F5;
    padding-bottom: 10vw;
}
#sec3 .para .img-parallax {
    margin-bottom: 6vw;
    height: 72vw;
}
#sec3 .para .img-parallax img {
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
}
#sec3 .para .row .price {
    font-size: 5vw;
    margin-bottom: 3vw;
    margin: 0 0 5vw 5vw;
}
#sec3 .para .row .price dt {
    width: 75px;
    /* margin: 0 0 0 5vw; */
    height: auto;
    letter-spacing: 3px;
    line-height: 40px;
    white-space: nowrap;
    font-weight: normal;
    writing-mode: horizontal-tb;
}
#sec3 .para .row .price dd {
    text-align: right;
    letter-spacing: 2px;
    font-weight: normal;
    margin-right: 5vw;
}
#sec3 .para .row .price dd small {
    font-size: 3vw;
}
#sec3 .para .row .txt {
    width: 90%;
    margin: 0 auto;
}
@media only screen and (min-width: 768px) {
    #sec3 {
        padding: 118px 0 20px;
    }
    #sec3::before {
           height: 330px;
    width: 100%;
    background-position: center bottom;
    }
    #sec3 .ttls-shared {
        letter-spacing: 6px;
        margin-bottom: 0px;
    }
    #sec3 .ttls-shared small {
        width: 571px;
        margin: 0 auto;
        text-align: right;
        letter-spacing: 2px;
        margin-bottom: -34px;
    }
    #sec3 .ttls-shared span {
        /* margin-left: 83px; */
    }
    #sec3 .note {
        margin-bottom: 50px;
    }
    #sec3 .img-parallax {
        clip: rect(0, auto, auto, 0);
        margin-bottom: 0;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
    }
    #sec3 .img-parallax img {
        width: 100%;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        padding: 0;
        margin: 0;
        object-fit: cover;
        z-index: 0;
        transform: translateZ(0);
    }
    #sec3 .para {
        padding-bottom: 20px;
        height: 777px;
        position: relative;
    }
    #sec3 .para + .para {
        height: 690px;
    }
    #sec3 .para .img-parallax {
        margin-bottom: 20px;
        height: 100%;
    }
    #sec3 .para .row {
        position: absolute;
        right: 0;
        width: 450px;
        padding-top: 139px;
    }
    #sec3 .para + .para .row {
        left: 70px;
        right: auto;
        padding-top: 90px;
    }
    #sec3 .para .row .price {
        font-size: 33px;
        margin: 0 0 40px 0;
    }
    #sec3 .para .row .price dt {
        font-size: 28px;
        width: 62px;
        line-height: 60px;
        letter-spacing: 2px;
        margin-bottom: 42px;
        writing-mode: tb-rl;
        margin: 0 auto 3vw;
        /* margin-bottom: 42px; */
    }
    #sec3 .para .row .price dd {
        font-size: 28px;
        letter-spacing: 2px;
        width: 400px;
        margin: 0;
        text-align: center;
    }
    #sec3 .para .row .price dd small {
        font-size: 18px;
    }
    #sec3 .para .row .txt {
        width: 410px;
        margin-left: -10px;
        letter-spacing: 0;
    }
}


/* sec 4 */
#sec4 {
    position: relative;
    padding: 5vw 0 15vw;
}
#sec4 .note {
    text-align: center;
    margin-bottom: 6vw;
}
#sec4 .row {
    flex-direction: column;
    margin-bottom: 12vw;
}
#sec4 .row .photo {
    margin: 0 -20% -3vw;
}
#sec4 .row .col .price {
    font-size: 20px;
    letter-spacing: 3px;
    margin-bottom: 7vw;
    font-weight: normal;
}
#sec4 .row .col .price dt {
    font-size: 20px;
}
#sec4 .row .col .price dd small {
    font-size: 15px;
}

#sec4 .deco1 {
    position: absolute;
    left: 0;
    top: -25vw;
    z-index: 5;
    width: 41%;
}
#sec4 .deco2 {
    position: absolute;
    right: 0;
    top: 127vw;
    z-index: 5;
    width: 41%;
}
#sec4 .js {
    margin: 0 -5.6% 22vw;
    padding: 6% 6% 12%;
}
#sec4 .js .box {
    width: 100vw;
    padding: 0 5%;
    box-sizing: border-box;
}
#sec4 .js .box .photo {
    margin-bottom: 6vw;
}
#sec4 .js .box .info {
    width: 100%;
}
#sec4 .js .box .info dl {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #A18C75;
    line-height: 25px;
    padding: 5px 0;
    font-weight: normal;
}
#sec4 .js .box .info dl dd small{
		margin-left: 5px;
	}
#sec4 .js .slick-dots {
    position: relative;
    margin-top: 11vw;
}
#sec4 .deco3 {
    position: absolute;
    left: 0;
    width: 50%;
    bottom: 19vw;
}
@media only screen and (min-width: 768px) {
    #sec4 {
        padding: 116px 0 121px;
    }
    #sec4 .ttls-shared {
        line-height: 31px;
    }
    #sec4 .ttls-shared small {
        width: 780px;
        letter-spacing: 3px;
    }
    #sec4 .note {
        margin-bottom: -50px;
    }
    #sec4 .row {
        margin-bottom: 4px;
        flex-direction: row;
    }
    #sec4 .row .photo {
        margin: 0;
        width: 1060px;
        margin-left: -210px;
    }
    #sec4 .row .col {
        width: 510px;
        margin-left: -130px;
        margin-top: 120px;
        letter-spacing: 0;
    }
    #sec4 .row .col .price {
        font-size: 28px;
        margin-bottom: 193px;
        line-height: 44px;
    }
    #sec4 .row .col .price dt {
        font-size: 28px;
    }
    #sec4 .row .col .price dd small {
        font-size: 18px;
    }
    #sec4 .deco1 {
        width: auto;
        left: calc(50% - 50vw);
        top: -183px;
    }
    #sec4 .deco2 {
        top: 254px;
        right: calc(50% - 50vw);
    }
    #sec4 .js {
        margin: 0 calc(50% - 50vw);
        padding: 17px 0px 126px;
    }
    #sec4 .js .box {
        width: 480px;
        padding: 0;
        margin: 0 20px;
    }
    #sec4 .slick-next {
        width: 54px;
        height: 54px;
        right: calc(50% + -189px);
    }
    #sec4 .slick-prev {
        left: calc(50% + -189px);
        width: 54px;
        height: 54px;
    }
    #sec4 .js .box .photo {
        margin-bottom: 6px;
    }
    #sec4 .js .box .info dl {
        line-height: 35px;
        padding: 9px 0;
    }
    #sec4 .js .box .info dl:last-child {
        border-width: 0px;
    }
    #sec4 .js .box .info dl:first-child {
        border-width: 1px
    }
    #sec4 .js .box .info dl dt {
        font-size: 20px;
    }
    #sec4 .js .box .info dl dd {
        font-size: 20px;
    }
	
    #sec4 .js .slick-dots {
        margin-top: 30px;
    }
    #sec4 .btn-cus {
        margin: 0 auto;
    }
    #sec4 .deco3 {
        width: auto;
        left: calc(50% - 50vw);
        bottom: -35px;
    }
}


/* sec 5 */
#sec5 {
    position: relative;
    padding: 15vw 0 15vw;
}
#sec5 .row {
    flex-direction: column;
    margin-bottom: 4vw;
}
#sec5 .row .photo {
    width: 90%;
    margin: 0 auto 5vw;
}
#sec5 .row .col h2 {
    color: #edcea4;
    font-size: 9vw;
    text-align: left;
    margin-bottom: 4vw;
    letter-spacing: 0.1em;
    line-height: 1.5;
    font-weight: normal;
}
#sec5 .row .col h2 small {
    font-size: 3.5vw;
}
#sec5 .row .col .price {
    font-size: 20px;
    display: flex;
    justify-content: space-between;
    margin-bottom: 5vw;
    letter-spacing: 0.1em;
}
#sec5 .row .col .price dd small {
    font-size: 15px;
}
#sec5 .row .col .txt {
    margin-bottom: 7vw;
}
#sec5 .row .col .note {
    margin-bottom: 8vw;
}
#sec5 {
    position: relative;
    padding: 15vw 0 15vw;
    background-color: #331e09;
    color: #fff;
}
#sec5::before {
    content: "";
    background: url("../img/dinner/sec5_bg.png") no-repeat;
    position: absolute;
    top: 78vw;
    left: 4%;
    width: 103vw;
    height: 115vw;
    background-size: 100%;
}
@media only screen and (min-width: 768px) {
    #sec5 {
        padding: 20px 0 20px;
    }
    #sec5 .row {
        margin-bottom: 20px;
        flex-direction: row;
        justify-content: space-between;
    }
    #sec5 .row .photo {
        margin: 0;
        width: auto;
        margin-left: -66px;
        width: 57%;
    }
    #sec5 .row .col {
        width: 39%;
        margin-top: -35px;
    }
    #sec5 .row .col h2 {
        font-size: 45px;
        margin-bottom: 33px;
        letter-spacing: 0px;
        line-height: 59px;
    }
    #sec5 .row .col h2 small {
        font-size: 18px;
        letter-spacing: 1px;
    }
    #sec5 .row .col h2 span {
        font-size: 55px;
    }
    #sec5 .row .col .price {
        font-size: 28px;
        margin-bottom: 22px;
    }
    #sec5 .row .col .price dd small {
        font-size: 15px;
    }
    #sec5 .row .col .txt {
        margin-bottom: 14px;
        letter-spacing: 0px;
        color: #fff;
    }
    #sec5 .row .col .note {
        margin-bottom: 46px;
    }
    #sec5 .row .col .btn-cus {
        width: 380px;
    }
    #sec5 .img {
        position: absolute;
        right: -64px;
        top: 610px;
    }
    #sec5 {
        padding: 82px 0 244px;
		min-height: 840px;
    }
    #sec5 .wrap {
        width: 1250px;
        padding: 0 20px;
    }
    #sec5::before {
        top: 556px;
        left: calc(50% - 366px);
        width: 843px;
        height: 600px;
    }
}

/* sec 6 */
#sec6 {
    position: relative;
}
#sec6 .box {
    padding: 12vw 5%;
    z-index: 5;
    position: relative;
    color: #fff;
}
#sec6 h2 {
    font-size: 9vw;
    letter-spacing: 0.1em;
    line-height: 1.4;
    margin-bottom: 5vw;
    text-align: center;
}
#sec6 h2 small {
    font-size: 6vw;
}
#sec6 .txt {
    margin-bottom: 7vw;
    color: #fff;
}
#sec6 .bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}
#sec6 .bg::before {
    content: "";
    position: absolute;
    top: 0;
    width: 100%;
    left: 0;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
}
@media only screen and (min-width: 768px) {
    #sec6 {
        min-height: 760px;
    }
    #sec6 .box {
        padding: 200px 59px 97px;
        width: 474px;
    }
    #sec6 h2 {
        font-size: 45px;
        margin-bottom: 60px;
        text-align: left;
        letter-spacing: 2px;
        line-height: 67px;
    }
    #sec6 h2 small {
        font-size: 34px;
    }
    #sec6 .txt {
        margin-bottom: 60px;
        width: 361px;
        letter-spacing: 0;
    }
    #sec6 .btn-cus {
        width: 382px;
    }
    #sec6 .bg::before {
        display: none;
    }
}