/* CSS HEX */
/* --black: #000000ff;
--color-altLight: #6683AEff;
--color-light: #EFEEEEff;
--color-dark: #5D1649ff;
--color-accent: #A21E87ff;

    --color-light: #FFFFC7;
    --color-dark: #473335;
    --color-accent: #548687;
    --color-altDark:#B0413E;
    --color-altLight: #FCAA67;
*/ 



* {
    box-sizing: border-box;
}
:root{
    --ff-primary: 'Inter', sans-serif;
    --ff-secondary: 'Source Code Pro', monospace;
    --fw-reg: 300;
    --fw-bold: 900;

    --color-light: #EFEEEEff;
    --color-dark: #5D1649ff;
    --color-altLight: #A21E87ff;
    --color-altDark: #473335;
    --color-accent: #6683AEff;

    --fs-h1: 3rem;
    --fs-h2: 2.25rem;
    --fs-h3: 1.25rem;
    --fs-body: 1rem;


    --boxshad: .25em .25em .75em rgba(0,0,0,.25),
               .125em .125em .25em rgba(0,0,0,.15);

}

/* major container element layout */
html{
    scroll-behavior: smooth;
}
header{
    display: flex;
    justify-content: space-between;
    max-height: 125px;
    padding: 1em;
    border-bottom:1px solid var(--color-dark);
}
body{
    font-family: var(--ff-primary);
    font-size: var(--fs-body);
    background: var(--color-light);
    color: var(--color-dark);
    margin: 0;
    padding: 0;
    line-height: 1.6;

}
section{
    padding: 4rem 2rem;
}

img{
    max-width: 100%;
    max-height: 100%;
}

.hide{
    display: none;
}
.display{
    display: block;
}
.btn{
    background-color: var(--color-accent);
    color: var(--color-light);
    padding: .75em 1.75em;
    text-decoration: none;
    font-weight: var(--fw-bold);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: transform 200ms ease-in-out;
    display: inline-block;
    margin: 2em;
}

.btn:hover {
    transform: scale(1.1);
    outline: 3px solid var(--color-altDark);
    outline-offset: 3px;
}
.btn:focus,
.portfolio__item:focus{
    outline: 3px solid var(--color-altDark);
    outline-offset: 3px;
}
/* aside */
aside{
    position: fixed;
    top: 125px;
    left: 1rem;
    width: 80vw;
    background-color: var(--color-altLight);
    color: var(--color-light);
    padding: 2rem;
    border-radius: 0 0 20px 20px;
    /* z-index: 1000; */
    transform: translateY(-100vh);
    transition: transform 250ms ease-in-out;
}
.aside-open{
    transform: translateY(0%);
}
aside p{
    font-size: var(--fs-body);
    margin-top: 1rem;
}
/* nav section */
nav{
    position: fixed;
    background-color: var(--color-dark);
    color: var(--color-light);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;

    transform: translateX(100%);
    transition: transform 250ms ease-in-out;
}
.nav-open .nav{
    transform: translateX(0%);
}

.nav__list{
    display: flex;
    list-style: none;
    height: 100%;
    flex-direction: column;
    justify-content: space-evenly;
    align-items: center;
    margin: 0;
    padding: 0;
}
.nav__link{
    color: inherit;
    font-size: 36px;
    font-weight: var(--fw-bold);
    text-decoration: none;
}
.nav__link:hover,
.nav__link:focus{
    opacity: .7;
}

.nav-toggle{
    border: none;
    border-radius: 50%;
    position: fixed;
    right: 1em;
    top: 1em;
    padding: 1em 1.15em;
    font-size: var(--fs-h3);
    cursor: pointer;
    z-index: 1000;
}
.nav-toggle,
.hamburger{
    background: var(--color-light);
    cursor: pointer;
}
.hamburger:hover,
.hamburger:focus,
.nav-toggle:focus{
    color: var(--color-altLight);
    /* outline: none; */
}
.logo img{
    object-fit: cover;
    width: 200px;
}

