body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1;
    /* Breathing room before the footer on every page,
       so content never butts directly against it. */
    padding-bottom: 2rem;
}
