@charset "utf-8";
/************** base *************/

body {
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.1px;
    line-height: 1.5;
    color: var(--primary-color);

}

img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

:root {
    --primary-color: #333;
    --sub-color: #666;
    --gray-color: #AAAAAA;
    --border-color: #CECECE;
    --background-color1: #F8F8F8;
    --background-color2: #211A18;
    --white: #ffffff;
    --Black: #000000;
}

:root {
    /* コンテンツ幅管理用の変数 */
    --content-width-sm: 600px;
    --content-width: 1080px;
}

:root {
    /* z-index管理用の変数 */
    --z-index-back: -1;
    --z-index-default: 1;
    --z-index-header: 100;
    --z-index-menu: 150;
    --z-index-modal: 200;
}

/* base */
.container-sm,
.container {
    width: 100%;
    padding: 0 40px;
    margin: 0 auto;
}

@media screen and (max-width: 480px) {
    .container {
        padding: 0 25px;
    }
}

.container-sm {
    max-width: calc(var(--content-width-sm) + 50px);
}

.container {
    max-width: calc(var(--content-width) + 50px);
}


/***************************************************
headerロゴSVGアニメーション
 **************************************************/

@-webkit-keyframes animate-svg-fill-1 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-1 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-1 {
    -webkit-animation: animate-svg-fill-1 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.1s both;
    animation: animate-svg-fill-1 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.1s both;
}

@-webkit-keyframes animate-svg-fill-2 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-2 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-2 {
    -webkit-animation: animate-svg-fill-2 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s both;
    animation: animate-svg-fill-2 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.2s both;
}

@-webkit-keyframes animate-svg-fill-3 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-3 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-3 {
    -webkit-animation: animate-svg-fill-3 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.30000000000000004s both;
    animation: animate-svg-fill-3 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.30000000000000004s both;
}

@-webkit-keyframes animate-svg-fill-4 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-4 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-4 {
    -webkit-animation: animate-svg-fill-4 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s both;
    animation: animate-svg-fill-4 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.4s both;
}

@-webkit-keyframes animate-svg-fill-5 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-5 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-5 {
    -webkit-animation: animate-svg-fill-5 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.5s both;
    animation: animate-svg-fill-5 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.5s both;
}

@-webkit-keyframes animate-svg-fill-6 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-6 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-6 {
    -webkit-animation: animate-svg-fill-6 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.6s both;
    animation: animate-svg-fill-6 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.6s both;
}

@-webkit-keyframes animate-svg-fill-7 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-7 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-7 {
    -webkit-animation: animate-svg-fill-7 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.7000000000000001s both;
    animation: animate-svg-fill-7 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.7000000000000001s both;
}

@-webkit-keyframes animate-svg-fill-8 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

@keyframes animate-svg-fill-8 {
    0% {
        fill: transparent;
    }

    100% {
        fill: rgb(255, 255, 255);
    }
}

.svg-elem-8 {
    -webkit-animation: animate-svg-fill-8 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s both;
    animation: animate-svg-fill-8 0.8s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s both;
}

.mainV__logo svg {
    width: 100%;
    height: 100%;
}

/*************** Layout ***************/

/* 背景画像 */
.background-wrapper {
    position: relative;
}

.background-wrapper__inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -999;
    clip-path: inset(0);
    /* 省略可 */
}

.background-wrapper__bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(51, 51, 51, 0.3), rgba(51, 51, 51, 0.3)),
        url(../img/mainV.webp) bottom center / cover no-repeat;
    z-index: -1;
}


/* 予約追従セクション */
.reserve {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
}


@media screen and (max-width: 1080px) {
    .reserve {
        top: inherit;
        bottom: 0;
        background: rgba(0, 0, 0, .9);
        left: 0;
    }
}

.reserve a {
    width: 6vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    color: var(--white);
    writing-mode: vertical-lr;
}

@media screen and (max-width: 1080px) {
    .reserve a {
        width: 100vw;
        height: auto;
        writing-mode: inherit;
        padding: 22px 0;
        align-items: center;
    }
}

.reserve a::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-right: 1px solid var(--gray-color);
    opacity: .2;
}

.reserve__head {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: 22px;
    font-weight: 600;
}

@media screen and (max-width: 1080px) {
    .reserve__head {
        font-size: 18px;
    }
}

.reserve__head--en {
    font-size: 13px;
    transform: translateX(2px);
    margin-top: 13px;
    font-weight: 400;
}

@media screen and (max-width: 1080px) {
    .reserve__head--en {
        margin-top: 0;
        margin-left: 10px;
    }
}


.reserve__head--arrow {
    margin-top: 28px;
    position: relative;
    width: 24px;
    height: 1px;
    background: var(--white);
    transform: rotate(-45deg);
}

@media screen and (max-width: 1080px) {
    .reserve__head--arrow {
        margin-top: 0;
        width: 18px;
        margin-left: 10px;
    }
}

.reserve__head--arrow::after {
    content: "";
    display: inline-block;
    position: absolute;
    width: 6px;
    height: 1px;
    top: 0;
    right: 0;
    background: var(--white);
    transform: translate(0, -2px) rotate(40deg);
}

@media screen and (max-width: 480px) {
    .reserve__head--arrow::after {
        transform: translate(0, -2px) rotate(40deg);
    }
}

/* 色変更CSS */
/* 白い背景で黒に変更 */
.reserve a.is-black {
    color: var(--primary-color);
    transition: color 0.3s ease;
}

