@charset "UTF-8";
/* 各ページ */
:root {
    --main-font-color: #2b2b2b;
    --white-color: #fff;
    --accent-color: #8A3B2C;
    --yellow01: #D8CBB4;
    --yellow02: #A88B58;
    --yellow03: #b49f7a;
    --blown01: #4B4131;
    --container-narrow: 970px;
    --container-wide: 1210px;
    --container-padding: 16px;
    --trans: all .3s ease;
    --text-shadow: 0px 0px 20px rgba(58, 58, 58, 0.5);
}

html.is-fixed,
body.is-fixed {
    overflow: hidden;
}
/*--------------------------------
 TOP_MV_index.html
---------------------------------*/
.hero {
    height: 200vh;
    position: relative;
    z-index: 1;
}
.hero__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}
.hero-swiper,
.hero-swiper .swiper-slide {
    width: 100%;
    height: 100%;
}
.hero-swiper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Swiper設定 */
.hero-swiper {
    width: 100%;
    height: 100%;
}
.hero-swiper .swiper-slide {
    position: relative;
    background-size: cover;
    background-position: center;
}
.hero-swiper .swiper-slide-active img,
.hero-swiper .swiper-slide-duplicate-active img,
.hero-swiper .swiper-slide-prev img {
    display: block;
    transform-origin: center center;
    width: 100%;
    height: 100vh;
    object-fit: cover;
    animation: fvZoomOut 9.5s linear 0s normal both;
}
@keyframes fvZoomOut {
    0% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    background: rgba(0, 0, 0, 0.4);
    transition: none;
}
.line-title h2 {
    font-weight: 500;
    letter-spacing: 1.6px;
    text-shadow: var(--text-shadow);
}
.line-title p {
    font-size: 38px;
    font-weight: 600;
    letter-spacing: 1.9px;
    line-height: 1.2;
    z-index: 1;
    text-shadow: var(--text-shadow);
}
.hero-desc {
    position: absolute;
    /* sticky 内で位置固定 */
    bottom: 220px;
    left: 80px;
    z-index: 3;
}
.hero-text {
    position: absolute;
    top: 150px;
    right: 0;
    width: 50%;
    height: 190vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 1;
    transform: translateY(150px);
    z-index: 4;
    padding-right: 80px;
    color: var(--white-color);
    text-shadow: var(--text-shadow);
}
.hero-text p {
    margin-bottom: 17px;
}
.hero-text .en-text {
    margin-bottom: 79px;
    font-size: 18px;
}
.hero-text .jp-text .jp:nth-child(2) {
    margin-bottom: 21px;
}
.hero-text .jp-text .jp:last-child,
.hero-text .en-text p:last-child {
    margin-bottom: 0px;
}
/* スクロールダウンの位置 */
.scroll {
    position: relative;
    text-align: center;
    z-index: 6;
    bottom: 170px;
    text-shadow: var(--text-shadow);
}
.scroll>span {
    color: var(--white-color);
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
}
/* 矢印のアニメーション部分 */
.scroll::before {
    animation: scroll 2s infinite;
    border-bottom: 1px solid var(--white-color);
    border-left: 1px solid var(--white-color);
    content: "";
    height: 14px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 20px;
    width: 14px;
}
/* 矢印のアニメーション */
@keyframes scroll {
    0% {
        opacity: 0;
        transform: rotate(-45deg) translate(0, 0);
    }
    40% {
        opacity: 1;
    }
    80% {
        opacity: 0;
        transform: rotate(-45deg) translate(-12px, 12px);
    }
    100% {
        opacity: 0;
    }
}
.loader-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #fdfdf9;
    z-index: 9999;
    pointer-events: none;
}
/*--------------------------------
 TOP_News
---------------------------------*/
.t-news {
    margin: 180px 0;
}
.t-news .flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 2em;
}
.t-news .flex .heading-double {
    flex-shrink: 0;
}
.t-news-list {
    width: 100%;
    padding: 1.5em;
    background: var(--white-color);
}
.t-news-list dt {
    font-weight: 700;
    color: var(--blown01);
    margin-bottom: 0.5em;
}
.t-news-list dt:nth-child(n+2) {
    padding-top: 1.2em;
}
.t-news-list dd {
    padding-bottom: 1.2em;
    border-bottom: 1px solid var(--yellow01);
}
.t-news-list a {
    text-decoration: underline;
    transition: 0.3s;
    padding: 0 0.6em;
}
.t-news-list a:hover {
    opacity: 0.5;
}
.scroll-box {
    flex: 1;
    height: 400px;
    overflow: auto;
    background: #fff;
}
.scroll-box::-webkit-scrollbar {
    background: #fff;
    width: 9px;
    height: 9px;
    border-radius: 20px;
}
.scroll-box::-webkit-scrollbar-thumb {
    background-color: var(--yellow03);
    border-radius: 20px;
    transition: .3s;
}
.scroll-box::-webkit-scrollbar-thumb:hover {
    background-color: var(--yellow01);
}
.t-news .contents-area {
    width: 100%;
    display: flex;
    /* align-items: flex-start; */
    gap: 1em;
}
.t-news .calendar-area {
    flex-shrink: 0;
    width: 100%;
    max-width: 520px;
    height: 400px;
    /* background: var(--blown01); */
    aspect-ratio: 13 / 10;
}
.t-news .calendar-area iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
/*--------------------------------
 TOP_About
---------------------------------*/
.l-about-desc {
    position: relative;
}
.t-about {
    position: relative;
    padding: 50px 0;
    /* height: 200vh; */
    min-height: calc(6vw * 18);
}
.grid-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(20, 1fr);
    grid-auto-rows: 6vw;
    z-index: -1;
}
@media screen and (max-width: 1100px) {
    .grid-img {
        /* padding-top: 18vw; */
        top: 16%;
    }
    .t-about {
        min-height: calc(7vw * 18);
    }
}
.grid-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* 右上 */
.grid-img img:nth-child(1) {
    grid-column: 12 / 21;
    grid-row: 1 / 6;
}
/* 左上 */
.grid-img img:nth-child(2) {
    grid-column: 1 / 4;
    grid-row: 6 /10;
}
@media screen and (max-width: 1100px) {
    .grid-img img:nth-child(2) {
        grid-row: 7 /10;
    }
}
/* 右中 */
.grid-img img:nth-child(3) {
    grid-column: 13 / 17;
    grid-row: 8 /12;
}
/* 左中 */
.grid-img img:nth-child(4) {
    grid-column: 4 / 11;
    grid-row: 11 / 15;
}
/* 右下 */
.grid-img img:nth-child(5) {
    grid-column: 14 / 19;
    grid-row: 15 / 19;
}
/*--------------------------------
 TOP_Rooms
---------------------------------*/
.t-rooms .heading-double {
    width: 210px;
    margin: 0 auto;
    margin-bottom: 50px;
    ;
}
.t-rooms .text-set {
    text-align: center;
}
.t-rooms .btn-text-double {
    margin-inline: auto;
}
/* cards-swiper */
.cards-swiper-container {
    position: relative;
}
@media screen and (max-width: 1070px) {
    .cards-swiper-container {
        padding: 0 2%;
    }
}
.cards-swiper-container .btn02 {
    margin-inline: auto;
}
.cards-swiper {
    width: min(100%, 971px);
    margin-inline: auto;
}
.cards-swiper-btn .swiper-button-prev,
.cards-swiper-btn .swiper-button-next {
    height: 64px;
    width: 64px;
}
.cards-swiper-btn .swiper-button-prev::after,
.cards-swiper-btn .swiper-button-next::after {
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    width: 64px;
    height: 64px;
    margin: auto;
}
.cards-swiper-btn .swiper-button-prev::after {
    background-image: url(../common_image/icon-arrow-l.svg);
}
.cards-swiper-btn .swiper-button-next::after {
    background-image: url(../common_image/icon-arrow-r.svg);
}
.cards-swiper-btn .swiper-button-prev {
    left: -23px;
    top: 38%;
}
.cards-swiper-btn .swiper-button-next {
    right: -23px;
    top: 38%;
}
.cards-swiper .swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: -25px;
}
.above-img {
    position: relative;
    display: inline-block;
    margin-right: 20px;
}
.above-img img {
    max-width: 100%;
    vertical-align: top;
}
.above-img figcaption {
    position: absolute;
    left: 50px;
    bottom: 28px;
    font-size: 24px;
    color: #fff;
    font-weight: 700;
    letter-spacing: 2.4px;
    text-shadow: var(--text-shadow);
}
/*--------------------------------
 TOP_Service
---------------------------------*/
/* card */
.t-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 28px;
    grid-template-rows: auto auto;
}
.t-ignore {
    /* display: contents; */
}
.t-grid-container .t-ignore:nth-of-type(1) .t-card {
    margin-top: 150px;
}
.t-grid-container .t-ignore:nth-of-type(2) .t-card {
    margin-top: 69px;
}
.t-card {
    /* grid-row: span 2;
    display: grid;
    grid-template-rows: subgrid;
    gap: 18px; */
    display: flex;
    flex-direction: column;
    gap: 18px;
    /* 画像とテキストの間の余白 */
}
/* 画像ラッパー */
.t-card__img {
    /* overflow: hidden; */
    overflow: hidden;
    /* position: relative; */
    width: 100%;
}
/* 画像 */
.t-card__img img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 373 / 632;
    object-fit: cover;
    /* 比率を保ちつつ枠いっぱいに表示 */
    transition: transform 0.5s ease;
    transform-origin: center center;
}
@media (any-hover: hover) {
    .t-card:hover .t-card__img img {
        transform: scale(1.08);
    }
}
.t-card .c-line-title,
.t-card .other-title {
    position: relative;
}
.t-card .c-line-title::after,
.t-card .other-title::after {
    position: absolute;
    content: "";
    width: 50px;
    height: 50px;
    display: inline-block;
    background: url(../common_image/icon-arrow-r.svg)no-repeat;
    background-size: 50px 50px;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}
