/* ══════════════════════════════════════════════
   予約表ページ専用スタイル
   ・common.css を読み込んだ「後」に読むこと
   ・すべての指定が .reservation-page の中だけに効く
   ══════════════════════════════════════════════ */

/* ── カレンダーの枠 ──────────────────────────
   位置と大きさは reservation.js が計算して入れる。
   ここでは「はみ出した部分を隠す」ことだけを決めている。 */
.reservation-page .rv-frame{
  position:relative;
  border:1px solid var(--line);
  background:var(--ink);            /* カレンダー側も暗いので、周りと揃える */
  overflow:hidden;
  min-height:420px;                 /* JSが効くまでの仮の高さ */
}
.reservation-page .rv-frame iframe{
  display:block;border:0;
  position:absolute;top:0;left:0;
  width:1400px;height:2900px;       /* JSが実際の値に置き換える */
}
/* 画面が狭く、縮めきれないとき。枠の中を横になぞって見てもらう */
.reservation-page .rv-frame.is-narrow{
  overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.reservation-page .rv-frame.is-narrow::after{
  content:"";display:block;height:1px;
  width:var(--rv-inner, 100%);      /* 中身の幅ぶんだけ横にのびる */
}
.reservation-page .rv-hint{
  margin:.7rem 0 0;font-size:.84rem;color:var(--moss);
  font-family:"Roboto Mono",monospace;letter-spacing:.06em;
  display:none;
}
.reservation-page .rv-frame.is-narrow ~ .rv-hint{display:block}
.reservation-page .rv-note{
  margin:.9rem 0 0;font-size:.88rem;color:#B2B0A5;line-height:1.8;
}
.reservation-page .rv-note a{color:var(--mud-lt);font-weight:700}

/* ── 予約の流れ ─────────────────────────── */
.reservation-page .rv-steps{
  list-style:none;padding:0;margin:1.6rem 0 0;
  display:grid;gap:0;
}
.reservation-page .rv-steps li{
  display:grid;grid-template-columns:auto 1fr;gap:.2rem 1.1rem;
  padding:1.1rem 0;border-bottom:1px solid var(--line);
}
.reservation-page .rv-steps li:last-child{border-bottom:0}
.reservation-page .rv-steps .n{
  font-family:"Roboto Mono",monospace;font-size:.72rem;
  letter-spacing:.14em;color:var(--mud-lt);padding-top:.25em;
}
.reservation-page .rv-steps b{
  display:block;font-weight:700;
  font-size:clamp(1rem,1.9vw,1.12rem);margin-bottom:.35rem;
}
.reservation-page .rv-steps p{margin:0;font-size:.94rem;color:#C4C1B6;max-width:36em}

/* ── 狭い画面 ──────────────────────────── */
@media (max-width:560px){
  .reservation-page .rv-frame{min-height:78vh}
  .reservation-page .rv-steps li{grid-template-columns:1fr;gap:.35rem}
}

/* ── 予約表の見方（凡例） ──────────────────────
   画面が広いときはカレンダーの左に貼り付き、
   狭いときはカレンダーの上で折りたためるようにする。 */
.reservation-page .rv-split{display:grid;gap:clamp(14px,2vw,24px)}
@media(min-width:1100px){
  .reservation-page .rv-split{grid-template-columns:clamp(230px,20vw,290px) 1fr;align-items:start}
}

.reservation-page .lg{
  border:1px solid var(--line);background:var(--panel-bg);
}
@media(min-width:1100px){
  .reservation-page .lg{position:sticky;top:calc(var(--hdr-total) + 16px)}
}

/* 開け閉めのボタン（狭い画面のときだけ使う） */
.reservation-page .lg-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:.8em;
  width:100%;padding:.95rem 1.1rem;border:0;cursor:pointer;
  background:transparent;color:var(--sand);
  font-family:inherit;font-weight:700;font-size:.98rem;
  border-bottom:1px solid var(--line);
}
.reservation-page .lg-caret{color:var(--mud-lt);transition:transform .18s ease}
.reservation-page .lg.is-open .lg-caret{transform:rotate(180deg)}
@media(min-width:1100px){
  .reservation-page .lg-toggle{cursor:default;pointer-events:none}
  .reservation-page .lg-caret{display:none}
}

.reservation-page .lg-body{padding:1rem 1.1rem 1.2rem}
@media(max-width:1099px){
  .reservation-page .lg-body{display:none}
  .reservation-page .lg.is-open .lg-body{display:block}
}

.reservation-page .lg-head{
  margin:0 0 .6rem;font-family:"Roboto Mono",monospace;
  font-size:.6rem;letter-spacing:.2em;color:var(--mud-lt);text-transform:uppercase;
}
.reservation-page .lg-head + .lg-list + .lg-head{margin-top:1.4rem}

.reservation-page .lg-list{list-style:none;padding:0;margin:0}
.reservation-page .lg-list li{
  display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;align-items:baseline;
  padding:.42rem 0;border-bottom:1px solid var(--line);
  font-size:.88rem;color:#C4C1B6;line-height:1.6;
}
.reservation-page .lg-list li:last-child{border-bottom:0}
.reservation-page .lg-list .k{
  font-family:"Roboto Mono",monospace;font-size:.8rem;
  color:var(--sand);white-space:nowrap;
}
.reservation-page .lg-list .k b{color:var(--mud-lt)}

.reservation-page .lg-note{
  margin:1.2rem 0 0;padding-top:1rem;border-top:1px solid var(--line);
  font-size:.84rem;line-height:1.8;color:#9FB39A;
}
.reservation-page .lg-cta{
  display:block;margin-top:.9rem;padding:.72em 1em;border-radius:3px;
  background:var(--mud);color:#1A0E04;text-align:center;
  text-decoration:none;font-weight:700;font-size:.9rem;
  transition:background .18s ease;
}
.reservation-page .lg-cta:hover{background:#FF8B45}
