#sec1 {
    padding: 15vw 4% 0
}

#sec1 .lead {
    position: relative;
    background: url("../img/menu/sec1_bg.jpg") no-repeat center/cover;
    padding: 10vw 5% 20vw
}

#sec1 .lead::before {
    content: "";
    position: absolute;
    inset: 2vw;
    z-index: 1;
    border: 1px solid #9d9880
}

#sec1 .lead h2 span {
    display: block;
    text-align: center;
    line-height: 1;
    letter-spacing: .1em
}

#sec1 .lead h2 span small {
    letter-spacing: .1em
}

#sec1 .lead h2 span:nth-child(1) {
    text-align: center;
    color: #fff;
    line-height: 1.5
}

#sec1 .lead h2 span:nth-child(2) {
    width: -moz-fit-content;
    width: fit-content;
    margin: 3vw auto 0;
    background: #fffaf0;
    padding: 3vw 2vw 0 3vw
}

#sec1 .lead .txt {
    color: #fff;
    margin-top: 5vw
}

#sec1 .group-link {
    position: relative;
    z-index: 1;
    margin: -14vw 5% 0
}

#sec1 .group-link li a {
    display: block;
    position: relative;
    text-align: center;
    background: url("../img/shared/bg2.jpg") repeat center;
    color: #fff;
    padding: 12vw 0 19vw;
    line-height: 1;
    letter-spacing: .1em
}

#sec1 .group-link li a::before {
    content: "";
    position: absolute;
    border: 1px solid rgba(240, 232, 215, .45);
    inset: 2vw
}

#sec1 .group-link li a::after {
    content: "";
    position: absolute;
    bottom: 6vw;
    left: 50%;
    transform: translateX(-50%);
    background: url("../img/shared/icon_arrow_down_w.png") no-repeat center/100%;
    width: 8vw;
    height: 6vw
}

#sec1 .group-link li+li {
    margin-top: 5vw
}

@media screen and (max-width: 767px) {
    #sec1 .fs40 {
        font-size: 6vw
    }

    #sec1 .fs44 {
        font-size: 6.61vw
    }

    #sec1 .fs52 {
        font-size: 8.11vw
    }
}

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

    #sec1 .lead {
        padding: 162px 0 175px
    }

    #sec1 .lead::before {
        inset: 20px
    }

    #sec1 .lead h2 span:nth-child(2) {
        text-align: center;
        width: 477px;
        margin: 10px auto 0;
        padding: 14px 0 2px
    }

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

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

    #sec1 .group-link li {
        width: calc(50% - 30px)
    }

    #sec1 .group-link li a {
        padding: 80px 0 125px
    }

    #sec1 .group-link li a::before {
        inset: 18px;
        transition: .3s
    }

    #sec1 .group-link li a::after {
        bottom: 46px;
        width: 50px;
        height: 34px;
        transition: .3s
    }

    #sec1 .group-link li a:hover {
        background: #eeddbd;
        color: #000
    }

    #sec1 .group-link li a:hover::before {
        border-color: #000
    }

    #sec1 .group-link li a:hover:after {
        background-image: url("../img/shared/icon_arrow_down_b.png")
    }

    #sec1 .group-link li+li {
        margin-top: 0
    }
}

#sec2 {
    padding-top: 10vw
}

#sec2 .sub-txt {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: url("../img/shared/bg2.jpg") repeat center;
    color: #fff;
    width: 30vw;
    height: 30vw;
    margin: 0 auto 5vw;
    line-height: 1.1538461538;
    letter-spacing: .1em
}

#sec2 .name-price {
    text-align: center;
    line-height: 1.45
}

#sec2 .name-price * {
    letter-spacing: .1em
}

#sec2 .name-price span {
    margin-left: 1.5vw
}

#sec2 .set1 .deco {
    position: absolute;
    top: -4vw;
    left: 4%;
    right: 4%;
    z-index: -1
}

#sec2 .set1 h2 span {
    display: block
}

#sec2 .set1 h2 span:nth-child(1) {
    width: 50%;
    margin: 0 auto 6vw
}

#sec2 .set1 h2 span:nth-child(2) {
    text-align: center;
    letter-spacing: .1em
}

#sec2 .set1 h2 span:nth-child(2) i {
    letter-spacing: .1em
}

#sec2 .set1 .txt {
    margin-top: 8vw
}

#sec2 .set1 .txt li+li {
    margin-top: 3vw
}

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

