@charset "utf-8";

/* 見出し
--------------------------------------------------------------- */

/* - 見出し1 */
.heading-1 {
    width: fit-content;
    font-size: 28px;
    margin-left: auto;
    margin-bottom: 1em;
}


/* ボタン
--------------------------------------------------------------- */

/* - Mapボタン */
.button-map {
    display: grid;
    grid-template-columns: 1.11em minmax(0, 1fr);
    justify-content: center;
    align-items: center;
    gap: 0 .77em;
    width: fit-content;
    color: #fff;
    text-decoration: none;
    padding: .5em 1.55em;
    background: var(--color-back-sub);
    border-radius: 100vmax;
    line-height: 1;

    &::before {
        content: "";
        display: block;
        width: 100%;
        min-width: 0;
        aspect-ratio: 20/30;
        mask: url(../img/common/icon_mappin.svg) center center / contain no-repeat;
        background-color: #fff;
    }
}


/* - airbnbボタン */
.button-airbnb {
    position: relative;
    box-sizing: border-box;
    display: grid;
    place-content: center;
    max-width: 360px;
    min-width: 0;
    aspect-ratio: 360/96;
    color: #fff;
    text-decoration: none;
    background: #ff5a5f;

    & img {
        display: block;
        width: 124px;
        margin: auto;
    }


    &::after {
        position: absolute;
        top: 0;
        right: 8.33%;
        bottom: 0;
        content: "";
        display: block;
        width: 5.55%;
        min-width: 0;
        aspect-ratio: 1/1;
        mask: url(../img/common/icon_blank.svg) center center / contain no-repeat;
        background-color: #fff;
        margin: auto;
    }
}


/* - ご予約ボタン*/
.button-reservation {
    position: relative;
    display: grid;
    grid-template-columns: auto .83em;
    justify-content: center;
    align-items: center;
    gap: .5em;
    width: 220px;
    min-width: 0;
    aspect-ratio: 220/60;
    color: #fff;
    text-decoration: none;
    background: rgba(73, 52, 37, .8);

    &::after {
        content: "";
        display: block;
        width: 100%;
        min-width: 0;
        aspect-ratio: 1 / 1;
        mask: url(../img/common/icon_blank.svg) center center / contain no-repeat;
        background-color: #fff;
        margin: auto;
    }
}


/* - Languageボタン */
.button-language {
    display: grid;
    grid-template-columns: minmax(0, 1fr) .66em;
    justify-content: center;
    align-items: center;
    gap: .5em;
    font-size: 24px;
    background: none;
    border: 0;
    cursor: pointer;

    &::after {
        content: "";
        display: block;
        min-width: 0;
        aspect-ratio: 16/14;
        mask: url(../img/common/icon_arrow_bottom.svg) center center / contain no-repeat;
        background-color: var(--color-default);
    }
}



/* 仕様リスト
--------------------------------------------------------------- */

.list-spec {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;

    & li {
        display: grid;
        grid-template-columns: repeat(3, auto);
        justify-content: center;
        align-items: center;
        color: var(--color-main);
        padding: 1em;
        background: #fff;
        border: 1px solid var(--color-main);
        line-height: 1.4;
    }
}


/* 設備リスト
--------------------------------------------------------------- */

.list-facility {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;

    & li {
        display: grid;
        grid-template-columns: repeat(3, auto);
        justify-content: center;
        align-items: center;
        color: #fff;
        padding: 1em;
        background: var(--color-main);
        line-height: 1.4;
    }
}


/* 区切り
--------------------------------------------------------------- */

.separate {
    &::after {
        content: "│";
    }
}


/* サムネイルギャラリー
--------------------------------------------------------------- */

.photo-thumbnail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;

    & figure img {
        display: block;
        min-width: 0;
        width: 100%;
        aspect-ratio: 316/240;
        object-fit: cover;
        object-position: center center;
    }
}


/* モーダル用 ルーペアイコン
--------------------------------------------------------------- */

.js-image-modal {
    position: relative;
    display: block;

    &::after {
        content: "";
        opacity: .7;
        position: absolute;
        right: 10px;
        bottom: 10px;
        display: block;
        width: 16px;
        min-width: 0;
        aspect-ratio: 1/1;
        mask: url(../img/common/icon_zoom.svg) center center / contain no-repeat;
        background-color: #fff;
    }
}


/* JS - 上に戻る
--------------------------------------------------------------- */

#js-totop {
    position: relative;
    display: none;
    z-index: 3;
}

.button-totop {
    box-sizing: border-box;
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: grid;
    place-content: center;
    width: 60px;
    min-width: 0;
    aspect-ratio: 1/1;
    text-decoration: none;
    cursor: pointer;
    background: none;
    transition: .3s;
    transform: translate(0, 0);
    z-index: 3;

    &::after {
        content: "";
        display: block;
        content: "";
        display: block;
        width: 2em;
        min-width: 0;
        aspect-ratio: 16 / 14;
        mask: url(../img/common/icon_arrow_bottom.svg) center center / contain no-repeat;
        background-color: var(--color-default);
        transform: rotate(180deg);
    }

    @media (hover: hover) {
        &:hover {
            transform: translate(0, -15px);
        }
    }

}


/* JS - セッションストレージを活用した表示 / 非表示
--------------------------------------------------------------- */

.js-session-dismiss.is-hidden {
    display: none !important;
    /* または opacity: 0; visibility: hidden; などアニメーションに合わせて調整 */
}


/* 以下、SP
--------------------------------------------------------------- */

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

    /* SP 見出し
    --------------------------------------------------------------- */

    /* - SP 見出し1 */
    .heading-1 {
        font-size: 5.80vw;
        margin-bottom: 1em;
    }


    /* SP ボタン
    --------------------------------------------------------------- */

    /* - sp airbnbボタン */
    .button-airbnb {
        max-width: none;
        width: 67.63vw;
        aspect-ratio: 360/80;

        & img {
            display: block;
            width: 25.12vw;
        }


        &::after {
            right: 8.33%;
            width: 5.55%;
        }
    }


    /* SP 仕様リスト
    --------------------------------------------------------------- */

    .list-spec {
        gap: 2.42vw;

        & li {
            padding: .7em 1em;
        }
    }


    /* SP 設備リスト
    --------------------------------------------------------------- */

    .list-facility {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.42vw;

        & li {
            padding: .7em 1em;
        }
    }


    /* SP サムネイルギャラリー
    --------------------------------------------------------------- */

    .photo-thumbnail {
        display: flex;
        flex-wrap: nowrap;
        width: max-content;

        & li {
            flex-shrink: 0;
        }

        & figure img {
            width: 24.15vw;
            min-width: 0;
            aspect-ratio: 1/1;
        }
    }


    /* SP モーダル用 ルーペアイコン
    --------------------------------------------------------------- */

    .js-image-modal {

        &::after {
            right: 1.45vw;
            bottom: 1.45vw;
            width: 2.90vw;
        }
    }


    /* SP JS - 上に戻る
    --------------------------------------------------------------- */

    .button-totop {
        right: 3.62vw;
        bottom: 3.62vw;
        width: 9.66vw;

        &::after {
            width: 1.4em;
        }
    }



}