:root {
  --text-color-dark: #5f5f5f;
  --text-color-light: #fff;
  --accent-color-1: #8c8a54; 
  --accent-color-2: goldenrod; 
  --background-color: #d8d8d8;
  --nav-padding: 7px;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  width: 100%;
  height: 100%;
}
body {
  /* margin: 0 100px; */
  margin: 0 10%;
  
  background-color: var(--background-color);

  color: var(--text-color-dark);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 18px;
}
a {
  color: var(--text-color-light);
  text-decoration: none;
}
h1 {
  font-size: 32px;
}
h2 {
  font-size: 28px;
}
h3 {
  font-size: 22px;
}
img {
  pointer-events: none;
  -webkit-touch-callout: none;
}
nav svg{
  fill: #fff;
  transition: 1s;
}
nav svg:hover{
  fill: var(--accent-color-1);
}

.accent-1 {
  color: #fff;
  font-size: 2rem;
  width: 50%;
}
.accent-2 {
  font-size: 1rem;
}

@media(max-width: 1080px){
  body {
    margin: 0 0;
  }
  h1, h2, h3, p {
    padding-left: 7%;
    padding-right: 7%;
  }
  .line-length {
    width: 30%;
    margin: 0 7%;
  }
}

/* --------- Page Wrapper --------- */

#page-container {
  position: relative;
  max-width: 1800px;
  min-width: 270px;
  margin: auto;
  min-height: 100vh;
}
#content-wrap {
  padding-bottom: 200px;  /* Footer height */
}

/* --------- Background Images --------- */

#home {
  background-image: 
    linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('images/home_bg.webp');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-color: #000;
  background-attachment: scroll;
}
@media(max-width: 1080px){
  #home {
    background-size: auto 100%;
    background-size: auto 100vh;
    background-size: auto 100dvh;
  }
}

/* --------- Nav Bar --------- */
nav{
  padding-top: 100px;
  display: flex;
  font-size: 28px;
  text-transform: lowercase;
  /* transition: 0.5s; */
  /* border: solid 1px white; */
}
.mainnav--left{
  width: 100%;
  list-style: none;
  display: flex;
  /* align-items: center; */
  /* border: solid 1px cyan; */
}
.mainnav--left a{
  display: flex;
  padding: var(--nav-padding);
  white-space: nowrap;
  background: linear-gradient(120deg, var(--accent-color-1) 20%, var(--accent-color-2) 70%);
  background-blend-mode: color-dodge, overlay, difference, normal;
  background-clip: text;
  transition: 0.5s;
}
.mainnav--left a:hover{
  color: transparent;
}
.mainnav--right{
  width: 100%;
  list-style: none;
  display: flex;
  justify-content: flex-end;
  /* align-items: center; */
  /* border: solid 1px magenta */
}
.mainnav--right a{
  height: 100%;
  padding:  var(--nav-padding);
  text-decoration: none;
  display: flex;
  align-items: center;
  transition: 0.5s;
}
.mainnav--right a:hover{
  color: var(--accent-color-1);
}
.dropdown__btn{
  background-color: transparent;
  border: none;
  padding:  var(--nav-padding);
  
  display:flex;
  align-items: center;
  
  color: #fff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 28px;
  text-decoration: none;
  text-transform: lowercase;
  transition: 0.5s;   
}
.dropdown__btn:hover{
  color: var(--accent-color-1);
}
.dropdown__btn:focus{
  color: goldenrod;
}
.dropdown a{
  display: flex;
  text-decoration: none;
  padding: 2.5px var(--nav-padding);
}
.dropdown__content{
  padding-top: 5px;
  visibility: hidden;
  opacity: 0;
  /* display: none; */
  flex-direction: column;
  position: absolute;
  transition: visibility .7s, opacity .7s linear;
}
.dropdown:hover .dropdown__content{
  visibility: visible;
  opacity: 1;
  /* display: flex; */
  min-width: 100px;
}
.showDropdown{
  visibility: visible;
  opacity: 1;
  content: ""
  /* display: flex; */
}
.sidebar{
  position: fixed;
  z-index: 2;
  top: 0;
  right: 0;
  padding: 10% 7%;
  /* width: 400px; */
  width: 100vw;
  height: 100vh;

  background-color: rgb(95, 95, 95, 0.5);
  backdrop-filter: blur(10px);
  
  display: none;
  flex-direction: column;
  justify-content: space-between;
  flex-wrap: nowrap;
  /* align-items: flex-end; */
}
.sidebar .sidebar--top{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.sidebar .sidebar--bottom{
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  font-size: 22px;
}
.sidebar li{
  width: 100%;
  /* flex-basis: 0; */
  display: flex;
  justify-content: flex-end;
  /* border: solid 1px magenta; */
}
.sidebar a{
  width: 100%;
  padding: var(--nav-padding);
  /*flex-basis: 0;*/ /* Select by text only */
  display: flex;
  justify-content: flex-end;
  transition: 0.5s;
  /* border: solid 1px cyan; */
}
.sidebar a:hover{
  color: var(--accent-color-1);
}
.sidebar i{
  /* margin-top: 100px; */
  display: flex;
  justify-content: flex-end;
}
.menu-button{
  display: none;
}
.dropdown-btn {
  font-size: 28px;
  background-color: transparent;
  text-transform: lowercase;
  border: none;
}
.dropdown-btn i {
  font-size: 16px;
  padding-top: 10px;
  transition: 200ms ease;
}
.rotate i:first-child{
  rotate: -180deg;
}
.sub-menu {
  display: grid;
  grid-template-rows: 0fr;
  transition: 300ms ease-in-out;

  > div{
    overflow: hidden;
  }
}
/* .sub-menu a {
  padding-right: 14px;
} */
.sub-menu.show{
  grid-template-rows: 1fr;
}

@media(max-width: 1080px){
  nav{
  padding-top: 10%;
  padding-left: 7%;
  padding-right: 7%;
  }
  .hideOnMobile{
    display: none;
  }
  .menu-button{
    display: block;
  }
  .mainnav--left a {
    padding: 0px;
  }
}

/* --------- All Pages --------- */
.page-title {
  margin: 80px 0 50px 0;
  font-size: 80px;
  color: var(--accent-color-1);
  text-transform: lowercase;
}
.page-subheading {
  display: flex;
  flex-direction: column;
  font-size: 42px;
  color: #fff;
  text-transform: lowercase;
  transition: 0.5s;
}
.page-subheading:hover {
  color: var(--accent-color-1);
}
@media(max-width: 1080px){
  .page-title {
    margin: 10% 0 7% 0;
    padding-left: 7%;
    padding-right: 7%;    
    font-size: 42px;
  }
  .page-subheading {
    padding: 7px 7%;
    font-size: 28px;
  }
}
/* --------- Home Page --------- */
.intro-section {
  display: flex;
  padding-top: 50px;
  gap: 50px;
  color: var(--text-color-light);
}
.intro-section .text {
  padding: 7px;
}
@media(max-width: 1080px){
  .intro-section .text {
  padding: 7%;
  }
  .intro-section p {
    padding: 0;
  }
}

/* --------- Photography Page --------- */
.gallery-container {
  /* display: flex; */
  /* flex-direction: column; */
  /* justify-content: left; */
  /* columns: 3 300px; */
  columns: 1;
  column-gap: 10px; /* Controls gap between columns */
  /* background: orange; */
}

.img-container {
  /* display: flex; */
  display: block; /* Removes line spacing b/c images display as inline by default. */
  position: relative;
  /* margin-top: 10px; */
  margin-bottom: 10px; /* Controls gap between rows */
  color: #fff;
  max-width: 1200px;
}
.img-container img {
  display: block;
  width: 100%;
  height: auto;
}
.img-container .img-text {
  visibility: hidden;
  opacity: 0;

  position: absolute;
  top: 0;
  padding: 10px;
  inset: 0;
  /* width: 100%;
  height: 100%; */

  font-size: 16px;
  font-weight: 200;

  background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 8%);
  transition: visibility 0.8s, opacity 0.8s linear;
}
.img-container:hover .img-text{
  visibility: visible;
  opacity: 1;
}
@media(max-width: 1080px){
  .img-container {
  margin-bottom: 0px;
}
}

