Gap engine — verification
The row engine now uses a real gap, with each column subtracting its own share of the gutter (P% − gap × (1−P)). These are the cases that decide whether it is correct. Amber = real empty space.
1 · Cards actually separate
The whole reason for the change. Backgrounds and borders on the column itself now read as distinct cards.
2 · col-1-1 claims its own line (regression test)
The zero-basis prototype failed this — two full-width columns sat side by side. This is the most common Contao article shape, so it must stack.
3 · Six thirds wrap to two lines (regression test)
The prototype crammed all six onto one line at 166px each. Natural flex-wrap must survive.
4 · Five quarters wrap 4 + 1 (regression test)
5 · Under-filled row stays ragged (regression test)
Two thirds should occupy two thirds and leave the last third empty — not stretch to fill it. The prototype stretched them.
6 · Mixed ratios keep their proportions
7 · Gap utilities still work
8 · Responsive — narrow the window
Below 992px: equal fractions stack, mixed pairs equalize to 50/50, four-up goes 2-up. Below 600px everything stacks.