#wrapper,
#wrapper:has(.lib-header-BS02) {
    padding-top: 0 !important;
}
.p-header.lib-header-BS02 {
    position: fixed !important;
    top: 20px !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    width: calc(100% - 80px) !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    background-color: #fff !important;
    border-bottom: none !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
}
.p-header.lib-header-BS02 .lib-header__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
}
.p-header.lib-header-BS02 .lib-nav__panel,
.p-header.lib-header-BS02 .lib-nav__cover,
.p-header.lib-header-BS02 .lib-nav__outer,
.p-header.lib-header-BS02 .lib-nav__list,
.p-header.lib-header-BS02 .lib-nav__item {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.p-header.lib-header-BS02 .lib-nav__panel {
    position: static !important;
    flex-grow: 1 !important;
    justify-content: flex-end !important;
    width: auto !important;
}
.p-header.lib-header-BS02 .lib-nav__panel:has(.lib-induce__outer) {
    padding-right: 0 !important;
}
.p-header.lib-header-BS02 .lib-nav__list {
    order: 1 !important;
    justify-content: flex-end !important;
    gap: 30px !important;
    width: auto !important;
}
.p-header.lib-header-BS02 .lib-nav__btn {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 0 !important;
    background: transparent !important;
    border: none !important;
    color: #000000 !important;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    text-decoration: none !important;
    line-height: 1 !important;
}
.p-header.lib-header-BS02 .lib-nav__btn .txt {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000000 !important;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif !important;
    font-weight: bold !important;
    line-height: 1 !important;
}
.p-header.lib-header-BS02 .lib-header__actionArea {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    height: auto !important;
    margin: 0 0 0 40px !important;
    padding: 0 !important;
}
.p-header.lib-header-BS02 ul.lib-induce__outer.custom-reserve {
    order: 1 !important;
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.p-header.lib-header-BS02 ul.lib-induce__outer.custom-reserve li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.p-header.lib-header-BS02 .custom-reserve-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: auto !important;
    height: auto !important;
    padding: 12px 24px !important;
    background-color: #8c1722 !important;
    color: #fff !important;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    text-decoration: none !important;
    border-radius: 0 !important;
}
.p-header.lib-header-BS02 .custom-reserve-btn:before,
.p-header.lib-header-BS02 .custom-reserve-btn:after,
.p-header.lib-header-BS02 .custom-reserve-btn .txt:after {
    display: none !important;
    content: none !important;
}
.p-header.lib-header-BS02 .custom-lang-wrapper {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #333 !important;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif !important;
}
.p-header.lib-header-BS02 .custom-lang-text {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}
.p-header.lib-header-BS02 .custom-lang-text a {
    color: #000000 !important;
    font-size: 14px !important;
    font-weight: bold;
    text-decoration: none !important;
    line-height: 1 !important;
}
.p-header.lib-header-BS02 .custom-lang-text .divider {
    color: #333 !important;
    font-size: 14px !important;
    line-height: 1 !important;
}
.mv-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}
.existing-slider-wrapper {
    width: 100%;
}
.existing-slider-wrapper img {
    width: 100%;
}
.mv-text-overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.mv-text-inner {
    position: relative;
    width: 100%;
    max-width: 1400px;
    height: 100%;
    margin: 0 auto;
    padding: 0 40px;
}
.mv-title-jp {
    position: absolute;
    bottom: 10%;
    left: 40px;
    margin: 0;
    color: #fff;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: normal;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4);
}
.mv-title-en {
    position: absolute;
    bottom: 10%;
    right: 40px;
    margin: 0;
    color: rgba(255, 255, 255, 0.75);
    font-family: "Times New Roman", Times, serif;
    font-size: clamp(40px, 8vw, 110px);
    font-weight: normal;
    line-height: 1;
    letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
    .mv-text-inner {
        padding: 0 20px;
    }
    .mv-title-jp {
        bottom: 35%;
        left: 20px;
        font-size: 20px;
    }
    .mv-title-en {
        bottom: 10%;
        right: 20px;
        font-size: 46px;
    }
}
.p-header.lib-header-BS02,
.p-header.lib-header-BS02 *,
html.is-scroll .p-header.lib-header-BS02,
html.is-scroll .p-header.lib-header-BS02 * {
    transition: none !important;
    animation: none !important;
}
html.is-scroll .p-header.lib-header-BS02,
html.is-scroll body .p-header.lib-header__outer.lib-header-BS02 {
    top: 20px !important;
    height: auto !important;
    margin: 0 auto !important;
    transform: none !important;
}
html.is-scroll .p-header.lib-header-BS02 .lib-header__inner,
html.is-scroll .p-header.lib-header-BS02 .lib-header__bar,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__panel,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__cover,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__outer,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__list,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__item,
html.is-scroll .p-header.lib-header-BS02 .lib-nav__btn,
html.is-scroll .p-header.lib-header-BS02 .lib-header__actionArea,
html.is-scroll .p-header.lib-header-BS02 ul.lib-induce__outer.custom-reserve,
html.is-scroll .p-header.lib-header-BS02 .custom-reserve-btn,
html.is-scroll .p-header.lib-header-BS02 .custom-lang-wrapper,
html.is-scroll .p-header.lib-header-BS02 .js-scroll-out {
    height: auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}
.p-header.lib-header-BS02 .lib-header__bar,
.p-header.lib-header-BS02 .lib-header__logo,
.p-header.lib-header-BS02 .lib-header__logo a,
.p-header.lib-header-BS02 .lib-header__logo .thumb,
html.is-scroll .p-header.lib-header-BS02 .lib-header__bar,
html.is-scroll .p-header.lib-header-BS02 .lib-header__logo,
html.is-scroll .p-header.lib-header-BS02 .lib-header__logo a,
html.is-scroll .p-header.lib-header-BS02 .lib-header__logo .thumb {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    line-height: 1 !important;
    transform: none !important;
}
.p-header.lib-header-BS02 .lib-header__logo img,
html.is-scroll .p-header.lib-header-BS02 .lib-header__logo img {
    display: block !important;
    width: 80px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}



/* ========================================================
   ヘッダー：1153px以下での2段折り返し防止・自動縮小調整
   ======================================================== */
