/* || VARIABLES  */

:root {
    --main-color-1: rgb(255, 255, 255);
    --main-color-2: rgb(0, 0, 0);
    --gradient-color-1: #451561;
    --gradient-color-2: #3ddd9a;
    --logo-thick: 'Young Serif', serif;
    --logo-thin: 'Noto Serif Display', serif;
    --nav-font: 'Catamaran', sans-serif;
    --button-font: 'Inter', sans-serif;
    --section-font: 'Noto Serif', serif;
    --main-font: 'Catamaran', sans-serif;
    --base-size: 11px;

    --logo-head-mobile-height: 50px;
    --logo-head-mobile-min-height: 40px;
    --menu-mobile-up-height: 5px;
    --menu-mobile-down-height: 335px;

    --logo-head-tablet-height: 60px;
    --logo-head-tablet-min-height: 45px;
    --menu-tablet-height: 36px;
    --menu-tablet-min-height: 0px;

    --logo-head-desktop-height: 80px;
    --logo-head-desktop-min-height: 50px;

    --menu-items-amination-timing: 500ms ease;

    --burger-bar-width: 35px;
    --burger-bar-height: 2px;
    --burger-gap: 7px;
    --burger-animation-timing: 200ms ease-in-out;
    --burger-height: calc(var(--burger-bar-height) * 3 + var(--burger-gap) * 2);

    --head-foot-basic-timing: 350ms ease;
    --nowledge-out-timing: 500ms ease;
    --nowledge-in-timing: 1250ms ease;

    --footer-mobile-height: 45px;
    --footer-tablet-height: 50px;
    --footer-desktop-height: 55px
}

/* || GENERAL STYLING */

html {
    font-family: var(--main-font);
    font-size: var(--base-size);
    background-color: var(--main-color-1);
    margin: 0;
    height: 100%;
}

body {
    background-color: var(--main-color-1);
    margin: 0;
    height: 100%;
    display: grid;
    grid-gap: 0;
    grid-template-columns: 1fr;
    grid-template-areas: "top" "main" "foot";
    grid-template-rows: auto 1fr auto;
}

h2 {
    font-family: var(--section-font);
    font-weight: 500;
}

p {
    font-family: var(--main-font);
    font-size: 1.75em;
    font-weight: 300;
    margin: 10px auto;
    text-align: left;
    letter-spacing: 0.01em;
}

.prior {
    font-family: var(--header-font);
}

/* || HEADER + NAVIGATION BAR */

nav {    
    position: fixed;
    width: 100%;
    top: 0; 
    z-index: 99;
    grid-area: top;
    display: grid;
    background: linear-gradient(45deg, var(--gradient-color-1) 50%, var(--gradient-color-2) 100%);
    box-shadow: 0 0 rgba(0,0,0,0);
    -moz-transition: all var(--head-foot-basic-timing); 
    -o-transition: all var(--head-foot-basic-timing); 
    transition: all var(--head-foot-basic-timing);
    -webkit-transition: all var(--head-foot-basic-timing);
}
.head-min {
    box-shadow: 0 5px 10px 5px rgba(0,0,0,.33);
}
.head-invisible {
    box-shadow: 0 0 rgba(0,0,0,0);
}

.logo-head {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: left;
    -moz-transition: all var(--head-foot-basic-timing); 
    -o-transition: all var(--head-foot-basic-timing); 
    transition: all var(--head-foot-basic-timing);
    -webkit-transition: all var(--head-foot-basic-timing);
}
.logo-head-pt3 {
    overflow: hidden;
    max-width: 500px;
    -moz-transition: max-width var(--nowledge-in-timing); 
    -o-transition: max-width var(--nowledge-in-timing); 
    transition: max-width var(--nowledge-in-timing);
    -webkit-transition: max-width var(--nowledge-in-timing);
}
.logo-head-pt3-min{
    max-width: 0;
    -moz-transition: max-width var(--nowledge-out-timing); 
    -o-transition: max-width var(--nowledge-out-timing); 
    transition: max-width var(--nowledge-out-timing);
    -webkit-transition: max-width var(--nowledge-out-timing);
}

