/*=================== Google Fonts =================*/
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400,500;700&family=Roboto:wght@400;500;700&display=swap');

/*=================== css variables =================*/
:root {
    --header-height: 3.5rem;

    /*=================== Colors =================*/
    --primary-color: #4a4a4a;
    --primary-color-alt: #575757;
    --linear-gradient: linear-gradient(
        54deg,
        rgba(45, 45, 45, 0.95) 34%,
        rgba(45, 45, 45, 0.95)
    );

    --title-color: #4a4a4a;
    --text-color: #555;
    --text-color-alt: #999;
    --bg-color: #fff;
    --bg-color-alt: #e9ecef;
    --border-color: #f1f1f1;

    /*=================== Font and typography =================*/
    --roboto-font: 'Roboto', sans-serif;
    --mono-font: 'Roboto Mono', monospace;

    --fs-h1: 2.7rem;
    --fs-h2: 1.25rem;
    --fs-lg: 1.125rem;
    --fs-base: 1rem;
    --fs-sm: 0.875rem;
    --fs-sm: 0.875rem;
    --fs-xs: 0.75rem;

    /*=================== font weight =================*/
    --medium: 500;
    --semibold: 600;
    --bold: 700;
}

/*=================== Base =================*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html{
    scroll-behavior: smooth;
}

body,
button,
input,
textarea{
    font-family: var(--roboto-font);
    font-size: var(--fs-base);
}

body{
    background-color: var(--bg-color);
    color: var(--text-color);
    line-height: 1.5rem;
}

h1,
h2,
h3,
h4{
    font-family: var(--mono-font);
    font-weight: var(--bold);
}

url{
    list-style: none;
}

a{
    text-decoration: none;
}

button{
    cursor: pointer;
    background: none;
    border: none;
    outline: none;
}

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

textarea,
input{
    background: none;
    border: none;
    outline: none;
}

/*=================== Reusable css =================*/
.container {
    max-width: 1140px;
    margin: 0 auto;
    padding-left: 0.9rem;
    padding-right: 0.9rem;
}

.grid{
    display: grid;
}

.section{
    padding-top: 5.85rem;
    padding-bottom: 3.75rem;
}

.section__title{
    font-size: 1.5rem;
    line-height: 1.17em;
    font-weight: var(--bold);
    margin-bottom: 1.12em;
    
}

.text-lg{
    font-size: var(--fs-lg);
    line-height: 1.67em;
}

.text-sm{
    font-size: var(--fs-sm);
    line-height: 1.43em;
}

.text-xs{
    font-size: var(--fs-xs);
    line-height: 1.5em;
}

/*=================== Header =================*/

.header{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    transition: 0.3s;
}

.nav {
    height: calc(var(--header-height) + 00.875rem);
    display: flex;
    align-items: flex-end;
}

.nav__list{
    display: flex;
    column-gap: 3.25rem;
    list-style-type: none
}

.nav__link{
    color: #fff;
    font-size: 0.9rem;
    font-weight: var(--bold);
    font-family: var(--mono-font);
    text-transform: uppercase;
    position: relative;
    transition: 0.3s;
}

.nav__link:hover{
    opacity: 0.5;
}

.nav__link::after{
    content: '';
    position: absolute;
    bottom: 0;
    right: -0.5rem;
    width: 7px;
    height: 2px;
    background-color: #fff;
    opacity: 0;
    transition: 0.3s;
}

.nav__link:hover::after{
    opacity: 1;
}

.nav__close,
.nav__toggle{
    display: none;
}

/* active links */
.active-link{
    opacity: 0.5;
}

.active-link::after{
    opacity: 1;
}

/*scroll-header*/
.scroll-header{
    position: fixed;
    background-color: var(--bg-color);
    box-shadow: 0 5px 8px 0 rgb(0 0 0 / 14%);
}

.scroll-header .nav__link{
    color: var(--text-color);
}

.scroll-header .nav{
    align-items: center;
}

.scroll-header .nav__link::after{
    background-color: var(--text-color);
}

.scroll-header .nav__link:hover,
.scroll-header .active-link{
    color: var(--primary-color);
}


/*=================== Home =================*/
.home{
    background: url(../assets/Images/bg2.jpg);
    background-size: cover;
    background-position: 50%;
    padding-top: 5.5rem;
    margin-bottom: 2.5rem;
    position: relative;
}

.home::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--linear-gradient);
}

