@charset "UTF-8";

/*=======================
Base / Common
=======================*/
.breadcrumbs__list {
    margin-top: 0;
}
.l-main {
    --bkn-color-primary: #0d294b;
    --bkn-color-accent: #074b9f;
    --bkn-color-accent-40: rgba(7, 75, 159, 0.4);
    width: auto;
    background: #fafafa;
    padding: 0;
    margin: 0;
    overflow: hidden;
}
    .l-main .section__wrap--property,
    .l-main .section__wrap--contact-cta,
    .l-main .section__wrap--staff,
    .l-main .section__wrap--feature,
    .l-main .section__wrap--point,
    .l-main .section__wrap--rooms,
    .l-main .section__wrap--promo,
    .l-main .section__wrap--overview,
    .l-main .section__wrap--location,
    .l-main .section__wrap--facility,
    .l-main .section__wrap--nearby,
    .l-main .section__wrap--property *,
    .l-main .section__wrap--contact-cta *,
    .l-main .section__wrap--staff *,
    .l-main .section__wrap--feature *,
    .l-main .section__wrap--point *,
    .l-main .section__wrap--rooms *,
    .l-main .section__wrap--promo *,
    .l-main .section__wrap--overview *,
    .l-main .section__wrap--location *,
    .l-main .section__wrap--facility *,
    .l-main .section__wrap--nearby * {
        font-family: "Noto Sans JP", sans-serif;
        box-sizing: border-box;
    }
    .l-main .section__inner--property,
    .l-main .section__inner--contact-cta,
    .l-main .section__inner--staff,
    .l-main .section__inner--feature,
    .l-main .section__inner--point,
    .l-main .section__inner--rooms,
    .l-main .section__inner--overview,
    .l-main .section__inner--location,
    .l-main .section__inner--facility,
    .l-main .section__inner--nearby {
        width: 1140px;
        margin: 0 auto;
    }
    .l-main .section__ttl--feature,
    .l-main .section__ttl--point,
    .l-main .section__ttl--overview,
    .l-main .section__ttl--location,
    .l-main .section__ttl--facility,
    .l-main .section__ttl--nearby {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 6px;
        width: 100%;
        margin: 0;
        padding-bottom: 8px;
        border-bottom: 1px solid var(--bkn-color-accent);
        font-size: 24px;
        font-weight: 700;
        line-height: 1;
        letter-spacing: 0;
        color: var(--bkn-color-primary);
    }
        .l-main .section__en-ttl--feature,
        .l-main .section__en-ttl--point,
        .l-main .section__en-ttl--overview,
        .l-main .section__en-ttl--location,
        .l-main .section__en-ttl--facility,
        .l-main .section__en-ttl--nearby {
            font-family: "Roboto", sans-serif;
            font-size: 16px;
            font-weight: 400;
            line-height: 1;
            letter-spacing: 0;
            color: var(--bkn-color-primary);
        }
    /* リップルホバー（物件詳細オリジナルボタン共通） */
    .l-main .summary__print,
    .l-main .summary__fav,
    .l-main .gallery__nav,
    .l-main .contact-cta__btn,
    .l-main .point__item,
    .l-main .rooms__btn {
        position: relative;
        z-index: 1;
        overflow: hidden;
        transition-duration: 0.4s;
    }
        .l-main .summary__print::after,
        .l-main .summary__fav::after,
        .l-main .gallery__nav::after,
        .l-main .contact-cta__btn::after,
        .l-main .point__item::after,
        .l-main .rooms__btn::after {
            content: "";
            position: absolute;
            top: 50%;
            left: 50%;
            z-index: -1;
            display: block;
            width: 100%;
            height: 0;
            padding-top: 100%;
            border-radius: 50%;
            background-color: var(--btn-ripple);
            opacity: 0;
            transform: translate(-50%, -50%) scale(0.1);
            transition: opacity 0.5s, transform 0s;
            transition-delay: 0s, 0.4s;
            pointer-events: none;
        }
        .l-main .summary__print:hover,
        .l-main .summary__fav:hover,
        .l-main .gallery__nav:hover,
        .l-main .contact-cta__btn:hover,
        .l-main .point__item:hover,
        .l-main .rooms__btn:hover {
            opacity: 1;
        }
        .l-main .summary__print:hover::after,
        .l-main .summary__fav:hover::after,
        .l-main .gallery__nav:hover::after,
        .l-main .contact-cta__btn:hover::after,
        .l-main .point__item:hover::after,
        .l-main .rooms__btn:hover::after {
            opacity: 1;
            transform: translate(-50%, -50%) scale(3);
            transition: opacity 0.8s, transform 0.6s ease-in-out;
            transition-delay: 0s;
        }

