@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

:root {
  --main-color: #da190f;
  --bg: #13131a;
  --bg-card: #0c0c14;
  --branco: #fff;
  --cinza: #ccc;
  --border: .1rem solid rgba(255, 255, 255, .3);
}

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  outline: none;
  border: none;
  text-decoration: none;
  transition: .2s linear;
  font-family: 'Roboto', sans-serif;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
  scroll-padding-top: 9rem;
  scroll-behavior: smooth;

  &::-webkit-scrollbar {
    width: .8rem;
  } 

  &::-webkit-scrollbar-track {
    background: transparent;
  }

  &::-webkit-scrollbar-thumb {
    background-color: var(--branco);
    border-radius: 5rem;
  }
}

body {
  background-color: var(--bg);

  & section {
    padding: 2rem 7%;
  
    & .heading {
      text-align: center;
      color: var(--branco);
      text-transform: uppercase;
      padding-bottom: 3.5rem;
      font-size: 4rem;
    
      & span {
        color: var(--main-color);
        text-transform: uppercase;
      }
    }
  }
}

.btn {
  margin-top: 1rem;
  display: inline-block;
  padding: .9rem 3rem;
  font-size: 1.7rem;
  color: var(--branco);
  background-color: var(--main-color);
  cursor: pointer;

  &:hover {
    letter-spacing: .2rem;
  }
}

.header {
  background-color: var(--bg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 7%;
  border-bottom: var(--border);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;

  & .logo-pizza-hash {
    height: 6.5rem;
    border-radius: 100%;
  }

  & .navbar {
    & a {
      margin: 0 1rem; 
      font-size: 1.6rem;
      color: var(--branco);

      &:hover {
        color: var(--main-color);
        border-bottom: .1rem solid var(--main-color);
        padding-bottom: .5rem;
      }
    }
  }

  & .icons {
    display: flex;
    align-items: center;
    gap: 2rem;

    & div {
      & ion-icon {
        color: var(--branco);
        cursor: pointer;
        font-size: 2.5rem;

        &:hover {
          color: var(--main-color);
        }
      }
    }

    & #menu-btn {
      display: none;
    }
  }
} 

.home {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: center;
  background: url(./images/home.jpg) no-repeat;
  background-size: cover;
  background-position: center;
  border-bottom: var(--border);

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .5);
    z-index: 1;
  }

  & .content {
    max-width: 60rem;
    position: relative;
    z-index: 2;

    & h3 {
      font-size: 6rem;
      text-transform: uppercase;
      color: var(--branco);
    }

    & p {
      font-size: 2rem;
      font-weight: lighter;
      line-height: 1.8;
      padding: 1rem 0;
      color: var(--branco);
    }
  }
}

.about {
  & .row {
    display: flex;
    align-items: center;
    background: var(--bg-card);
    flex-wrap: wrap;
    border: var(--border);

    & .image {
      flex: 1 1 45rem;
  
      & img {
        width: 100%;
      }
    }

    & .content {
      flex: 1 1 45rem;
      padding: 2rem;

      & h3 {
        font-size: 3rem;
        color: var(--branco);
      }

      & p {
        font-size: 1.6rem;
        color: var(--cinza);
        padding: 1rem 0;
        line-height: 1.8;
      }
    }
  }
}

.menu {
  & .box-container {
    display: grid;
    /* grid-template-columns: repeat(3, 1fr); */
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));

    & .box {
      padding: 5rem;
      text-align: center;
      border: var(--border);
      background: var(--bg-card);
      color: var(--branco);

      & img {
        height: 18rem;
        border-radius: 100%;
      }

      & h3 {
        font-size: 2rem;
        padding: 1rem 0;
      }

      & .price {
        font-size: 2.5rem;

        & span {
          font-size: 1.5rem;
          text-decoration: line-through;
          font-weight: lighter;
        }
      }

      &:hover {
        background: var(--branco);
      }

      &:hover > * {
        color: black;
      }
    }
  }
}