.home__container {
    grid-template-columns: 4fr 8fr;
    column-gap: 1.875rem;
}

.home__image,
.home__data{
    z-index: 10;
}

.home__image{
    width: 90%;
    height: 380px;
    object-fit: cover;
    border-radius: 0.3rem;
    transform: translateY(3.12rem);
    box-shadow: 0 0 27px rgb(96 96 96 / 34%);
}

.home__name,
.home__work,
.home__list,
.home__socials-link{
    color: #fff;
    font-family: var(--mono-font);
}

.home__name{
    font-size: var(--fs-h1);
    line-height: 1.14rem;
    margin: 0.9em 0 0.23em;
}

.home__work{
    margin-bottom: 2.5rem;
}

.about{
    font-weight: var(--bold);
    color: #fff;
    transition: 0.3s;
}

.about:hover{
    opacity: 0.4;
}

.home__list dt{
    float: left;
    font-weight: var(--bold);
    opacity: 0.4;
}

.home__list dd{
    padding-left: 6.2em;
}

.home__list dd:not(:last-child){
    margin-bottom: 0.94em;
}

.home__socials{
    margin: 1.25rem 0 2.2rem;
}

.home__socials-link{
    font-size: 1.7rem;
    line-height: 1.36em;
    margin-right: 0.25rem;
    opacity: 0.4;
    transition: 0.3s;
}

.home__socials-link:hover{
    opacity: 1;
}


/*=================== Hello =================*/
.hello__details{
    margin-bottom: 1.67em;
    text-align: justify;
}

.download{
    font-family: var(--mono-font);
    font-size: medium;
}

/*=================== Buttons =================*/
.button{
    display: inline-block;
    background-color: var(--primary-color);
    color: #fff;
    padding: 1.1em 2.1em;
    border-radius: 1.56rem;
    font-weight: var(--semibold);
    transition: 0,3s;
}

.button:hover{
    background-color: var(--primary-color-alt);
}

.button--flex{
    display: inline-flex;
    align-items: flex-start;
    column-gap: 0.3rem;   
}


/*=================== Services =================*/
.services__container{
    grid-template-columns: repeat(3, 1fr);
    gap: 1.875rem;
}

.services__item{
    border: 1px solid var(--border-color);
    padding: 2.5rem 1.25rem 1.875rem;
    text-align: center;
}

.icon__box{
    border: 1px solid var(--border-color);
    width: 82px;
    height: 82px;
    border-radius: 50%;
    margin: 0 auto;
    margin-bottom: 1.25rem;
    position: relative;
    display: flex;
}

.services__icon{
    width: 32px;
    margin: auto;
 }

.services__dot{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    animation: service-dot 2s linear infinite;
    animation-play-state: paused;
}

.services__item:hover .services__dot{
    animation-play-state: running;
}

@keyframes service-dot {
    0%{
        transform: rotate(0deg);
    }

    100%{
        transform: rotate(1turn);
    }
}

.dot {
    width: 13px;
    height: 13px;
    background-color: var(--title-color);
    border-radius: 50%;
    position: absolute;
    top: 0;
    left: 0.9rem;
}

.services__title{
    margin-bottom: 0.8em;
}

/*=================== Services =================*/
.resume__container{
    grid-template-columns: repeat(2, 1fr);
    column-gap: 3.75rem;
}

.skills__title,
.resume__title{
    color: var(--text-color);
    letter-spacing: 0.4em;
    margin-bottom: 2.8em;
}

.resume__item{
    border-left: 2px solid var(--primary-color);
    padding-left: 1.6rem;
    position: relative;
}

.resume__item:not(:last-child){
    padding-bottom: 3rem;
}

.resume__item::before{
    content: '';
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--primary-color);
    position: absolute;
    left: -0.56rem;
    background-color: var(--bg-color);
}

.resume__subtitle{
    color: var(--primary-color);
    margin-bottom: 0.036;
}

.resume__date{
    color: var(--text-color);
    margin-bottom: 0.7em;
}

.resume__description{
    margin-left: 0.7em;
    text-align: justify;

}

.resume__course{
    font-size: var(--medium);
}

/*=================== Skills =================*/

.skills__container{
    grid-template-columns: repeat(2,445px);
    column-gap: 7rem;
}

.skills__list{
    row-gap: 1.8rem;
}

.skills__titles{
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.625rem;
}

.skills__bar,
.skills__percentage{
    height: 5px;
    border-radius: 0.25rem;
}

