/* ============================================
   FLOATING CART BUTTON
   Mobile-first, touch-friendly design
   ============================================ */

.floating-cart {
  position: fixed;
  bottom: var(--space-6);
  right: var(--space-6);
  z-index: 90;
  
  /* Size - min 44x44 for touch accessibility */
  width: 56px;
  height: 56px;
  
  /* Glassmorphism style */
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 
    0 4px 24px rgba(0, 0, 0, 0.12),
    0 1px 4px rgba(0, 0, 0, 0.08);
  
  /* Layout */
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  
  /* Touch feedback */
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  
  /* Smooth transitions */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Hover effects - only on devices that support hover */
@media (hover: hover) and (pointer: fine) {
  .floating-cart:hover {
    transform: scale(1.08);
    box-shadow: 
      0 8px 32px rgba(0, 0, 0, 0.16),
      0 2px 8px rgba(0, 0, 0, 0.1);
  }
}

/* Active/pressed state for all devices */
.floating-cart:active {
  transform: scale(0.95);
}

/* Cart icon */
.floating-cart-icon {
  font-size: 1.5rem;
  line-height: 1;
}

/* Badge counter */
.floating-cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  
  background: var(--gradient-primary);
  color: white;
  font-size: 0.7rem;
  font-weight: 700;
  
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  border: 2px solid white;
  
  /* Animation for updates */
  transition: transform 0.2s ease;
}

/* Pulse animation when count changes */
.floating-cart-badge.pulse {
  animation: badge-pulse 0.3s ease;
}

@keyframes badge-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

/* Hidden state when cart is empty */
.floating-cart.hidden {
  display: none;
}

/* Mobile adjustments - higher position to avoid thumb zone */
@media (max-width: 767px) {
  .floating-cart {
    bottom: var(--space-4);
    right: var(--space-4);
    width: 52px;
    height: 52px;
  }
  
  .floating-cart-icon {
    font-size: 1.35rem;
  }
}