@media screen and (max-width: 1153px) and (min-width: 993px) {
    /* 全体・ナビゲーションの折り返しを強制禁止 */
    .lib-header__inner,
    .lib-nav__cover,
    .lib-nav__outer {
        flex-wrap: nowrap !important;
    }

    /* メニュー項目全体の余白と文字サイズをスリム化 */
    .lib-nav__list {
        gap: 12px !important;
        /* メニュー同士の間隔を狭める */
    }
    .lib-nav__btn {
        padding: 0 4px !important;
    }
    .lib-nav__btn .txt {
        font-size: 13px !important;
        /* 文字サイズをわずかに縮小 */
        white-space: nowrap !important;
        /* 勝手な改行を防止 */
    }

    /* 右側（予約ボタン・言語切替エリア）のコンパクト化 */
    .lib-header__actionArea {
        gap: 10px !important;
        margin-left: 10px !important;
        flex-shrink: 0 !important;
        /* 潰れないように保護 */
    }
    .custom-reserve-btn {
        padding: 8px 12px !important;
        /* 予約ボタンのパディングを縮小 */
        font-size: 13px !important;
        white-space: nowrap !important;
    }
    .custom-lang-wrapper {
        font-size: 12px !important;
        white-space: nowrap !important;
    }
}
@media screen and (max-width: 992px) {
    .p-header.lib-header-BS02,
    html.is-scroll .p-header.lib-header-BS02 {
        top: 10px !important;
        width: calc(100% - 30px) !important;
        max-width: 100% !important;
    }
    .p-header.lib-header-BS02 .lib-header__inner {
        padding: 8px 12px !important;
        min-height: 54px !important;
        height: auto !important;
    }
    .p-header.lib-header-BS02 .lib-header__logo img,
    html.is-scroll .p-header.lib-header-BS02 .lib-header__logo img {
        width: 55px !important;
    }
    .p-header.lib-header-BS02 .lib-nav__list {
        display: none !important;
    }
    .p-header.lib-header-BS02 .lib-nav__panel {
        width: auto !important;
        flex-grow: 0 !important;
    }
    .p-header.lib-header-BS02 .lib-header__actionArea {
        margin: 0 !important;
        gap: 10px !important;
    }
    .p-header.lib-header-BS02 .custom-reserve-btn {
        padding: 8px 12px !important;
        font-size: 12px !important;
        gap: 4px !important;
        white-space: nowrap !important;
    }
    .p-header.lib-header-BS02 .custom-lang-text a,
    .p-header.lib-header-BS02 .custom-lang-text .divider {
        font-size: 12px !important;
    }
    .mv-text-inner {
        padding: 0 20px;
    }
    .mv-title-jp {
        bottom: 25%;
        left: 20px;
        font-size: clamp(18px, 5vw, 24px);
    }
    .mv-title-en {
        bottom: 8%;
        right: 20px;
        font-size: clamp(36px, 12vw, 56px);
    }
}
@media screen and (min-width: 993px) {
    .lib-menu__btn.js-gnav__btn {
        display: none !important;
    }
}
@media screen and (max-width: 992px) {
    .p-header.lib-header-BS02,
    html.is-scroll .p-header.lib-header-BS02 {
        position: fixed !important;
        top: 15px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: calc(100% - 30px) !important;
        max-width: 100% !important;
        background-color: #ffffff !important;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important;
        z-index: 99999 !important;
    }
    .p-header.lib-header-BS02 .lib-header__inner {
        position: relative !important;
        padding: 0 !important;
        height: 60px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }
    .p-header.lib-header-BS02 .lib-header__bar.js-gnav__bar {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        height: 100% !important;
        padding-left: 15px !important;
    }
    .p-header.lib-header-BS02 .lib-header__logo img {
        width: 60px !important;
        height: auto !important;
        display: block !important;
    }
    .lib-menu__btn.js-gnav__btn {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 5px !important;
        width: 60px !important;
        height: 60px !important;
        background-color: #8c1722 !important;
        border: none !important;
        cursor: pointer !important;
        padding: 0 !important;
        flex-shrink: 0 !important;
    }
    .lib-menu__btn.js-gnav__btn .line {
        display: block !important;
        width: 24px !important;
        height: 2px !important;
        background-color: #ffffff !important;
        transition: transform 0.3s ease, opacity 0.3s ease !important;
    }
    .lib-menu__btn.js-gnav__btn.is-active .line-1 {
        transform: translateY(7px) rotate(45deg) !important;
    }
    .lib-menu__btn.js-gnav__btn.is-active .line-2 {
        opacity: 0 !important;
    }
    .lib-menu__btn.js-gnav__btn.is-active .line-3 {
        transform: translateY(-7px) rotate(-45deg) !important;
    }
    .p-header.lib-header-BS02 .lib-nav__panel,
    html.is-scroll .p-header.lib-header-BS02 .lib-nav__panel {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-height: calc(100vh - 90px) !important;
        background-color: #ffffff !important;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
        margin-top: 10px !important;
        display: none !important;
        flex-direction: column !important;
        padding: 0 !important;
        overflow-y: auto !important;
        z-index: 99998 !important;
    }
    .p-header.lib-header-BS02 .lib-nav__panel.is-active,
    .p-header.lib-header-BS02.is-active .lib-nav__panel {
        display: flex !important;
        animation: fadeInDown 0.3s ease forwards;
    }
    @keyframes fadeInDown {
        from {
            opacity: 0;
            transform: translateY(-8px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    .p-header.lib-header-BS02 .lib-nav__cover,
    .p-header.lib-header-BS02 .lib-nav__outer {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .p-header.lib-header-BS02 .lib-nav__list {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    .p-header.lib-header-BS02 .lib-nav__item {
        display: block !important;
        width: 100% !important;
        border-bottom: 1px solid #f0f0f0 !important;
    }
    .p-header.lib-header-BS02 .lib-nav__btn {
        display: block !important;
        width: 100% !important;
        padding: 16px 20px !important;
        font-size: 16px !important;
        color: #000000 !important;
        text-decoration: none !important;
        text-align: left !important;
        box-sizing: border-box !important;
        font-family: "Shippori Mincho", "游明朝", serif !important;
    }
    .p-header.lib-header-BS02 .lib-header__actionArea {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 15px !important;
        padding: 20px !important;
        margin: 0 !important;
        background-color: #f9f9f9 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .p-header.lib-header-BS02 ul.lib-induce__outer.custom-reserve {
        width: 100% !important;
    }
    .p-header.lib-header-BS02 .custom-reserve-btn {
        display: inline-flex !important;
        width: 100% !important;
        padding: 14px 0 !important;
        font-size: 16px !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        background-color: #8c1722 !important;
        color: #ffffff !important;
    }
    .p-header.lib-header-BS02 .custom-lang-wrapper {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .mv-text-inner {
        padding: 0 20px;
    }
    .mv-title-jp {
        bottom: 25%;
        left: 20px;
        font-size: clamp(18px, 5vw, 24px);
    }
    .mv-title-en {
        bottom: 8%;
        right: 20px;
        font-size: clamp(36px, 12vw, 56px);
    }
}
/* ========================================================
   トップページメインビジュアル：初期表示・起動後ともに高さ固定
======================================================== */
@media screen and (max-width: 992px) {
    /* 1. 外枠とSwiper本体の表示高さを540pxに完全固定 */
    .mv-container,
    .mv-swiper {
        height: 540px !important;
        min-height: 540px !important;
        position: relative !important;
    }

    /* 2. Swiper内部のラッパーと全スライドに高さを100%引き継がせる */
    .mv-swiper .swiper-wrapper,
    .mv-swiper .swiper-slide {
        height: 100% !important;
        min-height: 100% !important;
    }

    /* 3. 画像をスライド枠（540px）に完全に追従させてトリミング */
    .mv-swiper .swiper-slide img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
    }

    /* テキスト位置調整 */
    .mv-title-jp {
        bottom: 22% !important;
        left: 20px !important;
        font-size: 22px !important;
        line-height: 1.6 !important;
    }
    .mv-title-en {
        bottom: 8% !important;
        right: 20px !important;
        font-size: 42px !important;
    }
}
/* ========================================================
   ハンバーガーメニュー：開いた時の「×」印の崩れ補正
======================================================== */
/* 1. 開いた時の全線をボタンの「完全中央」に固定 */
.lib-menu__btn[aria-expanded="true"] .line,
.lib-menu__btn.is-active .line {
    width: 26px !important;
    /* 線の長さ */
    left: calc(50% - 13px) !important;
    /* 左右中央寄せ */
    top: 50% !important;
    /* 上下中央寄せ */
    margin-top: -1px !important;
    /* 線の太さ(2px)の半分を引き、中心を合わせる */
}

/* 2. 上の線：右下がりに45度回転 */
.lib-menu__btn[aria-expanded="true"] .line-1,
.lib-menu__btn.is-active .line-1,
.lib-menu__btn[aria-expanded="true"] .line:nth-of-type(1) {
    transform: rotate(45deg) !important;
}

/* 3. 真ん中の線：非表示 */
.lib-menu__btn[aria-expanded="true"] .line-2,
.lib-menu__btn.is-active .line-2,
.lib-menu__btn[aria-expanded="true"] .line:nth-of-type(2) {
    opacity: 0 !important;
}

/* 4. 下の線：右上がりに-45度回転 */
.lib-menu__btn[aria-expanded="true"] .line-3,
.lib-menu__btn.is-active .line-3,
.lib-menu__btn[aria-expanded="true"] .line:nth-of-type(3) {
    transform: rotate(-45deg) !important;
}

.lib-nav__item.has-child {
    position: relative;
}
.lib-nav__dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 240px;
    background-color: #ffffff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    padding: 10px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 100;
    margin-top: 15px;
}
.lib-nav__item.has-child.is-open .lib-nav__dropdown {
    opacity: 1;
    visibility: visible;
}
.lib-nav__dropdown::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid #005652;
}
.lib-nav__dropdown-title {
    background-color: #f5f5f5;
    padding: 10px 15px;
    font-weight: bold;
    font-size: 14px;
    color: #333;
    margin-bottom: 5px;
}
.lib-nav__dropdown-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.lib-nav__dropdown-list li {
    border-bottom: none;
}
.lib-nav__dropdown-list a {
    display: block;
    padding: 12px 15px 12px 20px;
    color: #333;
    font-size: 14px;
    text-decoration: none;
    position: relative;
    line-height: 1.4;
    transition: background-color 0.2s ease;
}
.lib-nav__dropdown-list a:hover {
    background-color: #f9f9f9;
}
.lib-nav__dropdown-list a::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-top: 1px solid #333;
    border-right: 1px solid #333;
}
.dropdown-arrow {
    display: inline-block;
    margin-left: 5px;
    width: 6px;
    height: 6px;
    border-bottom: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 0.3s;
}
.lib-nav__item.has-child.is-open .dropdown-arrow {
    transform: translateY(0) rotate(225deg);
}
.lib-nav__item.has-child {
    position: relative;
}
.lib-nav__dropdown-title {
    background-color: #f5f5f5;
    padding: 10px 15px;
    font-weight: bold;
    font-size: 14px;
    color: #333;
    margin-bottom: 5px;
}
.lib-nav__dropdown-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.lib-nav__dropdown-list li {
    border-bottom: none;
}
.lib-nav__dropdown-list a {
    display: block;
    padding: 12px 15px 12px 20px;
    color: #333;
    font-size: 14px;
    text-decoration: none;
    position: relative;
    line-height: 1.4;
    transition: background-color 0.2s ease;
}
.lib-nav__dropdown-list a:hover {
    background-color: #f9f9f9;
}
.lib-nav__dropdown-list a::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    border-top: 1px solid #333;
    border-right: 1px solid #333;
}
.dropdown-arrow {
    display: inline-block;
    margin-left: 5px;
    width: 6px;
    height: 6px;
    border-bottom: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 0.3s;
}
.lib-nav__item.has-child.is-dropdown-active .dropdown-arrow {
    transform: translateY(0) rotate(225deg);
}
@media screen and (max-width: 992px) {
    .lib-nav__dropdown {
        display: none;
        width: 100%;
        background-color: #ffffff;
        padding: 10px 0;
    }
    .lib-nav__item.has-child.is-dropdown-active .lib-nav__dropdown {
        display: block;
    }
    .lib-nav__dropdown::before {
        display: none;
    }
}
@media screen and (min-width: 993px) {
    .lib-nav__dropdown {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        width: 240px;
        background-color: #ffffff;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
        padding: 10px;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        z-index: 100;
        margin-top: 15px;
    }
    .lib-nav__item.has-child.is-dropdown-active .lib-nav__dropdown {
        opacity: 1;
        visibility: visible;
    }
    .lib-nav__dropdown::before {
        content: "";
        position: absolute;
        top: -10px;
        left: 50%;
        transform: translateX(-50%);
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-bottom: 10px solid #005652;
    }
}
@media screen and (max-width: 992px) {
    .lib-nav__item.has-child {
        height: auto !important;
        overflow: visible !important;
    }
    .lib-nav__item.has-child>a {
        position: relative;
        display: block;
    }
    .dropdown-arrow {
        position: absolute !important;
        right: 20px;
        top: 50%;
        margin-left: 0 !important;
        width: 8px !important;
        height: 8px !important;
        transform: translateY(-50%) rotate(45deg) !important;
    }
    .lib-nav__item.has-child.is-dropdown-active .dropdown-arrow {
        transform: translateY(-50%) rotate(225deg) !important;
        margin-top: 0 !important;
    }
    .lib-nav__dropdown {
        display: none;
        width: 100%;
        background-color: #f9f9f9;
        padding: 0 !important;
        position: static !important;
        height: auto !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }
    .lib-nav__item.has-child.is-dropdown-active .lib-nav__dropdown {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
    .lib-nav__dropdown::before {
        display: none !important;
    }
    .lib-nav__dropdown-title {
        display: none !important;
    }
    .lib-nav__dropdown-list a {
        padding: 15px 20px 15px 35px !important;
        border-top: 1px solid #e5e5e5;
        color: #333 !important;
    }
}

/* ===================================================
   SP時用：ヘッダー予約ボタンとメニュー内ボタンの強制調整
   （詳細度を上げて他の !important を上書きします）
   =================================================== */

/* PC表示時はSP用ボタンを非表示 */
body .p-header.lib-header-BS02 .sp-header-reserve {
    display: none;
}

/* SP時のみ適用 */
@media screen and (max-width: 991px) {

    /* ---------------------------------------------------
       1. ハンバーガーメニュー内の予約ボタンを完全に非表示
       --------------------------------------------------- */
    body .p-header.lib-header-BS02 .lib-nav__panel ul.lib-induce__outer.custom-reserve {
        display: none !important;
    }
    body .p-header.lib-header-BS02 .lib-nav__panel .custom-reserve-btn {
        display: none !important;
    }

    /* ---------------------------------------------------
       2. ヘッダーバーの重なり調整とハンバーガーメニューの右寄せ
       --------------------------------------------------- */
    body .p-header.lib-header-BS02 .lib-header__bar.js-gnav__bar {
        position: relative !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding-right: 0 !important;
    }

    body .lib-menu__btn.js-gnav__btn {
        position: absolute !important;
        right: 0 !important;
        top: 0 !important;
        height: 100% !important;
        z-index: 10 !important;
    }

    /* ---------------------------------------------------
       3. ロゴ横のSP用予約ボタンの配置と余白調整
       --------------------------------------------------- */
    body .p-header.lib-header-BS02 .sp-header-reserve {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        position: absolute !important;
        /* ★ハンバーガーボタンからさらに左へ離す（60pxから75pxに数値を増やしました） */
        right: 75px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        /* ★高さを指定しない（auto）に変更し、ボタン内のpaddingで高さを出します */
        height: auto !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body .p-header.lib-header-BS02 .sp-header-reserve .custom-reserve-btn {
        display: inline-flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        background-color: #8c1722 !important;
        color: #ffffff !important;
        padding: 8px 12px !important;
        margin: 0 !important;
        border-radius: 4px !important;
        text-decoration: none !important;
        font-size: 16px !important;
        font-weight: bold !important;
        white-space: nowrap !important;
        word-break: keep-all !important;
        height: auto !important;
        line-height: 1 !important;
        box-sizing: border-box !important;
    }

    /* アイコンの設定 */
    body .p-header.lib-header-BS02 .sp-header-reserve .custom-reserve-btn svg.custom-icon {
        width: 14px !important;
        height: 14px !important;
        stroke: #ffffff !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
    }

    /* テキスト部分の設定 */
    body .p-header.lib-header-BS02 .sp-header-reserve .custom-reserve-btn span.txt {
        display: block !important;
        white-space: nowrap !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #ffffff !important;
    }
}


body.home #contents {
    max-width: 100% !important;
    width: 100% !important;
    margin-top: 0 !important;
    padding: 0 !important;
}
body.home #dcms_layoutPageBlockPasteArea,
body.home #dcms_layoutPageBlock {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
}
.top-concept {
    background-color: #f1f1f1;
    padding: 80px 0 120px;
    width: 100%;
}
.top-concept__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 60px;
}
.top-concept__left {
    flex: 1;
    max-width: 580px;
}
.top-concept__text {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}
.top-concept__text,
.top-concept__title,
.top-concept__subtitle,
.top-concept__desc,
.top-concept__link,
.top-concept__link .arrow {
    color: #000000 !important;
}
.top-concept__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
}
.top-concept__subtitle {
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0 0 35px 0;
}
.top-concept__desc {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin: 0 0 20px 0;
}
.top-concept-red {
    color: #8c1722 !important;
    font-weight: 700;
}
.top-concept__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-concept__link:hover {
    opacity: 0.7;
}
.top-concept__link .arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}
.top-concept__link:hover .arrow {
    transform: translateX(6px);
}
.top-concept__sub-images {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 50px;
    width: 100%;
}
.top-concept__img-wrap {
    overflow: hidden;
}
.top-concept__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-concept__img-wrap--left {
    width: 240px;
    height: 310px;
    margin-top: 70px;
}
.top-concept__img-wrap--center {
    width: 240px;
    height: 310px;
    margin-top: -20px;
}
.top-concept__right {
    width: 440px;
    flex-shrink: 0;
}
.top-concept__main-img {
    width: 100%;
    height: 620px;
    overflow: hidden;
}
.top-concept__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 992px) {
    .top-concept {
        padding: 60px 0 80px;
    }
    .top-concept__inner {
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
    }
    .top-concept__left,
    .top-concept__right {
        max-width: 100%;
        width: 100%;
    }
    .top-concept__title {
        font-size: 32px;
    }
    .top-concept__subtitle {
        font-size: 16px;
        margin-bottom: 25px;
    }
    .top-concept__desc {
        font-size: 16px;
    }
    /*.top-concept__desc br {
        display: none;
    }*/
    .top-concept__main-img {
        height: 400px;
    }
    .top-concept__sub-images {
        display: flex;
        justify-content: space-between;
        gap: 15px;
        margin-top: 40px;
    }
    .top-concept__img-wrap--left,
    .top-concept__img-wrap--center {
        width: calc(50% - 8px);
        height: auto;
        aspect-ratio: 4 / 5;
    }
    .top-concept__img-wrap--left {
        margin-top: 30px;
    }
}
.js-fade-up {
    opacity: 0 !important;
    transform: translateY(40px) !important;
    transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.js-fade-up.is-show {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.js-fade-left {
    position: relative !important;
    overflow: hidden !important;
    opacity: 1 !important;
    transform: none !important;
}
.js-fade-left::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: #f1f1f1 !important;
    z-index: 5 !important;
    transform: translateX(0) !important;
    transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1) !important;
}
.js-fade-left.is-show::after {
    transform: translateX(100%) !important;
}
.delay-01::after {
    transition-delay: 0.15s !important;
}
.delay-02::after {
    transition-delay: 0.3s !important;
}
.delay-03::after {
    transition-delay: 0.45s !important;
}
.top-restaurant {
    background-color: #f1f1f1;
    padding: 100px 0 120px;
    width: 100%;
    overflow: hidden;
}
.top-restaurant__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 90px;
}
.top-restaurant__left {
    width: calc(460px + (100vw - 100%) / 2 + 40px);
    margin-left: calc((100vw - 100%) / -2 - 40px);
    flex-shrink: 0;
}
.top-restaurant__main-img {
    width: 100%;
    height: 480px;
    overflow: hidden;
}
.top-restaurant__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-restaurant__right {
    flex: 1;
    max-width: 572px;
}
.top-restaurant__text {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
    margin-left: 90px;
}
.top-restaurant__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    margin: 0 0 12px 0;
    color: #000000 !important;
}
.top-restaurant__subtitle {
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0 0 35px 0;
    color: #000000 !important;
}
.top-restaurant__desc {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin: 0 0 40px 0;
    color: #000000 !important;
}
.top-restaurant__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    color: #000000 !important;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-restaurant__link:hover {
    opacity: 0.7;
}
.top-restaurant__link .arrow {
    display: inline-block;
    color: #000000 !important;
    transition: transform 0.3s ease;
}
.top-restaurant__link:hover .arrow {
    transform: translateX(6px);
}
.top-restaurant__sub-img {
    width: 100%;
    height: 340px;
    margin-top: 50px;
    overflow: hidden;
}
.top-restaurant__sub-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 992px) {
    .top-restaurant {
        padding: 60px 0 80px;
    }
    .top-restaurant__inner {
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
    }
    .top-restaurant__left {
        width: 100%;
        margin-left: 0;
    }
    .top-restaurant__main-img {
        height: 350px;
    }
    .top-restaurant__right {
        max-width: 100%;
        width: 100%;
    }
    .top-restaurant__text {
        margin-left: 0;
    }
    .top-restaurant__title {
        font-size: 32px;
    }
    .top-restaurant__subtitle {
        font-size: 16px;
        margin-bottom: 25px;
    }
    .top-restaurant__desc {
        font-size: 16px;
    }
    .top-restaurant__desc br {
        display: none;
    }
    .top-restaurant__sub-img {
        height: 250px;
        margin-top: 40px;
    }
}
.top-spa {
    background-color: #f1f1f1;
    padding: 100px 0 120px;
    width: 100%;
    overflow: hidden;
}
.top-spa__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 80px;
}
.top-spa__left {
    flex: 1;
    max-width: 520px;
}
.top-spa__head {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
    margin-bottom: 40px;
}
.top-spa__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    margin: 0 0 12px 0;
    color: #000000 !important;
}
.top-spa__subtitle {
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0;
    color: #000000 !important;
}
.top-spa__main-img-wrap {
    /* 修正前: width: calc(520px + (100vw - 100%) / 2 + 40px); */
    width: calc(100% + (100vw - 100%) / 2 + 40px);
    margin-left: calc((100vw - 100%) / -2 - 40px);
}
.top-spa__main-img {
    width: 100%;
    height: 450px;
    overflow: hidden;
}
.top-spa__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-spa__right {
    width: 510px;
    flex-shrink: 0;
    margin-top: 50px;
}
.top-spa__sub-img {
    width: 100%;
    height: 310px;
    overflow: hidden;
    margin-bottom: 40px;
}
.top-spa__sub-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-spa__body {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
}
.top-spa__desc {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin: 0 0 30px 0;
    color: #000000 !important;
}
.top-spa__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    color: #000000 !important;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-spa__link:hover {
    opacity: 0.7;
}
.top-spa__link .arrow {
    display: inline-block;
    color: #000000 !important;
    transition: transform 0.3s ease;
}
.top-spa__link:hover .arrow {
    transform: translateX(6px);
}
@media screen and (max-width: 992px) {
    .top-restaurant,
    .top-spa {
        padding: 60px 0 80px;
    }
    .top-restaurant__inner,
    .top-spa__inner {
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
    }
    .top-restaurant__left,
    .top-spa__left,
    .top-restaurant__right,
    .top-spa__right {
        max-width: 100%;
        width: 100%;
        margin-left: 0;
        margin-top: 0;
    }
    .top-restaurant__text {
        margin-left: 0;
    }
    .top-restaurant__main-img,
    .top-spa__main-img {
        height: 350px;
    }
    .top-spa__main-img-wrap {
        width: 100%;
        margin-left: 0;
    }
    .top-restaurant__sub-img,
    .top-spa__sub-img {
        height: 250px;
        margin-top: 30px;
        margin-bottom: 30px;
    }
    .top-restaurant__desc br {
        display: none;
    }
}
.top-guestroom {
    background-color: #f1f1f1;
    padding: 100px 0 120px;
    width: 100%;
    overflow: hidden;
}
.top-guestroom__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 80px;
}
.top-guestroom__left {
    width: 500px;
    flex-shrink: 0;
}
.top-guestroom__sub-img {
    width: 100%;
    height: 310px;
    overflow: hidden;
    margin-top: 60px;
    margin-bottom: 45px;
}
.top-guestroom__sub-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-guestroom__body {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
}
.top-guestroom__desc {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin: 0 0 30px 0;
    color: #000000 !important;
}
.top-guestroom__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    color: #000000 !important;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-guestroom__link:hover {
    opacity: 0.7;
}
.top-guestroom__link .arrow {
    display: inline-block;
    color: #000000 !important;
    transition: transform 0.3s ease;
}
.top-guestroom__link:hover .arrow {
    transform: translateX(6px);
}
.top-guestroom__right {
    flex: 1;
    max-width: 560px;
}
.top-guestroom__head {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
    margin-bottom: 40px;
    padding-left: 50px;
}
.top-guestroom__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    color: #000000 !important;
}
.top-guestroom__subtitle {
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0;
    color: #000000 !important;
}
.top-guestroom__main-img-wrap {
    /* 修正前: width: calc(580px + (100vw - 100%) / 2 + 40px); */
    width: calc(100% + (100vw - 100%) / 2 + 40px);
    margin-right: calc((100vw - 100%) / -2 - 40px);
}
.top-guestroom__main-img {
    width: 100%;
    height: 460px;
    overflow: hidden;
}
.top-guestroom__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media screen and (max-width: 992px) {
    .top-guestroom {
        padding: 60px 0 80px;
    }
    .top-guestroom__inner {
        display: flex;
        flex-direction: column;
        gap: 0;
        /* display: contents適用時は各要素のmarginで上下間隔を調整します */
        padding: 0 20px;
    }

    /* 1. ラッパー要素の枠組みを無視して子要素を直接並べ替え可能にする */
    .top-guestroom__left,
    .top-guestroom__right {
        display: contents;
    }

    /* 2. orderプロパティで上からの表示順を指定 */
    .top-guestroom__head {
        order: 1;
        /* 見出しを一番上へ[cite: 2] */
        margin-bottom: 30px;
        padding-left: 0;
    }
    .top-guestroom__sub-img {
        order: 2;
        /* 左上の小画像 */
        height: 250px;
        margin-top: 0;
        margin-bottom: 30px;
        width: 100%;
    }
    .top-guestroom__body {
        order: 3;
        /* 説明文・ボタン */
        margin-bottom: 40px;
    }
    .top-guestroom__main-img-wrap {
        order: 4;
        /* 右側の大画像 */
        width: 100%;
        margin-right: 0;
    }

    /* その他のフォントサイズ・スタイル調整 */
    .top-guestroom__title {
        font-size: 32px;
    }
    .top-guestroom__subtitle {
        font-size: 16px;
    }
    .top-guestroom__main-img {
        height: 350px;
    }
    .top-guestroom__desc {
        font-size: 16px;
    }
}
.top-aboutus {
    background-color: #f1f1f1;
    padding: 100px 0 120px;
    width: 100%;
    overflow: hidden;
}
.top-aboutus__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    gap: 90px;
}
.top-aboutus__left {
    width: calc(480px + (100vw - 100%) / 2 + 40px);
    margin-left: calc((100vw - 100%) / -2 - 40px);
    flex-shrink: 0;
}
.top-aboutus__main-img {
    width: 100%;
    height: 760px;
    overflow: hidden;
}
.top-aboutus__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top !important;
    display: block;
}
.top-aboutus__right {
    flex: 1;
    max-width: 520px;
    margin-left: 20px;
}
.top-aboutus__sub-images {
    display: flex;
    gap: 20px;
    margin-bottom: 50px;
}
.top-aboutus__sub-img-wrap {
    width: 230px;
    height: 220px;
    overflow: hidden;
}
.top-aboutus__sub-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.top-aboutus__body {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000 !important;
}
.top-aboutus__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    color: #000000 !important;
}
.top-aboutus__subtitle {
    font-size: 18px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0 0 35px 0;
    color: #000000 !important;
}
.top-aboutus__desc {
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin: 0 0 40px 0;
    color: #000000 !important;
}
.top-aboutus__links {
    display: flex;
    align-items: center;
    gap: 40px;
}
.top-aboutus__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    color: #000000 !important;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-aboutus__link:hover {
    opacity: 0.7;
}
.top-aboutus__link .arrow {
    display: inline-block;
    color: #000000 !important;
    transition: transform 0.3s ease;
}
.top-aboutus__link:hover .arrow {
    transform: translateX(6px);
}
@media screen and (max-width: 992px) {
    .top-aboutus {
        padding: 60px 0 80px;
    }
    .top-aboutus__inner {
        flex-direction: column;
        gap: 40px;
        padding: 0 20px;
    }
    .top-aboutus__left,
    .top-aboutus__right {
        max-width: 100%;
        width: 100%;
        margin-left: 0;
    }
    .top-aboutus__main-img {
        height: 400px;
    }
    .top-aboutus__sub-images {
        justify-content: space-between;
        gap: 15px;
        margin-bottom: 30px;
    }
    .top-aboutus__sub-img-wrap {
        width: 48%;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    .top-aboutus__title {
        font-size: 32px;
    }
    .top-aboutus__subtitle {
        font-size: 16px;
        margin-bottom: 25px;
    }
    .top-aboutus__desc {
        font-size: 16px;
    }
    .top-aboutus__desc br {
        display: none;
    }
    .top-aboutus__links {
        gap: 25px;
    }
}
.top-news {
    background-color: #f1f1f1;
    padding: 100px 0 120px;
    width: 100%;
}
.top-news__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}
.top-news__head {
    margin-bottom: 50px;
}
.top-news__title {
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    margin: 0;
    color: #000000 !important;
}
.top-news__list {
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 50px;
}
.top-news__item {
    border-top: 1px solid #e0e0e0;
}
.top-news__item-link {
    display: flex;
    align-items: flex-start;
    padding: 32px 0;
    text-decoration: none;
    color: #000000 !important;
    transition: opacity 0.3s ease;
}
.top-news__item-link:hover {
    opacity: 0.7;
}
.top-news__date {
    width: 200px;
    flex-shrink: 0;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", serif;
    font-size: 16px;
    color: #666666;
    letter-spacing: 0.05em;
    padding-top: 2px;
}
.top-news__content {
    flex: 1;
    padding-right: 40px;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", serif;
}
.top-news__item-title {
    font-size: 16px;
    font-weight: normal;
    line-height: 1.6;
    margin: 0 0 8px 0;
    color: #000000 !important;
    letter-spacing: 0.03em;
}
.top-news__item-excerpt {
    font-size: 14px;
    color: #555555;
    line-height: 1.7;
    margin: 0;
    letter-spacing: 0.03em;
}
.top-news__arrow {
    font-size: 18px;
    color: #000000 !important;
    transition: transform 0.3s ease;
    padding-top: 2px;
}
.top-news__item-link:hover .top-news__arrow {
    transform: translateX(6px);
}
.top-news__more {
    text-align: center;
}
.top-news__more-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", serif;
    font-size: 16px;
    color: #000000 !important;
    text-decoration: none;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.top-news__more-link:hover {
    opacity: 0.7;
}
.top-news__more-link .arrow {
    display: inline-block;
    color: #000000 !important;
    transition: transform 0.3s ease;
}
.top-news__more-link:hover .arrow {
    transform: translateX(6px);
}
@media screen and (max-width: 768px) {
    .top-news {
        padding: 60px 0 80px;
    }
    .top-news__inner {
        padding: 0 20px;
    }
    .top-news__title {
        font-size: 32px;
    }
    .top-news__head {
        margin-bottom: 30px;
    }
    .top-news__item-link {
        flex-direction: column;
        padding: 24px 0;
        position: relative;
    }
    .top-news__date {
        width: 100%;
        margin-bottom: 8px;
        font-size: 14px;
    }
    .top-news__content {
        padding-right: 30px;
    }
    .top-news__item-title {
        font-size: 16px;
    }
    .top-news__item-excerpt {
        font-size: 13px;
    }
    .top-news__arrow {
        position: absolute;
        right: 0;
        top: 24px;
    }
}
.top-banners {
    width: 100%;
    background-color: #f1f1f1;
    border-top: 1px solid #e0e0e0;
    border-bottom: 1px solid #e0e0e0;
}
.top-banners__inner {
    display: flex;
    width: 100%;
}
.top-banner-item {
    position: relative;
    width: 50%;
    min-height: 480px;
    display: flex;
    align-items: flex-start;
    padding: 125px 8%;
    text-decoration: none;
    background-color: #f1f1f1;
    overflow: hidden;
    box-sizing: border-box;
    transition: background-color 0.5s ease;
}
.top-banner-item__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 0.6s ease, transform 0.6s ease;
    z-index: 1;
}
.top-banner-item__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.6s ease;
    z-index: 2;
}
.top-banner-item__content {
    position: relative;
    z-index: 3;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
    color: #000000;
    transition: color 0.5s ease;
}
.top-banner-item__title {
    font-size: 40px;
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: 1.2;
    margin: 0 0 12px 0;
    color: inherit;
}
.top-banner-item__subtitle {
    font-size: 16px;
    font-weight: normal;
    letter-spacing: 0.08em;
    margin: 0 0 25px 0;
    color: inherit;
}
.top-banner-item__desc {
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.05em;
    margin: 0 0 35px 0;
    color: inherit;
}
.top-banner-item__link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    color: inherit;
    letter-spacing: 0.05em;
}
.top-banner-item__link .arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}
.top-banner-item:hover .top-banner-item__bg {
    opacity: 1;
    transform: scale(1);
}
.top-banner-item:hover .top-banner-item__overlay {
    opacity: 1;
}
.top-banner-item:hover .top-banner-item__content {
    color: #ffffff !important;
}
.top-banner-item:hover .top-banner-item__link .arrow {
    transform: translateX(6px);
}
.top-banner-item:first-child {
    border-right: 1px solid #e0e0e0;
}
@media screen and (max-width: 992px) {
    .top-banners__inner {
        flex-direction: column;
    }
    .top-banner-item {
        width: 100%;
        min-height: 360px;
        padding: 60px 20px;
    }
    .top-banner-item:first-child {
        border-right: none;
        border-bottom: 1px solid #e0e0e0;
    }
    .top-banner-item__title {
        font-size: 32px;
    }
    .top-banner-item__subtitle {
        font-size: 16px;
    }
    .top-banner-item__desc {
        font-size: 14px;
    }
    .top-banner-item__desc br {
        display: none;
    }
}
.site-footer {
    background-color: #f1f1f1;
    padding: 90px 0 50px;
    position: relative;
    color: #000000;
    font-family: "Shippori Mincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}
.site-footer li {
    padding-left: 0 !important;
    margin-top: 0 !important;
}
.site-footer li::before {
    display: none !important;
    content: none !important;
}
.site-footer__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}
.site-footer__content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-bottom: 70px;
    gap: 60px;
}
.site-footer__info {
    width: 360px;
    flex-shrink: 0;
}
.site-footer__logo {
    margin-bottom: 30px;
}
.site-footer__logo img {
    width: 110px;
    height: auto;
    display: block;
}
.site-footer__tel-wrap {
    margin-bottom: 25px;
}
.site-footer__tel {
    font-size: 16px;
    margin: 0 0 6px 0;
    color: #000000 !important;
}
.site-footer__tel span {
    font-size: 28px;
    font-weight: normal;
    letter-spacing: 0.02em;
    margin-left: 2px;
}
.site-footer__hours {
    font-size: 14px;
    color: #888888 !important;
    margin: 0;
}
.site-footer__address p {
    font-size: 14px;
    line-height: 1.8;
    color: #333333 !important;
    margin: 0;
}
.site-footer__nav-wrap {
    flex: 1;
    padding-top: 25px;
}
.site-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 36px;
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
}
.site-footer__nav-list--second {
    margin-bottom: 0;
}
.site-footer__nav-list li a {
    color: #000000 !important;
    text-decoration: none;
    font-size: 16px;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.site-footer__nav-list li a:hover {
    opacity: 0.7;
}
.site-footer__reserve-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background-color: #8b1d22 !important;
    color: #ffffff !important;
    padding: 10px 24px;
    font-size: 16px;
    text-decoration: none;
    transition: opacity 0.3s ease;
}
.site-footer__reserve-btn:hover {
    opacity: 0.85;
}
.site-footer__sub-nav {
    margin-bottom: 35px;
    text-align: center;
}
.site-footer__sub-nav ul {
    display: flex;
    justify-content: center;
    gap: 35px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.site-footer__sub-nav li a {
    color: #000000 !important;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}
.site-footer__sub-nav li a:hover {
    opacity: 0.7;
}
.site-footer__copyright {
    text-align: center;
    font-size: 13px;
    color: #888888 !important;
    letter-spacing: 0.05em;
}
@media screen and (max-width: 992px) {
    .site-footer {
        padding: 60px 0 40px;
    }
    .site-footer__content {
        flex-direction: column;
        gap: 40px;
        padding-bottom: 40px;
    }
    .site-footer__info {
        width: 100%;
    }
    .site-footer__nav-wrap {
        padding-top: 0;
    }
    .site-footer__nav-list {
        gap: 18px 24px;
        margin-bottom: 24px;
    }
    .site-footer__sub-nav ul {
        gap: 20px;
    }
}
.site-footer__nav-list li a,
.site-footer__sub-nav li a,
.site-footer__tel,
.site-footer__tel span,
.site-footer__address p {
    color: #000000 !important;
}
.site-footer__reserve-btn,
.site-footer__reserve-btn * {
    color: #ffffff !important;
}
.site-footer__reserve-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background-color: #8b1d22 !important;
    padding: 10px 24px !important;
    font-size: 16px !important;
    text-decoration: none !important;
    line-height: 1 !important;
    transition: opacity 0.3s ease;
}
.site-footer__reserve-btn:hover {
    opacity: 0.85;
}
.site-footer__reserve-icon {
    width: 16px;
    height: 16px;
    display: block;
    flex-shrink: 0;
}

/* ========================================================
   下層ページ共通設定 (フォント・背景色)
   ======================================================== */
/* Googleフォント「Shippori Mincho」のMedium(500)とBold(700)を読み込み */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;700&display=swap');

body:not(.is-waiting) {
    opacity: 1;
    background-color: #F1F1F1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 下層ページのメインエリア背景を #F1F1F1 にし、横幅いっぱいに広げる */
main#contents {
    background-color: #F1F1F1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 下層ページ全体の基本フォント設定 */
body.wp-singular {
    font-family: "Shippori Mincho", serif !important;
    color: #333;
}
.lib-breadcrumb__inside {
    max-width: calc(1200px + .75rem * 2) !important;
}
.lib-breadcrumb__outer {
    background-color: #F1F1F1 !important;
}
.lib-breadcrumb__list {
    font-size: 16px;
}
.lib-breadcrumb__list li a {
    font-size: 16px;
    font-family: "Shippori Mincho", serif !important;
}
.lib-hero__title-en {
    color: #FFF !important;
    font-family: "Shippori Mincho", serif !important;
    font-size: 40px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 30px !important;
    text-transform: uppercase !important;
    margin-bottom: 0 !important;
}
.media-post__item {
    background-color: #fff;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
    font-family: "Shippori Mincho", serif !important;
}
.lib-recommend__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* ========================================================
   下層ページのヘッダーを横幅100%にし、上部にピタッとくっつける
   ======================================================== */
body:not(.home) .p-header.lib-header-BS02 {
    top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-shadow: none !important;
}

/* ========================================================
   下層ページのヘッダー（CONCEPT）エリアの装飾
   ※トップページには影響させない
   ======================================================== */
body:not(.home) .lib-hero__outer {
    position: relative;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-color: #D9D9D9 !important;
    padding: 130px 0 30px !important;
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    z-index: 1;
    min-height: 400px !important;
}

/* ▼ 追加：画像の上に透過レイヤー（#5A5A5A 20%）を重ねる ▼ */
body:not(.home) .lib-hero__outer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(90, 90, 90, 0.3);
    z-index: -1;
}

body:not(.home) :where(.wrap) {
    max-width: calc(1200px + .75rem * 2);
}

/* 内部のテキストは中央にキープする */
body:not(.home) .lib-hero__inner {
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    text-align: left !important;
}

body:not(.home) .lib-hero__outer .lib-hero__inner {
    text-align: left !important;
    /* テキストを左寄せに */
}

/* CONCEPT (英語タイトル) */
body:not(.home) .c-under-mv-text-en {
    color: #ffffff !important;
    /* 黒から白に変更 */
    font-family: "Shippori Mincho", serif !important;
    font-size: 40px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 30px !important;
    /* ご指定の数値 */
    text-transform: uppercase !important;
    margin-bottom: 0 !important;
    /* 余分な余白をリセット */
}

/* コンセプト (日本語サブタイトル) */
body:not(.home) .lib-hero__title {
    color: #ffffff !important;
    /* 黒から白に変更 */
    font-family: "Shippori Mincho", serif !important;
    font-size: 20px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 30px !important;
    /* ご指定の数値 */
    margin-top: 15px !important;
    /* 英語タイトルとの間隔を微調整 */
    letter-spacing: 0.1em !important;
}

body:not(.home) .p-header.lib-header-BS02 .lib-header__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    height: 100% !important;
}