.t-card .other-title::after {
    width: 40px;
    height: 40px;
    background-size: 40px 40px;
}
.t-service .btn02 {
    margin-left: auto;
}
/*--------------------------------
 TOP_Gallery
---------------------------------*/
.lr-swiper .swiper-slide img {
    height: auto;
    width: 100%;
    max-width: 769px;
}
.lr-swiper figcaption {
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 30px;
    margin-top: 18px;
}
.lr-swiper figcaption::before {
    position: absolute;
    display: inline-block;
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: var(--accent-color);
}
.lr-swiper figcaption .jp {
    position: relative;
    padding-left: 60px;
}
.lr-swiper figcaption .jp::before {
    position: absolute;
    content: "";
    height: 1px;
    width: 28px;
    background: var(--main-font-color);
    top: 50%;
    left: 14px;
}
.t-gallery .btn02 {
    margin-inline: auto;
}
/*--------------------------------
 TOP_faq
---------------------------------*/
.t-faq {
    width: 100%;
    display: flex;
    align-items: center;
}
.img-big {
    width: calc(100% / 2);
    aspect-ratio: 366 / 221;
    position: relative;
    display: inline-block;
    overflow: hidden;
}
.img-big img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 366 / 221;
    transition: transform 0.5s ease, opacity 0.5s ease, filter 0.5s ease;
    transform: scale(1);
    opacity: 1;
    filter: brightness(100%) blur(0);
}
@media screen and (min-width: 600px) {
    .img-big:hover img {
        transform: scale(1.1);
        filter: brightness(60%) blur(4px);
    }
}
.img-big figcaption {
    color: var(--white-color);
    text-shadow: var(--text-shadow);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}
