.booking-fieldset { border: 0; min-width: 0; margin: 0; padding: 0; }
.booking-fieldset + .booking-fieldset { margin-top: 1.4rem; }
.booking-step-title { flex-wrap: wrap; padding: 0; }
.booking-step-title > span { opacity: .65; margin-right: .55rem; }
.booking-note { display: flex; gap: .9rem; padding-bottom: 1.5rem; margin-bottom: 2rem; border-bottom: 1px solid var(--border-gold); font-size: .82rem; line-height: 1.75; color: var(--text-muted); }
.booking-note i { color: var(--accent-gold); margin-top: .35rem; }
.booking-tab-btn { width: 100%; font: inherit; color: inherit; }
.booking-tab-icon, .booking-tab-title, .booking-tab-description { display: block; }
.booking-tab-title { font-family: var(--font-heading, Georgia, serif); font-size: 1.4rem; margin-bottom: .5rem; }
.booking-tab-description { color: var(--text-muted); font-size: .82rem; line-height: 1.8; }
.booking-tab-tag { margin-top: 1rem; }
.booking-field-hint { color: var(--text-muted); font-size: .78rem; line-height: 1.8; margin: 0 0 1.2rem; }
.calendar-controls { display: flex; gap: .5rem; }
.calendar-nav-btn { font: inherit; font-size: 1.2rem; }
.calendar-nav-btn:disabled { opacity: .28; cursor: default; }
.cal-day { background: transparent; font: inherit; min-width: 0; padding: 0; }
.cal-day:disabled { opacity: .42; color: var(--text-muted); cursor: not-allowed; }
.cal-day[aria-current="date"]:not(.active) { border-color: var(--border-gold); }
.time-slots-box h3 { color: var(--text-main); font-size: 1.12rem; }
.slots-grid > p { grid-column: 1 / -1; }
.slot-btn:disabled { opacity: .35; cursor: not-allowed; }
.booking-summary-banner { margin-top: .5rem; }
.booking-error { color: #ffcbc0; padding: .9rem 1rem; border: 1px solid #ab695d; background: #34201c; margin: 1rem 0; line-height: 1.7; }
.booking-submit-wrap { margin: 1.8rem auto 0; text-align: center; }
.booking-submit-wrap .booking-field-hint { margin: .9rem auto 0; }
.booking-submit-wrap .btn:disabled { opacity: .5; cursor: not-allowed; }
.booking-preview { margin-top: 2.5rem; padding: 2rem; border: 1px solid var(--accent-gold); background: rgba(197,168,128,.06); scroll-margin-top: 7rem; }
.booking-preview[hidden], .booking-error[hidden] { display: none !important; }
.booking-preview h3 { font-size: clamp(1.7rem, 3vw, 2.35rem); margin: .5rem 0 1rem; }
.booking-preview > p { font-size: .85rem; line-height: 1.85; color: var(--text-muted); }
.booking-recipient { margin: 1rem 0; overflow-wrap: anywhere; }
.booking-recipient a { color: var(--accent-gold); text-decoration: underline; text-underline-offset: .2em; }
.booking-preview textarea { display: block; width: 100%; min-height: 290px; line-height: 1.75; resize: vertical; }
.booking-preview-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.25rem 0; }
.booking-preview-actions .btn { font-size: .74rem; }
.booking-section :is(button, input, select, textarea, a):focus-visible { outline: 2px solid var(--accent-gold); outline-offset: 4px; }
@media (max-width: 600px) {
  .booking-card { padding: 1.2rem; }
  .booking-category-tabs { gap: .75rem; margin-bottom: 1.5rem; }
  .booking-tab-btn { padding: 1.2rem; }
  .booking-grid { grid-template-columns: minmax(0,1fr); }
  .calendar-box, .time-slots-box { padding: 1.1rem; }
  .booking-preview { padding: 1.2rem; }
  .booking-preview-actions { flex-direction: column; }
  .booking-submit-wrap .btn { width: 100%; padding-inline: 1rem; font-size: .72rem; }
}
