/* ------ Outer Containers Styling Begin ------ */
html {
    min-width: 360px;
}
body{
    background-color: black;
    background-image: url("../images/background/background_colors.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
	width: 100vw;
	margin: 0px;
	display: flex;
	flex-flow: row nowrap;
	justify-content: center;
    letter-spacing: 0.04em;
    font-family: 'avenir', sans-serif;
    text-decoration: none;
    color: white;
}
/* removes underline from links */
a {
    text-decoration: none;
}
/* ------ End Outer Containers Styling ------ */


/* ------ Left Bar Styling Begin ------ */
/* outer container to give bar a relative width. keeps right side content from overlapping since bar has a fixed position */
#left_bar_wrapper {
    width: 20%;
    min-width: 250px;
    max-width: 300px;
}
/* styling for left bar */
#left_bar {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 15%;
    height: 100vh;
    display: flex;
    flex-flow: column;
    box-sizing: border-box;
    padding-left: 2%;
    padding-top: 2%;
    min-width: 250px;
    max-width: 300px;
    /* adds background color to left bar */
    padding-right: 2%;
    background-color: rgba(0,0,20,0.3);
    
}

/* logo styling */
#logo img {
    width: 50%;
}
#logo img:hover {
    opacity: 0.5;
}

/* title container styling */
#title {
	display: flex;
    flex-flow: column;
	align-items: flex-start;
    margin-top: 1vw; 
}
/* design source title styling */
h1 {
    font-weight: 700;
	font-size: 1.6em;
    margin: 0px;
}
/* contact info styling */
#title p {
    margin: 0;
    font-size:0.9em;
    color: rgba(255,255,255,0.7);
}

/* menu styling */
#menu {
    display: flex;
    flex-flow: column;
    width: 100%;
    margin-top: 2vw;
    padding-top: 0.5vw;
    padding-bottom: 1.5vw;
    border-top: solid white 1px;
    border-bottom: solid white 1px;
}
/* menu item styling */
#menu p, .dropdown button, #menu_items_mobile li {
    font-family: 'avenir', sans-serif;
    font-size: 1.3em;
    font-weight: 700;
    margin: 0px;
    margin-top: 1vw;
    color: rgba(255,255,255,1);
    /* hides background color on design dropdown */
    background-color: Transparent;
    border: none;
    padding: 0px;
}
/* design menu button coloring for about and contact pages */
#menu button a, #menu_items_mobile button a {
    color: white;
}
#menu p:hover {
    color: rgba(255,255,255,0.7);
}
/* style menu item for indicating current page */
#menu #current_page, #mobile_menu #current_page {
    color: rgba(190,190,190,1);
}

/* hides mobile menu on desktop */
#mobile_menu {
    display: none;
}

/* keeps design dropdown content from displaying when not hovering */
/* also styles dropdown background */
.dropdown-content {
    display: none;
}
/* styles design dropdown content */
.dropdown-content a {
    display: block;
    color: rgba(255,255,255,1);
    font-size: 0.9em;
    padding-top: 0.5vw;
}
/* displays dropdown content when hovering over design item */
.dropdown:hover .dropdown-content {
    display: block;
}
/* styling for dropdown content on hover */
.dropdown-content a:hover {
    color: rgba(255,255,255,0.7);
}
/* ------ Left Bar Styling End ------ */


/* ------ Content Styling Begin ------ */
/* content container styling */
#content {
    width: 80vw;
    display: flex;
    flex-flow: column;
    box-sizing: border-box;
    padding-left: 2vw;
    padding-right: 4vw;
    padding-top: 4vw;
    padding-bottom: 4vw;
    min-height: 100vh;
}

/* section title container styling */
.project_switch_section {
    display: flex;
    flex-flow: row nowrap;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    border-bottom: solid white 1px;
    border-top: solid white 1px;
    padding-top: 1vw;
    padding-bottom: 1vw;
    background: rgb(0,0,0);
    background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 10%, rgba(0,0,0,0.2) 90%, rgba(0,0,0,0) 100%);
}
/* section title styling */
h2 {
	color: white;
	font-size: 1.7em;
    font-weight: 600;
    margin: 0px;
    width: 100%;
    text-align: center;
}