.reserve a.is-black .reserve__head--arrow,
.reserve a.is-black .reserve__head--arrow::after {
    background: var(--primary-color);
}

/* 黒い背景で白に */
.reserve a.is-white {
    color: var(--white);
    transition: color 0.3s ease;
}

.reserve a.is-white .reserve__head--arrow,
.reserve a.is-white .reserve__head--arrow::after {
    background: var(--white);
}






/* mainV */
.mainV {
    position: relative;
    width: 100%;
    height: 100vh;
    color: var(--white);
}

.mainV__logo {
    width: 20vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 1080px) {
    .mainV__logo {
        width: 30vw;
    }
}

@media screen and (max-width: 480px) {
    .mainV__logo {
        width: 48vw;
        top: 40%;
    }
}

/* 言語切替ボタン */
.mainV__language-change {
    position: absolute;
    top: 32px;
    right: 3vw;
    transform: translateX(-2px);
}

@media screen and (max-width: 1080px) {
    .mainV__language-change {
        position: fixed;
        right: inherit;
        left: 6vw;
        top: 35px;
        z-index: 999;
    }
}

@media screen and (max-width: 1080px) {
    .mainV__language-change.active {
        color: var(--primary-color);
        z-index: 999;
    }
}


.mainV__language-change-list {
    display: flex;
    align-items: center;
}

.mainV__language-change-dots {
    transform: translateY(3px);

}

/* 日本語バージョン */
.ja-page .m-language-change-item--en {
    opacity: .4;
}

/* 英語バージョン */

.en-page .m-language-change-item--ja {
    opacity: .4;
}



/* ナビゲーション */
.mainV__nav {
    position: absolute;
    top: 80px;
    right: 3vw;
}

@media screen and (max-width: 1080px) {
    .mainV__nav {
        position: fixed;
        width: 100vw;
        height: 40%;
        top: 0;
        right: 0;
        opacity: 0;
        visibility: inherit;
        transition: .6s;
        background: var(--white);
        color: var(--primary-color);
        z-index: -1;
    }
}

@media screen and (max-width: 480px) {
    .mainV__nav {
        height: 50%;
    }
}

.mainV__nav-list {
    display: flex;
    flex-direction: row-reverse;
    gap: 18px;
}

@media screen and (max-width: 1080px) {
    .mainV__nav-list {
        position: absolute;
        gap: 2em;
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}

@media screen and (max-width: 480px) {
    .mainV__nav-list {
        gap: 18px;
    }
}

.mainV__nav-item {
    writing-mode: vertical-rl;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 3px;
}


/* 所在地 */
.mainV__address-wrap {
    width: fit-content;
    position: absolute;
    bottom: 50px;
    left: 10vw;
}

@media screen and (max-width: 1080px) {
    .mainV__address-wrap {
        bottom: 112px;
        left: 6vw;
    }
}

.mainV__address {
    font-size: 14px;
    font-weight: 600;
}

.mainV__address-en {
    margin-top: 14px;
    font-size: 12px;
    opacity: .7;

}

.mainV__instagram-icon {
    width: 3vw;
    height: auto;
    position: absolute;
    top: 50%;
    right: 3vw;
    transform: translateY(-50%);
}

@media screen and (max-width: 1080px) {
    .mainV__instagram-icon {
        width: 36px;
        height: 36px;
        top: 28px;
        right: calc(50px + 6vw);
        transform: translate(-80%, 0%);
        position: fixed;
        z-index: 250;
    }
}

/* scroll */
.mainV__scroll-bar {
    position: absolute;
    display: flex;
    gap: 10px;
    bottom: 50px;
    right: 4vw;
}

@media screen and (max-width: 1080px) {
    .mainV__scroll-bar {
        bottom: 60px;
    }
}

.mainV__scroll-bar-text {
    font-size: 12px;
    color: var(--white);
}

/* アニメーションライン用 */
.mainV__scroll-bar-line {
    position: relative;
    display: block;
    width: 1px;
    height: 68px;
    margin-top: 6px;
    /* scroll文字と間隔調整 */
    overflow: hidden;
}

.mainV__scroll-bar-line::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 68px;
    background: var(--white);
    opacity: 0.2;
}

.mainV__scroll-bar-line::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 1px;
    height: 68px;
    border-left: 1px solid rgba(255, 255, 255, 0.4);
    animation: move-border 3s linear infinite;
}

@keyframes move-border {
    0% {
        top: 0;
    }

    100% {
        top: 68px;
    }
}


/* footer */
.footer {
    width: 100%;
    height: 100vh;
    position: relative;
    color: var(--white);
}

.footer::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .5), rgba(0, 0, 0, .5));
    z-index: -1;
}

