/* Motion only: no editorial colors, typography, spacing or layout overrides. */
:root { --gw-ease-out: cubic-bezier(0.23, 1, 0.32, 1); }

@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }

  /* One header per document, kept steady while the page gently crossfades. */
  .gwh-header { view-transition-name: gw-header; }
  ::view-transition-group(root) { animation-duration: 220ms; }
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 220ms;
    animation-timing-function: ease;
  }
  ::view-transition-group(gw-header),
  ::view-transition-old(gw-header),
  ::view-transition-new(gw-header) { animation: none; }
  ::view-transition-old(gw-header) { opacity: 0; }

  /* Interaction feedback is limited to real mouse/trackpad hover. */
  @media (hover: hover) and (pointer: fine) {
    .wp-site-blocks :is(main .wp-block-button__link, .gwh-button) {
      transition-property: transform, background-color, border-color, color;
      transition-duration: 160ms;
      transition-timing-function: var(--gw-ease-out);
    }
    .wp-site-blocks :is(main .wp-block-button__link, .gwh-button):hover:not(:focus-visible) {
      transform: translateY(-2px);
    }
    .wp-site-blocks :is(main .wp-block-button__link, .gwh-button):active:not(:focus-visible) {
      transform: translateY(0) scale(0.98);
    }
  }
}

/* Explicitly opt out of navigation animation, including the older CSS opt-in. */
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  .gwh-header { view-transition-name: none; }
  /* Disable inherited transition:all too; never reset functional transforms. */
  .wp-site-blocks, .wp-site-blocks *, .wp-site-blocks *::before, .wp-site-blocks *::after {
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
  }
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) { animation: none !important; }
}

/* Honor the existing hero pause button for this layer too. */
html[data-gw-motion-paused] .gwh-header { view-transition-name: none; }
html[data-gw-motion-paused] .wp-site-blocks :is(main .wp-block-button__link, .gwh-button) {
  transition: none;
}
html[data-gw-motion-paused] .wp-site-blocks :is(main .wp-block-button__link, .gwh-button):is(:hover, :active),
html[data-gw-keyboard] .wp-site-blocks :is(main .wp-block-button__link, .gwh-button):is(:hover, :active),
.wp-site-blocks :is(main .wp-block-button__link, .gwh-button):focus-visible {
  transform: none;
}

@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  /* Legacy hover lifts also need to respect the same preferences. */
  .gwh-button:hover,
  .wp-block-gutwerker-pillar-card:hover,
  .wp-block-gutwerker-funnel-card:hover,
  .wp-block-gutwerker-wissen-card:hover,
  .wp-block-group.is-style-gw-team-member:hover,
  .wp-block-cover.is-style-gw-next-case-card:hover,
  .gw-referenz-card-m:hover,
  .gw-related-card:hover { transform: none; }
  .is-style-gwc-card-know:hover > .wp-block-post-featured-image img,
  .gw-referenz-card-m:hover img,
  .gw-related-card:hover .gw-related-card-visual img,
  .is-style-gw-ergebnis-card:hover .is-style-gw-case-visual img { transform: none; }
}
