/* Layout-only bridge. Booking behavior and business rules live in app.js/server.mjs. */
.booking-runtime { min-width: 0; }
.return-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 54px; align-items: start; }
.return-message { position: sticky; top: 28px; }
.booking-runtime.booking { min-width: 0; padding: 0; background: transparent; container-type: inline-size; }
.booking-runtime .booking-heading h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.05; }
.booking-runtime .eyebrow { display: block; }
.booking-runtime .eyebrow::before { display: none; }
.booking-runtime label { margin-top: 0; }
.booking-runtime input { margin-top: 0; }
.booking-runtime .step-number { margin-bottom: 0; }
.booking-runtime .step-header h3 { font-weight: 700; }
.booking-runtime .confirm-list strong { overflow-wrap: anywhere; min-width: 0; }
.booking-runtime .booking-submit, .booking-runtime .secondary-button { line-height: 1.4; }
@container (max-width: 760px) {
  .booking-runtime .date-grid, .booking-runtime .time-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-runtime .form-grid { grid-template-columns: 1fr; }
  .booking-runtime .step-header { padding: 19px 16px; gap: 11px; }
  .booking-runtime .step-header h3 { font-size: 15px; }
  .booking-runtime .step-panel { padding: 20px 16px 22px; }
  .booking-runtime .step-summary { padding: 15px 16px 18px 57px; }
}
@media (max-width: 900px) {
  .return-grid { grid-template-columns: 1fr; gap: 44px; }
  .return-message { position: static; }
}
@media (max-width: 374px) {
  .section-heading { grid-template-columns: minmax(0, 1fr); }
  .section-heading > div { min-width: 0; }
  .section-heading h2 { font-size: 10vw; }
  .photo-tag { left: 12px; right: 12px; padding-inline: 10px; letter-spacing: .03em; }
}
