/* Quiet, finite motion; no loading curtain or delayed navigation. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: ma-page-out 140ms ease both; }
::view-transition-new(root) { animation: ma-page-in 280ms ease both; }
@keyframes ma-page-out { to { opacity: 0; } }
@keyframes ma-page-in { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
  .button, .icon-button, .shop-heart, .shop-category,
  .service-card, .academy-card, .product-card {
    transition: translate 220ms ease, box-shadow 220ms ease,
      border-color 220ms ease, background-color 220ms ease, color 220ms ease;
  }
  .button svg { transition: translate 220ms ease; }
  .button:active:not(:disabled), .icon-button:active:not(:disabled) { translate: 0 1px; }
  .shop-heart svg { transition: scale 220ms ease, fill 220ms ease; }
  .shop-heart[aria-pressed=true] svg { scale: 1.08; }
  .cart-count { animation: ma-count-in 300ms cubic-bezier(.2,.7,.2,1); }
  @keyframes ma-count-in { from { scale: .7; opacity: .3; } to { scale: 1; opacity: 1; } }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover:not(:disabled) { translate: 0 -2px; }
  .button:hover:not(:disabled) svg { translate: 3px 0; }
  .service-card:hover, .academy-card:hover, .product-card:hover { translate: 0 -4px; }
  .product-card:hover { box-shadow: 0 10px 28px #48301514; border-color: #c9ac86; }
  .icon-button:hover, .shop-heart:hover { translate: 0 -2px; }
}
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
}
