:root {
    --header-background-colour: #8accc3;
    --header-foreground-colour: #eee;
    --nav-background-colour: #eee;
    --nav-active-background-colour: #ddd;
    --nav-foreground-colour: #111;
    --footer-background-colour: #bbb;
    --footer-foreground-colour: #111;
    --background-colour: #fff;
    --section-background-colour: #ddd;
    --foreground-colour: #111;
    --padding: 10vw
}

@media (prefers-color-scheme: dark) {
    :root {
        --header-background-colour: #008282;
        --header-foreground-colour: #eee;
        --footer-background-colour: #444;
        --footer-foreground-colour: #bcbcbc;
        --background-colour: #111;
        --section-background-colour: #222;
        --foreground-colour: #eee;
        --nav-background-colour: #222;
        --nav-active-background-colour: #333;
        --nav-foreground-colour: #eee;
    }
}

html {
    background-color: var(--background-colour);
    color: var(--foreground-colour);
    font-family: Arial, Helvetica, sans-serif;
    color-scheme: light dark;
}

body {
    margin: 0;
    margin-bottom: 4em;
    margin-top: 8em;
}

header {
    width: 100vw;
    position: fixed;
    left: 0;
    top: 0;
}

#header {
    text-shadow: #545454 0 0 0.1em;
    background-color: var(--header-background-colour);
    font-weight: 700;
    font-size: 2em;
    min-height: 2.5em;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--header-foreground-colour);
    gap: 0.25em;
}

#header img {
    max-height: 1.5em;
    aspect-ratio: 1;
}

nav#full-width-nav {
    background-color: var(--nav-background-colour);
    color: var(--nav-foreground-colour);
    height: 2em;
    display: flex;
}

nav#full-width-nav .nav-item.active {
    background-color: var(--nav-active-background-colour);
}

.nav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5em;
    position: relative;
}

.nav-item a {
    text-decoration: none;
    color: var(--nav-foreground-colour);
}

.nav-list {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10000;
}

.nav-item:hover .nav-list {
    display: block;
    margin: 0;
    padding: 0.1em;
    background-color: var(--nav-background-colour);
    color: var(--nav-foreground-colour);
    list-style: none;
    box-shadow: 0 0 0.5em #111;
}

.nav-list > li > a {
    padding: 0.5em;
    box-sizing: border-box;
    display: block;
}

footer {
    background-color: var(--footer-background-colour);
    color: var(--footer-foreground-colour);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    height: 3em;
    width: 100%;
    position: fixed;
    left: 0;
    bottom: 0;
    text-align: center;
}

h1,
p {
    margin: 0.5em 0;
}

h1 {
    font-size: 1.5em;
}

section.content-item {
    background-color: var(--section-background-colour);
    border-radius: 1em;
    padding: 0.5em 1em;
}

main {
    margin: 1em;
}

.hidden {
    display: none !important;
}

main,
nav#full-width-nav {
    padding: 0 var(--padding);
}

#reduced-width-nav {
    display: none;
    background-color: var(--nav-background-colour);
    color: var(--nav-foreground-colour);
    height: 2em;
}

nav#reduced-width-nav button {
    background-color: unset;
    font: inherit;
    margin: 0;
    padding: 0;
    border: 0;
    width: 100%;
    height: 100%;
}

.rw-nav-item {
    width: 100%;
}

#rw-nav-items button, #rw-nav-items .button {
    text-decoration: none;
    color: inherit;
    font: inherit;
    display: block;
    margin: 0;
    padding: 0.5em 2em;
    border: 0;
    width: 100%;
    height: 100%;
    text-align: left;
    border: 1px solid var(--background-colour);
    border-width: 1px 0;
}

#rw-nav-items {
    font-size: 1.25em;
    position: fixed;
    top: 0;
    left: 0;
    min-height: 100vh;
    width: 100vw;
    background-color: #00000022;
    backdrop-filter: blur(4px);
    z-index: 100
}

#rw-nav-items button, #rw-nav-items .button, #rw-nav-items li {
    background-color: var(--nav-background-colour)
}

#rw-nav-items button:hover ,  #rw-nav-items .button:hover, #rw-nav-items li:hover{
    background-color: var(--nav-active-background-colour)
}

.rw-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rw-nav-list li {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
}

.rw-nav-list li a {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 0.5em 2em;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
}

@media (min-width: 58em) {
    #rw-nav-items{
        display: none;
    }
}

@media (max-width: 58em) {
    :root {
        --padding:0.5em;
    }
    nav#full-width-nav {
        display: none;
    }
    #reduced-width-nav{
        display: block;
    }
}