/*=======================
Property（Summary + Gallery + Info）
=======================*/
.section__wrap--property {
    position: relative;
    padding: 10px 0 70px;
}
    .section__inner--property {
        position: relative;
        z-index: 1;
    }
    .property__head {
        display: flex;
        align-items: center;
        gap: 6px;
        width: 100%;
        margin-bottom: 12px;
    }
        .summary__tag {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            height: 24px;
            margin: 0;
            padding: 0 12px;
            border-radius: 9999px;
            background: #ff8000;
            font-family: "Roboto", sans-serif;
            font-size: 16px;
            font-weight: 600;
            line-height: 1;
            letter-spacing: 0;
            color: #fff;
        }
        .summary__name {
            flex: 1;
            min-width: 0;
            margin: 0;
            font-size: 30px;
            font-weight: 700;
            line-height: 1.2;
            letter-spacing: 0;
            color: #20242a;
        }
        .summary__print,
        .summary__fav {
            --btn-ripple: var(--bkn-color-accent);
            --btn-hover-text: #fff;
            --btn-icn: var(--bkn-color-primary);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            flex-shrink: 0;
            height: 40px;
            padding: 0 20px;
            border: 1px solid #f2f2f2;
            border-radius: 9999px;
            background: #fff;
            cursor: pointer;
        }
        .summary__fav {
            --btn-ripple: #de061f;
        }
        .summary__print:hover,
        .summary__fav:hover {
            border-color: var(--bkn-color-accent);
        }
        .summary__fav:hover {
            border-color: #de061f;
        }
            .summary__print-icn,
            .summary__fav-off,
            .summary__fav-on {
                position: relative;
                z-index: 1;
                display: block;
                flex-shrink: 0;
                background-color: currentColor;
                color: var(--btn-icn);
                transition: color 0.4s;
                -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
                -webkit-mask-position: center;
                mask-position: center;
                -webkit-mask-size: contain;
                mask-size: contain;
            }
            .summary__print-icn {
                width: 19px;
                height: 22px;
                -webkit-mask-image: url("/images/top/bkn/icon_printing.svg");
                mask-image: url("/images/top/bkn/icon_printing.svg");
            }
            .summary__fav-off,
            .summary__fav-on {
                width: 26px;
                height: 26px;
            }
            .summary__fav-off {
                color: #de061f;
                -webkit-mask-image: url("/images/top/bkn/icon_favorite.svg");
                mask-image: url("/images/top/bkn/icon_favorite.svg");
            }
            .summary__fav-on {
                display: none;
                color: #de061f;
                -webkit-mask-image: url("/images/top/bkn/icon_favorite_on.svg");
                mask-image: url("/images/top/bkn/icon_favorite_on.svg");
            }
            .summary__fav.is-checked .summary__fav-off {
                display: none;
            }
            .summary__fav.is-checked .summary__fav-on {
                display: block;
            }
            .summary__print:hover .summary__print-icn,
            .summary__fav:hover .summary__fav-off,
            .summary__fav:hover .summary__fav-on {
                color: var(--btn-hover-text);
            }
            .summary__print-txt,
            .summary__fav-txt {
                position: relative;
                z-index: 1;
                font-size: 16px;
                font-weight: 400;
                line-height: 1;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
                transition: color 0.4s;
            }
            .summary__print:hover .summary__print-txt,
            .summary__fav:hover .summary__fav-txt {
                color: var(--btn-hover-text);
            }
    .property__content {
        display: flex;
        gap: 30px;
        align-items: flex-start;
    }
    .property__whale {
        position: absolute;
        top: 423px;
        left: 50%;
        margin-left: 407px;
        z-index: 1;
        width: 201px;
        height: 130px;
        pointer-events: none;
    }