.footer__logo {
    width: 15vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media screen and (max-width: 1080px) {
    .footer__logo {
        width: 25vw;
    }
}

@media screen and (max-width: 480px) {
    .footer__logo {
        width: 43vw;
        top: 40%;
    }
}

/* ナビゲーション */
.footer__nav {
    position: absolute;
    top: 78px;
    left: 10vw;
}

@media screen and (max-width: 1080px) {
    .footer__nav {
        display: none;
    }
}

.footer__nav-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer__nav-item {
    font-weight: 500;
}

/* 所在地 */
.footer__address-wrap {
    position: absolute;
    bottom: 70px;
    left: 10vw;
}

@media screen and (max-width: 1080px) {
    .footer__address-wrap {
        bottom: 112px;
        left: 6vw;
    }
}

.footer__address {
    font-size: 13px;
    line-height: 1.75;
}

.footer__address--company {
    display: inline-block;
    margin-top: 20px;
    opacity: 1;
    transition: .3s;
}

.footer__address--company:hover {
    opacity: .5;
}

/* 言語切替 */
.footer__language-change {
    margin-top: 30px;
}


.footer__language-change-list {
    display: flex;
}

.footer__language-change-dots {
    transform: translateY(3px);
}

/* ページトップ */
.footer__scroll-bar {
    position: absolute;
    top: 0px;
    right: 3vw;
    display: flex;
    align-items: baseline;
    gap: 10px;
    cursor: pointer;
}

@media screen and (max-width: 1080px) {
    .footer__scroll-bar {
        top: inherit;
        bottom: 162px;
    }
}

/* テキスト */
.footer__scroll-bar-text {
    color: var(--white);
    font-size: 12px;
}

/* ライン */
.footer__scroll-bar-line {
    position: relative;
    display: block;
    width: 1px;
    height: 94px;
    margin-top: 8px;
    /* 適宜調整 */
    overflow: hidden;
}

.footer__scroll-bar-line::before {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 1px;
    height: 94px;
    background: var(--white);
    opacity: 0.2;
}

.footer__scroll-bar-line::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 1px;
    height: 94px;
    border-left: 1px solid rgba(255, 255, 255, 0.4);
    animation: footer-move-border 3s linear infinite;
}

@keyframes footer-move-border {
    0% {
        bottom: 0;
    }

    100% {
        bottom: 94px;
    }
}

/* instagramアイコン */
.footer__instagram-icon {
    width: 3vw;
    height: auto;
    position: absolute;
    bottom: 128px;
    right: 3vw;
}

@media screen and (max-width: 1080px) {
    .footer__instagram-icon {
        display: none;
    }
}

.footer__copy-right {
    font-size: 12px;
    position: absolute;
    bottom: 70px;
    right: 3vw;
}

@media screen and (max-width: 1080px) {
    .footer__copy-right {
        bottom: 112px;
    }
}

/* スマホレスポンシブ */


.mainV__instagram-icon--02 {
    display: none;
}


#js-nav.active {
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 250 !important;
}

.mainV__instagram-icon--01.active {
    display: none;
}

.mainV__instagram-icon--02.active {
    display: block;
    z-index: 250;
}




/* ハンバーガーメニューのボタン位置 */
.hamburger-menu {
    width: 50px;
    /* ハンバーガーメニューの線の幅 */
    height: 24px;
    position: fixed;
    top: 34px;
    /* (ヘッダーの高さ)－(メニューボタンの高さ)/2 */
    right: 6vw;
    background: transparent;
    z-index: 999;
}

/* 画面幅が以下のサイズを超えたら非表示 */
@media screen and (min-width: 1080px) {
    .hamburger-menu {
        display: none;
    }
}

/* ハンバーガーメニューのボタンサイズ */
.hamburger-menu__icon {
    position: relative;
    width: 100%;
    height: 100%;
}

/* ハンバーガーメニューの線 */
.hamburger-menu__icon span {
    display: block;
    width: 100%;
    height: 1px;
    position: absolute;
    top: 0;
    left: 0;
    background: white;
    /* メニューバーの色 */
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.hamburger-menu.dark .hamburger-menu__icon span {
    background: var(--primary-color);
}

.hamburger-menu.active span {
    background: var(--primary-color);
}

/* 各線の初期位置 */
.hamburger-menu span:nth-child(1) {
    top: 0;
}

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

.hamburger-menu span:nth-child(3) {
    top: 100%;
    transform: translateY(-100%);
}

/* アクティブ時の動き */
.hamburger-menu.active span:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(25deg);
}

.hamburger-menu.active span:nth-child(2) {
    opacity: 0;
}

.hamburger-menu.active span:nth-child(3) {
    top: 50%;
    transform: translateY(-50%) rotate(-25deg);
}



/*************** メインコンテンツ *************/
/* コンセプト */
.top-concept {
    padding-top: 280px;
    padding-bottom: 260px;
    position: relative;
    color: var(--white);
}

@media screen and (max-width: 1080px) {
    .top-concept {
        padding-top: 220px;
        padding-bottom: 200px;
    }
}

@media screen and (max-width: 480px) {
    .top-concept {
        padding-top: 150px;
        padding-bottom: 150px;
    }
}

/* 背景マスク処理 */
.top-concept::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(33, 26, 24, 0) 0%, rgba(33, 26, 24, 0.4) 20%, rgba(33, 26, 24, 0.9) 100%);
    z-index: -1;
}

.top-concept__wrap {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-end;
    transform: translateX(-50px);
}

@media screen and (max-width: 1080px) {
    .top-concept__wrap {
        flex-direction: column;
        align-items: center;
        transform: translate(0);
        gap: 70px;
    }
}

.top-concept__text {
    line-height: 2;
    font-size: 17px;
}

@media screen and (max-width: 480px) {
    .top-concept__text {
        font-size: 15px;
    }
}



/* コンセプトイメージ配置 */
.top-concept__img-wrap {
    overflow: hidden;
    width: 100%;
    margin-top: 196px;
}

.top-concept__slider {
    display: flex;
    gap: 40px;
    width: fit-content;
    animation: slideLeft 50s linear infinite;
}

.top-concept__img {
    flex-shrink: 0;
    width: 25vw;
    max-width: 400px;
    min-width: 200px;

}