#sec2 .set2 .photo1 {
    position: relative;
    z-index: 1;
    margin-left: 35%
}

#sec2 .set2 .photo2 {
    position: absolute;
    top: 29vw;
    left: 4%;
    width: 45%
}

#sec2 .set2 .photo3 {
    margin: 11vw -5% 0 -6%
}

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

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

#sec2 .set3 .col .balloon {
    background: url("../img/menu/sec2_set3_deco_ttl.png") no-repeat center bottom/100%;
    text-align: center;
    width: 77%;
    padding: 0 0 5vw 3%;
    margin: 0 auto 5vw;
    letter-spacing: .1em
}

#sec2 .set3 .col .balloon small {
    letter-spacing: .1em
}

#sec2 .set3 .col .balloon span {
    display: inline-block;
    transform: rotate(10deg)
}

#sec2 .set3 .col .name-price {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 5vw 2% 4vw
}

#sec2 .set3 .col+.col {
    margin-top: 10vw
}

#sec2 .set4 {
    position: relative;
    padding: 15vw 0
}

#sec2 .set4 .bg {
    position: absolute;
    top: -10vw;
    bottom: -10vw;
    right: 0;
    width: 30%;
    z-index: -1
}

#sec2 .set4 .group-txt {
    position: relative
}

#sec2 .set4 .group-txt .sub-txt {
    position: absolute;
    top: -15vw;
    left: 4%;
    margin: 0
}

#sec2 .set4 .group-txt .name-price {
    padding-top: 19vw;
    line-height: 1.5
}

#sec2 .set4 .group-txt .name-price dd {
    margin-top: 3vw
}

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

@media screen and (min-width: 768px) {
    #sec2 {
        padding-top: 123px
    }

    #sec2 .sub-txt {
        width: 153px;
        height: 153px;
        margin: 0
    }

    #sec2 .name-price {
        text-align: left
    }

    #sec2 .name-price span {
        margin-left: 7px
    }

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

    #sec2 .set1 .deco {
        top: -73px;
        left: 30px;
        right: 0
    }

    #sec2 .set1 h2 {
        display: flex;
        justify-content: center;
        align-items: flex-end;
        margin-left: 50px
    }

    #sec2 .set1 h2 span:nth-child(1) {
        width: -moz-fit-content;
        width: fit-content;
        margin: 0
    }

    #sec2 .set1 h2 span:nth-child(2) {
        text-align: left;
        margin: 0 0 13px 11px
    }

    #sec2 .set1 .txt {
        text-align: center;
        margin-top: 57px
    }

    #sec2 .set1 .txt li+li {
        margin-top: 41px
    }

    #sec2 .set2 {
        margin-top: 0
    }

    #sec2 .set2 .wrap {
        display: flex;
        justify-content: space-between;
        gap: 30px;
        max-width: 1200px
    }

    #sec2 .set2 .photo1 {
        position: absolute;
        top: 426px;
        right: -110px;
        margin-left: 0
    }

    #sec2 .set2 .photo2 {
        top: auto;
        bottom: 0;
        left: calc(50% - 165px);
        width: auto
    }

    #sec2 .set2 .photo3 {
        margin: -95px 0 0 -332px;
        max-width: 959px;
        height: 987px;
        flex: 1
    }

    #sec2 .set2 .photo3 img {
        -o-object-position: right;
        object-position: right
    }

    #sec2 .set2 .group-txt {
        position: relative;
        margin: 106px 41px 0 0
    }

    #sec2 .set2 .group-txt .sub-txt {
        position: absolute;
        top: -24px;
        left: -184px;
        z-index: 1
    }

    #sec2 .set2 .group-txt .txt {
        margin-top: 39px
    }

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

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

    #sec2 .set3 .row {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        max-width: 1160px
    }

    #sec2 .set3 .col {
        width: calc(50% - 20px)
    }

    #sec2 .set3 .col .balloon {
        position: relative;
        left: 35px;
        width: 376px;
        padding: 0 0 29px 22px;
        margin: 0 auto 24px
    }

    #sec2 .set3 .col .balloon span {
        transform: rotate(10deg)
    }

    #sec2 .set3 .col .name-price {
        gap: 42px;
        justify-content: flex-start;
        margin: 25px 30px 0
    }

    #sec2 .set3 .col .name-price dd {
        margin-bottom: 3px
    }

    #sec2 .set3 .col .txt {
        margin: 14px 0 0 33px
    }

    #sec2 .set3 .col+.col {
        margin-top: 166px
    }

    #sec2 .set4 {
        padding: 124px 0 119px
    }

    #sec2 .set4 .wrap {
        max-width: 1200px
    }

    #sec2 .set4 .bg {
        top: -147px;
        bottom: -99px;
        width: auto
    }

    #sec2 .set4 .photo {
        top: 0;
        left: 465px;
        right: calc(-50vw + 50% + 80px);
        height: 546px
    }

    #sec2 .set4 .group-txt {
        position: relative
    }

    #sec2 .set4 .group-txt .sub-txt {
        top: -48px;
        left: 343px
    }

    #sec2 .set4 .group-txt .name-price {
        padding: 167px 0 0 53px
    }

    #sec2 .set4 .group-txt .name-price dd {
        margin-top: 15px
    }

    #sec2 .set4 .group-txt .txt {
        margin: 48px 0 0 54px
    }
}

