input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
    -webkit-appearance: none; 
    margin: 0; 
}

.img-zoom-container { 
    overflow: hidden; 
    position: relative; 
    border-radius: 0.75rem; 
    background: #0f0f0f; 
}

.img-zoom-container img { 
    transition: transform 0.4s ease; 
    transform-origin: center center; 
}

.img-zoom-container:hover img { 
    transform: scale(1.3); 
    cursor: crosshair; 
}

@keyframes pulse-flame { 
    0% { box-shadow: 0 0 0 0 rgba(234, 88, 12, 0.7); } 
    70% { box-shadow: 0 0 0 10px rgba(234, 88, 12, 0); } 
    100% { box-shadow: 0 0 0 0 rgba(234, 88, 12, 0); } 
}

.badge-hot { 
    animation: pulse-flame 2s infinite; 
}

#sticky-cart-bar { 
    transition: transform 0.3s ease-in-out, opacity 0.3s; 
}

.sticky-hidden { 
    transform: translateY(100%); 
    opacity: 0; 
    pointer-events: none; 
}

.sticky-visible { 
    transform: translateY(0); 
    opacity: 1; 
    pointer-events: auto; 
}

.scrollbar-hide::-webkit-scrollbar { 
    display: none; 
}

.scrollbar-hide { 
    -ms-overflow-style: none; 
    scrollbar-width: none; 
}

@keyframes shake-error {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.shake-anim { 
    animation: shake-error 0.4s ease-in-out; 
}