/* Hide on cart page - controlled via body class */
body.page-cart .floating-cart {
  display: none;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jc3MvZmxvYXRpbmctY2FydC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztpREFHaUQ7O0FBRWpEO0VBQ0UsZUFBZTtFQUNmLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsV0FBVzs7RUFFWCw2Q0FBNkM7RUFDN0MsV0FBVztFQUNYLFlBQVk7O0VBRVosd0JBQXdCO0VBQ3hCLHFDQUFxQztFQUNyQywyQkFBMkI7RUFDM0IsbUNBQW1DO0VBQ25DLDBDQUEwQztFQUMxQzs7aUNBRStCOztFQUUvQixXQUFXO0VBQ1gsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsaUNBQWlDOztFQUVqQyxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLHdDQUF3QztFQUN4QywwQkFBMEI7O0VBRTFCLHVCQUF1QjtFQUN2QixxREFBcUQ7QUFDdkQ7O0FBRUEsdURBQXVEO0FBQ3ZEO0VBQ0U7SUFDRSxzQkFBc0I7SUFDdEI7O2tDQUU4QjtFQUNoQztBQUNGOztBQUVBLHlDQUF5QztBQUN6QztFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQSxjQUFjO0FBQ2Q7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQSxrQkFBa0I7QUFDbEI7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7O0VBRVgsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjOztFQUVkLG1DQUFtQztFQUNuQyxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGdCQUFnQjs7RUFFaEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsaUNBQWlDO0VBQ2pDLHVCQUF1Qjs7RUFFdkIsMEJBQTBCO0VBQzFCLCtCQUErQjtBQUNqQzs7QUFFQSx1Q0FBdUM7QUFDdkM7RUFDRSxnQ0FBZ0M7QUFDbEM7O0FBRUE7RUFDRSxLQUFLLG1CQUFtQixFQUFFO0VBQzFCLE1BQU0scUJBQXFCLEVBQUU7RUFDN0IsT0FBTyxtQkFBbUIsRUFBRTtBQUM5Qjs7QUFFQSxvQ0FBb0M7QUFDcEM7RUFDRSxhQUFhO0FBQ2Y7O0FBRUEsNkRBQTZEO0FBQzdEO0VBQ0U7SUFDRSxzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxrQkFBa0I7RUFDcEI7QUFDRjs7QUFFQSxrREFBa0Q7QUFDbEQ7RUFDRSxhQUFhO0FBQ2YiLCJmaWxlIjoiZmxvYXRpbmctY2FydC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRkxPQVRJTkcgQ0FSVCBCVVRUT05cbiAgIE1vYmlsZS1maXJzdCwgdG91Y2gtZnJpZW5kbHkgZGVzaWduXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZmxvYXRpbmctY2FydCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiB2YXIoLS1zcGFjZS02KTtcbiAgcmlnaHQ6IHZhcigtLXNwYWNlLTYpO1xuICB6LWluZGV4OiA5MDtcbiAgXG4gIC8qIFNpemUgLSBtaW4gNDR4NDQgZm9yIHRvdWNoIGFjY2Vzc2liaWxpdHkgKi9cbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgXG4gIC8qIEdsYXNzbW9ycGhpc20gc3R5bGUgKi9cbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBib3gtc2hhZG93OiBcbiAgICAwIDRweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMiksXG4gICAgMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIFxuICAvKiBMYXlvdXQgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgXG4gIC8qIFRvdWNoIGZlZWRiYWNrICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIFxuICAvKiBTbW9vdGggdHJhbnNpdGlvbnMgKi9cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5cbi8qIEhvdmVyIGVmZmVjdHMgLSBvbmx5IG9uIGRldmljZXMgdGhhdCBzdXBwb3J0IGhvdmVyICovXG5AbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gIC5mbG9hdGluZy1jYXJ0OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpO1xuICAgIGJveC1zaGFkb3c6IFxuICAgICAgMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAgICAgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxufVxuXG4vKiBBY3RpdmUvcHJlc3NlZCBzdGF0ZSBmb3IgYWxsIGRldmljZXMgKi9cbi5mbG9hdGluZy1jYXJ0OmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi8qIENhcnQgaWNvbiAqL1xuLmZsb2F0aW5nLWNhcnQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLyogQmFkZ2UgY291bnRlciAqL1xuLmZsb2F0aW5nLWNhcnQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTRweDtcbiAgcmlnaHQ6IC00cHg7XG4gIFxuICBtaW4td2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1wcmltYXJ5KTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICBcbiAgLyogQW5pbWF0aW9uIGZvciB1cGRhdGVzICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi8qIFB1bHNlIGFuaW1hdGlvbiB3aGVuIGNvdW50IGNoYW5nZXMgKi9cbi5mbG9hdGluZy1jYXJ0LWJhZGdlLnB1bHNlIHtcbiAgYW5pbWF0aW9uOiBiYWRnZS1wdWxzZSAwLjNzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgYmFkZ2UtcHVsc2Uge1xuICAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG5cbi8qIEhpZGRlbiBzdGF0ZSB3aGVuIGNhcnQgaXMgZW1wdHkgKi9cbi5mbG9hdGluZy1jYXJ0LmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1vYmlsZSBhZGp1c3RtZW50cyAtIGhpZ2hlciBwb3NpdGlvbiB0byBhdm9pZCB0aHVtYiB6b25lICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmZsb2F0aW5nLWNhcnQge1xuICAgIGJvdHRvbTogdmFyKC0tc3BhY2UtNCk7XG4gICAgcmlnaHQ6IHZhcigtLXNwYWNlLTQpO1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgfVxuICBcbiAgLmZsb2F0aW5nLWNhcnQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICB9XG59XG5cbi8qIEhpZGUgb24gY2FydCBwYWdlIC0gY29udHJvbGxlZCB2aWEgYm9keSBjbGFzcyAqL1xuYm9keS5wYWdlLWNhcnQgLmZsb2F0aW5nLWNhcnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuIl19 */