.booking-form.is-progressive{padding:0;overflow:visible;background:transparent;border:0;box-shadow:none!important}
.booking-flow{display:grid;gap:12px;width:100%}
.booking-flow__step{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 14px 34px rgba(6,42,47,.06);transition:border-color .2s ease,box-shadow .2s ease,opacity .2s ease}
.booking-flow__step.is-open{border-color:rgba(22,196,207,.46);box-shadow:0 18px 44px rgba(6,42,47,.1)}
.booking-flow__step.is-locked{opacity:.55}
.booking-flow__head{display:flex;align-items:center;gap:12px;width:100%;padding:17px 18px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
.booking-flow__head:disabled{cursor:default}
.booking-flow__number{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:rgba(22,196,207,.1);border:1px solid rgba(22,196,207,.25);color:var(--teal-dark);font-size:12px;font-weight:900}
.booking-flow__step.is-complete .booking-flow__number{background:var(--teal);border-color:var(--teal);color:#052a2e}
.booking-flow__copy{display:grid;gap:2px;min-width:0;flex:1}
.booking-flow__copy strong{font-size:14px;font-weight:850;line-height:1.25}
.booking-flow__copy span{color:var(--muted);font-size:11px;line-height:1.35}
.booking-flow__status{flex:0 0 auto;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.booking-flow__step.is-complete .booking-flow__status{color:var(--teal-dark)}
.booking-flow__body{display:none;padding:0 18px 18px}
.booking-flow__step.is-open .booking-flow__body{display:block;animation:bookingStepIn .22s ease both}
.booking-flow__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.booking-flow__fields>.full,.booking-flow__fields>fieldset,.booking-flow__fields>.booking-extras,.booking-flow__fields>.taxi-dog-panel,.booking-flow__fields>.package-schedule,.booking-flow__fields>.pet-price-summary{grid-column:1/-1}
.booking-flow__actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.booking-flow__continue{min-width:150px;min-height:44px;padding:0 18px;border:0;border-radius:12px;background:var(--teal);color:#052a2e;font:800 12px/1 Inter,sans-serif;cursor:pointer;transition:transform .18s ease,opacity .18s ease}
.booking-flow__continue:hover:not(:disabled){transform:translateY(-1px)}
.booking-flow__continue:disabled{opacity:.38;cursor:not-allowed}
.booking-flow__hint{margin-right:auto;color:var(--muted);font-size:10px;line-height:1.4}
.booking-flow__final .booking-submit-actions,.booking-flow__final>.booking-submit,.booking-flow__final>button[type="submit"]{margin-top:16px}
.booking-flow__final .guest-booking-history{margin-top:10px}
.booking-availability-note{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.4}
.booking-availability-note.is-loading{color:var(--teal-dark)}
.booking-availability-note.is-error{color:#d46a6a}
.booking-availability-note.is-ok{color:var(--teal-dark)}
.booking-time-reserved{color:var(--muted)}
@keyframes bookingStepIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
html[data-theme="dark"] .booking-flow__step{background:#0b2227;border-color:#1a3a40;box-shadow:0 14px 34px rgba(0,0,0,.16)}
html[data-theme="dark"] .booking-flow__step.is-open{border-color:rgba(32,208,219,.42)}
html[data-theme="dark"] .booking-flow__head{color:#eff9fa}
html[data-theme="dark"] .booking-flow__number{color:#5ee5ed;background:rgba(32,208,219,.09);border-color:rgba(32,208,219,.22)}
html[data-theme="dark"] .booking-flow__step.is-complete .booking-flow__number{color:#052a2e;background:#20d0db}
@media(max-width:650px){
  .booking-flow{gap:9px}
  .booking-flow__step{border-radius:17px}
  .booking-flow__head{padding:14px 14px;gap:10px}
  .booking-flow__number{width:31px;height:31px;flex-basis:31px;font-size:11px}
  .booking-flow__copy strong{font-size:13px}
  .booking-flow__copy span{font-size:10px}
  .booking-flow__status{font-size:9px}
  .booking-flow__body{padding:0 14px 15px}
  .booking-flow__fields{grid-template-columns:1fr;gap:12px}
  .booking-flow__fields>*{grid-column:1!important}
  .booking-flow__actions{align-items:stretch;flex-direction:column;margin-top:14px}
  .booking-flow__hint{margin:0;text-align:center}
  .booking-flow__continue{width:100%}
}