/* ========================================================
   コンセプトセクション (p-concept) のレイアウト
   ======================================================== */
.p-concept {
    padding: 120px 40px 140px;
    /* お客様ご希望のゆったりした統一余白 */
}

.p-concept__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 120px;
}

/* 左側：画像エリア */
.p-concept__img {
    width: 50%;
}

/* グレーのダミー画像（本番でimgタグに入れ替えるまでの仮枠） */
.p-concept__img .dummy-img {
    width: 100%;
    aspect-ratio: 4 / 5;
    /* 縦長の美しい比率をキープ */
    background-color: #D9D9D9;
    /* 仮のグレー色 */
}

/* 右側：テキストエリア */
.p-concept__content {
    width: 55%;
}

.p-concept__lead {
    font-size: 16px;
    /* ご指定: 本文16px */
    font-weight: 700;
    /* 見出しの導入としてBold */
    margin-bottom: 12px;
    letter-spacing: 0.1em;
}

.p-concept__title {
    font-size: 24px;
    /* ご指定のH3サイズ: 24px */
    font-weight: 700;
    /* Bold */
    margin-bottom: 40px;
    letter-spacing: 0.05em;
}

.p-concept__text {
    font-size: 16px;
    /* ご指定: 本文16px */
    font-weight: 500;
    /* ご指定: 本文Medium(500) */
    line-height: 2.2;
    /* 余白を気にするお客様向けに、上品でゆったりとした行間 */
    letter-spacing: 0.08em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .lib-hero__outer {
        padding: 120px 0 40px;
        /* 固定ヘッダーに被らないよう上余白を大きめに */
    }
    .c-under-mv-text-en {
        font-size: 28px;
        /* SPサイズ調整 */
    }
    .p-concept {
        padding: 80px 20px 100px;
        /* SPのセクション余白 */
    }
    .p-concept__inner {
        flex-direction: column;
        /* 縦並びに変更 */
        gap: 40px;
    }
    .p-concept__img,
    .p-concept__content {
        width: 100%;
    }
    .p-concept__img .dummy-img {
        aspect-ratio: 1 / 1;
        /* スマホでは正方形寄りに */
    }
    .p-concept__title {
        margin-bottom: 30px;
    }
}

