.booking-main { width:min(1160px,calc(100% - 48px));margin:auto;padding:28px 0 50px; }
.booking-status { color:var(--muted);font-size:13px;margin:0 0 30px; }
.booking-heading { display:grid;grid-template-columns:1fr .7fr;gap:40px;align-items:center;margin-bottom:44px; }
.booking-heading p { color:var(--muted);line-height:1.8;max-width:48ch; }
.booking-art { width:100%;height:160px;object-fit:contain;background:#000; }
.booking-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px 56px; }
.booking-main h2 { font-size:23px;font-weight:500;margin:0 0 20px; }
.booking-main button { font:inherit;cursor:pointer; }
.booking-main button:disabled { cursor:not-allowed; }
.room-choices { display:grid;gap:12px; }
.room-choices button { display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:65px;padding:16px;background:none;border:1px solid var(--line);color:var(--ink);border-radius:4px; }
.room-choices button span { font-size:14px;color:var(--muted); }
.room-choices button[aria-pressed=true] { border:2px solid var(--magenta);padding:15px;background:var(--panel); }
.room-choices button:hover { background:var(--panel); }
.vip-note { margin-top:22px;color:var(--muted);line-height:1.8;font-size:14px; }
.vip-note summary { color:var(--ink);cursor:pointer;min-height:44px;padding:10px 0; }
.booking-hours { border-top:1px solid var(--line);padding-top:22px;line-height:1.8;font-size:15px; }
.muted { color:var(--muted);font-size:14px;line-height:1.8; }
.calendar-section { grid-column:2;grid-row:1 / span 2;min-width:0; }
.calendar { background:var(--panel);padding:20px;border-radius:4px;margin-top:22px; }
.calendar-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px; }
.calendar-heading h3 { margin:0;font-size:18px;font-weight:500; }
.calendar-heading button { min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:4px;background:none;color:var(--ink); }
.calendar-heading button:disabled { opacity:.4; }
.calendar-week,.calendar-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px; }
.calendar-week span { text-align:center;font-size:12px;color:var(--muted);padding:8px 0; }
.calendar-days button { min-width:0;width:100%;min-height:44px;border:1px solid transparent;color:var(--ink);background:none;border-radius:4px;padding:6px 0;font-variant-numeric:tabular-nums; }
.calendar-days button:disabled { color:#8290a6; }
.calendar-days button:not(:disabled):hover { border-color:var(--cyan); }
.calendar-days button[aria-pressed=true] { background:var(--magenta);color:var(--bg);font-weight:700; }
.calendar-days button[aria-current=date] { border-color:var(--cyan); }
.quote-section { border-top:1px solid var(--line);padding-top:28px;min-width:0; }
.quote-amounts { margin:20px 0; }
.quote-amounts div { display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:18px 0; }
.quote-amounts dt { color:var(--muted);font-size:14px;line-height:1.6; }
.quote-amounts dd { margin:0;white-space:nowrap;font-size:21px;font-variant-numeric:tabular-nums; }
.quote-amounts div:first-child dd { font-size:30px;color:var(--cyan); }
#selection-label { font-size:15px;line-height:1.8; }
.quote-source { color:var(--muted);font-size:13px;line-height:1.7; }
#payment-button { width:100%;min-height:50px;background:#263348;border:1px solid var(--line);border-radius:4px;color:#c5cfdd;padding:12px; }
.booking-notes { border-top:1px solid var(--line);margin-top:40px;padding-top:30px; }
.booking-notes p { color:var(--muted);font-size:15px;line-height:1.9;max-width:80ch; }
.booking-notes a { display:inline-block;padding:10px 0;color:var(--cyan); }
@media(max-width:760px) {
  .booking-main { width:calc(100% - 32px);padding-top:24px; }
  .booking-heading { grid-template-columns:1fr;gap:16px;margin-bottom:30px; }
  .booking-art { height:110px; }
  .booking-layout { grid-template-columns:1fr;gap:28px; }
  .calendar-section { grid-row:2;grid-column:1; }
  .quote-section { grid-row:3; }
  .calendar { padding:12px; }
  .booking-heading h1 { font-size:36px; }
  .quote-amounts dd { font-size:19px; }
  .quote-amounts dt { max-width:55%; }
}
