/* Variables */
:root {
    --background-color-light: #f5f5f5;
    --background-color-dark: #121212;

    --text-color-light: #333;
    --text-color-dark: #fff;

    --link-color-light: #0073b1;
    --link-color-dark: #1e90ff;

    --icon-color-light: #0073b1;
    --icon-color-dark: #1e90ff;

    --button-primary-background-light: #0073b1;
    --button-primary-background-dark: #1e90ff;

    --button-primary-color-light: #fff;
    --button-primary-color-dark: #fff;

    --button-secondary-background-light: transparent;
    --button-secondary-background-dark: transparent;

    --button-secondary-color-light: #0073b1;
    --button-secondary-color-dark: #1e90ff;
}

@media (prefers-color-scheme: light) {
    :root {
        --background-color: var(--background-color-light);
        --text-color: var(--text-color-light);
        --link-color: var(--link-color-light);
        --icon-color: var(--icon-color-light);
        --button-primary-background: var(--button-primary-background-light);
        --button-primary-color: var(--button-primary-color-light);
        --button-secondary-color: var(--button-secondary-color-light);
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --background-color: var(--background-color-dark);
        --text-color: var(--text-color-dark);
        --link-color: var(--link-color-dark);
        --icon-color: var(--icon-color-dark);
        --button-primary-background: var(--button-primary-background-dark);
        --button-primary-color: var(--button-primary-color-dark);
        --button-secondary-color: var(--button-secondary-color-dark);
    }
}

/* Global */
html {
    font-size: 62.5%;
    /* This makes 1rem = 10px (easier calculation) */
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Fira Code', monospace;
}

body {
    background-color: var(--background-color);
    color: var(--text-color);
    line-height: 1.6;
}


i.icon {
    height: 1.8rem;
    width: 1.8rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background-color: var(--icon-color);
}

p,
a {
    font-size: 1.6rem;
}

a {
    color: var(--link-color);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a.button {
    padding: .7rem 1.4rem;
    border-radius: .5rem;
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .7rem;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

a.button.button-primary {
    background-color: var(--button-primary-background);
    border: 1px solid var(--button-primary-background);
    color: var(--button-primary-color);
}

a.button.button-primary i.icon {
    background-color: var(--button-primary-color);
}

a.button.button-secondary {
    background-color: var(--button-secondary-background);
    border: 1px solid var(--button-secondary-color);
    color: var(--button-secondary-color);
}

/* Header */
header .header-content-container {
    max-width: 80rem;
    margin: 5rem auto 0;
    display: flex;
    align-items: center;
    gap: 2rem;
}

header .profile-photo-container .profile-photo {
    width: 15rem;
    height: 15rem;
    border-radius: 50%;
}

header .header-content-container .header-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

header .header-content-container .header-content .title {
    font-size: 2.8rem;
    line-height: 1;
}

header .header-content-container .header-content .subtitle {
    font-size: 1.8rem;
}

header .header-content-container .header-content .icon.linkedin-icon {
    height: 2rem;
    width: 2rem;
    mask: url("assets/icons/linkedin.svg") no-repeat center;
}

header .header-content-container .header-content .icon.github-icon {
    mask: url("assets/icons/github.svg") no-repeat center;
}

header .call-to-action .icon.mail-icon {
    mask: url("assets/icons/mail.svg") no-repeat center;

}

header .call-to-action .icon.open-in-new-tab-icon {
    mask: url("assets/icons/open-in-new-tab.svg") no-repeat center;
}

header .header-content-container .header-content .contact-details {
    display: flex;
    align-items: center;
    gap: 1rem;
}

header .header-content-container .header-content .contact-details p {
    display: flex;
    align-items: center;
}

header .call-to-action {
    display: flex;
    align-items: center;
    gap: 1rem;
    max-width: 80rem;
    margin: 0 auto;
    padding-left: 17rem;
}


header .call-to-action .contact-me,
header .call-to-action .resume {
    min-width: 18rem;
}

@media (max-width: 840px) {
    header .header-content-container {
        max-width: initial;
        margin: 3rem 3rem 0;
    }

    header .call-to-action {
        gap: 1rem;
        margin: 0 3rem;
    }
}

@media (max-width: 670px) {
    header .header-content-container {
        gap: 1rem;
    }

    header .profile-photo-container .profile-photo {
        width: 10rem;
        height: 10rem;
    }

    header .header-content-container .header-content .title {
        font-size: 2.4rem;
    }

    header .header-content-container .header-content .subtitle {
        font-size: 1.6rem;
    }

    header .call-to-action {
        margin-top: 2rem;
        padding-left: 11rem;
    }
}

@media (max-width: 557px) {
    header .call-to-action {
        margin: 0;
        margin-top: 2rem;
        padding: 1rem 3rem;
        border-top: 1px solid #ccc;
        border-bottom: 1px solid #ccc;
    }

    header .call-to-action .contact-me,
    header .call-to-action .resume {
        flex: 1;
        min-width: 14rem;
    }

    header .header-content-container .header-content .title {
        font-size: 2rem;
    }

    header .header-content-container .header-content .subtitle {
        font-weight: normal;
        font-size: 1.6rem;
        letter-spacing: 0px;
        word-spacing: -5px;
    }
}

@media (max-width: 400px) {

    header .header-content-container {
        flex-direction: column;
        align-items: start;
        margin: 3rem 2rem 0;
    }

    header .call-to-action {
        padding: 1rem 2rem;
    }


}

/* Main */
main {
    max-width: 80rem;
    margin: 5rem auto;
}

main .about p:not(:last-child) {
    margin-bottom: 1rem;
}

@media (max-width: 840px) {
    main {
        max-width: initial;
        margin: 3rem;
    }
}

@media (max-width: 670px) {
    main .about p {
        font-size: 1.5rem;
    }
}

@media (max-width: 400px) {
    main {
        max-width: initial;
        margin: 2rem;
    }
}

/* Footer */
footer {
    max-width: 80rem;
    margin: 5rem auto;
    text-align: center;
}

footer p {
    font-size: 1.4rem;
}

footer p a {
    font-size: 1.4rem;
}

@media (max-width: 840px) {
    footer {
        max-width: initial;
        margin: 4rem 3rem;
    }
}

@media (max-width: 670px) {
    footer p {
        font-size: 1.2rem;
    }
}