/* --------- Design Page --------- */

.project-section {
  width: 100%;
}

.banner-container {
  display: block;
  position: relative;
  width: 100%;
}

.banner-container .banner-text {
  position: absolute;
  bottom: 0;
  padding: 35px;
  width: 50%;
  color: var(--text-color-light);
}

.project-info {
  width: 100%;
  padding: 10px 0;
}

/* --------- About Page --------- */
.about-section {
  display: flex;
  justify-content: space-between;
  /* align-items: center; */
  gap: 50px;
}
.about-section .portrait img {
  flex: 1;
  border-radius: 50%;
  aspect-ratio: 1 / 1;
  transition: 0.5s;
  /* filter: grayscale(100%); */
}
.portrait {
  display: flex;
  position: relative;
  width: 400px; /* Max portrait size. */
  height: 400px;
}
/* .portrait .overlay {
  position: absolute;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  background: 
  linear-gradient(120deg, rgb(140, 138, 84, 0.5) 0%,
  rgb(128, 128, 0, 0.5) 20%,
  rgb(255, 255, 0, 0.5) 90%);
} */
.about-section .text {
  flex: 2;
  margin-right: 50px;
  min-width: 300px;
}
.about-section .cv {
  flex: 1;
}

@media only screen and (max-width: 1200px) {
  .portrait {
    padding-left: 7%;
    padding-right: 7%;
    width: 85vw;
    height: 85vw;    
  }
  .about-section {
    display: flex;
    flex-direction: column;
    margin-left: 0;
    margin-right: auto;
  }
  .about-section .text {
    flex: 1;
    margin-right: 0px;
}
  .about-section .cv {
    flex: 1;
  }

}

/* --------- Footer --------- */
#footer {
  position: absolute;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 250px;      /* Footer height */
  bottom: 0;
  /* font-size: 22px; */
  color: var(--text-color-light);
  /* border: solid 1px orange; */
}
.footer--left {
  padding: 7px;
}
.footer--right {
  padding: 7px;
  display: flex;
  justify-content: flex-end;
}
.footer--right a {
  padding-left: 15px;
  color: var(--text-color-light);
  transition: 0.5s;
}
.footer--right a:hover {
  color: var(--accent-color-1);
}

@media(max-width: 1080px){
#footer {
  padding-left: 7%;
  padding-right: 7%;
  align-items: flex-end;
  padding-bottom: 10%;
}
.footer--left {
  font-size: 16px;
  padding: 0 0 10px 0;
}

.footer--left p {
  padding: 0;
}
}

/* --------- Animations --------- */
@keyframes fade-in {
  0% {
  opacity: 0.0;
  }
  100% {
  opacity: 1;
  }
}
.fade-in-fast {
  animation: 1s fade-in;
}
.fade-in-medium {
  animation: 3s fade-in;
}
.fade-in-slow {
  animation: 5s fade-in;
}
.fade-in-slower {
 animation:fade-in 2s linear 1s backwards;
}