/*set theme colors as variables*/
:root {
    --slate-blue-dark: #45818E; 
    --slate-blue-light: #A2C4C9;
    --dark-blue: #324d53;
    --light-grey: #F3F3F3;
    --dark-grey: #525252;
    --shadow: #353535;
}

/*set default theme font*/
* {
    font-family: 'Figtree', sans-serif;
}


/*ELEMENT SELECTORS*/

header {
    background-color: var(--teal-blue-dark);
    margin: -8px; /*ensures no white space around banner*/
} 

nav {
    flex-direction: row;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    width: 40%;
}

a {
    text-decoration: none; /*text appearance does not change for links (no underline)*/
    color: #ffffff;
}

section {
    display: flex;
}

h2 {
    text-align: right;
    width: 20%;
    padding-right: 2%;
    padding-top: 1%;
    margin-top: 20px;
    font-size: 30px;
}

p{
    width: 60%;
    padding: 0 2% 2% 2%;
    border-left: 5px var(--dark-grey) solid;
    margin-top: 20px;
    padding-top: 1%
}

/*styling for font-awesome icons*/
i {
    padding: 10%;
    font-size: 24px;
}

footer {
    background-color: var(--slate-blue-dark);
    height: 75px;
    padding: 0;
    margin: -8px;
}

/*CLASS SELECTORS*/

/*<header> element styles*/
.linear-gradient-background {
    background-image: linear-gradient(
      var(--slate-blue-dark) 0%,
      var(--slate-blue-light) 100%
    );
}

.header-container{
    display:flex;
    flex-direction: row;
    justify-content: space-between;
}

.page-title {
    display:flex;
    justify-content: flex-start;
    font-size: 40px;
    padding-left: 25px;
    font-family: 'Montagu Slab', serif; /*used for h1 tag in header section, name in banner uses different font*/
}

.button {
    background-color: var(--slate-blue-dark);
    display: inline-flex;
    margin: 0 2px;
    padding: 2%;
    align-items: flex-end;
    border:1px solid var(--dark-blue);
}

.button:hover {
    color: #ffffff;
    box-shadow: 0px 0px 2px 2px var(--shadow);
    background-color: #2e5861;
    transition: 0.5s;
}

.banner-container, .project-container {
    position: relative;
}

.banner-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: 25% 25%;
    opacity: 50%;
    filter: hue-rotate(-15deg);
    display: flex;
}

.banner-text {
    position: absolute;
    bottom: 20px;
    right: 0;
    background-image: linear-gradient(to right, rgba(255,0,0,0), var(--dark-blue) 60%);
    border: none;
    color: white;
    padding-left: 200px;
    padding-right: 20px;
}

.quote, .quote-attribute {
    text-align: right;
}

.quote, .project-title {
    margin-bottom: 0;
    font-size: 1.1em;
    font-weight: bold;
    padding-top: 2%;
}

.quote-attribute {
    margin-top: 1%;
    font-size: .9em;
    padding-bottom: 2%;
}

/*<main> element styles*/

.container{
    display:flex;
    flex-direction: column;
}

.about-me-details {
    display: flex;
    width: 65%;
}

/*stylings for project images and links*/

.project-section {
    border-left: 5px var(--dark-grey) solid;
    padding-left: 2%;
    width: 60%;
}

.project-grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 20px;
}

.project-large {
grid-column: 1 / -1; /* Span the full width of the grid */
}

.project-text {
    position: absolute;
    bottom: 30px;
    min-width: 40%;
    left: 5px; /*start title banner on inside of image border*/
    background-color: var(--dark-blue);
    color: white;
    padding: 2%;
    opacity: 50%; /*same opacity as project image*/
    pointer-events: none; /*disable hover behavior acting independently of project image*/
}

.project-details {
    margin-top: 1%;
    font-size: .8em;
    padding-bottom: 2%;
}

.project img {
width: 100%; /* Ensure the images fill their respective containers */
height: auto; /* Maintain aspect ratio */
opacity: 50%;
border: var(--slate-blue-dark) solid 5px;
}

.project-large img:hover, .project img:hover, .project:hover, .project:hover .project-text {
    opacity: 100%; /*images become full color on hover*/
    transition: 0.5s;
    transform: scale(1.01); /*images grow slightly larger on hover*/
}

.project:hover .project-text {
    box-shadow: 0px 0px 2px 2px var(--shadow);
    left: 3px;
}

/*Contact info section styles*/

.contact-info {
    padding: 1%;
}

.contact-link {
    color: black;
}
  
.contact-link:hover {
    color: var(--slate-blue-dark);
    transition: 0.2
    s;
}

.contact-info-container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 2%;
    white-space: nowrap;
}

.footer-text {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 75px; /*same height as the footer container*/
}


/*ID SELECTORS*/

/*creates white border with shadow drop*/
#portrait {
    height: auto; /*maintains aspect ratio*/
    width: 40%;
    padding: 2%;
    margin-top: 20px;
    box-shadow: 0 4px 8px 0 #00000033, 0 6px 20px 0 #00000030;
    margin-bottom: 20px;
    object-fit: contain;
}


/*MEDIA QUERIES*/

@media (max-width: 800px) {

    .header-container, .page-title, .nav {
    display:block;
    text-align: center;
   }

   .quote, .quote-attribute, .banner-text {
    visibility: hidden;
   }

   #portrait {
    box-shadow: none;
   }

   nav {
    width: 100%;
    margin: 1%;
    min-height: 50px;
   }

   .project-grid {
    display: flex;
    flex-direction: column;
   }

   .contact-info-container {
    flex-direction: column;
    align-items: flex-start;
   }


  }




