/* ---- New Homepage Enhancements ---- */

/* Hover Effects */
.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg) !important;
}

.hover-shadow {
    transition: box-shadow 0.3s ease;
}

.hover-shadow:hover {
    box-shadow: var(--shadow-lg) !important;
}

.scale-on-hover {
    transition: transform 0.5s ease;
}

.group-hover:hover .scale-on-hover,
.hover-lift:hover .scale-on-hover,
.product-image:hover .scale-on-hover {
    transform: scale(1.05);
    /* Slight zoom */
}

.hover-opacity {
    transition: opacity 0.3s ease;
}

.product-image:hover .hover-opacity {
    opacity: 1 !important;
}

/* Animations */
@keyframes float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

.animate-float {
    animation: float 4s ease-in-out infinite;
}

.animate-float-delay {
    animation: float 4s ease-in-out infinite;
    animation-delay: 2s;
}

/* Transitions */
.transition-all {
    transition: all 0.3s ease;
}

.duration-500 {
    transition-duration: 0.5s;
}

/* Z-Index */
.z-index-1 {
    z-index: 1;
}

.z-index-2 {
    z-index: 2;
}

.z-index-3 {
    z-index: 3;
}

/* Utilities */
.object-fit-cover {
    object-fit: cover !important;
}

.object-fit-contain {
    object-fit: contain !important;
}

.cursor-pointer {
    cursor: pointer;
}

.text-truncate-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mw-xs {
    max-width: 200px;
}

.mw-md {
    max-width: 768px;
}

/* Blurs */
.blur-3xl {
    filter: blur(64px);
}

/* Opacity overrides if not in BS5 */
.bg-opacity-10 {
    --bs-bg-opacity: 0.1;
}

.bg-opacity-50 {
    --bs-bg-opacity: 0.5;
}

.opacity-10 {
    opacity: 0.1 !important;
}

.opacity-75 {
    opacity: 0.75 !important;
}

/* Tracker/Letter Spacing */
.tracking-wider {
    letter-spacing: 0.05em;
}