/* Hide scrollbar for Chrome, Safari and Opera */
.hide-scrollbar::-webkit-scrollbar {
    display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
.hide-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

/* View transition logic */
.view {
    display: none;
    animation: fadeIn 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.view.active {
    display: block;
}

/* Specific override for flex containers when active */
#view-cart.active {
    display: flex;
}

@keyframes fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(10px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* Safe area handling for iOS devices with notch/home indicator */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    .pb-safe {
        padding-bottom: env(safe-area-inset-bottom);
        box-sizing: content-box; /* ensure the 60px height stays 60px + safe area */
    }
    body {
        /* Add extra padding to body equal to safe area so content isn't hidden under the thicker nav bar */
        padding-bottom: calc(60px + env(safe-area-inset-bottom));
    }
}

/* Toast animation classes */
.toast-show {
    transform: translate(-50%, 0) !important;
    opacity: 1 !important;
}

/* Tap highlight removal for mobile */
* {
    -webkit-tap-highlight-color: transparent;
}