/* Motion belongs to the booking surface. No global theme or layout changes. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.team-profile[data-motion="panel"]{overflow:hidden;overflow-anchor:none}
@media(prefers-reduced-motion:no-preference){
  .booking-site :is(.primary,.secondary,.back,.text-button,.text-link,.topic-card,.subtopic-card,.expert-option,.team-toggle,.profile-topic,.calendar-day,.month-nav,.slot,.step,.mode-option,.duration-option){transition:transform 220ms var(--motion-ease),box-shadow 240ms var(--motion-ease),background-color 200ms ease,border-color 200ms ease,color 180ms ease,opacity 180ms ease}
  .team-image img,.expert-option>img,.appointment-aside>img,.preferred-expert>img,.hero-photo>img{transition:transform 620ms var(--motion-ease),filter 400ms ease}
  .hero-photo{overflow:hidden}
  .team-toggle[aria-expanded="true"] .team-image img{transform:scale(1.055)}
  .expert-option.selected>img{transform:scale(1.055)}
  .team-toggle:focus-visible .team-image img,.expert-option:focus-visible>img{transform:scale(1.08)}
  .category-symbol,.duration-option img,.step b{transition:transform 320ms var(--motion-ease),background-color 220ms ease,border-color 220ms ease,color 220ms ease}
  .field :is(input,textarea,select){transition:border-color 220ms ease,box-shadow 220ms ease,background-color 220ms ease}
  .field :is(input,textarea,select):focus{border-color:var(--orange);box-shadow:0 0 0 3px rgb(235 100 55 / 10%)}
  .step{position:relative}.step.current{border-bottom-color:transparent}
  .step::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;pointer-events:none}
  .step.current::after{transform:scaleX(1);animation:tlp-step-line 300ms var(--motion-ease)}
  .slot.selected,.calendar-day.chosen{animation:tlp-select 240ms var(--motion-ease)}
  .success-mark{animation:tlp-success 450ms var(--motion-ease)}
  #message:not([hidden]),#contact-error:not([hidden]){animation:tlp-notice 240ms var(--motion-ease)}
  .booking-site :is(button,.primary,.secondary):active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 3px rgb(23 55 92 / 8%)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .booking-site :is(.primary,.secondary):hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 18px rgb(23 55 92 / 13%)}
  .booking-site :is(.topic-card,.subtopic-card,.expert-option):hover:not(:disabled){transform:translateY(-4px);box-shadow:0 10px 26px rgb(23 55 92 / 8%);border-color:var(--orange)}
  .topic-card:hover .category-symbol{transform:translateY(-2px)}
  .team-toggle:hover{transform:translateY(-4px)}.team-toggle:hover .team-image img{transform:scale(1.085);filter:brightness(1.04)}
  .expert-option:hover>img,.appointment-aside>img:hover,.preferred-expert>img:hover{transform:scale(1.08);filter:brightness(1.04)}
  .hero-photo:hover>img{transform:scale(1.04)}
  .booking-site :is(.profile-topic,.text-link,.text-button,.back):hover:not(:disabled){transform:translateX(3px)}
  .booking-site :is(.slot,.month-nav,.calendar-day,.mode-option,.duration-option):hover:not(:disabled){transform:translateY(-2px);border-color:var(--orange)}
  .step:hover:not(:disabled) b{transform:translateY(-2px)}
  .booking-site :is(button,.primary,.secondary):active:not(:disabled){transform:translateY(1px)}
}
@keyframes tlp-step-line{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
@keyframes tlp-select{from{transform:scale(.96)}to{transform:scale(1)}}
@keyframes tlp-success{from{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:none}}
@keyframes tlp-notice{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .booking-site,.booking-site *,.booking-site *::before,.booking-site *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .booking-site :is(button,.primary,.secondary,.team-image img,.category-symbol,.mode-option,.duration-option):is(:hover,:active){transform:none!important}
  .booking-site img{transform:none!important;filter:none!important}
}