/* previous + next button styling */
.project_switch_button {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    height: 40px;
    min-width: 150px;
}
/* justify next button to the right */
#next_button {
    justify-content: flex-end;
}
/* button text styling */
.project_switch_button a {
    display: flex;
    height: 100%;
    color: white;
    align-items: center;
    letter-spacing: 0em;
}
/* button arrow styling */
.project_switch_button a img {
    width: 6px;
    height: 8px;
    margin-left: 6px;
    margin-right: 6px;
}
/* button hover styling */
.project_switch_button:hover {
    opacity: 0.6;
}

/* content rows styling */
.rows {
    width: 100%;
    display: flex;
    flex-flow: row nowrap;
    box-sizing: border-box;
    margin-top: 2%; 
    justify-content: space-between;
    align-items: flex-start;
}
.rows img {
    width: 100%;
}
.rows a:hover {
    opacity: 0.8;
}
/* two item row styling */
.two_item_row_image {
    width: 49%;
}
/* three item row styling */
.three_item_row_image {
    width: 32%;
}

/* copyright styling */
#copyright {
    color: rgba(255,255,255,0.6);
    font-size: 0.9em;
    text-align: center;
    margin-top: 2vw; 
}
/* ------ Content Styling End ------ */


/* ------ Design Page Styling Begin ------ */
/* content container styling */
.design-content {
	display: flex;
	flex-flow: row wrap;
    margin-top: 3vw;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}
/* category container styling */
.category_box {
	width: 30%;
    min-width: 250px;
	display: flex;
	flex-flow: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    padding: 1.5vw;
    padding-bottom: 0px;
}
/* category name container styling */
.category_name {
    display: flex;
	align-items: center;
	width: 100%;
    margin-bottom: 2vw;
	height: 30px;
    margin-top: 20px;
}
/* category name styling */
.category_name h3 {
	width: 100%;
	text-align: center;
	font-size: 1.3em;
    margin-bottom: 0px;
    margin-top: 0px;
	color: white;
    font-weight: 400;
    letter-spacing: 2px;
}
/* category hover styling */
.category_box:hover {
    opacity: 60%;
}
/* category image styling */
.profile_image {
    border-radius: 50%;
    width: 75%;
    border: solid 3px white;
    background: rgb(19,16,75);
    background: radial-gradient(circle, rgba(19,16,75,1) 40%, rgba(0,0,0,1) 100%);
}
/* ------ Design Page Styling End ------ */


/* ------ About Page Styling ------ */
#about_text_container {
    padding: 5vw;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.2em;
}
#about_text_container h2 {
    font-size: 1.4em;
}
.about_heading {
    margin-top: 6vw;
}
/* ------ About Page Styling End ------ */


/* ------ Contact Page Styling ------ */
#contact_info_container {
    padding: 5vw;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
#contact_info_container p {
    font-size: 1.3em;
    font-weight: 500;
    text-align: left;
    margin-bottom: 3vw;
}
.info_section {
    width: 100%;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 1vw;
}
.contact_icon {
    width: 50px;
    margin-right: 20px;
}
.info_section {
    color: white;
}
.info_section:hover {
    opacity: 0.6;
}
/* ------ Contact Page Styling End ------ */


