#header h1 {
    position: absolute;
    bottom: 7vw;
    left: 4%;
    right: 4%;
    z-index: 1;
    color: #beb7b7;
    font-size: 12px;
    line-height: 24px;
    letter-spacing: .05em
}

#header .logo {
    position: absolute;
    width: 10%;
    top: 6vw;
    left: 6vw;
    z-index: 1
}

#header .key-txt {
    position: absolute;
    bottom: 23vw;
    left: 4%;
    right: 0;
    z-index: 1
}

#header .key-txt h2 {
    font-size: 16.4vw;
    letter-spacing: .05em;
    line-height: 1
}

#header .key-txt h2 span {
    display: block;
    margin-left: 4%
}

#header .key-txt h2 span i {
    font-size: 10.6vw;
    letter-spacing: .05em
}

#header .key-txt h3 {
    font-size: 4vw;
    letter-spacing: .15em;
    line-height: 1.5;
    margin-top: 3vw
}

#header #key .slide-custom {
    height: 160vw
}

@media screen and (min-width: 1000px) {
    #header h1 {
        inset: 189px 30px 0 auto
    }

    #header .logo {
        width: -moz-fit-content;
        width: fit-content;
        inset: 48px 0 auto 102px
    }

    #header .key-txt {
        inset: auto auto 92px 71px
    }

    #header .key-txt h2 {
        font-size: 113px;
        line-height: 120px;
        letter-spacing: 0
    }

    #header .key-txt h2 span {
        margin-left: 33px
    }

    #header .key-txt h2 span i {
        font-size: 70px;
        margin-right: 8px
    }

    #header .key-txt h3 {
        font-size: 30px;
        line-height: 52px;
        margin-top: 19px;
        letter-spacing: 0
    }

    #header .nav-pc {
        display: flex !important;
        justify-content: flex-end;
        padding: 50px 149px 37px 0
    }

    #header .nav-pc li a {
        font-size: 17px;
        letter-spacing: .15em
    }

    #header .nav-pc li a:hover,
    #header .nav-pc li a.active {
        color: #b1aeab
    }

    #header .nav-pc li img {
        height: 25px
    }

    #header .nav-pc li+li {
        margin-left: 27px
    }

    #header .nav-pc li:last-child {
        margin: -5px 0 0 44px
    }

    #header .nav-pc li:last-child a {
        display: inline-block
    }

    #header .nav-pc li:last-child a+a {
        margin-left: 20px
    }

    #header .reservation {
        width: 481px;
        box-sizing: border-box;
        position: absolute;
        bottom: 0;
        right: 0;
        z-index: 1;
        display: flex !important;
        padding-bottom: 22px
    }

    #header .reservation::before {
        content: "";
        position: absolute;
        background: #26170c;
        inset: 9px 0 0 0;
        z-index: -1
    }

    #header .reservation .tel {
        line-height: 26px;
        padding-left: 24px
    }

    #header .reservation .tel dt {
        color: #bdbab7;
        letter-spacing: .1em
    }

    #header .reservation .tel dd {
        margin-top: 15px;
        font-size: 30px;
        letter-spacing: -0.03em;
        border-right: 1px solid #62553e;
        padding-right: 22px
    }

    #header .reservation .tel dd img {
        width: 16px;
        margin: -5px 8px 0 3px
    }

    #header .reservation .bnr {
        margin-top: 31px
    }

    #header .reservation .bnr a {
        display: block;
        position: relative;
        padding-left: 57px;
        letter-spacing: .01em
    }

    #header .reservation .bnr a::before {
        content: "";
        position: absolute;
        background: url("../img/shared/icon_web2.png") no-repeat center;
        width: 19px;
        height: 18px;
        background-size: 100%;
        left: 23px;
        top: 54%;
        transform: translateY(-50%)
    }

    #header .reservation .bnr a:hover {
        color: #7f736a
    }

    #header .reservation .bnr a:hover::before {
        background-image: url("../img/shared/icon_web3.png")
    }

    #header #key {
        margin-left: 139px
    }

    #header #key .slide-custom {
        height: 828px
    }
}

#navigation {
    position: fixed;
    background: #423124;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-sizing: border-box;
    transform: scale(0.5) translate(100%, -100%);
    transition: .6s all;
    transition-delay: .3s;
    transform-origin: top right
}

#navigation .group {
    padding: 35px 8% 100px;
    transition: .3s all;
    opacity: 0
}

#navigation .group .fix-logo {
    width: 8%;
    margin: 0 auto
}

#navigation .group .fix-tel {
    text-align: center;
    margin-top: 35px
}

