/* =========================================================
   Animations — matched to reference transitions / hover
   ========================================================= */

@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.45; }
}
@keyframes fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-pulse-dot { animation: pulse-dot 2s ease-in-out infinite; }

.card-lift {
  transition: transform .3s ease, box-shadow .3s ease;
}
.card-lift:hover {
  transform: translateY(-4px); /* hover:-translate-y-1 */
  box-shadow: 0 12px 32px rgba(11, 23, 40, 0.12);
}

.card-product-lift {
  transition: transform .3s ease, box-shadow .3s ease;
}
.card-product-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(11, 23, 40, 0.14);
}

.transition-colors {
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

.refresh-spin:active svg,
.refresh-spin:active i {
  animation: spin .6s linear;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
