/* ── DOMINOS ANIMATIONS — sutis, nao intrusivas ── */
/* Performance: usa transform/opacity (GPU compositing) */

/* Fade-in geral quando pagina carrega */
@keyframes dminFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes dminSlideUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes dminScaleIn {
  from { opacity: 0; transform: scale(.96); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes dminPulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}
@keyframes dminShimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Hero/section entrance */
.site-header,
.hero-carousel,
.trust-bar,
.reviews-section,
.cat-grid-section {
  animation: dminFadeIn .5s ease-out both;
}
.site-header { animation-delay: 0s; }
.hero-carousel { animation-delay: .08s; }
.trust-bar { animation-delay: .16s; }
.reviews-section { animation-delay: .24s; }
.cat-grid-section { animation-delay: .32s; }

/* Product cards entrance */
.prod-card,
.cat-card,
.bump-item,
.up-product {
  animation: dminSlideUp .4s ease-out both;
}

/* Botoes interativos: hover leve */
.btn-add,
.btn-quick,
.cat-card,
.prod-card,
.bump-item,
.pm-method,
.up-product {
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
}
.btn-add:hover,
.btn-quick:hover,
.cat-card:hover,
.bump-item:hover:not(.selected),
.pm-method:hover:not(.active) {
  transform: translateY(-1px);
}
.btn-add:active,
.btn-quick:active,
.pm-method:active {
  transform: translateY(0) scale(.98);
}

/* Modal entrance (abre produto) */
.opt-modal.open .opt-modal-content,
.modal.open .modal-content {
  animation: dminScaleIn .25s ease-out;
}

/* CTA final (Place Order / Add to Order) com leve pulse infinito */
.btn-pay:not(:disabled),
#btn-pay:not(:disabled) {
  animation: dminPulse 2.4s ease-in-out infinite;
}
.btn-pay:not(:disabled):hover,
#btn-pay:not(:disabled):hover {
  animation: none;
  transform: translateY(-1px);
}

/* Status/toast entrance */
.toast,
.overlay {
  animation: dminFadeIn .3s ease-out;
}

/* Carrinho itens entrando */
.cart-item {
  animation: dminSlideUp .35s ease-out both;
}

/* Summary total recalculando (pulso rapido quando valor muda) */
.summary-item-price,
.total-price {
  transition: color .3s ease, transform .2s ease;
}

/* Respeitar preferencia de movimento reduzido */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
