/* ============================================
   Utility Classes
   ============================================ */

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

/* === Display === */
.d-none       { display: none; }
.d-block      { display: block; }
.d-flex       { display: flex; }
.d-grid       { display: grid; }
.d-inline     { display: inline; }
.d-inline-flex { display: inline-flex; }

/* === Margin Utilities === */
.mt-0  { margin-top: 0; }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mt-2xl { margin-top: var(--space-2xl); }
.mt-3xl { margin-top: var(--space-3xl); }

.mb-0  { margin-bottom: 0; }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }
.mb-2xl { margin-bottom: var(--space-2xl); }
.mb-3xl { margin-bottom: var(--space-3xl); }

.mx-auto { margin-left: auto; margin-right: auto; }

/* === Padding Utilities === */
.pt-0  { padding-top: 0; }
.pb-0  { padding-bottom: 0; }

/* === Width === */
.w-100 { width: 100%; }
.max-w-narrow { max-width: var(--container-narrow); }
.max-w-default { max-width: var(--container-max); }

/* === 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;
}

/* === Object Fit === */
.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.img-contain {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* === Border === */
.border-gold {
  border: 1px solid var(--color-border-gold);
}

.border-light {
  border: 1px solid var(--color-border-light);
}

/* === Rounded === */
.rounded     { border-radius: var(--radius-md); }
.rounded-lg  { border-radius: var(--radius-lg); }
.rounded-xl  { border-radius: var(--radius-xl); }
.rounded-pill { border-radius: var(--radius-pill); }
.rounded-circle { border-radius: var(--radius-circle); }

/* === Opacity === */
.opacity-50 { opacity: 0.5; }
.opacity-75 { opacity: 0.75; }

/* === Position === */
.relative { position: relative; }
.absolute { position: absolute; }

/* === Overflow === */
.overflow-hidden { overflow: hidden; }

/* === Font Weight === */
.fw-light    { font-weight: var(--fw-light); }
.fw-regular  { font-weight: var(--fw-regular); }
.fw-medium   { font-weight: var(--fw-medium); }
.fw-semibold { font-weight: var(--fw-semibold); }
.fw-bold     { font-weight: var(--fw-bold); }

/* === Color === */
.color-gold    { color: var(--color-champagne-gold); }
.color-pink    { color: var(--color-pudra-pink); }
.color-muted   { color: var(--color-text-muted); }

/* === Background === */
.bg-white      { background-color: var(--color-bg-white); }
.bg-warm       { background-color: var(--color-bg-warm); }
.bg-alt        { background-color: var(--color-bg-section-alt); }