/* intro section */
.intro__img{
    box-shadow: var(--boxshad);
    width: 50vw;
    margin-left: 25%;
    margin-right: 25%;
}
.subtitle{
    margin-bottom: 1em;
}

/* services section */
.services{
    background-color:var(--color-dark);
    color: var(--color-light);
    background-image: url(img/whozielogo-glasses.png);
    background-image: url(https://images.unsplash.com/photo-1656414422831-e8ca6ef045b6?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1974&q=80);
    background-size: cover;
    background-position: center;
    background-blend-mode:darken;
    /* padding: 3em; */
    text-align: center;

}
.services__title{
    color: var(--color-accent);
    font-weight: var(--fw-bold);
    position: relative;
}
.services__title::after{
    content: '';
    display: block;
    width: 3em;
    height: 1px;
    margin: 0.5em auto 1em auto;
    background: var(--color-light);
    opacity: .3;
}
.service__name{
    font-size: var(--fs-body);
    letter-spacing: 1px;
    font-weight: var(--fw-bold);
    margin-bottom: .5em;
}
.service__description{
    font-weight: var(--fw-reg);
    opacity: .7;
}
.service{
    margin-bottom: 2em;
}

/* about me section */
.aboutme{
    margin-left: auto;
    margin-right: auto;
    max-width: 1000px;
    min-height: 100vh;
}
.about__subtitle{
    margin-top: 1rem;
    padding-left: 1em;
    align-self: start;
    grid-area: subtitle;
    grid-column: 1 / -1;
}
.about__body{
    padding: 0 1em 1em 1em;
    grid-area: body;
}
.about__description:before{
    content: '';
    width: 22vw;
    display: table;
}
.about__description{
    margin: 2em 4em 1em 0;
}
.about__description:last-child{
    margin-bottom: 0;
}
.about__img{
    margin-left: calc(100%/5);
    box-shadow: var(--boxshad);
    width: 50vw;
    margin-left: 25%;
    margin-right: 25%;
    grid-area: img;
}

/* portfolio section */
.work{
    background: var(--color-dark);
    color: var(--color-accent);
    text-align: center;
}
.work__subtitle{
    text-transform: capitalize;
    color: var(--color-light);
    /* width: 40%; */
    margin: .75em auto 2em auto;
}
.portfolio__img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    overflow: hidden;
}
.portfolio{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1em;
    justify-items: center;
}
.portfolio__item{
    width: 300px;
    height: 300px;
    background: var(--color-altDark);
}
.portfolio__img:hover,
.portfolio__item:focus{
    opacity: .5;
}

/* footer */
footer{
    background-color: #111;
    color: var(--color-accent);
    text-align: center;
    padding: 2.5em 0;
    font-size: var(--fs-h3);
}
.social__list{
    width: 50%;
    max-width: 600px;
    list-style: none;
    display: flex;
    justify-content: space-between;
    margin: 1.5em auto;
    padding: 0;
}
.social__item{
    margin: 0 .5em;
}
footer a,
.footer__link{
    color: inherit;
    text-decoration: none;
}
.fa-brands:hover,
.footer__link:hover{
    opacity: .7;
}
.fa-brands{
    color: inherit;
}

/* typography */
h1,
h2,
h3{
    line-height: 1.1;
    margin: 0;
}
h1{  font-size: var(--fs-h1);  }
h2{  font-size: var(--fs-h2);  }
h3{  font-size: var(--fs-h3);  }

