.booking-flow .booking-step { min-width:0; margin:0; padding:.8rem 1rem 1rem; border:1px solid #777b83; border-radius:.7rem; }
.booking-step legend { padding:0 .5rem; font-weight:800; }
.booking-step legend span { display:inline-block; margin-right:.3rem; padding:.05rem .4rem; border-radius:.25rem; background:#fbc904; color:#17191d; }
.booking-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.booking-flow .booking-fields .full { grid-column:1/-1; }
.booking-flow [hidden] { display:none!important; }
.booking-flow :is(input,select,textarea):focus-visible { outline:2px solid #fbc904; outline-offset:2px; }
.booking-flow select:disabled { opacity:.7; }
.appointment-page .booking-layout { display:block; max-width:880px; }
.appointment-page .booking-box { padding:clamp(1rem,4vw,2.5rem); }
@media (max-width:560px) { .booking-fields { grid-template-columns:1fr; } .booking-flow .booking-step { padding:.65rem; } }
