/*
    ? @document-start
    ======================
    | PRIMARY CSS STYLES |
    ==================================================================================================================================

    ? @author:                 William J. Horn
    ? @document-name:          primary-styles.css
    ? @document-created:       02/24/2022
    ? @document-modified:      02/26/2022
    ? @document-version:       v1.0.0.0

    ----------------------------------------------------------------------------------------------------------------------------------

    ? @document-about
    ==================
    | ABOUT DOCUMENT |
    ==================================================================================================================================

    The primary css styles for webpage

    ----------------------------------------------------------------------------------------------------------------------------------

    ? @document-changelog
    ======================
    | DOCUMENT CHANGELOG |
    ==================================================================================================================================

    * If this program supports changelog records then there should be a 'changelog' folder within the same directory as this program
    file. Learn more about the changelog system here (or search for '@ changelog-help' (without the space) in your text editor):
    https://github.com/william-horn/my-coding-conventions/blob/main/document-conventions/about-changelog.txt

    ----------------------------------------------------------------------------------------------------------------------------------
*/

/* -----------------------*/
/* Utilities              */
/* ---------------------- */
/* @program-main          */
/* @css:"utility classes" */
/* ---------------------- */

/* flexbox class to convert <ul> elements into rows */
.flex-list-row {
    display: flex;
    height: 50%;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
}

.flex-list-row li {
    width: 33%;
    height: 100%;
    display: flex;
    align-items: center;
    background-color: #2f465f;
}

/* flexbox class to convert <ul> elements into columns */
.flex-list-column {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    width: 60%;
    margin: 30px auto;
    background-color: #2f465f;
    border-radius: 20px;
}

.flex-list-column li {
    padding-left: 15px;
    padding-right: 15px;
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 20px;
}

.reset-links {
    all: unset;
    cursor: pointer;
}

a:hover {
    color: var(--theme-link-hover-color);
    text-shadow: var(--theme-nav-bar-hover-text-shadow);
    transition: color 0.2s;
}

/* -------------- */
/* Main Nav Bar   */
/* -------------- */
/* @css:"nav bar" */
/* -------------- */

.navbar-header {
    background-color: var(--theme-main-background-color);
    width: 100%;
    height: 100px;
}

/* first three children of the nav bar */
.flex-list-row li:nth-child(-n + 3) {
    background-color: #96abbb;
}

/* ------------------ */
/* Main Header Styles */
/* ------------------ */
/* @css:"header"      */
/* ------------------ */

/* main content container of page header */
.header-info-container {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding: 15px 0 15px 0;
    width: 60%;
    margin: 0 auto;
}

/* main profile picture */
.header-info-container img {
    max-width: 400px;
    width: 80%;
    padding: 10px;
    border-radius: 10px;
    border: 5px solid var(--theme-image-border-color);
    margin: 10px;
    /* background-color: #5bacff; */
    box-shadow: 0 0 10px black;
}

/* main heading text of webpage */
.header-title {
    margin-top: 10px;
    text-align: center;
    font-size: 35px;
    color: var(--theme-default-text-color);
}

/* sub-heading text of main heading (portfolio owner's name) */
.header-title span {
    color: var(--theme-secondary-text-color);
    font-size: 24px;
}

/* ----------------------------- */
/* Main Body "My Skills" Section */
/* ----------------------------- */
/* @css:"my skills section"      */
/* ----------------------------- */

.image-card {
    border-radius: 10px;
    border: 5px solid var(--theme-image-border-color);
    box-shadow: 0 0 10px black;
}

.image-row {
    margin-top: 40px;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-around;
}

.image-row img {
    width: 20vw;
    height: 22vw;
    object-fit: cover;
    border-radius: 10px;
    border: 5px solid var(--theme-image-border-color);
    box-shadow: 0 0 10px black;
}

.my-skills ul {
    padding: 20px;
}

/* ------------------------------- */
/* Main Body "My Projects" Section */
/* ------------------------------- */
/* @css:"my projects"              */
/* ------------------------------- */

/* remove default padding for My Projects section */
main .my-projects {
    padding: 0;
}

/* default text properties for My Projects */
.project-info-container p, .project-description p {
    color: var(--theme-default-text-color);
    font-size: 15px;
    text-align: center;
}

/* primary project banner */
.project-banner {
    background-color: var(--theme-main-background-color);
    width: 100%;
    height: 450px; 
    display: flex;
    border-radius: 15px;
    /* flex-wrap: wrap; */
    flex-direction: column;
    margin-bottom: 50px;
    justify-content: space-around;
    align-items: center;
    padding: 20px;
}

.project-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.project-link-container {
    height: 70%;
    width: 100%;
    padding-bottom: 20px;
    margin: 0 auto;
}

.project-info-container {
    height: 30%;
    overflow-y: scroll;
}


/* list of secondary project links */
.project-list {
    width: 90%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    /* padding: 20px; */
    margin: 0 auto;
}

/* target all project list items */
.project-list > article {
    background-color: var(--theme-main-background-color);
    border-radius: 15px;
    height: 250px;
    /* margin-top: 15px; */
    margin-bottom: 10px;
    width: 100%;
    display: flex;
    justify-content: flex-start;
}

/* default project image properties */
.project-list img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* div that controls project images */
.project-picture {
    width: 50%;
    height: 100%;
    padding:15px;
}

.project-description {
    padding: 15px;
    width: 50%;
}

.project-description h3 {
    margin-bottom: 15px;
}

/* -------------------- */
/* Contact Me Section   */
/* -------------------  */
/* @css:"contact me"    */
/* -------------------- */

/* contact me footer */
.contact-me {
    width: 100%;
    margin-top: 50px;
    background-color: var(--theme-main-background-color);
}

/* footer heading */
.contact-me h2 {
    text-align: center;
    color: white;
    font-size: 35px;
    margin-bottom: 40px;
}

/* set default text and link appearance */
.contact-me p {
    color: var(--theme-default-text-color);
}

.contact-me a {
    cursor: pointer;
    display: inline;
    color: #cacaca;
}

/* color the contact information differently */
.contact-info p:first-child span {
    color: var(--theme-secondary-text-color);
}

.contact-info p:last-child span {
    color: #7ea0ff;
}

.contact-info {
    padding-bottom: 50px;
}

/* ---------------------------------- */
/* Media Queries for Platform Support */
/* ---------------------------------- */
/* @css:"media queries"               */
/* ---------------------------------- */

/* the min-width value chosen here is an arbitrary value where webpage transition has greatest impact */
/* when screen grows to 946 pixels, do this... */
@media screen and (min-width: 945px) {

    /* add left/right margins to main page content for a slimmer feel on a wider screen */
    main {
        margin: 0 15% 0 15%;
    }

    /* add left/right margins to the nav bar in proportion to the <main> content */
    nav .flex-list-row {
        padding: 0 15% 0 15%;
    }

    /* all main section heading text should grow larger */
    main section h2 {
        font-size: 40px;
    }

    /* primary page heading text should grow larger */
    .header-title {
        font-size: 50px;
    }

    .header-title span {
        font-size: 30px;
    }

    /* project list should slim down */
    .my-projects {
        width: 80%;
        margin: 0 auto;
    }

    .my-projects div > div {
        border-radius: 20px;
    }
}

/* ? @document-end */