* {
    font-family: 'Atkinson Hyperlegible', sans-serif;
    margin: 0;
}

h1 {font-size: 48px;}
h2 {font-size: 36px;}
h3 {font-size: 28px;}
h4 {font-size: 20px;}
h6 {display: none;}
p, pre {font-size: 16px;}

h1, h2, h3, h4, h5, h6, p, li, pre {
    font-weight: 400;
    line-height: 1.1;
}

body {
    background: #F7F7F7;
    display: grid;
    grid-template-columns: auto 85vw auto;
}




/* -----------------------------> RESUABLE CLASSES  */

.section-divider {
    margin-top: 7vh;
    grid-column: 2;
    width: 100%;
    text-align: center;
}

/* -----------------------------> HEADER */

.header {
    grid-column: 2;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
    margin-top: 30vh;
    text-align: center;

}

.header img {
    width: 200px;
    height: 200px;
    border-radius: 15px;
}

.header h1 {
    color: #1C1C1C;
    font-size: 3em;
    height: auto;
    width: 100%;
    margin-top: 2vh;
}

/* -----------------------------> DESCRIPTIONS */


.descriptions {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    margin-top: 25vh;
    margin-bottom: 18vh;
}

.descriptions * {
    width: 35vw;
}

.pro h1, .unpro h1 {
    font-size: 1.5em;
    padding: 10px;
    border: 10px solid black;
}

.pro h4, .unpro h4 {
    border-left: 10px solid black;
    border-right: 10px solid black;
    border-bottom: 10px solid black;
    font-weight: 600;
    min-height: 70px;
    padding: 10px;
}

.pro h1 {
    color: white;
    border-color: #1C1C1C;
    background-color: #1C1C1C;
}

.unpro h1 {
    color: #1C1C1C;
    border-color: #CCCCCC;
    background-color: #CCCCCC;
    text-align: right;
}

.pro h4 {
    color: #1C1C1C;
    border-color: #1C1C1C;
}

.unpro h4 {
    color: #1C1C1C;
    border-color: #CCCCCC;
    text-align: right;
}


/* -----------------------------> PRODUCTS & LINKS */

.products, .links {
    grid-column: 2;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 7vh;
}

.products a {
    background-color: #1C1C1C;
    color: white;
    border: 1px solid white;
}

.links a {
    background-color: white;
    color: #1C1C1C;
    border: 1px solid #1C1C1C;
}

.products a, .links a {
    appearance: none;   
    border-radius: 10px;
    box-shadow: rgba(45, 35, 66, 0.4) 0 2px 4px,rgba(45, 35, 66, 0.3) 0 7px 13px -3px;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    text-decoration: none;
    transition: box-shadow .15s,transform .15s;
    touch-action: manipulation;
    width: 75vw;
    will-change: box-shadow,transform;
    margin-top: 15px;
    padding: 5px;
}

.products a img, .links a img {
    width: 72px;
    height: 72px;
    border-radius: 7px;
}

.products a p, .links a p {
    font-size: 1.5em;
}

.products a span, .links a span {
    width: 72px;
}

.products a:focus {
    box-shadow: #D6D6E7 0 0 0 1.5px inset, rgba(45, 35, 66, 0.4) 0 2px 4px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, white 0 -3px 0 inset;
}
  
.products a:hover {
    box-shadow: rgba(45, 35, 66, 0.4) 0 4px 8px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, white 0 -3px 0 inset;
    transform: translateY(-2px);
}

.links a:focus {
    box-shadow: #D6D6E7 0 0 0 1.5px inset, rgba(45, 35, 66, 0.4) 0 2px 4px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, #1C1C1C 0 -3px 0 inset;
}

.links a:hover {
    box-shadow: rgba(45, 35, 66, 0.4) 0 4px 8px, rgba(45, 35, 66, 0.3) 0 7px 13px -3px, #1C1C1C 0 -3px 0 inset;
    transform: translateY(-2px);
}
  
.products a:active, .links a:active {
    box-shadow: #D6D6E7 0 3px 7px inset;
    transform: translateY(2px);
}



/* -----------------------------> QUOTES */

.quotes {
    grid-column: 2;
    margin-top: 7vh;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.quote-box {
    border: 1px solid #48698A;
    margin-bottom: 15px;
    width: 71vw;
    padding: 2vw;
    text-align: left;
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    align-items: center;
    background-color: #FFFFFF;
    box-shadow: rgba(45, 35, 66, 0.4) 0 2px 4px,rgba(45, 35, 66, 0.3) 0 7px 13px -3px;
}

.quote-box img {
    width: 60px;
    height: 60px;
}

.quote-box blockquote {
    padding: 0;
    margin-left: 1vw;
    width: 60vw;
}

.quote-box blockquote p {
    margin: 0;
    padding: 0;
    font-family: "Old Standard TT";
    font-style: italic;
    font-size: 24px;
    color: #48698A;
}

.quote-box h4 {
    font-size: 14px;
    text-align: right;
    width: 75vw;
    font-weight: 800;
    margin-top: -25px;
}

.quote-box p {
    margin-top: 15px;
    line-height: 1.4;
    font-family: "Old Standard TT";
}

hr {
    width: 30px;
}


/* -----------------------------> CONTACT */

.contact {
    grid-column: 2;
    margin-top: 10vh;
}

/* -----------------------------> FOOTER */

footer {
    grid-column: 2;
    margin-top: 25vh;
    margin-bottom: 10vh;
}

footer div {
    border-top: 1px solid #3b3939;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

footer p {
    margin-top: 15px;
}




@media only screen and (max-width: 950px) {

    .grid {
        grid-template-columns: 2vw auto 2vw;
    }

    .descriptions {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        flex-direction: column;
        align-items: center;
        display: flex;
    }

    .descriptions * {
        width: 99%;
    }

    .pro, .unpro {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .unpro {
        margin-top: 2vh;
    }

    .pro h1, .unpro h1 {
        text-align: center;
    }
    
    .pro h4, .unpro h4 {
        text-align: center;
        font-weight: 400;
        min-height: 40px;
    }

    .products a, .links a {
        width: 100%;
    }

    .products a img, .links a img {
        width: 50px;
        height: 50px;
    }

    .products a p, .links a p {
        font-size: 1.1em;
        text-align: center;
        padding: 12px 8px;
    }

    .quote-box {
        padding: 10px;
        width: 100%;
    }

    .quote-box blockquote {
        margin-top: 10px;
    }

    .quote-box img {
        display: none;
    }
}