/* ========================================
   UTILITIES CSS - Serrurerie Pro
   Classes utilitaires
   ======================================== */

/* Espacement */
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }

.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }

.pt-sm { padding-top: var(--spacing-sm); }
.pt-md { padding-top: var(--spacing-md); }
.pt-lg { padding-top: var(--spacing-lg); }

.pb-sm { padding-bottom: var(--spacing-sm); }
.pb-md { padding-bottom: var(--spacing-md); }
.pb-lg { padding-bottom: var(--spacing-lg); }

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

.text-uppercase { text-transform: uppercase; }
.text-bold { font-weight: 700; }
.text-normal { font-weight: 400; }

/* Couleurs de texte */
.text-primary { color: var(--primary); }
.text-accent { color: var(--accent); }
.text-secondary { color: var(--secondary); }
.text-light { color: var(--text-light); }
.text-dim { color: var(--text-dim); }
.text-success { color: var(--success); }
.text-alert { color: var(--alert); }

/* Affichage */
.d-block { display: block; }
.d-inline { display: inline; }
.d-inline-block { display: inline-block; }
.d-flex { display: flex; }
.d-none { display: none; }

/* Flexbox */
.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }

.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.align-center { align-items: center; }

.gap-sm { gap: var(--spacing-sm); }
.gap-md { gap: var(--spacing-md); }
.gap-lg { gap: var(--spacing-lg); }

/* Largeurs */
.w-full { width: 100%; }
.w-50 { width: 50%; }

.max-w-sm { max-width: 400px; }
.max-w-md { max-width: 600px; }
.max-w-lg { max-width: 800px; }

/* Bordures */
.rounded-sm { border-radius: var(--radius-sm); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-full { border-radius: 9999px; }

/* Ombres */
.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }

/* Backgrounds */
.bg-primary { background-color: var(--primary); }
.bg-accent { background-color: var(--accent); }
.bg-light { background-color: var(--bg); }
.bg-card { background-color: var(--bg-card); }

/* Visibilité responsive */
@media (max-width: 768px) {
    .hide-mobile { display: none; }
    .show-mobile { display: block; }
}

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