/* ========================================= */
/* ========================================= */
/* Project Name: Personal Portfolio Website with sidebar. */
/* Project by: Ashfatul Islam */
/* Created at: May 2022 */
/* ========================================= */
/* ========================================= */


:root {
    /* Background */
    --ai-bg-primary: #081721;
    --ai-bg-secondary: #11344b;
    --ai-bg-highlight: #2db77e;
    --ai-bg-page-container: #11344ba3;
    --ai-bg-transparent: transparent;

    /* Color */
    --ai-c-primary: #081721;
    --ai-c-secondary: #fff;
    --ai-c-highlight: #2db77e;
    --ai-c-hover-primary: #2db77e;
    --ai-c-additional: #ff7600;
}

@font-face {
    font-family: brand-font;
    src: url(../fonts/OleoScriptSwashCaps-Regular.ttf);
}

body {
    color: var(--ai-c-secondary);
    background: var(--ai-bg-primary);
    background: var(--ai-bg-primary);
    background-image: url(../img/intro-bg.svg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    min-height: calc(100vh - 75px);
    text-transform: capitalize;
    background-attachment: fixed;
}
nav.navbar {
    position: fixed;
    z-index: 10;
    border-bottom: 1px solid var(--ai-bg-secondary);
    top: 0;
}

.menu {
    float: right;
    justify-content: flex-end;
    width: 100%;
    background: var(--ai-bg-primary);
}

a.nav-link {
    color: var(--ai-c-secondary);
}

a.nav-link:hover {
    color: var(--ai-c-hover-primary);
    text-underline-offset: 10px;
}

.navbar-brand {
    color: var(--ai-c-secondary);
    font-family: brand-font;
    font-size: 2rem;
}

.navbar-brand:hover {
    color: var(--ai-c-hover-primary);
}

.menu-icon {
    color: var(--ai-c-secondary);
}

.active {
    color: var(--ai-c-hover-primary) !important;
}
.spacer{
    padding-bottom: 2rem;
}
#intro{
    margin-top: 75px;
}
#intro .row {
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - 75px);
}

h1.intro-name {
    font-size: 3.5rem;
    text-transform: uppercase;
}

h1.intro-name .name {
    color: var(--ai-c-highlight);
}

.page-title-main{
    color: var(--ai-c-highlight);
}

span.cursor {
    border-right: .05em solid;
    animation: caret 1s steps(1) infinite;
}
.intro-photo{
    height: 300px;
    width: 300px;
    border-radius: 50%;
    border: 10px solid var(--ai-bg-secondary);
}

/* @keyframes caret {
    50% {
        border-color: transparent;
    }
} */
.cv-download{
    background: var(--ai-bg-secondary);
    color: var(--ai-c-secondary);
}
.cv-download:hover{
    background: var(--ai-bg-highlight);
}
.summery{
    font-size: 17px;
}
.page-title {
    color: var(--ai-c-secondary);
    font-size: 2rem;
    text-underline-offset: 10px;
    text-transform: uppercase;
    letter-spacing: 5px;
    padding-top: 8rem;
    padding-bottom: 3rem;
}
.user-photo{
    width: 100%;
    border: 10px solid var(--ai-c-secondary);
    border-radius: 5px;
}
.info p{
    margin-bottom: 1rem;
    font-size: 1.3rem;
}
.info ul{
    font-size: 1.3rem;
}
.highlight-text{
    color: var(--ai-c-highlight);
}
.section-core{
    background: var(--ai-bg-page-container);
    padding: 20px;
    border-radius: 5px;
}
.sub-title {
    text-underline-offset: 5px;
    margin-top: 4rem;
    margin-bottom: 3rem;
}

