.fs16 {
    font-size: 4vw
}

.fs18 {
    font-size: 4.27vw
}

.fs20 {
    font-size: 4.53vw
}

.fs22 {
    font-size: 4.8vw
}

.fs24 {
    font-size: 5.07vw
}

.fs25 {
    font-size: 5.2vw
}

.fs26 {
    font-size: 5.33vw
}

.fs28 {
    font-size: 5.6vw
}

.fs30 {
    font-size: 5.87vw
}

.fs32 {
    font-size: 6.13vw
}

.fs36 {
    font-size: 6.67vw
}

.fs40 {
    font-size: 6.93vw
}

.fs50 {
    font-size: 8.53vw
}

.fs42 {
    font-size: 7.47vw
}

.fs160 {
    font-size: 16vw
}

@media screen and (min-width: 768px) {
    .fs16 {
        font-size: 16px
    }

    .fs18 {
        font-size: 18px
    }

    .fs20 {
        font-size: 20px
    }

    .fs22 {
        font-size: 22px
    }

    .fs24 {
        font-size: 24px
    }

    .fs25 {
        font-size: 25px
    }

    .fs26 {
        font-size: 26px
    }

    .fs28 {
        font-size: 28px
    }

    .fs30 {
        font-size: 30px
    }

    .fs32 {
        font-size: 32px
    }

    .fs36 {
        font-size: 36px
    }

    .fs40 {
        font-size: 40px
    }

    .fs50 {
        font-size: 50px
    }

    .fs42 {
        font-size: 42px
    }

    .fs160 {
        font-size: 160px
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(360deg)
    }
}

.box-shared {
    border-top: 1px solid rgba(0, 0, 0, .6);
    border-bottom: 1px solid rgba(0, 0, 0, .6);
    padding: 10vw 0
}

.box-shared .sub-txt {
    font-weight: 500;
    letter-spacing: .15em
}

.box-shared .list {
    margin-top: 5vw
}

.box-shared .list ul li {
    display: flex
}

.box-shared .list ul li i {
    display: block;
    line-height: 20px
}

@media screen and (min-width: 768px) {
    .box-shared {
        padding: 32px 0 30px
    }

    .box-shared .list {
        display: flex;
        justify-content: space-between;
        margin-top: 19px
    }

    .box-shared .list ul {
        width: 50%;
        padding-left: 66px
    }

    .box-shared .list ul li i {
        margin-top: 4px;
        line-height: 28px
    }
}

.btn-shared a {
    position: relative;
    display: block;
    text-align: center;
    border: 1px solid #6e6869;
    font-size: 14px;
    font-weight: 500;
    line-height: 48px;
    letter-spacing: .15em
}

.btn-shared a::before {
    content: "";
    position: absolute;
    width: 22.5px;
    height: 1px;
    top: 50%;
    right: 0;
    transform: translateY(-50%)
}

.btn-shared.type-1 a {
    background: #000;
    color: #fff
}

.btn-shared.type-1 a::before {
    background: #fff
}

.btn-shared.type-2 a {
    background: #fff;
    color: #000
}

.btn-shared.type-2 a::before {
    background: #000
}

@media screen and (min-width: 768px) {
    .btn-shared {
        width: 350px
    }

    .btn-shared a {
        font-size: 16px;
        line-height: 58px
    }

    .btn-shared a::before {
        width: 28px;
        transition: .3s
    }

    .btn-shared.type-1 a:hover {
        background: #fff;
        color: #000
    }

    .btn-shared.type-1 a:hover::before {
        background: #000
    }

    .btn-shared.type-2 a:hover {
        background: #000;
        color: #fff
    }

    .btn-shared.type-2 a:hover::before {
        background: #fff
    }
}

#header {
    position: relative;
    color: #fff
}

#header h1 {
    position: absolute;
    top: 4vw;
    left: 6.67%;
    right: 6.67%;
    z-index: 1;
    opacity: .4;
    text-align: center;
    font-size: 11px;
    line-height: 18px;
    letter-spacing: .15em
}

#header .logo {
    position: absolute;
    top: 25vw;
    left: 50%;
    z-index: 1;
    width: 60.27%;
    transform: translateX(-50%)
}