#sec3 {
    position: relative;
    z-index: 1
}

#sec3 .deco {
    position: absolute;
    top: -15vw;
    left: 0;
    z-index: -1;
    width: 60%
}

#sec3 .inner {
    position: relative;
    z-index: 2;
    border: 1px solid #bfaa83;
    border-radius: 25px;
    margin: 0 3%;
    padding: 15vw 0
}

#sec3 .inner::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 2px solid #bfaa83;
    border-radius: 22.5px
}

#sec3 .set1 h2 {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    background: url("../img/menu/sec3_deco_ttl1.png") no-repeat center bottom/100%;
    padding-bottom: 5vw
}

#sec3 .set1 h2 span {
    display: block;
    text-align: center;
    letter-spacing: .1em
}

#sec3 .set1 h2 span small {
    letter-spacing: .1em
}

#sec3 .set1 h2 span:nth-child(1) {
    background: url("../img/shared/bg2.jpg") repeat center;
    color: #fff;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    padding: 2vw 3vw;
    line-height: 1
}

#sec3 .set1 h2 span:nth-child(2) {
    margin-top: 2vw;
    line-height: 1.25
}

#sec3 .set1 .txt {
    margin-top: 5vw
}

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

#sec3 .set2 .sub-txt {
    background: url("../img/menu/sec3_deco_ttl2.png") no-repeat center bottom/100%;
    width: 85%;
    text-align: center;
    margin: 0 auto;
    padding: 0 0 5vw 2%;
    letter-spacing: 0
}

#sec3 .set2 .sub-txt small {
    letter-spacing: 0
}

#sec3 .set2 .sub-txt span {
    display: inline-block;
    transform: rotate(10deg)
}

#sec3 .set2 .photo {
    margin-left: -10%
}

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

#sec3 .set2 .group-txt h3 {
    text-align: center;
    margin-top: 3vw;
    line-height: 1.5;
    letter-spacing: .1em
}

#sec3 .set2 .group-txt .price {
    text-align: center;
    margin-top: 5vw;
    line-height: 1.6;
    letter-spacing: .1em
}

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

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

#sec3 .set3 .col .sub-txt {
    background: url("../img/menu/sec3_deco_ttl3.png") no-repeat center bottom/100%;
    width: 85%;
    text-align: center;
    margin: 0 auto 5vw;
    padding: 0 0 5vw 2%;
    letter-spacing: .1em
}

#sec3 .set3 .col .sub-txt small {
    letter-spacing: .1em
}

#sec3 .set3 .col .sub-txt span {
    display: inline-block;
    transform: rotate(10deg)
}

#sec3 .set3 .col .name-price {
    display: flex;
    justify-content: space-between;
    margin: 5vw 0;
    line-height: 1.3
}

#sec3 .set3 .col .name-price * {
    letter-spacing: .1em
}

#sec3 .set3 .col .name-price dd span {
    margin-left: 1.5vw
}