.skills-container {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(1, 1fr);
    grid-column-gap: 20px;
    grid-row-gap: 20px;
}
.skill-item {
    border: 1px solid var(--ai-c-secondary);
    padding: 2rem;
    border-radius: 5px;
    transform: scale(0.9);
    background: linear-gradient(45deg, var(--ai-bg-transparent) 50%, var(--ai-c-hover-primary) 50%);
    background-size: 300%;
    background-position: left;
}
.skill-icon{
    font-size: 2rem;
}
.skill-item:hover {
    transition: 800ms;
    transform: scale(1);
    background-position: right;
    border: 1px solid var(--ai-c-hover-primary);
}
.skill-item:not(:hover) {
    transition: 800ms;
}
.footer{
    margin-top: 5rem;    
    background: var(--ai-bg-secondary);
    color: var(--ai-c-secondary);
    text-align: center;
    padding: 50px;
    border-top: 10px solid var(--ai-bg-highlight);
}
.footer ul{
    list-style: none;
    display: flex;
    justify-content: center;
    
}
.footer ul li{
    padding: 10px;
}
.footer ul li a{
    font-size: 1.5rem;
    
}
.footer ul li a{
    color: var(--ai-c-highlight);
}
.footer ul li:hover a{
    color: var(--ai-c-secondary);
}
.position{
    color: var(--ai-c-highlight);
    font-size: 22px;
}
.experience-item, .education-item{
    position: relative;
    padding-left: 30px;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
.experience-item::before, .education-item::before{
    content: '';
    height: 20px;
    width: 20px;
    background: var(--ai-c-additional);
    position: absolute;
    border-radius: 50%;
    top: calc(50% - 10px);
    left: 0px;
    z-index: 1;
    border: 2px solid var(--ai-c-secondary);
}
.experience-item::after, .education-item::after{
    content: '';
    height: 100%;
    width: 2px;
    background: var(--ai-c-highlight);
    position: absolute;
    top: 0px;
    left: 9px;
}
.sub-sub-title{
    padding-top: 1rem;
    padding-bottom: 1rem;
    color: var(--ai-c-secondary);
}
.experience-item:last-child, .education-item:last-child{
    margin-bottom: 40px;
}
.project-image{
    background-image: url(../img/placeholder.jpg);
    height: 150px;
    width: 100%;
    background-position: center, center;
    background-size: cover;
    background-repeat: no-repeat;
}
.project-item p.project-title{
    margin-top: 1rem;
    color: var(--ai-c-secondary);
    font-size: 22px;
}
.project-container{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    grid-column-gap: 20px;
    grid-row-gap: 20px;
}
.project-item {
    padding: 10px;
    border-radius: 5px;
    border: 1px solid var(--ai-bg-transparent);
}
.project-item:hover {
    background: var(--ai-bg-secondary);
    transition: all 500ms;
    border: 1px solid;
}
.project-item:not(:hover) {
    transition: all 500ms;
}
.project-item:hover p.project-title {
    color: var(--ai-c-hover-primary);
}
.contact-social{
    list-style: none;
    padding: 0px;
}
.contact-type-title{
    margin-bottom: 20px;
    font-size: 1.4rem;
    color: var(--ai-c-highlight);
}
.contact-social li{
    padding: 10px 0px;
}
.contact-social li a{
    text-decoration: none;
    color: var(--ai-c-secondary);
    text-transform: lowercase;
}
.contact-social li a:hover{
    color: var(--ai-c-hover-primary);
}
.contact-form{
    font-size: 1.2rem;
}
.contact-form input, .contact-form textarea{
    border: 2px solid var(--ai-bg-primary);
}
.contact-form input:hover, .contact-form textarea:hover{
    border: 2px solid var(--ai-c-hover-primary);
}
.contact-form input[type=text], .contact-form input[type=email], .contact-form input[type=tel], .contact-form textarea {
    width: 100%;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 10px;
}
.contact-form input:focus, .contact-form input:active, .contact-form input:focus-visible, .contact-form textarea:focus, .contact-form textarea:active, .contact-form textarea:focus-visible{
    border: 2px solid var(--ai-c-additional);
}
.contact-form input:focus-visible, .contact-form textarea{
    outline: none;
}
.action-btns input{
    width: 100%;
    border-radius: 10px;
    padding: 10px;
    box-shadow: 0 0 5px var(--ai-c-secondary);
    transition: 500ms;
}
.action-btns input[type=reset]{
    background: var(--ai-c-additional);
    color: var(--ai-c-secondary);
}
.action-btns input[type=reset]:hover{
    background: var(--ai-bg-secondary);
}
.action-btns input[type=submit]{
    background: var(--ai-c-highlight);
    color: var(--ai-c-secondary);
}
.action-btns input[type=submit]:hover{
    background: var(--ai-bg-secondary);
}

/* Media query */
@media (max-width: 1200px) {
    .skills-container {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media (max-width: 1000px) {
    h1.intro-name {
        font-size: 2.5rem;
    }
    .intro-photo{
        height: 220px;
        width: 220px;
    }
}
@media (max-width: 991px) {
    .skills-container {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 767px) {
    .skills-container {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 576px) {
    .px-xs-2 {
        padding-right: 0.75rem !important;
        padding-left: 0.75rem !important;
    }
}
@media (max-width: 450px) {
    .skills-container {
        grid-template-columns: repeat(1, 1fr);
    }
}