#header #key .item {
    height: 173vw
}

#header #key .item img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

#header .btn-rorate {
    position: absolute;
    bottom: 6vw;
    left: 4%;
    width: 132.5px;
    height: 132.5px;
    display: flex;
    justify-content: center;
    align-items: center
}

#header .btn-rorate a {
    display: block
}

#header .btn-rorate .txt-en {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    animation: spin 10s infinite linear
}

#header .btn-rorate .txt-jp {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background: #fff;
    color: #000;
    border-radius: 50%;
    width: 104px;
    height: 104px;
    font-size: 9px;
    font-weight: 500;
    line-height: 17.5px;
    letter-spacing: .15em
}

#header .btn-rorate .txt-jp::before {
    content: "";
    position: absolute;
    background: url("../img/shared/icon_arrow_b.png") no-repeat;
    background-size: 100%;
    width: 24px;
    height: 4.5px;
    left: 50%;
    bottom: 25px;
    transform: translateX(-50%)
}

@media screen and (min-width: 768px) {
    #header h1 {
        top: 22px;
        left: 53px;
        right: auto;
        text-align: left;
        font-size: 12px
    }

    #header .logo {
        top: 71px;
        left: 49px;
        width: 282px;
        transform: unset
    }

    #header #key .item {
        height: 900px
    }

    #header .pc {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 1
    }

    #header .btn-language {
        width: 170px;
        margin-left: auto
    }

    #header .btn-language a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 9px;
        background: #8a6600;
        border-left: 1px solid #484848;
        border-bottom: 1px solid #484848;
        line-height: 49px;
        font-size: 18px;
        letter-spacing: .05em;
        transition: .3s
    }

    #header .btn-language a::before {
        content: "";
        display: block;
        background: url("../img/shared/icon_language.png") no-repeat;
        background-size: 100%;
        width: 17px;
        height: 17px;
        margin-top: -2px
    }

    #header .btn-language a:hover {
        background: #000
    }

    #header .contact {
        display: flex;
        align-items: flex-start;
        margin: 67px 50px 0 0
    }

    #header .btn-tel {
        margin: 1px 31px 0 0
    }

    #header .btn-tel dl {
        line-height: 1
    }

    #header .btn-tel dl dt {
        font-size: 12px;
        font-weight: 500;
        letter-spacing: .2em
    }

    #header .btn-tel dl dd {
        margin-top: 4px;
        font-size: 32px;
        letter-spacing: .01em
    }

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

    #header .btn-web {
        width: 240px
    }

    #header .btn-web a {
        position: relative;
        display: block;
        border: 1px solid #6e6869;
        background: #000;
        text-align: center;
        font-size: 14px;
        font-weight: 500;
        line-height: 48px;
        letter-spacing: .15em;
        transition: .3s
    }

    #header .btn-web a::before {
        content: "";
        position: absolute;
        background: #fff;
        width: 20px;
        height: 1px;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        transition: .3s
    }

    #header .btn-web a:hover {
        background: #fff;
        color: #000
    }

    #header .btn-web a:hover::before {
        background: #000
    }

    #header .nav-list-1 {
        width: 193px;
        margin: 85px 0 0 auto
    }

    #header .nav-list-1 li a {
        display: block
    }

    #header .nav-list-1 li:not(:last-child) a {
        border-bottom: 1px solid rgba(0, 0, 0, 0);
        font-weight: 500;
        line-height: 33px;
        letter-spacing: .1em
    }

    #header .nav-list-1 li:not(:last-child) a:hover,
    #header .nav-list-1 li:not(:last-child) a.active {
        border-color: #a5a09c
    }

    #header .nav-list-1 li+li {
        margin-top: 12px
    }

    #header .nav-list-1 li:last-child {
        width: 14px;
        margin-top: 18px
    }

    #header .nav-list-1 li:last-child a img {
        display: block
    }

    #header .nav-list-2 {
        display: flex;
        align-items: center;
        width: 193px;
        margin: 70px 0 0 auto
    }

    #header .nav-list-2 li a {
        display: block
    }

    #header .nav-list-2 li:nth-child(1) {
        border-right: 1px solid #fff;
        padding-right: 20px;
        margin-right: 22px;
        font-weight: 500;
        line-height: 18px;
        letter-spacing: .1em
    }

    #header .nav-list-2 li:nth-child(1) a:hover {
        opacity: .8
    }

    #header .nav-list-2 li:nth-child(2) {
        width: 30px
    }

    #header .nav-list-2 li:nth-child(2) img {
        display: block
    }

    #header .btn-rorate {
        bottom: 33px;
        left: 50px;
        width: 200px;
        height: 200px
    }

    #header .btn-rorate .txt-jp {
        width: 160px;
        height: 160px;
        font-size: 14px;
        line-height: 27px;
        transition: .3s
    }

    #header .btn-rorate .txt-jp::before {
        width: 29px;
        height: 5px;
        bottom: 36px;
        transition: .3s
    }

    #header .btn-rorate:hover .txt-jp {
        background: #3a3839;
        color: #fff
    }

    #header .btn-rorate:hover .txt-jp::before {
        background-image: url("../img/shared/icon_arrow_w.png")
    }
}

