/* ========================================== */
/* UTILITY CLASSES */
/* ========================================== */

/* ========================================== */
/* SHADOWS */
/* ========================================== */

.shadow-sm {
    box-shadow: var(--shadow-sm) !important;
}

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

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

/* ========================================== */
/* TEXT UTILITIES */
/* ========================================== */

.text-primary {
    color: var(--primary-color) !important;
}

.text-secondary {
    color: var(--secondary-color) !important;
}

.text-muted {
    color: var(--muted-color) !important;
}

.text-dark {
    color: var(--dark-color) !important;
}

.text-light {
    color: var(--light-color) !important;
}

.text-success {
    color: var(--success-color) !important;
}

.text-danger {
    color: var(--danger-color) !important;
}

.text-warning {
    color: var(--warning-color) !important;
}

.text-info {
    color: var(--info-color) !important;
}

/* ========================================== */
/* BACKGROUND UTILITIES */
/* ========================================== */

.bg-primary {
    background-color: var(--primary-color) !important;
}

.bg-secondary {
    background-color: var(--secondary-color) !important;
}

.bg-light {
    background-color: var(--light-color) !important;
}

.bg-dark {
    background-color: var(--dark-color) !important;
}

.bg-success {
    background-color: var(--success-color) !important;
}

.bg-danger {
    background-color: var(--danger-color) !important;
}

.bg-warning {
    background-color: var(--warning-color) !important;
}

.bg-info {
    background-color: var(--info-color) !important;
}

/* ========================================== */
/* BORDER UTILITIES */
/* ========================================== */

.border-primary {
    border-color: var(--primary-color) !important;
}

.border-secondary {
    border-color: var(--secondary-color) !important;
}

.border-light {
    border-color: var(--border-color) !important;
}

/* ========================================== */
/* TRANSITION UTILITIES */
/* ========================================== */

.transition-fast {
    transition: all var(--transition-fast) !important;
}

.transition-normal {
    transition: all var(--transition-normal) !important;
}

.transition-slow {
    transition: all var(--transition-slow) !important;
}

/* ========================================== */
/* BORDER RADIUS UTILITIES */
/* ========================================== */

.rounded-sm {
    border-radius: var(--radius-sm) !important;
}

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

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

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

.rounded-2xl {
    border-radius: var(--radius-2xl) !important;
}

.rounded-full {
    border-radius: var(--radius-full) !important;
}

/* ========================================== */
/* FONT WEIGHT UTILITIES */
/* ========================================== */

.fw-normal {
    font-weight: var(--font-weight-normal) !important;
}

.fw-medium {
    font-weight: var(--font-weight-medium) !important;
}

.fw-semibold {
    font-weight: var(--font-weight-semibold) !important;
}

.fw-bold {
    font-weight: var(--font-weight-bold) !important;
}

.fw-extrabold {
    font-weight: var(--font-weight-extrabold) !important;
}

/* ========================================== */
/* HOVER EFFECTS */
/* ========================================== */

.hover-lift {
    transition: transform var(--transition-fast);
}

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

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

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

/* ========================================== */
/* LINK UTILITIES */
/* ========================================== */

.link-no-underline {
    text-decoration: none !important;
}

.link-hover-primary:hover {
    color: var(--primary-color) !important;
}

.link-hover-secondary:hover {
    color: var(--secondary-color) !important;
}