/*--------------------------------
 about.html
---------------------------------*/
.l-hero-about {
    background: url(../common_image/about/mv.webp) no-repeat;
    background-size: cover;
}
.l-about-desc {
    min-height: calc(5.5vw * 18);
    position: relative;
}
.l-about-desc-left {
    margin-bottom: 14vw;
}
.l-about-desc-left .en-text,
.l-about-desc-right .jp-text {
    width: 100%;
    max-width: 400px;
}
.l-about-desc-left .en-text p,
.l-about-desc-right .jp-text p {
    margin-bottom: 2em;
}
.l-about-desc-right .jp-text {
    margin-left: auto;
}
/* 右上 */
.grid-img.grid-img-about img:nth-child(1) {
    grid-column: 14 / 19;
    grid-row: 1 / 6;
}
/* 左上 */
.grid-img.grid-img-about img:nth-child(2) {
    grid-column: 2 / 9;
    grid-row: 7 /11;
}
/* 右中 */
.grid-img.grid-img-about img:nth-child(3) {
    grid-column: 15 / 19;
    grid-row: 11 /15;
}
/* 左下 */
.grid-img.grid-img-about img:nth-child(4) {
    grid-column: 6 / 11;
    grid-row: 13 / 16;
}
@media screen and (max-width: 1700px) {
    .grid-img.grid-img-about img:nth-child(3) {
        grid-row: 12 /16;
    }
    .grid-img.grid-img-about img:nth-child(4) {
        grid-row: 15 / 18;
    }
}
@media screen and (max-width: 1480px) {
    .grid-img.grid-img-about img:nth-child(2) {
        grid-row: 9 /13;
    }
    .grid-img.grid-img-about img:nth-child(3) {
        grid-row: 13 /17;
    }
    .l-about-desc-left {
        margin-bottom: 3vw;
    }
}
@media screen and (max-width: 1150px) {
    .l-about-desc {
        min-height: calc(6vw * 18);
    }
    .grid-img.grid-img-about img:nth-child(3) {
        grid-row: 14 /18;
    }
    .grid-img.grid-img-about img:nth-child(4) {
        grid-row: 16 / 19;
    }
}
@media screen and (max-width: 1100px) {
    .grid-img.grid-img-about {
        top: 8%;
    }
}
.l-about-company .btn02 {
    margin-left: auto;
}
/*--------------------------------
 facilities.html
---------------------------------*/
.l-hero-rooms-fac {
    background: url(../common_image/facilities/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 rooms/index.html
---------------------------------*/
.l-hero-rooms {
    background: url(../common_image/rooms/mv.webp) no-repeat;
    background-size: cover;
    background-position: bottom;
}
.l-rooms-desc .text-set {
    text-align: center;
}
.l-rooms-tax .c-table-column th:first-child,
.l-rooms-tax .c-table-column td:first-child {
    white-space: nowrap;
}
.l-rooms-tax .c-table-column {
    min-width: 630px;
}
.l-rooms-tax .c-ul-en li:last-child,
.l-rooms-tax .c-ul-jp li:last-child {
    margin-bottom: 1em;
}
.l-rooms-anchor .c-anchor-list {
    grid-template-columns: repeat(5, 1fr);
    justify-items: start;
}
.l-rooms-anchor .c-anchor-list li:nth-child(n+6) {
    grid-column: span 2;
}
.rooms-item {
    margin-bottom: 140px;
}
.rooms-item:last-child {
    margin-bottom: 0;
}
.rooms-swiper {
    position: relative;
    z-index: 0;
}
.rooms-swiper .swiper-slide img {
    width: 100%;
    aspect-ratio: 970 / 600;
    object-fit: cover;
}
.rooms-swiper .swiper-pagination-bullet {
    background: var(--white-color);
    width: 13px;
    height: 13px;
    opacity: 1;
}
.rooms-swiper .swiper-pagination-bullet-active {
    background: var(--yellow02) !important;
}
.rooms-swiper .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.rooms-swiper .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 0.5em;
}
.rooms-swiper .swiper-horizontal>.swiper-pagination-bullets,
.rooms-swiper .swiper-pagination-bullets.swiper-pagination-horizontal,
.rooms-swiper .swiper-pagination-custom,
.swiper-pagination-fraction {
    text-align: right;
    padding-right: 2em;
}
.rooms-swiper {
    position: relative;
}
.rooms-swiper::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 20%;
    background: linear-gradient(to top,
            rgba(0, 0, 0, 0.6),
            rgba(0, 0, 0, 0));
    pointer-events: none;
    z-index: 2;
}
.rooms-list {
    display: flex;
    width: 100%;
    align-items: center;
}
.rooms-list-item {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    width: 50%;
    padding: 1em 2.5em;
}
.rooms-list-item.en {
    border-right: 1px solid var(--yellow01);
}
.rooms-item .btn02 {
    margin-left: auto;
}
.text-set-atention .c-ul-en {
    margin-bottom: 1.2em;
}
.opening-hours.text-set p:first-child {
    margin-bottom: 0.2em;
}
.opening-hours {
    border-radius: 10px;
    color: var(--white-color);
    padding: 1em 1.5em;
    background: var(--yellow03);
    text-align: center;
}
/*--------------------------------
 rooms/部屋共通
---------------------------------*/
.thumbnail-main-swiper {
    margin-bottom: 20px;
    max-width: 100%;
    width: 100%;
}
.thumbnail-sub-swiper .swiper-slide {
    opacity: .5;
    transition: opacity .5s;
    /* サムネイルの数 */
    width: calc(100% / 5);
    cursor: pointer;
}
.thumbnail-sub-swiper .swiper-slide.swiper-slide-thumb-active {
    opacity: 1;
}
.single-content {
    margin-bottom: 140px;
}
.c-img-flex.floor-desc .img-area img {
    aspect-ratio: auto;
}
.c-img-flex.floor-desc .img-area a {
    position:relative;
    display:block;
}
/* ＋アイコン */
/* 背景の四角 */
.c-img-flex.floor-desc .img-area a::before{
    content:"";
    position:absolute;
    top:7px;
    right:7px;
    width:36px;
    height:36px;
    background:var(--accent-color);
    z-index:2;
    pointer-events:none;
}
/* ＋マーク */
.c-img-flex.floor-desc .img-area a::after{
    content:"";
    position:absolute;
    top:25px;
    right:25px;
    width:14px;
    height:14px;
    background:
        linear-gradient(
            var(--white-color),
            var(--white-color)
        ) center / 2px 14px no-repeat,
        linear-gradient(
            var(--white-color),
            var(--white-color)
        ) center / 14px 2px no-repeat;
    z-index:3;
    pointer-events:none;
    transform:translate(50%,-50%);
}
/* 切り替え */
.room-switch {
    flex-shrink: 0;
}
.room-tab{
    display:flex;
    justify-content:center;
    gap:30px;
    margin-top:15px;
}
.room-tab button{
    background:none;
    border:none;
    padding:0;
    font-size:16px;
    cursor:pointer;
    position:relative;
    color: var(--main-font-color);
}
.room-tab button::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0px;
    width:0;
    height:1px;
    background:var(--main-font-color);
    transition:.3s;
}
.room-tab button.is-active::after{
    width:100%;
}

