/* Compact animated Add-to-Cart button used across the site */
.hfw-cart-btn {
  --hfw-bg: #222;
  --hfw-color: #fff;
  --hfw-radius: 10px;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .48rem .9rem;
  background: var(--hfw-bg);
  color: var(--hfw-color);
  border-radius: var(--hfw-radius);
  border: none;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 6px 20px rgba(2,6,23,0.18);
  transition: transform .16s cubic-bezier(.2,.9,.2,1), box-shadow .16s ease, opacity .12s ease;
  will-change: transform;
}
.hfw-cart-btn .hfw-icon { font-size: 1.05rem; line-height: 1; }
.hfw-cart-btn:active { transform: translateY(2px) scale(.995); }
.hfw-cart-btn.added {
  background: linear-gradient(90deg,#059669,#10b981);
  box-shadow: 0 10px 28px rgba(16,185,129,0.14);
}

/* subtle pulse animation when item added */
.hfw-cart-pulse {
  position: relative;
}
.hfw-cart-pulse::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: inherit;
  background: radial-gradient(circle at 50% 50%, rgba(16,185,129,0.12), transparent 40%);
  opacity: 0;
  transform: scale(.9);
  transition: opacity .2s ease, transform .28s cubic-bezier(.2,.9,.2,1);
}
.hfw-cart-pulse.animate::after { opacity: 1; transform: scale(1.06); }

/* small variant */
.hfw-cart-btn.small { padding: .36rem .6rem; font-weight:700; border-radius:8px; }

/* disabled */
.hfw-cart-btn[disabled] { opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

/* helper for icon-only */
.hfw-cart-btn.icon-only { padding: .48rem; width: 44px; height: 44px; justify-content: center; }

/* accessibility focus */
.hfw-cart-btn:focus { outline: 3px solid rgba(5,150,105,0.14); outline-offset: 2px; }
