/*
 * TCL motion system
 * Loaded after all component styles so durations and easing have one authority.
 */
body.tcl-site-active{
  --tcl-motion-instant:90ms;
  --tcl-motion-fast:120ms;
  --tcl-motion-base:180ms;
  --tcl-motion-slow:220ms;
  --tcl-motion-ease:cubic-bezier(.22,.78,.2,1);
  --tcl-motion-ease-out:cubic-bezier(.22,1,.36,1);
  --tcl-page-transition-ms:180ms;
  --tcl-page-transition-distance:5px;
  --tcl-desktop-menu-dur:180ms;
  --tcl-desktop-sub-dur:180ms;
  --tcl-mobile-menu-dur:220ms;
  --tcl-mobile-sub-dur:200ms;
}

body.tcl-page-transition-subtle{
  --tcl-page-transition-ms:135ms;
  --tcl-page-transition-distance:2px;
}

body.tcl-page-transition-off{
  --tcl-page-transition-ms:0ms;
  --tcl-page-transition-distance:0px;
}

/* Page entry fallback. Native links are never delayed or replaced. */
body.tcl-transition-ready .tcl-page{
  transition:
    opacity var(--tcl-page-transition-ms) var(--tcl-motion-ease-out),
    transform var(--tcl-page-transition-ms) var(--tcl-motion-ease-out)!important;
  will-change:auto!important;
}

html.tcl-transition-pending body:not(.tcl-page-transition-off) .tcl-page,
body.tcl-page-entering:not(.tcl-page-transition-off) .tcl-page{
  opacity:0!important;
  transform:translate3d(0,var(--tcl-page-transition-distance),0)!important;
}

body.tcl-page-leaving:not(.tcl-page-transition-off) .tcl-page{
  opacity:.94!important;
  transform:translate3d(0,-2px,0)!important;
}

/* Cross-document transitions keep the persistent shell visually quiet. */
body.tcl-site-active .tcl-header{view-transition-name:tcl-header;}
body.tcl-site-active .tcl-page{view-transition-name:tcl-content;}
body.tcl-site-active .tcl-footer{view-transition-name:tcl-footer;}

@media (prefers-reduced-motion:no-preference){
  html.tcl-native-view-transitions.tcl-transition-pending body .tcl-page{
    opacity:1!important;
    transform:none!important;
  }
  ::view-transition-old(root),
  ::view-transition-new(root){animation:none;}
  ::view-transition-old(tcl-header),
  ::view-transition-new(tcl-header),
  ::view-transition-old(tcl-footer),
  ::view-transition-new(tcl-footer){
    animation:tcl-motion-shell 120ms ease-out both;
  }
  ::view-transition-old(tcl-content){
    animation:tcl-motion-page-out 135ms var(--tcl-motion-ease) both;
  }
  ::view-transition-new(tcl-content){
    animation:tcl-motion-page-in var(--tcl-page-transition-ms) var(--tcl-motion-ease-out) both;
  }
}