/* ========================================================
   非日常の休息 セクション (p-retreat)
   ======================================================== */
.p-retreat {
    /* 前のセクションからの余白（上）と、次のセクションへの余白（下） */
    padding: 0 40px 140px;
}

.p-retreat__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-retreat__header {
    text-align: center;
    margin-bottom: 60px;
    /* 画像との余白 */
}

.p-retreat__sub-title {
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
    /* 英語タイトルとの余白 */
}

.p-retreat__title {
    color: #52525B;
    font-family: "Shippori Mincho", serif !important;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

/* --- ダミー画像 --- */
.p-retreat__img {
    width: 100%;
    margin-bottom: 60px;
    /* 下のテキストとの余白 */
}

.dummy-img-retreat {
    width: 100%;
    height: 450px;
    background-color: #D9D9D9;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- テキストエリア --- */
.p-retreat__text-area {
    text-align: center;
}

.p-retreat__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    /* 前セクションと合わせたゆったりした行間 */
    letter-spacing: 0.08em;
    margin-bottom: 2em;
    /* 段落ごとの間隔 */
}

.p-retreat__text:last-child {
    margin-bottom: 0;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-retreat {
        padding: 0 20px 80px;
    }
    .p-retreat__header {
        margin-bottom: 40px;
    }
    .p-retreat__title {
        font-size: 28px;
        /* SP用にサイズを微調整 */
    }
    .p-retreat__img {
        margin-bottom: 40px;
    }
    .dummy-img-retreat {
        height: auto;
        /* スマホでは比率を保つために高さを自動に */
        aspect-ratio: 16 / 9;
        /* スマホ時の画像の比率 */
    }
    .p-retreat__text {
        text-align: left;
        /* スマホ画面で長文が中央揃えだと読みづらいため左寄せに */
    }
}

/* ========================================================
      料理への想い セクション (p-culinary)
      ======================================================== */
.p-culinary {
    padding: 0 40px 140px;
    /* 前のセクションからの余白（上）と、次のセクションへの余白（下） */
}

.p-culinary__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    /* 縦の中央揃え */
    gap: 80px;
    /* テキストと画像の隙間 */
}

/* --- 左側：テキストエリア --- */
.p-culinary__content {
    width: 50%;
}

.p-culinary__lead {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
    letter-spacing: 0.1em;
}

.p-culinary__title {
    color: #52525B;
    /* デザイン案に近いグレー味のある文字色に */
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 50px;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.p-culinary__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.08em;
    margin-bottom: 50px;
    /* 特徴エリアとの余白 */
}

/* --- 特徴（ゴシック体）エリア --- */
.p-culinary__features {
    display: flex;
    gap: 40px;
    /* 2つの特徴の間隔 */
}

.p-culinary__feature {
    display: flex;
    flex-direction: column;
    gap: 8px;
    /* 英語と日本語の間隔 */
}

.p-culinary__feature-label {
    color: #A1A1AA;
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.05em;
}

.p-culinary__feature-name {
    color: #18181B;
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
}

/* --- 右側：ダミー画像エリア --- */
.p-culinary__img {
    width: 50%;
}

