:root {
    --text-title: 50px;
    --text-xl: 40px;
    --text-lg: 30px;
    --text-md: 20px;
    --text-mm: 17px;
    --text-sm: 14px;
    --text-xs: 12px;
/*  */
    
    --text-color: #222222;
    --blue-800:  #2c63a2/*#1b2e4d*/;
    --blue-600: #24385f;
    --blue-400: #2c63a2;

    --gray-600: #696969;
    --gray-500: #494949;
    --gray-400: #c0c0c0;
    --gray-200: #e4e4e4;
    
    --gray-100: #808080;
    --white: #ffffff;

    --header-color: #142952;
    --img-border-color: #2d5faf;

    --sp-res-lg: 4vw;
    --sp-res-md: 2vw;
    --sp-res-sm: 1vw;

    --h1-size: 44px;
    --h2-size: 20px;
    --h3-size: 17px;
    --p-size: 16px; 

    p {
        font-size: var(--text-sm);
        color: var(--text-color);
        line-height: 1.25;
    }

    ul, li {
        color: var(--text-color);
        line-height: 1.25;
    }
    
    a:link, a:active, a:visited {
        color: var(--blue-400);
        
    }

    a:hover {
        color: #142952;
    }


}

body {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-size: clamp(1em, 3.75vw, 22px);
    background-color: var(--gray-400);
    font-family: "Ubuntu", sans-serif;
    display: flex;
    justify-content: center;
}

em {
    text-decoration: underline;
}

p, h1, h2, h3 {
    margin: 0.25vw;
    padding: 0;
    color: var(--text-color);
}

h2 {
    color: var(--blue-400);
        text-decoration: underline;
}

h3 {
    font-weight: 600;
        font-size: var(--text-md);
        margin-top: var(--sp-res-sm);
        line-height: 1.25;
}

.resume--container {
    flex-direction: column;
    margin: 0 clamp(0px, var(--sp-res-sm), 20px);
    background-color: var(--gray-200);
    max-width: 1080px;
}

article {
    padding: var(--sp-res-sm) var(--sp-res-lg);
}
.resume--header {
    background-color: var(--header-color);
    color: var(--gray-400);
    display: flex;
    gap: clamp(1em, 3vw, 4em);
    padding-bottom: 4vw;
    padding-top: 3vw;
    align-items: center;

    .resume--header-title {
    flex-direction: column;
    grid-area: pers;  
    }

    a:link, a:active {
        color: var(--gray-200); 
    }

    a:hover, a:visited {color: var(--blue-400);}
    li {
        color: var(--gray-200);
    }

    div>p {
        color: var(--gray-400);
    }

}

.resume--photo {
    border-radius: 25px;
    border: clamp(2px, 1vw, 6px) solid var(--img-border-color);
    width: clamp(105px, 30vw, 182px);
    height: clamp(105px, 30vw, 182px);
    grid-area: pict;
}

p.name {
    font-size: var(--text-xl);
    line-height: 1;
    font-family: "Lora", serif;
    color: var(--gray-400);
}

.contact--sites, .contact--info {
    display: none;
}

.contact--icon {
    width: 20px;
    height: 20px;
    color: var(--gray-200);
}

.resume--contact>div {
    display: flex;
}

.resume--tech-skills {
    display: grid;
    grid-template: repeat(5, auto) / 1fr;
    flex-wrap: wrap;
    grid-template-areas: 
        "tech"
        "frnt"
        "back"
        "pnme"
        "teno";
    
    h2{grid-area: tech;}
    .skill-set:nth-of-type(1){grid-area: frnt;}
    .skill-set:nth-of-type(2){grid-area: back;}
    .skill-set:nth-of-type(3){grid-area: pnme;}
    .skill-set:nth-of-type(4){grid-area: teno;}

    .skill-set {
        margin: 0;
    }

    .skill-set>p:first-child {
        width: 100%;
        font-weight: 600;
        font-size: 16px;
    }
}

.resume--header{grid-area: head;}
.resume--work{grid-area: work;}
.resume--tech-skills{grid-area: tesk;}
.resume--other{grid-area: othe;}
.resume--projects{grid-area: proj;}
.resume--education{grid-area: educ;}
/* .resume--contact{grid-area: cont;} */

.work--instance {
    /* border-left: 1px solid var(--gray-100); */
    /* margin-bottom: 20px; */
    /* background-color: #d9d9d9; */
    border-radius: 4px;
    margin-bottom: 4px;

    p:first-child {
        font-weight: 600;
        font-size: var(--text-md);
        margin-top: var(--sp-res-sm);
        line-height: 1.25;
    }

    :nth-child(2) {
        font-weight: 600;
        font-size: var(--text-sm);
    }

    .work--date {
        display: flex;
        justify-content: space-between;
        align-items: center;
        /* font-family: "Roboto+Slab", sans-serif; */
        
    }

    .date {
        font-size: var(--text-xs);
        color: var(--blue-400);
        margin-top: 2px;
        font-weight: 600;
        font-family: "Manrope", sans-serif;
        margin-left: auto;
    }

    .work--description {
        font-size: var(--text-sm);
        color: var(--gray-500);
        /* font-weight: bold; */
        /* font-style: italic; */
    }
}

ul {
    margin: 5px 0 4px 1px;
    padding-left: 0;
    font-size: 16.5px;
    font-family: "Manrope", sans-serif;
    font-weight: 500;
    color: var(--blue-400);
    line-height: 1;
    text-decoration: underline;
}

li {
    font-size: var(--text-sm);
    font-weight:400;
    margin: 0px 0 2px 20px;
    padding: 0;
}

