Properly separated column layout, so width, padding and colouring can be separated from table cells.
Key is to apply colour classes to .g-col-x rather than .g-content
Need .g-row (or any other block element) to force a new row, although you don't need any CSS here. Could apply display: table-row to maintain table style semantics.
A Pen by Leon Paternoster on CodePen.