.dummy-img-culinary {
    width: 100%;
    aspect-ratio: 1 / 1;
    /* 正方形に近い美しい比率 */
    background-color: #D9D9D9;
    /* ダミーのグレー */
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-culinary {
        padding: 0 20px 100px;
    }
    .p-culinary__inner {
        flex-direction: column-reverse;
        /* スマホ時は画像を上に配置（お好みで flex-direction: column; に変更可） */
        gap: 40px;
    }
    .p-culinary__content,
    .p-culinary__img {
        width: 100%;
    }
    .p-culinary__title {
        font-size: 28px;
        margin-bottom: 30px;
    }
    .p-culinary__features {
        flex-direction: column;
        /* スマホ時は特徴を縦並びに */
        gap: 20px;
    }
}

/* ========================================================
   厳選温泉 セクション (p-hotspring)
   ======================================================== */
.p-hotspring {
    padding: 0 40px 140px;
    /* 前のセクションからの余白（上）と、次のセクションへの余白（下） */
}

.p-hotspring__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-hotspring__header {
    text-align: center;
    margin-bottom: 60px;
    /* 画像エリアとの余白 */
}

.p-hotspring__sub-title {
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
}

.p-hotspring__title {
    color: #52525B;
    font-family: "Shippori Mincho", serif !important;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

/* --- 3カラム画像エリア --- */
.p-hotspring__gallery {
    display: flex;
    gap: 30px;
    /* 画像同士の隙間 */
    margin-bottom: 60px;
    /* 下のテキストとの余白 */
}

/* ▼ 変更：ダミークラスを削除し、imgタグに直接指定 ▼ */
.p-hotspring__gallery img {
    flex: 1;
    /* 3つの画像を均等な幅に広げる */
    width: 100%;
    min-width: 0;
    /* Flexboxの幅計算の崩れを防止 */
    aspect-ratio: 4 / 3;
    /* 画像の比率 */
    object-fit: cover;
    /* 縦横比が違う画像でも枠に合わせて綺麗にトリミングする */
}

/* --- テキストエリア --- */
.p-hotspring__text-area {
    max-width: 960px;
    /* 文字の行が長くなりすぎないように幅を制限 */
    margin: 0 auto;
}

.p-hotspring__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.08em;
    text-align: justify;
    /* 両端揃えにして、文字の端を綺麗に整える */
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-hotspring {
        padding: 0 20px 100px;
    }
    .p-hotspring__header {
        margin-bottom: 40px;
    }
    .p-hotspring__title {
        font-size: 28px;
    }
    .p-hotspring__gallery {
        flex-direction: column;
        /* スマホ時は画像を縦並びに変更 */
        gap: 20px;
        margin-bottom: 40px;
    }

    /* ▼ 変更：SP時の画像比率変更もimgタグに対して指定 ▼ */
    .p-hotspring__gallery img {
        aspect-ratio: 16 / 9;
        /* スマホ時は少し横長にして見やすく */
    }

    .p-hotspring__text {
        text-align: left;
        /* スマホ時は左寄せにする */
    }
}

/* ========================================================
   この土地と共に セクション (p-terroir)
   ======================================================== */
.p-terroir {
    padding: 0 40px 140px;
    /* 前のセクションからの余白（上）と、CTAへの余白（下） */
}

.p-terroir__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    /* 縦の中央揃え */
    gap: 80px;
    /* 画像とテキストの隙間 */
}

/* --- 左側：ダミー画像エリア --- */
.p-terroir__img {
    width: 45%;
}

.dummy-img-terroir {
    width: 100%;
    aspect-ratio: 1 / 1.1;
    /* やや縦長の美しい比率 */
    background-color: #D9D9D9;
    /* ダミーのグレー */
}

/* --- 右側：テキストエリア --- */
.p-terroir__content {
    width: 55%;
}

.p-terroir__lead {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
    letter-spacing: 0.1em;
}

.p-terroir__title {
    color: #52525B;
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 50px;
    letter-spacing: 0.05em;
    line-height: 1.2;
}

.p-terroir__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.08em;
    margin-bottom: 50px;
    /* リストエリアとの余白 */
}

/* --- リスト（箇条書き） --- */
.p-terroir__list {
    list-style: none;
    /* デフォルトの黒丸を消す */
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    /* リスト項目の間隔 */
}
.p-terroir__list li {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.08em;
    position: relative;
    /* 疑似要素の基準位置とする */
    padding-left: 1.5em !important;
    /* ダッシュとスペースの分の余白を左に設ける */
}

/* --- 疑似要素でダッシュ（—）を表示 --- */
.p-terroir__list li::before {
    content: "—" !important;
    /* ダッシュを表示 */
    display: block !important;
    position: absolute;
    left: 0;
    /* 左端に配置 */
    top: 0;
    color: #333;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    border-radius: 0 !important;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-terroir {
        padding: 0 20px 100px;
    }
    .p-terroir__inner {
        flex-direction: column;
        /* スマホ時は画像を上、テキストを下に */
        gap: 40px;
    }
    .p-terroir__img,
    .p-terroir__content {
        width: 100%;
    }
    .p-terroir__title {
        font-size: 28px;
        margin-bottom: 30px;
    }
    .p-terroir__text {
        margin-bottom: 30px;
    }
    .dummy-img-terroir {
        aspect-ratio: 1 / 1;
        /* スマホ時は正方形に近づける */
    }
}

/* ========================================================
   ABOUTページ： 食湯館 セクション
   ======================================================== */
.p-about-shokutoukan {
    padding: 120px 40px 140px;
    /* コンセプトページと統一した上下余白 */
}

.p-about-shokutoukan__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- セクションタイトル --- */
.p-about-shokutoukan__header {
    text-align: center;
    margin-bottom: 100px;
    /* 下のコンテンツとのゆったりとした余白 */
}

.p-about-shokutoukan__ruby {
    display: block;
    font-size: 16px;
    /* ふりがなは少し小さめに */
    letter-spacing: 0.4em;
    /* 文字間を広げて上品に */
    margin-bottom: 16px;
    color: #333;
}

.p-about-shokutoukan__title {
    font-size: 36px;
    /* 指定のH2サイズ */
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
}

/* --- 左右交互ブロック (画像とテキスト) --- */
.p-about-block {
    display: flex;
    align-items: center;
    /* 縦の中央揃え */
    gap: 80px;
    /* 画像とテキストの隙間 */
    margin-bottom: 120px;
    /* ブロック同士の縦の隙間 */
}

/* 最後のブロックの下の余白はゼロに */
.p-about-block:last-child {
    margin-bottom: 0;
}

/* リバースクラスが付いた時は、PC表示で左右を反転させる */
.p-about-block--reverse {
    flex-direction: row-reverse;
}

/* --- 画像エリア --- */
.p-about-block__img {
    width: 55%;
}

.dummy-img-about {
    width: 100%;
    aspect-ratio: 4 / 3.2;
    /* デザイン案に近い比率のダミー箱 */
    background-color: #D9D9D9;
}

/* --- テキストエリア --- */
.p-about-block__content {
    width: 50%;
    /* コンセプトページと揃えた比率 */
}

.p-about-block__title {
    font-size: 24px;
    /* 指定のH3サイズ */
    font-weight: 700;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
    color: #18181B;
    line-height: 1.4;
}

.p-about-block__text {
    font-size: 16px;
    /* 指定の本文サイズ */
    font-weight: 500;
    line-height: 2.2;
    /* ゆったりとした行間 */
    letter-spacing: 0.08em;
    color: #333;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-about-shokutoukan {
        padding: 80px 20px 100px;
    }
    .p-about-shokutoukan__header {
        margin-bottom: 60px;
    }
    .p-about-shokutoukan__title {
        font-size: 28px;
    }

    /* スマホ時はすべて縦並び（画像が上、テキストが下）にする */
    .p-about-block,
    .p-about-block--reverse {
        flex-direction: column;
        gap: 40px;
        margin-bottom: 80px;
    }

    .p-about-block__img,
    .p-about-block__content {
        width: 100%;
    }

    .dummy-img-about {
        aspect-ratio: 4 / 3;
        /* スマホ時は比率を調整 */
    }

    .p-about-block__title {
        margin-bottom: 20px;
    }
}

/* ========================================================
   ABOUTページ： 夢酔庵 セクション
   ======================================================== */
.p-about-musuian {
    /* 前の「食湯館」の下余白があるので、上は0にしてバランスを取ります */
    padding: 0 40px 140px;
}

.p-about-musuian__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- セクションタイトル --- */
.p-about-musuian__header {
    text-align: center;
    margin-bottom: 100px;
}

.p-about-musuian__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.4em;
    margin-bottom: 16px;
    color: #333;
}

.p-about-musuian__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-about-musuian {
        padding: 0 20px 100px;
    }
    .p-about-musuian__header {
        margin-bottom: 60px;
    }
    .p-about-musuian__title {
        font-size: 28px;
    }
}

/* ========================================================
   ABOUTページ： 建物について セクション
   ======================================================== */
.p-about-building {
    padding: 0 0 20px;
    width: 100%;
}

/* --- タイトル周り --- */
.p-about-building__header {
    text-align: center;
    margin-bottom: 60px;
    /* 画像との余白 */
}

.p-about-building__en {
    display: block;
    font-size: 14px;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
    color: #333;
    font-family: "Shippori Mincho", serif !important;
}

.p-about-building__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
}

/* --- フルワイド画像エリア --- */
.p-about-building__img-wrap {
    /* 親要素の幅制限を無視して画面幅いっぱいに広げる */
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-bottom: 80px;
    /* 下のテキストとの余白 */
}

.dummy-img-building {
    width: 100%;
    height: 450px;
    /* 画像の高さを指定 */
    background-color: #E6E6E6;
    /* デザインに合わせて少し明るめのグレー */
    border-top: 1px solid #D4D4D4;
    /* 上下の境界線 */
    border-bottom: 1px solid #D4D4D4;
}

/* --- テキストエリア --- */
.p-about-building__text-wrap {
    max-width: 1200px;
    /* コンテンツ幅の中央に収める */
    margin: 0 auto;
    padding: 0 40px;
    text-align: center;
}

.p-about-building__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.08em;
    color: #333;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-about-building {
        padding: 0 0 100px;
    }
    .p-about-building__title {
        font-size: 28px;
    }
    .p-about-building__img-wrap {
        margin-bottom: 50px;
    }
    .dummy-img-building {
        height: 250px;
        /* スマホ時は画像の高さを抑える */
    }
    .p-about-building__text-wrap {
        padding: 0 20px;
    }
    .p-about-building__text {
        text-align: left;
        /* スマホ時は読みやすさ重視で左寄せに */
    }
}

/* ========================================================
   ABOUTページ： 歴史・空間 セクション
   ======================================================== */
.p-about-history {
    padding: 80px 40px 140px;
    /* 前のフルワイド画像からの余白 */
}

.p-about-history__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- 上段特有のレイアウト（上揃えにして、左画像を少し下げる＆左端に付ける） --- */
.p-about-block--history-top {
    align-items: flex-start;
    /* 中央揃えを解除して上揃えに */
}

.p-about-block--history-top .p-about-block__img {
    margin-top: 80px;
    /* デザイン案に合わせて、左の画像を少し下にずらす */

    /* ▼ 画面左端から中央コンテンツエリア(45%の幅)まで広げる計算式 ▼ */
    width: calc(45% + (100vw - 100%) / 2) !important;
    margin-left: calc((100vw - 100%) / -2) !important;
}

/* --- ダミー画像 --- */
.dummy-img-history-main {
    width: 100%;
    height: 450px;
    background-color: #D9D9D9;
}

.dummy-img-history-sub {
    width: 100%;
    aspect-ratio: 16 / 10;
    /* 横長（サブ画像） */
    margin-bottom: 40px;
    /* 下のタイトルとの余白 */
}

.dummy-img-history-main2 {
    width: 100%;
    aspect-ratio: 16 / 10;
    background-color: #D9D9D9;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-about-history {
        padding: 40px 20px 100px;
    }
    .p-about-block--history-top .p-about-block__img {
        margin-top: 0;
        width: 100% !important;
        margin-left: 0 !important;
    }
    .dummy-img-history-main {
        height: 250px;
    }
}

/* ========================================================
   SPAページ： 温泉イントロダクション セクション
   ======================================================== */
.p-spa-intro {
    padding: 120px 40px 140px;
    /* 統一した上下余白 */
}

.p-spa-intro__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-spa-intro__header {
    text-align: center;
    margin-bottom: 60px;
    /* 画像との余白 */
}

.p-spa-intro__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    /* 文字間を広げて上品に */
    color: #333;
    margin-bottom: 16px;
    font-family: "Shippori Mincho", serif !important;
}

.p-spa-intro__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- ダミー画像エリア --- */
.p-spa-intro__img {
    margin-bottom: 60px;
    /* テキストとの余白 */
}

.dummy-img-spa {
    width: 100%;
    aspect-ratio: 16 / 7;
    /* デザイン案に近いワイドな比率 */
    background-color: #D9D9D9;
}

/* --- テキストエリア --- */
.p-spa-intro__text-area {
    text-align: center;
    max-width: 800px;
    /* 1行が長くなりすぎないように幅を制限 */
    margin: 0 auto;
}

