
/* generic */

/* html and body*/
html, body {
    top: 0; right: 0; bottom: 0; left: 0;
    margin: 0; padding: 0;
    font-size: 16px;
}

/* fonts and text */
a {
    text-decoration: none;
}

/* default screen size is mobile at 400px wide
   media queries at bottom of file, screen size
   increases, with some adjustments for screen
   size smaller than 400px */

/* header */

/* header general */
header, .header-content, .logo-name a, .name,
.navigator, .contact {
    display: flex;
    justify-content: center;
    align-items: center;
}
.header-content, .name, .contact {
    flex-direction: column;
}
header {
    left: 0; right: 0; top: 0;
    margin: 0; padding: 0;
    height: 11rem;
    width: 100%;
    z-index: 10;
    position: fixed;
    background-color: #f5efe2;
    border-bottom: 0.5rem solid #33593c;
    font-family: 'Lexend', serif;
}
/* logo and name */
.logo-text img {
    height: 5rem;
    margin-top: 0.5rem;
}
/* navigator */
.navigator a {
    font-size: 1.25rem;
    color: #f5efe2;
    text-transform: uppercase;
    background-color: #297b40;
    border: 0.125rem solid #33593c;
    border-radius: 0.4rem;
    margin: 0.25rem;
    padding: 0.3rem;
}
.navigator a:hover {
    background-color: #805a40;
}
#here {
    color: #33593c;
    background-color: transparent;
}
#here:hover {
    cursor: default;
}
/* contact */
.contact {
    flex-direction: row;
    column-gap: 1.5rem;
    margin: 0.75rem;
}
.contact a {
    margin: 0; padding: 0;
    font-size: 1rem;
    color: #33593c;
    text-transform: lowercase;
}

/* generic main */
main {
    top: 11rem;
    position: absolute;
}
main img {
    height: 16rem;
    width: auto;
}
h2, h3, p {
    font-family: 'Lexend', Arial, Helvetica, sans-serif;
    color: #33593c;
}
h2 {
    font-size: 1.5rem;
}
h3 {
    font-size: 1.25rem;
}
p {
    font-size: 1rem;
}
.home, .about, .portfolio, .testimonials {
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* generic content blocks */
.home-content, .about-content, .portfolio-content, 
.testimonials-content {
    padding: 0.5rem;
}
.about-content, .portfolio-images, .quote-block {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
}

/* about */
.about-image, .cv, .background {
    padding: 0.75rem;
    max-width: 24rem;
    text-align: center;
}

/* portfolio */
.portfolio-content {
    display: flex;
    flex-direction: column;
}
.portfolio-img {
    margin: 0.5rem 1rem;
}
.portfolio-img p {
    max-width: 20rem;
}
/* testimonials */
.quote, .trustpilot {
    margin: 1.5rem 1rem;
    padding: 1rem;
    border: 0.25rem solid black;
    border-radius: 0.25rem;
}
.trustpilot {
    background-color: #f5efe2;
}
.trustpilot img {
    margin: 0; padding: 0;
    height: 4rem;
}


/* larger when whole lot can go horizontal */
@media only screen and (min-width: 1050px) {
    header {height: 9.5rem;}
    .header-content {
        flex-direction: row;
        justify-content: space-around;
        align-items: center;
    }
    .logo-text img {
        height: 6.5rem;
    }
    .navigator {
        flex-direction: column;
        align-items: flex-start;
        margin: 1rem;
    }
    .navigator a {
        margin: 0.25rem 0.5rem;
        font-size: 1.35rem;
        align-self: stretch;
        text-align: center;
    }
    .contact {flex-direction: column;}
    .contact a {padding: 0.5rem;}
    main { top: 9.5rem;}
    .home, .about, .portfolio, .testimonials {
        width: 95%;
        margin: 0 0.5rem;
        text-align: left;
        align-items: baseline;
    }
    .about-content, .portfolio-content, .testimonials-content {
        justify-content: left;
        align-items: baseline;
    }
    .about-image, .cv, .background, .portfolio-images {text-align: left;}
    h2 {font-size: 1.75rem;}
    p {font-size: 1.25rem;}
}
@media only screen and (min-width: 1450px) {
    header {height: 9rem;}
    .logo-text img {height: 8rem;}
    .navigator {flex-direction: row;}
    .navigator a {font-size: 1.5rem;}
    .contact a {font-size: 1.25rem}
    main {top: 9rem;}
}
@media only screen and (min-width: 1700px) {
    header {height: 11rem;}
    .logo-text img {height: 10rem;}
    .navigator a {font-size: 2.1rem;}
    .contact a {font-size: 1.5rem;}
    main {top: 11rem;}
}

/* smaller than default */
@media only screen and (max-width: 399px) {
    header {height: 10rem;}
    #main-name {font-size: 1.5rem;}
    #sub-name {font-size: 1.2rem;}
    .logo img {height: 2.5rem;}
    .navigator a {font-size: 0.8rem;}
    .contact a {font-size: 0.8rem;}
    main {top: 10rem;}
    main img {height: 12rem;}
    h2 {font-size: 1.1rem;}
    h3 {font-size: 0.9rem;}
    p {font-size: 0.8rem;}
}