/*============================== Header ==============================*/

header {
  justify-content: center;
  align-items: center;
  padding: 2em clamp(0.5em, 2vw + 1em, 4em);
  background-color: var(--white);
  z-index: 999999;
  position: relative;
}

.nav--container {
  width: 100%;
  max-width: 69.375rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/*------ Mobile menu ------*/
.menuBtn {
  height: 32px;
  width: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 2.5px solid var(--charcoal-dark);
  cursor: pointer;
}

.close {
  display: none;
}

/*------ Mobile menu ------*/
.menu--mobile {
  position: absolute; 
  right: 0;
  left: 0;
  height: 0; 
  overflow: hidden;
  transition: height 500ms ease;
  background-color: var(--charcoal-dark);
  color: var(--text-light);
  z-index: 9999;
  display: flex;
  justify-content: center;
  text-align: center;
}

.menu--mobile.open {
  height: 400px; 
}

.menu--mobile--container {
  padding: 1em;
}

.navLink {
  text-transform: uppercase;
  font-size: var(--fs-lg);
  font-weight: bold;
  color: var(--text-light);
  padding: 1em;
  display: block;
}

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

.mobile--menu--cta {
  white-space: nowrap;
  padding: 0.5em clamp(0.5em, 1vw + 1em, 1.5em);
  background-color: var(--white);
  color: var(--charcoal-dark);
}

/*------ Navigation bar big screens ------*/

@media (min-width: 51.875em) {
  .menuBtn {
    display: none;
  }

  .navBar {
    display: flex;
    gap: clamp(1em, 3vw + 1em, 4em);
    align-items: center;
  }

  .navLink--bigScreen {
    text-transform: uppercase;
    font-weight: bold;
    color: var(--gray-mist);
    transition: color 200ms ease-in-out, transform 200ms ease-in-out;
  }

  .navLink--bigScreen:hover {
    color: var(--charcoal-dark);
    transform: scale(1.1);
  }
  .ctaBtn {
    border: 2.5px solid var(--charcoal-dark);
    padding: 0.5em clamp(1em, 2.5vw + 1em, 2.5em);
    transition: background 200ms ease-in-out, transform 200ms ease-in-out;
    color: var(--charcoal-dark);
    font-weight: bold;
    text-transform: uppercase;
  }

  .ctaBtn:hover {
    background-color: var(--charcoal-dark);
    color: var(--text-light);
    transform: scale(1.1);
  }

  .navList--bigScreen {
    display: flex;
    gap: clamp(1em, 3vw + 1em, 5em);
  }
}

@media (min-width: 105rem) {
  .nav--container {
    max-width: 85em;
  }
}

/*============================== Hero section ==============================*/

.hero--container {
  width: 100%;
  position: relative;
  color: var(--text-light);
  position: relative;
  background-image: url(../assets/waves/waves-mobile-hero-top-right.svg);
  background-color: var(--midnight-purple);
  background-repeat: no-repeat;
  background-position: top left;
  background-size: 55% 40.5em;
}

@media screen and (min-width: 320px) {
  .hero--container {
    background-size: 45% 48.5em;
  }
}

@media screen and (min-width: 410px) {
  .hero--container {
    background-size: 55% 48.5em;
  }
}

@media screen and (min-width: 440px) {
  .hero--container {
    background-size: 65% 58.5em;
  }
}

@media screen and (min-width: 500px) {
  .hero--container {
    background-size: 60% 62.5em;
  }
}

@media screen and (min-width: 560px) {
  .hero--container {
    background-size: 55% 78.5em;
  }
}

@media screen and (min-width: 660px) {
  .hero--container {
    background-size: 45% 88.5em;
  }
}

@media screen and (min-width: 750px) {
  .hero--container {
    background-size: 45% 108.5em;
  }
}
.waves--herro--bottom-right--mobile {
  position: absolute;
  bottom: -5em;
  right: 0em;
  width: 20vw;
  max-width: 100%;
  height: auto;
}

@media screen and (min-width: 28rem) {
  .waves--herro--bottom-right--mobile {
    bottom: -18em;
    width: 26vw;
  }
}

@media screen and (min-width: 48.0625em) {
  .waves--herro--bottom-right--mobile {
    bottom: -22em;
    width: 26vw;
  }
}

.hero--section {
  max-width: 69.375rem;
  margin: auto;
  display: flex;
  position: relative;
  flex-direction: column;
}

.hero--img {
  width: 100%;
  background-color: brown;
}

.hero--img img {
  width: 100%;
  height: 100%;
}

.welcomeText--container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 2rem;
  padding: 6em clamp(0.5em, 1vw + 1em, 2em);
}

.title {
  font-size: var(--fs-4xl);
  font-family: var(--title-font);
  font-weight: 500;
}

.description {
  max-width: 50ch;
}

.hero--ctaBtn {
  white-space: nowrap;
  border: 2.5px solid var(--background-light);
  padding: 0.5em clamp(2em, 3vw + 1em, 5em);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background 200ms ease-in-out, transform 200ms ease-in-out;
  color: var(--text-light);
  font-weight: bold;
  text-transform: uppercase;
  z-index: 3;
}