.skills__bar{
    background-color: var(--bg-color-alt);
}

.skills__percentage{
    display: block;
    background-color: var(--primary-color);
}

/*=================== Projects =================*/
.project__categories{
    display: flex;
    flex-wrap: wrap;
    column-gap: 3rem;
    row-gap: 0.25rem;
    margin-bottom: 1.875rem;
}

.category__btn{
    color: var(--text-color-alt);
    font-weight: var(--bold);
    font-family: var(--mono-font);
    position: relative;
}

.category__btn:hover{
    color: var(--primary-color);
}

.category__btn::after{
    content: '';
    position: absolute;
    bottom: 0;
    right: -0.5rem;
    width: 7px;
    height: 2px;
    background-color: var(--primary-color);
    opacity: 0;
    transition: 0.3s;
}

.category__btn:hover::after{
    opacity: 1;
}

.active-work{
    color: var(--primary-color);
}

.active-work::after{
    opacity: 1;
}

.project__container{
    row-gap: 2.5rem;
}

.project__item{
    grid-template-columns: 5fr 7fr;
}

.project__img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project__details{
    padding: 3rem 3rem 2.5rem 1.875rem;
    border: 1px solid var(--border-color);
}

.project__title{
    margin-bottom: 0.8em;
    text-align: justify;
}

.project__description{
    margin-bottom: 2.5em;
    text-align: justify;
}

.project__stack{
    margin-bottom: 1.25em;
}

.tags li{
    display: inline-block;
    margin-right: 0.6rem;
    box-shadow: 0 1px 4px rgb(0 0 0 / 14%);
    padding: 0.3rem 0.6rem;
    border-radius: 0.2rem;
}

.project__link{
    float: right;
    margin-top: 3.9em;
    color: var(--primary-color);
    font-family: var(--mono-font);
}

/*=================== Projects =================*/
.contact {
    background: url(../assets/Images/bg2.jpg);
    background-size: cover;
    background-position: 50%;
    position: relative;
}

.contact::before{
    content: '';
    background: var(--linear-gradient);
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
}

.contact__content{
    z-index: 10;
    position: relative;
}

.contact__container{
    grid-template-columns: 4fr 5fr 3fr;
    column-gap: 1.875rem;
    padding-top: 1.25rem;
}

.contact .section__title,
.contact__list,
.contact__socials-link,
::placeholder,
.contact__input,
.contact__form-title,
.footer__copy{
    color: #fff;
    font-family: var(--mono-font);
}

.contact__list{
    margin-bottom: 3.25rem;
}

.contact__list dt {
    float: left;
    font-weight: var(--bold);
    text-transform: uppercase;
}

.contact__list dd{
    padding-left: 6.25em;
    margin-bottom: 0.94em;
}

.contact__socials li{
    margin-bottom: 0.75rem;
    list-style: none;
}

.contact__socials-link{
    font-family: var(--roboto-font);
}
.contact__form{
    position: relative;
}

.contact__form-title{
    margin-bottom: 1.25em;
}

.contact__input-div{
    margin-bottom: 0.94em;
}

.contact__input{
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 3px;
    padding: 0.625rem;
}

.textarea{
    height: 7.2rem;
    resize: none;
}

.contact__input:focus{
    box-shadow: inset 0 0 5px 0 #fff;
}

.contact__message{
    position: absolute;
    bottom: 33%;
    left: 0;
    font-family: var(--mono-font);
}

.color-light{
    opacity: 0;
}

.color-dark{
    opacity: 0.4;
}

.contact__button{
    margin-top: 1.875rem;
    width: 100%;
    box-shadow: 0 1px 29px rgb(0 0 0 / 40%);
}

.footer__copy{
    opacity: 0.4;
    margin-top: 3.75rem;
    text-align: center;
}


/*=================== Automation Details =================*/
.project__header{
    height: 400px;
    background: url(Images/bg1.jpg);
    background-size: cover;
    background-position: 50%;
    position: relative;
}

.project__header::before{
    content: '';
    background: var(--linear-gradient);
    height: 100%;
    position: absolute;
    left: 0;
    right: 0;
}

.project__data{
    background-color: #fff;
    padding: 3rem 4.25rem 3.75rem;
    margin-top: -16rem;
    box-shadow: 0 1px 21px rgb(0 0 0 / 14%);
    z-index: 10;
    position: relative;
    margin-bottom: 6.25rem;
}