/*=======================
Gallery（Figma見た目 + 標準PC広域モーダル用 image.phtml）
=======================*/
.section__wrap--gallery {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 495px;
    flex-shrink: 0;
}
    .gallery__main {
        width: 495px;
        overflow: hidden;
        border-radius: 12px;
    }
        .gallery__main-fig {
            position: relative;
            width: 495px;
            height: 330px;
            margin: 0;
        }
            .gallery__main-link {
                display: block;
                width: 100%;
                height: 100%;
                cursor: pointer;
            }
            .gallery__main-fig img {
                display: block;
                width: 495px;
                height: 330px;
                object-fit: cover;
                border-radius: 12px;
            }
            .gallery__label {
                position: absolute;
                left: 0;
                bottom: 0;
                width: 100%;
                min-height: 30px;
                padding: 7px 12px;
                border-radius: 0 0 12px 12px;
                background: rgba(0, 195, 206, 0.7);
                font-size: 16px;
                font-weight: 500;
                line-height: 1;
                letter-spacing: 0;
                color: #fff;
                pointer-events: none;
            }
    .gallery__thumbs {
        width: 495px;
        overflow: hidden;
    }
    .gallery__thumbs.is-thumbs-center .swiper-wrapper,
    .gallery__thumbs.swiper-lock .swiper-wrapper {
        justify-content: center;
        transform: translate3d(0, 0, 0) !important;
    }
        .gallery__thumbs-list {
            margin: 0;
            padding: 0;
            list-style: none;
        }
            .gallery__thumb {
                width: 66px;
                height: 44px;
                box-sizing: border-box;
                overflow: hidden;
                border-radius: 4px;
            }
                .gallery__thumb-fig {
                    margin: 0;
                    width: 66px;
                    height: 44px;
                }
                    .gallery__thumb-fig img {
                        display: block;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                    }
            .gallery__thumbs .is-active {
                position: relative;
                border: 2px solid var(--bkn-color-accent);
            }
                .gallery__thumbs .is-active::after {
                    content: "";
                    position: absolute;
                    inset: 0;
                    background: var(--bkn-color-accent-40);
                    pointer-events: none;
                }
    .gallery__indicator {
        display: flex;
        align-items: center;
        gap: 20px;
    }
        .gallery__nav {
            --btn-ripple: var(--bkn-color-accent);
            --btn-hover-text: #fff;
            --btn-icn: var(--bkn-color-accent);
            display: flex;
            align-items: center;
            justify-content: center;
            width: 48px;
            height: 24px;
            margin: 0;
            padding: 0;
            border: none;
            border-radius: 9999px;
            background: #e4fdff;
            box-shadow: 3px 3px 2px 0 rgba(0, 0, 0, 0.1);
            cursor: pointer;
        }
            .gallery__nav-icn {
                position: relative;
                z-index: 1;
                display: block;
                width: 48px;
                height: 24px;
                background-color: currentColor;
                color: var(--btn-icn);
                transition: color 0.4s;
                -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
                -webkit-mask-position: center;
                mask-position: center;
                -webkit-mask-size: contain;
                mask-size: contain;
            }
            .gallery__nav-icn--prev {
                -webkit-mask-image: url("/images/top/bkn/icon_gallery-prev.svg");
                mask-image: url("/images/top/bkn/icon_gallery-prev.svg");
            }
            .gallery__nav-icn--next {
                -webkit-mask-image: url("/images/top/bkn/icon_gallery-next.svg");
                mask-image: url("/images/top/bkn/icon_gallery-next.svg");
            }
            .gallery__nav:hover .gallery__nav-icn {
                color: var(--btn-hover-text);
            }
    .js-gallery.is-noslide .gallery__thumbs,
    .js-gallery.is-noslide .gallery__indicator {
        display: none;
    }
        .gallery__count {
            display: flex;
            align-items: center;
            gap: 2px;
            margin: 0;
            font-family: "Roboto", sans-serif;
            font-size: 20px;
            font-weight: 700;
            line-height: 1;
            letter-spacing: 0;
            color: var(--bkn-color-primary);
        }
            .gallery__count-current {
                font-family: "Roboto", sans-serif;
                color: var(--bkn-color-accent);
            }
            .gallery__count-sep,
            .gallery__count-total {
                font-family: "Roboto", sans-serif;
                color: var(--bkn-color-primary);
            }

/* 標準PC image.phtml：通常は非表示、is-wide-screen 時のみ広域モーダル表示（見た目は detail.css に委譲） */
.gallery-system:not(:has(.is-wide-screen)) {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
    pointer-events: none;
}
.gallery-system:has(.is-wide-screen) {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
    pointer-events: auto;
}
    /* ページ内スペーサー不要（モーダル専用のため） */
    .gallery-system .gallery.is-wide-screen:before {
        display: none;
    }
    /* Figma用 .gallery__* と干渉しないよう、標準モーダルの z-index を担保 */
    .gallery-system #js-gallery.is-wide-screen {
        z-index: 10;
    }

