.booking-form {
  max-width: 1100px;
  margin: 20px auto;
}

.field-group {
  margin-bottom: 12px;
}

.print-booking-item,
.digital-booking-item {
  background: #fff;
}

.nabf-success {
  padding: 12px;
  border: 1px solid #22c55e;
  background: #ecfdf5;
  color: #166534;
  margin-bottom: 15px;
}

.nabf-error {
  padding: 12px;
  border: 1px solid #ef4444;
  background: #fef2f2;
  color: #991b1b;
  margin-bottom: 15px;
}

/* Make the booking form use the available space */
.booking-form {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Ensure everything measures width properly */
.booking-form,
.booking-form * {
  box-sizing: border-box;
}

/* Give field groups room + stop weird clipping */
.booking-form .field-group {
  width: 100%;
  margin-bottom: 14px;
}

/* Labels stack cleanly above inputs */
.booking-form .field-group label {
  display: block;
  margin-bottom: 6px;
}

/* Inputs fill the row */
.booking-form input[type="text"],
.booking-form input[type="email"],
.booking-form input[type="number"],
.booking-form input[type="file"],
.booking-form select,
.booking-form textarea {
  width: 100%;
  max-width: 100%;
}

/* Multi-selects can look cramped otherwise */
.booking-form select[multiple] {
  min-height: 120px;
}

/* Booking sections should not “squeeze” */
.booking-form .print-section,
.booking-form .digital-section {
  width: 100%;
  max-width: 100%;
  overflow-x: visible;
}

/* Remove button row wrapping / tightness */
.booking-form .print-section > div:first-child,
.booking-form .digital-section > div:first-child {
  flex-wrap: wrap;
  gap: 10px;
}

/* Date/price rows: allow wrap so nothing gets cut off */
.booking-form .date-prices > div {
  flex-wrap: wrap;
}
