/* Shared motion vocabulary. HTML stays visible before and without JavaScript. */
:root{--fp-motion-ease:cubic-bezier(.16,1,.3,1)}
.fp-site .brand-name:hover .brand-puls,.fp-site .icon-link::after{animation:none}
.fp-site .fp-motion-media{transition:none!important;transform-origin:center center}
.fp-site :is(.site-header,.header,.fp-nav){transition:background-color 220ms ease,box-shadow 220ms ease,border-color 220ms ease}
.fp-page-scrolled .fp-site :is(.site-header,.header,.fp-nav){box-shadow:0 4px 8px rgba(10,10,12,.06)}

@media(prefers-reduced-motion:no-preference){
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action,.ut-board-controls button,.ut-course-switch button,#ut-dialog-close){
    transition:transform 180ms var(--fp-motion-ease),background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease;
  }
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action,.ut-board-controls button,.ut-course-switch button,#ut-dialog-close):active{
    transform:scale(.98);transition-duration:100ms;
  }
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action,.ut-board-controls button,.ut-course-switch button,#ut-dialog-close):focus-visible{
    transition-duration:0s;
  }
  .fp-site .fp-mnav{transition:transform 260ms var(--fp-motion-ease)}
  .fp-site :is(.fp-faq,.pro-faq,.region-faq) summary .fp-ui-icon{transition:transform 180ms var(--fp-motion-ease)}
  .fp-site :is(.fp-nav,.nav,.fp-footer-nav-list,.region-jump,.pro-subnav) a{transition:color 160ms ease,background-color 160ms ease;text-underline-offset:.22em}
  .fp-site :is(input,textarea,select){transition:border-color 160ms ease,box-shadow 160ms ease}
}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action):hover{transform:translateY(-2px)}
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action):active{transform:scale(.98)}
  /* Lift only whole clickable cards. Informative cards and vehicle cutout layers
     keep their position; the existing image centering transforms are untouched. */
  .fp-site :is(a.klasse-card,a.fp-card,.fp-home-class,a.region-vehicle,a.ratgeber-card){
    transition:translate 240ms var(--fp-motion-ease),background-color 180ms ease,border-color 180ms ease;
  }
  .fp-site :is(a.klasse-card,a.fp-card,.fp-home-class,a.region-vehicle,a.ratgeber-card):hover{translate:0 -4px}
  .fp-site :is(a.klasse-card,a.fp-card,.fp-home-class,a.region-vehicle,a.ratgeber-card):active{translate:0 -1px}
  .fp-site a.region-vehicle:hover{transform:none}
  .fp-site :is(.fp-home-class,.region-vehicle) :is(h3,.fp-home-class-link){transition:color 160ms ease}
  /* Existing Streamline icons remain still; their meaning is the feedback. */
  .fp-site .klasse-card:hover .klasse-icon-wrap svg,.fp-site .icon-link::after{animation:none}
}

@media(hover:none),(pointer:coarse){
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action,.klasse-card,.fp-card,.howto .step,.team-card,.team-page-card,.fp-home-class,.region-vehicle):hover{transform:none;translate:none}
  .fp-site .fp-closing-media:hover img,.fp-site .fk-card:hover .fk-media img{transform:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .fp-site *,.fp-site *::before,.fp-site *::after{animation:none!important;transition:none!important}
  .fp-site :is(.btn,.fp-closing-button,.pro-btn,.fp-course-maxi,.pro-faq-action,.klasse-card,.fp-card,.howto .step,.team-card,.team-page-card,.fp-home-class,.region-vehicle):is(:hover,:active){transform:none;translate:none}
  .fp-site .fp-closing-media:hover img,.fp-site .fk-card:hover .fk-media img{transform:none}
}

@media print{
  .fp-site *{animation:none!important;transition:none!important}
  .fp-site .fp-motion-media{transform:none!important}
}