.logo-head-text a {
    color: var(--main-color-1);
    text-decoration: none;
    margin: 0;
    -moz-transition: font-size var(--head-foot-basic-timing); 
    -o-transition: font-size var(--head-foot-basic-timing); 
    transition: font-size var(--head-foot-basic-timing);
    -webkit-transition: font-size var(--head-foot-basic-timing);
}
.logo-head-pt1 a {
    font-family: var(--logo-thick);
    font-weight: 900;
    letter-spacing: 0.03em;
}
.logo-head-pt2 a, .logo-head-pt3 a {
    font-family: var(--logo-thin);
    font-weight: 200;
    letter-spacing: 0.02em;
    font-style: italic;
}
.logo-head-pt4 a {
    font-family: var(--logo-thin);
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* || Hamburger menu */
.burger-menu {
    --x-width: calc(var(--burger-height) * 1.4142135623730950488016887242097);
    display: flex;
    flex-direction: column;
    gap: var(--burger-gap);
    width: max-content;
    cursor: pointer
}
.burger-menu::before,
.burger-menu::after,
.burger-menu span {
    content: "";
    width: var(--burger-bar-width);
    height: var(--burger-bar-height);
    background-color: var(--main-color-1);
    border-radius: 9999px;
    transform-origin: left center;
    -moz-transition: all var(--burger-animation-timing); 
    -o-transition: all var(--burger-animation-timing); 
    transition: all var(--burger-animation-timing);
    -webkit-transition: all var(--burger-animation-timing);
}
.burger-menu.close::before { 
    rotate: 45deg;
    width: var(--x-width);
    translate: 0 calc(var(--burger-bar-height) / -2);
}
.burger-menu.close::after { 
    rotate: -45deg;
    width: var(--x-width);
    translate: 0 calc(var(--burger-bar-height) / 2);
}
.burger-menu.close span{
    opacity: 0;
    width: 0;
}

.item a {
    display: block;
    text-decoration: none;
    font-family: var(--nav-font);
    font-weight: 300;
}

.socials-head {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
}
.socials-head-icon {
    text-align: center;
    text-decoration: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0);
}
.socials-head-icon:hover {
    cursor: pointer;
}

/* Mobile header */
.head-invisible {
    top: calc( -1 * (var(--logo-head-mobile-min-height) + var(--menu-mobile-up-height)));
}
.logo-head {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-flow: row wrap;
    justify-content: left;
    height: var(--logo-head-mobile-height);
    margin: auto;
    margin-left: 15px;
}
.logo-head-min {
    height: var(--logo-head-mobile-min-height);
    margin: auto;
    margin-left: 10px;
}
.logo-head-pt1 a {
    font-size: 3em;
}
.logo-head-pt2 a, .logo-head-pt3 a, .logo-head-pt4 a {
    font-size: 2.6em;
}
.logo-head-pt1-min a, .logo-head-pt2-min a, .logo-head-pt3-min a, .logo-head-pt4-min a {
    font-size: 2.25em;
}