.top-concept__img img {
    width: 100%;
    height: auto;
    display: block;
}

/* アニメーション（全体の50%だけ動く） */
@keyframes slideLeft {
    0% {
        transform: translateX(-50%);
    }

    100% {
        transform: translateX(0%);
    }
}

.top-concept__img:nth-child(odd) {
    margin-top: 40px;
}


/*************** お部屋 *************/

.top-room {
    padding-top: 160px;
    background: var(--white);
}

@media screen and (max-width: 1080px) {
    .top-room {
        padding-top: 60px;
    }
}

.top-room__head-wrap {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 110px;
}

@media screen and (max-width: 1080px) {
    .top-room__head-wrap {
        align-items: baseline;
        width: 100%;
        margin: 0 auto;
        margin-bottom: 70px;
    }
}


.top-room__info {
    font-size: 15px;
    width: 50%;
    line-height: 2;
}

@media screen and (max-width: 1080px) {
    .top-room__info {
        width: 70%;
    }
}


/* 各お部屋コンテナ */
/* スライド */
.top-room__content {
    width: 85vw;
    margin: 0 0 0 auto;
}

@media screen and (max-width: 1080px) {
    .top-room__content {
        width: 100vw;
        margin: 0;
    }
}

.slideshow {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 80vh;
}

@media screen and (max-width: 1080px) {
    .slideshow {
        height: 40vh;
    }
}

.slideshow__slide-img {
    object-fit: cover;
    width: 100%;
}

.slideshow__slide-img img {
    object-fit: cover;
}

.swiper-pagination {
    width: 100% !important;
    transform: translateX(15%) !important;
}

@media screen and (max-width: 480px) {
    .swiper-pagination {
        width: 100% !important;
        transform: translateX(0%) !important;
    }
}

/* 通常のドット */
.swiper-pagination-bullet {
    background: var(--white) !important;
    opacity: 1 !important;
    border: 1px solid var(--white);
}

/* アクティブなドット */
.swiper-pagination-bullet-active {
    background: transparent !important;
}


/* お部屋案内 */

.top-room__contents {
    margin-bottom: 100px;
}

.top-room__info-wrap {
    display: grid;
    grid-template-columns: 2.5fr 1fr;
    gap: 60px;
}

@media screen and (max-width: 1080px) {
    .top-room__info-wrap {
        position: relative;
        display: inherit;
        padding: 0 40px;
    }
}

@media screen and (max-width: 480px) {
    .top-room__info-wrap {
        padding: 0 28px;
    }
}

.top-room__ttl-wrap {
    margin-top: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 1080px) {
    .top-room__ttl-wrap {
        flex-direction: column;
        width: 70%;
    }
}

@media screen and (max-width: 480px) {
    .top-room__ttl-wrap {
        width: 100%;
    }
}

.top-room__ttl {
    font-size: 24px;
    flex-shrink: 0;
    width: 50%;
    font-weight: 600;
}

@media screen and (max-width: 1080px) {
    .top-room__ttl {
        font-size: 20px;
        width: 100%;
    }
}

.top-room__disc-text {
    width: 50%;
    line-height: 2;
    font-size: 15px;
}

@media screen and (max-width: 1080px) {
    .top-room__disc-text {
        width: 100%;
        margin-top: 20px;
    }
}

@media screen and (max-width: 480px) {
    .top-room__disc-text {
        font-size: 14px;
    }
}

.top-room__name-wrap {
    position: relative;
    background: var(--white);
    transform: translateY(-25%);
    z-index: var(--z-index-modal);
}

@media screen and (max-width: 1080px) {
    .top-room__name-wrap {
        width: 30vw;
        height: 30vw;
        position: absolute;
        top: -70px;
        right: 0;
        transform: translateY(-50%);
    }
}

