.booking-v4 {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto 3rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(101, 76, 45, 0.2);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 1rem 2.5rem rgba(45, 36, 24, 0.08);
}
.booking-v4__intro { margin: 0 0 1.25rem; }
.booking-v4__intro h2 { margin-bottom: .35rem; }
.booking-v4__intro p { margin: 0; }
.booking-v4__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.booking-v4 label, .booking-v4__ages label { display: grid; gap: .4rem; min-width: 0; font-weight: 700; }
.booking-v4 input, .booking-v4 select { width: 100%; min-height: 3rem; padding: .65rem .75rem; border: 1px solid #7b6a55; border-radius: .55rem; background: #fff; color: inherit; font: inherit; }
.booking-v4 input[aria-invalid="true"], .booking-v4 select[aria-invalid="true"] { border: 2px solid #9b2318; }
.booking-v4 input:focus-visible, .booking-v4 select:focus-visible, .booking-v4 button:focus-visible { outline: 3px solid #8b5f22; outline-offset: 2px; }
.booking-v4__stepper { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 3rem; gap: .4rem; }
.booking-v4__stepper button { min-height: 3rem; border: 1px solid #7b6a55; border-radius: .55rem; background: #f5efe6; color: inherit; font: 700 1.25rem/1 system-ui, sans-serif; cursor: pointer; }
.booking-v4__ages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.booking-v4__ages[hidden] { display: none; }
.booking-v4__hint { margin: .75rem 0 0; font-size: .9rem; }
.booking-v4__errors { margin: 1rem 0; padding: .85rem 1rem; border-left: .3rem solid #9b2318; background: #fff1ef; color: #64180f; }
.booking-v4__errors[hidden] { display: none; }
.booking-v4__errors ul { margin: .35rem 0 0; padding-left: 1.2rem; }
.booking-v4__submit { margin-top: 1.25rem; }
body:has(.booking-v4) .mobile-booking-cta { display: none; }
@media (max-width: 700px) {
  .booking-v4 { width: min(100% - 1rem, 1120px); padding: 1rem; }
  .booking-v4__grid, .booking-v4__ages { grid-template-columns: 1fr; }
  .booking-v4__stepper { grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem; }
  .booking-v4__stepper button, .booking-v4__submit { min-height: 3.25rem; }
  .booking-v4__submit { width: 100%; }
}
