/* ══════════════════════════════════════════════
   DEMO LIFESTYLE — Utilities
   ══════════════════════════════════════════════ */

.text-center { text-align: center; }
.text-right { text-align: right; }
.text-left { text-align: left; }
.text-gold { color: var(--gold); }
.text-grey { color: var(--grey); }
.text-success { color: var(--success); }
.text-danger { color: var(--danger); }
.text-warning { color: var(--warning); }
.text-white { color: var(--white); }
.text-sm { font-size: 13px; }
.text-xs { font-size: 11px; }
.text-lg { font-size: 18px; }
.text-xl { font-size: 24px; }
.text-bold { font-weight: 700; }
.text-semibold { font-weight: 600; }
.text-uppercase { text-transform: uppercase; letter-spacing: 0.05em; }
.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.font-ui { font-family: var(--font-ui); }

.mt-xs { margin-top: var(--space-xs); }
.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); }
.mb-xs { margin-bottom: var(--space-xs); }
.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); }
.mr-sm { margin-right: var(--space-sm); }
.mr-md { margin-right: var(--space-md); }
.ml-auto { margin-left: auto; }
.p-md { padding: var(--space-md); }
.p-lg { padding: var(--space-lg); }
.p-xl { padding: var(--space-xl); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }
.gap-xl { gap: var(--space-xl); }

.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.w-full { width: 100%; }
.w-auto { width: auto; }

.divider { height: 1px; background: var(--light); margin: var(--space-lg) 0; }
.cursor-pointer { cursor: pointer; }

.fade-in { animation: fadeIn 0.3s ease; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.slide-in { animation: slideIn 0.3s ease; }
@keyframes slideIn {
  from { opacity: 0; transform: translateX(-16px); }
  to { opacity: 1; transform: translateX(0); }
}
