#top {
    position: relative;
    z-index: 10;
    box-sizing: border-box;
    transition: 1s;
    width: 100%
}

#top h1 {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    padding: 0 var(--padding-wrap);
    bottom: 2vw;
    z-index: 2;
    color: #fff;
    text-shadow: 0 0 10px rgba(0, 0, 0, .2);
    width: 100%;
    box-sizing: border-box
}

#top .boxLogo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    color: #fff;
    text-align: center;
    white-space: nowrap
}

#top .boxLogo::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 120%;
    background: #000;
    opacity: .2;
    filter: blur(20px);
    transition: .3s
}

#top .hamburger {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999999;
    width: 60px
}

/* #top .hamburger::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 110%;
    height: 110%;
    background: #000;
    opacity: .2;
    filter: blur(20px);
    transition: .3s
} */

#top .hamburger img {
    transition: .5s
}

#top .hamburger .close {
    position: absolute;
    top: 50%;
    left: 45%;
    transform: translate(-50%, -50%);
    width: 80%;
    opacity: 0
}

#top .hamburger.is-active::before {
    opacity: 0
}

#top .hamburger.is-active .close {
    opacity: 1
}

#top .hamburger.is-active .menu {
    opacity: 0
}

#top #key {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: relative;
    min-height: 180vw
}

#top #key * {
    min-height: inherit
}

#top #belt {
    position: relative;
    z-index: 9999;
    transition: opacity .3s;
    height: 0;
    touch-action: auto !important;
    pointer-events: visible !important;
    opacity: 0;
    visibility: hidden;
    transition: .5s
}

#top #navigation {
    background: var(--bg1);
    color: #000;
    font-size: 15px;
    line-height: 2;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    padding-bottom: 75px;
    box-sizing: border-box;
    z-index: 99;
    padding: 100px 3vw 40vw
}

#top #navigation .gr {
    margin: 10vw 0 0 auto;
    max-width: 65vw
}

#top #navigation .nav-photo {
    opacity: 0
}

#top #navigation .nav-list li+li {
    margin-top: 5vw
}

#top #navigation .nav-list a {
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 5vw;
    transition: .3s .4s;
    opacity: 0
}

#top #navigation .nav-list a::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    background: url("../img/shared/icon_nav_active.png") no-repeat center/100%;
    width: 3vw;
    height: 7vw;
    transition: .3s;
    opacity: 0
}

#top #navigation .nav-list a:hover::before,
#top #navigation .nav-list a.active::before {
    opacity: 1
}

#top #navigation .nav-list .eng {
    font-size: 4.5vw
}

#top #navigation .nav-list .line {
    flex: 1;
    border-top: 1px dotted currentColor;
    margin: 5px 5px 0
}

#top #navigation .nav-list .jp {
    font-size: 3.5vw;
    letter-spacing: .2em
}

#top #navigation .tel-gr {
    margin-top: 10vw;
    text-align: right;
    opacity: 0
}

.tel-gr {
    line-height: 1.5;
    white-space: nowrap
}

.tel-gr .tel-main {
    font-weight: 600;
    --scale: 1.8
}

.tel-gr .tel-main .icon {
    max-width: 6vw;
    margin: -1vw 1vw 0 0
}

#footer {
    position: relative;
    padding: 10vw 0 0 !important
}

#footer .ft-top .socialbuttons {
    display: flex;
    justify-content: space-between;
    gap: 10px
}

#footer .ft-top .btn-copy {
    text-align: center
}

#footer .ft-top .btn-copy a {
    display: flex;
    align-items: center;
    gap: 5px
}

#footer .ft-top .btn-copy .icon {
    max-width: 15px
}

#footer .ft-bottom {
    background: #000;
    color: #fff;
    padding: 10vw 0 10vw;
    margin-top: 5vw
}

#footer .ft-bottom address {
    text-align: left
}

#footer .ft-bottom .cookies_link {
    line-height: 25px;
    font-size: 12px;
    margin-bottom: 0
}

#footer .ft-bottom .cookies_link a:hover {
    text-decoration: underline
}

#footer .ft-bottom .pagetop {
    text-align: right;
    margin-top: 5vw
}

#footer .ft-bottom .pagetop a {
    display: inline-block;
    position: relative;
    text-align: left;
    padding: 40px 15px 15px 10px;
    line-height: 1.2;
    white-space: nowrap;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    position: relative
}