#hamburger {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1000;
    border: 1px solid #a98f47;
    background: #8a6600;
    width: 95px;
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 9px;
    opacity: 0;
    pointer-events: none;
    transition: .3s
}

#hamburger:after {
    content: "MENU";
    text-align: center;
    color: #fff;
    margin-left: 3px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .15em;
    transition: .3s
}

#hamburger .line {
    position: relative;
    width: 22.5px;
    height: 10px;
    margin: 0 auto
}

#hamburger .line span {
    position: absolute;
    left: 0;
    display: block;
    background: #fff;
    width: 100%;
    height: 1px;
    transition: .3s
}

#hamburger .line span:nth-child(1) {
    top: 0
}

#hamburger .line span:nth-child(2) {
    top: 50%;
    transform: translateY(-50%)
}

#hamburger .line span:nth-child(3) {
    bottom: 0
}

#hamburger.is-active {
    background: #fff
}

#hamburger.is-active:after {
    content: "CLOSE";
    color: #000
}

#hamburger.is-active .line span {
    background: #000
}

#hamburger.is-active .line span:nth-child(1) {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg)
}

#hamburger.is-active .line span:nth-child(2) {
    opacity: 0
}

#hamburger.is-active .line span:nth-child(3) {
    top: 50%;
    left: 50%;
    bottom: auto;
    transform: translate(-50%, -50%) rotate(-45deg)
}

#menu-toggle {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    transition: .3s
}

#menu-toggle .inner {
    position: relative;
    padding: 100px 0
}

#menu-toggle .inner::before {
    content: "";
    position: absolute;
    background: #a98f47;
    top: 0;
    bottom: 0;
    left: 0;
    width: 6.67%
}

#menu-toggle .nav-list-1 {
    margin-left: 18%
}

#menu-toggle .nav-list-1 li a {
    display: block
}

#menu-toggle .nav-list-1 li:not(:last-child) a {
    border-bottom: 1px solid rgba(0, 0, 0, 0);
    padding-bottom: 7px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .1em
}

#menu-toggle .nav-list-1 li:not(:last-child) a:hover,
#menu-toggle .nav-list-1 li:not(:last-child) a.active {
    border-color: rgba(0, 0, 0, .6)
}

#menu-toggle .nav-list-1 li+li {
    margin-top: 22px
}

#menu-toggle .nav-list-1 li:last-child {
    width: 16.5px;
    margin-top: 25px
}

#menu-toggle .nav-list-2 {
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid rgba(0, 0, 0, .6);
    border-bottom: 1px solid rgba(0, 0, 0, .6);
    width: 64%;
    margin: 35px auto 0;
    padding: 16px 0
}

#menu-toggle .nav-list-2 li a {
    display: block
}

#menu-toggle .nav-list-2 li:nth-child(1) {
    border-right: 1px solid #000;
    margin-right: 25px;
    padding-right: 25px
}

#menu-toggle .nav-list-2 li:nth-child(1) a {
    font-size: 20px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .1em
}

#menu-toggle .nav-list-2 li:nth-child(2) {
    width: 24px
}

