/* Reset CSS */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  
  ul {
    list-style: none;
  }
  
  a {
    text-decoration: none;
  }
  
  img {
    width: 100%;
    height: auto;
  }
  
  /* Root / Variáveis */
  
  :root {
    --header-height: 4.5rem;
  
    /* colors */
    --hue: 159;
    /* HSL color mode */
    --base-color: hsl(var(--hue) 36% 57%);
    --base-color-second: hsl(var(--hue) 65% 88%);
    --base-color-alt: hsl(var(--hue) 57% 53%);
    --title-color: hsl(var(--hue) 41% 10%);
    --text-color: hsl(0 0% 46%);
    --text-color-light: hsl(0 0% 98%);
    --body-color: hsl(0 0% 98%);
  
    /* fonts */
    --title-font-size: 1.875rem;
    --subtitle-font-size: 1rem;
    --title-font: "Poppins", sans-serif;
    --body-font: "DM Sans", sans-serif;
  }
  
  /* Base */
  
  html {
    scroll-behavior: smooth;
  }
  
  body {
    font: 400 1rem var(--body-font);
    color: var(--text-color);
    background-color: var(--body-color);
    -webkit-font-smoothing: antialiased;
  }
  
  .title {
    font: 700 1.875rem var(--title-font);
    color: var(--title-color);
    -webkit-font-smoothing: auto;
  }
  
  .button {
    background-color: var(--base-color);
    color: var(--text-color-light);
    height: 3.5rem;
    display: inline-flex;
    align-items: center;
    padding: 0 2rem;
    border-radius: 0.25rem;
    font: 500 1rem var(--body-font);
    transition: background 0.3s;
  }
  
  .button:hover {
    background-color: var(--base-color-alt);
  }
  
  .divider-1 {
    height: 1px;
    background: linear-gradient(
      270deg,
      hsla(var(--hue), 36%, 57%, 1),
      hsla(var(--hue), 65%, 88%, 0.34)
    );
  }
  
  .divider-2 {
    height: 1px;
    background: linear-gradient(
      270deg,
      hsla(var(--hue), 65%, 88%, 0.34),
      hsla(var(--hue), 36%, 57%, 1)
    );
  }
  
  /* Layout */
  
  .container {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
  }
  
  .grid {
    display: grid;
    gap: 2rem;
  }
  
  .section {
    padding: calc(5rem + var(--header-height)) 0;
  }
  
  .section .title {
    margin-bottom: 1rem;
  }
  
  .section .subtitle {
    font-size: var(--subtitle-font-size);
  }
  
  .section header {
    margin-bottom: 4rem;
  }
  
  .section header strong {
    color: var(--base-color);
  }
  
  #header {
    border-bottom: 1px solid #e4e4e4;
    margin-bottom: 2rem;
    display: flex;
    position: fixed;
    z-index: 100;
    background-color: var(--body-color);
    top: 0;
    left: 0;
    width: 100%;
  }
  
  /* Logo */
  
  .logo {
    font: 700 1.31rem var(--title-font);
    color: var(--title-color);
  }
  
  .logo span {
    color: var(--base-color);
  }
  
  .logo-alt span {
    color: var(--body-color);
  }
  
  /* Navigation */
  
  nav {
    /* altura: 72px / 16px = 4.5 --- conversão de pixel p/ unidade relativa/responsiva (rem) */
    /* 16px é o padrão do browser / root: font-size 100% */
    height: var(--header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  
  nav ul li {
    text-align: center;
  }
  
  nav .menu {
    opacity: 0;
    visibility: hidden;
    top: -20rem;
    transition: 0.2s;
  }
  
  nav ul li a {
    transition: color 0.2s;
    position: relative;
    top: 0;
  }
  
  nav ul li a:hover,
  nav ul li a.active {
    color: var(--base-color);
  }
  
  /* Linha em baixo do menu */
  nav ul li a::after {
    content: "";
    width: 0%;
    height: 3px;
    background: var(--base-color);
    position: absolute;
    left: 0;
    bottom: -1.6rem;
    transition: width 0.2s;
  }
  
  nav ul li a:hover::after,
  nav ul li a.active::after {
    width: 100%;
  }
  
  nav .menu ul {
    display: none;
  }
  
  /* Mostrar menu */
  
  nav.show .menu {
    opacity: 1;
    visibility: visible;
    background: var(--body-color);
    height: 100vh;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
    display: grid;
    place-content: center;
  }
  
  nav.show .menu ul {
    display: grid;
  }
  
  nav.show ul.grid {
    gap: 4rem;
  }
  
  /* Toggle Menu */
  
  .toggle {
    color: var(--base-color);
    font-size: 1.5rem;
    cursor: pointer;
  }
  
  nav .icon-close {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: -1.5rem;
    right: 1.5rem;
    transition: 0.2s;
  }
  
  nav.show div.icon-close {
    visibility: visible;
    opacity: 1;
    top: 1.5rem;
  }
  
  /* Home */
  
  #home {
    overflow: hidden;
  }
  
  #home .container {
    margin: 0;
  }
  
  #home .image {
    position: relative;
  }
  
  #home .image::before {
    content: "";
    height: 100%;
    width: 100%;
    background: var(--base-color-second);
    position: absolute;
    top: -16.8%;
    left: 16.7%;
    z-index: 0;
  }
  
  #home .image img {
    position: relative;
    right: 2.93rem;
  }
  
  #home .image img,
  #home image::before {
    border-radius: 0.25rem;
  }
  
  #home .text {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    text-align: center;
  }
  
  #home .text h1 {
    margin-bottom: 1rem;
  }
  
  #home .text p {
    margin-bottom: 2rem;
  }
  
  /* About */
  
  #about {
    background: white;
  }
  
  #about .container {
    margin: 0;
  }
  
  #about .image {
    position: relative;
  }
  
  #about .image::before {
    content: "";
    height: 100%;
    width: 100%;
    background: var(--base-color-second);
    position: absolute;
    top: -8.3%;
    left: -33%;
    z-index: 0;
  }
  
  #about .image img {
    position: relative;
  }
  
  #about .image img,
  #about image::before {
    border-radius: 0.25rem;
  }
  
  #about .text {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
  }
  
  #about .text h1 {
    margin-bottom: 1rem;
  }
  
  #about .text p {
    margin-bottom: 2rem;
  }
  
  /* Services */
  
  .cards.grid {
    gap: 1.5rem;
  }
  
  .card {
    padding: 3.625rem 2rem;
    box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.08);
    border-bottom: 0.25rem solid var(--base-color);
    border-radius: 0.25rem 0.25rem 0 0;
    text-align: center;
  }
  
  .card i {
    display: block;
    margin-bottom: 1.5rem;
    font-size: 5rem;
    color: var(--base-color);
  }
  
  .card .title {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }
  
  /* Testimonials */
  
  #testimonials {
    background: white;
  }
  
  #testimonials .container {
    margin-left: 0;
    margin-right: 0;
  }
  
  #testimonials header {
    margin-bottom: 0;
    margin-left: 1.5rem;
    margin-right: 1.5rem;
  }
  
  #testimonials blockquote {
    padding: 2rem;
    box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.08);
    border-radius: 0.25rem;
  }
  
  #testimonials blockquote p {
    position: relative;
    text-indent: 1.875rem;
    margin-bottom: 1.5rem;
    color: var(--title-color);
  }
  
  #testimonials blockquote p span {
    font: 700 2.5rem serif;
    position: absolute;
    top: -0.25;
    left: -1.875rem;
    color: var(--base-color);
  }
  
  #testimonials cite {
    display: flex;
    align-items: center;
    color: var(--text-color);
    font-style: normal;
  }
  
  #testimonials cite img {
    width: 2rem;
    height: 2rem;
    object-fit: cover;
    clip-path: circle();
    margin-right: 0.5rem;
  }
  
  /* swiper */
  
  .swiper-slide {
    height: auto;
    padding: 4rem 1rem;
  }
  
  .swiper-pagination-bullet-active {
    background: var(--base-color);
  }
  
  /* Contact */
  
  #contact .grid {
    gap: 4rem;
  }
  
  #contact .text p {
    margin-bottom: 2rem;
  }
  
  #contact .button i,
  #contact ul li i {
    font-size: 1.5rem;
    margin-right: 0.625rem;
  }
  
  #contact ul.grid {
    gap: 2rem;
  }
  
  #contact ul li {
    display: flex;
    align-items: center;
  }
  
  #contact ul li i {
    color: var(--base-color);
  }
  
  /* Footer */
  
  footer {
    background: var(--base-color);
  }
  
  footer.section {
    padding: 4rem 0;
  }
  
  footer .logo {
    display: inline-block;
    margin-bottom: 1.5rem;
  }
  
  footer .brand p {
    color: var(--text-color-light);
    margin-bottom: 0.75rem;
  }
  
  footer i {
    font-size: 1.5rem;
    color: --text-color-light;
  }
  
  footer .social a {
    color: white;
    margin-right: 2rem;
    transition: 0.3s;
    display: inline-block;
  }
  
  footer .social a:hover {
    transform: translateY(-8px);
  }
  
  /* Back to top */
  
  .back-to-top {
    background: var(--base-color-second);
    color: var(--base-color);
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    padding: 0.5rem;
    clip-path: circle();
    font-size: 1.5rem;
    line-height: 0;
    visibility: hidden;
    opacity: 0;
    transition: 0.3s;
    transform: translateY(100%);
  }
  
  .back-to-top.show {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
  
  /* Responsividade-Breakpoints */
  
  /* Config p/ dispositivos maiores que 1200px */
  @media (min-width: 1200px) {
    /* Classes globais */
    .container {
      max-width: 1120px;
      margin-left: auto;
      margin-right: auto;
    }
  
    .section {
      padding: 10rem 0;
    }
  
    .section header,
    #testimonials header {
      max-width: 30rem;
      text-align: center;
      margin-left: auto;
      margin-right: auto;
    }
  
    .button {
      height: 3.125rem;
    }
  
    /* Navegação */
    nav .menu {
      opacity: 1;
      visibility: visible;
      top: 0;
    }
  
    nav .menu ul {
      display: flex;
      gap: 2rem;
    }
  
    nav .menu ul li a.title {
      font: 400 1rem var(--body-font);
      -webkit-font-smoothing: antialiased;
    }
  
    nav .menu ul li a.title.active {
      font-weight: bold;
      -webkit-font-smoothing: auto;
    }
  
    nav .icon-menu {
      display: none;
    }
  
    /* Main */
    main {
      margin-top: var(--header-height);
    }
  
    /* Home */
    #home .container {
      grid-auto-flow: column;
      justify-content: space-between;
      margin: 0 auto;
    }
  
    #home .image {
      order: 1;
    }
  
    #home .text {
      order: 0;
      max-width: 24rem;
      text-align: left;
      margin-left: 0;
      margin-right: 4rem;
    }
  
    #home .image img {
      right: 0;
    }
  
    /* Mudanças no header ao fazer scroll */
  
    #header.scroll {
      background: var(--base-color);
      box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1);
      transition: background 0.2s;
      border-bottom: none;
    }
  
    #header.scroll .logo span {
      color: white;
    }
  
    #header.scroll .icon-menu {
      color: white;
    }
  
    #header.scroll nav ul li a {
      color: white;
    }
  
    #header.scroll nav ul li a::after {
      background: white;
    }
  
    /* About */
    #about .container {
      margin: 0 auto;
      grid-auto-flow: column;
    }
  
    /* Services */
    .cards {
      grid-template-columns: 1fr 1fr 1fr;
    }
  
    .card {
      padding-right: 3rem;
      padding-left: 3rem;
    }
  
    /* Testimonials */
    #testimonials .container {
      margin-left: auto;
      margin-right: auto;
    }
  
    /* Contact */
    #contact .container {
      grid-auto-flow: column;
      align-items: center;
    }
  
    #contact .text {
      max-width: 23rem;
    }
  
    /* Footer */
  
    footer.section {
      padding: 3.75rem 0;
    }
  
    footer .container {
      grid-auto-flow: column;
      align-items: center;
      justify-content: space-between;
    }
  
    footer .logo {
      font-size: 2rem;
    }
  }
  
  /* Dispositivos maiores que 992px */
  @media (min-width: 992px) {
    :root {
      --title-font-size: 2.25rem;
      --subtitle-font-size: 1.125rem;
    }
  }