/* Custom Bootstrap Utility Classes */

/* Hover Effects */
.hover-lift {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.hover-lift:hover {
    transform: translateY(-4px);
}

.shadow-sm-hover:hover {
    box-shadow: 0 .125rem .25rem rgba(0,0,0,.075);
}

/* Text Gradients */
.text-gradient {
    background: linear-gradient(to right, var(--bs-primary), var(--bs-info));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Background Patterns */
.bg-pattern {
    position: relative;
    overflow: hidden;
}

.bg-pattern::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='2' cy='2' r='1' fill='rgba(255,255,255,0.1)' /%3E%3C/svg%3E");
    opacity: 0.1;
}

/* Card Enhancements */
.card-hover {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.card-hover:hover {
    transform: translateY(-4px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
}

/* Button Enhancements */
.btn-hover-lift {
    transition: transform 0.2s ease-in-out;
}

.btn-hover-lift:hover {
    transform: translateY(-2px);
}

/* Spacing Utilities */
.gap-xs { gap: 0.25rem; }
.gap-sm { gap: 0.5rem; }
.gap-md { gap: 1rem; }
.gap-lg { gap: 1.5rem; }
.gap-xl { gap: 2rem; }

/* Border Utilities */
.border-hover {
    transition: border-color 0.2s ease-in-out;
}

.border-hover:hover {
    border-color: var(--bs-primary);
}

/* Animation Utilities */
.fade-in {
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Responsive Utilities */
@media (min-width: 768px) {
    .hover-lift-md {
        transition: transform 0.2s ease-in-out;
    }
    
    .hover-lift-md:hover {
        transform: translateY(-4px);
    }
}

/* Icon Utilities */
.icon-hover {
    transition: transform 0.2s ease-in-out, color 0.2s ease-in-out;
}

.icon-hover:hover {
    transform: scale(1.1);
    color: var(--bs-primary);
} 