#navigation .group .fix-tel dt {
    font-size: 13px;
    letter-spacing: .15em
}

#navigation .group .fix-tel dd {
    font-size: 32px;
    letter-spacing: .025em;
    margin-top: 10px
}

#navigation .group .fix-tel dd img {
    width: 17px;
    margin: -5px 5px 0 0
}

#navigation .group .bnr-web {
    margin-top: 5vw
}

#navigation .group .bnr-web a span {
    background-image: url("../img/shared/icon_web1.png")
}

#navigation .group .fix-nav {
    margin-top: 60px
}

#navigation .group .fix-nav li {
    text-align: center
}

#navigation .group .fix-nav li a {
    display: inline-block;
    font-size: 30px;
    letter-spacing: .15em
}

#navigation .group .fix-nav li a:hover,
#navigation .group .fix-nav li a.active {
    color: #b1aeab
}

#navigation .group .fix-nav li+li {
    margin-top: 25px
}

#navigation .group .gr-txt {
    text-align: center;
    margin-top: 60px
}

#navigation .group .gr-txt p {
    font-size: 13px;
    letter-spacing: .15em
}

#navigation .group .gr-txt p+p {
    margin-top: 20px
}

#navigation .group .list-sns {
    text-align: center;
    margin-top: 50px
}

#navigation .group .list-sns a {
    display: inline-block;
    margin: 0 4% 0
}

#navigation .group .list-sns a img {
    width: auto;
    height: 30px
}

@media screen and (min-width: 1000px) {
    #navigation .group {
        padding: 44px 0 0 49px;
        max-width: 1440px;
        margin: 0 auto;
        box-sizing: border-box;
        position: relative
    }

    #navigation .group .fix-logo {
        width: 47px;
        margin: 0
    }

    #navigation .group .fix-logo img {
        width: 100%;
        height: auto
    }

    #navigation .group .fix-tel {
        text-align: left;
        margin: 38px 0 0 10px
    }

    #navigation .group .fix-tel dd {
        font-size: 34px;
        margin-top: 2px;
        line-height: 30px;
        letter-spacing: -0.035em
    }

    #navigation .group .fix-tel dd img {
        margin: -3px 9px 0 0
    }

    #navigation .group .bnr-web {
        margin: 34px 0 0 16px;
        width: 211px
    }

    #navigation .group .bnr-web a {
        font-size: 16px
    }

    #navigation .group .bnr-web a span {
        padding-left: 33px
    }

    #navigation .group .fix-nav {
        margin-top: 0;
        position: absolute;
        top: 219px;
        right: 87px
    }

    #navigation .group .fix-nav li {
        text-align: left
    }

    #navigation .group .fix-nav li a {
        font-size: 36px
    }

    #navigation .group .fix-nav li+li {
        margin-top: 39.5px
    }

    #navigation .group .gr-txt {
        text-align: left;
        margin: 56px 0 0 11px
    }

    #navigation .group .gr-txt p {
        line-height: 26px
    }

    #navigation .group .gr-txt p+p {
        margin-top: 27px
    }

    #navigation .group .list-sns {
        text-align: left;
        margin: 32px 0 0 14px
    }

    #navigation .group .list-sns a {
        margin: 0 19px 0 0
    }

    #navigation .group .fix-photo {
        height: 580px;
        top: 171px;
        left: 430px;
        right: 429px
    }
}

@media screen and (min-width: 1000px)and (max-width: 1300px) {
    #navigation .group .fix-photo {
        right: 330px;
        left: 320px
    }
}

#footer {
    text-align: center;
    padding: 10vw 0
}

@media screen and (min-width: 1000px) {
    #footer {
        text-align: center;
        padding: 61px 0 152px;
        line-height: 30px;
        font-size: 14px
    }
}

#footer #ft_bnr_fixed {
    position: fixed;
    display: flex;
    height: 70px;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: #232120;
    box-sizing: border-box;
    border-top: 1px solid #3f3c3b
}

#footer #ft_bnr_fixed li {
    width: 25%;
    box-sizing: border-box;
    border-right: 1px solid #3f3c3b;
    height: 100%
}

#footer #ft_bnr_fixed li a {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 2px;
    font-size: 13px;
    line-height: 24px;
    letter-spacing: .1em
}

#footer #ft_bnr_fixed li a img {
    height: 20px;
    width: auto;
    margin-bottom: 5px
}

#footer #ft_bnr_fixed li a:hover {
    opacity: .8
}

#footer #ft_bnr_fixed li:last-child {
    border-right: none
}