:root {
  --motion-fast: 160ms;
  --motion-base: 240ms;
  --motion-slow: 420ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes hariomjiFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes hariomjiFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes hariomjiScaleIn {
  from { opacity: 0; transform: scale(0.97); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes hariomjiDropdownIn {
  from { opacity: 0; transform: translateY(-5px) scale(0.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes hariomjiBadgePop {
  0% { transform: scale(1); }
  45% { transform: scale(1.22); }
  100% { transform: scale(1); }
}

@keyframes hariomjiWishlistPop {
  0% { transform: scale(1); }
  55% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

@keyframes hariomjiCartConfirm {
  0% { transform: scale(1); }
  45% { transform: scale(0.97); }
  100% { transform: scale(1); }
}

.motion-fade-in {
  animation: hariomjiFadeIn var(--motion-base) var(--ease-out) both;
}

.motion-fade-up {
  animation: hariomjiFadeUp var(--motion-slow) var(--ease-out) both;
}

.motion-scale-in {
  animation: hariomjiScaleIn var(--motion-base) var(--ease-out) both;
}

.motion-dropdown-in {
  animation: hariomjiDropdownIn var(--motion-fast) var(--ease-out) both;
}

.motion-float {
  animation: homeHeroImageDrift 8s ease-in-out infinite alternate;
}

.motion-shimmer {
  background-size: 220% 100%;
  animation: homeSkeletonShimmer 1.5s ease-in-out infinite;
}

.scroll-reveal.is-visible {
  will-change: auto;
}

.header-menu-panel:not([hidden]) {
  transform-origin: top right;
  animation: hariomjiDropdownIn var(--motion-fast) var(--ease-out) both;
}

.cart-badge.is-updating {
  animation: hariomjiBadgePop 260ms var(--ease-out);
}

.home-product-card__offer,
.product-card__badge,
.fresh-fruit-card__badge {
  animation: hariomjiFadeUp var(--motion-base) var(--ease-out) both;
}

.home-product-card__wishlist.is-saved svg {
  animation: hariomjiWishlistPop 260ms var(--ease-out);
}

.home-product-card__add.is-added,
.browse-product-card__add.is-added,
.detail-related-card__button.is-added,
.add-to-cart-btn.is-added {
  animation: hariomjiCartConfirm 260ms var(--ease-out);
}

.browse-state,
.cart-empty-view,
.wishlist-empty-card,
.search-no-results {
  animation: hariomjiFadeUp var(--motion-slow) var(--ease-out) both;
}

.product-card,
.home-product-card,
.fresh-fruit-card,
.browse-product-card,
.browse-service-card,
.browse-category-card,
.service-card,
.home-service-tile,
.home-category-tile {
  transition-timing-function: var(--ease-out);
}

.product-card__img,
.fresh-fruit-card__image {
  transition: transform 360ms var(--ease-out);
}

.browse-product-card__media img,
.browse-service-card__media img {
  transition: transform 360ms var(--ease-out);
}

.product-card-quantity__stepper button,
.home-product-card__wishlist,
.home-product-card__add,
.browse-product-card__add,
.detail-related-card__button,
.add-to-cart-btn,
.icon-btn,
.browse-switcher__tab,
.home-category-chip,
.home-quick-link,
.home-hero-slide__button,
.hero-btn {
  -webkit-tap-highlight-color: transparent;
}

.product-card-quantity__stepper button:active:not(:disabled),
.home-product-card__wishlist:active,
.home-product-card__add:active:not(:disabled),
.browse-product-card__add:active:not(:disabled),
.detail-related-card__button:active:not(:disabled),
.add-to-cart-btn:active:not(:disabled),
.icon-btn:active,
.browse-switcher__tab:active,
.home-category-chip:active,
.home-quick-link:active,
.home-hero-slide__button:active,
.hero-btn:active {
  transform: scale(0.97);
}

@media (hover: none) {
  .product-card:hover,
  .home-product-card:hover,
  .fresh-fruit-card:hover,
  .browse-product-card:hover,
  .browse-service-card:hover,
  .browse-category-card:hover,
  .service-card:hover,
  .home-service-tile:hover,
  .home-category-tile:hover {
    transform: none;
  }

  .product-card:hover .product-card__img,
  .home-product-card:hover .home-product-card__open img,
  .fresh-fruit-card:hover .fresh-fruit-card__image,
  .browse-product-card:hover .browse-product-card__media img,
  .browse-service-card:hover .browse-service-card__media img,
  .service-card:hover .service-card__media img,
  .home-service-tile:hover .home-service-tile__image img,
  .home-category-tile:hover .home-category-tile__image img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .motion-fade-in,
  .motion-fade-up,
  .motion-scale-in,
  .motion-dropdown-in,
  .motion-float,
  .motion-shimmer,
  .header-menu-panel:not([hidden]),
  .cart-badge.is-updating,
  .home-product-card__offer,
  .product-card__badge,
  .fresh-fruit-card__badge,
  .home-product-card__wishlist.is-saved svg,
  .home-product-card__add.is-added,
  .browse-product-card__add.is-added,
  .detail-related-card__button.is-added,
  .add-to-cart-btn.is-added,
  .browse-state,
  .cart-empty-view,
  .wishlist-empty-card,
  .search-no-results {
    animation: none !important;
  }
}