#menu-toggle .nav-list-2 li:nth-child(2) img {
    display: block
}

#menu-toggle .btn-tel {
    margin-top: 50px
}

#menu-toggle .btn-tel dl {
    text-align: center;
    line-height: 1
}

#menu-toggle .btn-tel dl dt {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em
}

#menu-toggle .btn-tel dl dd {
    margin-top: 4px;
    font-size: 32px;
    letter-spacing: .01em
}

#menu-toggle .btn-tel dl dd img {
    width: 15px;
    margin: -5px 5px 0 0
}

#menu-toggle .btn-shared {
    width: 64%;
    margin: 17px auto 0
}

@media screen and (max-width: 767px) {
    #menu-toggle {
        overflow-y: auto
    }
}

@media screen and (min-width: 768px) {
    #menu-toggle {
        background: #a98f47;
        color: #fff;
        height: 100px
    }

    #menu-toggle .inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 10px;
        padding: 0 0 0 50px;
        height: 100%
    }

    #menu-toggle .inner::before {
        display: none
    }

    #menu-toggle .nav-list-1 {
        display: flex;
        margin-left: 0
    }

    #menu-toggle .nav-list-1 li:not(:last-child) a {
        padding-bottom: 6px;
        font-size: 14px
    }

    #menu-toggle .nav-list-1 li:not(:last-child) a:hover,
    #menu-toggle .nav-list-1 li:not(:last-child) a.active {
        border-color: #fff
    }

    #menu-toggle .nav-list-1 li+li {
        margin: 0 0 0 25.5px
    }

    #menu-toggle .nav-list-1 li:last-child {
        width: 14px;
        margin: -4px 0 0 29px
    }

    #menu-toggle .nav-list-2 {
        justify-content: flex-start;
        border: none;
        width: auto;
        margin: 0;
        padding: 0
    }

    #menu-toggle .nav-list-2 li:nth-child(1) {
        border-color: #fff;
        margin-right: 22px;
        padding-right: 25px
    }

    #menu-toggle .nav-list-2 li:nth-child(1) a {
        font-size: 14px;
        line-height: 18px
    }

    #menu-toggle .nav-list-2 li:nth-child(1) a:hover {
        opacity: .8
    }

    #menu-toggle .nav-list-2 li:nth-child(2) {
        width: 30px
    }

    #menu-toggle .btn-tel {
        position: absolute;
        top: 50%;
        right: 50px;
        transform: translateY(-50%);
        margin-top: 0
    }

    #menu-toggle .btn-tel dl {
        text-align: left
    }

    #menu-toggle .group-link {
        position: fixed;
        top: 50%;
        right: 0;
        z-index: 999;
        transform: translateY(-50%)
    }

    #menu-toggle .btn-shared {
        width: 48px;
        height: 240px;
        margin: 0
    }

    #menu-toggle .btn-shared a {
        font-size: 14px;
        line-height: 48px
    }

    #menu-toggle .btn-shared a::before {
        width: 1px;
        height: 20px;
        inset: auto auto 0 50%;
        transform: translateX(-50%)
    }

    #menu-toggle .btn-shared a span {
        display: block;
        padding-left: 4px
    }

    #menu-toggle .btn-language {
        height: 170px;
        width: 48px;
        margin-top: 46px
    }

    #menu-toggle .btn-language a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 11px;
        border: 1px solid #6e6869;
        background: #3a3839;
        color: #fff;
        line-height: 48px
    }

    #menu-toggle .btn-language a::before {
        content: "";
        background: url("../img/shared/icon_language.png") no-repeat center/100%;
        width: 17px;
        height: 17px
    }

    #menu-toggle .btn-language a span {
        display: block;
        font-size: 18px;
        letter-spacing: .05em
    }

    #menu-toggle .btn-language a:hover {
        background: #000
    }
}

#footer {
    background: #8a6600;
    color: #fff;
    padding: 22vw 0 30vw
}

#footer .row-1 .btn-tel dl {
    text-align: center;
    line-height: 1
}

#footer .row-1 .btn-tel dl dt {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em
}

#footer .row-1 .btn-tel dl dd {
    margin-top: 4px;
    font-size: 32px;
    letter-spacing: .01em
}