/*=======================
Info
=======================*/
.section__wrap--info {
    flex: 1;
    min-width: 0;
    width: 615px;
}
    .info__summary {
        display: flex;
        align-items: flex-end;
        gap: 20px;
        margin-bottom: 12px;
    }
        .summary__price {
            display: flex;
            align-items: flex-end;
            flex-wrap: wrap;
            gap: 4px;
            margin: 0;
        }
            .summary__price-num .price {
                font-family: "Roboto", sans-serif;
                font-size: 36px;
                font-weight: 600;
                line-height: 1;
                letter-spacing: 0;
                color: #de061f;
                margin-right: 5px;
            }
            .summary__price-num {
                font-size: 16px;
                font-weight: 600;
                line-height: 1.8;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
            .summary__price-note {
                font-size: 16px;
                font-weight: 400;
                line-height: 1.8;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
        .summary__costs {
            display: flex;
            gap: 10px;
        }
            .summary__cost {
                display: flex;
                align-items: center;
                gap: 6px;
                margin: 0;
            }
                .summary__cost-label {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 26px;
                    height: 26px;
                    border-radius: 9999px;
                    background: #00c3ce;
                    font-size: 16px;
                    font-weight: 500;
                    line-height: 1;
                    letter-spacing: 0;
                    color: #fff;
                    text-align: center;
                }
                .summary__cost-txt {
                    font-size: 16px;
                    font-weight: 400;
                    line-height: 1;
                    letter-spacing: 0;
                    color: var(--bkn-color-primary);
                }
        .info__room {
            padding-bottom: 20px;
            border-bottom: 1px solid #e3e3e3;
        }
            .info__ttl {
                margin: 0 0 9px;
                font-size: 16px;
                font-weight: 700;
                line-height: 1;
                letter-spacing: 0;
                color: var(--bkn-color-accent);
            }
            .info__grid {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 10px 8px;
                margin: 0;
            }
                .info__item {
                    padding-left: 11px;
                    position: relative;
                }
                    .info__item::before {
                        content: "";
                        position: absolute;
                        top: 6px;
                        left: 0;
                        width: 5px;
                        height: 5px;
                        border-radius: 50%;
                        background: #00c3ce;
                    }
                    .info__label {
                        margin: 0 0 6px;
                        font-size: 16px;
                        font-weight: 400;
                        line-height: 1;
                        letter-spacing: 0;
                        color: var(--bkn-color-primary);
                    }
                    .info__txt {
                        margin: 0;
                        font-size: 16px;
                        font-weight: 400;
                        line-height: 1;
                        letter-spacing: 0;
                        color: var(--bkn-color-primary);
                    }
        .info__block {
            margin: 0;
            padding: 16px 0 14px;
            border-bottom: 1px solid #e3e3e3;
        }
            .info__block .info__ttl {
                margin-bottom: 10px;
            }
            .info__address,
            .info__address a {
                margin: 0;
                font-size: 16px;
                font-weight: 400;
                line-height: 1.2;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
            .info__access p,
            .info__access p a {
                margin: 0 0 4px;
                font-size: 16px;
                font-weight: 400;
                line-height: 1.188;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
                .info__access .detail-header__walk-item {
                    display: flex;
                    align-items: center;
                    gap: 4px;
                }
                .info__access .detail-header__walk-item:last-child {
                    margin-bottom: 0;
                }
                .info__access .detail-header__walk-item svg {
                    flex-shrink: 0;
                    width: 13px;
                    height: 13px;
                    fill: currentColor;
                }

/*=======================
Contact CTA
=======================*/
.section__wrap--contact-cta {
    position: relative;
    background: #dcfafb;
}
    .section__wrap--contact-cta::before,
    .section__wrap--contact-cta::after {
        position: absolute;
        content: "";
        width: 100%;
        height: 50px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 0;
    }
    .section__wrap--contact-cta::before {
        background: url(/images/top/bkn/contact_deco01.webp) no-repeat center / cover;
        top: -49px;
    }
    .section__wrap--contact-cta::after {
        background: url(/images/top/bkn/contact_deco02.webp) no-repeat center / cover;
        bottom: -50px;
    }
    .section__inner--contact-cta {
        display: flex;
        align-items: center;
        gap: 30px;
        padding: 32px 0;
    }
        .contact-cta__left {
            flex-shrink: 0;
        }
        .contact-cta__lead {
            width: 100%;
            margin: 0 0 4px;
            font-size: 16px;
            font-weight: 500;
            line-height: 1.2;
            letter-spacing: 0;
            color: var(--bkn-color-primary);
        }
        .contact-cta__ttl {
            width: 100%;
            margin: 0 0 8px;
            font-size: 30px;
            font-weight: 700;
            line-height: 1.2;
            letter-spacing: 0;
            color: var(--bkn-color-accent);
        }
        .contact-cta__hours-group {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .contact-cta__hours,
        .contact-cta__holiday {
            display: flex;
            align-items: center;
            gap: 5px;
            margin: 0;
        }
            .contact-cta__hours-label,
            .contact-cta__hours-txt {
                font-size: 13px;
                font-weight: 400;
                line-height: 1;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
            .contact-cta__hours-label {
                flex-shrink: 0;
                width: 52px;
            }
            .contact-cta__hours-sep {
                display: block;
                flex-shrink: 0;
                width: 1px;
                height: 13px;
                background: var(--bkn-color-accent-40);
            }
        .contact-cta__right {
            display: flex;
            flex: 1;
            gap: 10px;
            align-items: stretch;
            min-width: 0;
        }
        .contact-cta__line {
            display: block;
            flex: 1;
            min-width: 0;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s ease, opacity 0.3s ease;
        }
        .contact-cta__line:hover {
            opacity: 1;
            transform: translateY(-10px);
        }
            .contact-cta__line-img {
                display: block;
                width: 100%;
                height: 96px;
                object-fit: cover;
            }
        .contact-cta__actions {
            display: flex;
            flex-direction: column;
            gap: 6px;
            flex-shrink: 0;
        }
            .contact-cta__btn {
                --btn-ripple: #fff;
                --btn-hover-text: #00c3ce;
                --btn-icn: #fff;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 10px;
                width: 240px;
                height: 45px;
                padding: 0 16px 0 32px;
                border-radius: 4px;
                box-shadow: 3px 3px 1px rgba(0, 0, 0, 0.1);
                text-decoration: none;
            }
            .contact-cta__btn--mail {
                --btn-hover-text: #00c3ce;
                background: #00c3ce;
            }
            .contact-cta__btn--reserve {
                --btn-hover-text: #ff8000;
                background: #ff8000;
            }
                .contact-cta__btn-txt {
                    position: relative;
                    z-index: 1;
                    flex: 1;
                    font-size: 16px;
                    font-weight: 700;
                    line-height: 1;
                    letter-spacing: 0;
                    color: #fff;
                    text-align: center;
                    transition: color 0.4s;
                }
                .contact-cta__btn:hover .contact-cta__btn-txt {
                    color: var(--btn-hover-text);
                }
                .contact-cta__btn-arrow {
                    position: relative;
                    z-index: 1;
                    display: block;
                    width: 14px;
                    height: 11px;
                    flex-shrink: 0;
                    background-color: currentColor;
                    color: var(--btn-icn);
                    transition: color 0.4s;
                    -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
                    -webkit-mask-position: center;
                    mask-position: center;
                    -webkit-mask-size: contain;
                    mask-size: contain;
                    -webkit-mask-image: url("/images/top/bkn/icon_contact-arrow.svg");
                    mask-image: url("/images/top/bkn/icon_contact-arrow.svg");
                }
                .contact-cta__btn:hover .contact-cta__btn-arrow {
                    color: var(--btn-hover-text);
                }

/*=======================
Staff
=======================*/
.section__wrap--staff {
    padding-top: 110px;
}
    .section__inner--staff {
        position: relative;
    }
        .section__ttl--staff {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 40px;
            margin: 0 auto 20px;
            padding: 0;
            border: none;
            border-radius: 9999px;
            background: var(--bkn-color-accent);
            color: #fff;
            font-size: 20px;
        }
        .staff__body {
            display: flex;
            gap: 16px;
            align-items: flex-start;
        }
        .staff__profile {
            display: flex;
            flex-direction: column;
            align-items: center;
            flex-shrink: 0;
            width: 112px;
        }
            .staff__fig {
                margin: 0;
                width: 100px;
                height: 100px;
                overflow: hidden;
                border-radius: 50%;
            }
                .staff__fig img {
                    display: block;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            .staff__name {
                width: 100%;
                margin: 7px 0 0;
                overflow: hidden;
                font-size: 16px;
                font-weight: 700;
                line-height: 1;
                letter-spacing: 0;
                color: #3b3b3b;
                text-align: center;
                white-space: nowrap;
                text-overflow: ellipsis;
            }
        .staff__txt {
            flex: 1;
            min-width: 0;
            margin: 0;
            font-size: 16px;
            font-weight: 400;
            line-height: 1.5;
            color: #3b3b3b;
        }
        .staff__whale {
            position: absolute;
            right: -51px;
            bottom: -116px;
            width: 193px;
            height: 129px;
            pointer-events: none;
        }

/*=======================
Feature
=======================*/
.section__wrap--feature {
    padding-top: 58px;
}
        .feature__list {
            display: flex;
            flex-wrap: wrap;
            gap: 5px 16px;
            margin: 16px 0 0;
            padding: 0;
            list-style: none;
        }
            .feature__item {
                width: 68px;
            }
                .feature__img-wrap {
                    position: relative;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    width: 68px;
                    height: 68px;
                    border-radius: 6px;
                    background-color: #e5eff3;
                }
                .feature__img {
                    display: block;
                    width: 42px;
                    height: 42px;
                    border-radius: 6px;
                    object-fit: cover;
                }
                .feature__item svg use {
                    margin: 0 auto;
                    fill: var(--bkn-color-accent);
                    width: 42px;
                    height: 42px;
                }
                .feature__txt {
                    margin: 5px 0 0;
                    font-size: 11px;
                    font-weight: 400;
                    line-height: 1.2;
                    letter-spacing: 0;
                    color: var(--bkn-color-primary);
                    text-align: center;
                }

/*=======================
Point
=======================*/
.section__wrap--point {
    padding-top: 60px;
}
        .point__list {
            display: flex;
            flex-wrap: wrap;
            gap: 5px;
            margin: 17px 0 0;
            padding: 0;
            list-style: none;
        }
            .point__item {
                --btn-ripple: var(--bkn-color-accent);
                --btn-hover-text: #fff;
                display: flex;
                align-items: center;
                justify-content: center;
                min-height: 30px;
                padding: 0;
                border: 1px solid #e3e3e3;
                border-radius: 3px;
                background: #fff;
            }
            .point__item:hover {
                border-color: var(--bkn-color-accent);
            }
                .point__txt {
                    position: relative;
                    z-index: 1;
                    margin: 0;
                    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
                    font-size: 16px;
                    font-weight: 400;
                    line-height: 1;
                    letter-spacing: 0;
                    color: #3b3b3b;
                }
                    .point__txt a {
                        display: block;
                        margin: 0;
                        padding: 8px;
                        font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
                        font-size: 16px;
                        font-weight: 400;
                        line-height: 1;
                        letter-spacing: 0;
                        color: #3b3b3b;
                        text-decoration: none;
                        transition: color 0.4s;
                    }
                    .point__item:hover .point__txt a {
                        opacity: 1;
                        color: var(--btn-hover-text);
                    }

/*=======================
Rooms
=======================*/
.section__wrap--rooms {
    padding-top: 60px;
}
        .section__ttl--rooms {
            display: flex;
            flex-direction: row;
            align-items: flex-end;
            flex-wrap: wrap;
            gap: 0;
            width: 100%;
            margin-bottom: 16px;
            padding: 0;
            border: none;
        }
            .rooms__ttl-sub {
                font-size: 16px;
                font-weight: 700;
                line-height: 1.2;
                letter-spacing: 0;
                color: var(--bkn-color-accent);
            }
            .rooms__ttl-main {
                font-size: 30px;
                font-weight: 700;
                line-height: 1.2;
                letter-spacing: 0;
                color: var(--bkn-color-accent);
            }
        .rooms__list {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin: 0;
            padding: 0;
            list-style: none;
        }
            .rooms__item {
                position: relative;
                display: flex;
                align-items: center;
                gap: 8px;
                width: 372px;
                padding: 16px 12px 16px 16px;
                border: 1px solid #e3e3e3;
                border-radius: 8px;
                background: #fff;
                transition: transform 0.3s ease, opacity 0.3s ease;
            }
            .rooms__item:hover {
                opacity: 1;
                transform: translateY(-10px);
            }
            .rooms__item a:hover {
                opacity: 1;
            }
            .rooms__body {
                flex: 1;
                min-width: 0;
            }
            .rooms__item-link {
                display: flex;
                align-items: center;
                justify-content: center;
                flex-shrink: 0;
                width: 14px;
                pointer-events: none;
            }
            .rooms__item-arrow {
                display: block;
                width: 14px;
                height: 11px;
                color: var(--bkn-color-accent);
                fill: none;
            }
                .rooms__head {
                    display: flex;
                    align-items: center;
                    gap: 10px;
                    margin-bottom: 8px;
                    position: relative;
                    z-index: 1;
                }
                    .rooms__fav {
                        position: relative;
                        z-index: 2;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        flex-shrink: 0;
                        width: 42px;
                        height: 42px;
                        cursor: pointer;
                        border: 1px solid #F2F2F2;
                        border-radius: 50%;
                    }
                        .rooms__fav-off,
                        .rooms__fav-on {
                            display: block;
                            width: 26px;
                            height: 26px;
                        }
                        .rooms__fav-on {
                            display: none;
                        }
                        .rooms__fav.is-checked .rooms__fav-off {
                            display: none;
                        }
                        .rooms__fav.is-checked .rooms__fav-on {
                            display: block;
                        }
                    .rooms__meta {
                        display: block;
                        flex: 1;
                        min-width: 0;
                        text-decoration: none;
                        color: inherit;
                    }
                    .rooms__meta::after {
                        content: "";
                        position: absolute;
                        inset: 0;
                        z-index: 1;
                    }
                    .rooms__price {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: flex-end;
                        gap: 4px;
                        margin: 0 0 5px;
                    }
                        .rooms__floor {
                            display: inline-flex;
                            align-items: center;
                            height: 20px;
                            padding: 0 8px;
                            border-radius: 2px;
                            background: #dcfafb;
                            font-size: 13px;
                            font-weight: 500;
                            line-height: 1;
                            letter-spacing: 0;
                            color: var(--bkn-color-accent);
                        }
                        .rooms__price-num .price {
                            font-family: "Roboto", sans-serif;
                            font-size: 26px;
                            font-weight: 600;
                            line-height: 1;
                            letter-spacing: 0;
                            color: #de061f;
                        }
                        .rooms__price-num {
                            font-size: 13px;
                            font-weight: 600;
                            line-height: 1.6;
                            letter-spacing: 0;
                            color: var(--bkn-color-primary);
                        }
                        .rooms__price-note {
                            font-size: 13px;
                            font-weight: 400;
                            line-height: 1.6;
                            letter-spacing: 0;
                            color: var(--bkn-color-primary);
                        }
                    .rooms__spec {
                        display: flex;
                        flex-wrap: wrap;
                        align-items: center;
                        gap: 2px 1px;
                        margin: 0;
                    }
                        .rooms__cost-label {
                            display: inline-flex;
                            align-items: center;
                            justify-content: center;
                            width: 20px;
                            height: 20px;
                            margin-right: 2px;
                            border-radius: 9999px;
                            background: #00c3ce;
                            font-size: 13px;
                            font-weight: 500;
                            line-height: 1;
                            letter-spacing: 0;
                            color: #fff;
                        }
                        .rooms__cost-txt,
                        .rooms__plan {
                            font-size: 13px;
                            font-weight: 400;
                            line-height: 1;
                            letter-spacing: 0;
                            color: var(--bkn-color-primary);
                        }
                .rooms__btns {
                    position: relative;
                    z-index: 1;
                    display: flex;
                    gap: 4px;
                    width: 100%;
                }
                    .rooms__btn {
                        --btn-ripple: #fff;
                        --btn-hover-text: #00c3ce;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        flex: 1;
                        height: 36px;
                        padding: 0 12px;
                        border-radius: 4px;
                        text-decoration: none;
                    }
                    .rooms__btn--line {
                        --btn-hover-text: #06c755;
                        background: #06c755;
                    }
                    .rooms__btn--mail {
                        --btn-hover-text: #00c3ce;
                        background: #00c3ce;
                    }
                        .rooms__btn-txt {
                            position: relative;
                            z-index: 1;
                            font-size: 13px;
                            font-weight: 600;
                            line-height: 1;
                            letter-spacing: 0;
                            color: #fff;
                            transition: color 0.4s;
                        }
                        .rooms__btn:hover .rooms__btn-txt {
                            color: var(--btn-hover-text);
                        }

/*=======================
Promo
=======================*/
.section__wrap--promo {
    padding-top: 60px;
}
    .section__inner--promo {
        width: 800px;
        margin: 0 auto;
    }
        .promo__link {
            display: block;
            width: 800px;
            height: 150px;
            transition: transform 0.3s ease, opacity 0.3s ease;
        }
        .promo__link:hover {
            opacity: 1;
            transform: translateY(-10px);
        }
            .promo__img {
                display: block;
                width: 100%;
                height: 100%;
                object-fit: cover;
            }

/*=======================
Overview
=======================*/
.section__wrap--overview {
    padding-top: 60px;
    padding-bottom: 69px;
}
        .overview__list {
            display: flex;
            flex-wrap: wrap;
            gap: 5px;
            margin: 16px 0 0;
        }
            .overview__row {
                display: flex;
                align-items: stretch;
                gap: 10px;
                width: 567px;
            }
            .overview__row--full {
                width: 1140px;
            }
                .overview__ttl {
                    display: flex;
                    align-items: center;
                    width: 145px;
                    min-height: 33px;
                    flex-shrink: 0;
                    padding: 9px 8px;
                    background: #e5eff3;
                    font-size: 16px;
                    font-weight: 400;
                    line-height: 1.3;
                    letter-spacing: 0;
                    color: var(--bkn-color-primary);
                }
                .overview__txt {
                    flex: 1;
                    margin: 0;
                    padding: 8px 0;
                    font-size: 16px;
                    font-weight: 400;
                    line-height: 1;
                    letter-spacing: 0;
                    color: var(--bkn-color-primary);
                    align-self: center;
                }
                .overview__txt li {
                    list-style: none;
                }
                .overview__txt--long {
                    line-height: 1.5;
                }
        .overview__note {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 4px;
            width: 100%;
            margin-top: 16px;
            padding: 0;
            border: none;
            background: transparent;
            text-decoration: none;
            cursor: pointer;
        }
            .overview__note-icn {
                display: block;
                width: 15px;
                height: 15px;
                flex-shrink: 0;
            }
            .overview__note-txt {
                font-size: 16px;
                font-weight: 400;
                line-height: 1.2;
                letter-spacing: 0;
                color: #a6a6a6;
                flex-shrink: 0;
            }
            .ui-overlay {
                z-index: 11;
            }

/*=======================
情報の見方モーダル（表示制御は common.css / common.js）
=======================*/
.terminology {
    --bkn-color-primary: #0d294b;
    --bkn-color-accent: #074b9f;
}
    .terminology dl {
        margin: 0 0 20px;
    }
    .terminology dl:last-child {
        margin-bottom: 0;
    }
    .terminology__ttl {
        margin: 0 0 8px;
        font-size: 16px;
        font-weight: 700;
        line-height: 1.4;
        letter-spacing: 0;
        color: var(--bkn-color-primary);
    }
    .terminology dd {
        margin: 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.6;
        letter-spacing: 0;
        color: var(--bkn-color-primary);
    }

/*=======================
Location
=======================*/
.section__wrap--location {
    position: relative;
    padding-top: 111px;
}
        .location__head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin: 12px 0;
        }
            .location__address {
                flex: 1;
                min-width: 0;
                margin: 0;
                font-size: 16px;
                font-weight: 400;
                line-height: 1.3;
                letter-spacing: 0;
                color: var(--bkn-color-primary);
            }
            .location__map-btn {
                display: flex;
                align-items: center;
                justify-content: center;
                flex-shrink: 0;
                width: 121px;
                height: 30px;
                border: 1px solid #e3e3e3;
                border-radius: 3px;
                background: #fff;
                text-decoration: none;
            }
                .location__map-btn-txt {
                    font-family: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
                    font-size: 13px;
                    font-weight: 400;
                    line-height: 1;
                    letter-spacing: 0;
                    color: #3b3b3b;
                }
        .location__map {
            width: 1140px;
            height: 380px;
            margin: 0;
            background: #d9d9d9;
        }
            .location__map #room_detail_map {
                width: 100%;
                height: 100%;
            }
    .location__whale {
        position: absolute;
        bottom: -78px;
        left: 50%;
        transform: translateX(-727px);
        z-index: 1;
        width: 222px;
        height: 185px;
        pointer-events: none;
    }

/*=======================
Facility
=======================*/
.section__wrap--facility {
    position: relative;
    padding-top: 60px;
}
        .facility__list {
            display: flex;
            flex-wrap: wrap;
            gap: 16px;
            margin: 16px 0 0;
            padding: 0;
            list-style: none;
        }
            .facility__item {
                display: flex;
                align-items: center;
                gap: 8px;
                width: 369px;
            }
                .facility__fig {
                    flex-shrink: 0;
                    width: 65px;
                    height: 65px;
                    margin: 0;
                    overflow: hidden;
                    border-radius: 9999px;
                }
                    .facility__fig img {
                        display: block;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                    }
                .facility__cat {
                    margin: 0;
                    font-size: 13px;
                    font-weight: 400;
                    line-height: 1.4;
                    letter-spacing: 0;
                    color: #919191;
                }
                .facility__name {
                    margin: 4px 0 0;
                    font-size: 16px;
                    font-weight: 500;
                    line-height: 1.3;
                    letter-spacing: 0;
                    color: #222;
                }

/*=======================
Nearby
=======================*/
.section__wrap--nearby {
    padding: 60px 0 108px;
}
        .nearby__list {
            display: flex;
            gap: 16px;
            margin: 16px 0 0;
            padding: 0;
            list-style: none;
        }
            .nearby__item {
                flex-shrink: 0;
                width: 273px;
                min-height: 275px;
                overflow: hidden;
                border-radius: 16px;
                background: #fff;
                box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.1);
                transition: transform 0.3s ease, opacity 0.3s ease;
            }
            .nearby__item:hover {
                opacity: 1;
                transform: translateY(-10px);
            }
            .nearby__item a:hover {
                opacity: 1;
            }
                .nearby__link {
                    display: block;
                    text-decoration: none;
                }
                    .nearby__fig {
                        margin: 0;
                        width: 273px;
                        height: 182px;
                    }
                        .nearby__fig img {
                            display: block;
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                        }
                    .nearby__name {
                        margin: 8px 16px 0;
                        overflow: hidden;
                        font-size: 16px;
                        font-weight: 700;
                        line-height: 1;
                        letter-spacing: 0;
                        color: var(--bkn-color-primary);
                        white-space: nowrap;
                        text-overflow: ellipsis;
                    }
                    .nearby__price {
                        display: flex;
                        align-items: flex-end;
                        gap: 2px;
                        margin: 6px 16px 0;
                    }
                        .nearby__price-num .price {
                            font-family: "Roboto", sans-serif;
                            font-size: 26px;
                            font-weight: 600;
                            line-height: 1;
                            letter-spacing: 0;
                            color: #de061f;
                            margin-right: 3px;
                        }
                        .nearby__price-num {
                            font-size: 13px;
                            font-weight: 600;
                            line-height: 1.7;
                            letter-spacing: 0;
                            color: var(--bkn-color-primary);
                        }
                    .nearby__spec {
                        margin: 4px 16px 16px;
                        overflow: hidden;
                        font-size: 13px;
                        font-weight: 400;
                        line-height: 1.2;
                        letter-spacing: 0;
                        color: #aeaeae;
                        white-space: nowrap;
                        text-overflow: ellipsis;
                    }

/*=======================
Building（棟詳細オリ固有）
=======================*/
.org-building .section__wrap--property {
    padding-top: 13px;
}
.org-building .section__wrap--rooms {
    padding-top: 111px;
}
.org-building .property__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
    .org-building .property__head .summary__name {
        flex: 1;
        min-width: 0;
        margin: 0;
    }
.org-building .info__summary {
    align-items: baseline;
    gap: 0;
    margin-bottom: 12px;
}
    .org-building .summary__price-range {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 4px;
        margin: 0;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.125;
        letter-spacing: 0;
        color: var(--bkn-color-primary);
    }
        .org-building .summary__price-range .price {
            font-family: "Roboto", sans-serif;
            font-size: 36px;
            font-weight: 600;
            line-height: 1;
            letter-spacing: 0;
            color: #de061f;
            margin-right: 2px;
        }
    .org-building .summary__price-note {
        margin: 2px 0 0;
        font-size: 16px;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: 0;
        color: var(--bkn-color-primary);
    }
.org-building .section__wrap--staff {
    padding-top: 60px;
}
.org-building .section__wrap--promo {
    padding-top: 60px;
}
.org-building .section__wrap--overview {
    padding-bottom: 45px;
}
.org-building .location__map img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.org-building .section__inner--rooms {
    position: relative;
    z-index: 1;
}

.org-building .rooms__whale {
    position: absolute;
    left: -127px;
    bottom: 161px;
    width: 193px;
    height: 129px;
    pointer-events: none;
    transform: scaleX(-1);

}