.booking-main { padding-top: var(--header-height); }
.booking-intro { padding-bottom: 2.5rem; border-bottom: 1px solid var(--line); }
.booking-intro-grid { display: grid; gap: 1.5rem; align-items: end; }
.booking-intro h1 { max-width: 12ch; margin: .45rem 0 0; font-size: clamp(2.7rem, 8vw, 5.8rem); line-height: .95; }
.booking-intro-grid > p { max-width: 42rem; color: var(--muted); font-size: 1.05rem; }
.booking-layout { display: grid; gap: 2rem; }
.booking-layout > * { min-width: 0; }
.booking-aside { align-self: start; }
.booking-aside ol { margin: 1.4rem 0; padding-left: 1.25rem; color: var(--ivory); }
.booking-aside li { padding: .55rem 0 .55rem .5rem; border-bottom: 1px solid var(--line); }
.booking-privacy, .configuration-notice { padding: 1rem; border-left: 2px solid var(--gold); background: var(--charcoal); color: var(--muted); }
.booking-form-shell { max-width: none; }
.booking-fields { display: grid; gap: 1.15rem; }
.field-wide { grid-column: 1 / -1; }
.field label, .choice-field legend { display: block; margin-bottom: .5rem; color: var(--ivory); font-weight: 700; }
.field input:not([type="radio"]):not([type="checkbox"]), .field select, .field textarea { width: 100%; min-height: 3rem; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: 0; background: #11110f; color: var(--ivory); font: inherit; }
.field textarea { min-height: 8rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--gold); outline-offset: 2px; }
.field [aria-invalid="true"] { border-color: #c86e66 !important; }
.field-hint, .optional, .artist-query-note { color: var(--muted); font-size: .82rem; }
.choice-field { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; border: 0; padding: 0; }
.choice-field legend { width: 100%; }
.choice-field label, .checkbox-field label { display: flex; gap: .65rem; align-items: flex-start; font-weight: 400; }
.choice-field input, .checkbox-field input { width: 1.2rem; height: 1.2rem; accent-color: var(--gold); }
.upload-field input { padding: .65rem !important; }
.file-list { margin: .75rem 0 0; padding: 0; list-style: none; color: var(--muted); font-size: .82rem; }
.file-list li { padding: .25rem 0; }
.booking-submit { width: 100%; margin-top: 1.25rem; }
.booking-submit[disabled] { opacity: .55; cursor: wait; }
#turnstile-container { margin-top: 1.25rem; min-height: 0; }
@media (min-width: 760px) { .booking-intro-grid { grid-template-columns: 1.2fr .8fr; } .booking-layout { grid-template-columns: minmax(14rem, .55fr) minmax(0, 1.45fr); } .booking-aside { position: sticky; top: calc(var(--header-height) + 2rem); } .booking-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .booking-intro h1 { font-size: 2.55rem; } }
