:root {
    --body-max-width: 700px;

    --color-white: #ffffff; /* white */
    --color-white-a: #fffffff2; /* white  95%*/
    --color-dark-grey: #0e0000; /* dark grey */
    --color-blue: #000089; /* blue */
    --color-red: #890000; /* red */
    --color-grey: #a3a3a3; /* grey */
    --color-mid-grey: #6e6666; /* mid grey */

    --background-color: var(--color-white);
    --text-color: var(--color-dark-grey);
    --link-color: var(--color-blue);
    --central-border-color: var(--color-dark-grey);
    --image-border-color: var(--color-grey);
    --error-text-color: var(--color-red);
    --tagline-text-color: var(--color-red);
    --footer-color: var(--color-mid-grey);
    --form-background-color-a: var(--color-white-a);
    --form-border-color: var(--color-dark-grey);
}

/* reset */
body,div,h1,h2,h3,h4,h5,h6,form,input,p {  
    margin: 0; 
    padding: 0; 
} 
img {  
    border: 0; 
} 
h1,h2,h3,h4,h5,h6 { 
    font-size: 100%; 
    font-weight: normal; 
} 
/* end reset */

body {
    width: 100%;
    max-width: var(--body-max-width);
    margin: 0 auto;
    padding: 1px 0;
    background: var(--background-color);
    color: var(--text-color);
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    text-align: center;
}

a {
    color: var(--link-color);
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}

h1 {
    font-size: 32px;
    font-weight: bold;
}
h1.h404 {
    font-size: 64px;
    color: var(--error-text-color);
}
h3 { /* Portfolio etc. Could just use <p> */
    font-size: 14px;
}

p {
    margin: 0 0 15px 0;
}

.msg404 {
    margin: 15px auto 0 auto;
}
.msg404 a {
    color: var(--error-text-color);
}

/* === Main content === */

#main {
    overflow-y: auto;
}

/* === Grid === */

#grid-container {
    display: grid;
    justify-content: center;
    margin: 5% auto 5% auto;
    text-align: left;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 2fr auto 2% auto;
    /* grid-gap: 1rem; */
    grid-template-areas:
        "banner banner"
        "cjc-description cjc-links"
        "spacer spacer"
        "sc-description sc-links";
}

#banner {
    grid-area: banner;
    margin: auto auto 5% auto;
}
#banner img {
    border: 1px inset solid var(--image-border-color);
}

#cjc-description {
    grid-area: cjc-description;
}

#cjc-links {
    grid-area: cjc-links;
}

#sc-description {
    grid-area: sc-description;
}

#sc-links {
    grid-area: sc-links;
}

.description {
    margin-right: 10px;
    text-align: right;
}

.links {
    border-left: 1px solid var(--central-border-color);
    text-align: left;
}

.spacer {
    grid-area: spacer;
}

.tagline {
    color: var(--tagline-text-color);
}

img.icon {
    float: left;
    margin: auto 10px;
    height: 32px;
    width: 32px;
}

/* === Footer === */

span.left {
    float: left;
    text-align: left;
}
span.centre {
    text-align: center;
}

span.right {
    float: right;
    text-align: right;
}

#footer {
    border-top: 1px solid var(--footer-color);
    margin: 5% auto 2% auto;
    text-align: center;
    color: var(--footer-color);
}
#footer a {
    color: var(--footer-color);
}
#footer p {
    margin: 0;
}

.overlay {
    height: 80%;
    max-height: 700px;
    width: 100%;
    /* 22px = 10px margin-left, 1px border, 1px border, 10px margin-right */
    max-width: calc(var(--body-max-width) - 22px);
    margin-left: 10px;
    display: none;
    position: fixed;
    z-index: 1;
    top: 10%;
    overflow-y: scroll;
    scrollbar-width: none;
    background-color: var(--form-background-color-a);
    border: 1px solid var(--form-border-color);
}

.overlay::-webkit-scrollbar {
    display: none;
}

.overlay .title {
    height: 5%;
    width: 100%;
    font-size: 150%;
    text-align: center;
    margin-bottom: 5%;
}

.overlay .closebtn {
    position: absolute;
    top: 1%;
    right: 1.5%;
    font-size: 150%;
    color: var(--form-border-color);
}

.overlay .closebtn:hover {
    color: var(--error-text-color);
    text-decoration: none;
}

@media (max-width: 800px) {
    #grid-container {
        grid-template-columns: 1fr;
        grid-template-rows: 2fr auto auto 2% auto auto;
        grid-template-areas:
            "banner"
            "cjc-description"
            "cjc-links"
            "spacer"
            "sc-description"
            "sc-links";
    }
    .description {
        text-align: center;
    }
    .links {
        text-align: left;
        border-left: none;
        margin-top: 1rem;
    }
    .contact {
        width: 200px;
        margin-left: auto;
        margin-right: auto;
    }
    #footer {
        width: 100%;
    }
    .overlay {
        width: 80%;
        left: 10%;
    }
    .overlay .closebtn {
        right: 4%;
    }
}

@media (max-width: 500px) {
    #footer span.right {
        display: none;
    }
}
