/* Full contrast at every frame, including when JavaScript is unavailable. */
#app.store-route-enter:not(.admin-view):not(.support-view) > :first-child {
  animation: none !important;
  opacity: 1;
  transform: none;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  #app:not(.admin-view):not(.support-view) :is(.product-card,.category-card) {
    transition: transform .22s cubic-bezier(.2,.75,.3,1), border-color .18s ease, box-shadow .22s ease;
  }
  #app:not(.admin-view):not(.support-view) :is(.product-card,.category-card):hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px #173e7010;
  }
  #app:not(.admin-view):not(.support-view) .product-card .product-image img {
    transition: transform .3s cubic-bezier(.2,.75,.3,1);
  }
  #app:not(.admin-view):not(.support-view) .product-card:hover .product-image img {
    transform: scale(1.025);
  }
  #app:not(.admin-view):not(.support-view) :is(.button,.customer-button):active:not(:disabled) {
    transform: translateY(1px);
    transition-duration: .08s;
  }
}

/* Touch targets respond immediately, without sticky hover movement. */
@media (hover: none), (pointer: coarse) {
  #app:not(.admin-view):not(.support-view) :is(.product-card,.category-card,.product-card .product-image img):hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme-scope="storefront"] { scroll-behavior: auto !important; }
  html[data-theme-scope="storefront"] :is(#site-header,#site-footer,#app,.mobile-bottom-nav) *,
  html[data-theme-scope="storefront"] :is(#site-header,#site-footer,#app,.mobile-bottom-nav) *::before,
  html[data-theme-scope="storefront"] :is(#site-header,#site-footer,#app,.mobile-bottom-nav) *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  #app:not(.admin-view):not(.support-view) :is(.product-card,.category-card,.product-image img,.button,.customer-button):is(:hover,:active) {
    transform: none !important;
  }
}

@media print {
  #app:not(.admin-view):not(.support-view),
  #app:not(.admin-view):not(.support-view) * {
    animation: none !important;
    transition: none !important;
  }
  #app.store-route-enter:not(.admin-view):not(.support-view) > :first-child {
    transform: none !important;
    opacity: 1 !important;
  }
}