p{
    margin: 0;
}
strong{
    font-weight: var(--fw-bold);
}
.title{
    font-size: var(--fs-h2);
    margin-bottom: .25em;
    font-weight: var(--fw-reg) ;
}
.subtitle{
    font-size: var(--fs-h3);
    background-color: var(--color-accent);
    font-family: var(--ff-secondary);
    padding: .25em 1em;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.about__subtitle,
.work__subtitle{
    text-transform: none;
}
.portfolio-item__individual{
    padding: 0 2em 2em;
    max-width: 1000px;
    margin: 0 auto;
}
.portfolio-item__individual p{
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
}
aside{
    margin-left: 1em;
    margin-bottom: 1em;
    font-size: small;
}
.img__wide{
    /* height: 100%; */
    margin: 4rem auto;
    grid-area: img;
}
#projectLink{
    margin-top: 3rem;
    grid-area: link;
}
.portfolio-item__keys{
    grid-area: keys;
}


/* Media Queries */
@media(min-width: 600px){
    nav{
        left: 25%;
    }
    .intro{
        width: min-content;
        margin: 0 auto;
        display: grid;
        grid-template-areas: 
        "img title"
        "img subtitle";
        grid-template-columns: min-content max-content;
        grid-column-gap: 1em;
    }
    .intro__img{
        grid-area: img;
        min-width: 200px;
        object-fit: cover;
        max-height: 225px;
        margin: 0;
    }
    .intro__title{
        margin-left: 2rem;
    }
    
    .intro__subtitle{
        grid-area: subtitle;
        text-align: right;
        align-self: start;
        grid-column: -1 / 1;
        position: relative;
        left: -2em;
        z-index: -1;
    }
    /* move the picture to display the picture overlapped with the title/subtitle */
    .aboutme{
        display: grid;
        grid-template-columns: 1fr 200px ;
        grid-template-areas: 
            "title img"
            "subtitle img"
            "body body";
    /* position is needed so that the image can shift itself into a new place */
            position: relative;
    }
    .about__subtitle{
        /* position: relative;
        left: -1em; */
        /* z-index: -1; */
        /* this padding & width keeps the text from
        flowing under the picture which is to its right */
        width: calc(100% + 1em);
        padding-right: calc(200px + 1em);
        
    }
    .about__img{
        /* the colored bar of the subtitle should appear
        just extending beyond the picture */
        position: relative;
        left: -4em;
    }
    .about__description{
        /* margin: 2em 4em 1em 0; */
    }
    .about__description:last-child{
        /* margin-bottom: 0; */
    }
}

@media(min-width: 800px){
    :root{
        --fs-h1: 4.5rem;
        --fs-h2: 3.75rem;
        --fs-h3: 1.5rem;
        --fs-body: 1.125rem;
    }
    .intro__img{
        align-self: end;
    }
    .services__list{
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1fr 2fr 1fr;
        gap: 2em;
    }
    .service{
        text-align: left;
        grid-column: 1/-1;
    }
    .services__btn{
        grid-column: 2/3;
    }
    .work__subtitle{
        width: calc(100%-6rem);
        max-width: 800px;
        margin: .75em auto 2em auto;
    }
    .work{
        padding-bottom: 8rem;
    }
    .portfolio{
        padding-top: 3rem;
    }
    .portfolio-item__individual{
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-areas: 
        "keys highlights"
        "img img"
        "link .";
    }
    aside{
        width: 60vw;
    }    
}
@media (min-width: 1000px) {
    .services{
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
    .services{
        min-height: 100vh;
    }
    .services__list{
        margin-left: 15%;
        margin-right: 15%;
    }
}
@media (min-width: 1200px) {
    .intro, 
    .services,
    .aboutme,
    .work{
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
    .services{
        min-height: 100vh;
    }
    .services__list{
        grid-template-columns: 1fr 2fr 1fr 2fr 1fr;
        margin-left: 0;
        margin-right: 0;
    }
    #service-1{
        grid-column: 2/3;
    }
    #service-2{
        grid-column: 2/3;
    }
    #service-3{
        grid-column: 4/5;
    }
    .services__btn{
        grid-column: 4/5;
        align-self: end;
 
    }
    .work{
        min-height: 100vh;
    }
    aside{
        width: 40vw;
        transform: translateY(-100vh);
        transition: transform 250ms ease-in-out;
    }    
}
