/* =============================================================================
   RESPONSIVE GRID COMPONENT
   Dynamic CSS grid driven by GridColumns per-breakpoint configuration.
   ============================================================================= */

/* Base grid wrapper */
.responsive-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr); /* Mobile-first default */
    width: 100%;
}

/* Cell wrapper */
.responsive-grid__cell {
    min-width: 0; /* Prevent grid blowout */
}

.responsive-grid__cell--stretch {
    display: flex;
    flex-direction: column;
}

.responsive-grid--align-stretch .responsive-grid__cell {
    display: flex;
    flex-direction: column;
}

/* --- Gap modifiers --- */

.responsive-grid--gap-none {
    gap: 0;
}

.responsive-grid--gap-small {
    gap: 16px;
}

.responsive-grid--gap-medium {
    gap: 24px;
}

.responsive-grid--gap-large {
    gap: 32px;
}

/* =============================================================================
   Mobile column counts (0–639px)
   Applied directly on the base class — no media query needed for mobile-first.
   Format: .responsive-grid--cols-{mobile}-{tablet}-{desktop}
   ============================================================================= */

.responsive-grid--cols-1-1-1,
.responsive-grid--cols-1-1-2,
.responsive-grid--cols-1-1-3,
.responsive-grid--cols-1-1-4,
.responsive-grid--cols-1-2-2,
.responsive-grid--cols-1-2-3,
.responsive-grid--cols-1-2-4,
.responsive-grid--cols-1-3-3,
.responsive-grid--cols-1-3-4 {
    grid-template-columns: repeat(1, 1fr);
}

.responsive-grid--cols-2-2-2,
.responsive-grid--cols-2-2-3,
.responsive-grid--cols-2-2-4,
.responsive-grid--cols-2-3-3,
.responsive-grid--cols-2-3-4,
.responsive-grid--cols-2-4-4 {
    grid-template-columns: repeat(2, 1fr);
}

.responsive-grid--cols-3-3-3,
.responsive-grid--cols-3-3-4,
.responsive-grid--cols-3-4-4 {
    grid-template-columns: repeat(3, 1fr);
}

/* =============================================================================
   Tablet column counts (640px–1023px)
   ============================================================================= */

@media screen and (min-width: 640px) {
    .responsive-grid--cols-1-1-1,
    .responsive-grid--cols-1-1-2,
    .responsive-grid--cols-1-1-3,
    .responsive-grid--cols-1-1-4 {
        grid-template-columns: repeat(1, 1fr);
    }

    .responsive-grid--cols-1-2-2,
    .responsive-grid--cols-1-2-3,
    .responsive-grid--cols-1-2-4,
    .responsive-grid--cols-2-2-2,
    .responsive-grid--cols-2-2-3,
    .responsive-grid--cols-2-2-4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .responsive-grid--cols-1-3-3,
    .responsive-grid--cols-1-3-4,
    .responsive-grid--cols-2-3-3,
    .responsive-grid--cols-2-3-4,
    .responsive-grid--cols-3-3-3,
    .responsive-grid--cols-3-3-4,
    .responsive-grid--cols-3-4-4 {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* =============================================================================
   Desktop column counts (1024px+)
   ============================================================================= */

@media screen and (min-width: 1024px) {
    .responsive-grid--cols-1-1-1,
    .responsive-grid--cols-1-2-1,
    .responsive-grid--cols-2-2-1 {
        grid-template-columns: repeat(1, 1fr);
    }

    .responsive-grid--cols-1-1-2,
    .responsive-grid--cols-1-2-2,
    .responsive-grid--cols-2-2-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .responsive-grid--cols-1-1-3,
    .responsive-grid--cols-1-2-3,
    .responsive-grid--cols-2-2-3,
    .responsive-grid--cols-1-3-3,
    .responsive-grid--cols-2-3-3,
    .responsive-grid--cols-3-3-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .responsive-grid--cols-1-1-4,
    .responsive-grid--cols-1-2-4,
    .responsive-grid--cols-2-2-4,
    .responsive-grid--cols-1-3-4,
    .responsive-grid--cols-2-3-4,
    .responsive-grid--cols-3-3-4,
    .responsive-grid--cols-2-4-4,
    .responsive-grid--cols-3-4-4 {
        grid-template-columns: repeat(4, 1fr);
    }
}