.p-spa-intro__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    /* ゆったりとした行間 */
    letter-spacing: 0.08em;
    color: #333;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-spa-intro {
        padding: 80px 20px 100px;
    }
    .p-spa-intro__header {
        margin-bottom: 40px;
    }
    .p-spa-intro__title {
        font-size: 28px;
    }
    .p-spa-intro__img {
        margin-bottom: 40px;
    }
    .dummy-img-spa {
        aspect-ratio: 4 / 3;
        /* スマホ時は少し縦を長めにして見やすく */
    }
    .p-spa-intro__text {
        text-align: left;
        /* スマホ時は読みやすさ優先で左寄せに */
    }
}

/* ========================================================
   SPAページ： 大浴場 セクション
   ======================================================== */
.p-spa-public {
    padding: 0 40px 140px;
    /* 前のセクションからの余白（上）と、次への余白（下） */
}

.p-spa-public__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-spa-public__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-spa-public__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-spa-public__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- 2カラムグリッド --- */
.p-spa-public__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* 2カラムに均等分割 */
    gap: 80px 60px;
    /* 縦の隙間80px、横の隙間60px */
}

/* --- 個別のお風呂ブロック --- */
.p-spa-bath__img {
    margin-bottom: 30px;
    /* 画像と下のテキストの隙間 */
}

.dummy-img-bath {
    width: 100%;
    aspect-ratio: 16 / 10;
    /* 少し横長な使いやすい比率 */
    background-color: #D9D9D9;
}

.p-spa-bath__info {
    text-align: center;
}

.p-spa-bath__name {
    font-size: 20px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 20px;
    display: flex;
    /* タイトルとタグを横並びに */
    justify-content: center;
    align-items: center;
    gap: 12px;
    /* タイトルとタグの隙間 */
}

/* 「男湯」「女湯」のタグ */
.p-spa-bath__tag {
    font-size: 12px;
    font-weight: 400;
    color: #666;
    border: 1px solid #CCC;
    /* 枠線 */
    padding: 4px 8px;
    /* 内側の余白 */
    line-height: 1;
    letter-spacing: 0.05em;
    background-color: #FFF;
    /* 念のため白背景を敷く */
}

.p-spa-bath__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2;
    color: #333;
    letter-spacing: 0.08em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-spa-public {
        padding: 0 20px 100px;
    }
    .p-spa-public__title {
        font-size: 28px;
    }
    .p-spa-public__grid {
        grid-template-columns: 1fr;
        /* スマホ時は縦1列にする */
        gap: 60px;
    }
    .p-spa-bath__text {
        text-align: left;
        /* スマホ時は長文が読みやすいよう左寄せに */
    }
}

/* ========================================================
   SPAページ： 貸切風呂・客室風呂 セクション
   ======================================================== */
.p-spa-private {
    padding: 80px 40px 140px;
    /* 余白調整 */
}

.p-spa-private__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-spa-private__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-spa-private__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-spa-private__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- ブロック共通 --- */
.p-spa-private-block {
    display: flex;
    gap: 80px;
    margin-bottom: 140px;
    /* 上段と下段の間隔 */
}
.p-spa-private-block:last-child {
    margin-bottom: 0;
}

/* --- 上段：貸切家族風呂 --- */
.p-spa-private-block--top {
    align-items: flex-start;
    /* 上揃え */
}

.p-spa-private-block__img-left {
    margin-top: 120px;
    /* デザイン案に合わせて左画像を少し下にずらす */
    /* ▼ 画面左端から広げる計算式 ▼ */
    width: calc(55% + (100vw - 100%) / 2) !important;
    margin-left: calc((100vw - 100%) / -2) !important;
}

.dummy-img-private-main {
    width: 100%;
    height: 450px;
    /* 指定の高さ 450px */
    background-color: #D9D9D9;
}

.p-spa-private-block__content-right {
    width: 45%;
    text-align: center;
}

.dummy-img-private-sub {
    width: 100%;
    aspect-ratio: 4 / 3;
    /* 少し明るめのダミーカラー */
    margin-bottom: 40px;
}

/* --- 下段：客室風呂 --- */
.p-spa-private-block--bottom {
    align-items: center;
    /* 縦の中央揃え */
}

.p-spa-private-block__content-left {
    width: 45%;
    text-align: center;
}

.p-spa-private-block__img-right {
    /* ▼ 画面右端から広げる計算式 ▼ */
    width: calc(55% + (100vw - 100%) / 2) !important;
    margin-right: calc((100vw - 100%) / -2) !important;
}

.dummy-img-room-main {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: #D9D9D9;
}

/* --- テキストスタイル --- */
.p-spa-private__name {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.p-spa-private__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-spa-private {
        padding: 40px 20px 100px;
    }
    .p-spa-private__title {
        font-size: 28px;
    }
    .p-spa-private-block {
        flex-direction: column;
        /* 縦並びに */
        gap: 40px;
        margin-bottom: 80px;
    }

    /* 上段のスマホ表示 */
    .p-spa-private-block__img-left {
        margin-top: 0;
        width: 100% !important;
        /* 引っ張りを解除して幅100%に */
        margin-left: 0 !important;
    }
    .dummy-img-private-main {
        height: 250px;
        /* スマホ時は高さを抑える */
    }
    .p-spa-private-block__content-right {
        width: 100%;
    }

    /* 下段のスマホ表示（画像を上にするためにリバース） */
    .p-spa-private-block--bottom {
        flex-direction: column-reverse;
    }
    .p-spa-private-block__img-right {
        width: 100% !important;
        /* 引っ張りを解除して幅100%に */
        margin-right: 0 !important;
    }
    .p-spa-private-block__content-left {
        width: 100%;
    }
    .p-spa-private__text {
        text-align: left;
        /* 長文になるのでスマホ時は左寄せに */
    }
}

/* ========================================================
   SPAページ： 日帰り入浴 セクション
   ======================================================== */
.p-spa-dayuse {
    padding: 80px 40px 140px;
    /* 余白調整 */
}

.p-spa-dayuse__inner {
    /* 指定の線幅 220px + 878px = 1098px に合わせて全体の最大幅を設定 */
    max-width: 1098px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-spa-dayuse__header {
    text-align: center;
    margin-bottom: 60px;
}

.p-spa-dayuse__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-spa-dayuse__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- リスト部分 (表組み風) --- */
.p-spa-dayuse__list {
    display: flex;
    flex-direction: column;
    margin: 0;
}

.p-spa-dayuse__row {
    display: flex;
    align-items: stretch;
    /* dtとddの高さを自動で揃える（下線を繋げるため） */
}

/* 左側の項目名 */
.p-spa-dayuse__row dt {
    width: 220px;
    /* ご指定の赤線の幅に合わせる */
    flex-shrink: 0;
    padding: 30px 0;
    font-size: 16px;
    font-weight: 700;
    color: #18181B;
    position: relative;
    /* 疑似要素の基準 */
}

/* 項目名の下線（ご指定の赤色CSS） */
.p-spa-dayuse__row dt::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    /* dtの幅220pxに対して100% */
    height: 1px;
    background: #8B0D13;
}

/* 右側の詳細内容 */
.p-spa-dayuse__row dd {
    flex-grow: 1;
    max-width: 878px;
    padding: 30px 0 30px 40px;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.7;
    color: #333;
    letter-spacing: 0.05em;
    position: relative;
    text-align: justify;
}

/* 詳細内容の下線（ご指定の黒色CSS） */
.p-spa-dayuse__row dd::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    /* ddの幅に対して100% */
    height: 1px;
    background: #000;
}

/* 「ご予約はこちら」のリンク装飾 */
.p-spa-dayuse__link {
    color: #333;
    text-decoration: none;
    /* border-bottom: 1px solid #333; */
    /* 文字の下に控えめな線を引く */
    display: inline-block;
    margin-top: 12px;
    transition: opacity 0.3s;
}

.p-spa-dayuse__link:hover {
    opacity: 0.6;
    /* ホバー時に少し薄くする */
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-spa-dayuse {
        padding: 40px 20px 100px;
    }
    .p-spa-dayuse__title {
        font-size: 28px;
    }
    .p-spa-dayuse__row {
        flex-direction: column;
        /* スマホ時は縦並びに変更 */
    }
    .p-spa-dayuse__row dt {
        width: 100%;
        /* 幅を画面いっぱいに */
        padding: 20px 0 10px;
    }
    .p-spa-dayuse__row dt::after {
        display: none;
        /* 縦並びになると線が切れてしまうため、スマホ時は左側の赤線を非表示にする */
    }
    .p-spa-dayuse__row dd {
        width: 100%;
        max-width: 100%;
        padding: 0 0 20px 0;
        /* 左余白をリセット */
    }
}

/* ========================================================
   RESTAURANT（料理）ページ（調整版）
   ======================================================== */
.p-restaurant-intro {
    padding: 120px 40px 0;
}

.p-restaurant-intro__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.p-restaurant-intro__head {
    text-align: center;
    max-width: 1050px;
    margin: 0 auto 60px;
}

.p-restaurant-intro__main-title {
    font-size: 32px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
    font-family: "Shippori Mincho", serif !important;
}

.p-restaurant-intro__lead {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
    text-align: center;
    /* ★1：本文テキストを中央揃えに変更 */
}

/* 上段の画像ボックス（左側） */
.p-restaurant-intro__img-box {
    width: 45%;
}

.dummy-img-rest-1 {
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: #D9D9D9;
}

/* --- 下段：郷愁と革新が交差する一皿 --- */
.p-restaurant-feature {
    padding: 0 40px 140px;
    margin-top: -220px;
    /* 右画像を引き上げる高さ */
}

.p-restaurant-feature__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.p-restaurant-feature-block {
    display: flex;
    align-items: flex-start;
    gap: 80px;
}

.p-restaurant-feature-block__content-left {
    width: 45%;
    margin-top: 280px;
}

.p-restaurant-feature__title {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.p-restaurant-feature__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
}

/* 右側の画像を画面右端まで広げる */
.p-restaurant-feature-block__img-right {
    width: calc(55% + (100vw - 100%) / 2) !important;
    margin-right: calc((100vw - 100%) / -2) !important;
}

.dummy-img-rest-2 {
    width: 100%;
    aspect-ratio: 16 / 10;
    background-color: #D9D9D9;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-restaurant-intro {
        padding: 80px 20px 40px;
    }
    .p-restaurant-intro__head {
        max-width: 100%;
        margin-bottom: 40px;
    }
    .p-restaurant-intro__main-title {
        font-size: 24px;
    }
    .p-restaurant-intro__lead {
        text-align: left;
        /* スマホ時は読みやすさ優先で左寄せ */
    }
    .p-restaurant-intro__img-box {
        width: 100%;
    }

    .p-restaurant-feature {
        padding: 0 20px 100px;
        margin-top: 40px;
    }
    .p-restaurant-feature-block {
        flex-direction: column-reverse;
        gap: 40px;
    }
    .p-restaurant-feature-block__content-left {
        width: 100%;
        margin-top: 0;
    }
    .p-restaurant-feature-block__img-right {
        width: 100% !important;
        margin-right: 0 !important;
    }
    .p-restaurant-feature__text {
        text-align: left;
    }
}

/* ========================================================
   RESTAURANTページ： シェフ紹介 セクション
   ======================================================== */
.p-restaurant-chef {
    padding: 0 40px 140px;
}

.p-restaurant-chef__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 80px;
}

/* --- 左側：メイン縦長画像 --- */
.p-restaurant-chef__img-left {
    width: 45%;
}

.dummy-img-chef-main {
    width: 100%;
    aspect-ratio: 4 / 5.2;
    /* デザインに合わせた縦長比率 */
    background-color: #D9D9D9;
}

/* --- 右側：コンテンツエリア --- */
.p-restaurant-chef__content-right {
    width: 55%;
    padding-top: 40px;
    /* 見出しの高さをデザイン案に合わせる調整 */
}

.p-restaurant-chef__text-box {
    margin-bottom: 80px;
    /* 下の画像との余白 */
}

.p-restaurant-chef__title {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.p-restaurant-chef__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
}

/* --- 右下：サブ画像2枚 --- */
.p-restaurant-chef__sub-imgs {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.p-restaurant-chef__sub-img {
    flex: 1;
}

/* 上部のずらし設定（2枚目の画像） */
.p-restaurant-chef__sub-img--offset {
    margin-top: 60px;
    /* 右側画像の上部を60px下へずらす */
}

.dummy-img-chef-sub1,
.dummy-img-chef-sub2 {
    width: 100%;
    aspect-ratio: 3 / 4;
    /* 縦長比率 */
    background-color: #D9D9D9;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-restaurant-chef {
        padding: 0 20px 100px;
    }
    .p-restaurant-chef__inner {
        flex-direction: column;
        gap: 40px;
    }
    .p-restaurant-chef__img-left,
    .p-restaurant-chef__content-right {
        width: 100%;
        padding-top: 0;
    }
    .p-restaurant-chef__text-box {
        margin-bottom: 40px;
    }
    .p-restaurant-chef__text {
        text-align: left;
    }
    .p-restaurant-chef__sub-img--offset {
        margin-top: 30px;
        /* スマホ時はずらし幅を半分に調整 */
    }
}

/* ========================================================
   RESTAURANTページ： 料理長（CHEF） セクション
   ======================================================== */
.p-restaurant-chef-profile {
    padding: 80px 40px 140px;
}

.p-restaurant-chef-profile__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-restaurant-chef-profile__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-restaurant-chef-profile__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
    margin-bottom: 12px;
}

