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

html {
  font-size: 62.5%;
}

body {
  max-width: 1366px;
  margin: 0 auto;
  padding: 0 2rem;
  font-size: 1.6rem;
}

header {
  display: block;
  
  padding: 2rem;
  
  position: fixed;
  background-color: #fff;
  width: 100%;

  @media only screen and (max-width: 415px) {
    position:relative;
    flex-flow: column;
  }

  figure {
    max-width: 150px;

    #header-img {
      width: 100%;
    }
  }

  #nav-bar {
    display: flex;
    align-items: center;

    ul {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      gap: 2rem;
      list-style-type: none;

      @media only screen and (max-width: 415px) {
        flex-flow: column;
        align-items: flex-start;
      }

      li {
        a {
          text-align: left;
          color: #000;
          text-decoration: none;
          &:hover {
            text-decoration: underline;
          }
        }
      }
    }
  }
}

main {
  padding: 10rem 0 3rem;

  
  section {
    padding: 3rem 0;
  }

  .intro {
    display: flex;
    flex-flow: column nowrap;
    align-items: center;
    gap: 2rem;

    .intro__heading {
      font-size: 3rem;
    }

    .intro__subheading {
      font-size: 2rem;
      font-weight: bold;
    }
  }

  .about-us {
    .about-us__heading {
      font-size: 2.5rem;
      width: max-content;
      border-bottom: 2px solid blue;
    }
    .about-us__subheading {
      padding: 2rem 0;
    }
    .about-us__text {
      max-width: 75ch;
      padding: 1rem 0;
      line-height: 1.5;
      text-wrap: pretty;
    }
    .about-us__quote {
      max-width: 75ch;
      line-height: 1.5;
      &::before {
        content: '" ';
      }
      &::after {
        content: ' "';
      }
    }
  }

  .services {

    .services__heading {
      font-size: 2.5rem;
      width: fit-content;
      border-bottom: 2px solid blue;
    }

    .services__grid {
      padding: 3rem 0;
      display: grid;
      grid-template-columns: repeat(auto-fit,minmax(25rem,1fr));
      grid-template-rows: auto;
      gap: 3rem;

      .services__grid__service {
        padding: .75rem;
        background-color: rgba(0,0,255,0.05);

        .services__grid__service-heading {
          padding-bottom: 0.5rem;
        }
      }

    }

    .services-video {
      text-align: center;
      h3 {
        font-size:2rem;
      }
      .services-video__video {
        padding-top:2rem;
        max-width: 700px;
        width: 100%;
      }
    }

    .services-mailing {
      margin: 4rem auto;
      max-width: 500px;
      width: 100%;
      text-align: center;
      h3 {
        font-size:2rem;
      }

      p {
        padding: 1rem 0;
      }

      form {
        display: flex;
        flex-flow: column nowrap;
        align-items: center;
        gap: 2rem;

        input[type="email"] {
          min-width: 250px;
          padding: 0.5rem 1rem;
        }

        input[type="submit"] {
          padding: 0.75rem 1.25rem;
          color: #fff;
          text-transform: uppercase;
          font-size: 1.6rem;
          font-weight: bold;
          background-color: blue;
          border: 2px solid blue;
          cursor: pointer;

          &:hover {
            color: blue;
            background-color: #fafafa;
            border: 2px solid blue;
          }
        }
      }
    }
  }

  #pricing {
    h2 {
      font-size: 2.5rem;
      width: fit-content;
      border-bottom: 2px solid blue;
    }

    .pricing {
      padding: 3rem 0;
      display:grid;
      grid-template-columns: repeat(3, minmax(2rem,1fr));
      justify-content: space-between;
      gap: 2rem;

      @media only screen and (max-width:1024px) {
        grid-template-columns: repeat(2, minmax(2rem,1fr));
      }

      @media only screen and (max-width:768px) {
        grid-template-columns: minmax(2rem,1fr);
      }

      .pricing__single {
        max-width: 350px;
        width: 100%;
        height: 100%;
        margin: 0 auto;
        background-color: rgba(0,0,255,0.05);
        padding: 1rem;
        text-align: center;

        .pricing__heading {
          color: blue;
          font-weight: bold;
          padding-bottom: 0.5rem;
        }

        .pricing__subheading {
          font-style: italic;
        }

        .pricing__list {
          list-style-type: none;
          

          .pricing__list-item:not(:last-child) {
            padding-bottom: 0.5rem;
          }
        }

        .pricing__link {
          display:inline-block;
          margin-top: 3rem;
          padding: 1rem 1.5rem;
          font-weight: bold;
          background-color: rgba(0,0,255,0.5);
          color:#fff;
          text-transform: uppercase;
          text-decoration: none;

          &:hover {
            background-color: blue;
          }
        }


      }
    }
  }

  

}


footer {
    padding: 2rem 1rem;
    background-color: rgba(0,0,0,0.75);
    text-align: right;
    color: #fff;

    ul {
      display: flex;
      justify-content: end;
      gap: 2rem;
      list-style-type: none;
      padding: 1rem 0;

      li {
        a {
          color:inherit;
          text-decoration: none;
          &:hover {text-decoration: underline;}
        }
      }
    }
  }