/* ============================================
   Utilities
   ============================================ */

/* Text alignment */
.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

/* Font sizes */
.text-sm   { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg   { font-size: var(--text-lg); }

/* Font weight */
.font-semibold { font-weight: 600; }

/* Colors */
.text-primary   { color: var(--color-primary); }
.text-secondary { color: var(--color-neutral-600); }
.text-muted     { color: var(--color-neutral-700); }

/* Spacing */
.mt-0  { margin-top: 0; }
.mt-2  { margin-top: var(--space-2); }
.mt-3  { margin-top: var(--space-3); }
.mt-4  { margin-top: var(--space-4); }
.mt-5  { margin-top: var(--space-5); }
.mt-6  { margin-top: var(--space-6); }
.mt-7  { margin-top: var(--space-7); }

.mb-0  { margin-bottom: 0; }
.mb-2  { margin-bottom: var(--space-2); }
.mb-3  { margin-bottom: var(--space-3); }
.mb-4  { margin-bottom: var(--space-4); }
.mb-5  { margin-bottom: var(--space-5); }
.mb-6  { margin-bottom: var(--space-6); }

/* Visibility */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Display */
.hidden      { display: none !important; }
.block       { display: block; }
.inline-block { display: inline-block; }
.flex        { display: flex; }
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Responsive visibility */
@media (max-width: 1023px) {
  .hide-mobile { display: none !important; }
}

@media (min-width: 1024px) {
  .hide-desktop { display: none !important; }
}