.back__to-home{
    display: inline-flex;
    column-gap: 0.6rem;
    text-transform: uppercase;
    color: var(--text-color);
}

.project__info-title{
    text-transform: uppercase;
    margin-top: 1.875rem;
    margin-bottom: 0.9rem;
}

.project__info{
    margin-bottom: 1.25rem;
    text-align: justify;
    padding-left: 2em;
}
.project__info-subtitle{
    padding-left: 1em;
}

figure{
    padding-top: 0.62rem;
    padding-bottom: 2.2em;
}

figcaption{
    color: var(--text-color);
    font-style: italic;
    font-family: var(--mono-font);
    margin-top: 1.4em;
}

/*=================== Break points =================*/
/*for large devices*/
@media screen and (max-width:1200px) {
    :root{
        --fs-h1: 2.25rem;
        --fs-h2: 1.75rem;
        --fs-lg: 1rem;
        --fs-base: 0.938rem;
        --fs-sm: 0.813rem;
        --fs-sm: 0.813rem;
        --fs-xs: 0.687rem;
    }

    .container{
        max-width: 960px;
    }

    .home__container{
        grid-template-columns: 5fr 7fr;
    }

    .skills__container,
    .services__container{
        grid-template-columns: repeat(2, 1fr);
        column-gap: 1.875rem;
    }
    
}

@media screen and (max-width:992px){
    .container{
        max-width: 720px;
    }

    .nav__menu{
        position: fixed;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        z-index: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        transform: translateX(-100%);
        transition: 0.3s;
    }

    .show-menu{
        transform: translateX(0);
    }

    .nav__list{
        flex-direction: column;
        row-gap: 2.125rem;
        text-align: center;
    }

    .nav__toggle,
    .nav__close{
        display: block;
    }

    .nav__close{
        font-size: 1.5rem;
        position: absolute;
        top: 2.7rem;
        left: 8%;
        cursor: pointer;
        color: #fff;
    }

    .nav__toggle{
        color: #fff;
        font-size: 1.25rem;
        opacity: 0.5;
    }

    .scroll-header .nav__toggle{
        color: var(--text-color);
        opacity: 1;
    }

    .home{
        padding-top: 5.25rem;
    }

    .home__image{
        width: 60%;
        height: 400px;
        object-fit: cover;
        border-radius: 0.3rem;
        transform: translateY(3.12rem);
        box-shadow: 0 0 27px rgb(96 96 96 / 34%);
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 2.5em;
    }

    .home__name,
    .home__work{
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .section{
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .project__item,
    .resume__container,
    .home__container{
        grid-template-columns: 1fr;
    }

    .resume__container{
        row-gap: 3.75rem;
    }

    .contact__container{
        grid-template-columns: 5fr 7fr;
    }

}


/*for meduim devices*/
@media screen and (max-width:768px){
    .container{
        max-width: 540px;
    }

    .home__image{
        width: 50%;
        height: 300px;
        object-fit: cover;
    }
    .contact__container,
    .skills__container,
    .services__container{
        grid-template-columns: 1fr;
    }

    .skills__container{
        row-gap: 3.75rem;
    }

    .project__data{
        padding: 2rem 1.2rem 1.5rem 1.25rem;
    }

    .contact__container{
        row-gap: 2rem;
    }

    .project__data{
        padding: 2.5rem 1.875rem;
    }
}

@media screen and (max-width: 576px){
    .home{
        padding-top: 4.4rem;
    }

    .home__image{
        width: 60%;
        height: 300px;
    }

    .home__name{
        font-size: xx-large;
    }

    .project__categories{
        column-gap: 1.5rem;
    }

    .tags li{
        margin-bottom: 0.6rem;
    }
}

/*for small devices*/
@media screen and (max-width: 350px){
    :root{
        --fs-h1: 2rem;
        --fs-h2: 1rem;
        --fs-lg: 0.9rem;
        --fs-base: 0.738rem;
        --fs-sm: 0.613rem;
        --fs-sm: 0.613rem;
        --fs-xs: 0.487rem;
    }

    .home__image{
        width: 50%;
        height: 150px;
    }

    .home__name{
        font-size:xx-large;
    }

    .home__work{
        font-size: var(--fs-sm);
    }

    .home__list{
        font-size: 0.875rem;
    }

    .home__list dd{
        padding-left: 5.75em;
    }

    .home__socials-link{
        font-size: 1.3rem;
    }

    .hello__details,
    .resume__description{
        text-align: justify;
    }
}



