/* Calendly reference: restrained 200–300ms UI transitions, cubic-bezier(.16,1,.3,1).
   Adapted to a driving-school enquiry flow: no perpetual motion or fake scheduling UI. */
:root{--ease-calendly:cubic-bezier(.16,1,.3,1)}
a,button{transition:background-color .2s ease-in-out,color .2s ease-in-out,box-shadow .18s ease-in-out,transform .3s ease-out}
.btn:hover{transform:none}.btn.primary:hover,.btn.secondary:hover{box-shadow:0 4px 5px rgba(71,103,136,.04),0 8px 15px rgba(71,103,136,.03),0 15px 30px rgba(71,103,136,.06)}
.btn>svg,.inline-link>svg,.card-link>svg{transition:transform .3s var(--ease-calendly)}
@media(hover:hover) and (pointer:fine){.btn:hover>svg:not(:first-child),.inline-link:hover>svg,.start-card:hover .card-link>svg{transform:translateX(3px)}}
.motion-ready .fade-item{transition:opacity .45s var(--ease-calendly),transform .45s var(--ease-calendly);transform:translateY(12px)}
.motion-ready .fade-item.is-visible{opacity:1;transform:none}
.header{transition:box-shadow .2s ease-in-out}.header.is-scrolled{box-shadow:0 4px 14px rgba(71,103,136,.07)}
#main-nav{transition:opacity .2s var(--ease-calendly),transform .25s var(--ease-calendly),visibility .25s}
#booking-form fieldset:not([hidden]),#booking-result:not([hidden]){animation:step-arrive .25s var(--ease-calendly) both}
.faq-items details[open]>div{animation:answer-arrive .2s ease-out both}
@keyframes step-arrive{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes answer-arrive{from{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .fade-item{opacity:1!important;transform:none!important}}