.hero--ctaBtn:hover {
  background-color: var(--white);
  color: var(--charcoal-dark);
  transform: scale(1.1);
}

@media (min-width: 51.875em) {
  .hero--container {
    max-height: 37.5em;
    padding: 5em clamp(0.5em, 2vw + 1em, 4em);
    background-image: unset;
  }

  .top--right--waves--desktop {
    display: block;
    position: absolute;
    right: 0;
    top: -20%;
    z-index: 2;
  }

  .bottom--left--waves--desktop {
    display: block;
    position: absolute;
    left: 0;
    bottom: -70%;
  }

  .hero--section {
    flex-direction: row-reverse;
    max-width: 69.375rem;
    justify-content: space-between;
    gap: 2.5rem;
  }

  .waves--herro--bottom-right--mobile {
    display: none;
  }

  .hero--img {
    max-width: 33.75em;
    max-height: 40.625rem;
    object-fit: cover;
  }

  .welcomeText--container {
    text-align: left;
    align-items: flex-start;
    padding: unset;
    justify-content: flex-start;
  }

  .title::before {
    content: " ";
    margin-bottom: 3rem;
    width: 150px;
    height: 2px;
    display: block;
    background-color: var(--white);
  }
}

@media (min-width: 105rem) {
  .hero--section {
    max-width: 85em;
  }
}

/*============================== Main ==============================*/
main {
  margin-top: 10em;
  width: 100%;
  padding: 0 clamp(0.5em, 2vw + 1em, 4em);
  display: flex;
  justify-content: center;
}

.main--container {
  max-width: 69.375rem;
}

/*------ Features section ------*/

.features--container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.5rem;
}

.features--title {
  font-size: var(--fs-3xl);
  white-space: nowrap;
}

.features--title::before {
  content: " ";
  margin: auto;
  margin-bottom: 6rem;
  width: 150px;
  height: 1px;
  display: block;
  background-color: #c396c6;
}

.card--container {
  margin-top: 8rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.card--content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  text-align: center;
}

.card--title {
  font-size: 1.575rem;
  font-family: var(--title-font);
  font-weight: 500;
}

.card--info {
  max-width: 50ch;
}

@media (min-width: 69.3125em) {
  .features--title {
    align-self: flex-start;
  }

  .features--title::before {
    margin: 6rem 0;
  }

  .card--container {
    flex-direction: unset;
  }

  .card {
    align-items: flex-start;
    text-align: left;
  }

  .card--title {
    align-self: flex-start;
  }

  .card--content {
    text-align: left;
  }
}

@media (min-width: 105rem) {
  .main--container {
    max-width: 85em;
  }
}

/*------ Work sections ------*/

.work--section {
  margin-top: 10rem;
  background-color: var(--midnight-purple);
  color: var(--text-light);
  padding: 2.55em clamp(2.5em, 6vw + 1em, 8em);
  background-image: url(../assets/waves/waves-desktop-top-right-work.svg);
  background-position: top right;
  background-repeat: no-repeat;
  background-size: 60% 20.5em;
}

.work--container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
  text-align: center;
}

.work--title {
  font-size: var(--fs-3xl);
  font-family: var(--title-font);
  font-weight: 500;
}
.work--cta {
  white-space: nowrap;
  border: 2.5px solid var(--background-light);
  padding: 1em clamp(2em, 3vw + 1em, 5em);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background 200ms ease-in-out, transform 200ms ease-in-out;
  color: var(--white);
  font-weight: bold;
  text-transform: uppercase;
  z-index: 3;
}

.work--cta:hover {
  background-color: var(--background-light);
  color: var(--charcoal-dark);
  transform: scale(1.1);
}

@media (min-width: 69.3125em) {
  .work--container {
    flex-direction: row;
    text-align: left;
  }

  .work--section {
    background-size: 30% 20.5em;
  }
}

/*============================== Footer ==============================*/

footer {
  background-image: url(../assets/waves/waves-footer-mobile.svg);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100%;
  background-color: #f7f7f7;
  padding: 0 clamp(0.5em, 2vw + 1em, 4em);
  margin-top: 10rem;
}

.footer--container {
  max-width: 69.375rem;
  margin: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 5rem 0;
  gap: 2rem;
}

.socials {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
}

.socials--container {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.socials--container i {
  cursor: pointer;
}
.socials--container i svg:hover {
  filter: brightness(0);
}

hr {
  border: none;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.218);
  width: 100%;
  margin: 2rem 0;
}

.links {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 3rem;
}

.column {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  text-transform: uppercase;
}

.column--title {
  margin-bottom: 1rem;
  color: var(--gray-mist);
}
.column p {
  font-weight: 700;
  cursor: pointer;
}
.column p:hover {
  text-decoration: underline;
}

@media (min-width: 45em) {
  footer {
    background-image: url(../assets/waves/waves-footer-desktop-top-left.svg);
    background-position: top left;
    background-size: 30% 20vw;
  }
  .socials {
    width: 100%;
    flex-direction: row;
    justify-content: space-between;
  }
  .links {
    width: 100%;
    align-items: baseline;
    flex-direction: unset;
    justify-content: space-between;
  }
}

@media (min-width: 105em) {
  .footer--container {
    max-width: 85em;
  }
}
