main{margin-top:var(--space-5)}
.motion-exit{pointer-events:none!important;z-index:5;overflow:hidden}
.motion-exit *{animation:none!important;transition:none!important}
#service-summary{display:flex;align-items:center;justify-content:space-between;gap:16px}
#service-summary .text-button{margin:0}
#restart-intro{margin-bottom:0;padding:8px 0}
#chosen-goal{margin:8px 0}
#booking-surface .service{padding:12px 0}
#service-summary:not([hidden])~section .service h2{display:none}
.weekend-row:has([data-weekend]){display:grid;grid-template-columns:1fr auto}
.weekend-row>.slide-choice{grid-column:1 / -1;width:100%}
#booking{background:transparent;padding:0;border:0;width:100%;max-height:none}
#booking .dialog-top button{width:auto;font-size:var(--text-small);margin:0}
#booking h2{font-size:var(--text-section)}
#booking .pair{grid-template-columns:1fr 1fr}
.calendar-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;text-align:center}
.calendar-toolbar button{border:0;background:transparent}
.calendar-toolbar strong{font-size:var(--text-small);font-weight:600}
.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:12px}
.week-days button{display:grid;justify-items:center;gap:4px;min-width:0;padding:8px 0;border-color:transparent;background:transparent}
.week-days button span{font-size:var(--text-small);font-weight:400}
.week-days button strong{font-size:var(--text-body)}
.week-days button[aria-pressed=true]{background:var(--signal);color:var(--ink)}
.week-days button:disabled{color:var(--muted);opacity:.65}
.calendar-options{display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-options .text-button{margin:0;white-space:nowrap}
#court .section-title{margin-top:16px}
@media(min-width:600px){#booking .preparation{grid-template-columns:1fr 2fr}#booking .preparation>label:last-child{grid-column:1 / -1}}
.text-button{border:0;background:transparent;padding:12px 0;font-size:var(--text-small);margin-bottom:24px}
#skip-intro{display:block;margin-left:auto;margin-bottom:24px;padding:14px 20px;min-height:52px}
#journey-title{font-size:var(--text-title);letter-spacing:-.03em;margin-bottom:var(--space-2)}
.trainer-identity{display:grid;gap:4px}.trainer-identity>span{font-size:var(--text-small);letter-spacing:normal}
#journey-options{display:grid;gap:var(--space-1);margin:var(--space-4) 0}
.slide-choice{--slide:0%;position:relative;isolation:isolate;overflow:hidden;display:flex;justify-content:space-between;align-items:center;text-align:left;min-height:76px;font-size:var(--text-body);padding:16px 24px 16px 76px;background:transparent;touch-action:pan-y;user-select:none;border:1px solid transparent}
.slide-choice:before{content:'';position:absolute;inset:0;right:auto;width:var(--slide);background:var(--progress);z-index:-1}
.goal-caption{width:100%;pointer-events:none}
.goal-handle{position:absolute;left:10px;top:12px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-size:24px;transform:translateX(var(--travel,0px)) scale(var(--grip,1));cursor:grab;box-shadow:none}
.slide-choice[data-dragging=true] .goal-handle{cursor:grabbing;background:var(--signal);color:var(--ink);box-shadow:0 0 0 5px var(--progress)}
.slide-choice[data-state=settling]{background:var(--progress)}
.slide-choice[data-state=settling] .goal-handle{background:var(--signal);color:var(--ink);box-shadow:0 0 0 5px var(--progress)}
.slide-cue{position:absolute;left:64px;right:20px;bottom:9px;height:3px;pointer-events:none;overflow:hidden}
.slide-cue::after{content:'';display:block;width:24%;height:100%;border-radius:3px;background:linear-gradient(90deg,transparent,var(--signal));opacity:0}
.slide-choice[data-hinted=true] .slide-cue{display:none}
@media(prefers-reduced-motion:no-preference){
 .slide-cue::after{animation:slide-light 1.1s .25s ease-in-out 2}
 @keyframes slide-light{0%{opacity:0;transform:translateX(0)}15%,75%{opacity:.8}100%{opacity:0;transform:translateX(317%)}}
}
@media(prefers-reduced-motion:reduce){
 .slide-cue{height:6px}
 .slide-cue::after{width:100%;opacity:.65;clip-path:polygon(0 35%,94% 35%,94% 0,100% 50%,94% 100%,94% 65%,0 65%)}
}
@media(prefers-reduced-motion:no-preference){
 .slide-choice:not([data-dragging=true]) .goal-handle{transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .16s ease,background-color .16s ease}
 .slide-choice:not([data-dragging=true]):before{transition:width .32s cubic-bezier(.22,1,.36,1)}
}
.slide-choice:is(:hover,:focus-visible){background:var(--warm)}
.bundle-preview{font-size:14px;line-height:1.7}
.bundle-preview h2{margin-top:20px}
#bundle-offer{margin:auto;border-radius:16px;max-width:480px}
#bundle-offer>.primary{width:100%;margin-top:16px}
#bundle-offer .offer-close{position:absolute;right:12px;top:8px;width:48px;height:48px;border:0;background:transparent;font-size:26px;padding:0}
.bundle-preview>.eyebrow:first-child{padding-right:36px}
.bundle-preview h2{line-height:1.15}
nav button[aria-pressed=true]{color:var(--accent)}
@media(max-width:600px){main{margin-top:24px}}
@media(prefers-reduced-motion:no-preference){
 nav button,.session button,.slide-choice{transition:transform .15s ease,background-color .15s ease}
 
}
nav[aria-label="Training type"]{display:grid;grid-template-columns:1fr 1fr;background:transparent;padding:0;gap:12px}
nav .slide-choice{font-size:var(--text-body);padding-right:20px;text-align:left;min-width:0}
nav .slide-choice[aria-pressed=true]{background:var(--progress);box-shadow:none}
.progress{display:flex;gap:20px;list-style:none;padding:0;margin:0 0 20px;font-size:var(--text-small);color:var(--muted)}
.progress [aria-current=step]{color:var(--ink);font-weight:700}
.required-mark{font-size:var(--text-small);font-weight:400;color:var(--muted)}
.field-error,#travel-error{color:var(--error);font-size:var(--text-small);line-height:1.5;margin:0}
[aria-invalid=true]{border-color:var(--error)}
#weekend-day{font-size:var(--text-body);margin:0}
@media(max-width:600px){nav[aria-label="Training type"]{grid-template-columns:1fr}.price{white-space:normal;min-width:125px}.price small{line-height:1.5}#details>button,.review-actions{position:sticky;bottom:0;z-index:2;box-shadow:0 0 0 12px var(--surface)}.review-actions{background:var(--surface);padding:8px 0}}
@media(prefers-reduced-motion:no-preference){
 button:active:not(:disabled):not(.slide-choice){transform:scale(.98)}
 .slide-choice[data-dragging=true]{transform:none}
 .sessions-cta{transition:transform .15s ease,box-shadow .2s ease}
 .sessions-cta:is(:hover,:focus-visible){transform:translateY(-1px)}

}
.session>.slide-choice{width:240px;font-size:var(--text-body);padding:16px 60px 16px 68px}

@media(max-width:600px){.session>.slide-choice{grid-column:1 / -1;width:100%;padding:16px 24px 16px 76px;font-size:var(--text-body)}.session{grid-template-columns:48px 1fr}}
@media(prefers-reduced-motion:no-preference){#booking-surface button:not(.slide-choice){transition:transform .15s ease,box-shadow .2s ease,background-color .15s ease}}
.sessions-cta{position:relative;isolation:isolate;overflow:hidden}
.sessions-cta::after{content:'';position:absolute;inset:-50% auto -50% -60%;width:40%;background:linear-gradient(105deg,transparent,var(--signal),transparent);opacity:.22;transform:translateX(-100%);pointer-events:none}
#chosen-goal{position:relative;z-index:2;width:fit-content;max-width:100%;transform-origin:left center}
#chosen-goal:not(:empty){padding:0;background:transparent;color:var(--muted)}
form[data-state=invalid]>button.primary{outline:2px solid var(--error);outline-offset:3px}
.form-status{font-size:var(--text-small);line-height:1.5;color:var(--error);margin:0}
.form-status:empty{display:none}
#step[data-ready=true]{color:var(--ink);font-weight:700;text-decoration:underline var(--signal) 3px;text-underline-offset:6px}
@media(prefers-reduced-motion:no-preference){
 .slide-choice[data-dragging=true]{--grip:.92}
 .slide-choice[data-state=settling] .goal-handle{animation:handle-settle .22s ease-out}
 .sessions-cta::after{animation:session-sweep .9s .35s ease-out 1}
 .sessions-cta:is(:hover,:focus-visible)::after{animation:session-sweep-hover .65s ease-out 1}
 .windows label,input,select,textarea{transition:border-color .15s ease,box-shadow .15s ease}
 input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--progress)}
 @keyframes session-sweep{to{transform:translateX(550%)}}
 @keyframes session-sweep-hover{to{transform:translateX(550%)}}
 @keyframes handle-settle{50%{scale:1.08}to{scale:1}}
}



