* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --red: #e3646e;
  --purple: #bb72e9;
  --blue: #3996db;
  --green: #82bc4f;
  --yellow: #eabd5f;
  --gray-900: #0d0e11;
  --gray-800: #16181d;
  --gray-700: #292c34;
  --gray-600: #878ea1;
  --gray-500: #c0c4ce;
  --gray-400: #e2e4e9;
  --white: #ffffff;

  --title-lg: 700 56px/120% 'Asap', sans-serif;
  --title-md: 700 24px/120% 'Asap', sans-serif;
  --title-sm: 700 16px/120% 'Asap', sans-serif;
  --subtitle: 400 20px/120% 'Inconsolata', monospace;
  --text-md: 400 16px/140% 'Maven Pro', sans-serif;
  --text-sm: 400 14px/140% 'Maven Pro', sans-serif;
}

html {
  scroll-behavior: smooth;
}

a {
  text-decoration: none;
  color: var(--gray-600);
}

ul {
  list-style: none;
}

.container {
  max-width: 1040px;
  margin-inline: auto;
}

h2 {
  color: var(--gray-400);
  font: var(--title-md);
  text-align: center;
}

h3 {
  font: var(--subtitle);
  margin-bottom: 8px;
  text-align: center;
  color: var(--red);
}

h4 {
  font: var(--title-sm);
  color: var(--gray-400);
  text-align: left;
}

p {
  font: var(--text-sm);
  color: var(--gray-500);
  margin-top: 8px;
}

.card {
  max-width: 330px;
  padding-inline: 12px;
  padding-block: 12px 17px;
  background-color: var(--gray-700);
  border-radius: 12px;
  cursor: pointer;
  transition: all ease-in-out 0.2s;

  img {
    width: 100%;
    border-radius: 8px;
  }

  &:hover {
    border: 1px solid var(--gray-600);
  }
}

.social-button {
  max-width: 400px;
  width: 100%;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--gray-700);
  border-radius: 8px;
  margin-inline: auto;
  transition: all ease-in-out 0.2s;

  &:hover {
    border: 1px solid var(--blue);

    .icon-media {
      filter: hue-rotate(359deg) saturate(10000%) brightness(90%);
    }
  }
}

.text-red {
  color: var(--red);
}

.text-purple {
  color: var(--purple);
}

.intro {
  width: 100%;
  background-color: var(--gray-800);
  min-height: 750px;
  padding-top: 120px;

  .intro-wrapper {
    width: 100%;
    height: 561px;
    background-image: url('https://i.imgur.com/UBOHmba.png');
    background-position: center;
    background-size: cover;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;

    header {
      padding-inline: 37px;

      img {
        display: block;
        margin-inline: auto;
        margin-bottom: 56px;
      }

      .content {
        max-width: 680px;

        p {
          font: var(--subtitle);
          color: var(--gray-500);
          text-align: center;

          &:nth-child(3) {
            color: var(--gray-600);
            font: var(--text-sm);
          }
        }

        h1 {
          font: var(--title-lg);
          color: var(--gray-400);
          text-align: center;
          margin-block: 12px 20px;
        }
      }
    }

    ul {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 16px;

      li a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        color: var(--gray-500);
        font: var(--text-md);
        padding: 8px 16px;
        border-radius: 999px;
        background-color: var(--gray-700);
        transition: all ease-in-out 0.2s;

        img {
          width: 24px;
        }

        &:hover {
          border: 1px solid var(--gray-600);
        }
      }
    }

    a > img {
      cursor: pointer;

      &:hover {
        filter: grayscale(1) invert(100%) saturate(200%) brightness(300%) contrast(100%);
      }
    }
  }
}
  
  .highlights {
    width: 100%;
    padding-block: 72px 144px;
    background-color: var(--gray-800);
  
    .projects {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 24px;
  
      margin-top: 56px;
  
      figcaption {
        width: 100%;
        padding-block: 20px;
      }
    }
  }
  
  .services {
    background-color: var(--gray-900);
    padding-block: 88px 120px;
  
    .main-services {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 24px;
      margin-top: 56px;
  
      .service {
        max-width: 280px;
        padding-inline: 23px;
        padding-block: 27px 20px;
        border: 1px solid var(--gray-800);
        border-radius: 12px;
        transition: all ease-in-out 0.2s;
  
        &:hover {
          border-color: var(--gray-600);
        }
        
        img {
          margin-bottom: 20px;
        }
      }
    }
  }
  
  .contacts {
    min-height: 787px;
    background-image: url('https://i.imgur.com/1wwHdow.png');
    background-position: center;
    background-size: cover;
    padding-block: 128px 500px;
  
    p {
      text-align: center;
      font-size: 16px;
    }
  
    a {
      width: 100%;
    }
    
    .main-contacts {
      width: 100%;
      display: flex;
      margin-top: 48px;
      flex-direction: column;
      gap: 16px;
      align-items: center;
      justify-content: center;
  
      .social-media {
        display: flex;
        align-items: center;
        gap: 12px;
  
        span {
          color: var(--gray-500);
          font: var(--text-md);
          font-weight: 500;
        }
      }
    }
  }
  
  /* Media Query para pantallas pequeñas */
  @media (max-width: 768px) {

    .intro .intro-wrapper {
      height: auto;
      padding-bottom: 40px;
  
      header {
        flex-direction: column;
        text-align: center;
        align-items: center;
  
        img {
          margin-bottom: 24px;
        }
  
        .content {
          p:nth-child(3) {
            text-align: center;
          }
        }
      }
  
      ul {
        display: block;
        text-align: center;
      }
  
      ul li {
          display: inline-block;
          margin: 5px;
          width: auto;
      }
  
      a > img {
        margin-top: 20px;
      }
    }
  
    .highlights .projects {
      justify-content: center;
    }
  
    .services .main-services {
      justify-content: center;
    }
  
    .contacts .main-contacts {
      align-items: center;
    }
  }