/* Small screen logo-head settings */
@media all and (max-width: 355px) { 
    .logo-head-pt1 a, .logo-head-pt2 a, .logo-head-pt3 a, .logo-head-pt4 a {
        font-size: 2.5em;
    }
}
.toggle {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    margin: auto;
    margin-right: 20px;
    position: relative;
}
.menu {
    overflow: hidden;
    height: 0;
    grid-column: 1/3;
    grid-row: 2;
    margin-bottom: var(--menu-mobile-up-height);
    background-color: rgba(255, 255, 255, 0.9);
    -moz-transition: height var(--head-foot-basic-timing); 
    -o-transition: height var(--head-foot-basic-timing); 
    transition: height var(--head-foot-basic-timing);
    -webkit-transition: height var(--head-foot-basic-timing);
}
.menu.active {
    height: var(--menu-mobile-down-height); 
}
.menu ul {
    list-style-type: none;
    margin: 40px 20%;
}
.item {
    text-align: right;
    margin: 20px 0;
}
.item a {
    font-size: 2em;
    font-weight: 300;
    color: rgb(40, 40, 40);
}
.here a {
    font-weight: 500;
}
.here a::after {
    font-family: 'Material Icons';
    content: "chevron_left";
    font-size: 25px;
    -moz-font-feature-settings: 'liga' 1;
    font-feature-settings: 'liga' 1;
    -o-font-feature-settings: 'liga' 1;
    -webkit-font-feature-settings: 'liga' 1;
    position: relative;
    bottom: -3px;
    right: -10px;
    text-transform: none;  
}
.socials-head {
    justify-content: center;
    margin: 40px auto;
}
.socials-head-icon {
    color: black;
    margin: 0 4%;
    font-size: 25px;
}

/* Tablet header */
@media all and (min-width: 600px) {
    .head-invisible {
        top: calc(-1 * var(--logo-head-tablet-min-height));
    }
    .logo-head {
        height: var(--logo-head-tablet-height);
        margin: auto;
        margin-left: 5%;
    }
    .logo-head-min {
        height: var(--logo-head-tablet-min-height);
    }
    .logo-head-pt1 a {
        font-size: 3.5em;
    }
    .logo-head-pt2 a, .logo-head-pt3 a, .logo-head-pt4 a {
        font-size: 3em;
    }
    .logo-head-pt1-min a, .logo-head-pt2-min a, .logo-head-pt3-min a, .logo-head-pt4-min a {
        font-size: 2.5em;
    }
    .menu {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-between;
        height: auto;
        grid-column: 1;
        grid-row: 2;
        height: var(--menu-tablet-height);
        margin-left: 5.5%;
        margin-bottom: -.1px;
        background-color: rgba(255, 255, 255, 0);
    }
    .menu-min {
        height: var(--menu-tablet-min-height);
    }
    .menu ul {
        display: flex;
        flex-flow: row wrap;
        align-items: flex-start;
        margin: 0;
        padding: 0;
    }
    .toggle {
        display: none;
    }
    .item {
        border-top-left-radius: 5px;
        border-top-right-radius: 5px;
        margin: auto;
        margin-right: 20px;
    }
    .item a {
        font-size: 1.75em;
        color: var(--main-color-1);
        margin: 0;
        padding: 2.5px 12.5px;
    }
    .here {
        background-color: var(--main-color-1);
    }
    .here a {
        color: var(--main-color-2);
        font-weight: 400;
    }
    .here a::after {
        content: none;
    }
    .item:hover {
        background-color: rgb(140, 110, 155);
        -moz-transition: background-color var(--menu-items-amination-timing); 
        -o-transition: background-color var(--menu-items-amination-timing); 
        transition: background-color var(--menu-items-amination-timing);
        -webkit-transition: background-color var(--menu-items-amination-timing);
        color: var(--main-color-1);
    }
    .toggle {
        display: none;
    }
    .socials-head {
        justify-content: right;
        margin: 0;
        margin-right: 20px;
    }
    .socials-head-icon {
        color: var(--main-color-1);
        font-size: 22.5px; 
        margin: auto 15px 12.5px;
        padding: 0;
    }
    .socials-head-icon:hover{
        color: rgba(255, 255, 255, 0.666);
        -moz-transition: color var(--menu-items-amination-timing); 
        -o-transition: color var(--menu-items-amination-timing); 
        transition: color var(--menu-items-amination-timing);
        -webkit-transition: color var(--menu-items-amination-timing);
    }
}
/* Laptop header */
@media all and (min-width: 992px) {
    .head-invisible {
        top: calc(-1 * var(--logo-head-desktop-min-height));
    }
    .logo-head {
        height: var(--logo-head-desktop-height);
    }
    .logo-head-min {
        height: var(--logo-head-desktop-min-height);
    }
    .logo-head-pt1 a{
        font-size: 4.5em;
    }
    .logo-head-pt2 a, .logo-head-pt3 a, .logo-head-pt4 a {
        font-size: 4em;
    }
    .logo-head-pt1-min a, .logo-head-pt2-min a, .logo-head-pt3-min a, .logo-head-pt4-min a {
        font-size: 3em;
    }
    .socials-head {
        margin-right: 7.5%
    }
    .socials-head-icon {
        margin: auto 30px 12.5px 7.5px;
    }
}