#footer .row-1 .btn-tel dl dd img {
    width: 15px;
    margin: -5px 5px 0 0
}

#footer .row-1 .btn-shared {
    width: 74%;
    margin: 8vw auto 0
}

#footer .row-1 .txt {
    text-align: center;
    margin-top: 7.5vw;
    line-height: 20px
}

#footer .row-1 .info {
    margin-top: 14vw;
    line-height: 20px
}

#footer .row-1 .info dl {
    display: flex
}

#footer .row-1 .info dl dt {
    max-width: 91px;
    width: 100%
}

#footer .row-1 .info dl dd {
    flex: 1
}

#footer .row-1 .info dl+dl {
    margin-top: 5vw
}

#footer .row-2 .btn-copy {
    width: -moz-fit-content;
    width: fit-content;
    margin: 14vw auto 4.5vw
}

#footer .row-2 .btn-copy a {
    position: relative;
    display: block;
    padding-right: 12px
}

#footer .row-2 .btn-copy a::before {
    content: "";
    position: absolute;
    top: 7px;
    right: 0;
    background: url("../img/shared/icon_copy.png") no-repeat center/100%;
    width: 7.5px;
    height: 11px
}

#footer .row-2 .btn-copy a span {
    border-bottom: 1px solid #fff;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .15em
}

#footer .row-3 {
    border-bottom: 1px solid rgba(255, 255, 255, .6);
    padding-bottom: 6vw
}

#footer .row-3 .logo {
    width: 53%;
    margin: 13vw auto 11vw
}

#footer .row-3 .right {
    text-align: center;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .15em
}

#footer .row-3 .btn-cookie {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto 0
}

#footer .row-3 .btn-cookie a {
    position: relative;
    display: block;
    padding-right: 10px
}

#footer .row-3 .btn-cookie a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    background: url("../img/shared/icon_cookie.png") no-repeat center/100%;
    width: 5.5px;
    height: 7px
}

#footer .row-3 address {
    margin: 3vw -4% 0
}

#footer .pagetop {
    width: -moz-fit-content;
    width: fit-content;
    margin: 6vw auto 0
}

#footer .pagetop a {
    position: relative;
    display: block;
    padding-top: 26px;
    font-size: 13px;
    line-height: 1;
    letter-spacing: .05em
}

#footer .pagetop a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: url("../img/shared/icon_pagetop.png") no-repeat center/100%;
    width: 3.5px;
    height: 21.5px
}

@media screen and (max-width: 767px) {
    #footer .btn-map {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8.5px;
        background: #6e6869;
        color: #fff;
        margin: 5.5vw auto 8.5vw;
        width: 62%;
        font-size: 15px;
        line-height: 50px;
        letter-spacing: .03em
    }

    #footer .btn-map::before {
        content: "";
        background: url("../img/shared/icon_map_w.png") no-repeat center/100%;
        width: 8.5px;
        height: 12.5px
    }
}

