/* Booking page specific styles - keep minimal and build on base.css */
.hero-visual { border-radius: var(--radius-xl); overflow: hidden; }

.step { position: relative; }
.step__num { position: absolute; top: -16px; left: -16px; }
.step__title { margin-top: var(--space-7); }

.booking-summary dl { margin: 0; }
.summary-row { display: flex; justify-content: space-between; gap: var(--space-7); }
.summary-row dt { color: var(--gray-600); }
.summary-row.total dt, .summary-row.total dd { font-weight: var(--weight-bold); font-size: var(--text-lg); }

.price-tag { background: var(--gray-100); border: 1px solid var(--gray-200); padding: 6px 10px; border-radius: var(--radius-pill); font-size: var(--text-sm); }

#form-message { margin-bottom: var(--space-7); }
#form-message.alert--success { background: rgba(22,163,74,0.08); border-color: rgba(22,163,74,0.25); }
#form-message.alert--danger { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.25); }
.mt-7 {
  display: flex;
  gap: var(--space-8);
  flex-direction: column;
}
/* Form helpers */
.input[aria-invalid='true'], .select[aria-invalid='true'] { border-color: var(--color-danger); }

/* Responsive tweaks */
@media (max-width: 767px) {
  .step__num { position: static; margin-bottom: var(--space-5); }
}