/* ------ Tablet Styling ------ */
@media screen and (max-width: 1100px) {
    
    /* --- Mobile Menu Styling Begin --- */
    #mobile_menu {
        display: flex;
        opacity: 0;
        animation-name: menu_hide;
        animation-duration: 0.1s;
        animation-delay: 0.5s;
        animation-fill-mode: forwards;
        z-index: 3;
    }
    /* animation to fix display issue on load */
    @keyframes menu_hide {
        from {opacity: 0;}
        to {opacity: 1;}
    }
    /* mobile menu item hover styling */
    #menu p:hover, .dropdown:hover button, #menu_items_mobile li:hover{
        background-color: rgb(50,50,50);
    }
    
    /* place toggle icon */
    #menuToggle {
      display: block;
      position: absolute;
      top: 4vw;
      left: 4vw;
      z-index: 1;
      user-select: none;
    }
    /* place toggle button */
    #menuToggle input {
      display: block;
      width: 40px;
      height: 32px;
      position: absolute;
      top: -7px;
      left: -5px;
      cursor: pointer;
      opacity: 0; /* hide this */
      z-index: 2; /* and place it over the hamburger */
    }
    /* style hamburger menu */
    #menuToggle span {
      display: block;
      width: 33px;
      height: 3px;
      margin-bottom: 8px;
      position: relative;
      background: #cdcdcd;
      z-index: 1;
      transform-origin: 4px 0px;
      transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
                  background 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
                  opacity 0.55s ease;
    }
    /* shorten second span */
    #menuToggle span:nth-child(3) {
      width: 25px;
    }
    /* move last span on click */
    #menuToggle span:nth-child(4) {
      transform-origin: 0% 100%;
    }
    /* rotate and place first span on click*/
    #menuToggle input:checked ~ span {
      transform: rotate(45deg) translate(0px, 2px);
    }
    /* hide second span on click*/
    #menuToggle input:checked ~ span:nth-child(3) {
      opacity: 0;
    }
    /* rotate and place third span on click*/
    #menuToggle input:checked ~ span:nth-last-child(2) {
      transform: rotate(-45deg) translate(0, -1px);
    }
    /* style menu background */
    #menu_items_mobile {
        background-color: black;
        position: absolute;
        top: 0;
        box-sizing: border-box;
        width: 100vw;
        height: 200vh;
        margin: 0vw;
        margin-left: -4vw;
        margin-top: -4vw;
        padding: 0vw;
        padding-top: 10vh;
        transform: translate(-100%, 0);
        transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
    }
    /* removes bullets from menu items */
    #mobile_menu ul {
        list-style-type: none;
    }
    /*slide from left */
    #menuToggle input:checked ~ ul {
      transform: none;
    }
    
    .dropdown button, #menu_items_mobile li {
        font-weight: 700;
        font-size: 2em;
        text-align: center;
        color: rgba(255,255,255,1);
        background-color: Transparent;
        border: none;
        width: 100%;
        padding: 0px;
        padding-top: 2vw;
        padding-bottom: 2vw;
        margin: 0;
        margin-bottom: 3vw;
    }
    /* turns off dropdown background from desktop*/
    .dropdown-content {
        margin-top: 0px;
        background-color: rgba(0,0,0,0);
        padding-left: 0px;
        padding-bottom: 0vw;
    }
    /* style menu item for indicating current page */
    #mobile_menu #current_page {
        color: rgba(190,190,190,1);
    }
    .dropdown-content {
        margin-top: -3vw;
    }
    /* styles design dropdown content */
    .dropdown-content a {
        font-size: 1.2em;
    }
    /* center design dropdown text */
    .dropdown {
        text-align: center;
    }
    /* design dropdown content tablet styling */
    .dropdown-content a {
        margin-top: 1vw;
        padding-top: 0.5vw;
        padding-bottom: 1.5vw;
        padding-left: 0.5vw;
        border-bottom: solid 1px gray;
    }   
    /* --- Mobile Menu Styling End --- */
    
    /* changes body flow to column */
    body {
        flex-flow: column;
        box-sizing: border-box;
        width: 100vw;
        padding: 5vw;
    }
    
    /* makes left bar a full width header */
    #left_bar_wrapper {
        min-width: 100%;
        max-width: 100%;
        width: 100%;
    }
    /* tablet styling for left bar */
    #left_bar {
        padding: 0px;
        position: relative;
        min-width: 100%;
        max-width: 100%;
        width: 100%;
        height: 100%;
        align-items: center;
        margin-bottom: 5%;
    }
    
    /* changes title section flow to row */
    #title_box {
        display: flex;
        flex-flow: row nowrap;
        width: 100%;
        justify-content: center;
    }
    /* tablet logo width */
    #logo {
        width: 20%;
    }
    #logo img {
    width: 100%;
    }
    
    /* tablet title styling */
    #title {
        margin-left: 5vw;
        margin-top: 0px;
        justify-content: center;
        font-size: 1.2em;
    }
    
    /* hides desktop menu on tablet */
    #menu {
        display: none;
    }
    
    /* content container tablet styling */
    #content {
        position: relative;
        width: 100%;
        display: flex;
        flex-flow: column;
        padding: 0px;
    }
    
    /* design menu page button centering on tablet */
    .design-content {
	   justify-content: center;
    }
    /* turns off left bar background color on tablet */
    #left_bar {
        background-color: rgba(0,0,20,0);
    }
}