#sec3 .set3 .col:nth-child(2) {
    margin-top: 10vw
}

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

    #sec3 .deco {
        top: -233px;
        width: auto
    }

    #sec3 .inner {
        max-width: 1400px;
        border-radius: 50px;
        margin: 0 auto;
        padding: 136px 30px 139px
    }

    #sec3 .inner::before {
        inset: 4px;
        border-width: 3px;
        border-radius: 45px
    }

    #sec3 .set1 h2 {
        width: 487px;
        padding-bottom: 29px
    }

    #sec3 .set1 h2 span:nth-child(1) {
        width: 458px;
        padding: 3px 0 8px
    }

    #sec3 .set1 h2 span:nth-child(2) {
        margin-top: 3px
    }

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

    #sec3 .set2 {
        margin-top: 85px
    }

    #sec3 .set2 .sub-txt {
        width: 376px;
        margin-right: 63px;
        padding: 0 0 27px 16px
    }

    #sec3 .set2 .photo {
        margin-left: 0;
        height: 495px;
        top: 0;
        left: calc(-50vw + 50%);
        right: 479px
    }

    #sec3 .set2 .group-txt {
        width: -moz-fit-content;
        width: fit-content;
        margin: 0 0 0 auto
    }

    #sec3 .set2 .group-txt h3 {
        text-align: left;
        margin: 16px 0 0 18px
    }

    #sec3 .set2 .group-txt .price {
        text-align: left;
        margin: 28px 0 0 20px
    }

    #sec3 .set2 .group-txt .txt {
        margin: 58px 0 0 19px
    }

    #sec3 .set3 {
        margin-top: 50px
    }

    #sec3 .set3 .wrap {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        max-width: 1160px
    }

    #sec3 .set3 .col {
        width: calc(50% - 20px)
    }

    #sec3 .set3 .col .sub-txt {
        width: 376px;
        margin: 0 58px 24px auto;
        padding: 0 0 28px
    }

    #sec3 .set3 .col .name-price {
        justify-content: flex-start;
        margin: 39px 0 0 29px
    }

    #sec3 .set3 .col .name-price dd {
        margin: 5px 0 0 95px
    }

    #sec3 .set3 .col .name-price dd span {
        margin-left: 7px
    }

    #sec3 .set3 .col .txt {
        margin: 20px 0 0 31px
    }

    #sec3 .set3 .col:nth-child(1) .sub-txt {
        padding-left: 14px
    }

    #sec3 .set3 .col:nth-child(2) {
        margin-top: 70px
    }

    #sec3 .set3 .col:nth-child(2) .name-price dd {
        margin: 5px 0 0 35px
    }
}

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

#sec4 .deco {
    position: absolute;
    top: -10vw;
    right: 0;
    z-index: -1;
    width: 50%
}

#sec4 .deco2 {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
    width: 50%
}

#sec4 .deco3 {
    position: absolute;
    bottom: -30vw;
    right: 0;
    z-index: -2;
    width: 100%
}

#sec4 h2 {
    position: absolute;
    top: 21vw;
    right: 3%;
    z-index: 1;
    background: url("../img/shared/bg2.jpg") repeat center;
    color: #fff;
    word-break: keep-all;
    padding: 3vw 0 2vw;
    line-height: 1.25;
    letter-spacing: .1em
}

#sec4 h2 span {
    display: inline-block;
    transform: rotate(10deg)
}

#sec4 .sec4-thumb .slick-track {
    display: flex;
    justify-content: center;
    transform: none !important;
    width: 100% !important
}

#sec4 .sec4-thumb .slick-slide {
    width: 20vw
}

#sec4 .sec4-thumb .slick-slide .item {
    position: relative
}

#sec4 .sec4-thumb .slick-slide .item img.off {
    display: block
}

#sec4 .sec4-thumb .slick-slide .item img.on {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0
}

#sec4 .sec4-thumb .slick-slide+.slick-slide {
    margin-left: 2vw
}

#sec4 .sec4-thumb .slick-current .item img.off {
    opacity: 0
}

#sec4 .sec4-thumb .slick-current .item img.on {
    opacity: 1
}

#sec4 .sec4-main .item .name-price {
    text-align: center;
    margin-top: 7vw;
    line-height: 1.65
}

#sec4 .sec4-main .item .name-price * {
    letter-spacing: .1em
}

#sec4 .sec4-main .item .name-price dd span {
    margin-left: 1.5vw
}

#sec4 .sec4-main .item .txt {
    margin-top: 6vw
}

#sec4 .btn-shared {
    margin-top: 6vw
}

#sec4 .btn-link {
    margin-top: 10vw
}

#sec4 .btn-link a {
    position: relative;
    display: block
}

#sec4 .btn-link a::before {
    content: "";
    position: absolute;
    inset: 2vw;
    z-index: 2;
    border: 1px solid rgba(204, 204, 204, .45)
}

#sec4 .btn-link a .photo {
    height: 50vw
}

#sec4 .btn-link a .photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: right;
    object-position: right
}

#sec4 .btn-link a .txt {
    position: absolute;
    bottom: 4vw;
    right: 15%;
    z-index: 2;
    text-align: right;
    color: #fff;
    line-height: 1.3333333333;
    letter-spacing: .1em
}

