This page uses a grid container that fills at least 100vh. The top and bottom rows are set to auto (the default). These rows will adapt to whatever content you place in the header and footer.

The middle row is set to 1fr, which expands the middle to fill any extra space if the content is shorter than 100vh total.