.p-restaurant-chef-profile__sub {
    display: block;
    font-size: 14px;
    letter-spacing: 0.2em;
    color: #333;
    font-family: "Shippori Mincho", serif !important;
}

/* --- レイアウトブロック --- */
.p-restaurant-chef-profile__block {
    display: flex;
    align-items: flex-start;
    gap: 80px;
}

.p-restaurant-chef-profile__img-left {
    margin-top: 120px;
    width: calc(50% + (100vw - 100%) / 2) !important;
    margin-left: calc((100vw - 100%) / -2) !important;
}

.dummy-img-chef-profile-main {
    width: 100%;
    height: 450px;
    /* 指定の高さ 450px */
    background-color: #D9D9D9;
}

/* --- 右側：サブ画像＋テキスト --- */
.p-restaurant-chef-profile__content-right {
    width: 50%;
}

.p-restaurant-chef-profile__sub-img {
    margin-bottom: 40px;
}
.p-restaurant-chef-profile__sub-img video {
    width: 100%;
    height: auto;
    display: block;
    /* 元のimgタグに object-fit: cover; などが指定されていた場合はここにも追記してください */
}

.dummy-img-chef-profile-sub {
    width: 100%;
    aspect-ratio: 16 / 10;
    background-color: #D9D9D9;
}

/* 名前エリア */
.p-restaurant-chef-profile__name-group {
    display: flex;
    align-items: baseline;
    gap: 20px;
    margin-bottom: 24px;
}

.p-restaurant-chef-profile__name-ja {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    letter-spacing: 0.1em;
}

.p-restaurant-chef-profile__name-en {
    font-size: 14px;
    font-weight: 500;
    color: #18181B;
    letter-spacing: 0.1em;
}

/* キャッチコピー */
.p-restaurant-chef-profile__catch {
    font-size: 16px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
}

/* プロフィール本文 */
.p-restaurant-chef-profile__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-restaurant-chef-profile {
        padding: 40px 20px 100px;
    }
    .p-restaurant-chef-profile__header {
        margin-bottom: 40px;
    }
    .p-restaurant-chef-profile__title {
        font-size: 28px;
    }
    .p-restaurant-chef-profile__block {
        flex-direction: column;
        gap: 40px;
    }
    .p-restaurant-chef-profile__img-left {
        width: 100% !important;
        margin-left: 0 !important;
        margin-top: 20px;
    }
    .dummy-img-chef-profile-main {
        height: 250px;
        /* スマホ時は高さを調整 */
    }
    .p-restaurant-chef-profile__content-right {
        width: 100%;
    }
    .p-restaurant-chef-profile__name-group {
        flex-wrap: wrap;
        gap: 8px;
    }
    .p-restaurant-chef-profile__text {
        text-align: left;
    }
}

/* ========================================================
   RESTAURANTページ： コース一覧 セクション
   ======================================================== */
.p-restaurant-course {
    padding: 80px 40px 140px;
}

.p-restaurant-course__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-restaurant-course__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-restaurant-course__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-restaurant-course__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- コースリスト --- */
.p-restaurant-course__list {
    display: flex;
    flex-direction: column;
    gap: 80px;
}

.p-restaurant-course__item {
    display: flex;
    align-items: flex-start;
    gap: 60px;
}

/* 左側：コース情報 */
.p-restaurant-course__info {
    /* ▼ 変更：画像枠がなくなったため、100%に広げます ▼ */
    width: 100%;
}

.p-restaurant-course__item-title {
    font-size: 20px;
    font-weight: 700;
    color: #18181B;
    padding-bottom: 16px;
    border-bottom: 1px solid #D4D4D8;
    letter-spacing: 0.05em;
}

/* メニューを挟む上下枠線エリア */
.p-restaurant-course__menu-box {
    padding: 20px 0;
    border-bottom: 1px solid #D4D4D8;
    margin-bottom: 24px;
}

.p-restaurant-course__menu-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 10px;
    letter-spacing: 0.05em;
}

.p-restaurant-course__menu-text {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: #333;
    letter-spacing: 0.05em;
}

/* 説明文 */
.p-restaurant-course__desc {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.0;
    color: #333;
    letter-spacing: 0.05em;
}

/* ▼ 削除：画像に関連するCSS（.p-restaurant-course__img / .dummy-img-course）は不要になったため削除しました ▼ */

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    /* コース一覧 */
    .p-restaurant-course {
        padding: 40px 20px 100px;
    }
    .p-restaurant-course__header {
        margin-bottom: 40px;
    }
    .p-restaurant-course__title {
        font-size: 28px;
    }
    .p-restaurant-course__list {
        gap: 60px;
    }
    .p-restaurant-course__item {
        flex-direction: column;
        gap: 20px;
    }
    .p-restaurant-course__item-title {
        font-size: 18px;
    }

    /* 下層ヘッダー：外枠の高さ固定＆ガタつき防止 */
    body:not(.home) .lib-hero__outer {
        position: relative;
        background-size: cover !important;
        background-position: left center !important;
        background-repeat: no-repeat !important;
        background-color: #D9D9D9 !important;
        height: auto !important;
        min-height: 0 !important;
        display: block !important;
        transition: none !important;
        animation: none !important;
        padding: 80px 0 20px !important;
        width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        z-index: 1;
        min-height: 250px !important;
    }

    /* SP用背景画像の指定 */
    body:not(.home) .lib-hero__outer.has-sp-bg {
        background-image: var(--bg-sp) !important;
    }

    /* 下層ヘッダー：内側要素の高さ固定（アニメーションによる動きを完全停止） */
    body:not(.home) .lib-hero__outer .lib-hero__txtarea,
    body:not(.home) .lib-hero__outer .lib-hero__inner {
        height: auto !important;
        min-height: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 20px !important;
        padding-bottom: 0 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
        display: block !important;
    }
}

/* ========================================================
   RESTAURANTページ： 予約バナー セクション
   ======================================================== */
.p-restaurant-banner {
    padding: 0 40px 140px;
}

.p-restaurant-banner__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.p-restaurant-banner__link {
    display: block;
    position: relative;
    width: 100%;
    height: 270px;
    background-image: url('https://aburaya.org/wps/wp-content/uploads/restaurant-08.jpg');
    background-size: cover;
    background-position: center;
    text-decoration: none;
    overflow: hidden;
}

/* ご指定のフィルター */
.p-restaurant-banner__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 20%);
    z-index: 1;
}

/* 右側に配置するテキストエリア */
.p-restaurant-banner__content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-left: 55%;
    /* 右側にテキストを寄せる */
    padding-right: 40px;
    color: #FFFFFF;
}

.p-restaurant-banner__title {
    font-size: 26px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
    font-family: "Shippori Mincho", serif !important;
    color: #FFFFFF;
}

.p-restaurant-banner__text {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.08em;
    margin-bottom: 36px;
    color: #FFFFFF;
}

/* ボタンテキスト＆下線＆矢印 */
.p-restaurant-banner__btn {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #FFFFFF;
}

.p-restaurant-banner__btn span {
    border-bottom: 1px solid #FFFFFF;
    padding-bottom: 4px;
}

.p-restaurant-banner__arrow {
    transition: transform 0.3s ease;
}

/* ホバー時に矢印が少し右に動く演出 */
.p-restaurant-banner__link:hover .p-restaurant-banner__arrow {
    transform: translateX(8px);
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-restaurant-banner {
        padding: 0 20px 100px;
    }
    .p-restaurant-banner__link {
        height: auto;
        min-height: 280px;
        background-size: 160% !important;
        background-position: center center !important;
    }
    .p-restaurant-banner__content {
        padding: 40px 20px;
        /* スマホ時は中央寄り左配置 */
    }
    .p-restaurant-banner__title {
        font-size: 20px;
    }
    .p-restaurant-banner__text {
        font-size: 14px;
        margin-bottom: 24px;
    }
    .p-restaurant-banner__btn {
        font-size: 16px;
        gap: 12px;
    }
    .p-restaurant-banner__arrow {
        width: 40px;
    }
}

/* ========================================================
   GUESTROOM（客室）ページ
   ======================================================== */
.p-room {
    padding: 120px 40px 140px;
}

.p-room__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-room__header {
    text-align: center;
    margin-bottom: 100px;
}

.p-room__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 16px;
    font-family: "Shippori Mincho", serif !important;
}

.p-room__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- リスト・配置 --- */
.p-room__list {
    display: flex;
    flex-direction: column;
    gap: 120px;
    /* 各客室ブロックの間隔 */
}

.p-room-item {
    display: flex;
    align-items: center;
    gap: 80px;
}

/* リバース配置（画像右・テキスト左） */
.p-room-item--reverse {
    flex-direction: row-reverse;
}

/* 画像エリア */
.p-room-item__img {
    width: 45%;
}

.dummy-img-room {
    width: 100%;
    aspect-ratio: 4 / 3.2;
    background-color: #D9D9D9;
}

/* テキストエリア */
.p-room-item__content {
    width: 55%;
}

.p-room-item__title {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}

.p-room-item__text {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.2;
    color: #333;
    letter-spacing: 0.08em;
    margin-bottom: 40px;
}

/* スペック表（客室広さ・定員） */
.p-room-item__spec {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.p-room-item__spec-row {
    display: flex;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid #D4D4D8;
}

.p-room-item__spec-row dt {
    width: 140px;
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    margin: 0;
    letter-spacing: 0.05em;
}

.p-room-item__spec-row dd {
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    margin: 0;
    letter-spacing: 0.05em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-room {
        padding: 80px 20px 100px;
    }
    .p-room__header {
        margin-bottom: 60px;
    }
    .p-room__title {
        font-size: 28px;
    }
    .p-room__list {
        gap: 80px;
    }
    .p-room-item,
    .p-room-item--reverse {
        flex-direction: column;
        gap: 30px;
    }
    .p-room-item__img,
    .p-room-item__content {
        width: 100%;
    }
    .p-room-item__title {
        font-size: 20px;
        margin-bottom: 16px;
    }
    .p-room-item__text {
        text-align: left;
        margin-bottom: 24px;
    }
    .p-room-item__spec-row dt {
        width: 100px;
    }
}

/* --- 追加・変更するCSS --- */

/* 画像エリア全体（既存の .p-room-item__img に相当） */
.p-room-item__img-area {
    width: 45%;
    display: flex;
    flex-direction: column;
    gap: 10px;
    /* メイン画像とサムネイルの隙間 */
}

/* メイン画像用Swiper */
.room-main-swiper {
    width: 100%;
}
.room-main-swiper .swiper-slide {
    aspect-ratio: 4 / 3;
    /* 画像の比率（必要に応じて調整） */
    overflow: hidden;
}
.room-main-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* サムネイル用Swiper */
.room-thumb-swiper {
    width: 100%;
    box-sizing: border-box;
}
.room-thumb-swiper .swiper-slide {
    cursor: pointer;
    opacity: 0.5;
    /* 選択されていないサムネイルを少し薄くする */
    transition: opacity 0.3s ease;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
/* アクティブ（現在表示中）のサムネイルは不透明にする */
.room-thumb-swiper .swiper-slide-thumb-active {
    opacity: 1;
}
.room-thumb-swiper .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* スマホ (SP) 向けのレスポンシブ調整に追加 */
@media screen and (max-width: 768px) {
    .p-room-item__img-area {
        width: 100%;
    }
	.lib-form__main form {
		padding: 0 24px;
	}
}

/* ========================================================
   GUESTROOMページ： 客室詳細 セクション
   ======================================================== */
.p-room-detail {
    padding-bottom: 140px;
}

/* --- フルワイド画像エリア (高さ330px) --- */
.p-room-detail__img-wrap {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-bottom: 100px;
}

.dummy-img-room-detail {
    width: 100%;
    height: 330px;
    /* 指定の高さ 330px */
    background-color: #D9D9D9;
}

.p-room-detail__inner {
    max-width: 1000px;
    /* 表組みのバランスに合わせた最大幅 */
    margin: 0 auto;
    padding: 0 40px;
}

/* --- タイトル周り --- */
.p-room-detail__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-room-detail__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-room-detail__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- 詳細リスト（表組み風） --- */
.p-room-detail__list {
    display: flex;
    flex-direction: column;
    margin: 0;
    border-top: 1px solid #D4D4D8;
}

.p-room-detail__row {
    display: flex;
    align-items: flex-start;
    padding: 28px 0;
    border-bottom: 1px solid #D4D4D8;
}

.p-room-detail__row dt {
    width: 250px;
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    letter-spacing: 0.05em;
    margin: 0;
}

.p-room-detail__row dd {
    flex-grow: 1;
    font-size: 16px;
    font-weight: 500;
    line-height: 2.0;
    color: #333;
    letter-spacing: 0.05em;
    margin: 0;
}

.p-room-detail__note {
    display: block;
    margin-top: 4px;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-room-detail {
        padding-bottom: 100px;
    }
    .p-room-detail__img-wrap {
        margin-bottom: 60px;
    }
    .dummy-img-room-detail {
        height: 200px;
        /* スマホ時は高さを調整 */
    }
    .p-room-detail__inner {
        padding: 0 20px;
    }
    .p-room-detail__header {
        margin-bottom: 40px;
    }
    .p-room-detail__title {
        font-size: 28px;
    }
    .p-room-detail__row {
        flex-direction: column;
        gap: 8px;
        padding: 20px 0;
    }
    .p-room-detail__row dt {
        width: 100%;
        font-weight: 700;
    }
}

/* ========================================================
   FAQ（よくある質問）ページ
   ======================================================== */
.p-faq {
    padding: 100px 40px 140px;
}

.p-faq__inner {
    max-width: 1000px;
    margin: 0 auto;
}

/* カテゴリブロック */
.p-faq__category {
    margin-bottom: 100px;
}
.p-faq__category:last-child {
    margin-bottom: 0;
}

.p-faq__category-title {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 50px;
    letter-spacing: 0.1em;
    font-family: "Shippori Mincho", serif !important;
}

/* アコーディオンリスト */
.p-faq__list {
    border-top: 1px solid #C4C4C4;
}

.p-faq__item {
    border-bottom: 1px solid #C4C4C4;
}

/* 質問（ボタン） */
.p-faq__question {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 24px 16px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    outline: none;
    transition: background-color 0.2s;
}

.p-faq__question:hover {
    background-color: rgba(0, 0, 0, 0.015);
}

.p-faq__q-symbol {
    font-size: 20px;
    font-weight: 700;
    color: #8B0D13;
    /* 赤色の「Q」 */
    margin-right: 32px;
    font-family: "Shippori Mincho", serif !important;
    flex-shrink: 0;
}

.p-faq__q-text {
    font-family: "Shippori Mincho", serif !important;
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    letter-spacing: 0.05em;
    flex-grow: 1;
    line-height: 1.6;
}

/* プラス・マイナス アイコン */
.p-faq__icon {
    position: relative;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-left: 20px;
}

/* 横線 */
.p-faq__icon::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #333;
    transform: translateY(-50%);
}

/* 縦線（「＋」の縦線） */
.p-faq__icon::after {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 100%;
    background-color: #333;
    transform: translateX(-50%);
    transition: transform 0.3s, opacity 0.3s;
}

/* 開いた状態（is-open）のとき縦線を消して「—」にする */
.p-faq__item.is-open .p-faq__icon::after {
    opacity: 0;
    transform: translateX(-50%) rotate(90deg);
}

/* 回答エリア */
.p-faq__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
    background-color: #E2E2E2;
    /* グレー背景 */
}