#sec4 .btn-link a .arrow {
    position: absolute;
    bottom: 5vw;
    right: 5%;
    z-index: 2;
    width: 6vw
}

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

    #sec4 .deco {
        top: -207px;
        width: auto
    }

    #sec4 .deco2 {
        width: auto
    }

    #sec4 .deco3 {
        width: auto;
        bottom: -403px
    }

    #sec4 .wrap {
        max-width: 1323px;
        padding: 0 30px
    }

    #sec4 .inner {
        position: relative;
        max-width: 1158px
    }

    #sec4 h2 {
        top: -94px;
        right: 0;
        word-break: keep-all;
        padding: 24px 0 18px
    }

    #sec4 .sec4-thumb {
        position: absolute;
        top: 0;
        left: 0
    }

    #sec4 .sec4-thumb .slick-track {
        flex-direction: column;
        justify-content: flex-start
    }

    #sec4 .sec4-thumb .slick-slide {
        cursor: pointer;
        width: 206px;
        height: 140px;
        transition: .3s
    }

    #sec4 .sec4-thumb .slick-slide+.slick-slide {
        margin: 15px 0 0
    }

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

    #sec4 .sec4-main {
        margin: 0 26px 0 222px
    }

    #sec4 .sec4-main .item .photo {
        height: 605px
    }

    #sec4 .sec4-main .item .name-price {
        margin: 40px 0 0
    }

    #sec4 .sec4-main .item .name-price dd span {
        margin-left: 7px
    }

    #sec4 .sec4-main .item .txt {
        text-align: center;
        margin: 16px 0 0
    }

    #sec4 .btn-shared {
        margin: 79px auto 0
    }

    #sec4 .btn-link {
        max-width: 800px;
        margin: 101px auto 0
    }

    #sec4 .btn-link a::before {
        inset: 18px
    }

    #sec4 .btn-link a:after {
        inset: 111px 0 0 170px
    }

    #sec4 .btn-link a .photo {
        height: 330px
    }

    #sec4 .btn-link a .txt {
        bottom: 33px;
        right: 92px
    }

    #sec4 .btn-link a .arrow {
        bottom: 38px;
        right: 34px;
        width: auto
    }

    #sec4 .btn-link a:hover {
        opacity: .8
    }
}

@media screen and (min-width: 768px)and (max-width: 1200px) {
    #sec4 .deco {
        top: -130px
    }
}

#sec5 {
    position: relative;
    z-index: 2;
    padding-bottom: 15vw
}

#sec5 .photo {
    position: relative;
    margin-left: -6%
}

#sec5 .photo::before {
    content: "";
    position: absolute;
    background: url("../img/shared/bg2.jpg") repeat center;
    inset: -2vw 20% 0 0
}

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

#sec5 .group-txt h2 span {
    display: block;
    letter-spacing: .1em
}

#sec5 .group-txt h2 span:nth-child(1) {
    text-align: center;
    line-height: 1.1363636364
}

#sec5 .group-txt h2 span:nth-child(2) {
    background: #fffaf0;
    width: -moz-fit-content;
    width: fit-content;
    margin: 5vw auto 0;
    padding: 0 1vw 0 2vw;
    line-height: 1.4814814815
}

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

#sec5 .group-txt .btn-shared {
    margin-top: 5vw
}

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

    #sec5 .wrap {
        max-width: 1283px;
        padding: 0 30px
    }

    #sec5 .photo {
        top: 26px;
        left: calc(-50vw + 50%);
        right: 548px;
        margin-left: 0;
        height: 650px
    }

    #sec5 .photo::before {
        inset: -26px 133px 0 0
    }

    #sec5 .group-txt {
        width: -moz-fit-content;
        width: fit-content;
        margin: 0 0 0 auto;
        padding-top: 47px
    }

    #sec5 .group-txt h2 span:nth-child(1) {
        text-align: left
    }

    #sec5 .group-txt h2 span:nth-child(2) {
        margin: 38px 0 0 -11px;
        padding: 0 18px 0 10px
    }

    #sec5 .group-txt .txt {
        margin: 42px 0 0 0
    }

    #sec5 .group-txt .btn-shared {
        margin: 48px 0 0
    }
}

@media screen and (min-width: 768px) and (max-width: 1360px){
    #sec5 .wrap{
        max-width: 90%;
        min-width: 1000px;
    }
}