/* ==========================================================================
   AlgoHub SMC - Utility Classes (Dark SaaS Tech Theme)
   File: utilities.css (Spacing, Typography helpers, Colors)
   ========================================================================== */

/* --- Spacing Helpers --- */
.section-padding { padding: 6rem 0; }
.section-padding-sm { padding: 4rem 0; }
.section-padding-lg { padding: 8rem 0; }
.pt-section { padding-top: 6rem; }
.pb-section { padding-bottom: 6rem; }

/* --- Pattern Backgrounds --- */
.bg-grid {
  background-image: linear-gradient(to right, rgba(255,255,255,0.05) 1px, transparent 1px),
                    linear-gradient(to bottom, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
}
.bg-dots {
  background-image: radial-gradient(rgba(255,255,255,0.1) 1px, transparent 1px);
  background-size: 20px 20px;
}

/* --- Dark Theme Overrides for Utility Classes --- */
.bg-light-gray, .bg-light {
  background-color: var(--bg-surface) !important;
  color: var(--text-main) !important;
  border: 1px solid var(--border-light) !important;
}
.text-dark {
  color: var(--text-main) !important;
}
.text-muted {
  color: var(--text-muted) !important;
}

/* --- Typography Helpers --- */
.text-gradient {
  background: linear-gradient(135deg, var(--primary), #3b82f6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-accent {
  background: linear-gradient(135deg, var(--secondary), #ec4899);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-title {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}

.section-subtitle {
  font-size: 1.125rem;
  color: var(--text-muted);
  max-width: 650px;
  margin: 0 auto 3rem;
  line-height: 1.8;
}

.letter-spacing-1 { letter-spacing: 0.1em; }
.letter-spacing-2 { letter-spacing: 0.2em; }
.font-mono { font-family: var(--font-mono) !important; }

/* --- Layout Helpers --- */
.z-index-1 { z-index: 1; }
.z-index-2 { z-index: 2; }
.z-index-10 { z-index: 10; }

.min-vh-50 { min-height: 50vh; }
.min-vh-75 { min-height: 75vh; }

.glass-panel {
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border-light);
}

.glass-panel-dark {
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border-light);
  box-shadow: inset 0 0 20px rgba(255,255,255,0.02);
}

.hover-primary { transition: color var(--transition-fast), text-shadow var(--transition-fast); }
.hover-primary:hover { color: var(--primary) !important; text-shadow: 0 0 8px rgba(6, 182, 212, 0.4); }
.hover-white { transition: all 0.3s ease; }
.hover-white:hover { color: #ffffff !important; margin-left: 4px; }
.border-secondary { border-color: rgba(255, 255, 255, 0.1) !important; }