.floor-desc .text-set {
    text-align: center;
    padding: 0 7%;
}
.btn-flex {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
}
.btn-flex .btn-icon {
    margin-top: 0;
    margin: 0;
    width: 330px;
}
.l-reserve-area .btn02-red {
    margin-right: auto;
}
.l-rooms-other .t-grid-container {
    grid-template-columns: repeat(4, 1fr);
    column-gap: 1em;
}
.l-rooms-other .t-grid-container .t-ignore:nth-of-type(1) .t-card,
.l-rooms-other .t-grid-container .t-ignore:nth-of-type(2) .t-card {
    margin-top: 0;
}
.l-rooms-other .t-card__img img {
    aspect-ratio: 4 / 3;
}

/*--------------------------------
 modal
---------------------------------*/

/* モーダルと背景の指定 */
.modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 40px 20px;
    background: rgba(0, 0, 0, 50%);
    overflow-y: auto;
    box-sizing: border-box;
    opacity: 0;
    visibility: hidden;
    transition: .3s;
    z-index: 999;
}
.modal.is-active {
    opacity: 1;
    visibility: visible;
}
.modal-container {
    background: #fff;
    border-radius: 4px;
    padding: 2rem;
    position: relative;
    max-width: 570px;
    width: 100%;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.10);
}