/* || MAIN BODY */

main {
    grid-area: main;
}

main > div {
    display: grid;
    gap: 0;
    background-color: var(--main-color-1);
    padding: 0;
}

.main-content {
    grid-column: 2;
    text-align: left;
}

/* Mobile body */
main > div {
    margin: 
        calc((var(--logo-head-mobile-height) + var(--menu-mobile-up-height)) + 40px) 
        0 
        50px;
    grid-template-columns: 7.5% auto 7.5%;
}
/* Tablet body */
@media all and (min-width: 600px) {
    main > div {
        margin: 
            calc((var(--logo-head-tablet-height) + var(--menu-tablet-height)) + 60px) 
            0 
            70px;
        grid-template-columns: 10% auto 10%;
    }
}
/* Laptop body */
@media all and (min-width: 992px) {
    main > div {
        margin: 
            calc((var(--logo-head-desktop-height) + var(--menu-tablet-height)) + 80px) 
            0 
            90px;
        grid-template-columns: 15% auto 15%;
    }
}
/* Desktop body */
@media all and (min-width: 1200px) {    
    main > div {
        grid-template-columns: 20% auto 20%;
    }
}

/* || FOOTER */

footer {    
    position: block;
    width: 100%;
    grid-area: foot;
    background: linear-gradient(35deg, var(--gradient-color-1) 80%, var(--gradient-color-2) 100%);
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    -moz-transition: all var(--head-foot-basic-timing); 
    -o-transition: all var(--head-foot-basic-timing); 
    transition: all var(--head-foot-basic-timing);
    -webkit-transition: all var(--head-foot-basic-timing);
} 

.socials-foot {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
}
.socials-foot-icon {
    color: var(--main-color-1);
    text-align: center;
    text-decoration: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0);
    padding: 0;
}
.socials-foot-icon:hover {
    cursor: pointer;
}

.logo-foot a {
    text-decoration: none;
}
.logo-foot-text {
    color: var(--main-color-1);
}
.logo-foot-pt1 {
    font-family: var(--logo-thick);
    font-weight: 900;
    letter-spacing: 0.03em;
}
.logo-foot-pt2 {
    font-family: var(--logo-thin);
    font-weight: 200;
    letter-spacing: 0.02em;
    font-style: italic;
}
.logo-foot-pt3 {
    font-family: var(--logo-thin);
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* Mobile footer */
footer {
    height: var(--footer-mobile-height);
}
.socials-foot {
    margin: auto 5%;
}
.socials-foot-icon {
    font-size: 22px; 
    margin-right: 20px; 
}
.logo-foot {
    margin: auto 5%;
}
.logo-foot a {
    font-size: 2.25em;
}
/* Tablet footer */
@media all and (min-width: 650px) {
    footer {
        height: var(--footer-tablet-height);
    }
    .socials-foot-icon {
        font-size: 25px; 
        margin-right: 30px;
    }
    .logo-foot a {
        font-size: 2.75em;
    }
}
/* Desktop footer */
@media all and (min-width: 992px) {
    footer {
        height: var(--footer-desktop-height);
    }
    .socials-foot {
        margin: auto 7.55%;
    }
    .logo-foot {
        margin: auto 7.5%;
    }
}