@keyframes tcl-motion-shell{
  from{opacity:1}
  to{opacity:1}
}
@keyframes tcl-motion-page-out{
  from{opacity:1;transform:translate3d(0,0,0)}
  to{opacity:.94;transform:translate3d(0,-2px,0)}
}
@keyframes tcl-motion-page-in{
  from{opacity:0;transform:translate3d(0,var(--tcl-page-transition-distance),0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* Shared interaction rhythm. Component-specific colors and geometry stay intact. */
body.tcl-site-active :where(
  .tcl-btn,
  .tcl-inline-link,
  .tcl-nav a,
  .tcl-mobile-nav a,
  .tcl-section-nav__links > a,
  .tcl-aktuelles-nav a,
  .tcl-home-news__controls button,
  .tcl-cal-nav button,
  .tcl-cal-day.has-event,
  .tcl-cal-agenda__item,
  .tcl-cal-detail__choices button,
  .tcl-lightbox__close,
  .tcl-backtop,
  button,
  input,
  select,
  textarea
){
  transition-duration:var(--tcl-motion-base)!important;
  transition-timing-function:var(--tcl-motion-ease)!important;
}

body.tcl-site-active :where(
  .tcl-card,
  .tcl-news-card,
  .tcl-team-card,
  .tcl-image-card,
  .tcl-history-card,
  .tcl-contact-card,
  .tcl-service-faq
){
  transition-duration:var(--tcl-motion-base)!important;
  transition-timing-function:var(--tcl-motion-ease)!important;
}

body.tcl-site-active .tcl-home-news.is-slider-ready .tcl-home-news__track{
  transition:transform var(--tcl-motion-slow) var(--tcl-motion-ease-out)!important;
}

body.tcl-site-active .tcl-cal-months.is-switching{
  animation-duration:var(--tcl-motion-base)!important;
  animation-timing-function:var(--tcl-motion-ease-out)!important;
}

body.tcl-site-active .tcl-cal-detail.is-flipped .tcl-cal-detail__inner{
  animation-duration:var(--tcl-motion-base)!important;
  animation-timing-function:var(--tcl-motion-ease-out)!important;
}

body.tcl-site-active .tcl-lightbox{
  transition:
    opacity var(--tcl-motion-base) var(--tcl-motion-ease),
    visibility 0s linear var(--tcl-motion-base)!important;
}
body.tcl-site-active .tcl-lightbox.is-open{
  transition-delay:0s!important;
}
body.tcl-site-active .tcl-lightbox figure{
  opacity:0;
  transform:translate3d(0,5px,0) scale(.992);
  transition:
    opacity var(--tcl-motion-base) var(--tcl-motion-ease-out),
    transform var(--tcl-motion-base) var(--tcl-motion-ease-out)!important;
}
body.tcl-site-active .tcl-lightbox.is-open figure{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}

@supports selector(::details-content){
  body.tcl-site-active .tcl-service-faq::details-content{
    transition-duration:var(--tcl-motion-slow),var(--tcl-motion-slow)!important;
    transition-timing-function:var(--tcl-motion-ease),var(--tcl-motion-ease)!important;
  }
}

@media (hover:hover) and (pointer:fine){
  body.tcl-site-active :where(
    .tcl-card,
    .tcl-news-card,
    .tcl-team-card,
    .tcl-image-card,
    .tcl-history-card
  ):hover{
    transform:translate3d(0,-2px,0)!important;
  }
  body.tcl-site-active :where(
    .tcl-btn,
    .tcl-inline-link,
    .tcl-home-news__controls button:not(:disabled),
    .tcl-cal-nav button:not(:disabled),
    .tcl-backtop
  ):hover{
    transform:none!important;
  }
}

body.tcl-site-active :where(
  .tcl-btn,
  .tcl-inline-link,
  .tcl-nav a,
  .tcl-mobile-nav a,
  .tcl-section-nav__links > a,
  .tcl-aktuelles-nav a,
  .tcl-home-news__controls button:not(:disabled),
  .tcl-cal-nav button:not(:disabled),
  .tcl-cal-day.has-event,
  .tcl-cal-agenda__item,
  .tcl-lightbox__close,
  .tcl-backtop
):active{
  transform:translate3d(0,0,0) scale(.985)!important;
  transition-duration:var(--tcl-motion-instant)!important;
}

/* Motion accessibility: content remains present and every control remains usable. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important;}
  body.tcl-site-active{
    --tcl-motion-instant:.01ms;
    --tcl-motion-fast:.01ms;
    --tcl-motion-base:.01ms;
    --tcl-motion-slow:.01ms;
    --tcl-page-transition-ms:.01ms;
    --tcl-slider-anim:0ms;
  }
  html.tcl-transition-pending body.tcl-site-active .tcl-page,
  body.tcl-site-active.tcl-page-entering .tcl-page,
  body.tcl-site-active.tcl-page-leaving .tcl-page{
    opacity:1!important;
    transform:none!important;
  }
  body.tcl-site-active .tcl-page{
    transition:none!important;
    animation:none!important;
  }
  body.tcl-site-active *,
  body.tcl-site-active *::before,
  body.tcl-site-active *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-delay:0s!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    transition-delay:0s!important;
  }
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){
    animation:none!important;
  }
}
