/* variables declared here - these are the colors for our pages, as well as the font stacks and sizes. */
:root {
  --dark: #182625;
  --darkTrans: rgb(24, 38, 37, 0.9);
  --darkGreen: #28403d;
  --lightGray: #455559;
  --darkGray: #2f3d40;
  --lightBlue: #3d5a73;
  --gold: #d9b282;
  --white: #f7f8fa;
  --font-size: 1.3rem;
  --mono: 'Oxygen mono', monospace;
  --sans: Oxygen, sans-serif;
}
/* border box model: https://css-tricks.com/box-sizing/ */
html,
body {
  width: 100%;
}

html {
  box-sizing: border-box;
}
*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  padding: 0;
  margin: 0;
  font-family: var(--sans);
  background-color: var(--lightBlue);
  color: var(--white);
  font-size: var(--font-size);
}

h1,
h2,
h3 {
  margin: 0;
}

.hide-element {
  display: none;
}

/* Images */

.portrait {
  max-width: 50%;
  height: auto;
}

.lazy-img {
  filter: blur(2px);
}

img {
  width: 100%;
  transition: filter 0.2s;
}

/* Button generic */
.btn {
  cursor: pointer;
  background-color: var(--gold);
  color: var(--dark);
  padding: 0.5rem;
  border-radius: 5px;
  font-family: var(--mono);
  text-decoration: none;
}

.btn:hover {
  color: var(--dark);
  background-color: var(--white);
}

/* Header */

.header {
  height: auto;
  overflow: visible;
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  transition: top 0.3s ease-in-out, width 0.3s ease-in-out;
}

/*! Started adding hamburger menu */
/* 
.hamburger-menu {
  background-color: var(--dark);
  text-decoration: none;
  border: none;
  cursor: pointer;
} */

/* Section Separator */

.gradient {
  background: rgb(191, 137, 117);
  background: linear-gradient(
    90deg,
    rgba(191, 137, 117, 1) 0%,
    rgba(64, 47, 41, 1) 100%
  );
  height: 2px;
}

/* navbar */

.nav {
  max-width: 100%;
  overflow: hidden;
  background-color: var(--dark);
  opacity: 0.9;
  z-index: 1000;
  margin: 0;
  font-family: var(--mono);
  font-size: 80%;
  padding: 1rem;
}

nav h1 a {
  font-family: var(--sans);
}

nav ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

nav li:first-child {
  flex-basis: 100%;
  text-align: center;
}

a {
  color: var(--gold);
  text-decoration: none;
  display: inline-block;
}

.social__icons {
  width: 20px;
  height: 25px;
  fill: var(--gold);
  vertical-align: -0.125em;
}

a:hover {
  color: var(--white);
}

a:hover .social__icons {
  fill: var(--white);
}

@media (min-width: 600px) {
  nav {
    max-width: 1200px;
    margin: 0 auto;
  }
  nav li:first-child {
    flex-basis: auto;
    text-align: left;
    margin-right: auto;
  }
}

.small-nav {
  top: 10px;
  width: 80%;
  margin: 0 auto;
  border-radius: 10px;
  overflow: hidden;
}

/* All sections generic */
.sections {
  max-width: 1200px;
  margin: 0 auto;
  padding: 5% 2% 5% 2%;
  transition: transform 1s, opacity 1s;
}

.sections--hidden {
  opacity: 0;
  transform: translateY(8rem);
}

/* intro */

#intro p {
  font-size: 1rem;
  line-height: 1.5;
}

#intro .name {
  font-family: var(--mono);
  font-size: 20px;
}

.name span {
  display: block;
  font-family: var(--sans);
  font-size: 4rem;
  color: var(--gold);
}

#intro h2 {
  font-size: 3rem;
  font-weight: normal;
}

@media screen and (max-width: 350px) {
  .name span {
    font-size: 1.5rem;
  }

  #intro h2 {
    font-size: 2rem;
  }
}

#intro button {
  display: block;
  margin-top: 5%;
}

/* Offer */

.offers {
  max-width: 100%;
  margin: 12% auto 0 auto;
  background-color: var(--darkTrans);
  border-radius: 10px;
  padding-bottom: 2rem;
}

.section__title {
  margin-bottom: 2%;
}

.section__title h2 {
  font-size: 1rem;
  margin-bottom: 2%;
}

.section_title p {
  font-size: 3rem;
}

.offers__tab-container {
  display: flex;
  justify-content: center;
}

.offers__tab {
  margin: 0 2% 0 2%;
  transform: translateY(-50%);
}

.offers__tab span {
  margin-right: 4%;
  display: inline-block;
}

.offers__tab--active {
  transform: translateY(-66%);
}

.offers__content {
  display: none;
}

.offers__content--active {
  display: block;
  text-align: center;
}

.offers__content p {
  margin: 1rem 4rem 1rem 4rem;
}

@media screen and (max-width: 450px) {
  .offers__tab {
    font-size: 0.5rem;
  }

  .offers__content p {
    font-size: 0.8rem;
    margin: 0.5rem 2rem 0.5rem 2rem;
  }

  .offers__header {
    margin: 0 auto 0.5rem auto;
  }

  .offers__tab-container {
    height: 45px;
  }

  .section__title {
    margin-bottom: 4%;
  }

  .section__title h3 {
    font-size: 1.2rem;
  }
}

/* Projects */

.projects h2 {
  font-size: 2.5rem;
  margin-bottom: cal(2.5rem * 1.5);
}

.projects-heading {
  color: white;
  font-size: 1rem;
  font-family: var(--mono);
  margin: 0;
}

.projects-heading-name {
  color: var(--gold);
  margin: 0;
  font-size: 2rem;
}

.black-box {
  /* opacity: 0.5; */
  background-color: var(--darkTrans);
  padding: 1rem;
  border-radius: 10px;
  color: var(--white);
  font-size: 1rem;
  line-height: 1.5;
}

.projects ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  gap: 1rem;
  font-size: 1rem;
}

@media (min-width: 800px) {
  article {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 1rem;
  }

  .projects img {
    grid-column: 1/6;
    grid-row: 1/2;
  }

  .text {
    grid-column: 5/11;
    grid-row: 1/2;
    order: 2;
    text-align: right;
  }
  .projects ul {
    justify-content: flex-end;
  }

  .projects .reverse .text {
    grid-column: 1/7;
    order: 2;
    text-align: left;
  }

  .projects .reverse img {
    grid-column: 6/11;
    grid-row: 1/2;
  }

  .projects .reverse ul {
    justify-content: flex-start;
  }
}

.projects img {
  width: 100%;
  height: auto;
  margin: 8% 0 8% 0;
  border-left: 1px solid var(--gold);
  border-top: 1px solid var(--gold);
  border-radius: 25px;
  padding: 1rem;
}

/* About Page */

.bio-text {
  margin-bottom: 1%;
  text-align: left;
  justify-content: left;
}

/* Contact */

.section-contact-container {
  text-align: center;
}

.section-contact-container p {
  margin: 50px;
}

/* Footer */

footer {
  text-align: center;
  padding: 1rem 0;
  margin: 0 auto;
  width: 100%;
  text-align: center;
}

footer h2 {
  font-size: 100%;
}

footer ul {
  list-style-type: none;
  padding: 0;
  margin: 2rem 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  gap: 3rem;
  font-size: 3rem;
}

.social__icons__contact {
  width: 50px;
  height: 50px;
  fill: var(--gold);
}

.social__icons__contact:hover {
  fill: var(--white);
}

footer p {
  font-size: 60%;
}
