/* ========================================
   Utility Classes - Project Specific
   No !important declarations
   ======================================== */

/* Spacing Utilities */
.mt-custom { margin-top: 2rem; }
.mb-custom { margin-bottom: 2rem; }
.p-custom { padding: 2rem; }

/* Text Utilities */
.text-shadow { text-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.text-gradient {
  background: linear-gradient(135deg, var(--bs-primary), var(--bs-info));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

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

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

.slide-in {
  animation: slideIn 0.3s ease-out;
}

@keyframes slideIn {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

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

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

.hover-glow {
  transition: box-shadow 0.2s ease-in-out;
}

.hover-glow:hover {
  box-shadow: 0 8px 25px rgba(13, 110, 253, 0.15);
}

/* Border Utilities */
.border-soft {
  border: 1px solid var(--bs-card-border-color);
}

.border-primary {
  border: 2px solid var(--bs-primary);
}

/* Background Utilities */
.bg-gradient-primary {
  background: linear-gradient(135deg, var(--bs-primary), var(--bs-info));
}

.bg-gradient-success {
  background: linear-gradient(135deg, var(--bs-success), var(--bs-info));
}

.bg-gradient-warning {
  background: linear-gradient(135deg, var(--bs-warning), var(--bs-danger));
}

/* Glass Effect */
.glass {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Responsive Utilities */
@media (max-width: 768px) {
  .mobile-hidden { display: none; }
  .mobile-full { width: 100%; }
}

@media (min-width: 769px) {
  .desktop-hidden { display: none; }
}
