/* Supplied guide #beweging: functional motion only. Content has no hidden
 * waiting state; CSS/JS failure leaves the complete page readable. */
@keyframes y-reference-reveal {
  from { opacity: 0; translate: 0 18px; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes y-reference-sticker {
  from { opacity: 0; translate: 0 14px; scale: .965; rotate: -.6deg; }
  60% { opacity: 1; }
  to { opacity: 1; translate: 0 0; scale: 1; rotate: 0deg; }
}
.y-motion-enter {
  animation: y-reference-reveal 720ms cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: calc(var(--y-motion-index, 0) * 70ms);
}
.y-brand-sticker.y-motion-sticker > span {
  animation: y-reference-sticker 720ms cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: calc(80ms + var(--y-sticker-index, 0) * 120ms);
}
/* The accessible value never counts. Override the existing broad stat-span
 * typography only for the temporary, aria-hidden animated presentation. */
.y-motion-count > .y-motion-count-visual {
  display: inline;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.y-motion-count > .y-motion-count-static {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
/* Native details keeps its keyboard, focus and open/closed semantics.
 * Browsers without intrinsic-size transitions keep the native instant toggle. */
@supports (interpolate-size: allow-keywords) and selector(details::details-content) {
  .y-faq-list > details { interpolate-size: allow-keywords; }
  .y-faq-list > details::details-content {
    block-size: 0;
    overflow: clip;
    transition: block-size 200ms cubic-bezier(.16, 1, .3, 1), content-visibility 200ms allow-discrete;
  }
  .y-faq-list > details[open]::details-content { block-size: auto; }
}
/* Static by default: one readable wrapping list, no duplicate or dead control. */
[data-y-ticker-viewport] { min-width: 0; container-type: inline-size; }
[data-y-ticker-track] { display: block; }
[data-y-ticker-track] > [data-y-ticker-group] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 32px;
}
[data-y-ticker-track] > [aria-hidden="true"] { display: none; }
/* Audit round 2 explicitly requests the reference 240ms sweep response on
 * genuine interactive cards. Translation, lift and pointer effects stay absent. */
.y-choice-grid > article,
.y-proposition { transition-property: color, background-color, border-color; }
.y-choice-grid > article:hover,
.y-proposition:hover,
.y-editorial-case:hover { transform: none; }
.y-offer-map a { transition-property: color, background-color, border-color; }
.y-offer-map a:hover { padding-inline: 0; }
@media (prefers-reduced-motion: reduce) {
  .y-motion-enter,
  .y-brand-sticker.y-motion-sticker > span { animation: none; }
  .y-faq-list > details::details-content { transition: none; }
}