@media screen and (min-width: 768px) {
    #footer {
        padding: 139px 0 34px
    }

    #footer .ft-pc {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        z-index: 2;
        width: 440px;
        padding: 138px 0 0;
        background: url("../img/shared/ft_bg.jpg") no-repeat center/cover
    }

    #footer .ft-pc .inner {
        max-width: 250px;
        margin: 0 auto
    }

    #footer .ft-pc .nav-list-1 li a {
        display: block
    }

    #footer .ft-pc .nav-list-1 li:not(:last-child) a {
        border-bottom: 1px solid rgba(0, 0, 0, 0);
        font-weight: 500;
        line-height: 33px;
        letter-spacing: .1em
    }

    #footer .ft-pc .nav-list-1 li:not(:last-child) a:hover,
    #footer .ft-pc .nav-list-1 li:not(:last-child) a.active {
        border-color: #a5a09c
    }

    #footer .ft-pc .nav-list-1 li+li {
        margin-top: 12px
    }

    #footer .ft-pc .nav-list-1 li:last-child {
        width: 14px;
        margin-top: 18px
    }

    #footer .ft-pc .nav-list-1 li:last-child a img {
        display: block
    }

    #footer .ft-pc .nav-list-2 {
        display: flex;
        align-items: center;
        margin-top: 50px
    }

    #footer .ft-pc .nav-list-2 li a {
        display: block
    }

    #footer .ft-pc .nav-list-2 li:nth-child(1) {
        border-right: 1px solid #fff;
        padding-right: 20px;
        margin-right: 22px;
        font-weight: 500;
        line-height: 18px;
        letter-spacing: .1em
    }

    #footer .ft-pc .nav-list-2 li:nth-child(1) a:hover {
        opacity: .8
    }

    #footer .ft-pc .nav-list-2 li:nth-child(2) {
        width: 30px
    }

    #footer .ft-pc .nav-list-2 li:nth-child(2) img {
        display: block
    }

    #footer .ft-pc .btn-language {
        width: 200px;
        margin-top: 57px
    }

    #footer .ft-pc .btn-language a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 9px;
        border: 1px solid #a98f47;
        background: #8a6600;
        color: #fff;
        font-size: 18px;
        line-height: 48px
    }

    #footer .ft-pc .btn-language a::before {
        content: "";
        background: url("../img/shared/icon_language.png") no-repeat center/100%;
        width: 17px;
        height: 17px
    }

    #footer .ft-pc .btn-language a:hover {
        border-color: #6e6869;
        background: #000;
        color: #fff
    }

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

    #footer .row-1 .contact {
        display: flex;
        align-items: center;
        gap: 30px;
        width: -moz-fit-content;
        width: fit-content
    }

    #footer .row-1 .btn-tel dl {
        text-align: left
    }

    #footer .row-1 .btn-shared {
        width: 240px;
        margin: 0
    }

    #footer .row-1 .btn-shared a {
        font-size: 14px;
        line-height: 48px
    }

    #footer .row-1 .btn-shared a:before {
        width: 20px
    }

    #footer .row-1 .txt {
        text-align: left;
        margin-top: 24px;
        line-height: 25px
    }

    #footer .row-1 .info {
        margin-top: 84px;
        line-height: 25px
    }

    #footer .row-1 .info .btn-map {
        width: -moz-fit-content;
        width: fit-content;
        border-bottom: 1px solid rgba(0, 0, 0, 0);
        margin: 5px 0 25px -10px;
        letter-spacing: .03em
    }

    #footer .row-1 .info .btn-map img {
        width: 11px;
        margin: -2px 3px 0 7px
    }

    #footer .row-1 .info .btn-map:hover {
        border-color: #fff
    }

    #footer .row-1 .info dl dt {
        max-width: 98px
    }

    #footer .row-1 .info dl+dl {
        margin-top: 25px
    }

    #footer .row-2 {
        display: flex;
        align-items: center;
        gap: 25px;
        margin-top: 52px
    }

    #footer .row-2 .btn-copy {
        order: 2;
        margin: 0
    }

    #footer .row-2 .btn-copy a {
        padding-right: 14px
    }

    #footer .row-2 .btn-copy a::before {
        top: 10px;
        width: 9px;
        height: 14px
    }

    #footer .row-2 .btn-copy a span {
        font-size: 12px
    }

    #footer .row-2 .btn-copy a:hover span {
        border-color: rgba(0, 0, 0, 0)
    }

    #footer .row-2 #socialbutons {
        order: 1
    }

    #footer .row-3 {
        position: relative;
        z-index: 4;
        display: flex;
        justify-content: space-between;
        margin-top: 78px;
        padding-bottom: 39px
    }

    #footer .row-3 .logo {
        width: 245px;
        margin: 0
    }

    #footer .row-3 .right {
        text-align: left;
        font-size: 12px
    }

    #footer .row-3 .btn-cookie {
        margin: 33px 0 13px
    }

    #footer .row-3 .btn-cookie a::before {
        width: 8px;
        height: 10px
    }

    #footer .row-3 .btn-cookie a:hover {
        text-decoration: underline
    }

    #footer .row-3 address {
        margin: 0
    }

    #footer .pagetop {
        margin-top: 33px
    }

    #footer .pagetop a {
        padding-top: 39px;
        font-size: 16px
    }

    #footer .pagetop a::before {
        width: 5px;
        height: 26px
    }

    #footer .pagetop a:hover {
        opacity: .8
    }
}

