/* ── BOOKING SECTION (inline, last block of page) ── */
.booking-section {
  max-width: 64rem;
  margin: clamp(-16rem, -24vh, -8rem) auto 0;
  padding: clamp(32px, 6vh, 72px) 24px 120px;
  position: relative;
  z-index: 1;
}

.booking-title {
  font-size: max(
    1.5rem,
    clamp(
      calc(3rem * var(--booking-headline-scale, 0.3)),
      calc(8vw * var(--booking-headline-scale, 0.3)),
      calc(5rem * var(--booking-headline-scale, 0.3))
    )
  );
  line-height: 0.9;
  font-weight: 400;
  letter-spacing: 0;
  margin-bottom: clamp(24px, 5vw, 56px);
  will-change: font-size;
}

.booking-form {
  max-width: 32rem;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.booking-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.booking-field label {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #a8a29e;
}

.booking-field input {
  border: 1px solid #e7e5e4;
  padding: 10px 12px;
  font-size: 1rem;
  font-family: inherit;
  background: #fff;
  color: #1c1917;
  outline: none;
  transition: border-color 0.2s;
}

.booking-field input:focus {
  border-color: #78716c;
}

.booking-field.has-error input {
  border-color: #dc2626;
}

.booking-field input::placeholder {
  color: #a8a29e;
}

/* ── SUBMIT ── */
.booking-submit {
  background: #1c1917;
  color: #fff;
  border: none;
  padding: 12px 24px;
  font-size: 1rem;
  font-family: inherit;
  cursor: pointer;
  margin-top: 8px;
  transition: opacity 0.2s;
}

.booking-submit:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.booking-message {
  padding: 12px 0;
  font-size: 0.875rem;
}

.booking-message.success {
  color: #44403c;
}

.booking-message.error {
  color: #dc2626;
}