li::marker {
    color: var(--blue-400);
}

.resume--projects {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    padding-bottom: 0;

    h2 {
        width: 100%;
    }

    p {
        line-height: 1.2;
        margin-top: 4px;
    }

}

.logo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25em;

    b {
        font-size: var(--text-mm);
    }
}

.resume--education {
    margin-top: 0;

    h3 {
        font-weight: 600;
        font-size: var(--text-mm);
        margin-top: var(--sp-res-md);
        /* margin-bottom: var(--sp-res-sm); */
        line-height: 1.25;
    }

    .location {
        font-weight: 600;
    }

    .education--description {
        font-size: var(--text-sm);
        color: var(--gray-500);
        font-style: italic;
    }

    .education--curriculum {
        font-size: var(--text-sm);
        color: var(--gray-500);
    }


}

.references--reference {
    display: flex;
    flex-direction: column;
    margin: clamp(1.4vw,2.5vw,3vw) 0;
    border-radius: 15px 0 0 25px;
    padding: 1.5vw 0 0.5vw 1.5vw;
    border-left: clamp(2px, .4vw, 3px) solid var(--gray-600);
    border-top: clamp(2px, .4vw, 3px) solid var(--gray-600);
    grid-area: refs;

    .reference--person {
        display: flex;
        align-items: center;
    }

}



.references--reference>div>img {
    height: clamp(50px, 15vw, 200px);
    width: clamp(50px, 15vw, 200px);
    border-radius: 50% 50% var(--sp-res-md) 50%;
}

.reference--person-info {
    padding-left: 1.5vw;
    font-size: clamp(1em, 3vw, 20px);
    align-self: end;
    font-weight: bold;
}

p.reference--person-name {
    font-size: var(--text-md);
    color: var(--blue-800);
    font-weight: bold;
    margin:0 0 0.5vw 0;
}

.quote {
    color: var(--gray-500);
    padding: 1.5vw;
}
/* ----------------------------------------------------------------------------------------- */
@media (min-width: 620px) {
    /* body {font-size: 14px;} */
    h1 { 
        font-size: var(--h1-size);
    }
    
    h2 {
        font-size: var(--h2-size);
    }

    h3 {
        font-size: var(--h3-size);
    }
    
    p {
        font-size: var(--p-size);
    }

    article {
        padding: 0;
    }
    
    .resume--references {
        display: none;
    }

    .contact--sites>div, .contact--info>div {
        display: flex;
        align-items: center;
        gap: 0.5em;
    }

    .contact--sites {
        grid-area: site;
        display: block;
    }

    .contact--info {
        grid-area: info;
        display: block;
    }

    .resume--header {
        padding: 15px 20px 15px var(--sp-res-md);
        font-weight:lighter;
        height: auto;
        display: grid;
        grid-template: repeat(2, 4rem) / repeat(4, 1fr);
        grid-template-areas: 
            "pers pers .     pict"
            "site .    info  pict";
        gap: 0;
    }

    .resume--header-title>p {
        text-align: start;
        color: var(--gray-400);
    }

    p.name {
        font-size: var(--text-xl);
        color: var(--gray-400);
    }

    .resume--photo {
        width: 130px;
        height: 130px;
        border: 3px solid var(--img-border-color);
        /* margin-top: 15px; */
        align-self: center;
        justify-self: end;
    }
    
    .resume--work{
        margin: 6px var(--sp-res-md);
        max-width: 400px;

        h2 {
            color: var(--blue-400);
        }
    }

    .resume--tech-skills {
        margin: 6px var(--sp-res-md) 0 0;
        max-width: 400px;
        line-height: 1.25;;

        
        b.skill-set {
            margin: 0;
            padding: 0;
            line-height: 1;
            font-size: var(--text-mm);
        }

        .skill-set>p:first-child {
            margin: 0;
            padding: 0;
        }
    }

    .work--instance>p:first-child {
        /* margin-top: 4px; */
        line-height: 1;
        font-size: var(--text-mm);
    }
    
    .resume--exec {
        grid-area: exec;
        /* grid-column: 1/3; */
        margin: 2px var(--sp-res-md) 0px var(--sp-res-md);
        border: 1px solid #494949;
        border-radius: 6px;

        p {
            margin: 4px 30px 0px 30px;
            padding: 1px 0;
            font-size: 14px;
        }

    }

    .resume--container {
        display: grid;
        grid-template: repeat(7, auto) / repeat(2, 1fr);
        
        /* Developer version */
        /* .resume--work {
            margin-left: 0;
            margin-top: 4px;
        }

        
        .resume--tech-skills, .resume--projects, .resume--education {
            margin-left: var(--sp-res-md);
            margin-top: 4px;
        }

        grid-template-areas: 
            "head head"
            "tesk work"
            "proj work"
            "educ work"
            "othe othe"
            "refs refs"; */
        /* END Developer version */

        /* Product Manager version */
        grid-template-areas:
            "head head"
            "exec exec"
            "work tesk"
            "work educ"
            "work proj"
            "othe othe"
            "refs refs";
        margin: 0;
        
        background-color: var(--gray-200);
    }

    .resume--other {
        display: flex;
        flex-direction: column;
        flex-wrap:wrap;
        margin-left: var(--sp-res-md);
        margin-top: 0;

        h2 {
            font-size: var(--text-mm);
        }
        
    }
}

@page {
    size: 8.5in 11in;
    margin: 0;
    padding: 0;

    :root, body, html {
        background-color: var(--white);
        
    }

    p {
        font-size: var(--text-xs);
    }

    .references--reference>div>img {
        color: green;
    }
}