/* モーダルを閉じるボタンの指定 */
.modal-close {
    position: absolute;
    top: 1rem;
    right: 1.2rem;
    width: 40px;
    height: 40px;
    background: #000;
    border-radius: 50%;
    cursor: pointer;
    transition: background .2s;
}
.modal-close:hover {
    background: #333;
}
.modal-close::before,
.modal-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    background: #fff;
}
.modal-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.modal-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* ===== Calendar ===== */
.room-calendar {
    font-family: 'Noto Serif JP', serif;
}
/* Title */
.cal-title {
    text-align: center;
    margin-bottom: 1rem;
}
.cal-title h3 {
    font-weight: 700;
    font-size: 1.35rem;
    letter-spacing: 0.06em;
    margin: 0 0 0.2rem;
}
.cal-title p {
    font-size: 0.72rem;
    /* font-weight: 300; */
    margin: 0;
    letter-spacing: 0.12em;
}
/* Navigation row */
.cal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
/* ボタンリセット */
.cal-arrow {
    background: none;
    border: none;
    padding: 0.4rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* 画像サイズ */
.cal-arrow img {
    width: 16px;
    height: 16px;
    display: block;
}
/* 左矢印（反転） */
.cal-arrow.prev img {
    transform: rotate(180deg);
}
.cal-month-label {
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.06em;
    color: #1a1a1a;
}
/* Grid */
.cal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}
/* Day-of-week headers */
.cal-dow {
    text-align: center;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    padding: 0.1rem 0;
}
/* Each day cell */
.cal-cell {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #F4F4F4;
    border-radius: 2px;
    gap: 0.5em;
}
.cal-cell.is-vacancy {
    cursor: pointer;
}
.cal-cell.empty {
    background: transparent;
    background: #F4F4F4;
}
.cal-cell.high-season {
    background: #fce9e9;
}
/* Date number */
.cal-date {
    font-size: 0.88rem;
    font-weight: 400;
    line-height: 1;
    color: #2c2c2c;
}
/* .cal-cell.no-vacancy .cal-date {
    color: #bbb;
    opacity: 0.6;
} */
.cal-cell.no-vacancy {
    color: #bbb;
    opacity: 0.4;
}
/* Status icons */
.cal-status {
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cal-cell.is-vacancy {
    color: #ff6a00;
}
.cal-cell.is-temp {
    color: #99cc99;
}
.cal-cell.is-phone {
    color: #2e7d32;
}
.cal-cell.is-limited {
    color: #99cc99;
}
.cal-remaining {
    color: #000;
    font-size: 0.7rem;
    margin-top: -1em;
}
/* Legend */
.legend-main {
    display: flex;
    gap: 1.2rem;
    flex-wrap: nowrap;
}
.cal-legend {
    margin-top: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.legend-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.7rem;
    font-weight: 300;
    letter-spacing: 0.04em;
}
.legend-icon {
    width: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.legend-icon a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
}
.legend-icon .icon-vacancy {
    width: 10px;
    height: 10px;
}
.legend-icon .icon-temp {
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 10px solid #999;
}
.legend-swatch {
    width: 14px;
    height: 14px;
    background: #fce9e9;
    border-radius: 2px;
    flex-shrink: 0;
}
/*--------------------------------
 rooms/bamboo.html
---------------------------------*/
.l-hero-rooms-bamboo {
    background: url(../common_image/room_bamboo/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 rooms/sakura.html
---------------------------------*/
.l-hero-rooms-sakura {
    background: url(../common_image/room_sakura/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 rooms/sarubobo.html
---------------------------------*/
.l-hero-rooms-sarubobo {
    background: url(../common_image/room_sarubobo/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 rooms/asaichi.html
---------------------------------*/
.l-hero-rooms-asaichi {
    background: url(../common_image/room_asaichi/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 rooms/jinya.html
---------------------------------*/
.l-hero-rooms-jinya {
    background: url(../common_image/room_jinya/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 service.html
---------------------------------*/
.l-hero-service {
    background: url(../common_image/service/mv.webp) no-repeat;
    background-size: cover;
}
.l-service-desc {
    min-height: calc(3.3vw * 18);
}
.l-service-desc .line-title {
    color: var(--main-font-color);
    width: 100%;
    max-width: 670px;
    align-items: flex-end;
    margin-bottom: 7vw;
}
.l-service-desc .line-title h2,
.l-service-desc .line-title p {
    text-shadow: none;
}
.l-service-desc .line-title h2::before {
    background: var(--main-font-color);
}
.l-service-desc .l-about-desc-left .en-text,
.l-service-desc .l-about-desc-right .jp-text {
    width: 100%;
    max-width: 600px;
}
.l-service-desc .l-about-desc-left .en-text {
    max-width: 690px;
}
.grid-img.grid-img-service img:nth-child(1) {
    grid-column: 16 / 20;
    grid-row: 1 / 5;
}
.grid-img.grid-img-service img:nth-child(2) {
    grid-column: 1 / 8;
    grid-row: 6 /10;
}
.l-service-desc-left {
    margin-bottom: 7vw;
}
@media screen and (max-width: 1100px) {
    .grid-img.grid-img-service img:nth-child(2) {
        grid-column: 1 / 7;
        grid-row: 7 /11;
    }
    .l-service-desc .l-about-desc-left .en-text,
    .l-service-desc .l-about-desc-right .jp-text {
        max-width: 500px;
    }
}
/* CSS無限スライダー */
.inf-slider-container {
    overflow: hidden;
    width: 100%;
    padding: 20px 0 140px 0;
}
.inf-slider-track {
    display: flex;
    width: fit-content;
    /* 30sは速度です。数字を小さくすると速くなり、大きくすると遅くなります */
    animation: infinity-scroll 40s linear infinite;
}
.inf-slider-inner {
    display: flex;
}
.inf-slide {
    width: 400px;
    margin-right: 30px;
}
.inf-slide img {
    width: 100%;
    display: block;
    height: auto;
}
@keyframes infinity-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}
.service-flex {
    flex-direction: row-reverse;
    justify-content: space-between;
}
.service-flex .img-area {
    width: 40%;
    max-width: 500px;
}
.service-flex .img-area img {
    object-fit: cover;
}
.bicycle-flex {
    justify-content: space-between;
    gap: 2em;
}
.bicycle-video {
    width: 50%;
}
.l-service article {
    margin: 100px 0;
}
.foodstrolling-banner {
    display: block;
    text-align: center;
}
.foodstrolling-banner .c-banner {
    width: 100%;
    max-width: 250px;
    height: auto;
}
.rickshawtour-accordion .accordion-a {
    margin-left: 1.2em;
}
/* .rickshawtour-accordion .text-set {
    margin-bottom: 2em;
} */
.rickshawtour-accordion .accordion-flex {
    margin-top: 2em;
}
.rickshawtour-figure {
    position: relative;
    display: inline-block;
}
.rickshawtour-figure img {
    width: 100%;
    vertical-align: top;
}
.rickshawtour-figure figcaption {
    position: absolute;
    right: 0;
    top: 0;
    padding: 0.3em 1.5em;
    color: var(--white-color);
    background: var(--accent-color);
    font-size: 110%;
    font-weight: 700;
}
.accordion-flex {
    gap: 1em;
}
.text-set02 .en-area p,
.text-set02 .jp-area p {
    margin-bottom: 0.8em;
}
.text-set02 .en-area {
    margin-bottom: 2em;
}
.rickshawtour-flex,
.morningtour-flex,
.morningtour-benefits-flex {
    display: flex;
    gap: 2em;
}
.rickishawtour-video {
    width: 50%;
}
#morningtour .c-img-flex .text-set {
    width: 60%;
}
.morningtour-benefits-flex .dot-list,
.morningtour-benefits-flex .benefits-img {
    width: 50%;
}
.morningtour-benefits-flex .benefits-img img {
    width: 100%;
    max-width: 400px;
}
.morningtour-img {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.morningtour-img img {
    position: absolute;
    top: 0;
    left: 0;
    /* width: 100%;
    height: 100%; */
    object-fit: cover;
    opacity: 0;
    animation: fade-animation-4 16s infinite;
}
.morningtour-img img:nth-child(1) {
    animation-delay: 0s;
}
.morningtour-img img:nth-child(2) {
    animation-delay: 4s;
}
.morningtour-img img:nth-child(3) {
    animation-delay: 8s;
}
.morningtour-img img:nth-child(4) {
    animation-delay: 12s;
}
/* フェードアニメーションの中身 */
@keyframes fade-animation-4 {
    0% {
        opacity: 0;
    }
    5% {
        opacity: 1;
        /* ふわっと表示完了 */
    }
    25% {
        opacity: 1;
        /* 次の画像が来るまで表示を維持 */
    }
    30% {
        opacity: 0;
        /* 次の画像と重なりながら消える */
    }
    100% {
        opacity: 0;
    }
}
/*--------------------------------
 access.html
---------------------------------*/
.l-hero-access {
    background: url(../common_image/access/mv.webp) no-repeat;
    background-size: cover;
}
.map iframe {
    width: 100%;
    height: 400px;
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
}
.l-access-map .c-img-flex {
    flex-direction: row-reverse;
    justify-content: center;
    gap: 6em;
}
.l-access-map .c-img-flex .img-area img {
    aspect-ratio: auto;
    width: 100%;
    max-width: 380px;
}
.l-access-map .text-icon {
    text-decoration: underline;
}
.l-access-map .text-icon::before {
    width: 19px;
    height: 19px;
}
.l-access-map .text-icon.map::before {
    filter: invert(35%) sepia(14%) saturate(12%) hue-rotate(2deg) brightness(99%) contrast(85%);
}
.l-access-map .c-dllist dt {
    font-size: 1.1em;
}
.l-access-map .c-dllist dd {
    margin-bottom: 0;
}
.l-access-map .c-dllist dd:first-of-type {
    margin-bottom: 3em;
}
/* .text-set .c-circle-list:first-child {
    margin-bottom: 40px;
} */
.l-lightbox-access {
    text-align: center;
    margin-bottom: 50px;
    flex: 1;
}
.l-lightbox-access img {
    width: 100%;
    max-width: 520px;
    height: auto;
}
.l-access-jr .c-img-flex .text-set {
    width: 50%;
}
.l-access-car .l-lightbox-access.car-map img,
.l-access-train .l-lightbox-access.car-map img,
.l-access-bus .l-lightbox-access.car-map img {
    max-width: 970px;
}
.l-access-car article {
    margin: 100px 0;
}
#parking .btn-icon {
    width: 380px;
}
/*--------------------------------
 faq.html
---------------------------------*/
.l-hero-faq {
    background: url(../common_image/faq/mv.webp) no-repeat;
    background-size: cover;
}
.accordion-a-content.enarea {
    border-bottom: 1px solid var(--yellow01);
    padding-bottom: 2.5em;
}
.accordion-a-content.jparea {
    padding-top: 2.5em;
}
.accordion-a-content.jparea .accordion-question {
    font-size: 0.9em;
}
.accordion-a-content.enarea .accordion-question {
    font-size: 1.13em;
}
.l-main-faq .accordion-a-content {
    display: flex;
    gap: 0.5em;
}
.l-main-faq .accordion-a-prefix {
    flex-shrink: 0;
    font-weight: 700;
    font-size: 1em;
    margin-top: -0.2em;
}
.l-main-faq .accordion-a-body {
    flex: 1;
}
.l-main-faq .accordion-a-text {
    flex: 1;
}
.l-main-faq .accordion-question {
    font-weight: 700;
    margin-bottom: 0.5em;
}
/* .l-main-faq .accordion-answer {
    line-height: 1.8;
} */
.l-main-faq .c-ul-dot {
    padding-top: 1em;
}
.l-main-faq .accordion:nth-child(n + 2) {
    border-top: none;
}
/*--------------------------------
 policy.html
---------------------------------*/
.l-hero-policy {
    background: url(../common_image/policy/mv.webp) no-repeat;
    background-size: cover;
}
.l-main-policy-english .container_narrow {
    border-bottom: 1px solid var(--yellow01);
}
.policy-desc {
    margin-bottom: 4em;
}
.policy-heading {
    position: relative;
    font-size: 22px;
    font-weight: 700;
    padding: .2em 0em .2em 1.1em;
    margin-bottom: 18px;
}
.policy-heading::before {
    position: absolute;
    content: "";
    left: 0%;
    top: 50%;
    transform: translateY(-50%);
    width: .23em;
    height: 50%;
    background: var(--yellow02);
}
.l-main-policy-english article,
.l-main-policy-japanese article {
    margin-bottom: 55px;
}
.l-main-policy-english article .c-ul-dot,
.l-main-policy-english article .c-circle-list,
.l-main-policy-japanese article .c-ul-dot,
.l-main-policy-japanese article .c-circle-list {
    padding-top: 2em;
}
/*--------------------------------
 404.html
---------------------------------*/
.l-hero-notfound {
    background: url(../common_image/common/mv.webp) no-repeat;
    background-size: cover;
}
/*--------------------------------
 contact.html
---------------------------------*/
.l-contact-desc {
    text-align: center;
}
.form .form__title {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 2em;
    width: 100%;
    font-weight: 700;
}
.form .form__require {
    font-size: 12px;
    font-weight: 500;
    color: var(--white-color);
    background: var(--accent-color);
    padding: 0.6em 0.9em;
    line-height: 1;
}
.form .us-name {
    margin-right: 0.8em;
}
.form .form__item {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding: 0 0 55px;
    column-gap: 25px;
    gap: 0.8em;
}
.form .form__text {
    width: 100%;
    display: inline-block;
    padding: 20px 20px;
    border: 1px solid var(--yellow01);
    border-radius: 5px;
}
.form .narrow,
.form input {
    width: 100%;
}
::placeholder {
    letter-spacing: 0.05em;
    font-family: "Noto Serif JP", serif;
}
/* 旧Edge対応 */
::-ms-input-placeholder {
    letter-spacing: 0.05em;
    font-family: "Noto Serif JP", serif;
}
.form .form__textarea {
    display: inline-block;
    padding: 20px 20px;
    width: 100%;
    height: 200px;
    border: 1px solid var(--yellow01);
    border-radius: 5px;
}
.form textarea {
    font-size: 100%;
}
.form .ninsho_area {
    width: 100%;
}
.form .ninsho_area .ninsho_gazo {
    width: 100%;
    display: inline-block;
    padding: 20px 20px;
    border: 1px solid var(--yellow01);
    margin-top: 10px;
    border-radius: 5px;
}
.form .ninsho_area .ninsho_text {
    margin-top: 10px;
}
.agree_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5em;
    padding-bottom: 55px;
}
.agree_btn_label {
    cursor: pointer;
}
.agree_btn_text {
    display: flex;
    flex-direction: column;
}
.agree_btn input {
    width: auto;
}
input,
textarea {
    transition: all 0.3s ease;
}
input[type="checkbox"] {
    appearance: none;
    width: 27px;
    height: 27px;
    border: 1px solid var(--main-font-color);
    border-radius: 5px;
    background-color: #fff;
    cursor: pointer;
    margin-right: 0.5em;
    transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
    aspect-ratio: 1 / 1;
}
/* チェック時のスタイル */
input[type="checkbox"]:checked {
    background-color: var(--main-font-color);
    border-color: var(--main-font-color);
    position: relative;
}
/* チェック時のアイコンを表示 */
input[type="checkbox"]:checked::before {
    content: "✔";
    color: #fff;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 0;
}
input:focus,
textarea:focus {
    outline: none;
    box-shadow: 0px 0px 5px 0px var(--yellow01);
}
.form__btn {
    margin: 0 auto;
}
.submit-btn[disabled] {
    background-color: #ccc;
    cursor: default;
    border: none;
    color: var(--white-color);
}
.submit-btn:disabled:hover {
    opacity: 1;
}
.submit-btn:disabled:hover:after {
    right: 8%;
    width: 40px;
}
.btn02 button{
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    color: var(--main-font-color);
    font-weight: 700;
    font-size: 16px;
    text-transform: uppercase;
    line-height: 1.88;
    padding: 20px 32px;
    background: var(--white-color);
    border: 1px solid rgba(43, 43, 43, 0.65);
    border-radius: 3px;
    width: 100%;
    transition: var(--trans);
    cursor: pointer;
}
@media (hover: hover) and (pointer: fine) {
    .btn02 button:not(:disabled):hover {
        color: var(--white-color);
        background: rgba(43, 43, 43, 0.8);
        border: 1px solid rgba(43, 43, 43, 0.8);
    }
    .btn02 button:not(:disabled):hover .btn02-arrow {
        filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(282deg) brightness(104%) contrast(102%);
        right: 36px;
    }
}
.btn-text-double button {
    color: var(--white-color);
    background: var(--accent-color);
    border: 1px solid var(--accent-color);
}
.btn-text-double button span:first-child {
    text-transform: capitalize;
    font-size: 16px;
    letter-spacing: 1.6px;
}
/*--------------------------------
 gallery.html
---------------------------------*/
.l-hero-gallery {
    background: url(../common_image/gallery/mv.webp) no-repeat;
    background-size: cover;
}
.l-gallery .text-set {
    margin-bottom: 40px;
}
.insta-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    align-self:start;
}
.insta-item{
    min-width:0;
}
.insta-item dt{
    margin-bottom:10px;
    font-weight:bold;
}
.insta-item dd{
    margin:0;
}
.insta-embed{
    overflow:hidden;
}
.instagram-media{
    min-width:auto !important;
    width:100% !important;
    margin:0 !important;
}