/* ------ Mobile Styling ------ */
@media screen and (max-width: 768px) {
    
    .project_switch_section {
        flex-flow: row wrap;
        justify-content: space-between;
        padding: 0px;
    }
    /* centers content header */
    .project_switch_section :nth-child(2) {
        margin-left: auto;
        margin-right: auto;
    }
    /* styles content header */
    .project_switch_section h2 {
        width: 90vw;
        text-align: center;
        font-size: 1.9em;
        padding-top: 10px;
        padding-bottom: 10px;
        border-bottom: solid white 1px;
    }
    /* styles page switch buttons */
    .project_switch_button {
        font-size: 1.2em;
        padding-top: 5px;
        padding-bottom: 5px;
        opacity: 0.8;
    }
    /* changes order to make switch buttons come after heading */
    .project_switch_section .project_switch_button {
        order: 1;
    }
    
    /* moves mobile menu items down towards center of screen on mobile*/
     #menu_items_mobile {
        padding-top: 20vh;
    }
    /* styles menu item spacing on mobile */
    .dropdown button, #menu_items_mobile li {
        padding-top: 4vw;
        padding-bottom: 4vw;
        margin-bottom: 7vw;
    }
    /* removes margin spacing from design item bottom */
    .dropdown-content {
        margin-top: -7vw;
    }
     /* design dropdown content tablet styling */
    .dropdown-content a {
        margin-top: 2vw;
        padding-top: 0.5vw;
        padding-bottom: 2.5vw;
    }   
    
    /* changes title container flow to column on mobile */
    #title_box {
        flex-flow: column;
        align-items: center;
    }
    /* design source title sizing on mobile */
    h1 {
        font-size: 1.5em;
    }
    /* logo width on mobile */
    #logo {
        width: 30%;
    }
    /* centers title text on mobile */
    #title {
        align-items: center;
        margin: 0;
        margin-top: 2vw;
    }
    /* centers contact text on mobile */
    #title p {
        text-align: center;
    }
    
    /* changes row flow to column on mobile */
    .rows {
        flex-flow: column;
        margin: 0
    }
    /* row image sizing on mobile */
    .two_item_row_image, .three_item_row_image {
        width: 100%;
        margin-top: 5%;
    }
    
    /* design page overall content container styling on mobile */
    .design-content {
        flex-flow: column;
        align-items: center;
    }
     /* design page category container styling on mobile */
    .category_box {
        width: 75%;
        margin-top: 10vw;
    }
    
    /* moves about content down on mobile */
    #about_text_container {
        margin-top: 5vw;
    }
    /* left aligns about us headings on mobile */
    #about_text_container h2 {
        text-align: left;
    }
    /* adjusts spacing between paragraph sections on mobile */
    .about_heading {
        margin-top: 10vw;
    }
    
    /* adjusts contact page spacing on mobile */
    #contact_info_container p {
        margin-bottom: 8vw;
    }
    
}