/* =============================================
   MINI TOYS CHECKOUT — animations.css
   ============================================= */

/* PULSE — botão principal */
@keyframes pulse {
  0%   { box-shadow: 0 6px 22px rgba(115, 193, 219, 0.38); }
  50%  { box-shadow: 0 6px 32px rgba(115, 193, 219, 0.65); }
  100% { box-shadow: 0 6px 22px rgba(115, 193, 219, 0.38); }
}

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

.pulse:hover {
  animation: none;
}

/* SHAKE — input inválido */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%       { transform: translateX(-6px); }
  40%       { transform: translateX(6px); }
  60%       { transform: translateX(-4px); }
  80%       { transform: translateX(4px); }
}

.shake {
  animation: shake 0.45s ease-in-out;
}

/* FADE IN — entrada suave dos cards */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.card {
  animation: fadeInUp 0.35s ease-out both;
}

.card:nth-child(1) { animation-delay: 0.05s; }
.card:nth-child(2) { animation-delay: 0.12s; }
.card:nth-child(3) { animation-delay: 0.18s; }

/* COUPON MESSAGE */
.coupon-msg {
  font-size: 12px;
  font-weight: 700;
  margin-top: 8px;
  padding: 6px 12px;
  border-radius: 8px;
}

.coupon-msg--success {
  background: #fce4f0;
  color: #ef94a3;
}

.coupon-msg--error {
  background: #fff0f0;
  color: #e85d5d;
}

/* INPUT INVALID border highlight */
.input-wrap.invalid input {
  border-color: #e85d5d !important;
  box-shadow: 0 0 0 3px rgba(232, 93, 93, 0.1) !important;
}