#ft-bnr-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    border-top: 1px solid #ddd2b5
}

#ft-bnr-fixed ul {
    display: flex;
    justify-content: space-between
}

#ft-bnr-fixed ul li {
    width: 25%
}

#ft-bnr-fixed ul li a {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 8px;
    text-align: center;
    background: #a98f47;
    color: #fff;
    height: 60px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .15em
}

#ft-bnr-fixed ul li a img {
    width: auto;
    height: 13px
}

#ft-bnr-fixed ul li+li {
    border-left: 1px solid #ddd2b5
}

#shopinfo .wrap {
    padding: 0 3.2%
}

#shopinfo h2 {
    margin: 4.5vw auto 14.5vw;
    font-size: 5.2vw;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .2em
}

#shopinfo .col-l {
    background: #a98f47;
    color: #fff;
    padding: 15vw 0 14vw
}

#shopinfo .logo {
    width: 59%;
    margin: 0 auto
}

#shopinfo .btn-tel {
    margin-top: 15.5vw
}

#shopinfo .btn-tel dl {
    text-align: center;
    line-height: 1
}

#shopinfo .btn-tel dl dt {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em
}

#shopinfo .btn-tel dl dd {
    margin-top: 4px;
    font-size: 32px;
    letter-spacing: .01em
}

#shopinfo .btn-tel dl dd img {
    width: 15px;
    margin: -5px 5px 0 0
}

#shopinfo .btn-shared {
    width: 69.5%;
    margin: 6.5vw auto 0
}

#shopinfo .btn-insta {
    width: 30px;
    margin: 8vw auto 0
}

#shopinfo .btn-insta a {
    display: block
}

#shopinfo .btn-insta a img {
    display: block
}

#shopinfo .cancel {
    border-top: 1px solid rgba(255, 255, 255, .6);
    width: 69.5%;
    padding-top: 7.5vw;
    margin: 11.5vw auto 0
}

#shopinfo .cancel dt {
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .2em
}

#shopinfo .cancel dd {
    margin-top: 8.5vw;
    line-height: 20px
}

#shopinfo .col-r {
    margin: 12.5vw 3.5% 0
}

#shopinfo .info dl {
    display: flex;
    line-height: 20px
}

#shopinfo .info dl * {
    letter-spacing: .15em
}

#shopinfo .info dl dt {
    max-width: 29.5vw;
    width: 100%
}

#shopinfo .info dl dd {
    flex: 1
}

#shopinfo .info dl+dl {
    margin-top: 5vw
}

@media screen and (max-width: 767px) {
    #shopinfo .btn-map {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8.5px;
        background: #000;
        color: #fff;
        margin: 7px 0 6px;
        width: 93%;
        font-size: 15px;
        line-height: 50px;
        letter-spacing: .03em
    }

    #shopinfo .btn-map::before {
        content: "";
        background: url("../img/shared/icon_map_w.png") no-repeat center/100%;
        width: 8.5px;
        height: 12.5px
    }
}

