:root { --header-colour: #00000031; --main-colour: #393e41; --footer-colour: #00000031; --text-colour: #f6f7eb; --text-accent-colour: #e94f37; --header-size: 100px; } html, body { width: 100%; height: 100%; margin: 0; } body { color: var(--text-colour); font-family: sans-serif; display: flex; flex-flow: column; background-color: var(--main-colour); } header main footer { width: 100%; } header { position: fixed; top: 0; background-color: var(--header-colour); } /* Required to set the width and height of the header, as `fixed` elements can't have their size set. */ header > div { width: 100vw; height: var(--header-size); } main { flex: 1 1 auto; margin-top: var(--header-size); text-align: center; background-color: var(--main-colour); } footer { flex: 0 1 auto; display: flex; padding: 20px 0 20px 0; background-color: var(--footer-colour); } footer > div { width: 50%; height: fit-content; margin: auto 0 auto 0; text-align: center; } footer > div > * { margin: 0 auto 0 auto; } /* Used to make text appear to the right of an image */ .imgRightText { display: flex; width: fit-content; } .imgRightText > img { height: 100%; margin-right: 5px; } .imgRightText > p { margin: auto; }