/* Shared hover timing. Apply to controls and visual targets, never marquee tracks,
   modal containers or page layout. Keep keyboard focus outlines immediate. */
@media (prefers-reduced-motion: no-preference) {
  :root body :is(
    a, button, summary,
    .equipment-card, .testimonial-item, .office-card, .category-showcase-card,
    .value-pillar-card, .company-profile-card, .heritage-card, .dark-glass-card,
    .apple-team-card, .stat-badge-box, .category-card-box, .catalogue-card,
    .subcat-card-box, .department-card, .marketplace-card, .wizard-category-card,
    .policy-card, .terms-card, .project-card,
    .category-art, .category-arrow, .benefit-circle, .project-arrow,
    .category-showcase-art, .category-showcase-photo,
    .apple-mobile-tile-icon, .apple-mobile-tile-title, .apple-mobile-tile-sub,
    .apple-mobile-icon-box, .apple-mobile-chevron, .cat-icon,
    .alliance-explore svg, .alliance-finale > a svg,
    a > svg, a > i, button > svg, button > i,
    .catalogue-card__image img, .card-img-wrap img,
    .category-card-box img, .category-showcase-card img, .header .logo img
  ) {
    transition-property: transform, translate, scale, rotate, color,
      background-color, border-color, box-shadow, opacity, filter,
      gap, padding-left, text-underline-offset !important;
    transition-duration: 650ms !important;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1) !important;
    transition-delay: 0s !important;
  }

  /* CSS cannot interpolate between a gradient and a flat background. Retain
     the gradient on hover and fade its underlying colour instead. */
  .company-nav-link:hover {
    background-image: linear-gradient(115deg, #05213955, #06182f88);
    background-color: #07304b;
  }
}

/* Keep the hero buttons and benefit icons on a stable composited layer. Both
   resting and hovered states use 3D translation so the layer does not change. */
@media (prefers-reduced-motion: no-preference) {
  .hero-button, .benefit-circle {
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
  }
  .hero-button:hover { transform: translate3d(0, -3px, 0); }
  .benefit:hover .benefit-circle { transform: translate3d(0, -5px, 0); }
}

/* Reduced motion should remove the movement itself, rather than make the same
   movement happen instantly. Colour feedback remains available. */
@media (prefers-reduced-motion: reduce) {
  :root body :is(
    .hero-button, .benefit-circle, .contact-pill, .company-action,
    .category-art, .category-arrow, .project-arrow,
    .equipment-card, .testimonial-item, .office-card, .category-showcase-card,
    .value-pillar-card, .company-profile-card, .heritage-card, .dark-glass-card,
    .apple-team-card, .stat-badge-box, .category-card-box, .catalogue-card,
    .subcat-card-box, .department-card, .marketplace-card, .wizard-category-card,
    .category-showcase-art, .category-showcase-photo,
    .catalogue-card__image img, .card-img-wrap img,
    .alliance-finale > a svg
  ) {
    transform: none !important;
    scale: none !important;
    translate: none !important;
    rotate: none !important;
  }
  .hero-button:hover { filter: none; }
}
/* Fractional correction complements native touch/trackpad scrolling. */
.category-list.is-looping > li {
  translate: var(--category-subpixel, 0px) 0;
}
@media (prefers-reduced-motion: no-preference) {
  .brief-hero-slide, .brief-hero-product { will-change: opacity; }
  .alliance-sculpture { transition: transform 850ms cubic-bezier(.16, 1, .3, 1); }
  .alliance-ambience {
    background: radial-gradient(ellipse at 16% 45%, #006c9c55, transparent 38%),
      radial-gradient(ellipse at 88% 43%, #b54d132b, transparent 34%),
      linear-gradient(165deg, #001b30, #000b17 70%);
  }
  .alliance-ambience::before {
    content: ''; position: absolute; inset: -25%;
    background: radial-gradient(ellipse at center, #0a517045, transparent 55%);
    transform: translate3d(var(--alliance-shift, 0px), 0, 0);
    transition: transform 900ms cubic-bezier(.16, 1, .3, 1);
    will-change: transform;
  }
  .alliance-sculpture-float { animation: none; }
  .alliance-emblem { animation: alliance-hover 7s ease-in-out infinite; will-change: transform; }
}
.brand-collaboration[data-motion-paused="true"] :is(.alliance-emblem, .alliance-spark) {
  animation-play-state: paused;
}
@media (prefers-reduced-motion: no-preference) {
  /* Gradient images do not interpolate. Keep this button's existing blue
     surface and animate its brightness instead of swapping gradients. */
  .admin-login-btn:hover {
    background: linear-gradient(135deg, #0071e3 0%, #0071e3 100%);
    filter: brightness(1.06);
  }
}