#footer .ft-bottom .pagetop a::before {
    content: "";
    position: absolute;
    top: -3px;
    left: 100%;
    width: 6px;
    height: 11px;
    background: currentColor;
    -webkit-clip-path: polygon(0 0, 0% 100%, 100% 100%);
    clip-path: polygon(0 0, 0% 100%, 100% 100%)
}

.navOpen #top #belt {
    visibility: visible;
    opacity: 1;
    height: auto;
    touch-action: auto !important;
    pointer-events: visible !important
}

.navOpen #top #belt #navigation {
    overflow: auto !important;
    touch-action: auto !important;
    pointer-events: visible !important
}

.navOpen #top #belt #navigation .nav-photo {
    transition: 1s var(--delay);
    opacity: 1
}

.navOpen #top #belt #navigation .nav-list a {
    opacity: 1;
    transition: 1s var(--delay)
}

.navOpen #top #belt #navigation .tel-gr {
    opacity: 1;
    transition: 1s var(--delay)
}

.navOpen .ft_bnr_fixed * {
    touch-action: auto !important;
    pointer-events: visible !important
}

.navOpen .ft_bnr_fixed a,
.navOpen .ft_bnr_fixed .hamburger {
    touch-action: auto !important;
    pointer-events: visible !important
}

.navOpen .ft_bnr_fixed .tel-toggle:hover .tel-toggle-main {
    opacity: 0
}

.ft_bnr_fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    font-size: 12px;
    background: url(../img/shared/bg-navf.jpg) repeat center top;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-flow: row;
    text-align: center;
    width: 100%;
    z-index: 999
}

.ft_bnr_fixed li {
    box-sizing: border-box;
    width: 33.33%;
    color: #fff;
    background: url("../img/shared/bg-navf.jpg") repeat center top;
    border-right: 1px solid #404040
}

.ft_bnr_fixed li a {
    display: block;
    padding: 8px 0 10px;
    font-size: 12px;
    position: relative
}

.ft_bnr_fixed li .icon {
    width: 22px
}

.ft_bnr_fixed li span {
    display: block;
    line-height: 1.5
}

.ft_bnr_fixed .hamburger {
    padding: 12px 10px 7px
}

.ft_bnr_fixed .ham-txt {
    margin-top: 5px;
    display: block
}

.remodal-wrapper {
    transition: .3s;
    text-align: center
}

.remodal {
    z-index: 9999999;
    box-sizing: border-box;
    background: var(--bg1);
    text-align: left;
    padding: 80px 0 10vw;
    color: #000
}

.remodal .close1 {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 12px;
    letter-spacing: .24em;
    text-align: center;
    gap: 5px;
    color: #000 !important
}

.remodal .close1 .close-icon {
    transition: .5s;
    color: #000 !important;
    width: 32px;
    height: 32px;
    display: block;
    position: relative;
    display: block;
    margin: 0 auto
}

.remodal .close1 .close-icon::before,
.remodal .close1 .close-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #000;
    width: 100%;
    height: 2px;
    border-radius: 5px;
    transition: .3s
}

.remodal .close1 .close-icon:before {
    transform: translate(-50%, -50%) rotate(45deg)
}

.remodal .close1 .close-icon:after {
    transform: translate(-50%, -50%) rotate(-45deg)
}

.remodal .pop-ttl {
    text-align: center;
    margin: 0 auto;
    line-height: 1.8;
    text-align: center;
    font-weight: 600
}

.remodal .pop-main {
    margin-top: 10vw
}

.remodal .item {
    margin-bottom: 50px;
    box-sizing: border-box;
    position: relative
}

.remodal .item .item-ttl {
    text-align: center;
    line-height: 1.6;
    background: #f8f5f0;
    --scale: 1;
    padding: 10px 0 10px
}

.remodal .item .item-ttl .eng {
    display: block
}

.remodal .item .price {
    text-align: center;
    margin-top: 10px
}

.remodal .item .list {
    margin-top: 25px
}

.remodal .item .list dl {
    display: flex;
    line-height: 2;
    padding: 7px 0 7px;
    line-height: 1.5625;
    line-height: 1.6
}

.remodal .item .list dl dt {
    min-width: 120px
}

.remodal .item .list .dot::before {
    top: 9px
}

