/* utilities.css - Utility classes and helpers */

/* Text Utilities */
.text-gradient {
    background: var(--primary-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Spacing Utilities */
.mb-section {
    margin-bottom: 80px;
}

.py-section {
    padding-top: 80px;
    padding-bottom: 80px;
}

/* Background Utilities */
.bg-gradient-primary {
    background: var(--primary-gradient);
}

.bg-gradient-secondary {
    background: var(--secondary-gradient);
}

.bg-gradient-accent {
    background: var(--accent-gradient);
}

.bg-gradient-success {
    background: var(--success-gradient);
}

/* Shadow Utilities */
.shadow-custom-sm {
    box-shadow: var(--shadow-sm);
}

.shadow-custom-md {
    box-shadow: var(--shadow-md);
}

.shadow-custom-lg {
    box-shadow: var(--shadow-lg);
}

/* Hover Effects */
.hover-lift {
    transition: var(--transition-base);
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.hover-scale {
    transition: var(--transition-base);
}

.hover-scale:hover {
    transform: scale(1.05);
}

/* Border Radius Utilities */
.rounded-custom-sm {
    border-radius: var(--border-radius-sm);
}

.rounded-custom-md {
    border-radius: var(--border-radius-md);
}

.rounded-custom-lg {
    border-radius: var(--border-radius-lg);
}

.rounded-custom-xl {
    border-radius: var(--border-radius-xl);
}

.rounded-pill-custom {
    border-radius: var(--border-radius-pill);
}

/* Backdrop Blur */
.backdrop-blur {
    backdrop-filter: blur(10px);
}

/* Opacity Utilities */
.opacity-70 {
    opacity: 0.7;
}

.opacity-80 {
    opacity: 0.8;
}

.opacity-90 {
    opacity: 0.9;
}

/* Z-index Utilities */
.z-index-1 {
    z-index: 1;
}

.z-index-2 {
    z-index: 2;
}

.z-index-10 {
    z-index: 10;
}

/* Image Utilities */
.img-circle {
    border-radius: 50%;
}

.img-cover {
    object-fit: cover;
}

.img-contain {
    object-fit: contain;
}

/* Flexbox Utilities */
.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Animation Utilities */
.animate-fade-in {
    animation: fadeInUp 0.6s ease;
}

.animate-fade-in-delay-1 {
    animation: fadeInUp 0.6s ease 0.2s backwards;
}

.animate-fade-in-delay-2 {
    animation: fadeInUp 0.6s ease 0.4s backwards;
}

/* Scrollbar Styling */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: var(--bg-light);
}

::-webkit-scrollbar-thumb {
    background: var(--primary-color);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--secondary-color);
}

/* Selection Styling */
::selection {
    background: var(--primary-color);
    color: white;
}

::-moz-selection {
    background: var(--primary-color);
    color: white;
}

/* Focus Styles */
*:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

button:focus,
a:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Smooth Scrolling */
html {
    scroll-behavior: smooth;
}

/* Print Styles */
@media print {
    .no-print {
        display: none !important;
    }

    .navbar,
    .footer-section,
    .admin-actions {
        display: none !important;
    }
}