.booking-page {
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(54px, 8vw, 96px) 24px 72px;
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(460px, 1.12fr);
  gap: clamp(34px, 6vw, 72px);
  align-items: start;
}

.booking-page > * { min-width: 0; }
.booking-intro { position: relative; }

.booking-intro h1 {
  max-width: 100%;
  margin: 0;
  font: 600 clamp(50px, 7vw, 76px)/1.04 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}

.booking-intro > p:not(.eyebrow) {
  margin: 26px 0 0;
  color: var(--muted);
  font-size: 21px;
  line-height: 1.65;
}

.booking-status {
  margin-top: 32px;
  padding: 22px 24px;
  border: 1px solid #9ed7ce;
  border-radius: 22px;
  background: linear-gradient(135deg, #dff7f1 0%, #f4fbf9 58%, #fff 100%);
  box-shadow: 0 14px 38px rgba(5, 96, 89, .08);
}

.booking-status strong,
.booking-status span { display: block; }
.booking-status span { margin-top: 4px; color: var(--muted); font-size: 15px; }

.booking-card {
  padding: clamp(26px, 4vw, 42px);
  border: 1px solid var(--line);
  border-radius: 32px;
  background: linear-gradient(155deg, #fff 0%, #fff 58%, #f1faf7 100%);
  box-shadow: 0 24px 65px rgba(4, 61, 57, .1);
}

.booking-card__heading { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 30px; }
.booking-card__heading > span {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  height: 48px;
  border-radius: 16px;
  background: linear-gradient(135deg, #2bc9b3, #00635f);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(0, 99, 95, .2);
}

.booking-card__heading .eyebrow { margin-bottom: 5px; }
.booking-card h2 { margin: 0; font: 600 clamp(31px, 4vw, 42px)/1.08 "Cormorant Garamond", Georgia, serif; }
.field { display: block; margin-top: 24px; }
.field > span,
.time-choice legend { display: block; margin-bottom: 9px; color: var(--ink); font-size: 15px; font-weight: 700; }

.field select,
.field input {
  width: 100%;
  min-height: 58px;
  padding: 0 16px;
  border: 1px solid #b9ceca;
  border-radius: 15px;
  background: #fff;
  color: var(--ink);
  font: 500 17px/1.2 Inter, Arial, sans-serif;
}

.field select:focus,
.field input:focus { outline: 3px solid rgba(11, 141, 131, .18); border-color: var(--teal); }
.field small { display: block; margin-top: 7px; color: var(--muted); font-size: 13px; }
.time-choice { margin: 26px 0 0; padding: 0; border: 0; }
.time-choice label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  padding: 16px;
  border: 1px solid #c9d9d6;
  border-radius: 16px;
  background: #fff;
  cursor: pointer;
}

.time-choice label:has(input:checked) {
  border-color: var(--teal);
  background: linear-gradient(135deg, #e5f8f3, #f8fdfb);
  box-shadow: 0 0 0 2px rgba(11, 141, 131, .12);
}

.time-choice label.is-disabled { opacity: .52; cursor: not-allowed; background: #f5f7f6; }
.time-choice input { width: 20px; height: 20px; accent-color: var(--teal); }
.time-choice strong,
.time-choice small { display: block; }
.time-choice small { margin-top: 2px; color: var(--muted); font-size: 13px; }
.form-error { margin: 20px 0 0; padding: 13px 15px; border-radius: 12px; background: #fff0ec; color: #8b2d16; font-weight: 600; font-size: 14px; }

.booking-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 62px;
  margin-top: 28px;
  padding: 0 22px;
  border: 0;
  border-radius: 17px;
  background: linear-gradient(110deg, #25bca8 0%, #098a81 48%, #015b59 100%);
  color: #fff;
  font: 700 17px/1 Inter, Arial, sans-serif;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(1, 91, 89, .2);
}

.booking-submit:hover { filter: brightness(.96); }
.booking-submit:focus-visible { outline: 3px solid #e0b55d; outline-offset: 3px; }
.booking-submit span { font-size: 25px; }
.privacy-note { margin: 14px 4px 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

.booking-help,
.urgent-notice {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  padding: 30px 34px;
  border-radius: 26px;
}

.booking-help {
  margin-top: 2px;
  background: linear-gradient(115deg, #21bca8 0%, #09877f 48%, #015b59 100%);
  color: #fff;
  box-shadow: 0 18px 44px rgba(1, 91, 89, .16);
}

.booking-help .eyebrow { color: #f2d19b; }
.booking-help h2 { margin: 0; font: 600 34px/1.08 "Cormorant Garamond", Georgia, serif; }
.booking-help p:not(.eyebrow) { max-width: 680px; margin: 10px 0 0; color: #d8efeb; }
.booking-help .button.secondary { border-color: rgba(255, 255, 255, .78); background: #fff; color: var(--teal-dark); }

.urgent-notice {
  align-items: flex-start;
  border-left: 5px solid #b85636;
  background: linear-gradient(120deg, #fff0eb, #fff8f5);
}

.urgent-notice strong,
.urgent-notice span { display: block; }
.urgent-notice span { margin-top: 3px; color: #70493d; }

@media (max-width: 820px) {
  .booking-page { grid-template-columns: 1fr; padding: 46px 20px 58px; }
  .booking-intro h1 { font-size: 52px; }
  .booking-intro > p:not(.eyebrow) { font-size: 18px; }
  .booking-card { padding: 25px 20px; border-radius: 24px; }
  .booking-help,
  .urgent-notice { display: block; padding: 25px 22px; }
  .booking-help .button { width: 100%; margin-top: 20px; }
  .urgent-notice span { margin-top: 6px; }
}

@media (max-width: 420px) {
  .booking-intro h1 { font-size: 46px; }
  .booking-card__heading > span { display: none; }
  .booking-submit { font-size: 16px; }
}
