CSS should not modify paddings and margins as much
concrete.css might not be adhering to the standard ways of handling paddings and margins that users would expect.
See https://news.ycombinator.com/item?id=39301877
What works really well is the owl selector for applying space between children, so article * + * { ... }. You could apply it recursively too, by doing article section + section to now style the space between sections without making a single section have whitespace around it. I use the word "around" liberal here, but the top padding that each section currently has would effectively act as whitespace aorund it.
If you want to selectively style things based on the presence of certain elements then has can be quite effectivey but its support is not yet perfect.
(I'm the commenter you linked to)