/* ── WIDGET FLOTANTE DE COTIZACIONES (O2 Hub) ── */
.o2-quote-cart-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  background: rgba(196, 112, 74, 0.9) !important; /* Terracota translúcido */
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  color: #ffffff !important;
  padding: 0.8rem 1.2rem !important;
  border-radius: 99px !important;
  box-shadow: 0 8px 32px rgba(196, 112, 74, 0.45) !important;
  display: none; /* Controlado por JS */
  align-items: center !important;
  gap: 0.75rem !important;
  z-index: 99999 !important;
  cursor: pointer !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), background-color 0.3s ease !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.5px !important;
  text-decoration: none !important;
  user-select: none !important;
}

.o2-quote-cart-float:hover {
  background: #C4704A !important;
  transform: scale(1.05) translateY(-2px) !important;
  box-shadow: 0 12px 40px rgba(196, 112, 74, 0.6) !important;
}

.o2-quote-cart-float:active {
  transform: scale(0.98) translateY(0) !important;
}

.o2-float-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  animation: floatPulse 2s infinite ease-in-out;
}

.o2-float-icon svg {
  color: #ffffff !important;
  display: block !important;
  width: 20px !important;
  height: 20px !important;
}

.o2-float-count {
  background: #ffffff !important;
  color: #C4704A !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.o2-float-text {
  text-transform: uppercase !important;
  font-size: 0.75rem !important;
  color: #ffffff !important;
  white-space: nowrap !important;
}

/* Micro-animación de pulso */
@keyframes floatPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

/* Animación de entrada al actualizar conteo */
.o2-bounce-pop {
  animation: o2BouncePop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes o2BouncePop {
  0% { transform: scale(1); }
  50% { transform: scale(1.2) translateY(-4px); }
  100% { transform: scale(1); }
}

@media (max-width: 768px) {
  .o2-quote-cart-float {
    bottom: 1.5rem !important;
    right: 1.5rem !important;
    padding: 0.7rem 1rem !important;
  }
  .o2-float-text {
    display: none !important; /* Ocultar texto en móviles para WPO/UX */
  }
}