@media screen and (min-width: 768px) {
    #shopinfo {
        position: relative;
        z-index: 1
    }

    #shopinfo::before {
        content: "";
        position: absolute;
        background: #a98f47;
        width: calc(50% - 150px);
        height: 100%;
        top: 0;
        left: 0;
        z-index: -1
    }

    #shopinfo .deco-txt {
        max-width: 1510px;
        margin: 0 auto
    }

    #shopinfo .wrap {
        padding: 0
    }

    #shopinfo h2 {
        margin: -58px auto 126px;
        font-size: 30px
    }

    #shopinfo .row {
        display: flex;
        justify-content: space-between
    }

    #shopinfo .col-l {
        width: 284px;
        background: rgba(0, 0, 0, 0);
        padding: 0;
        margin-left: 21px
    }

    #shopinfo .logo {
        width: 245px
    }

    #shopinfo .btn-tel {
        margin-top: 88px
    }

    #shopinfo .btn-shared {
        width: 240px;
        margin-top: 29px
    }

    #shopinfo .btn-shared a {
        font-size: 14px;
        line-height: 48px
    }

    #shopinfo .btn-shared a::before {
        width: 20px
    }

    #shopinfo .btn-insta {
        margin-top: 55px
    }

    #shopinfo .cancel {
        width: 100%;
        padding-top: 40px;
        margin-top: 40px
    }

    #shopinfo .cancel dt {
        font-size: 18px
    }

    #shopinfo .cancel dd {
        margin-top: 26px;
        line-height: 25px
    }

    #shopinfo .col-r {
        width: 603px;
        margin: 10px 0 0
    }

    #shopinfo .info dl {
        line-height: 25px
    }

    #shopinfo .info dl dt {
        max-width: 153px
    }

    #shopinfo .info dl dd {
        margin-right: -10px
    }

    #shopinfo .info dl dd .btn-map {
        display: block;
        width: -moz-fit-content;
        width: fit-content;
        border-bottom: 1px solid rgba(0, 0, 0, 0);
        margin: 5px 0 -6px -10px;
        letter-spacing: .03em
    }

    #shopinfo .info dl dd .btn-map img {
        width: 11px;
        margin: -2px 3px 0 7px
    }

    #shopinfo .info dl dd .btn-map:hover {
        border-color: #000
    }

    #shopinfo .info dl+dl {
        margin-top: 25px
    }
}

@media screen and (min-width: 768px)and (max-width: 1200px) {
    #shopinfo::before {
        width: 40%
    }
}

#gmap {
    padding: 20vw 0
}

#gmap h2 {
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 5.33vw;
    line-height: 1;
    letter-spacing: .03em
}

#gmap h2::before {
    content: "";
    position: absolute;
    background: #000;
    opacity: .6;
    height: 1px;
    width: 13vw;
    top: 50%;
    right: -14vw;
    transform: translateY(-50%)
}

#gmap .map {
    filter: grayscale(100%);
    height: 104vw;
    margin-top: 5.5vw
}

#gmap .group-link {
    margin: 10vw 7% 0
}

#gmap .group-link .btn-map.sp a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8.5px;
    background: #6e6869;
    color: #fff;
    font-size: 15px;
    line-height: 50px;
    letter-spacing: .03em
}

#gmap .group-link .btn-map.sp a::before {
    content: "";
    background: url("../img/shared/icon_map_w.png") no-repeat center/100%;
    width: 8.5px;
    height: 12.5px;
    margin-top: -4px
}

@media screen and (min-width: 768px) {
    #gmap {
        position: relative;
        padding: 80px 0px 153px
    }

    #gmap::before {
        content: "";
        position: absolute;
        background: #a98f47;
        width: calc(50% - 150px);
        height: 100%;
        top: 0;
        left: 0;
        z-index: -1
    }

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

    #gmap h2 {
        color: #fff;
        font-size: 25px
    }

    #gmap h2::before {
        background: #fff;
        width: 50px;
        right: -60px
    }

    #gmap .map {
        height: 552px;
        margin-top: 13px
    }

    #gmap .group-link {
        position: absolute;
        top: -3px;
        right: 29px;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 27px
    }

    #gmap .group-link .btn-map {
        width: 160px
    }

    #gmap .group-link .btn-map a {
        position: relative;
        display: block;
        text-align: center;
        border: 1px solid #484848;
        font-size: 14px;
        font-weight: 500;
        line-height: 28px;
        letter-spacing: .15em
    }

    #gmap .group-link .btn-map a::before {
        content: "";
        position: absolute;
        background: #000;
        width: 13px;
        height: 1px;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
        transition: .3s
    }

    #gmap .group-link .btn-map a:hover {
        background: #000;
        color: #fff
    }

    #gmap .group-link .btn-map a:hover::before {
        background: #fff
    }

    #gmap .group-link .btn-print a {
        display: block;
        background: url("../img/shared/icon_print.png") no-repeat center right/auto;
        padding-right: 10px;
        font-size: 14px;
        line-height: 1;
        font-weight: 500;
        letter-spacing: .15em
    }

    #gmap .group-link .btn-print a:hover {
        text-decoration: underline
    }
}

@media screen and (min-width: 768px)and (max-width: 1200px) {
    #gmap::before {
        width: 40%
    }
}