.carrito-flotante {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1040;
  display: inline-flex; align-items: center; gap: .6rem;
  height: 56px; padding: 0 1.1rem 0 1.2rem;
  border: 0; border-radius: 28px;
  background: var(--kf-carbon); color: #fff;
  font-weight: 600; font-size: .9rem;
  box-shadow: 0 12px 30px rgba(58, 50, 55, .28);
  opacity: 0; transform: translateY(16px) scale(.96); pointer-events: none;
  transition: opacity 220ms ease-out, transform 260ms var(--ease-out), background-color 200ms ease;
}
.carrito-flotante.visible { opacity: 1; transform: none; pointer-events: auto; }
.carrito-flotante:hover { background: var(--kf-morado-oscuro); }
.carrito-flotante:active { transform: scale(.97); }
.carrito-flotante .bi { font-size: 1.2rem; }
.carrito-flotante .contador {
  min-width: 24px; height: 24px; line-height: 24px; padding: 0 6px;
  border-radius: 12px; background: var(--kf-lila); color: var(--kf-carbon);
  font-size: .78rem; font-weight: 700; text-align: center;
}
.carrito-flotante.pulso .contador { animation: pulso-contador 320ms var(--ease-out); }
@keyframes pulso-contador { 0% { transform: scale(1); } 40% { transform: scale(1.25); } 100% { transform: scale(1); } }
@media (max-width: 575.98px) {
  .carrito-flotante { right: 1rem; bottom: 1rem; height: 52px; padding: 0 .9rem 0 1rem; }
  .carrito-flotante-texto { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .carrito-flotante { transform: none; }
  .carrito-flotante.pulso .contador { animation: none; }
}
