/* Utilities: grid (u-namespace). Add-only; not referenced on accueil by default. */

.u-grid {
    display: grid;
}

.u-grid--gap-1 { gap: 0.5rem; }
.u-grid--gap-2 { gap: 1rem; }
.u-grid--gap-3 { gap: 1.5rem; }
.u-grid--gap-4 { gap: 2rem; }

.u-grid--cols-1 { grid-template-columns: 1fr; }
.u-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.u-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.u-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 1024px) {
    .u-grid--cols-md-1 { grid-template-columns: 1fr; }
    .u-grid--cols-md-2 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .u-grid--cols-sm-1 { grid-template-columns: 1fr; }
.u-grid--cols-sm-2 { grid-template-columns: repeat(2, 1fr); }
}

/* Unified cards grid: 4 columns desktop, 2 columns <=1023px */
.u-grid-4-then-2 {
    display: grid;
    gap: var(--grid-gap, 16px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1023px) {
    .u-grid-4-then-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