.p-faq__item.is-open .p-faq__answer {
    max-height: 500px;
    /* 開いた時の十分な高さ */
}

.p-faq__answer-inner {
    display: flex;
    align-items: flex-start;
    padding: 24px 16px;
}

.p-faq__a-symbol {
    font-size: 20px;
    font-weight: 700;
    color: #18181B;
    margin-right: 32px;
    font-family: "Shippori Mincho", serif !important;
    flex-shrink: 0;
}

.p-faq__a-text {
    font-family: "Shippori Mincho", serif !important;
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    line-height: 2.0;
    letter-spacing: 0.05em;
    padding-top: 2px;
}
html body.page-id-250:not(.home) .lib-hero__outer {
    background-position: center top 10% !important;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-faq {
        padding: 60px 20px 100px;
    }
    .p-faq__category {
        margin-bottom: 60px;
    }
    .p-faq__category-title {
        font-size: 22px;
        margin-bottom: 30px;
    }
    .p-faq__question,
    .p-faq__answer-inner {
        padding: 18px 12px;
    }
    .p-faq__q-symbol,
    .p-faq__a-symbol {
        margin-right: 16px;
        font-size: 18px;
    }
    .p-faq__q-text,
    .p-faq__a-text {
        font-size: 14px;
    }
    html body.page-id-250:not(.home) .lib-hero__outer {
        background-position: 60% top !important;
    }
}

/* ========================================================
   ACCESS（交通・アクセス）ページ
   ======================================================== */
.p-access {
    padding: 80px 40px 140px;
}

.p-access__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* Map表示エリア */
.p-access__map {
    width: 100%;
    margin-bottom: 24px;
}

.p-access__map iframe {
    width: 100%;
    height: 450px;
    display: block;
}

/* 宿情報＆拡大地図リンク */
.p-access__info {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 80px;
    padding-bottom: 20px;
}

.p-access__spot-name {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 12px;
    letter-spacing: 0.05em;
}

.p-access__address,
.p-access__tel {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: #333;
    letter-spacing: 0.05em;
}

.p-access__map-link {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    text-decoration: underline;
    letter-spacing: 0.05em;
    transition: opacity 0.3s;
}

.p-access__map-link:hover {
    opacity: 0.6;
}

/* 各交通手段ブロック */
.p-access__block {
    margin-bottom: 80px;
}
.p-access__block:last-child {
    margin-bottom: 0;
}

.p-access__heading {
    font-size: 24px;
    font-weight: 700;
    color: #18181B;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}

.p-access__sub-note {
    font-size: 16px;
    font-weight: 500;
    color: #666;
    margin-top: -12px;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}

.p-access__route-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 空港レンタカー赤枠ブロック */
.p-access__rentacar {
    border: 1px solid #8B0D13;
    /* エンジ色の赤枠 */
    padding: 28px 36px;
    margin-top: 40px;
    background-color: #FFF;
}

.p-access__rentacar-title {
    font-size: 24px;
    font-weight: 700;
    color: #8B0D13;
    margin-bottom: 20px;
    letter-spacing: 0.05em;
}

.p-access__rentacar-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 40px;
}

.p-access__rentacar-item {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.03em;
}

.p-access__rentacar-item a {
    color: #333;
    text-decoration: none;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    .p-access {
        padding: 40px 20px 100px;
    }
    .p-access__map iframe {
        height: 300px;
    }
    .p-access__info {
        flex-direction: column;
        gap: 16px;
        margin-bottom: 60px;
    }
    .p-access__spot-name {
        font-size: 18px;
    }
    .p-access__heading {
        font-size: 18px;
        margin-bottom: 16px;
    }
    .p-access__block {
        margin-bottom: 60px;
    }
    .p-access__rentacar {
        padding: 20px;
        margin-top: 24px;
    }
    .p-access__rentacar-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .p-access__rentacar-item {
        font-size: 14px;
    }
}

/* ========================================================
   ACCESSページ： 駐車場のご案内（PARKING）
   ======================================================== */
.p-access-parking {
    padding: 80px 40px 140px;
}

.p-access-parking__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-access-parking__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-access-parking__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-access-parking__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- コンテンツレイアウト --- */
.p-access-parking__content {
    display: flex;
    align-items: center;
    gap: 60px;
}

/* --- 画像エリア --- */
.p-access-parking__img {
    width: 45%;
}

/* ★追加: 画像を親要素に合わせて綺麗に表示させる設定 */
.p-access-parking__img img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    /* 画像の比率が4:3と違う場合でもトリミングして綺麗に収める */
    display: block;
}

/* --- リスト・表組み --- */
.p-access-parking__info {
    width: 55%;
}

.p-access-parking__list {
    display: flex;
    flex-direction: column;
    margin: 0;
    border-top: 1px solid #D4D4D8;
}

.p-access-parking__row {
    display: flex;
    align-items: flex-start;
    padding: 24px 0;
    border-bottom: 1px solid #D4D4D8;
}

.p-access-parking__row dt {
    width: 140px;
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 700;
    color: #18181B;
    letter-spacing: 0.05em;
    margin: 0;
}

.p-access-parking__row dd {
    flex-grow: 1;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8;
    color: #333;
    letter-spacing: 0.05em;
    margin: 0;
}

/* ========================================================
   ACCESSページ： 周辺観光（SIGHTSEEING）
   ======================================================== */
.p-access-sightseeing {
    padding: 0 40px 140px;
}

.p-access-sightseeing__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- タイトル周り --- */
.p-access-sightseeing__header {
    text-align: center;
    margin-bottom: 80px;
}

.p-access-sightseeing__ruby {
    display: block;
    font-size: 16px;
    letter-spacing: 0.2em;
    color: #333;
    margin-bottom: 12px;
    font-family: "Shippori Mincho", serif !important;
}

.p-access-sightseeing__title {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #18181B;
    font-family: "Shippori Mincho", serif !important;
}

/* --- 3カラムグリッド --- */
.p-access-sightseeing__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px 40px;
}

.p-access-sightseeing__item {
    text-align: center;
}

.p-access-sightseeing__img {
    margin-bottom: 16px;
    overflow: hidden;
}

.p-access-sightseeing__img img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    display: block;
}

.p-access-sightseeing__name {
    font-size: 16px;
    font-weight: 500;
    color: #18181B;
    letter-spacing: 0.05em;
}

/* --- スマホ (SP) 向けのレスポンシブ調整 --- */
@media screen and (max-width: 768px) {
    /* 駐車場 */
    .p-access-parking {
        padding: 40px 20px 80px;
    }
    .p-access-parking__header {
        margin-bottom: 40px;
    }
    .p-access-parking__title {
        font-size: 28px;
    }
    .p-access-parking__content {
        flex-direction: column;
        gap: 30px;
    }
    .p-access-parking__img,
    .p-access-parking__info {
        width: 100%;
    }
    .p-access-parking__row dt {
        width: 100px;
    }

    /* 周辺観光 */
    .p-access-sightseeing {
        padding: 0 20px 100px;
    }
    .p-access-sightseeing__header {
        margin-bottom: 40px;
    }
    .p-access-sightseeing__title {
        font-size: 28px;
    }
    .p-access-sightseeing__grid {
        grid-template-columns: repeat(2, 1fr);
        /* スマホ時は2列配置 */
        gap: 30px 16px;
    }
    .p-access-sightseeing__name {
        font-size: 13px;
    }
}

/* ==================================
サイトマップ
===================================== */
.wsp-pages-title {
    display: none;
}

.sitemap-block ul.wsp-pages-list {
    display: flex;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
}

.sitemap-block ul.wsp-pages-list li {
    list-style: none;
    width: calc(50% - 20px);
    border-top: 1px solid #ccc;
    margin-bottom: 0;
    margin-top: 0;
}

/* 共通リンクスタイル */
.sitemap-block ul.wsp-pages-list li a {
    display: block;
    padding: 20px 10px;
    position: relative;
    font-size: 20px;
    font-weight: bold;
    text-decoration: none;
    padding-right: 50px;
    color: var(--main_color);
}

.sitemap-block ul.wsp-pages-list li a:hover {
    background-color: #f5f5f5;
}

/* 矢印アイコン（親・子共通） */
.sitemap-block ul.wsp-pages-list li a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    z-index: 1;
    background: url(/wps/wp-content/uploads/arrow.png) no-repeat center / 16px auto;
    transition: all .4s;
}

/* 赤い円背景（親・子共通） */
.sitemap-block ul.wsp-pages-list li a::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    background: #8c1722 !important;
    z-index: 0;
    border-radius: 50%;
    transition: all .4s;
}

/* 特定のページで非表示にする設定 */
.sitemap-block ul.wsp-pages-list li.page-item-1050 a::after {
    display: none;
}

/* 子カテゴリー（階層下）のスタイル調整 */
.sitemap-block ul li.page_item_has_children a {
    border-bottom: 1px solid #ccc;
}

.sitemap-block ul.children {
    margin-bottom: 20px;
}

.sitemap-block ul.children li {
    width: 100%;
    border: none;
    margin-bottom: 0;
}

.sitemap-block ul.children li a {
    font-size: 16px;
    padding: 10px 50px 10px 10px;
}

/* リスト用の標準ポッチを消去 */
.sitemap-block ul.wsp-pages-list li::before {
    display: none !important;
}

/* レスポンシブ（スマホ） */
@media screen and (max-width: 768px) {
    .sitemap-block ul.wsp-pages-list li {
        width: 100%;
    }
    .sitemap-block ul.wsp-pages-list li a {
        padding-right: 80px;
    }
}

/* パソコン表示では改行を無効化（非表示）にする */
.br-sp {
    display: none;
}
.br-pc {
    display: block;
}
/* スマホ表示（例: 768px以下）の時に改行を有効化する */
@media screen and (max-width: 768px) {
    .br-sp {
        display: block;
    }
    .br-pc {
        display: none;
    }
}

/* ========================================================
   Google翻訳ツールバー・要素の非表示設定（最新仕様対応版）
   ======================================================== */

/* 上部に挿入される翻訳バー（iframeおよび親要素）を完全に非表示 */
body>.skiptranslate,
iframe.skiptranslate,
.goog-te-banner-frame {
    display: none !important;
    visibility: hidden !important;
}

/* bodyタグが自動で40px押し下げられるインラインスタイルを強力リセット */
html,
body {
    top: 0 !important;
    position: static !important;
}

/* 翻訳テキストにホバーした際に出るポップアップ（元のテキスト表示）を非表示 */
#goog-gt-tt,
.goog-te-balloon-frame {
    display: none !important;
}

/* 翻訳されたテキストの下線・ハイライト装飾を消去 */
.goog-text-highlight {
    background-color: transparent !important;
    box-shadow: none !important;
}

/* ヒーロー画像 PC/SP切替の共通設定 */
.lib-hero__outer {
    background-image: var(--bg-pc) !important;
}

.page-id-37 #dcms_layoutPageBlock {
    margin: 60px auto 100px;
    width: 90%;
}
.page-id-44 #dcms_layoutPageBlock {
    margin: 60px auto 100px;
    width: 90%;
}

/* スマホ時（767px以下）はSP用画像に切り替え */
@media screen and (max-width: 767px) {
    .lib-hero__outer {
        /* --bg-sp が指定されていればそれを表示し、無ければ --bg-pc を表示 */
        background-image: var(--bg-sp, var(--bg-pc)) !important;
    }
}