.top-room__name {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 1080px) {
    .top-room__name {
        width: 30vw;
        height: 30vw;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

.top-room__name-img {
    margin-top: 56px;
    margin-bottom: 30px;
    width: 40%;
}

@media screen and (max-width: 1080px) {
    .top-room__name-img {
        margin-top: 0;
        margin-bottom: 0;
    }
}

.top-room__name-en {
    font-size: 22px;
    writing-mode: vertical-rl;
    color: var(--gray-color);
}

@media screen and (max-width: 1080px) {
    .top-room__name-en {
        display: none;
    }
}

/* テーブル */
.top-room__table {
    margin-top: 60px;
    border-top: 1px solid #ccc;
}

.top-room__info-unit {
    display: flex;
    border-bottom: 1px solid #ccc;
    padding: 30px 4px 30px 0;
}

.top-room__info-label {
    font-size: 14px;
    width: 5em;
    flex-shrink: 0;
    color: var(--primary-color);
}

.top-room__info-content {
    color: var(--sub-color);
    font-size: 14px;
    line-height: 1.75;
}

@media screen and (max-width: 480px) {
    .top-room__info-content {
        font-size: 13px;
    }
}


/* .top-room__btm-img {
    width: 100%;
    aspect-ratio: 1/.48;
}

@media screen and (max-width: 480px) {
    .top-room__btm-img {
        width: 100%;
        aspect-ratio: 1/.9;
    }
}

.top-room__btm-img img {

    object-fit: cover;
} */
.top-room__btm-img {
    position: relative;
    height: 60vh;
}

@media screen and (max-width: 768px) {
    .top-room__btm-img {
        height: 40vh;
    }
}

.m-gb-inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(0);
    z-index: 1;
}

.top-room__btm-img--accent {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    background-image: url(../img/room-img.webp);
    background-size: cover;
    background-position: bottom;
    z-index: 1;
}

/* 朝ごはん */
.top-breakfast {
    padding-top: 220px;
    padding-bottom: 160px;
    background: var(--white);
}

@media screen and (max-width: 480px) {
    .top-breakfast {
        padding-top: 100px;
    }
}

.top-breakfast__info-contents {
    width: 85vw;
    display: flex;
    justify-content: space-between;
}

.top-breakfast__img {
    width: 50vw;
    aspect-ratio: 1/.8;
}

.top-breakfast__img img {
    object-fit: cover;

}

.top-breakfast__info-wrap {
    width: 30%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 50px 0;
}


.top-breakfast__info-text {
    line-height: 2;
    font-size: 18px;
}

@media screen and (max-width: 1080px) {
    .top-breakfast__info-text {
        display: none;
    }
}

.top-breakfast__info-text--sp-wrap {
    display: none;
}

@media screen and (max-width: 1080px) {
    .top-breakfast__info-text--sp-wrap {
        display: block;
        width: fit-content;
        margin: 0 auto;
        line-height: 2.5;
        margin-top: 70px;
    }
}

@media screen and (max-width: 480px) {
    .top-breakfast__info-text--sp-wrap {
        font-size: 14px;
    }
}

/* 各朝ごはん紹介コンテナ */
.top-breakfast__contents {
    padding-top: 140px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
}

@media screen and (max-width: 1080px) {
    .top-breakfast__contents {
        gap: 30px;
    }
}

@media screen and (max-width: 480px) {
    .top-breakfast__contents {
        padding-top: 68px;
        display: grid;
        grid-template-columns: 1fr;
        gap: 80px;
    }
}

.top-breakfast__content-img img {
    aspect-ratio: 1/.6;
    object-fit: cover;
}

.top-breakfast__content-ttl {
    position: relative;
    font-size: 18px;
    font-weight: 500;
    padding-left: 1em;
    margin-top: 20px;
}

.top-breakfast__content-ttl::before {
    position: absolute;
    bottom: 0;
    left: 8px;
    content: "";
    width: 1px;
    height: 66px;
    background: var(--gray-color);
}

.top-breakfast__content-disc {
    font-size: 15px;
    margin-top: 22px;
    line-height: 2;
    letter-spacing: .1px;
}

@media screen and (max-width: 480px) {
    .top-breakfast__content-disc {
        font-size: 14px;
    }
}

/* お風呂コンテンツ */
.top-bath {
    padding-top: 160px;
    padding-bottom: 158px;
    background: var(--background-color1);
}

@media screen and (max-width: 480px) {
    .top-bath {
        padding-top: 100px;
        padding-bottom: 120px;
    }
}

.top-bath__info-contents {
    width: 85vw;
    margin: 0 0 0 auto;
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
}

.top-bath__img {
    width: 50vw;
    aspect-ratio: 1/.8;
}

.top-bath__img img {
    object-fit: cover;

}

.top-bath__info-wrap {
    width: 30%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    padding: 50px 0;
}

.top-bath__info-text {
    line-height: 2;
}

.top-bath__info-text span {
    display: inline-block;
    margin-top: 10px;
}

@media screen and (max-width: 1080px) {
    .top-bath__info-text {
        display: none;
    }

}

.top-bath__info-text--sp {
    display: none;
}

.top-bath__info-text--sp-wrap {
    padding: 0 25px;
    margin: 0 auto;
    margin-top: 70px;
}

@media screen and (max-width: 1080px) {
    .top-bath__info-text--sp {
        width: fit-content;
        display: block;
        margin: 0 auto;
        line-height: 2.5;
    }
}

@media screen and (max-width: 480px) {
    .top-bath__info-text--sp {
        font-size: 14px;
    }
}

.top-bath__disc-wrap {
    margin-top: 100px;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    align-items: center;
    gap: 80px;
}

@media screen and (max-width: 1080px) {
    .top-bath__disc-wrap {
        gap: 40px;
    }
}

@media screen and (max-width: 480px) {
    .top-bath__disc-wrap {
        margin-top: 68px;
        display: grid;
        grid-template-columns: 1fr;
        align-items: center;
        gap: 60px;
    }
}

.top-bath__disc-img {
    aspect-ratio: 1/ .7;
}

.top-bath__disc-img img {
    object-fit: cover;
}

.top-bath__disc-text {
    line-height: 2;
    font-size: 15px;
}

@media screen and (max-width: 480px) {
    .top-bath__disc-text {
        font-size: 14px;
    }
}

.top-bath__disc-text span {
    display: block;
    margin-top: 10px;
}

/* 見どころ */
.top-highlight {
    position: relative;
    color: var(--white);
}

.top-highlight__sub-head {
    font-size: 24px;
    font-weight: 500;
}

@media screen and (max-width: 1080px) {
    .top-highlight__sub-head {
        font-size: 20px;
    }
}

.top-highlight__bg {
    position: relative;
    width: 100%;
    height: auto;
    background: url("../img/highlight-btm-img01.webp") center center / cover no-repeat;
}

.top-highlight__bg--btm {
    height: 70vh;
    width: 100%;
    background: url("../img/highlight-btm-img02.webp") center center / cover no-repeat;
}

@media screen and (max-width: 1080px) {
    .top-highlight__bg--btm {
        height: 30vh;
    }

}

/* 背景マスク処理 */
.top-highlight__bg--top::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(33, 26, 24, 0) 0%, rgba(33, 26, 24, 1) 100%);
    z-index: 1;
}