.remodal .item .note {
    padding: 5px 0 0
}

.remodal .close2 {
    margin-top: 10vw;
    color: #000 !important;
    width: 100%;
    display: block
}

.slick-dots {
    display: flex;
    gap: 3vw;
    justify-content: center
}

.slick-dots li {
    margin: 0px;
    width: 4vw;
    height: 4vw
}

.slick-dots li button {
    background: #d1d1d1
}

.slick-dots li.slick-active button {
    background: #b48d30
}

.slick-arrow {
    width: 8vw;
    height: 8vw;
    border: none;
    font-size: 0;
    position: absolute;
    right: 0;
    z-index: 2
}

.slick-arrow.slick-next {
    background: url("../img/shared/next.jpg") no-repeat center top/100%
}

.slick-arrow.slick-prev {
    background: url("../img/shared/prev.jpg") no-repeat center top/100%;
    right: 8vw;
    border-right: 1px solid #fff
}

h2,
h3,
h4 {
    line-height: 2.9166666667
}

.btn-shared a,
.btn-shared .btn-inner {
    display: inline-flex;
    align-items: center;
    font-size: 3.5vw;
    border-left: 1px solid #adaba8;
    border-bottom: 1px solid #adaba8;
    position: relative;
    padding: 5vw 5vw 5vw;
    line-height: 1.8;
    min-width: 100%;
    box-sizing: border-box;
    letter-spacing: .2em;
    font-style: italic
}

.btn-shared a *,
.btn-shared .btn-inner * {
    font-style: italic
}

.btn-shared a::before,
.btn-shared .btn-inner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 15vw);
    height: 1px;
    border-top: 1px solid #adaba8
}

.btn-shared img {
    height: auto
}

.btn-shared .icon-left {
    width: 4vw;
    margin: 0 2vw 0 0
}

.btn-shared .icon-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%) !important;
    right: 5vw
}

.btn-shared .icon-book {
    width: 10vw;
    height: auto
}

.btn-shared .icon-arr {
    width: 4vw;
    height: auto
}

.intro main {
    opacity: 0
}

#opening {
    background: var(--bg1);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 10vw 0 10vw 0;
    z-index: 99;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    display: none
}

#opening .wrap {
    margin: auto;
    width: 100%;
    box-sizing: border-box
}

#opening .gr-top {
    padding: 30vw 10vw 10vw;
    background: var(--bg1);
    position: relative;
    z-index: 1;
    color: #fff;
    box-shadow: 3px 3px 5px rgba(0, 0, 0, .4)
}

#opening .bg {
    position: absolute;
    top: 5vw;
    right: 2vw;
    bottom: 5vw;
    left: 2vw;
    z-index: -1
}

#opening .logo {
    width: 50vw
}

#opening .txt1 {
    margin-top: 5vw
}

#opening .txt2 {
    margin: 4vw 0 4vw
}

#opening .btn-skip {
    display: flex;
    align-items: center;
    font-size: 5vw;
    align-items: center;
    justify-content: center;
    padding-top: 5vw;
    gap: 2vw;
    cursor: pointer;
    transition: .3s
}

#opening .btn-skip:hover {
    opacity: .5
}

#opening .btn-skip .icon {
    width: 6vw;
    height: auto
}

