Main Content Section
Give each region a name, then draw the layout as a map.
Each element gets a grid-area name. The wrapper's grid-template-areas then arranges those names in rows, so the layout lives in one place and is easy to change.
"header header header"
"left main right"
"footer footer footer"