/* ============================================================
   2026-08-05 チェックバック対応で追加した要素のスタイル
   既存CSSは一切変更せず、追加分だけをここに閉じ込める。
   - .cb-disclaimer          写真注釈（A-18 / A-19）
   - .station__line          アクセスの路線名（A-15）
   - .footer-editorial__operator  運営主体の表記（A-20）
   - .cb-contact-cta         ご予約・お問い合わせ導線（B-13）
   ============================================================ */

/* --- 写真注釈 ------------------------------------------------ */
.cb-disclaimer {
  margin: 18px 0 0;
  color: var(--ink-soft, #6B6154);
  font-size: 13px;
  line-height: 1.75;
  letter-spacing: .06em;
  opacity: .86;
}

.rooms-editorial__summary + .cb-disclaimer {
  margin-top: 10px;
}

.schedule__addr .cb-disclaimer {
  margin-top: 14px;
}

@media (max-width: 768px) {
  .cb-disclaimer { font-size: 12.5px; }
}

/* --- アクセス：路線名 ---------------------------------------- */
/* 駅名の上に一段小さく載せる。徒歩分は従来どおり右端でベースライン揃え */
.station {
  align-items: end;
}

.station__line {
  display: block;
  margin-bottom: 5px;
  color: var(--ink-soft, #6B6154);
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: .07em;
  opacity: .9;
}

@media (max-width: 768px) {
  /* 四ツ谷駅の路線3本が1行に収まる字送り。
     「線」1文字だけが次行に落ちるのを防ぐ */
  .station__line {
    font-size: 12px;
    letter-spacing: .02em;
  }
}

/* --- フッター：運営主体 -------------------------------------- */
.footer-editorial__operator {
  margin: 16px 0 0;
  color: var(--dark-ink, #F1EDE4);
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: .08em;
  opacity: .68;
}

@media (max-width: 768px) {
  .footer-editorial__operator { font-size: 12.5px; }
}

/* --- カフェ SEATS の折り返し --------------------------------- */
/* 「129席（ファンクションルーム、個室2室）」が inline-block の塊のまま
   カラム幅を超えて不格好に割れるため、この dl 内だけ通常の折り返しに戻す */
/* 括弧をやめて1行に収める書き方にしたので、強制改行は不要 */
.facility-editorial__facts dd { white-space: nowrap; }

@media (max-width: 1120px) {
  .facility-editorial__facts dd { white-space: normal; }
}

/* dt を固定幅にして dd 側の行長を稼ぐ。
   「（ファンクションルーム、個室2室）」が1行に収まる幅が必要 */
.facility-editorial__facts div {
  grid-template-columns: 88px minmax(0, 1fr);
  column-gap: 12px;
}

@media (max-width: 768px) {
  .facility-editorial__facts div {
    grid-template-columns: 80px minmax(0, 1fr);
  }
}

/* --- フッター：運営主体の下の間合い -------------------------- */
/* 既存の「ホテル名 + 罫線」の間隔ルールが、間に運営主体が入ったことで
   効かなくなるため、ここで取り直す */
.footer-editorial__operator + .footer-editorial__content-rule {
  margin-top: 30px;
}

/* --- ご予約・お問い合わせ導線 -------------------------------- */
/* 既存の枠線CTA（Layouts & Seating）の下に置く控えめなテキストリンク */
.cb-contact-cta {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  width: fit-content;
  align-self: start;
  margin-top: 18px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(88, 75, 58, .34);
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .14em;
  text-decoration: none;
  transition: border-color .5s ease, color .5s ease;
}

.cb-contact-cta:hover {
  color: var(--brand-accent, #3E7150);
  border-bottom-color: var(--brand-accent, #3E7150);
}

.cb-contact-cta__arrow {
  font-family: var(--serif-en);
  font-size: 13px;
}

/* URLが未確定のあいだは押せない見た目にする（apply_links.py が data-pending を付与） */
.cb-contact-cta[data-pending] {
  opacity: .45;
  pointer-events: none;
}


@media (max-width: 768px) {
  .cb-contact-cta { font-size: 12px; letter-spacing: .1em; }
}

/* ============================================================
   B-08 フッター改修（CB P13）
   電話 / 予約ボタン / 基本情報リンク / チェーンサイト / SNS枠
   ============================================================ */

.footer-cb {
  margin-top: clamp(26px, 2.4vw, 36px);
}

.footer-cb__tel {
  margin: 0;
  color: var(--dark-ink, #F1EDE4);
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: .07em;
  opacity: .82;
}

.footer-cb__tel .ib { display: inline-block; margin-right: 14px; }

/* iPhone Safariの電話番号自動リンク色を使わず、発信機能は保つ。 */
.footer-cb__tel-link,
.footer-cb__tel-link:visited {
  color: inherit;
  -webkit-text-fill-color: currentColor;
  text-decoration: none;
}

.footer-cb__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  margin-top: clamp(20px, 1.8vw, 28px);
}

/* 「目立つように大きめの予約ボタンで」（CB指定） */
.footer-cb__reserve {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 232px;
  padding: 17px 30px;
  border: 1px solid rgba(241, 237, 228, .5);
  background: rgba(241, 237, 228, .06);
  color: var(--dark-ink, #F1EDE4);
  font-family: var(--serif-jp);
  font-size: 15px;
  letter-spacing: .16em;
  text-decoration: none;
  transition: background .5s ease, border-color .5s ease, color .5s ease;
}

.footer-cb__reserve:hover {
  background: var(--dark-ink, #F1EDE4);
  border-color: var(--dark-ink, #F1EDE4);
  color: var(--rei-brown, #584B3A);
}

.footer-cb__sub {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(241, 237, 228, .34);
  color: var(--dark-ink, #F1EDE4);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .12em;
  text-decoration: none;
  opacity: .88;
  transition: opacity .4s ease, border-color .4s ease;
}

.footer-cb__sub:hover { opacity: 1; border-bottom-color: rgba(241, 237, 228, .8); }

/* URL未確定のあいだは押せない見た目（apply_links.py が data-pending を付与） */
.footer-cb__reserve[data-pending],
.footer-cb__sub[data-pending],
.footer-editorial__nav--cb a[data-pending] {
  opacity: .38;
  pointer-events: none;
}

/* 基本情報リンク：4本＋1本に増えるので折り返し前提の並びにする */
.footer-editorial__nav--cb {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
}

/* チェーンサイト（ロゴ画像が支給されるまでは文字で仮置き） */
.footer-cb__chain {
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  border: 1px solid rgba(241, 237, 228, .34);
  color: var(--dark-ink, #F1EDE4);
  font-family: var(--serif-en);
  font-size: 11px;
  letter-spacing: .18em;
  text-decoration: none;
  opacity: .8;
  transition: opacity .4s ease;
}

.footer-cb__chain:hover { opacity: 1; }

.footer-cb__sns {
  display: flex;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-cb__sns a {
  color: var(--dark-ink, #F1EDE4);
  font-family: var(--serif-en);
  font-size: 12px;
  letter-spacing: .14em;
  text-decoration: none;
  opacity: .7;
}

@media (max-width: 768px) {
  .footer-cb__reserve { width: 100%; min-width: 0; justify-content: center; font-size: 14px; }
  .footer-cb__actions { gap: 12px 16px; }
  .footer-editorial__nav--cb { gap: 10px 20px; }
  .footer-cb__tel { font-size: 12px; }
  .footer-cb__tel .ib { display: block; margin-right: 0; }
}

/* SNS枠は将来対応。hidden を確実に効かせる（display:flex が上書きしてしまうため） */
.footer-cb__sns[hidden] { display: none; }

/* チェーン名はロゴ支給までテキストのまま。枠は付けず、リンクだと分かる下線だけ */
.footer-cb__chain {
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid rgba(241, 237, 228, .34);
  font-size: inherit;
  letter-spacing: inherit;
}

/* B-09 アクセスの Google マップ導線（CB P11）。
   iframe埋め込みはティザーの静けさを壊すため、まずはテキストリンクで */
.cb-maplink {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(88, 75, 58, .3);
  color: var(--brand-accent, #3E7150);
  text-decoration: none;
  letter-spacing: .06em;
  transition: border-color .4s ease;
}
.cb-maplink:hover { border-bottom-color: var(--brand-accent, #3E7150); }

/* ============================================================
   B-02 / B-03 ヒーロー左下（CB P1）
   位置・緑線・情報順は HERO-DESIGN-SPEC のまま。字だけを調整する
   ============================================================ */

/* B-03「開業日・ホテル名はもう少し目立たせてほしい」 */
.hero__opening-date[data-cb="B-03"] {
  font-size: clamp(17px, 1.5vw, 25px);
  letter-spacing: .26em;
}

/* B-02「日本語表記のホテル名をTOPに追加（小さめのテキストでOK）」
   英字名の上に和文セリフで一段。英字名より大きく、統括コピーより小さい階層に置く */
.hero__opening-name-jp {
  margin: 0 0 8px;
  font-family: var(--serif-jp);
  font-size: clamp(13px, 1.04vw, 17px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .17em;
  text-transform: none;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .hero__opening-date[data-cb="B-03"] { font-size: 17px; letter-spacing: .22em; }
  .hero__opening-name-jp { font-size: 13px; letter-spacing: .1em; margin-bottom: 6px; }
}

/* ============================================================
   B-01 言語切替：地球儀アイコン＋ドロップダウン（CB P1）
   ヒーロー仕様に合わせ、影・カードUIは使わず1pxの細罫だけで組む
   ============================================================ */

.lang-dd { position: relative; }

.lang-dd__btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 6px 2px;
  border: 0;
  background: none;
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 15px;
  letter-spacing: .12em;
  line-height: 1;
  cursor: pointer;
  transition: opacity .4s ease;
}

.lang-dd__btn:hover { opacity: .62; }

.lang-dd__globe {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1;
  stroke-linecap: round;
}

.lang-dd__caret {
  width: 6px;
  height: 6px;
  margin-left: 1px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .35s ease;
}

.lang-dd.is-open .lang-dd__caret { transform: translateY(1px) rotate(-135deg); }

.lang-dd__list {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 40;
  min-width: 128px;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: var(--paper, #F1EDE4);
  border: 1px solid rgba(88, 75, 58, .22);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .35s ease, transform .35s ease, visibility .35s;
}

.lang-dd.is-open .lang-dd__list {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.lang-dd__list a {
  display: block;
  padding: 11px 18px;
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 14px;
  letter-spacing: .1em;
  text-decoration: none;
  white-space: nowrap;
  transition: background .3s ease, color .3s ease;
}

.lang-dd__list a:hover { background: rgba(88, 75, 58, .07); }
.lang-dd__list a.is-current { color: var(--forest, #3E7150); }

/* 宴会場ページのヒーローも明るい紙地なので、文字色は本文と同じ茶で統一 */
.bqp-hero .lang-dd__btn { color: var(--brand-ink, #584B3A); }

@media (max-width: 768px) {
  .lang-dd__btn { font-size: 14px; gap: 7px; }
  .lang-dd__globe { width: 14px; height: 14px; }
  .lang-dd__list { min-width: 116px; }
  .lang-dd__list a { padding: 10px 16px; font-size: 14px; }
}

/* ============================================================
   B-04 予約追従バナー（CB P1「サイドに2個」）
   ティザーの静けさを壊さないよう、影なし・紙地・1px罫のみ。
   ヒーローを抜けてから現れ、フッターで引っ込む
   ============================================================ */

.reserve-rail {
  position: fixed;
  z-index: 45;
  top: 50%;
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  transform: translate(100%, -50%);
  opacity: 0;
  visibility: hidden;
  transition: transform .7s cubic-bezier(.33, 1, .68, 1), opacity .5s ease, visibility .5s;
}

.reserve-rail.is-on {
  transform: translate(0, -50%);
  opacity: 1;
  visibility: visible;
}

.reserve-rail__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 52px;
  padding: 26px 0;
  writing-mode: vertical-rl;
  background: var(--paper, #F1EDE4);
  border: 1px solid rgba(88, 75, 58, .22);
  border-right: 0;
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .18em;
  text-decoration: none;
  transition: background .5s ease, color .5s ease;
}

.reserve-rail__item i {
  writing-mode: horizontal-tb;
  font-family: var(--serif-en);
  font-size: 12px;
  font-style: normal;
}

.reserve-rail__item--main {
  background: var(--forest, #3E7150);
  border-color: var(--forest, #3E7150);
  color: var(--paper, #F1EDE4);
}

.reserve-rail__item:hover { background: var(--brand-ink, #584B3A); color: var(--paper, #F1EDE4); }
.reserve-rail__item--main:hover { background: var(--brand-green-dark); }

/* URL未確定のあいだは押せない見た目 */
.reserve-rail__item[data-pending] { opacity: .5; pointer-events: none; }

@media (max-width: 768px) {
  /* 縦書きだと画面を占めるので、下端に横並びの細いバーにする */
  .reserve-rail {
    top: auto;
    bottom: 0;
    right: 0;
    left: 0;
    flex-direction: row;
    transform: translateY(100%);
  }
  .reserve-rail.is-on { transform: translateY(0); }
  .reserve-rail__item {
    flex: 1;
    width: auto;
    padding: 14px 0;
    writing-mode: horizontal-tb;
    border-right: 1px solid rgba(88, 75, 58, .22);
    font-size: 13px;
    letter-spacing: .1em;
  }
  .reserve-rail__item i { font-size: 12px; }
}

/* ============================================================
   B-06 / B-07 客室（CB P4）
   B-06「矢印だけでは操作しにくい」→ 位置が分かり、押しても動く進捗バー
   B-07「スペックと画像の対応が分かりにくい」→ 写真直下に面積・定員を併記
   ============================================================ */

/* 既存の区切り線 <i> を置き換える4分割バー */
.rooms-progress {
  display: inline-flex;
  gap: 4px;
  width: 74px;
  margin: 0 12px;
}

.rooms-progress b {
  flex: 1;
  height: 1px;
  background: rgba(88, 75, 58, .26);
  cursor: pointer;
  transition: background .45s ease, height .45s ease;
}

.rooms-progress b.is-on {
  height: 2px;
  background: var(--brand-accent, #3E7150);
}

/* 押しやすいように当たり判定だけ広げる（見た目は1pxのまま） */
.rooms-progress b::after {
  content: "";
  display: block;
  height: 16px;
  margin-top: -8px;
}


@media (max-width: 768px) {
  .rooms-progress { width: 58px; margin: 0 9px; }
  .rooms-caption__spec { font-size: 12.5px; }
}

/* ============================================================
   B-12 組合員のお客さまへ（union.html / CB P16）
   予約サイトへ進む前に読んでもらう中間ページ。
   案内文が3項目と長いためモーダルではなくページで受ける
   ============================================================ */

.union {
  min-height: 78vh;
  padding-bottom: clamp(90px, 9vw, 150px);
  background: var(--paper, #F1EDE4);
  color: var(--brand-ink, #584B3A);
}

.union__head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: clamp(26px, 3vw, 42px) clamp(24px, 8vw, 134px);
}

.union__logo { width: clamp(96px, 8.4vw, 128px); height: auto; }

.union__inner {
  width: min(calc(100% - 2 * clamp(24px, 8vw, 134px)), 860px);
  margin: 0 auto;
  padding-top: clamp(40px, 5vw, 76px);
}

.union__kicker {
  margin: 0 0 14px;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 12px;
  letter-spacing: .26em;
  text-transform: uppercase;
}

.union__title {
  margin: 0;
  font-family: var(--serif-jp);
  font-size: clamp(26px, 2.6vw, 40px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .1em;
}

.union__lead {
  margin: 18px 0 0;
  font-size: clamp(13px, .98vw, 15px);
  line-height: 2;
  letter-spacing: .065em;
}

.union__rule {
  display: block;
  width: 44px;
  height: 1px;
  margin: clamp(30px, 3vw, 44px) 0;
  background: var(--forest, #3E7150);
}

.union__item { margin-bottom: clamp(34px, 3.4vw, 50px); }

.union__item h2 {
  margin: 0 0 12px;
  font-family: var(--serif-jp);
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .09em;
}

.union__item p {
  margin: 0;
  font-size: clamp(13px, .98vw, 15px);
  line-height: 2;
  letter-spacing: .065em;
}

.union__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 26px;
  margin-top: clamp(40px, 4vw, 62px);
  padding-top: clamp(30px, 3vw, 44px);
  border-top: 1px solid rgba(88, 75, 58, .22);
}

.union__reserve {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 17px 34px;
  background: var(--forest, #3E7150);
  color: var(--paper, #F1EDE4);
  font-family: var(--serif-jp);
  font-size: 15px;
  letter-spacing: .14em;
  text-decoration: none;
  transition: background .5s ease;
}

.union__reserve:hover { background: var(--brand-green-dark); }
.union__reserve[data-pending] { opacity: .45; pointer-events: none; }

.union__back {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(88, 75, 58, .3);
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .12em;
  text-decoration: none;
}

@media (max-width: 768px) {
  /* 2026-08-28: 案内内CTAと本文末CTAはSPでも完全同寸。長いラベル
     「組合員料金専用 予約ページへ」を320pxで1行に収めるため、字間と
     左右余白だけ詰める（文字サイズは type-scale.css の --fs-small=14px） */
  .union__reserve {
    width: 100%;
    justify-content: center;
    padding-inline: 18px;
    letter-spacing: .08em;
  }
  .union__title {
    font-size: clamp(18px, 5.65vw, 28px);
    letter-spacing: .045em;
    white-space: nowrap;
  }
}

@media (max-width: 390px) {
  .union .union__lead {
    font-size: clamp(12.4px, 3.85vw, 15px);
    letter-spacing: .02em;
    white-space: nowrap;
  }
}

/* ============================================================
   FB-0828 ①③ 第1項の予約案内（クライアントFB 2026-08-28）
   「説明だけのページ」に見えないよう、資格の話に入る前に
   予約手段（専用予約サイト／電話）をその場で示す。
   影・角丸・新色は足さず、前後の本文リズム（union__item の clamp）に揃える
   ============================================================ */
.union__reserve-guide {
  margin: clamp(22px, 2.2vw, 32px) 0 clamp(26px, 2.6vw, 38px);
}

.union__reserve-guide-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: clamp(16px, 1.6vw, 22px);
}

/* --guide は行内配置のためのフックだけ。2026-08-28 のデザインレビューで
   「上下のボタンは同じ大きさに」と決まったため、サイズ系の上書きは持たせない
   （padding も font-size も素の .union__reserve と完全に同じ） */

/* 長いラベルが2行になるときは和文の途中で折らず、
   「組合員料金専用／予約ページへ」と語間の空白で折り返させる */
   「組合員料金専用／予約ページへ」と語間の空白で折り返させる */
.union__reserve {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* 電話・受付時間は本文より一段落として添える。
   文字サイズは type-scale.css の --fs-note（13px）が出所 */
.union__item .union__reserve-guide-tel {
  margin: 0;
  color: var(--brand-ink, #584B3A);
  letter-spacing: .06em;
}

.union__reserve-guide-tel .ib { margin-right: 14px; }
.union__reserve-guide-tel .ib:last-child { margin-right: 0; }

/* フッターの電話リンクと同じ流儀：下線なし・色は本文を継ぐ */
.union__tel-link,
.union__tel-link:visited {
  position: relative;
  color: inherit;
  text-decoration: none;
}

/* 13pxの1行なので実寸は約128×19px。スマホで押しにくいため、
   見た目を変えずに擬似要素だけで縦44pxのヒットエリアを確保する
   （M19のタップターゲット要件）。背景は持たせないので描画は不変。
   隣の受付時間は非対話テキストなので、多少重なっても操作の邪魔にならない */
.union__tel-link::before {
  content: "";
  position: absolute;
  top: 50%;
  right: -6px;
  left: -6px;
  height: 44px;
  transform: translateY(-50%);
}

@media (max-width: 768px) {
  .union__reserve-guide-row {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .union__reserve-guide-tel .ib { display: block; margin-right: 0; }
}

/* ============================================================
   B-10 レイアウト例の平面図（CB P15）
   図は支給済み料金表PDFのベクターを600dpiで抽出したもの。
   紙面の線画なので、背景は紙色のまま罫線だけで仕切る
   ============================================================ */

.bqp-plan {
  padding: clamp(70px, 7vw, 120px) 0 0;
}

.bqp-plan__title {
  margin: 0 0 clamp(30px, 3vw, 48px);
  font-family: var(--serif-jp);
  font-size: clamp(19px, 1.7vw, 26px);
  font-weight: 500;
  letter-spacing: .1em;
}

.bqp-plan__grid {
  display: grid;
  gap: clamp(28px, 3vw, 46px);
}

.bqp-plan__grid--small { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(34px, 3.4vw, 54px); }

.bqp-plan__card { margin: 0; }


.bqp-plan__media:hover { opacity: .72; }

.bqp-plan__media img {
  display: block;
  width: 100%;
  height: auto;
}

.bqp-plan__card figcaption {
  margin-top: 12px;
  color: var(--brand-ink, #584B3A);
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .08em;
}

@media (max-width: 1120px) {
  .bqp-plan__grid--small { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .bqp-plan__grid--wide,
  .bqp-plan__grid--small { grid-template-columns: minmax(0, 1fr); }
}

.bqp-split { margin: 0 0 clamp(46px, 4.6vw, 74px); }
.bqp-split img {
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  padding: 0;
  border: 0;
  background: none;
}
.bqp-split figcaption {
  max-width: 760px;
  margin-top: 12px;
  color: var(--ink-soft, #6B6154);
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: .07em;
}

/* 支給された東急ホテルズロゴ（白抜き・透過）。茶地のフッターにそのまま置ける */
.footer-cb__chain { border-bottom: 0; padding: 0; }
.footer-cb__chain-logo {
  display: block;
  width: auto;
  height: 21px;
  opacity: .92;
  transition: opacity .4s ease;
}
.footer-cb__chain:hover .footer-cb__chain-logo { opacity: 1; }
@media (max-width: 768px) { .footer-cb__chain-logo { height: 18px; } }

/* ============================================================
   B-06 / B-07 客室コンソール（CB P4）
   写真が縦に長く左カラムの下が空くので、そこへ
   「いま表示中のスペック」と「送り操作」をまとめて大きく置く。
   ・写真の上に小さく置く形では、操作もスペックの変化も気づけなかった
   ・スペックは切り替わった瞬間に軽くフェードして、変わったことを知らせる
   ============================================================ */

.rooms-console {
  margin-top: clamp(38px, 4vw, 62px);
  padding-top: clamp(22px, 2.2vw, 32px);
  border-top: 1px solid rgba(88, 75, 58, .26);
}

/* --- スペック：ラベル＋値の2列を縦に積む --- */
.rooms-spec {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 13px;
  margin: 0;
  padding: 0;
  border: 0;
}

.rooms-spec > div {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  min-width: 0;
}

.rooms-spec dt {
  margin: 0;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  white-space: nowrap;
}

.rooms-spec dd {
  margin: 0;
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: clamp(14px, 1.12vw, 17px);
  line-height: 1.55;
  letter-spacing: .05em;
  overflow-wrap: anywhere;
  transition: opacity .3s ease, transform .3s ease;
}

/* 切り替わった瞬間だけ、値がふっと入れ替わる */
.rooms-editorial.is-changing .rooms-spec dd {
  opacity: 0;
  transform: translateY(4px);
}

/* --- 操作：大きく、左揃えで --- */
.rooms-console .rooms-editorial__toolbar {
  position: static;
  bottom: auto;
  right: auto;
  min-height: 0;
  padding-right: 0;
  margin-top: clamp(24px, 2.4vw, 34px);
  justify-content: flex-start;
  gap: clamp(18px, 1.8vw, 26px);
}

.rooms-console .rooms-editorial__counter {
  order: 2;
  gap: 14px;
  font-size: 13px;
}

.rooms-console .rooms-editorial__nav { order: 1; }

.rooms-console .rooms-editorial__arrow {
  width: clamp(56px, 4.4vw, 68px);
  height: clamp(56px, 4.4vw, 68px);
  background: rgba(62, 113, 80, .08);
  border-color: rgba(62, 113, 80, .85);
}

.rooms-console .rooms-editorial__arrow svg { width: 22px; height: 22px; stroke-width: 1.6; }

.rooms-console .rooms-editorial__arrow:hover {
  background: var(--forest, #3E7150);
  color: #fff;
}

.rooms-console .rooms-editorial__arrow.is-disabled { opacity: .28; }

.rooms-console .rooms-progress { width: 92px; margin: 0 10px; }
.rooms-console .rooms-progress b { height: 2px; background: rgba(88, 75, 58, .22); }
.rooms-console .rooms-progress b.is-on { height: 3px; background: var(--brand-accent, #3E7150); }

@media (max-width: 768px) {
  .rooms-console { margin-top: 28px; padding-top: 20px; }
  .rooms-spec > div { grid-template-columns: 86px minmax(0, 1fr); }
  .rooms-spec dd { font-size: 14px; }
  .rooms-console .rooms-editorial__toolbar { justify-content: space-between; }
  .rooms-console .rooms-editorial__arrow { width: 54px; height: 54px; }
}

/* 最終スライドでは Swiper が右端で止まり、左に前の写真が覗く
   （slidesPerView 1.105 の副作用）。Swiperの計算には触らず左端を紙色で覆う */
.rooms-editorial__gallery::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  background: var(--rooms-paper, #F1EDE4);
  pointer-events: none;
  transition: width .5s cubic-bezier(.33, 1, .68, 1);
}

.rooms-editorial.is-end .rooms-editorial__gallery::before { width: 9.6%; }
@media (min-width: 768px)  { .rooms-editorial.is-end .rooms-editorial__gallery::before { width: 10.8%; } }
@media (min-width: 1280px) { .rooms-editorial.is-end .rooms-editorial__gallery::before { width: 12.4%; } }

/* ============================================================
   未確定リンクの見た目
   薄いグレーアウトはやめ、本番と同じ色で表示する。
   （URLが入るまでクリックだけ無効。見た目で判断できるようにするのは開発時のみ）
   ============================================================ */
.cb-contact-cta[data-pending],
.footer-cb__reserve[data-pending],
.footer-cb__sub[data-pending],
.footer-editorial__nav--cb a[data-pending],
.reserve-rail__item[data-pending],
.union__reserve[data-pending] {
  opacity: 1;
}

/* ============================================================
   送っても高さが動かないようにする
   4枚目「ROOM -IORI- ／ コンセプトルーム」だけ2行になり、
   左カラムが伸びてセクション全体が上下に動いてしまうため、
   ROOM TYPE の値は常に2行ぶんの高さを確保する
   ※ 見出しサイズ・写真の大きさは SECTION-TYPE-SYSTEM の不変条件。触らない
   ============================================================ */
/* 2026-08-12：左カラムを広げて室名が1行に収まるようになったので
   2行ぶん確保する必要がなくなった。ROOM TYPE の下に1行ぶんの空白が
   できていたため解除する（全言語・全室で1行に収まることを実測で確認） */
.rooms-spec > div:first-child dd { min-height: 0; }

/* 面積と定員は1行に保つ（「定員2/名」と割れるのを防ぐ） */
.rooms-spec > div:nth-child(2) dd,
.rooms-spec > div:nth-child(3) dd { white-space: nowrap; }

/* 最終スライドでは Swiper が右端で止まり、左に前の写真が覗く
   （slidesPerView 1.105 の副作用）。Swiperの計算には触らず左端を紙色で覆う */
.rooms-editorial__gallery::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: 0;
  width: 0;
  background: var(--rooms-paper, #F1EDE4);
  pointer-events: none;
  transition: width .5s cubic-bezier(.33, 1, .68, 1);
}

.rooms-editorial.is-end .rooms-editorial__gallery::before { width: 9.6%; }
@media (min-width: 768px)  { .rooms-editorial.is-end .rooms-editorial__gallery::before { width: 10.8%; } }
@media (min-width: 1280px) { .rooms-editorial.is-end .rooms-editorial__gallery::before { width: 12.4%; } }

/* ============================================================
   未確定リンクの見た目
   薄いグレーアウトはやめ、本番と同じ色で表示する
   ============================================================ */
.cb-contact-cta[data-pending],
.footer-cb__reserve[data-pending],
.footer-cb__sub[data-pending],
.footer-editorial__nav--cb a[data-pending],
.reserve-rail__item[data-pending],
.union__reserve[data-pending] {
  opacity: 1;
}

.bqp-plan__tab {
  position: relative;
  padding: 12px 26px 14px;
  border: 0;
  background: none;
  color: var(--ink-soft, #6B6154);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .12em;
  cursor: pointer;
  transition: color .4s ease;
}

.bqp-plan__tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: var(--brand-accent, #3E7150);
  transform: scaleX(0);
  transition: transform .45s cubic-bezier(.33, 1, .68, 1);
}

.bqp-plan__tab.is-on {
  color: var(--brand-ink, #584B3A);
}

.bqp-plan__tab.is-on::after { transform: scaleX(1); }
.bqp-plan__tab:hover { color: var(--brand-ink, #584B3A); }

.bqp-plan__panel[hidden] { display: none; }

.bqp-plan__panel {
  animation: bqpPlanFade .5s cubic-bezier(.33, 1, .68, 1);
}

@keyframes bqpPlanFade {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

/* タブで4点ずつになったので、HIKARI も2列で大きく見せる */
.bqp-plan__grid--small { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1120px) {
  .bqp-plan__grid--small { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .bqp-plan__tab { flex: 1; padding: 11px 8px 13px; font-size: 12px; letter-spacing: .06em; }
  .bqp-plan__grid--small { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   宴会場ページ 再構成（Codex助言）
   ・SORA6点→HIKARI6点の二連続をやめ、形式ごとに左右で見比べる
   ・平面図はその形式の直下。写真と図の対応を明示する
   ・規約は独立セクションにせず、予約導線の中に置く
   ============================================================ */

/* --- ふたつの宴会場 --- */
.bqp-halls { padding: clamp(88px, 10vw, 150px) 0 0; }

.bqp-halls__title,
.bqp-layouts__title,
.bqp-reserve__title {
  margin: 0 0 clamp(26px, 2.6vw, 40px);
  font-family: var(--serif-jp);
  font-size: clamp(21px, 1.9vw, 28px);
  font-weight: 500;
  letter-spacing: .1em;
}

.bqp-halls__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(36px, 4vw, 72px);
  align-items: start;
  padding-top: clamp(12px, 1.2vw, 20px);
  border-top: 1px solid rgba(88, 75, 58, .2);
}

.bqp-hallcard__en {
  margin: 0 0 8px;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.bqp-hallcard__name {
  margin: 0 0 14px;
  font-family: var(--serif-jp);
  font-size: clamp(17px, 1.5vw, 22px);
  font-weight: 500;
  letter-spacing: .08em;
}

.bqp-hallcard__area {
  margin: 0 0 14px;
  font-size: 13px;
  letter-spacing: .1em;
}
.bqp-hallcard__area b {
  margin-right: 14px;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: .2em;
}

.bqp-hallcard__lead {
  margin: 0;
  max-width: 42ch;
  font-size: 13px;
  line-height: 2;
  letter-spacing: .05em;
}

.bqp-hallcard__plan { margin: clamp(22px, 2.2vw, 34px) 0 0; }
.bqp-hallcard__plan img { display: block; width: 100%; height: auto; }

/* --- レイアウト 6行 --- */
.bqp-layouts { padding: clamp(88px, 10vw, 150px) 0 0; }

.bqp-layouts__lead {
  max-width: 56ch;
  margin: -14px 0 clamp(40px, 4vw, 64px);
  font-size: 13px;
  line-height: 2;
  letter-spacing: .05em;
}

/* 写真の行もページ共通の12カラムフレームに載せる。
   左＝番号と形式名、右＝SORA/HIKARIの2枚。分割図・平面図・規約と骨格が揃う */
/* 写真は主役なので幅を削らない。ラベルは上に置き、写真は全幅2列で大きく見せる */
.bqp-row {
  padding: clamp(34px, 3.4vw, 50px) 0 clamp(34px, 3.4vw, 50px);
  border-top: 1px solid rgba(88, 75, 58, .2);
}

.bqp-row:first-of-type { border-top: 0; padding-top: clamp(8px, 1vw, 14px); }

.bqp-row__head {
  display: flex;
  align-items: baseline;
  gap: clamp(14px, 1.4vw, 22px);
  margin-bottom: clamp(18px, 1.8vw, 26px);
}

.bqp-row__no { margin: 0; }

.bqp-row__no {
  margin: 0;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 12px;
  letter-spacing: .16em;
}

.bqp-row__name {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: var(--serif-jp);
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 500;
  letter-spacing: .1em;
}

.bqp-row__name i {
  font-family: var(--serif-en);
  font-size: 11px;
  font-style: normal;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-soft, #6B6154);
}

.bqp-row__pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 2.2vw, 40px);
}

.bqp-row__shot { margin: 0; }

.bqp-row__media {
  display: block;
  overflow: hidden;
  background: var(--paper, #F1EDE4);
}

.bqp-row__media img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .9s cubic-bezier(.33, 1, .68, 1);
}

@media (hover: hover) {
  .bqp-row__media:hover img { transform: scale(1.03); }
}

.bqp-row__shot figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-top: 11px;
  font-size: 13px;
  letter-spacing: .07em;
}

.bqp-row__shot figcaption span { color: var(--ink-soft, #6B6154); }
.bqp-row__shot figcaption b { font-weight: 400; }




.bqp-row__plan { margin: 0; }
.bqp-row__plan img {
  display: block;
  height: clamp(140px, 14.5vw, 210px);
  width: auto;
  max-width: 100%;
}
.bqp-row__plan--empty { display: none; }

/* --- ご予約・お問い合わせ（規約を内包） --- */
/* 下余白は最後の子のmarginに任せず、セクションのpadding-bottomで確実に確保する */
.bqp-reserve { padding: clamp(88px, 10vw, 150px) 0 clamp(110px, 12vw, 180px); }

/* 罫線は規約ブロック側の上罫線だけにする（下線と二重に出ていた） */
.bqp-reserve__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 26px;
  padding-bottom: 0;
  border-bottom: 0;
}

.bqp-reserve__main {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 17px 34px;
  border: 1px solid rgba(88, 75, 58, .5);
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 14px;
  letter-spacing: .14em;
  text-decoration: none;
  transition: background .5s ease, color .5s ease;
}
.bqp-reserve__main:hover { background: var(--brand-ink, #584B3A); color: var(--paper, #F1EDE4); }

.bqp-reserve__sub {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(88, 75, 58, .34);
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 13px;
  letter-spacing: .12em;
  text-decoration: none;
}

@media (max-width: 900px) {
  .bqp-row__head { display: flex; align-items: baseline; gap: 16px; }
  .bqp-row__name { flex-direction: row; align-items: baseline; gap: 12px; }
}

@media (max-width: 768px) {
  .bqp-halls__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .bqp-row__pair { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .bqp-row__plangrid { grid-template-columns: minmax(0, 1fr); }
  .bqp-reserve__main { width: 100%; justify-content: center; }
  .bqp-row__name { flex-direction: column; gap: 4px; }
}

/* ============================================================
   平面図セクション（独立）
   先方支給の8点のみを載せる。作図はしない。
   図はSORAが横長(2.1:1)・HIKARIが縦長(0.75:1)なので、
   幅ではなく【高さ】で揃え、部屋の縦横比はそのまま保つ
   ============================================================ */

.bqp-plans { padding: clamp(88px, 10vw, 150px) 0 0; }

.bqp-plans__title {
  margin: 0 0 clamp(26px, 2.6vw, 40px);
  font-family: var(--serif-jp);
  font-size: clamp(21px, 1.9vw, 28px);
  font-weight: 500;
  letter-spacing: .1em;
}

.bqp-plans__group + .bqp-plans__group { margin-top: clamp(44px, 4.4vw, 70px); }

.bqp-plans__hall {
  margin: 0 0 clamp(20px, 2vw, 28px);
  padding-top: clamp(12px, 1.2vw, 18px);
  border-top: 1px solid rgba(88, 75, 58, .2);
  font-family: var(--serif-jp);
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 500;
  letter-spacing: .09em;
}

.bqp-plans__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(30px, 3.4vw, 60px);
}

.bqp-plans__card { margin: 0; }

/* 高さを揃えることで、横長と縦長が混ざっても行が乱れない */
.bqp-plans__card img {
  display: block;
  height: clamp(150px, 15.5vw, 224px);
  width: auto;
  max-width: 100%;
}

.bqp-plans__card figcaption {
  margin-top: 12px;
  color: var(--brand-ink, #584B3A);
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: .06em;
}

@media (max-width: 768px) {
  .bqp-plans__grid { gap: 26px; }
  .bqp-plans__card img { height: 150px; }
}


/* ============================================================
   キャプション＋図版の12カラムフレーム（Codex助言）
   図を中央に浮かせるのではなく、左を「キャプション領域」として
   意味のある空間にする。図版は右9カラムいっぱいに置く
   ============================================================ */

.bqp-detail {
  display: grid;
  grid-template-columns: minmax(200px, 3fr) minmax(0, 9fr);
  gap: clamp(32px, 3.4vw, 56px);
  align-items: start;
  margin-top: clamp(40px, 4vw, 56px);
  padding-top: clamp(24px, 2.6vw, 36px);
  border-top: 1px solid rgba(88, 75, 58, .2);
}

.bqp-detail__hall {
  margin: 0 0 6px;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-en);
  font-size: 13px;
  letter-spacing: .2em;
}

.bqp-detail__title {
  margin: 0;
  font-family: var(--serif-jp);
  font-size: clamp(14px, 1.2vw, 17px);
  font-weight: 500;
  letter-spacing: .09em;
}

.bqp-detail__body { min-width: 0; }
.bqp-detail__body > img,
.bqp-detail__body > figure img,
.bqp-split-picture img { display: block; width: 100%; max-width: 1080px; height: auto; }
.bqp-split-picture { display: block; }

.bqp-detail__body figcaption {
  margin-top: clamp(20px, 2vw, 30px);
  max-width: 62ch;
  color: var(--ink-soft, #6B6154);
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: .06em;
}

/* 平面図：右9カラム内で2列。図の高さを揃えて行の乱れを防ぐ */
.bqp-plans__group + .bqp-plans__group { margin-top: clamp(44px, 4.4vw, 68px); }

.bqp-plans__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 48px);
  align-items: start;
}

.bqp-plans__grid--hikari { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.bqp-plans__card { margin: 0; }
.bqp-plans__card img { display: block; width: 100%; height: auto; }

.bqp-plans__card figcaption {
  margin-top: 12px;
  color: var(--brand-ink, #584B3A);
  font-size: 11.5px;
  line-height: 1.7;
  letter-spacing: .06em;
}

@media (max-width: 900px) {
  .bqp-detail { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

@media (max-width: 600px) {
  .bqp-plans__grid,
  .bqp-plans__grid--hikari { grid-template-columns: minmax(0, 1fr); }
}


/* ============================================================
   注記は右カラムに閉じ込めない。
   セクション全体に掛かる情報なので、左端から始めて読み出しを揃える
   ============================================================ */
.bqp-note--wide {
  max-width: 68ch;
  margin: clamp(26px, 2.6vw, 38px) 0 0;
}

/* ============================================================
   ご予約・お問い合わせ：行動の場なので中央に据える
   ============================================================ */
.bqp-reserve__inner { text-align: center; }

.bqp-reserve__title { margin-bottom: clamp(20px, 1.5vw, 26px); }

/* 予約ボタンは規約の下。ここが行動の終点なので一番強く */
.bqp-reserve__main {
  display: inline-flex;
  padding: 20px 52px;
  font-size: var(--fs-body);
  background: var(--brand-ink, #584B3A);
  border-color: var(--brand-ink, #584B3A);
  color: var(--paper, #F1EDE4);
}

.bqp-reserve__main:hover { background: #443a2c; border-color: #443a2c; }

.bqp-reserve__lead {
  max-width: 42em;
  margin: 0 auto clamp(30px, 2.4vw, 38px);
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: var(--fs-body);
  line-height: 2;
  letter-spacing: .08em;
}

@media (max-width: 768px) {
  /* 相談案内は本文として自然に追える左揃えにする。
     見出しと最終CTAは行動の軸として中央のまま保持する。 */
  .bqp-reserve__lead {
    margin-bottom: clamp(26px, 4vw, 30px);
    text-align: left;
  }

  .bqp-reserve__title { margin-bottom: clamp(18px, 3vw, 22px); }

  .bqp-reserve__main { width: 100%; justify-content: center; }
}

/* ============================================================
   B-02 ホテル名を英字ディスプレイの上に（クライアント要求）
   本来は左下の情報群に置くのが収まりが良いが、上に出す指定のため、
   ディスプレイの視覚的な始点を邪魔しない位置と大きさに抑える。
   英字ディスプレイのサイズ・行組みには一切触れない
   ============================================================ */
.hero__namejp {
  position: absolute;
  z-index: 4;
  left: 5.1%;
  top: 20.2%;
  margin: 0;
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: clamp(17px, 1.42vw, 23px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .18em;
  white-space: nowrap;
}

@media (max-width: 1120px) and (min-width: 769px) {
  .hero__namejp { top: 21.5%; }
}

@media (max-width: 768px) {
  /* bottom:62% だと英字ディスプレイの2行目に完全に乗っていた（実測で
     名前297〜321 / 英字225〜467）。ロゴ下と英字上の間に置き直す */
  .hero__namejp {
    /* 小さい端末ほどロゴに詰まるので、割合に固定値を足して余裕を作る */
    top: calc(15vh + 12px);
    bottom: auto;
    font-size: 16px;
    letter-spacing: .12em;
  }
}




/* ============================================================
   ヒーロー右上：言語切替の右に予約導線（クライアント要求）
   ヒーローの静けさを壊さないよう、枠線は細く色は使わない
   ============================================================ */
.hero__right,
.bqp-hero__right {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.4vw, 22px);
}

.hero__book {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  border: 1px solid rgba(88, 75, 58, .45);
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: var(--fs-small);
  letter-spacing: .1em;
  text-decoration: none;
  white-space: nowrap;
  transition: background .45s ease, color .45s ease, border-color .45s ease;
}

.hero__book:hover {
  background: var(--brand-ink, #584B3A);
  border-color: var(--brand-ink, #584B3A);
  color: var(--paper, #F1EDE4);
}

.hero__book--sub {
  border-color: rgba(88, 75, 58, .28);
  color: var(--ink-soft, #6B6154);
}

.hero__book[data-pending] { opacity: 1; pointer-events: none; }

@media (max-width: 1120px) {
  .hero__book { padding: 8px 15px; font-size: 13px; letter-spacing: .06em; }
}

@media (max-width: 768px) {
  /* 狭い画面ではヒーローが窮屈になるので、下端の追従バーに任せる */
  .hero__book { display: none; }
}

/* ============================================================
   820〜1120px でコンセプト見出しが2行に割れる問題
   左カラムが12分の4（277〜346px）しかなく、
   和文を一回り上げたことで「「都市の森」という滞在。」が入らなくなった。
   この帯域だけ左カラムを1カラム分広げる
   ============================================================ */
@media (max-width: 1120px) and (min-width: 769px) {
  /* 左を1カラム広げたぶん、写真も1つ右へずらして重なりを避ける */
  .concept__copy-panel { grid-column: 1 / 7; }
  .concept__forest { grid-column: 7 / 13; }
}

/* ============================================================
   ダーク帯（3本柱）が右にはみ出す問題
   .descent__inner は width が min(calc(100% - 20px), 1360px) なのに
   margin-left: 10vw を持っていて、左マージンが幅計算に入っていない。
   1440pxで 144+1360=1504 となり 64px、1300pxでは110px溢れて
   3本目の柱が切れていた（フォント変更とは無関係の既存バグ）
   ============================================================ */
/* ダーク帯だけ margin-left:10vw / margin-right:0 で右に流れており、
   他セクション（左右とも 8vw ＝1440pxで115px）と揃っていなかった。
   同じ計算式にして中央に据える */
@media (min-width: 769px) {
  .descent__inner {
    width: min(calc(100% - 2 * var(--gutter, 8vw)), 1520px);
    margin-inline: auto;
  }
}

/* ============================================================
   コンセプト見出しを全幅で1行に
   左カラムが12分の4しかなく、和文を一回り上げた結果
   「「都市の森」という滞在。」(405px) が親384pxに入らなくなった。
   左を5カラムに広げ、写真も1つ右へずらす
   ============================================================ */
@media (min-width: 1121px) {
  .concept__copy-panel { grid-column: 1 / 6; }
  .concept__forest { grid-column: 7 / 13; }
}

/* ============================================================
   導入文と会場概要をひとつのセクションに統合
   （見出し＋本文で1ブロック、その下に2会場を並べる）
   ============================================================ */
.bqp-halls__title {
  margin: 0 0 clamp(40px, 4vw, 64px);
  font-family: var(--serif-jp);
  font-size: var(--fs-heading);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .09em;
}

.bqp-halls__lead {
  margin: 0;
  max-width: 46ch;
  font-size: var(--fs-body);
  line-height: 2;
  letter-spacing: .065em;
}

.bqp-halls__grid { padding-top: clamp(14px, 1.4vw, 20px); }

@media (max-width: 900px) {
  .bqp-halls__intro { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}


/* ============================================================
   注記は図面の左端に揃える
   セクション幅の左端から始めると、図版とのラインが合わず落ち着かない。
   12カラムフレームの右カラム（図版と同じ列）に載せる
   ============================================================ */
.bqp-detail .bqp-note--incol {
  grid-column: 2;
  max-width: 62ch;
  margin: clamp(22px, 2.2vw, 32px) 0 0;
}

.bqp-detail--note {
  margin-top: clamp(30px, 3vw, 44px);
  padding-top: 0;
  border-top: 0;
}

.bqp-detail--note .bqp-note--incol { margin-top: 0; }

@media (max-width: 900px) {
  .bqp-detail .bqp-note--incol { grid-column: 1; }
}

/* ============================================================
   客室セクション：写真を横長に、下端に「左＝注記／右＝室名」の帯
   2026-08-12 クライアント指示。
   ・写真がほぼ正方形（923×890）で1画面に収まらなかった
   ・注記が左カラムにあり、写真とも室名とも関係が読めなかった
   英字ディスプレイのサイズは触らない（不可侵）。
   ============================================================ */
@media (min-width: 1121px) {
  /* 写真の高さは左カラムに一致させる（クライアント指示：縦幅は揃える）。
     横長にするのは比率を固定するのではなく、左カラムを縮めて実現する */
  .rooms-editorial__gallery { align-self: stretch; }
  .rooms-editorial__slider,
  .rooms-editorial__slide { height: 100%; }
  .rooms-editorial__slide img { height: 100%; object-fit: cover; }

  /* 写真の下端：左に注記（写真の左端に揃う）、右に室名 */
  .rooms-editorial__gallery > .cb-disclaimer {
    position: absolute;
    top: calc(100% + 18px);
    left: 0;
    width: min(74%, 700px);
    margin: 0;
    text-align: left;
  }
  /* 室名は1行に収める（「ROOM -IORI- ／ コンセプトルーム」が折れていた） */
  .rooms-editorial__caption { white-space: nowrap; }
}

/* 写真が横長になった分、左カラムの余白を詰めて高さを合わせる。
   詰めるのは余白だけ。文字サイズは type-scale.css の段のまま動かさない */
@media (min-width: 1121px) {
  .rooms-editorial__kicker  { margin-top: 40px; }
  .rooms-editorial__copy    { margin-top: 24px; }
  .rooms-editorial__summary { margin-top: 14px; }
  .rooms-console            { margin-top: 36px; padding-top: 22px; }
  .rooms-editorial__toolbar { margin-top: 22px; }
}

/* ROOM TYPE の値（「ROOM -IORI- ／ コンセプトルーム」）が2行に折れていた。
   nowrap で押し込むと他言語で溢れるので、左カラムの取り分を広げて収める。
   29:71 → 33:67（実測 不足36px に対し +36px） */
@media (min-width: 1121px) {
  .rooms-editorial__layout {
    grid-template-columns: minmax(300px, 35fr) minmax(0, 65fr);
  }
}

/* スペック表のラベル列が 34% 指定だったため、左カラムを広げても
   その分をラベル列が吸ってしまい室名が1行に収まらなかった。
   ラベル（ROOM TYPE / ROOM SIZE / CAPACITY）は96pxで足りるので固定し、
   広げた分をすべて値側に回す */
@media (min-width: 1121px) {
  .rooms-spec > div { grid-template-columns: 100px minmax(0, 1fr); }
}

/* 左カラムを広げた結果、本文の最終行が「を。」だけになっていた。
   行の均し（孤立行の回避）をブラウザに任せる */
/* 「滞／在を。」のように語の途中で折れるのを避け、文節で折る */
.rooms-editorial__copy { text-wrap: pretty; word-break: auto-phrase; }

/* 写真の縦幅＝テキストの縦幅。写真を横長にするぶん左カラムを縦に詰める。
   ROOM TYPE が1行に収まったので、その行に余っていた高さも削る。
   詰めるのは余白と行間だけで、文字サイズは触らない */
@media (min-width: 1121px) {
  .rooms-spec > div { padding: 8px 0; }
  .rooms-console { padding-top: 12px; margin-top: 28px; }
  .rooms-editorial__kicker { margin-top: 32px; }
  .rooms-editorial__toolbar { margin-top: 18px; }
}

/* 「全246室」は写真下の注記と一続きに見せる。
   （見出し行に置いたが位置として不自然だったため 2026-08-12 変更）
   「全246室 ／ 写真はイメージです。…」と1行に並ぶ */
.rooms-editorial__gallery > .rooms-editorial__summary {
  position: absolute;
  top: calc(100% + 18px);
  left: 0;
  margin: 0;
  font-size: var(--fs-caption);
  color: var(--rooms-brown, #584B3A);
  white-space: nowrap;
}
.rooms-editorial__gallery > .rooms-editorial__summary::after {
  content: "／";
  margin: 0 .5em 0 .6em;
  opacity: .5;
}
@media (min-width: 1121px) {
  /* 注記は「全246室 ／」の右から始める */
  .rooms-editorial__gallery > .cb-disclaimer {
    padding-left: 6.4em;
  }
}

/* さらに縦を詰める。写真の縦幅＝テキストの縦幅を保ったまま横長にするため */
@media (min-width: 1121px) {
  .rooms-spec > div { padding: 4px 0; }
  .rooms-console { padding-top: 8px; margin-top: 20px; }
  .rooms-console .rooms-editorial__toolbar { margin-top: 16px; }
}

/* ============================================================
   開業スケジュール / アクセス（2026-08-12 第2版）
   クライアント提示のイメージに寄せる。骨子は4つ。
     1. 開業スケジュールは丸印を打った1本のタイムラインにする
     2. 列と列の間に細い縦罫を入れて「表」として読ませる
     3. 路線名と駅名の間に短い横罫を入れ、2段の関係を示す
     4. PCは所在地とお車を2分割し、モバイルはお車→所在地→地図にする
   アイコンは外部リソースを使わず data URI で埋め込む（FTP納品のため）。
   ============================================================ */
@media (min-width: 861px) {
  /* 開業（時間）とアクセス（場所）は別種の情報なので、
     左右に並べず縦2段に分けてそれぞれを横に流す */
  .schedule--standalone .schedule__inner {
    grid-template-columns: 1fr;
    row-gap: 0;
    border-top: 0;          /* 開業スケジュールの上には線を引かない */
  }
  /* 開業とアクセスの間だけ全幅で1本。ここが唯一の段の切れ目 */
  .schedule--standalone .schedule__col:last-child {
    border-top: 1px solid var(--rule);
    margin-top: clamp(56px, 5vw, 88px);
    padding-top: clamp(40px, 3.6vw, 60px);
  }

  /* --- 1. 開業スケジュールのタイムライン --- */
  .schedule--standalone .schedule__col:first-child .schedule__rows {
    position: relative;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 0;
    border-top: 0;
    padding-top: 32px;
  }
  .schedule--standalone .schedule__col:first-child .schedule__rows::before {
    content: "";
    position: absolute;
    left: 0; right: 0; top: 6px;
    height: 1px;
    background: var(--rule);
  }
  .schedule--standalone .schedule__row {
    position: relative;
    display: block;              /* 年月の下に説明を置く（元は2列のgrid） */
    border-top: 0;
    border-bottom: 0;
    padding: 0 clamp(16px, 1.8vw, 30px) 0 0;
  }
  .schedule--standalone .schedule__row + .schedule__row {
    padding: 0 clamp(16px, 1.8vw, 30px);
  }
  .schedule--standalone .schedule__row + .schedule__row::after {
    content: "";
    position: absolute;
    left: 0; top: 2px; bottom: 4px;
    width: 1px;
    background: var(--rule);
  }
  /* 線上の丸印。列の左端に置く */
  .schedule--standalone .schedule__row::before {
    content: "";
    position: absolute;
    top: -32px;
    left: 0;
    width: 9px; height: 9px;
    border-radius: 50%;
    border: 1px solid var(--brand-green, #3E7150);
    background: var(--paper, #F1EDE4);
  }
  .schedule--standalone .schedule__row + .schedule__row::before {
    left: clamp(16px, 1.8vw, 30px);
  }
  .schedule--standalone .schedule__row .num {
    display: block;
    margin-bottom: 8px;
    font-size: var(--fs-lead);
  }

  /* --- 2. アクセス：駅の列にも縦罫 --- */
  /* アクセスの見出し下には線を引かない（縦罫と短い横罫だけで読ませる） */
  .schedule--standalone .schedule__col:last-child .schedule__rows {
    grid-template-columns: repeat(4, 1fr);
    column-gap: 0;
    border-top: 0;
    padding-top: 0;
  }
  .schedule--standalone .station {
    position: relative;
    grid-template-columns: 1fr;
    gap: 0;
    border-top: 0;
    border-bottom: 0;      /* 徒歩分数の下に線は引かない */
    padding: 0 clamp(16px, 1.8vw, 30px) 0 0;
    align-items: start;
  }
  .schedule--standalone .station + .station {
    padding: 0 clamp(16px, 1.8vw, 30px);
  }
  .schedule--standalone .station + .station::after {
    content: "";
    position: absolute;
    left: 0; top: 2px; bottom: 2px;
    width: 1px;
    background: var(--rule);
  }

  /* --- 3. 路線名の下に短い横罫。行数が違っても駅名の頭を揃える --- */
  .schedule--standalone .station .station__line {
    display: block;
    min-height: 3.2em;
    min-height: 3lh;
    margin-bottom: 0;
    font-size: var(--fs-caption);
  }
  .schedule--standalone .station .station__line::after {
    content: "";
    display: block;
    width: 26px;
    height: 1px;
    margin: 12px 0 14px;
    background: var(--rule);
  }
  .schedule--standalone .station > span { display: block; font-size: var(--fs-lead); }
  .schedule--standalone .station i {
    display: block;
    margin-top: 10px;
    font-size: var(--fs-small);
  }
  .schedule--standalone .station i b {
    font-weight: 400;
    font-size: 1.34em;
    letter-spacing: .02em;
  }

  /* --- 4. PC：所在地と車経路を2分割し、両方の先頭行を上揃え --- */
  .schedule--standalone .schedule__addr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 0;
    row-gap: 10px;
    align-items: start;
    max-width: none;
    border-top: 0;          /* 徒歩分数の直下には線を引かない */
    margin-top: clamp(48px, 4.4vw, 72px);
    padding-top: 0;
  }
  .schedule--standalone .schedule__addr > p { margin: 0; }
  .schedule--standalone .schedule__addr > .schedule__location {
    grid-column: 1; grid-row: 1; padding-left: 34px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233E7150" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/></svg>') no-repeat left .02em / 20px 20px;
  }
  .schedule--standalone .schedule__addr > .schedule__map {
    grid-column: 1; grid-row: 2; padding-left: 34px;
  }
  .schedule--standalone .schedule__car {
    position: relative;
    grid-column: 2; grid-row: 1 / span 2;
    align-self: stretch;
    padding-left: clamp(64px, 5vw, 82px);
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233E7150" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/><circle cx="7" cy="17" r="2"/><path d="M9 17h6"/><circle cx="17" cy="17" r="2"/></svg>') no-repeat clamp(30px, 2.7vw, 44px) .08em / 22px 22px;
  }
  .schedule--standalone .schedule__car::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 1px;
    background: var(--rule);
  }
  .schedule--standalone .schedule__addr > .cb-disclaimer {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 22px;
    padding: 18px 0 0;
    border: 0;
    background: none;
  }
}

/* 中間幅では4駅を横一列にすると路線名が3行に折れて窮屈なので2列に落とす */
@media (min-width: 861px) and (max-width: 1120px) {
  .schedule--standalone .schedule__col:last-child .schedule__rows {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 26px;
  }
  .schedule--standalone .schedule__col:first-child .schedule__rows {
    column-gap: 28px;
  }
}

/* ============================================================
   ページが横に動かないことを保証する（2026-08-12）
   --rooms-side / --bqp-edge などが 100vw 基準で計算されており、
   スクロールバーが幅を食う環境（Safari の常時表示設定など）では
   100vw > 表示幅 となって数px右に溢れ、横スクロールが出ていた。
   Chromium のオーバーレイスクロールバーでは再現しないため
   ローカル確認だけでは気づけない。
   clip はスクロールコンテナを作らないので sticky を壊さない。
   意図的な横スクロール（.hotels-strip / 規約テーブル）は
   子要素側の overflow-x:auto なので影響を受けない。
   ============================================================ */
html, body { overflow-x: clip; }

/* フッター見出しが画面幅によって1行になり画面端まで伸びていた。
   .ib は inline-block なので幅が足りると継がってしまう。行の最大幅を決める */
.footer-editorial__title { max-width: 22em; }

/* 中間幅で駅を2列に折り返したとき、左列（3つ目）の頭にも縦罫が出て
   段の切れ目に見えてしまう。折り返し位置の縦罫だけ消す */
@media (min-width: 861px) and (max-width: 1120px) {
  .schedule--standalone .station:nth-child(2n+1) { padding-left: 0; }
  .schedule--standalone .station:nth-child(2n+1)::after { display: none; }
}

/* ============================================================
   宴会場ページのヘッダー（2026-08-12）
   ・右レールの「宿泊予約」を撤去した。ここは会議室の問い合わせを
     受ける場所であり、組合員向けの導線がないまま宿泊予約だけ
     出ているのは筋が通らないため
   ・言語切替の隣に「ご予約・お問い合わせ」を置く
   ・ロゴの下にトップページと同じく日本語のホテル名を入れる
   ============================================================ */
.bqp-hero__right {
  display: flex;
  align-items: center;
  gap: clamp(16px, 1.8vw, 30px);
}
.bqp-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: .3em;
  padding: 9px 18px;
  border: 1px solid rgba(88, 75, 58, .38);
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: var(--fs-small);
  letter-spacing: .1em;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color .3s ease, background-color .3s ease;
}
.bqp-hero__cta:hover {
  border-color: rgba(88, 75, 58, .7);
  background: rgba(88, 75, 58, .05);
}
/* PCヘッダーだけに必要な補正。モバイルでは banquet-page.css の
   absolute + 左右レールをそのまま使い、画面外への退行を防ぐ。 */
@media (min-width: 1121px) {
  .bqp-hero__right {
    /* head が幅100%＋左位置ぶん右へ張り出すPC構成の補正 */
    margin-right: 9.7vw;
  }
  .bqp-hero__head { position: relative; }
}
.bqp-hero__namejp {
  /* ヘッダーは横並びなので、そのまま置くとロゴの右隣に出てしまう。
     トップページと同じくロゴの真下に配置する */
  position: absolute;
  left: 0;
  top: calc(100% + 10px);
  margin: 0;
  color: var(--hero-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: clamp(17px, 1.42vw, 23px);   /* トップの .hero__namejp と同一 */
  font-weight: 400;
  /* トップは antialiased、宴会場は auto で、同じ字形でも太さが違って見えていた */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: .18em;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .bqp-hero__namejp { font-size: 16px; letter-spacing: .12em; }  /* トップのSP指定に合わせる */
}

.bqp-reserve__main {
  width: min(100%, 480px);
  box-sizing: border-box;
  justify-content: center;
}

/* ============================================================
   reveal の基本指定（トップページの <style> にあったものと同一）
   宴会場ページには定義が無く、素朴なフェードだけになっていたため、
   両ページで同じ演出が使えるようにここに置く。値は一切変えていない。
   ============================================================ */
.rv { opacity: 0; transform: translateY(28px); transition: opacity 1.1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1); }
.rv.on { opacity: 1; transform: none; }
.rv-o { opacity: 0; transform: none; transition: opacity 1.3s cubic-bezier(.22,1,.36,1); }
.rv-o.on { opacity: 1; }
.rv-d1 { transition-delay: .12s; } .rv-d2 { transition-delay: .24s; } .rv-d3 { transition-delay: .36s; }
.rv-d4 { transition-delay: .48s; } .rv-d5 { transition-delay: .6s; }

/* 写真のリビール：マスクが上に開いて画像がゆっくり寄る（トップの図版と同じ挙動） */
.rvimg { position: relative; overflow: hidden; }
.rvimg::after {
  content: "";
  position: absolute;
  /* inset:0 ちょうどだと、要素幅が小数（588.95px など）のとき
     サブピクセルの丸めでマスクの縁が1px足りず、写真の端が線に見える。
     枠は overflow:hidden なので外側に1pxはみ出させて確実に覆う */
  inset: -1px;
  background: var(--paper, #F1EDE4);
  /* 宴会場の写真は横長なので、左から右へ開く。
     起点は固定する（途中で切り替えるとマスクが飛ぶ） */
  transform-origin: right;
  transition: transform 1.35s cubic-bezier(.76,0,.24,1);
  z-index: 2;
}
.rvimg.on::after { transform: scaleX(0); }
.rvimg > img,
.rvimg > picture > img {
  transform: scale(1.06) translateX(1.2%);
  transition: transform 1.9s cubic-bezier(.22,1,.36,1);
}
.rvimg.on > img,
.rvimg.on > picture > img { transform: scale(1) translateX(0); }
@media (prefers-reduced-motion: reduce) {
  .rv, .rv-o, .rvimg::after, .rvimg > img { transition: none; }
  .rvimg::after { display: none; }
}

/* ============================================================
   予約導線の主従（2026-08-12）
   ヒーローも右レールも「枠線だけ」で組んでいたため、宿泊予約と
   組合員様が同じ強さに見え、どちらも目立たなかった。
   主は塗り、副は紙色＋差し色の枠線にして主従を付ける。
   差し色は VI ガイドラインの GOLD（全層共通のアクセント／
   基調84%・差し色16%）。面ではなく線で小さく効かせる。
   ============================================================ */
/* --- VI ガイドライン（tokyu rei hotel_VIguideline260806_p3改訂）の正式値 ---
   ここが色の唯一の出所。以後この変数以外の色を新しく書かない。
   同一クリエイティブ内のサブカラーは7色までという規定があるため、
   使う色を増やすときは必ずこの表に照らして選ぶこと。

   MAIN   FOREST GREEN #3E7150（Pantone 5545 C）… 主役。宿泊＝客室層の色
          BLACK #000000 ／ WHITE #FFFFFF
   POINT  BROWN        #584B3A（411 C）  … 地層の深み・本文の色
          GOLD         #AA8534（7563 C） … 全層共通のアクセント・ロゴ基準色
          RED SOIL     #C56619（1595 C） … 地下＝レストランの差し色
          GRAND GREEN  #79894F（5777 C） … 地表＝ロビー層
          SILENCE BLUE #A3CAD5（5455 C） … 朝霧の森・知的な静けさ（客室）
   BASE   BASEMENT SAND  #BEB098（7528 C）
          BASEMENT CLOUD #CBD4CD（621 C） … 淡い霧・余白（客室）
   配分   基調84% ／ 差し色16%（差し色は小さく効かせる）        */
:root {
  --brand-green:   #3E7150;
  --brand-ink:     #584B3A;
  --brand-gold:    #AA8534;
  --vi-red-soil:   #C56619;
  --vi-grand-green:#79894F;
  --vi-silence-blue:#A3CAD5;
  --vi-sand:       #BEB098;
  --vi-cloud:      #CBD4CD;
  /* ホバー時の沈み色。VIに規定が無いため FOREST GREEN から導出した
     唯一の派生色。派生をこれ以上増やさない（#345F44 と #2F5A3F に
     分裂していたのを統一した） */
  --brand-green-dark: #2F5A3F;
  /* 予約導線のホバー沈み色。VIに規定が無いため各主色から導出した派生 */
  --vi-silence-blue-dark: #8CB5C2;
  --vi-red-soil-dark: #A85513;
  --brand-ink-dark:   #45392B;
}

/* 宿泊予約は FOREST GREEN（主色）、組合員様は BROWN。どちらも白文字の塗り。
   RED SOIL も試したが、地下＝レストランの差し色で彩度が高く、
   紙の地色の上で浮いた。主色と本文色の組み合わせに落ち着かせる */
.hero__book {
  background: var(--brand-green, #3E7150);
  border: 1px solid var(--brand-green, #3E7150);
  color: #FFFFFF;
}
.hero__book:hover {
  background: var(--brand-green-dark);
  border-color: var(--brand-green-dark);
  color: #FFFFFF;
}
.hero__book--sub {
  background: var(--brand-ink, #584B3A);
  border: 1px solid var(--brand-ink, #584B3A);
  color: #FFFFFF;
}
.hero__book--sub:hover {
  background: var(--brand-ink-dark);
  color: #FFFFFF;
}

/* 右レール：紙色だけだと背景と同化するので枠線を入れる。
   主にも同じ太さの枠線を入れて、上下の輪郭を揃える */
.reserve-rail__item {
  border: 1px solid rgba(255, 255, 255, .38);
  box-sizing: border-box;
}
.reserve-rail__item--main {
  background: var(--brand-green, #3E7150);
  color: #FFFFFF;
}
/* ダーク帯の地色は BROWN と同一（rgb(88,75,58)）で、そのままだと
   組合員様のボタンが完全に消える。両方に同じ白い細枠を入れて
   輪郭を作る（片方だけだと段差に見えるため両方に入れる） */
.reserve-rail__item:not(.reserve-rail__item--main) {
  background: var(--brand-ink, #584B3A);
  color: #FFFFFF;
}
.reserve-rail__item:not(.reserve-rail__item--main):hover {
  background: var(--brand-ink-dark);
  color: #FFFFFF;
}

/* 言語切替が予約ボタン（高さ46px）に対して29pxと小さく、頼りなかった。
   ボタンの縦幅に近づける。文字サイズは触らず、余白と地球アイコンで合わせる */
.hero__right .lang-dd__btn,
.bqp-hero__right .lang-dd__btn {
  padding: 13px 8px;
  gap: .5em;
}
.hero__right .lang-dd__globe,
.bqp-hero__right .lang-dd__globe {
  width: 21px;
  height: 21px;
}

/* フッターのリンクを性質ごとに読ませる。
   1群=サイト内 ／ 2群=規約・ご案内 ／ 3群=東急ホテルズ。
   「東急ホテルズ公式サイト」だけ枠付きボタンでホテル名の直下にあり、
   優先度の割に最も目立っていたので、この群に降ろした */
/* 横1列に3群を並べると折り返して区切り罫が宙に浮くので、1群1行にする */
.footer-editorial__nav--cb {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.footer-nav__group {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px clamp(14px, 1.5vw, 24px);
}
.footer-nav__group { justify-content: center; }
@media (max-width: 768px) {
  .footer-editorial__nav--cb { gap: 14px; }
}

/* ============================================================
   フッターの整え直し（2026-08-12）
   ・運営者表記の下に罫線が2本重なっていた（content-rule と separator）
   ・宿泊予約だけ別クラスで、組合員様と格が違っていた
   ・リンク群が中央揃えで、フッターとして読みにくかった
   ・茶一色で単調だった → 予約導線の2色で締める
   ============================================================ */

/* 罫線は1本に */
.footer-editorial__separator { display: none; }

/* 宿泊予約と組合員様は同格。フッターは茶地なので緑と紙色で両方立たせる */
.footer-cb__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 16px;
}
.footer-cb__reserve,
.footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4em;
  min-width: 210px;
  min-height: 58px;      /* 2つの高さを厳密に揃える */
  padding: 14px 24px;
  border: 1px solid rgba(255, 255, 255, .38);
  box-sizing: border-box;
  font-size: var(--fs-small);
  letter-spacing: .1em;
  text-decoration: none;
}
.footer-cb__reserve {
  background: var(--brand-green, #3E7150);
  color: #FFFFFF;
}
.footer-cb__reserve:hover { background: var(--brand-green-dark); }
.footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]) {
  background: var(--paper, #F1EDE4);
  color: var(--brand-ink, #584B3A);
}
.footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]):hover { background: #E7E1D4; }

/* お問い合わせは2つの予約導線とは性質が違うので、控えめな線のリンクに */
.footer-cb__actions a.footer-cb__sub[data-pending="CONTACT_FORM"] {
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid rgba(241, 237, 228, .36);
  background: none;
  min-width: 0;
}

/* リンク群は左揃え。フッターとして自然な並びにする */
.footer-editorial__nav--cb {
  align-items: flex-start;
  gap: 10px;
}
.footer-nav__group { justify-content: flex-start; }
@media (max-width: 768px) {
  .footer-editorial__nav--cb { align-items: center; }
  .footer-nav__group { justify-content: center; }
  .footer-cb__reserve,
  .footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]) { min-width: 0; flex: 1 1 46%; }
}

/* ============================================================
   モバイルの客室セクション（2026-08-12）
   並び順の指定が .rooms-editorial__facts という存在しないクラスに
   当たっており、実体である .rooms-console（スペック＋操作）が
   order 未指定＝0 で先頭に来ていた。そのため
   「スペック → 操作 → 英字見出し → リード → 本文 → 写真」という
   逆立ちした順序になっていた。
   正しくは 見出し → リード → 本文 → 写真 → スペック・操作。
   ============================================================ */
@media (max-width: 1120px) {
  .rooms-console { order: 6; margin-top: 34px; }
  /* 写真の下に置いた注記も写真に続ける */
  .rooms-editorial__gallery > .rooms-editorial__summary,
  .rooms-editorial__gallery > .cb-disclaimer { position: static; padding-left: 0; }
  .rooms-editorial__gallery > .rooms-editorial__summary { margin-top: 14px; }
  .rooms-editorial__gallery > .rooms-editorial__summary::after { content: "／"; }
  .rooms-editorial__gallery > .cb-disclaimer { display: inline; }
}

/* ヒーローのリード「森の静けさを。」が折り返して最後が「を。」1文字に
   なっていた。必要172pxに対し領域が160pxで12px足りなかっただけなので、
   文字組み（サイズ・字間）は変えずに領域を広げて1行に収める */
@media (max-width: 768px) {
  .hero__statement { width: 60%; }
  .hero__statement > *:not(.hero__statement-line) { width: 100%; }
  .hero__statement-seg { white-space: nowrap; }
}

/* ヒーローのリード上の装飾罫を外す（2026-08-13 指示）。
   元からあったものだが不要と判断。PC・SPとも同じ扱いにする */
.hero__statement-line { display: none; }

/* フローティングCTAの2枚をくっつける（2026-08-13 指示）。
   gap:1px を詰めたうえで、境目の線は「上側の下辺」ではなく
   「下側の上辺」1本に集約する。上側の下辺を残すと、その線が緑の内側に
   入るため、線と色の境目が並んで2本に見えてしまう */
.reserve-rail { gap: 0; }
.reserve-rail__item--main { border-bottom: 0; }
.reserve-rail__item + .reserve-rail__item {
  border-top: 1px solid rgba(255, 255, 255, .38);
}

/* ============================================================
   モバイル修正（2026-08-13）作業2〜5
   ============================================================ */

/* --- 2. 宴会場ヘッダーの退行 ---
   PC補正は上の min-width 側へ隔離済み。モバイルは元設計の absolute と
   左右レールに戻るため、幅を削る互換指定は置かない。 */

/* --- 3. 文字サイズ ---
   8〜10px の文字が複数あり type-scale の SP 段（英字ラベル11px／和文13px）の
   外に出ていた。段に載せ直す。英字の全角風ラベルは字面が小さいので11pxを下限、
   和文は13pxを下限とする */
@media (max-width: 768px) {
  .hero__opening-name { font-size: 11px; letter-spacing: .16em; }
  .hero__scroll,
  .bqp-hero__scroll { font-size: 11px; }
  .concept__meta-label,
  .concept__meta-index,
  .bqp-hero__crumb-name { font-size: 11px; }
  .rooms-editorial__meta-label,
  .rooms-editorial__meta-index,
  .bqp-hallcard__en,
  .bqp-detail__hall,
  .union__kicker { font-size: 11px; }
  /* 和文が入るものは13px以上 */
  .cb-disclaimer,
  .bqp-note,
  .station__line,
  .footer-editorial__operator { font-size: 13px; }

  /* 和文が入る補助要素も、共通caption段（SP 13px）を下限にする */
  .descent__sub,
  .footer-editorial__details,
  .bqp-plans .bqp-detail__hall { font-size: var(--fs-caption); }
}

/* --- 4. タップ領域 ---
   18〜36px しかないリンクが多い。見た目を変えずに当たり判定だけ44pxへ広げる。
   ::after を敷いて透明な当たり判定を作る（文字サイズ・余白は触らない） */
@media (max-width: 860px) {
  .lang-dd__btn {
    min-width: 44px;
    min-height: 44px;
  }
  .footer-editorial__nav--cb a,
  .footer-cb__sub,
  .footer-cb__chain,
  .cb-maplink,
  .cb-contact-cta,
  .union__back,
  .lang-dd__list a {
    position: relative;
  }
  .footer-editorial__nav--cb a::after,
  .footer-cb__sub::after,
  .footer-cb__chain::after,
  .cb-maplink::after,
  .cb-contact-cta::after,
  .union__back::after,
  .lang-dd__list a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    min-height: 44px;
    height: 100%;
  }
  /* 宴会場ヘッダーのCTAは実寸で44pxに */
  .bqp-hero__cta { padding-top: 12px; padding-bottom: 12px; }
}

/* --- 5. 画像のはみ出し ---
   パララックス用に拡大した画像（.is-editorial-parallax）が枠から溢れ、
   モバイルで最大+243px 画面外へ出ていた。パララックスは「枠の中で画像が
   動く」演出なので、枠側で切る。PC幅の見え方は変わらない */
.concept__forest,
.rooms-editorial__slider { overflow: hidden; }

/* 施設の2枚組が固定 280px×2（+gap）で 574px 必要になり、
   390px幅で右の1枚が画面外に切れていた。モバイルは縦に積む */
@media (max-width: 768px) {
  .facility-editorial__secondary {
    /* grid のままだと auto-flow が列方向に残り2列に戻るので flex で積む */
    display: flex;
    flex-direction: column;
    gap: 22px;
  }
  .facility-editorial__secondary-figure { width: 100%; }
}

/* 宴会場ブロック（トップ）の「ご予約・お問い合わせはこちら」が
   SPで英字見出しの上に来ていた。copy-panel が display:contents で
   子を展開し order で並べているのに、この1本だけ order 未指定＝0
   だったため先頭に回っていた。PCと同じく「全レイアウトを写真で見る」の下へ */
@media (max-width: 768px) {
  .banquet-editorial .cb-contact-cta { order: 5; margin-top: 18px; }
}

/* --- 6. 平面図と施設スペックのモバイル復元 --- */
@media (max-width: 600px) {
  /* SORAは1列のまま、縦長のHIKARI 4図だけを2列にして見かけの主従を戻す */
  .bqp-plans__grid--hikari {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 14px;
    row-gap: 30px;
  }
  .bqp-plans__grid--hikari figcaption {
    /* 文字サイズは保ち、和文の「席」「名様」が孤立しない図面用の詰め組みにする */
    letter-spacing: -.04em;
  }
}

@media (max-width: 768px) {
  /* ヒーローでは予約導線を重複させず、スクロール後の固定バーへ一本化する */
  .bqp-hero__cta { display: none; }

  /* モバイル専用図版を可読サイズに保つ。タブレットでも過剰に拡大しない */
  .bqp-split-picture {
    width: min(100%, 430px);
    margin-inline: auto;
  }

  /* 86px固定では日本語の席数が末尾1字だけ孤立するため、ラベル列を実測分縮める */
  .facility-editorial__facts div {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 10px;
  }
  .facility-editorial__facts div:nth-child(4) {
    /* SEATS は短いラベルなので、値側へさらに16px譲って和文末尾の孤立を解消 */
    grid-template-columns: 52px minmax(0, 1fr);
  }

  /* 主要セクション間は 84px + 84px 前後で揃っている。
     宴会場だけ上余白52pxだったため、カフェ→宴会場と宴会場→アクセスを同じ拍へ戻す */
  .banquet-editorial { padding-top: 84px; }
}

@media (max-width: 430px) {
  /* 英語のSEATS値だけは和文より長いため、ラベル下の全幅で1行に収める */
  :lang(en) .facility-editorial__facts div:nth-child(4) {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }
}

/* ============================================================
   モバイル実機レビュー（2026-08-13 第2巡）
   情報を削って押し込むのではなく、操作と結果を同じ視界に置き、
   長い縦積みを「タイムライン／比較表／横送り」へ組み直す。
   PCと規定英字ディスプレイは変更しない。
   ============================================================ */
@media (max-width: 768px) {
  /* --- Hero：重複するホテル名を省き、SCROLLを独立した端部表示へ --- */
  .hero__opening-name,
  .bqp-hero__crumb-name {
    display: none;
  }

  .hero__scroll,
  .bqp-hero__scroll {
    /* 罫線との衝突を避け、旧位置から左へ10px移動 */
    right: 32px;
    left: auto;
    bottom: 7.3%;
    transform: none;
  }

  .bqp-hero__crumb {
    top: auto;
    /* Layouts & Seating と下線をSCROLLから離す */
    bottom: calc(8.2% + 20px);
  }

  .bqp-hero__crumb-rule {
    margin-bottom: 0;
  }

  /* --- 予約・問い合わせ：モバイルでは文言を必ず1行で読ませる --- */
  .cb-contact-cta,
  .bqp-reserve__main,
  .reserve-rail__item {
    white-space: nowrap;
  }

  .bqp-reserve__main {
    padding-inline: 18px;
    font-size: clamp(13px, 3.5vw, 14px);
    letter-spacing: .05em;
  }

  .cb-contact-cta {
    font-size: 13px;
    letter-spacing: .05em;
  }

  .reserve-rail {
    transition-duration: .32s, .24s, .24s;
  }

  /* --- Rooms：操作 → 写真 → 連動スペック。操作時に写真が同じ画面内に残る --- */
  #rooms.rooms-editorial {
    padding-top: 64px;
    padding-bottom: 38px;
  }

  .rooms-editorial__meta {
    margin-bottom: 38px;
  }

  .rooms-editorial__kicker {
    margin-top: 24px;
    line-height: 1.45;
  }

  .rooms-editorial__short-rule {
    margin-top: 18px;
  }

  .rooms-editorial__copy {
    margin-top: 18px;
    line-height: 1.85;
  }

  .rooms-console {
    display: contents;
  }

  .rooms-console .rooms-editorial__toolbar {
    order: 5;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "hint nav"
      "counter nav";
    align-items: center;
    gap: 4px 14px;
    margin: 28px 0 0;
    padding: 15px 0 0;
    border-top: 1px solid rgba(88, 75, 58, .26);
  }

  .rooms-console .rooms-editorial__toolbar::before {
    content: "SWIPE / TAP";
    grid-area: hint;
    color: var(--brand-accent, #3E7150);
    font-family: var(--serif-en);
    font-size: 11px;
    line-height: 1;
    letter-spacing: .18em;
  }

  .rooms-console .rooms-editorial__counter {
    grid-area: counter;
    order: initial;
    justify-content: flex-start;
    gap: 6px;
    margin: 0;
  }

  .rooms-console .rooms-progress {
    width: 58px;
    margin: 0 4px;
  }

  .rooms-console .rooms-editorial__nav {
    grid-area: nav;
    order: initial;
  }

  .rooms-console .rooms-editorial__arrow {
    width: 50px;
    height: 50px;
  }

  .rooms-editorial__gallery {
    display: contents;
  }

  .rooms-editorial__left-cover {
    display: none;
  }

  .rooms-editorial__slider {
    order: 6;
    width: calc(100% + var(--rooms-side));
    margin-top: 14px;
  }

  .rooms-spec {
    order: 7;
    margin-top: 18px;
    padding-top: 0;
    border-top: 0;
    gap: 8px;
  }

  .rooms-spec > div {
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: baseline;
    gap: 10px;
  }

  /* 値の切替中もベースラインを動かさない。fadeだけで同期を伝える。 */
  .rooms-editorial.is-changing .rooms-spec dd {
    transform: none;
  }

  /* 3項目のラベル位置は左列で統一する。ROOM TYPE の値だけを
     英字名／各言語名の意味単位で改行し、偶然の折返しをなくす。 */
  .rooms-spec > div:first-child dd {
    min-height: 0;
    font-size: 15px;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: normal;
  }

  .rooms-spec > div:first-child dd span:not([hidden]) {
    display: block;
    width: max-content;
    max-width: 100%;
    font-size: 15px;
    line-height: 1.35;
    letter-spacing: .035em;
    white-space: nowrap;
  }

  .rooms-spec > div:first-child dd span.rooms-spec__name-divider[aria-hidden="true"] {
    display: none;
  }

  /* IORIはホテル固有の正式名称を残しつつ、説明名と同じ1行へ。
     英字固有名だけを小さなラベルとして扱い、通常3室は15pxのままにする。 */
  .rooms-spec > div:first-child dd.is-iori {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 8px;
  }

  .rooms-spec > div:first-child dd.is-iori #roomName {
    flex: 0 0 auto;
    font-size: 12px;
    line-height: 1;
    letter-spacing: .015em;
  }

  .rooms-spec > div:first-child dd.is-iori #roomNameJp {
    flex: 0 1 auto;
    min-width: 0;
  }

  .rooms-spec > div:first-child dd span:not([hidden]) + span:not([hidden]) {
    margin-top: 2px;
  }

  /* 写真枚数と注記はスペックの後ろへ。注記は可読下限13pxを守りつつ、
     字間・濃度・行送りで補助情報として明確に一段下げる。 */
  .rooms-editorial__gallery > .rooms-editorial__summary {
    order: 8;
    margin: 16px 0 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
  }

  .rooms-editorial__gallery > .rooms-editorial__summary::after {
    content: none;
  }

  .rooms-editorial__gallery > .cb-disclaimer {
    order: 9;
    display: block;
    max-width: 33em;
    margin: 7px 0 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.55;
    letter-spacing: .02em;
    opacity: .66;
  }

  /* --- Cafe：営業時間は比較グリッド、補助写真は横スナップ --- */
  .facility-editorial--cafe {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .facility-editorial--cafe .facility-editorial__meta {
    margin-bottom: 36px;
  }

  .facility-editorial--cafe .facility-editorial__copy-group {
    margin-top: 30px;
  }

  .facility-editorial--cafe .facility-editorial__short-rule {
    margin: 22px 0;
  }

  .facility-editorial--cafe .facility-editorial__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 28px;
  }

  .facility-editorial--cafe .facility-editorial__facts div {
    display: block;
    min-width: 0;
    padding: 10px 8px 11px 0;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    border-right: 1px solid rgba(88, 75, 58, .2);
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
    padding-left: 12px;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(3) {
    grid-column: 1;
    grid-row: 2;
    border-right: 1px solid rgba(88, 75, 58, .2);
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
    padding-left: 12px;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) {
    grid-column: 1 / -1;
    grid-row: 3;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 10px;
    padding-right: 0;
  }

  .facility-editorial--cafe .facility-editorial__facts dt {
    display: block;
    margin-bottom: 3px;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dt {
    margin-bottom: 0;
  }

  .facility-editorial--cafe .facility-editorial__main-figure {
    margin-top: 30px;
  }

  .facility-editorial--cafe .facility-editorial__secondary {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 82%;
    gap: 14px;
    margin-top: 34px;
    margin-inline: calc(-1 * var(--facility-gutter));
    padding: 0 var(--facility-gutter) 4px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-padding-inline: var(--facility-gutter);
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .facility-editorial--cafe .facility-editorial__secondary::-webkit-scrollbar {
    display: none;
  }

  .facility-editorial--cafe .facility-editorial__secondary-figure {
    width: auto;
    scroll-snap-align: start;
  }

  /* --- Opening / Access：時間軸と2×2駅グリッドで情報の種類を分ける --- */
  .schedule.schedule--standalone {
    padding: 52px 22px;
  }

  .schedule--standalone .schedule__inner {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
    border-top: 0;
  }

  .schedule--standalone .schedule__col {
    gap: 14px;
    padding-top: 0;
  }

  .schedule--standalone .schedule__col:first-child .schedule__rows {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    padding-top: 27px;
  }

  .schedule--standalone .schedule__col:first-child .schedule__rows::before {
    content: "";
    position: absolute;
    top: 5px;
    right: 0;
    left: 0;
    height: 1px;
    background: var(--rule);
  }

  .schedule--standalone .schedule__row {
    position: relative;
    display: block;
    min-width: 0;
    padding: 0 10px 0 0;
    border: 0;
  }

  .schedule--standalone .schedule__row + .schedule__row {
    padding-left: 12px;
    border-left: 1px solid var(--rule);
  }

  .schedule--standalone .schedule__row::before {
    content: "";
    position: absolute;
    top: -26px;
    left: 0;
    width: 9px;
    height: 9px;
    border: 1px solid var(--brand-green, #3E7150);
    border-radius: 50%;
    background: var(--paper, #F1EDE4);
  }

  .schedule--standalone .schedule__row + .schedule__row::before {
    left: 12px;
  }

  .schedule--standalone .schedule__row .num {
    display: block;
    margin-bottom: 7px;
    color: var(--brand-green, #3E7150);
    font-size: 13px;
  }

  .schedule--standalone .schedule__row > span:last-child {
    display: block;
    font-size: 13px;
    line-height: 1.65;
  }

  .schedule--standalone .schedule__col:last-child {
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid var(--rule);
  }

  .schedule--standalone .schedule__col:last-child .schedule__rows {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px;
    row-gap: 24px;
    border-top: 1px solid var(--rule);
  }

  .schedule--standalone .station {
    display: flex;
    min-width: 0;
    min-height: 122px;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 10px 0 9px;
    border: 0;
  }

  .schedule--standalone .station:nth-child(2n) {
    padding-right: 0;
    padding-left: 0;
    border-left: 0;
  }

  .schedule--standalone .station > span {
    display: block;
    font-size: 16px;
    line-height: 1.35;
  }

  .schedule--standalone .station .station__line {
    display: block;
    min-height: 3em;
    margin-bottom: 4px;
    color: var(--brand-green, #3E7150);
    font-size: 13px;
    line-height: 1.35;
  }

  .schedule--standalone .station i {
    display: block;
    margin-top: auto;
    font-size: 13px;
  }

  .schedule--standalone .station i b {
    color: var(--brand-green, #3E7150);
    font-size: 18px;
    font-weight: 400;
  }

  .schedule--standalone .schedule__addr {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 20px;
    padding-top: 0;
    border-top: 0;
  }

  .schedule--standalone .schedule__addr > p {
    width: 100%;
    margin: 0;
    border: 0;
    line-height: 1.7;
  }

  .schedule--standalone .schedule__car {
    order: 1;
    display: block;
    min-height: 24px;
    padding: 0 0 0 30px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233E7150" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/><circle cx="7" cy="17" r="2"/><path d="M9 17h6"/><circle cx="17" cy="17" r="2"/></svg>') no-repeat left center / 22px 22px;
  }

  .schedule--standalone .schedule__car .ib {
    white-space: nowrap;
  }

  .schedule--standalone .schedule__addr > .schedule__location {
    order: 2;
    margin-top: 18px;
    padding: 0 0 0 30px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%233E7150" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/><circle cx="12" cy="10" r="3"/></svg>') no-repeat left .15em / 18px 18px;
  }

  .schedule--standalone .schedule__addr > .schedule__map {
    order: 3;
    margin-top: 2px;
    padding: 0 0 0 30px;
  }

  .schedule--standalone .schedule__addr > .cb-disclaimer {
    order: 4;
    margin-top: 18px;
    padding-top: 0;
    border: 0;
  }

  .schedule--standalone .cb-maplink {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
  }

  .schedule--standalone .schedule__map .cb-maplink {
    border-bottom: 0;
  }

  /* --- Footer：2つの主CTAを厳密に同寸、情報群は左揃えで分節 --- */
  .footer-editorial__inner {
    width: calc(100% - 40px);
    padding: 64px 0 34px;
  }

  .footer-editorial__main {
    gap: 38px;
  }

  .footer-editorial__visual {
    aspect-ratio: 4 / 3;
  }

  .footer-editorial__name {
    margin-top: 24px;
  }

  .footer-editorial__name + .footer-editorial__content-rule {
    margin-top: 24px;
  }

  .footer-editorial__actions {
    gap: 18px;
    margin-top: 24px;
  }

  .footer-editorial__details {
    gap: 10px;
    margin-top: 26px;
    line-height: 1.75;
  }

  .footer-cb {
    margin-top: 24px;
  }

  .footer-cb__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 12px;
    margin-top: 18px;
  }

  .footer-cb__reserve,
  .footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]) {
    width: 100%;
    min-width: 0;
    min-height: 58px;
    height: 58px;
    padding: 10px 8px;
    gap: 5px;
    font-size: 13px;
    letter-spacing: .04em;
    line-height: 1;
    white-space: nowrap;
  }

  .footer-cb__actions a.footer-cb__sub[data-pending="CONTACT_FORM"] {
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 44px;
    align-items: center;
  }

  .footer-editorial__nav--cb {
    align-items: flex-start;
    gap: 0;
    margin: 32px 0 12px;
  }

  .footer-nav__group {
    width: 100%;
    justify-content: flex-start;
    padding: 11px 0;
  }

  .footer-nav__group + .footer-nav__group {
    border-top: 1px solid rgba(241, 237, 228, .16);
  }

  .footer-editorial__rule {
    margin-top: 32px;
  }

  .footer-editorial__legal {
    gap: 24px;
    margin-top: 30px;
  }

  .footer-editorial__brand {
    gap: 18px;
  }

  /* 英語は同じ内容でも語長が大きく、和文用の改行位置では1段ずつ増える。
     文字量は削らず、ラテン文字向けの行送りと折返しへ切り替える。 */
  html[lang="en"] .facility-editorial--cafe .facility-editorial__copy-group {
    margin-top: 22px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__heading {
    line-height: 1.3;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__heading br {
    display: none;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__body {
    line-height: 1.65;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts {
    margin-top: 22px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 10px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__main-figure {
    margin-top: 24px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__secondary {
    margin-top: 30px;
  }

  html[lang="en"] .schedule--standalone .schedule__row > span:last-child {
    font-size: 12px;
    line-height: 1.4;
    letter-spacing: .02em;
  }

  html[lang="en"] .schedule--standalone .station {
    gap: 3px;
  }

  html[lang="en"] .schedule--standalone .station > span {
    font-size: 15px;
    line-height: 1.3;
  }

  html[lang="en"] .schedule--standalone .station .station__line {
    font-size: 12px;
    line-height: 1.25;
  }

  html[lang="en"] .schedule--standalone .station i {
    font-size: 12px;
  }

  html[lang="en"] .schedule--standalone .schedule__addr > p {
    font-size: 12px;
    line-height: 1.5;
  }

  html[lang="en"] .schedule--standalone .schedule__addr > .cb-disclaimer {
    font-size: 12px;
    line-height: 1.5;
  }
}

@media (min-width: 520px) and (max-width: 768px) {
  /* タブレット幅で4:3を幅いっぱいにすると縦方向だけが再び肥大する。
     写真の内容を保ったcover cropで、操作・本文との距離を一定にする。 */
  .facility-editorial--cafe .facility-editorial__main-figure picture,
  .facility-editorial--cafe .facility-editorial__secondary-figure picture {
    aspect-ratio: 16 / 9;
  }
}

/* 宴会場PCヒーロー：CTAだけにブランドグリーンの役割を与える。 */
@media (min-width: 1121px) {
  .bqp-hero__cta {
    border-color: var(--brand-green, #3E7150);
    background: var(--brand-green, #3E7150);
    color: #FFFFFF;
    transition: border-color .38s ease, background-color .38s ease, color .38s ease;
  }

  .bqp-hero__cta:hover {
    border-color: var(--brand-green-dark, #2F5A3F);
    background: var(--brand-green-dark, #2F5A3F);
  }

  .bqp-hero__cta:focus-visible {
    outline: 2px solid var(--brand-green, #3E7150);
    outline-offset: 3px;
  }
}

/* ============================================================
   モバイルのセクション間隔（2026-08-13 最終監査）
   紙面上の主要セクションは「前セクション下余白＋次セクション上余白」
   を136pxに統一する。暗色トランジション直後は88pxで次章へつなぐ。
   Hero→Conceptは同一アトモスフィアなので既存44pxを意図的に残す。
   Banquet詳細ページはカタログ内の全境界が既に88pxで統一済み。
   ============================================================ */
@media (max-width: 768px) {
  :root {
    --mobile-section-gap-major: 136px;
    --mobile-section-gap-transition: 88px;
  }

  /* Concept bottom 82 + margin 54 = 136 */
  .descent { margin-top: 54px; }

  /* Dark transitionからRoomsは、カタログ境界と同じ88px。 */
  #rooms.rooms-editorial {
    padding-top: var(--mobile-section-gap-transition);
    padding-bottom: 48px;
  }

  /* Rooms 48 + Lobby 88 = 136 / Lobby 84 + Cafe 52 = 136 */
  .facility-editorial--cafe { padding-top: 52px; }

  /* Cafe 56 + Banquet 80 = 136 / Banquet 84 + Access 52 = 136 */
  .banquet-editorial { padding-top: 80px; }

  /* Access 66 + Hotel gate 70 = 136 */
  .schedule.schedule--standalone { padding-bottom: 66px; }

  /* 開閉コントロールも通常の主要境界に含める。7vh依存をやめ、
     Gate 70 + Hotel network 66 = 136。Footer前は暗色転換と同じ88px。 */
  .more-gate { padding-top: 70px; padding-bottom: 70px; }
  main[data-page="index"] #business {
    min-height: 0;
    padding-top: 66px;
    padding-bottom: var(--mobile-section-gap-transition);
  }
}

/* ============================================================
   2026-08-13 実機レビュー 第4巡
   Cafeの最終行、宴会CTA、Accessの罫線、写真注記、PC Footerの左右下端。
   写真注記の12pxだけは、最新レビューによるM19の限定例外。
   ============================================================ */
@media (max-width: 768px) {
  /* SEATSのラベル側を小さくして値へ行長を譲る。 */
  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 6px;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dt {
    font-size: 13px;
    letter-spacing: .06em;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dd {
    font-size: clamp(13px, 3.8vw, 15px);
    letter-spacing: .025em;
    white-space: nowrap;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 6px;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dd {
    font-size: 13px;
    letter-spacing: 0;
  }

  /* レイアウト案内とは別の、独立した問い合わせボックスとして見せる。 */
  .banquet-editorial .cb-contact-cta {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 52px;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    margin-top: 28px;
    padding: 13px 44px 13px 18px;
    border: 1px solid rgba(88, 75, 58, .34);
    text-align: center;
  }

  .banquet-editorial .cb-contact-cta__arrow {
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
  }

  .banquet-editorial .cb-contact-cta::after { content: none; }

  /* 4駅は外枠を付けず、中央の十字罫だけで2×2に区切る。 */
  .schedule--standalone .schedule__col:last-child .schedule__rows {
    border-top: 0;
    column-gap: 0;
    row-gap: 0;
  }

  .schedule--standalone .station {
    padding-right: 18px;
    padding-bottom: 18px;
    border: 0;
  }

  .schedule--standalone .station:nth-child(2n) {
    padding-right: 0;
    padding-left: 18px;
    border-left: 1px solid var(--rule);
  }

  .schedule--standalone .station:nth-child(n + 3) {
    padding-top: 18px;
    padding-bottom: 9px;
    border-top: 1px solid var(--rule);
  }

  .schedule--standalone .schedule__addr > p {
    border-bottom: 0;
  }

  /* 写真に関する法的・補助的な注記だけを本文より一段小さくする。 */
  .rooms-editorial__gallery > .cb-disclaimer,
  .schedule--standalone .schedule__addr > .cb-disclaimer {
    font-size: 12px;
    line-height: 1.6;
    letter-spacing: .02em;
    opacity: .6;
  }

  .rooms-editorial__gallery > .cb-disclaimer {
    margin-top: 6px;
  }

  .schedule--standalone .schedule__addr > .cb-disclaimer {
    margin-top: 6px;
    padding-top: 6px;
  }
}

@media (max-width: 340px) {
  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4),
  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 4px;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dt {
    font-size: 12px;
    letter-spacing: 0;
  }

  .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dd {
    font-size: 12px;
    letter-spacing: 0;
  }

  html[lang="en"] .facility-editorial--cafe .facility-editorial__facts div:nth-child(4) dd {
    font-size: 11.5px;
  }

  .banquet-editorial .cb-contact-cta {
    padding-right: 36px;
    padding-left: 12px;
    font-size: 12px;
    letter-spacing: .025em;
  }

  .banquet-editorial .cb-contact-cta__arrow { right: 12px; }

  /* 320pxだけは英語の一文が右端を16px越えるため、ラテン文字の追跡を詰める。 */
  html[lang="en"] .hero__statement p {
    font-size: 11.5px;
    letter-spacing: .02em;
  }

  html[lang="en"] .hero__statement-seg {
    font-size: 18px;
  }
}

/* 英語のヒーロー添え文は、本文幅が50vwに届かない中間幅だけ追跡を詰める。
   文字サイズ・文言・位置は変えず、1120/1121付近の右clipを解消する。 */
@media (min-width: 769px) and (max-width: 1120px) {
  html[lang="en"] .hero__statement {
    left: 50%;
    width: 50%;
  }

  html[lang="en"] .hero__statement p,
  html[lang="en"] .hero__statement-seg {
    font-size: 15px;
    letter-spacing: .04em;
  }
}

@media (min-width: 1121px) and (max-width: 1399px) {
  /* PCの21pxリード段は維持し、ラテン文字の字間だけを詰めて右clipを防ぐ。 */
  html[lang="en"] .hero__statement p,
  html[lang="en"] .hero__statement-seg {
    letter-spacing: .04em;
  }
}

/* 最新レビューで許可された唯一のPCレイアウト変更：Footer左右の上下端を揃える。 */
@media (min-width: 1121px) {
  .footer-editorial__main {
    align-items: stretch;
  }

  .footer-editorial__visual {
    height: auto;
    min-height: 600px;
    align-self: stretch;
  }

  .footer-editorial__content {
    align-self: stretch;
  }
}

/* ============================================================
   2026-08-13 多言語版の目視バグ修正
   コピー量の差を固定字数で吸収せず、実寸のレールとレスポンシブな
   読み順で処理する。日本語版の承認済み構成は変えない。
   ============================================================ */

/* Roomsの写真下は、全言語で「室数／」の領域を同じ実寸で予約する。
   6.4emでは英語の `246 rooms` とスラッシュが注記へ17px食い込んでいた。 */
@media (min-width: 1121px) {
  .rooms-editorial__gallery > .rooms-editorial__summary {
    width: 148px;
    padding-right: 30px;
  }

  .rooms-editorial__gallery > .rooms-editorial__summary::after {
    position: absolute;
    right: 10px;
    margin: 0;
  }

  .rooms-editorial__gallery > .cb-disclaimer {
    padding-left: 160px;
  }
}

/* EN/KOは縦書きにせず、見出し→説明→横長写真の順で読ませる。 */
@media (max-width: 768px) {
  html:is([lang="en"], [lang="ko"]) .descent__pillar {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, auto);
    gap: 16px;
    padding-left: 18px;
    padding-right: 0;
  }

  html:is([lang="en"], [lang="ko"]) .descent__ghost,
  html:is([lang="en"], [lang="ko"]) .descent__vertical,
  html:is([lang="en"], [lang="ko"]) .descent__sub,
  html:is([lang="en"], [lang="ko"]) .descent__stamp {
    grid-column: 1 / -1;
    width: 100%;
  }

  html:is([lang="en"], [lang="ko"]) .descent__ghost { grid-row: 1; }
  html:is([lang="en"], [lang="ko"]) .descent__vertical { grid-row: 2; }
  html:is([lang="en"], [lang="ko"]) .descent__sub { grid-row: 3; }

  html:is([lang="en"], [lang="ko"]) .descent__stamp {
    grid-row: 4;
    height: auto;
    aspect-ratio: 1062 / 684;
    justify-self: stretch;
  }
}

/* 狭いPC幅でも英語・韓国語の説明を正方形写真の裏へ潜らせない。 */
@media (min-width: 769px) and (max-width: 1200px) {
  html:is([lang="en"], [lang="ko"]) .descent__pillar:nth-child(3) .descent__vertical,
  html:is([lang="en"], [lang="ko"]) .descent__pillar:nth-child(3) .descent__sub {
    width: calc(100% - var(--descent-content-left) - 24px);
  }

  html:is([lang="en"], [lang="ko"]) .descent__sub { top: 280px; }

  html:is([lang="en"], [lang="ko"]) .descent__stamp {
    top: 430px;
    height: 223px;
  }
}

/* 翻訳後のホテル名。大見出しは触らず、補助名だけ言語の字面に合わせる。 */
html[lang="en"] :is(.hero__namejp, .bqp-hero__namejp) {
  font-family: var(--serif-en);
  font-size: clamp(14px, 1.15vw, 18px);
  letter-spacing: .07em;
}

html:is([lang="zh-Hant"], [lang="zh-Hans"], [lang="ko"]) :is(.hero__namejp, .bqp-hero__namejp) {
  letter-spacing: .1em;
}

@media (max-width: 768px) {
  html[lang="en"] :is(.hero__namejp, .bqp-hero__namejp) {
    font-size: clamp(11px, 3vw, 13px);
    letter-spacing: .055em;
  }

  html:is([lang="zh-Hant"], [lang="zh-Hans"], [lang="ko"]) :is(.hero__namejp, .bqp-hero__namejp) {
    font-size: 15px;
    letter-spacing: .07em;
  }
}

/* 運営主体は翻訳後の行長を中で折り、施設主体と運営会社を分けて読む。 */
html:not([lang="ja"]) .footer-editorial__operator {
  max-width: 100%;
  line-height: 1.7;
  letter-spacing: .035em;
}

html:not([lang="ja"]) .footer-editorial__operator > .ib {
  display: block;
  max-width: 100%;
  white-space: normal;
}

html:not([lang="ja"]) .footer-editorial__operator > .ib + .ib {
  margin-top: 3px;
}

html[lang="en"] .footer-editorial__operator {
  font-size: 12px;
  letter-spacing: .02em;
}

@media (max-width: 768px) {
  html[lang="en"] .footer-editorial__operator { font-size: 11px; }
}

/* PC右レールの基準高。個別の文言長に合わせた配分は下の769px以上で定義する。 */
.reserve-rail__item { height: 262px; }

/* Banquet has one longer contact action instead of the Top page's two-item
   pair. Give the Japanese/English label enough vertical inline space and
   keep it as one vertical text column. */
@media (min-width: 769px) {
  /* Topは文言量に応じて高さを配分する。長いUnion導線は文字を縮めず
     1列で読み切れる340px、短い宿泊予約は190pxにして画面内へ収める。
     2026-08-28: 組合員ページのSP専用レール（B-04u）は縦書きの右レールを
     持たないので、この2段配分から明示的に外す。 */
  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) .reserve-rail__item--main {
    height: 190px;
  }

  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) .reserve-rail__item:not(.reserve-rail__item--main) {
    height: 340px;
  }

  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) .reserve-rail__item > span {
    display: inline-block;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .reserve-rail[data-cb="B-04b"] .reserve-rail__item {
    height: 340px;
  }

  .reserve-rail[data-cb="B-04b"] .reserve-rail__item > span {
    display: inline-block;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }
}

.reserve-rail__item:not(.reserve-rail__item--main) {
  font-size: 14px;
  letter-spacing: .14em;
}

html[lang="en"] .reserve-rail__item:not(.reserve-rail__item--main) {
  font-family: var(--serif-en);
  letter-spacing: .045em;
}

@media (max-width: 768px) {
  .reserve-rail__item {
    width: auto;
    height: auto;
    min-width: 0;
  }

  .reserve-rail__item:not(.reserve-rail__item--main) {
    font-size: 13px;
    letter-spacing: .07em;
  }

  html[lang="en"] .reserve-rail__item:not(.reserve-rail__item--main) {
    gap: 6px;
    letter-spacing: 0;
  }
}

/* ============================================================
   2026-08-14 iPhoneブラウザ下部UIの色
   theme-colorを解釈しないSafariでも自動抽出元を紙色へ統一する。
   CTA自体の緑と位置には触れず、ブラウザのURLバー周辺だけをトップと揃える。
   ============================================================ */
html,
body {
  background-color: #F1EDE4;
}

/* ============================================================
   2026-08-18 ティザーサイト校正
   明示された位置・反転・地図・リンク規則だけを最終段で適用する。
   ============================================================ */

/* P1: PCのホテル名は右上操作群と同じ上段の中央へ。SPの承認済み位置は維持。 */
@media (min-width: 1121px) {
  .hero__namejp {
    /* `.hero__head` starts at 3.7% of the hero; the primary action is
       46.25px high. Position this element's transformed centre on that
       action's centre so the alignment also survives different screen heights. */
    top: calc(3.7% + 23.125px);
    left: 50%;
    right: auto;
    width: max-content;
    max-width: calc(100% - 720px);
    transform: translate(-50%, -50%);
    text-align: center;
  }

  .bqp-hero__namejp {
    top: 59px;
    left: calc(50% - 4.85vw);
    right: auto;
    width: max-content;
    max-width: calc(100% - 720px);
    transform: translateX(-50%);
    text-align: center;
  }
}

/* P1: 1121〜1600px は英語の操作群だけで520pxを超えるため、横一列の
   ままだと中央のホテル名の水平範囲へ入る。予約CTAの上端は維持し、
   言語切替だけを2段目へ送って、名称と操作群の間に実幅の余白を作る。 */
@media (min-width: 1121px) and (max-width: 1600px) {
  .hero__right {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 12px;
    row-gap: 8px;
    justify-items: end;
  }

  .hero__right .hero__book--sub {
    grid-column: 1;
    grid-row: 1;
  }

  .hero__right .hero__book:not(.hero__book--sub) {
    grid-column: 2;
    grid-row: 1;
  }

  .hero__right > .lang-dd {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .hero__right .hero__book {
    padding-right: 16px;
    padding-left: 16px;
  }

  .bqp-hero__right {
    display: grid;
    grid-template-columns: auto;
    row-gap: 8px;
    justify-items: end;
  }

  .bqp-hero__right .bqp-hero__cta {
    grid-column: 1;
    grid-row: 1;
  }

  .bqp-hero__right > .lang-dd {
    grid-column: 1;
    grid-row: 2;
  }
}

/* 2026-08-19 final review: 「大地にくつろぐ」に対応する3枚目の写真だけを
   上下反転する。以前の細い帯画像への反転指定は対象の取り違えだった。 */
.descent__pillar:nth-child(3) .descent__stamp img {
  transform: scaleY(-1);
  transform-origin: center;
}

/* P9: 地図は明示操作までページスクロールを奪わず、外枠は一重だけにする。 */
.schedule__map-frame {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  overflow: hidden;
  border: 1px solid rgba(88, 75, 58, .44);
  outline: 0;
  background: #D8D1C3;
  box-shadow: 0 10px 24px rgba(88, 75, 58, .07);
}

.schedule__map-frame iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 7;
  border: 0;
  filter: grayscale(.72) sepia(.2) saturate(.72) hue-rotate(67deg) contrast(.92) brightness(1.04);
  pointer-events: none;
}

.schedule__map-frame.is-interactive iframe {
  pointer-events: auto;
}

.schedule__map-activate {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
  min-height: 44px;
  padding: 0 17px;
  border: 1px solid rgba(88, 75, 58, .55);
  border-radius: 0;
  background: rgba(241, 237, 228, .96);
  box-shadow: 0 4px 12px rgba(88, 75, 58, .08);
  color: #584B3A;
  font: 600 13px/1.35 "Shippori Mincho B1", serif;
  letter-spacing: .08em;
  cursor: pointer;
}

.schedule__map-activate:hover,
.schedule__map-activate:focus-visible,
.schedule__map-frame.is-interactive .schedule__map-activate {
  border-color: #3E7150;
  background: #3E7150;
  color: #F1EDE4;
}

.schedule__map-activate:focus-visible {
  outline: 2px solid #AA8534;
  outline-offset: 3px;
}

@media (min-width: 861px) {
  .schedule--standalone .schedule__addr > .schedule__map-frame {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 26px;
  }

  .schedule--standalone .schedule__addr > .cb-disclaimer {
    grid-row: 4;
  }
}

@media (max-width: 860px) {
  .schedule.schedule--standalone {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .schedule--standalone .schedule__col:last-child {
    margin-top: 18px;
    padding-top: 14px;
  }

  .schedule--standalone .schedule__addr {
    margin-top: 8px;
  }

  .schedule--standalone .schedule__addr > .schedule__map-frame {
    order: 3;
    margin: 14px 5px 8px;
    width: calc(100% - 10px);
  }

  .schedule__map-frame iframe {
    height: clamp(320px, 38svh, 360px);
    aspect-ratio: auto;
  }

  .schedule--standalone .schedule__addr > .schedule__map {
    order: 4;
    margin-top: 4px;
  }

  .schedule--standalone .schedule__addr > .cb-disclaimer {
    order: 5;
  }
}

@media (max-width: 768px) {
  /* 地図と外部リンクは、住所ブロックと同じ左右基準線に揃える。 */
  .schedule--standalone .schedule__addr > .schedule__map-frame {
    margin-right: 0;
    margin-left: 0;
    width: 100%;
  }

  .schedule--standalone .schedule__addr > .schedule__map {
    padding-left: 0;
  }

  /* Google iframe内のモバイル専用「マップで開く」は、操作ゲートが閉じている間
     反応しない。サイト側の実働コントロールを同じ左上位置へ置いて置換する。 */
  .schedule__map-activate {
    right: auto;
    left: 10px;
    min-width: 160px;
    background: #F1EDE4;
  }
}

/* P1: 組合員案内本文の指定2リンクは、本文から判別できる共通規則にする。 */
.union__inline-link {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: rgba(62, 113, 80, .62);
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.union__inline-link:hover,
.union__inline-link:focus-visible {
  color: var(--brand-green, #3E7150);
  text-decoration-color: currentColor;
}

/* 2026-08-21 P10: 組合員料金の適用範囲・確認書類・助成券をHTMLで掲載する。 */
.union__item p + p {
  margin-top: .7em;
}

.union__section-title {
  margin: clamp(28px, 3.2vw, 44px) 0 14px;
  color: var(--brand-accent, #3E7150);
  font-family: var(--serif-jp);
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .075em;
}

.union__section-title:first-of-type {
  margin-top: 20px;
}

.union__section-title:focus-visible {
  outline: 2px solid var(--brand-accent, #3E7150);
  outline-offset: 5px;
}

.union__subheading {
  margin: 24px 0 10px;
  font-family: var(--serif-jp);
  font-size: clamp(13px, 1vw, 15px);
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: .045em;
}

.union__table-scroll-hint {
  display: none;
}

.union__mobile-break {
  display: none;
}

.union__table-wrap {
  max-width: 100%;
  margin: 22px 0 18px;
  border: 1px solid rgba(88, 75, 58, .25);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.union__table-wrap:focus-visible {
  outline: 2px solid var(--brand-accent, #3E7150);
  outline-offset: 3px;
}

.union__eligibility-table {
  width: 100%;
  min-width: 700px;
  border-collapse: collapse;
  color: var(--brand-ink, #584B3A);
  font-family: var(--serif-jp);
  font-size: 13px;
  line-height: 1.65;
  letter-spacing: .025em;
}

.union__eligibility-table caption {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(88, 75, 58, .25);
  background: rgba(62, 113, 80, .08);
  color: var(--brand-accent, #3E7150);
  font-weight: 600;
  text-align: left;
}

.union__eligibility-table th,
.union__eligibility-table td {
  padding: 11px 14px;
  border-right: 1px solid rgba(88, 75, 58, .18);
  border-bottom: 1px solid rgba(88, 75, 58, .18);
  vertical-align: middle;
}

.union__eligibility-table tr:last-child > * {
  border-bottom: 0;
}

.union__eligibility-table tr > *:last-child {
  border-right: 0;
}

.union__eligibility-table thead th {
  background: rgba(88, 75, 58, .055);
  font-weight: 500;
  text-align: center;
}

.union__eligibility-table thead th:first-child,
.union__eligibility-table tbody th {
  width: 50%;
  text-align: left;
}

.union__eligibility-table tbody th {
  font-weight: 400;
}

.union__eligibility-table td {
  width: 25%;
  font-family: var(--serif-jp);
  font-size: 15px;
  text-align: center;
}

.union__notes {
  margin-top: 14px;
  padding-left: 1em;
}

.union__notes p {
  font-size: clamp(13px, .9vw, 14px);
  line-height: 1.85;
  text-indent: -1em;
}

.union__document-list {
  margin: 0;
  border-top: 1px solid rgba(88, 75, 58, .18);
}

.union__document-list > div {
  display: grid;
  grid-template-columns: minmax(180px, .65fr) minmax(0, 1.35fr);
  border-bottom: 1px solid rgba(88, 75, 58, .18);
}

.union__document-list dt,
.union__document-list dd {
  margin: 0;
  padding: 12px 14px;
  font-size: clamp(13px, .92vw, 14px);
  line-height: 1.8;
  letter-spacing: .04em;
}

.union__document-list dt {
  border-right: 1px solid rgba(88, 75, 58, .18);
  background: rgba(88, 75, 58, .045);
  font-weight: 500;
}

@media (max-width: 520px) {
  .union__document-list > div {
    display: block;
  }

  .union__document-list dt {
    padding-bottom: 6px;
    border-right: 0;
  }

  .union__document-list dd {
    padding-top: 6px;
  }

  .union__eligibility-table {
    min-width: 660px;
    font-size: 13px;
  }
}

@media (max-width: 768px) {
  .union__mobile-break {
    display: initial;
  }

  .union__table-scroll-hint {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    margin: 16px 0 8px;
    color: var(--brand-accent, #3E7150);
    font-family: var(--serif-jp);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .06em;
    white-space: nowrap;
  }

  .union__item .union__table-scroll-hint {
    font-size: 12px;
  }

  .union__table-scroll-hint + .union__table-wrap {
    margin-top: 0;
  }

  .union__table-scroll-hint > span[aria-hidden="true"] {
    font-family: sans-serif;
    font-size: 15px;
    line-height: 1;
    letter-spacing: 0;
  }

  .union__eligibility-table {
    width: 620px;
    min-width: 620px;
    table-layout: fixed;
  }

  .union__eligibility-table th,
  .union__eligibility-table td {
    padding-inline: 10px;
  }

  .union__eligibility-col--target {
    width: 220px;
  }

  .union__eligibility-col--association {
    width: 200px;
  }
}

@media (min-width: 740px) and (max-width: 768px) {
  .union__table-scroll-hint {
    display: none;
  }

  .union__table-scroll-hint + .union__table-wrap {
    margin-top: 22px;
  }
}

@media (min-width: 769px) {
  html[lang="ja"] .footer-editorial__name {
    font-size: clamp(34px, 3.05vw, 50px);
    letter-spacing: .12em;
  }
}

@media (min-width: 1440px) {
  .bqp-note--wide {
    max-width: none;
    white-space: nowrap;
  }
}

/* 翻訳版はUnion導線を持たない。中間PC幅では、宿泊予約と
   言語切替だけを一列ずつ積み、空のグリッド列を作らない。 */
@media (min-width: 1121px) and (max-width: 1799px) {
  html:not([lang="ja"]) .hero__right {
    display: grid;
    grid-template-columns: auto;
    row-gap: 7px;
    justify-items: end;
  }

  html:not([lang="ja"]) .hero__right .hero__book {
    grid-column: 1;
    grid-row: 1;
  }

  html:not([lang="ja"]) .hero__right > .lang-dd {
    grid-column: 1;
    grid-row: 2;
  }
}

/* P8: 既定13pxとM47の12px余白を守ったまま長い正式ラベルを収めるため、
   モバイルの2アクションは同寸の全幅2段にする。主要予約は最下段を維持。
   2026-08-28: 2アクション用の指定なので、1本だけの組合員レール（B-04u）は
   宴会場（B-04b）と同じく除外し、下端1段バーの寸法をそのまま使う。 */
@media (max-width: 768px) {
  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) {
    flex-direction: column-reverse;
    gap: 0;
  }

  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) .reserve-rail__item {
    width: 100%;
    height: 50px;
    flex: none;
    padding: 0 18px;
    font-size: 13px;
  }

  .reserve-rail:not([data-cb="B-04b"]):not([data-cb="B-04u"]) .reserve-rail__item:not(.reserve-rail__item--main) {
    gap: 6px;
    white-space: nowrap;
  }

  /* 正式名称を13pxのまま収め、予約導線と同じ幅・高さを保つ。 */
  .footer-cb__actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .footer-cb__reserve,
  .footer-cb__actions a.footer-cb__sub:is(.footer-cb__sub--union, [href$="union.html"], [data-pending="RESERVE_UNION"]) {
    width: 100%;
    min-width: 0;
    flex: none;
  }

  .footer-cb__actions a.footer-cb__sub[data-pending="CONTACT_FORM"] {
    grid-column: 1;
  }
}

/* P12: フッターの補助リンクはすべて同じ静かな下線規則。CTAとは混同させない。 */
.footer-editorial__nav--cb a {
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(241, 237, 228, .32);
  text-decoration: none;
  transition: border-color .25s ease, opacity .25s ease;
}

.footer-editorial__nav--cb a:hover,
.footer-editorial__nav--cb a:focus-visible {
  border-bottom-color: rgba(241, 237, 228, .88);
}

@media (min-width: 1121px) {
  .footer-editorial__legal,
  .footer-editorial__brand {
    align-items: flex-end;
  }

  .footer-editorial__legal {
    min-height: 110px;
    padding-top: 18px;
  }

  .footer-editorial__brand p {
    margin-bottom: 0;
  }
}

/* SORA: the client-supplied marked-up plan is the binding information design.
   Keep one authoritative plan and draw every partition, dimension and label in
   a coordinate-locked SVG overlay so the 139+72+109 relationship is visible in
   one glance without altering the architectural raster. */
.bqp-split-picture {
  position: relative;
  display: block;
}

.sora-annotated__plan {
  position: relative;
  aspect-ratio: 1494 / 710;
  overflow: hidden;
  background: var(--paper, #F1EDE4);
}

.sora-annotated__canvas {
  position: absolute;
  top: -6.61971831%;
  left: -3.88219545%;
  width: 107.09504685%;
}

.sora-annotated__canvas > img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.sora-annotated__overlay {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.sora-annotated__partition {
  fill: none;
  stroke: #584B3A;
  stroke-width: 4;
  vector-effect: non-scaling-stroke;
}

.sora-annotated__dimension line {
  fill: none;
  stroke: #3E7150;
  stroke-width: 3.25;
  marker-start: url(#sora-arrow);
  marker-end: url(#sora-arrow);
  vector-effect: non-scaling-stroke;
}

.sora-annotated__overlay marker path {
  fill: #3E7150;
}

.sora-annotated__label {
  fill: #3E7150;
  stroke: rgba(244, 241, 234, .92);
  stroke-width: 6px;
  stroke-linejoin: round;
  paint-order: stroke fill;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 44px;
  font-weight: 600;
  letter-spacing: 0;
  text-anchor: middle;
}

.sora-annotated__label--primary {
  font-size: 48px;
  font-weight: 650;
}

/* ============================================================
   2026-08-20 review corrections
   ============================================================ */

/* Guest Rooms: every source is displayed inside one deterministic frame.
   Intrinsic image ratios must never contribute to the desktop grid row. */
@media (min-width: 1121px) {
  .rooms-editorial__gallery {
    align-self: stretch;
  }

  .rooms-editorial__gallery::after { content: none; }

  .rooms-editorial__slide { position: relative; }

  .rooms-editorial__slide picture {
    position: absolute;
    inset: 0;
  }

  /* Banquet and Top use the same viewport-centred header coordinate. */
  .bqp-hero__namejp {
    /* The banquet head itself starts at 4.85vw / 3.7vh. Compensate for
       that containing block so the final centre is the same viewport
       coordinate as the Top header and its primary action. */
    top: 23.125px;
    left: calc(50vw - 4.85vw);
    right: auto;
    transform: translate(-50%, -50%);
  }
}

/* At the narrow desktop boundary the longest Japanese room name is two lines.
   Reserve that height before the first interaction. */
@media (min-width: 1121px) and (max-width: 1279px) {
  .rooms-spec > div:first-child dd { min-height: 3.1em; }
}

/* The three legal notices are one explicit first row on desktop. */
@media (min-width: 769px) {
  .footer-editorial__nav--cb .footer-nav__group:first-child {
    flex-wrap: nowrap;
  }

  .footer-editorial__nav--cb .footer-nav__group:first-child a {
    white-space: nowrap;
  }
}

/* ============================================================
   C. セクションラベルの h2 昇格（2026-08-26 クライアント承認・SEO目的）
   メタラベルを <p> から <h2> に変えたため、UA既定の font-size:1.5em /
   font-weight:bold と、index.html の h1,h2,h3 ルール（letter-spacing:.08em）が
   効いてしまう。全言語で従来の見た目を保つため親から継承し直す。
   ※ margin/padding は既存の * リセットで 0 済み
   ============================================================ */
.concept__meta-label,
.rooms-editorial__meta-label,
.facility-editorial__meta-label,
.banquet-editorial__meta-label {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* 上の font-size:inherit で、SP の「英字ラベル11px下限」（このファイル上部の
   @media 768 帯）が効かなくなっていた。concept だけは親の .concept__meta が
   clamp(9px,.68vw,11px) のため 390px で 9px まで落ち、隣の連番11pxと段が
   揃わない（rooms/facility/banquet は親が11pxなので inherit のままで11px）。
   ここで 11px に戻す。※ 直後の --jp より前に置くこと。同詳細度のため、
   後ろに置くと日本語ページの15pxを潰してしまう */
@media (max-width: 768px) {
  .concept__meta-label { font-size: 11px; }
}

/* 日本語ラベルのみ：明朝＋英字ラベルより少し大きく、和文向けに字間を詰める。
   当初は既存の「和文は13px下限」帯に合わせて 13px としたが、2026-08-26 の
   ユーザー指示で 15px に引き上げた（下限帯は満たしたまま一段大きくしたもの）。
   --jp は日本語ページの index.html にしか付かないので多言語の見た目は不変 */
.concept__meta-label--jp,
.rooms-editorial__meta-label--jp,
.facility-editorial__meta-label--jp,
.banquet-editorial__meta-label--jp {
  font-family: var(--serif-jp);
  font-size: 19px;   /* 2026-08-26 ユーザー指示で 13px -> 15px -> 17px -> 19px */
  letter-spacing: .12em;
}

/* ============================================================
   フッターCTA 2段構成（2026-08-26 クライアント指示）
   上段: 宿泊予約(緑) ＋ 組合員(ベージュ)  ← 既存のまま
   下段: 確認・キャンセル ＋ お問い合わせ  ← 第3階層のアウトラインボタン
   ============================================================ */
.footer-cb__actions-sub {
  flex: 0 0 100%;          /* 上段の flex 行から必ず改行させる */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 16px;          /* 上段（.footer-cb__actions）と同じガター */
}

.footer-cb__ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4em;               /* 上段ボタンと同じ矢印間隔 */
  min-width: 210px;        /* 上段ボタンと同じ横幅基準 */
  min-height: 48px;        /* 上段58pxより低く、従属を示す */
  padding: 12px 24px;
  box-sizing: border-box;
  border: 1px solid rgba(241, 237, 228, .38);
  background: transparent; /* 透明背景＝第3階層 */
  color: var(--dark-ink, #F1EDE4);
  font-family: var(--serif-jp);
  font-size: var(--fs-small);
  letter-spacing: .1em;    /* 上段ボタンに合わせる */
  text-decoration: none;
  transition: background .4s ease, border-color .4s ease;
}

.footer-cb__ghost:hover {
  background: rgba(241, 237, 228, .10);
  border-color: rgba(241, 237, 228, .72);
}

@media (max-width: 768px) {
  /* 上段ボタンの積み方（width:100%）に倣う */
  .footer-cb__ghost { width: 100%; min-width: 0; }
  .footer-cb__actions-sub { gap: 12px 16px; }
}

/* ============================================================
   フッター駅一覧（2026-08-26 ユーザー指示）
   SP は 1駅1行・「／」を全消し。PC は従来どおり「／」区切りの流し組み。
   行末にスラッシュが残る折返しを構造的に起こさないため、区切りを
   独立した span に出して SP で display:none にする
   ============================================================ */
@media (max-width: 768px) {
  .footer-editorial__stations .ib { display: block; }
  .footer-editorial__sep { display: none; }
}

/* ============================================================
   PC フッターCTA: 2段の列幅を揃える（2026-08-26 ユーザー指示）
   列幅は上段ボタン（宿泊予約／組合員）の自然幅で決まり、
   下段（お問い合わせ／確認・キャンセル）が同じ列に載って左右エッジが揃う。
   SP は既存の縦積み全幅のまま
   ============================================================ */
@media (min-width: 769px) {
  .footer-cb__actions {
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: start;
    align-items: center;
    gap: 14px 16px;
  }
  /* 下段ラッパーを解除して4ボタンを同一グリッドに載せる */
  .footer-cb__actions-sub { display: contents; }
  .footer-cb__actions > a,
  .footer-cb__actions-sub > a { width: 100%; }
  /* 明示配置。自動配置だと組合員導線が無い多言語で
     お問い合わせが1段目に回り込んでしまう */
  .footer-cb__reserve                       { grid-row: 1; grid-column: 1; }
  .footer-cb__actions > a.footer-cb__sub    { grid-row: 1; grid-column: 2; }
  .footer-cb__actions-sub > a:first-child   { grid-row: 2; grid-column: 1; }
  .footer-cb__actions-sub > a:last-child    { grid-row: 2; grid-column: 2; }
}

/* ============================================================
   PC フッターCTA 769〜999px（2026-08-26 納品前レビュー）
   max-content の2×2は日本語ラベルでコンテナ右端を越えて見切れる
   （実測: 769px で +118px、FHD半画面の 960px でも +20px）。
   この帯域だけ SP と同じ縦積み・全幅にフォールバックする。
   1000px 以上は従来の2×2のまま
   ============================================================ */
@media (min-width: 769px) and (max-width: 999px) {
  .footer-cb__actions { grid-template-columns: minmax(0, 1fr); }
  .footer-cb__reserve,
  .footer-cb__actions > a.footer-cb__sub,
  .footer-cb__actions-sub > a:first-child,
  .footer-cb__actions-sub > a:last-child {
    grid-row: auto;
    grid-column: 1;
    min-width: 0;
  }
}

/* ============================================================
   モバイル固定CTAの下端（2026-08-26 ユーザー報告の修正）
   症状: iPhone実機で、宿泊予約の緑がボタンの下へ帯状に伸び、
         ホームインジケータ／URLピル領域まで達する。
   原因: 緑を塗っているのは .reserve-rail__item--main の背景そのもの。
         その箱の下辺が固定バーの下辺＝レイアウトビューポート下端に
         一致しており、ボタンと画面の物理的な下端との間に紙色の帯が
         1pxも存在しない。コンテナ .reserve-rail は背景透明・
         padding-bottom:0 だったため、最下端に出るのは常にボタンの色。
         （2026-08-14 の html,body{background-color:#F1EDE4} は
           キャンバス背景なので、上に乗る固定要素の塗りには勝てない）
   対処: 緑はボタンの矩形に閉じたまま、コンテナ側に紙色の背景と
         safe-area 分の下パディングを持たせる。トップ(B-04)と
         宴会場(B-04b)の両方に効かせ、「宴会場だけ制御できない」を解消。
   注意: env(safe-area-inset-bottom) が実数を返すのは viewport meta に
         viewport-fit=cover がある場合のみ。cover は 100vh ヒーロー系4ファイル
         への影響が実機検証なしでは背負えないため不採用（2026-08-26 司令塔判断）。
         代わりに max() で最低 12px の紙色帯を常に確保する。これで cover 無しでも
         ビューポート下端に接するのは紙色になり、iOS が下端へ引き伸ばす色も紙色に
         なる。safe-area が取れる環境ではそちらが自動的に勝つので、将来 cover を
         入れてもこのまま正しく動く。
   ============================================================ */
@media (max-width: 768px) {
  .reserve-rail {
    background: var(--paper, #F1EDE4);
    padding-bottom: max(env(safe-area-inset-bottom, 0px), 12px);
  }
}

/* ============================================================
   FB-0828 ① 組合員ページのSP追従CTA（B-04u）
   読んでいる途中でも「予約できるページ」だと分かるようにする。
   PCは第1項の予約案内と本文末CTAが常に見えるので右レールは足さない。
   ≤768px の寸法・色・12px紙色帯は宴会場の1段レール（B-04b）と同一
   （上の :not([data-cb="B-04u"]) 除外で2アクション用の指定が効かないため、
     共通の .reserve-rail / .reserve-rail__item だけが当たる）
   ============================================================ */
@media (min-width: 769px) {
  .reserve-rail--union { display: none; }
}
