/* Keep each connector outside its markers, including the active marker. */
.site-booking .booking-progress{isolation:isolate;animation:none;margin-bottom:28px}
.site-booking .progress-step{min-height:72px;justify-content:flex-start;box-sizing:border-box}
.site-booking .progress-step>span{display:grid;place-items:center;flex:0 0 var(--marker-size);line-height:1;box-sizing:border-box}
.site-booking .progress-step>strong{display:block;max-width:none;overflow:visible;white-space:nowrap;font-size:12px;line-height:1.4;font-weight:650;letter-spacing:0;text-align:center}
.site-booking .progress-step:focus-visible{outline:2px solid var(--site-accent);outline-offset:4px;border-radius:10px}
.site-booking .progress-step.is-done>span{border-color:var(--site-accent);color:var(--site-accent)}
.site-booking .booking-step-panel{scroll-margin-top:85px}
@media(max-width:720px){
 .site-booking .hero-inner{padding:32px 0 24px!important}
 .site-booking .hero h1{font-size:clamp(28px,7.5vw,40px);line-height:1.15;letter-spacing:-.03em;overflow-wrap:break-word}
 .site-booking .hero p{font-size:14px;line-height:1.6;margin-top:12px}
 .site-booking .booking-wrap{margin-top:0!important;width:calc(100% - 24px)!important;max-width:100%;padding-bottom:28px}
 .site-booking .booking-progress{margin:0 0 18px!important}
 .site-booking .progress-step{--marker-size:34px;min-height:64px;gap:8px;padding:0!important}
 .site-booking .progress-step>strong{font-size:10px;line-height:1.4}
 .site-booking .progress-step span::before{font-size:13px}
 .site-booking .section-block{padding:18px 14px!important;min-width:0;animation:none}
 .site-booking .section-head h3{font-size:20px;line-height:1.35}
 .site-booking .grid-2,.site-booking .services-grid{grid-template-columns:minmax(0,1fr)}
 .site-booking .field,.site-booking .service-main,.site-booking .service-box,.site-booking .booking-queue-item{min-width:0}
 .site-booking input,.site-booking select,.site-booking textarea{max-width:100%;box-sizing:border-box;font-size:16px}
 .site-booking .input,.site-booking select{min-height:48px}
 .site-booking .booking-actions{grid-template-columns:minmax(80px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:10px}
 .site-booking .booking-actions .btn{min-height:48px;height:auto;white-space:normal;line-height:1.35;padding:12px 10px;overflow-wrap:break-word}
 .site-booking [data-step-panel="5"] .booking-actions{grid-template-columns:minmax(0,1fr)}
 .site-booking .service-tabs{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
 .site-booking .service-name,.site-booking .booking-vehicle-context,.site-booking .booking-selected-count,.site-booking .booking-queue-item{overflow-wrap:anywhere}
 .site-booking .booking-date-picker__pop{width:100%;max-width:100%;left:0;right:auto;box-sizing:border-box}
 .site-booking .booking-date-picker__head button{min-height:44px;min-width:44px}
 .site-booking .slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .site-booking .slot{min-height:44px;padding:10px 4px;min-width:0;font-size:14px}
 .mobile-cart-bar{bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100% - 24px);box-sizing:border-box}
 body.has-mobile-cart-bar .site-booking{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
 .site-booking .nav-inner{min-width:0;gap:12px}.site-booking .brand{min-width:0}.site-booking .brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45vw}
}

/* A marker has one centered icon; zero-size step text must not create a second grid row. */
.site-booking .progress-step>span{display:flex!important;align-items:center;justify-content:center;font-size:0;line-height:0}
.site-booking .progress-step>span::before{display:block;line-height:1}
.site-booking{padding-top:72px!important}