.top-highlight__bg--btm::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(180deg, rgba(33, 26, 24, 1) 0%, rgba(33, 26, 24, .9) 30%, rgba(33, 26, 24, 0)100%);
    z-index: 1;
}

.top-highlight__head-wrap {
    padding-top: 180px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 80px;
    z-index: var(--z-index-modal);
}

.top-highlight__info-text {
    color: var(--white);
    font-size: 15px;
    line-height: 2;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .top-highlight__info-text {
        font-size: 14px;
        text-align: left;
    }
}


.top-highlight__container {
    position: relative;
    z-index: var(--z-index-modal);
    background: #211A18;
}


/* 館内図 */
.top-highlight__floor {
    padding-top: 114px;
}

.top-highlight__floor-contents {
    display: flex;
    gap: 124px;
    margin-top: 30px;
}

@media screen and (max-width: 1080px) {
    .top-highlight__floor-contents {
        flex-direction: column;
    }
}

.top-highlight__floor-map {
    width: auto;
    height: auto;
    position: relative;
}

.top-highlight__floor-map--num {
    font-size: 46px;
    display: inline-block;
    transform: translateX(25%);
}

@media screen and (max-width: 1080px) {
    .top-highlight__floor-map--num {
        font-size: 36px;
        margin-bottom: 10px;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__floor-map--num {
        font-size: 28px;
    }
}

.top-highlight__floor-map--num-small {
    font-size: 20px;
    display: inline-block;
    transform: translateX(-50%);
}

@media screen and (max-width: 1080px) {

    .top-highlight__floor-map--num-small {
        font-size: 16px;
    }
}

@media screen and (max-width: 480px) {

    .top-highlight__floor-map--num-small {
        font-size: 14px;
    }
}

@media screen and (max-width: 1080px) {
    .top-highlight__floor-map {
        width: 60%;
        height: auto;
        margin: 0 auto;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__floor-map {
        width: auto;
        height: auto;
        margin: 0 auto;
    }
}

.top-highlight__floor-map:nth-child(2) .top-highlight__floor-map--num {
    transform: translateX(0);
}

@media screen and (max-width: 1080px) {
    .top-highlight__floor-map:nth-child(2) {
        width: 25%;
        margin: 0 auto;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__floor-map:nth-child(2) {
        width: 40%;
        margin: 0 auto;
    }
}

/* highlightコンテンツ */
.top-highlight__contents {
    padding-top: 80px;
}

@media screen and (max-width: 1080px) {
    .top-highlight__contents {
        padding-top: 40px;
    }

}

.top-highlight__content {
    padding-top: 160px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media screen and (max-width: 1080px) {
    .top-highlight__content {
        padding-top: 80px;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__content {
        flex-direction: column;
        padding-top: 60px;
    }
}

.top-highlight__content--reverse {
    flex-direction: row-reverse;
}

@media screen and (max-width: 480px) {
    .top-highlight__content--reverse {
        flex-direction: column;
    }

}

.top-highlight__content-img {
    width: 50%;
}

@media screen and (max-width: 480px) {
    .top-highlight__content-img {
        width: 100%;
    }
}

.top-highlight__content-wrap {
    width: 50%;
    padding-left: 80px;
}

@media screen and (max-width: 1080px) {
    .top-highlight__content-wrap {
        padding-left: 30px;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__content-wrap {
        width: 100%;
        padding-left: 0;
        margin-top: 30px;
    }
}


.top-highlight__content--reverse .top-highlight__content-wrap {
    padding-left: 0;
    padding-right: 80px;
}

@media screen and (max-width: 1080px) {
    .top-highlight__content--reverse .top-highlight__content-wrap {
        padding-right: 30px;
    }
}

@media screen and (max-width: 480px) {
    .top-highlight__content--reverse .top-highlight__content-wrap {
        padding-right: 0px;
    }
}

.top-highlight__content-disc {
    margin-top: 30px;
    line-height: 2;
    font-size: 15px;
}

@media screen and (max-width: 1080px) {
    .top-highlight__content-disc {
        margin-top: 15px;
        font-size: 14px;
    }

}

/* お店リスト */
.top-shop {
    padding-top: 270px;
    padding-bottom: 160px;
    background: var(--background-color1);
}

@media screen and (max-width: 1080px) {
    .top-shop {
        padding-top: 140px;
        padding-bottom: 100px;
    }
}

.top-shop__container {
    /* width: 90vw;
    padding-left: 15vw; */
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width: 1080px) {
    .top-shop__container {
        flex-direction: column;
    }
}

.m-section-ttl--shop {
    justify-content: flex-start;
    margin-right: 2em;
    transform: translateY(-2em);
}

@media screen and (max-width: 1080px) {
    .m-section-ttl--shop {
        transform: inherit;
    }
}

.top-shop__contents {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 30px 24px;
}

@media screen and (max-width: 1080px) {
    .top-shop__contents {
        margin-top: 60px;
        gap: 30px;
        grid-template-columns: 1fr 1fr;
    }
}

@media screen and (max-width: 480px) {
    .top-shop__contents {
        grid-template-columns: 1fr;
        gap: 40px;
        margin-top: 50px;
    }
}

.top-shop__content-ttl {
    position: relative;
    font-size: 18px;
    font-weight: 500;
    padding-left: 1em;
    margin-top: 20px;
}

.top-shop__content-ttl::before {
    position: absolute;
    bottom: 0;
    left: 8px;
    content: "";
    width: 1px;
    height: 66px;
    background: var(--gray-color);
}

.top-shop__content-disc {
    font-size: 15px;
    margin-top: 22px;
    line-height: 2;
    letter-spacing: .5px;
}

.top-shop-img {
    aspect-ratio: 1/ .6;
    overflow: hidden;
}

.top-shop-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}



/* FAQ */
.top-faq {
    padding-top: 270px;
    padding-bottom: 160px;
    background: var(--white);
}

@media screen and (max-width: 1080px) {
    .top-faq {
        padding-top: 140px;
        padding-bottom: 100px;
    }
}

.top-faq__container {
    display: flex;
    justify-content: space-between;
}

@media screen and (max-width: 1080px) {
    .top-faq__container {
        flex-direction: column;
    }
}

.m-section-ttl--faq {
    margin-right: 2em;
    transform: translateY(-2em);
}

@media screen and (max-width: 480px) {
    .m-section-ttl--faq {
        transform: inherit;
    }

}

.top-faq__contents {
    width: 100%;
}

@media screen and (max-width: 480px) {
    .top-faq__contents {
        margin-top: 80px;
    }
}

.top-faq__block {
    display: flex;
    flex-direction: column;
    width: 100%;
}


.top-faq__item {
    display: inline-block;
    border-bottom: 1px solid var(--border-color);
}

.top-faq__item:first-child {
    border-top: 1px solid var(--border-color);
}

.top-faq__head {
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
    gap: 8px;
    text-align: left;
    justify-content: space-between;
    padding: 2em 20px 2em 20px;
    cursor: pointer;
    width: 100%;
}

@media screen and (max-width: 480px) {
    .top-faq__head {
        font-size: 14px;
    }
}

/* 開閉ボタン */
.top-faq__head-icon {
    position: relative;
    width: 16px;
    height: 10px;
}

@media screen and (max-width: 480px) {
    .top-faq__head-icon {
        width: 13px;
    }
}

.top-faq__head-icon span {
    display: inline-block;
    position: absolute;
    width: 100%;
    height: 1px;
    transition: .1s;
}


.top-faq__head-icon span:nth-child(1) {
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: var(--primary-color);
}

.top-faq__head-icon span:nth-child(2) {
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(90deg);
    background: var(--primary-color);
}

.top-faq__head.is-open .top-faq__head-icon span:nth-child(1) {
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(45deg);
}

.top-faq__head.is-open .top-faq__head-icon span:nth-child(2) {
    top: 50%;
    left: 0;
    transform: translateY(-50%) rotate(135deg);

}


/* 回答 */
.top-faq__body {
    position: relative;
    border-radius: 0 0 8px 8px;
    padding: 0 20px;
    background: #fff;
    border: transparent;
    line-height: 0;
    opacity: 0;
    transition: line-height 0.4s, padding 0.4s, opacity 0.4s;
}

@media screen and (max-width: 480px) {
    .top-faq__body {
        font-size: 14px;
    }
}

.top-faq__body.is-open {
    padding: 2em 20px;
    opacity: 1;
    line-height: 1.75;

}

.top-faq__body.is-open p:not(:last-child) {
    margin-bottom: 1em;
}


/* お問い合わせ */
.m-cta {
    width: 100%;
    padding-top: 100px;
    padding-bottom: 100px;
    background: var(--Black);
    color: var(--white);
}

@media screen and (max-width: 1080px) {
    .m-cta {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}

.m-cta__head {
    font-size: 36px;
    font-weight: 500;
    text-align: center;
}

@media screen and (max-width: 1080px) {
    .m-cta__head {
        font-size: 26px;
    }
}

.m-cta__contents {
    display: grid;
    grid-template-columns: 1fr;
    text-align: center;
}

/* 
@media screen and (max-width: 1080px) {
    .m-cta__contents {
        grid-template-columns: 1fr;
        margin-top: 70px;

    }

} */

.m-cta__content-head {
    font-size: 26px;
    font-weight: 500;
}

@media screen and (max-width: 480px) {
    .m-cta__content-head {
        font-size: 20px;
    }
}

.m-cta__content-text {
    font-size: 14px;
    margin-top: 54px;
}

@media screen and (max-width: 480px) {
    .m-cta__content-text {
        font-size: 13px;
        margin-top: 32px;
    }
}

.m-cta__content-tel span {
    font-size: 24px;
    margin-right: 18px;
}

@media screen and (max-width: 768px) {
    .m-cta__content-tel span {
        font-size: 16px;
        margin-right: 8px;
    }

}

.m-cta__content-tel {
    margin-top: 12px;
    font-size: 38px;
    font-weight: 500;
}

@media screen and (max-width: 768px) {
    .m-cta__content-tel {
        font-size: 26px;
        margin-top: 8px;
    }
}

/* .m-cta__sp-separate {
    display: none;
}

@media screen and (max-width: 1080px) {
    .m-cta__sp-separate {
        width: 90%;
        height: 1px;
        display: block;
        margin: 0 auto;
        background: var(--white);
        opacity: .4;
        margin-top: 40px;
        margin-bottom: 40px;
    }
} */


/*************** アクセスページ *************/


.access-main {
    background: var(--white);
    padding-top: 200px;
}

@media screen and (max-width: 480px) {
    .access-main {
        padding-top: 120px;
    }

}

.access__head {
    writing-mode: vertical-lr;
    font-size: 54px;
    margin: 0 auto;
}

@media screen and (max-width: 480px) {
    .access__head {
        font-size: 32px;
    }
}

.access__map-wrap {
    margin-top: 140px;
    width: 100%;
    aspect-ratio: 1/.6;
}


@media screen and (max-width: 480px) {
    .access__map-wrap {
        margin-top: 80px;
        aspect-ratio: 1/.8;
    }
}

.access__map {
    width: 100%;
    height: 100%;
}

.access__map-disc {
    margin-top: 30px;
}

.access__map-ttl {
    font-size: 20px;
    margin-bottom: 10px;
}

.access__map-address {
    font-size: 15px;
    line-height: 2;
}

.access-disc {
    padding-top: 120px;
}

.access-section-ttl {
    font-size: 28px;
    text-align: center;
}

@media screen and (max-width: 480px) {
    .access-section-ttl {
        font-size: 22px;
    }
}

/* テーブル */
.access__table {
    margin-top: 60px;
    border-top: 1px solid #ccc;
}

.access__info-unit {
    display: flex;
    border-bottom: 1px solid #ccc;
    padding: 30px 4px 30px 0;
}

@media screen and (max-width: 480px) {
    .access__info-unit {
        flex-direction: column;
        gap: 12px;
    }
}

.access__info-label {
    white-space: nowrap;
    margin-right: 106px;
    flex-shrink: 0;
    font-size: 18px;
    color: var(--primary-color);
}

.access__info-content {
    color: var(--sub-color);
    line-height: 1.75;
}



.parking {
    padding-top: 120px;
    padding-bottom: 180px;
}

@media screen and (max-width: 480px) {
    .parking {
        padding-top: 80px;
        padding-bottom: 120px;
    }
}

.parking__map-wrap {
    margin-top: 40px;
    width: 100%;
    aspect-ratio: 1/.4;
}

@media screen and (max-width: 480px) {
    .parking__map-wrap {
        aspect-ratio: 1/.8;
    }
}

.parking__map {
    width: 100%;
    height: 100%;
}

.parking__pam-disc {
    margin-top: 30px;
}

.parking__img-wrap {
    margin-top: 70px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

@media screen and (max-width: 480px) {
    .parking__img-wrap {
        grid-template-columns: 1fr;
    }
}

.parking__img-disc {
    margin-top: 24px;
    text-align: center;
}

/*************** Modifier *************/

/* セクションタイトル */
.m-section-ttl {
    writing-mode: vertical-rl;
    display: flex;
    flex-direction: column;
    font-size: 54px;
    font-weight: 500;
    color: var(--primary-color);
    letter-spacing: 6px;
    line-height: 1;
    white-space: nowrap;
}

@media screen and (max-width: 480px) {
    .m-section-ttl {
        font-size: 36px;
    }
}

.m-section-ttl--en {
    font-size: 16px;
    transform: translate(18px, 10px);
    font-weight: 400;
    color: var(--gray-color);
    letter-spacing: .2em;
}

/* コンセプト */
.m-section-ttl--concept {
    color: var(--white);
    font-size: 36px;
    font-weight: 500;
    line-height: 1.5;
}

@media screen and (max-width: 480px) {
    .m-section-ttl--concept {
        font-size: 26px;
        line-height: 1.25;
    }
}

.m-section-ttl--en--concept {
    font-weight: 400;
    transform: translate(18px, 0);
    color: var(--white);
}

.m-section-ttl--white,
.m-section-ttl--en--white {
    color: var(--white);
}

.m-section-ttl--small {
    font-size: 36px;
}

@media screen and (max-width: 1080px) {
    .m-section-ttl--small {
        font-size: 28px;
        position: relative;
        writing-mode: inherit;
        letter-spacing: 0px;
    }

}

@media screen and (max-width: 480px) {
    .m-section-ttl--small {
        font-size: 24px;
    }
}

@media screen and (max-width: 1080px) {
    .m-section-ttl--small .m-section-ttl--en {
        position: absolute;
        bottom: 0px;
        left: 0;
        transform: translate(.3em, 1.75em);
    }
}

.m-section-ttl--en--black {
    color: var(--primary-color);
}

/* スマホのとき、２文字下げる */
.m-section-ttl--sp-btm {
    transform: translateY(1.5em);
}

/*************** Utility **************/

.u-text-center {
    text-align: center;
}

.u-pc {
    display: block;

}

@media screen and (max-width: 600px) {
    .u-pc {
        display: none;
    }
}


/*************** hover **************/
/* 予約ボタン */
.reserve {
    transition: .4s;
}

.reserve:hover {
    background: var(--Black);
}

.reserve:hover .reserve__head {
    color: var(--white);
}

.reserve:hover .reserve__head--arrow,
.reserve:hover .reserve__head--arrow::after {
    background: var(--white) !important;
}

/* 基準 */
.mainV__nav-item,
.footer__nav-item,
.mainV__instagram-icon,
.footer__instagram-icon,
.top-faq__head,
.footer__scroll-bar {
    transition: .3s;
}

.footer__nav-item:hover {
    opacity: .5;
}

.mainV__nav-item:hover {
    color: var(--primary-color);
}

.access-body .mainV__nav-item:hover {
    color: #ccc;
}

.mainV__instagram-icon:hover,
.footer__instagram-icon:hover {
    opacity: .6;
}

.top-faq__head:hover {
    color: #aaa;
}

.footer__scroll-bar:hover {
    opacity: .6;
}