/* General semantic html stuff */
body, header, main, footer, div, nav, section, img, p {
    display: flex;
}
* {
    font-family: 'Trebuchet MS', sans-serif;
    font-size: 1.25rem;
    line-height: 1.5rem;
}
strong {
    font-weight: bold;
}
p {
    margin-block: .25rem;
}
body {
    flex-direction: column;
    margin: 0;
    overflow-y: scroll;
}

/* Page headings */
header {
    margin-bottom: 3rem;
    background-color: #97d9e9;
    box-shadow: 2px 3px 3px #416f7b;
}
    .header-content {
        flex-direction: row;
        align-items: center;
        padding: 1.5rem max(8rem, calc((100% - 105rem)/2)) 1rem max(8rem, calc((100% - 105rem)/2));
    }
    #title {
        flex-direction: column;
        align-items: center;
        padding: 0;
        color: #ffffff;
        text-shadow: 1px 1px 2px #000000;
    }
    #title p {
        margin: 1rem 0 0 0;
        font-weight: bold;
        font-size: 1.5rem;
        text-wrap: nowrap;
    }
    #nav-bar {
        padding: 0;
        align-items: center;
        justify-content: flex-start;
        flex-grow: 1;
    }
    nav {
        padding-left: 3rem;
        width: 100%;
    }
    .spacer {
        border: 2px groove;
    }
    nav a {
        padding-inline: 1.5rem;
        font-size: 1.75rem;
        line-height: 2.75rem;
        text-shadow: 1px 1px 1px #000000;
        text-decoration: none;
    }
    nav a:any-link {
        color: #ffffff;
    }
    nav a:hover {
        color: #909090;
        text-decoration: underline;
    }

/* Page footings */
footer {
    margin: 10rem 0 1rem 2rem;
}

/* Main content */
main {
    flex-direction: row;
    padding-inline: max(8rem, calc((100% - 100rem)/2));
}
    .sidebar {
        padding-right: 1rem;
    }

    .main-content-title {
        padding: 1rem;
        margin-bottom: 2rem;
        border-radius: 3px;
        background-color: #0f7ab4;
        box-shadow: 2px 3px 3px #023f60;
    }
    .main-content-title > strong {
        font-size: 2rem;
        line-height: 2.5rem;
        color: #ffffff;
        text-shadow: 1px 1px 2px #000000;
    }

    .content {
        flex-direction: column;
        flex-grow: 1;
        flex-shrink: 3;
    }
        .content a {
            text-decoration: none;
        }
        .content a:any-link {
            color: #0f7ab4;
        }
        .content a:active {
            color: #000000;
        }
        .content a:hover {
            color: #022d45;
            text-decoration: underline;
        }

/* Smaller screen adjustments */
@media (max-width: 1555px) {
    * {
        font-size: 1rem;
    }
    body {
        width: 100%;
    }
    header{
        display: block;
    }
    main {
        padding-inline: 3rem;
    }
    .header-content {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding-block: 1rem;
        padding-inline: 3rem;
    }
    #nav-bar {
        padding-top: 1rem;
    }
    nav {
        padding: 0;
    }
    nav a {
        padding-inline: 1.25rem;
        font-size: 1.5rem;
        line-height: 2.5rem;
        text-shadow: 1px 1px 1px #000000;
        text-decoration: none;
    }
}