@media(min-width: 768px) {
    #top {
        position: relative;
        z-index: 10;
        box-sizing: border-box;
        transition: 1s;
        width: 100%
    }

    #top h1 {
        position: absolute;
        left: 20px;
        transform: none;
        text-align: left;
        padding: 0 20px;
        bottom: 50px;
        z-index: 2;
        color: #fff
    }

    #top .boxLogo {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 2;
        color: #fff;
        text-align: center;
        white-space: nowrap
    }

    #top .boxLogo::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 120%;
        height: 120%;
        background: #000;
        opacity: .2;
        filter: blur(20px);
        transition: .3s
    }

    #top .hamburger {
        top: 30px;
        right: 30px;
        width: 60px
    }

    /* #top .hamburger::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 110%;
        height: 110%;
        background: #000;
        opacity: .2;
        filter: blur(20px);
        transition: .3s
    } */

    #top .hamburger img {
        transition: .5s;
        height: auto
    }

    #top .hamburger .close {
        position: absolute;
        top: 50%;
        left: 45%;
        transform: translate(-50%, -50%);
        width: 80%;
        opacity: 0
    }

    #top .hamburger.is-active::before {
        opacity: 0
    }

    #top .hamburger.is-active .close {
        opacity: 1
    }

    #top .hamburger.is-active .menu {
        opacity: 0
    }

    #top #key {
        min-height: 938px
    }

    #top #navigation {
        padding: 0 20px 0
    }

    #top #navigation .wrap {
        max-width: 1300px;
        display: flex;
        flex-direction: column;
        padding: 100px 0 100px;
        height: 100%
    }

    #top #navigation .nav-photo {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%)
    }

    #top #navigation .gr {
        margin: auto 0 0 auto;
        max-width: 300px
    }

    #top #navigation .nav-list li+li {
        margin-top: 20px
    }

    #top #navigation .nav-list a {
        padding-left: 20px
    }

    #top #navigation .nav-list a::before {
        top: 55%;
        width: 10px;
        height: 17px;
        transition: .3s;
        opacity: 0
    }

    #top #navigation .nav-list .eng {
        font-size: 14px
    }

    #top #navigation .nav-list .line {
        flex: 1;
        border-top: 1px dotted currentColor;
        margin: 5px 5px 0
    }

    #top #navigation .nav-list .jp {
        font-size: 11px;
        letter-spacing: .2em
    }

    #top #navigation .tel-gr {
        margin-top: 50px;
        text-align: right
    }

    .tel-gr {
        line-height: 1.5;
        white-space: nowrap
    }

    .tel-gr .tel-main .icon {
        max-width: 20px;
        margin: -5px 5px 0 0
    }

    #footer {
        position: relative;
        padding: 0 0 0 !important
    }

    #footer .wrap {
        max-width: 1200px
    }

    #footer .ft-top {
        padding: 100px 20px 0
    }

    #footer .ft-top .ft-nav {
        display: flex;
        gap: 20px
    }

    #footer .ft-top .ft-nav a {
        position: relative
    }

    #footer .ft-top .gr {
        display: flex;
        align-items: center;
        padding-top: 14px;
        gap: 38px
    }

    #footer .ft-top .socialbuttons {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        padding: 0
    }

    #footer .ft-top .btn-copy {
        text-align: center
    }

    #footer .ft-top .btn-copy a {
        display: flex;
        align-items: center;
        gap: 5px
    }

    #footer .ft-top .btn-copy .icon {
        max-width: 15px;
        height: auto
    }

    #footer .ft-bottom {
        padding: 31px 20px 40px;
        margin-top: 33px
    }

    #footer .ft-bottom .wrap {
        display: flex;
        justify-content: space-between
    }

    #footer .ft-bottom address {
        text-align: left
    }

    #footer .ft-bottom .cookies_link {
        line-height: 25px;
        font-size: 12px;
        margin-bottom: 0
    }

    #footer .ft-bottom .cookies_link a:hover {
        text-decoration: underline
    }

    #footer .ft-bottom .pagetop {
        text-align: right;
        margin-top: -23px
    }

    #footer .ft-bottom .pagetop a {
        display: inline-block;
        position: relative;
        text-align: left;
        padding: 55px 3px 8px 2px;
        line-height: 1.2;
        white-space: nowrap;
        border-right: 1px solid currentColor;
        border-bottom: 1px solid currentColor;
        position: relative
    }

    .navOpen {
        overflow: hidden
    }

    .navOpen #top #belt {
        visibility: visible;
        opacity: 1;
        height: auto;
        touch-action: auto !important;
        pointer-events: visible !important
    }

    .navOpen #top #belt #navigation {
        overflow: auto !important;
        touch-action: auto !important;
        pointer-events: visible !important
    }

    .navOpen .ft_bnr_fixed * {
        touch-action: auto !important;
        pointer-events: visible !important
    }

    .navOpen .ft_bnr_fixed a,
    .navOpen .ft_bnr_fixed .hamburger {
        touch-action: auto !important;
        pointer-events: visible !important
    }

    .navOpen .ft_bnr_fixed .tel-toggle:hover .tel-toggle-main {
        opacity: 0
    }

    .slick-dots {
        gap: 10px
    }

    .slick-dots li {
        margin: 0px;
        width: 12px;
        height: 12px;
        transition: .3s
    }

    .slick-dots li:hover {
        opacity: .5
    }

    .slick-dots li.slick-active {
        opacity: 1 !important
    }

    .slick-arrow {
        width: 70px;
        height: 70px;
        border: none;
        font-size: 0;
        position: absolute;
        right: 0;
        z-index: 2;
        transition: .3s
    }

    .slick-arrow.slick-prev {
        right: 70px;
        border-right: none
    }

    .remodal {
        padding: 80px 0 100px;
        max-width: 1200px
    }

    .remodal .close1 {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 20px;
        right: 20px;
        font-size: 12px;
        letter-spacing: .24em;
        text-align: center;
        gap: 5px;
        transition: .3s
    }

    .remodal .close1 .close-icon {
        transition: .5s;
        color: #000 !important;
        width: 32px;
        height: 32px;
        display: block;
        position: relative;
        display: block;
        margin: 0 auto
    }

    .remodal .close1 .close-icon::before,
    .remodal .close1 .close-icon::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: #000;
        width: 100%;
        height: 2px;
        border-radius: 5px;
        transition: .3s
    }

    .remodal .close1 .close-icon:before {
        transform: translate(-50%, -50%) rotate(45deg)
    }

    .remodal .close1 .close-icon:after {
        transform: translate(-50%, -50%) rotate(-45deg)
    }

    .remodal .close1:hover {
        opacity: .6
    }

    .remodal .pop-ttl {
        text-align: center;
        margin: 0 auto;
        line-height: 1.8;
        text-align: center;
        font-weight: 600
    }

    .remodal .pop-main {
        margin-top: 60px
    }

    .remodal .item {
        margin-bottom: 50px;
        box-sizing: border-box;
        position: relative;
        text-align: center
    }

    .remodal .item .item-ttl {
        text-align: center;
        line-height: 1.6;
        background: #f8f5f0;
        --scale: 1;
        padding: 10px 0 10px;
        max-width: 365px;
        margin: 0 auto 0
    }

    .remodal .item .item-ttl .eng {
        display: block
    }

    .remodal .item .list {
        margin-top: 20px
    }

    .remodal .item .note {
        padding: 5px 0 0
    }

    .remodal .close2 {
        margin-top: 100px;
        width: 100%;
        display: block;
        transition: .3s
    }

    .remodal .close2:hover {
        opacity: .6
    }

    .btn-shared a,
    .btn-shared .btn-inner {
        display: inline-flex;
        font-size: 16px;
        position: relative;
        padding: 14px 20px 12px;
        min-width: 410px
    }

    .btn-shared a::before,
    .btn-shared .btn-inner::before {
        width: calc(100% - 78px)
    }

    .btn-shared img {
        height: auto
    }

    .btn-shared .icon-left {
        width: 16px;
        margin: 0 10px 0 0
    }

    .btn-shared .icon-right {
        right: 25px
    }

    .btn-shared .icon-book {
        width: 40px;
        height: auto
    }

    .btn-shared .icon-arr {
        width: 15px;
        height: auto
    }

    #opening {
        padding: 100px 20px 100px
    }

    #opening * {
        box-sizing: border-box
    }

    #opening .wrap {
        max-width: 808px
    }

    #opening .gr-top {
        padding: 50px 50px 50px;
        background: var(--bg1);
        position: relative;
        z-index: 1;
        color: #fff;
        height: 70vh;
        display: flex;
        align-items: center;
        justify-content: center
    }

    #opening .bg {
        position: absolute;
        top: 34px;
        right: 20px;
        bottom: 34px;
        left: 20px;
        z-index: -1
    }

    #opening .logo {
        width: 50%;
        text-align: right
    }

    #opening .logo img {
        width: 280px;
        height: auto
    }

    #opening .gr {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        box-sizing: border-box;
        gap: 20px
    }

    #opening .txt-gr {
        width: 50%
    }

    #opening .txt1 {
        margin-top: 20px
    }

    #opening .txt2 {
        margin: 20px 0 20px
    }

    #opening .btn-skip {
        font-size: 20px;
        padding-top: 30px;
        gap: 10px
    }

    #opening .btn-skip .icon {
        width: 15px;
        height: auto
    }
}

@media(min-width: 768px)and (max-width: 1200px) {
    #top #navigation .nav-photo {
        max-width: calc(100% - 500px)
    }

    #top #navigation .nav-photo img {
        max-width: 100%;
        height: auto
    }
}