/* KineticPep — impeccable polish layer (v1.11.0)
   Additive-only. Loads last so it wins the cascade where needed.
   Closes the two genuine gaps found auditing the design system against the
   impeccable standard, plus a refined ease-out on the primary hovers:
     1. prefers-reduced-motion had no handling anywhere.
     2. --ink-muted (#8A95AB) reads ~2.8:1 on the light bg — below WCAG AA.
   Everything else (focus-visible, hover states, tokens, spacing) was already
   correct and is left untouched. */

/* ---- 1. Motion: honour the OS reduced-motion preference ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  html { scroll-behavior: auto !important; }
  /* neutralise the decorative hover lifts / image zoom so nothing nudges */
  .btn-primary:hover,
  .card.hover-lift:hover,
  ul.products li.product:hover,
  .kp-cat-card:hover > img,
  .kp-pdp-cta form.cart button[type="submit"]:hover,
  .kp-pdp-cta form.cart .single_add_to_cart_button:hover { transform: none !important; }
}

/* ---- 2. Contrast: muted micro-labels on light surfaces to clear AA (#67718B ≈ 4.6:1) ---- */
/* --ink-muted is tuned for dark surfaces (≈5.5:1 there); this only overrides the
   light-surface, small-text usages where it fell short. Dark usages keep --ink-muted. */
.kp-product-card__cat,
.kp-product-card__price-label,
.kp-search__suggest-label,
.stripe-ph:not(.on-dark),
.kp-pdp-info .price del,
.kp-pdp-price del .woocommerce-Price-amount { color: #67718B; }

/* ---- 3. Refined ease-out (quint) on the primary interactive hovers ---- */
/* Later-loaded longhand overrides only the timing-function of each element's
   existing `transition` shorthand; durations/properties are preserved. */
.btn,
.card,
ul.products li.product,
.kp-header__nav a,
.kp-footer__grid a,
.kp-footer__social a,
.kp-header__icon-btn { transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1); }
