/* ---------- Base ---------- */
.flex, .d-flex { display: flex; }
.inline-flex { display: inline-flex; }

/* Directions */
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-column { flex-direction: column; }
.flex-column-reverse { flex-direction: column-reverse; }

/* Wrap */
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }

/* Justify (main axis) */
.justify-start { justify-content: flex-start; }
.justify-end { justify-content: flex-end; }
.justify-center, .flex-center { justify-content: center; } /* .flex-center = centré horizontalement */
.justify-between { justify-content: space-between; }
.justify-around { justify-content: space-around; }
.justify-evenly { justify-content: space-evenly; }

/* Align (cross axis) */
.align-start { align-items: flex-start; }
.align-end { align-items: flex-end; }
.align-center, .align-middle { align-items: center; } /* .align-center = centré verticalement */
.align-stretch { align-items: stretch; }
.align-baseline { align-items: baseline; }

/* Align-self (pour un élément) */
.self-start { align-self: flex-start; }
.self-end { align-self: flex-end; }
.self-center { align-self: center; }
.self-stretch { align-self: stretch; }
.self-baseline { align-self: baseline; }

/* Gap (espace entre éléments) - peut être adapté selon besoins */
.gap-0 { gap: 0; }
.gap-1 { gap: 0.25rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 1rem; }
.gap-4 { gap: 1.5rem; }
.gap-5 { gap: 3rem; }

/* Flex sizing */
.flex-grow-0 { flex-grow: 0; }
.flex-grow-1 { flex-grow: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-shrink-1 { flex-shrink: 1; }

/* Base flex-basis helpers */
.flex-auto { flex: 1 1 auto; }
.flex-fill { flex: 1 1 0%; }

/* Orders (quelques utilitaires) */
.order-0 { order: 0; }
.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }
.order-first { order: -1; }
.order-last { order: 9999; }

/* Taille et centrage pratique (conteneur centré vertical+horizontal) */
.center-xy { display: flex; justify-content: center; align-items: center; }

/* Helpers utilitaires */
.flex-column-center { display:flex; flex-direction:column; justify-content:center; align-items:center; }

/* Responsive examples (mobile-first) */
/* XS: default; pour md+ (>=768px) on change */
@media (min-width: 576px) {
  /* classes md-... si tu veux décliner */
  .md-flex-row { flex-direction: row; }
  .md-justify-center { justify-content: center; }
}

.border-test {
  border : solid red 1Px;
}