.products {
  & .box-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
    gap: 1.5rem;

    & .box {
      text-align: center;
      border: var(--border);
      padding: 2rem;

      & .icons {
        & a {
          & ion-icon {
            height: 3rem;
            width: 3rem;
            line-height: 3rem;
            font-size: 1.7rem;
            border: var(--border);
            color: var(--branco);
            margin: .3rem;

            &:hover {
              background: var(--main-color);
            }
          }
        }
      }

      .image {
        padding: 2.5rem 0;

        & img {
          height: 25rem;
        }
      }

      & .content {
        & h3 {
          color: var(--branco);
          font-size: 2.5rem;
        }

        & .stars {
          padding: 1.5rem;

          & i {
            font-size: 1.9rem;
            color: var(--main-color);
          }
        }
      } 
      & .price {
        color: var(--branco);
        font-size: 2.5rem;

        & span {
          font-weight: lighter;
          font-size: 1.5rem;
          text-transform: lowercase;
        }
      }  
    }
  }
}

.review {
  & .box-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
    gap: 1.5rem;

    & .box {
      border: var(--border);
      text-align: center;
      padding: 3rem 2rem;

      & p {
        font-size: 1.7rem;
        line-height: 1.8;
        color: var(--cinza);
        padding: 2rem 0;
      }

      & .user {
        height: 10rem;
        width: 10rem;
        border-radius: 50%;
        object-fit: cover;
      }

      & h3 {
        padding: 1rem 0;
        color: var(--branco);
        font-size: 2.2rem;
      }

      & .stars {
        & i {
          font-size: 1.7rem;
          color: var(--main-color);
        }
      }
    }
  }
}


.footer {
  background-color: var(--bg);
  text-align: center;
  padding: 4rem 0;
  padding-bottom: 0;

  & .container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0 7%;

    & .footer-col {
      flex: 1 1 25rem;
      margin: 1rem;

      & .heading-footer {
        text-align: center;
        color: var(--branco);
        text-transform: uppercase;
        margin-bottom: 1.5rem;
        font-size: 2.5rem;
      
        & span {
          color: var(--main-color);
        }
      }

      & ul {
        list-style: none;
        padding: 0;

        & li {
          margin-bottom: 1rem;
          & a {
            color: var(--cinza);
            text-decoration: none;
            font-size: 1.6rem;
            transition: color .3s;

            &:hover {
              color: var(--main-color);
            }
          }
        }
      }

      & .social-links {
        display: flex;
        gap: 1rem;
        justify-content: center;
        margin-top: 1.5rem;

        & a {
          color: var(--cinza);
          font-size: 3rem;
          transition: color .3s;

          &:hover {
            color: var(--main-color);
          }
        }
      }
    }  
  }

  & .footer-bottom {
    text-align: center;
    padding: 1.5rem 0;
    font-size: 1.6rem;
    border-top: var(--border);
    color: var(--cinza);
  }
}

@media (min-width: 1448px) {
  .menu {
    & .box-container {
      grid-template-columns: repeat(3, 1fr); 
      gap: 1.5rem;
    }
  }
}

@media (max-width: 991px) {
  html {
    font-size: 55%;

    & .header {
      padding: 1.5rem 2rem;
    }

    & section {
      padding: 2rem;
    }
  }
}

@media (max-width: 768px) {
  .header {
    & .navbar {
      position: absolute;
      top: 100%;
      right: -100%;
      background: var(--bg);
      width: 30rem;
      height: calc(100vh - 9.5rem);

      & a {
        color: var(--branco);
        display: block;
        margin: 1.5rem;
        padding: .5rem;
        font-size: 2rem;
      }
    }

    & .icons {
      & #menu-btn {
        display: inline-block;
      }
    }

    & .active {
      right: 0;
    } 
  }

  .home {
    background-position: left;
    justify-content: center;
    text-align: center;

    & .content {
      & h3 {
        font-size: 4.5rem;
      }

      & p {
        font-size: 1.5rem;
      }
    }
  }
}

@media (max-width: 450px) {
  html {
    font-size: 50%;
  }
}