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

:root {
  --white: #FFF;
  --white-hovered: #F0F0F0;
  --light-bg: #F5F5F5;
  --blue-gradient: linear-gradient(111deg, #07C 37.18%, #005897 103.9%);
  --blue: #0177CC;
  --title-dark: #001D31;
  --text-dark: #1E1E1E;
  --text-card-dark: #043253;
  --subtitle-dark: #1D1D1D;
  --title-blue-md: #00406D;
  --gray-light: #EFEFEF;
  --green-light: #4DC79C;
  --tabs-bg: #00223A;

  --margin-left: 10vw;

  @media screen and (max-width: 1330px) {
    --margin-left: 1.75rem;
  }
}

.hidden {
  transform: translate(100%, -100%) !important;
  opacity: 0 !important;
}

.mobile {
  display: none;
}

@media screen and (max-width: 1065px) {
  .desktop {
    display: none;
  }

  .mobile {
    display: block;
  }
  
}

.button-white {
  padding: .87rem 3rem;
  text-transform: uppercase;
  background-color: var(--white);
  color: var(--blue);
  font-weight: 600;
  border: 1px solid var(--white);
  border-radius: 20px;
  width: fit-content;

  transition: background-color 0.3s;
  cursor: pointer;

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

.section-title {
  color: var(--title-dark);
  font-size: 2.5rem;
  font-weight: 600;
  line-height: 115%;
}

.card {
  background-color: var(--white);
  padding: 1.87rem;
  flex: 1 0 0;
  border-radius: 20px;
  box-shadow:  0px 32px 44px 0px rgba(0, 0, 0, 0.09);
  width: fit-content;
}

body, a, button, input {
  font-family: "Titillium Web", sans-serif;
  -webkit-font-smoothing: antialiased;
}

main {
  overflow: hidden;
}

body {
  max-width: 100vw;
  overflow-x: hidden;

  &.no-scroll {
    max-height: 100vh;
    overflow: hidden;
  }
}

header {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  padding: 1.5rem var(--margin-left) 0;


  .logo {
    max-width: 12rem;
    width: 13vw;
    min-width: 8.5rem;

    img {
      max-width: 100%;
    }
  }

  .menu.desktop > ul {
    list-style: none;
    display: flex;
    gap: 1rem;

    li a {
      text-decoration: none;
      color: var(--white);
      font-weight: 300;
      border-bottom: 1px solid transparent;
      transition: border-color 0.3s;
      font-size: 1rem;

      &:hover {
        border-color: var(--white);
      }
    }
  }

  @media screen and (max-width: 1462px) {
    gap: 2rem;
    .menu.desktop > ul li a {
      font-size: 0.875rem;
    }
  }

  @media screen and (max-width: 1065px) {
    justify-content: space-between;

    .burger-menu--trigger {
      cursor: pointer;
    }

    .logo {
      max-width: 8.5rem;
    }
  }
}

.hero {
  background: var(--blue-gradient);
  display: flex;
  flex-direction: column;
  min-height: 36rem;
  height: 75vh;

  .hero--content {
    margin-top: 5.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.875rem;
    padding-left: var(--margin-left);
  }

  .hero--title {
    color: var(--white);
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 116%;
  }

  .hero--subtitle {
    color: var(--white);
    font-size: 1.5rem;
  }

  .hero--img-desk {
    pointer-events: none;
    width: 100%;
    margin-top: -25vw;

    img {
      width: 100%;
    }
  } 

  .burger-menu--content {
    position: absolute;
    height: 100vh;
    width: 100vw;
    background: var(--white);
    top: 0;
    left: 0;

    z-index: 2;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.5rem;

    padding-top: 1.25rem;
    
    opacity: 1;
    transform: translateX(0);
    transition: all .3s ease-in;


    .burger-menu--logo {
      max-width: 7rem;

      img {
        width: 100%;
      }
    }

    .burger-menu--close {
      position: absolute;
      top: .875rem;
      right: .875rem;

      display: flex;
      background: transparent;
      border: none;
    }

    nav ul {
      list-style: none;
      display: flex;
      align-items: center;
      flex-direction: column;
      gap: 1.25rem;

      li {
        padding-bottom: 1.25rem;
        width: 100%;
        border-bottom: 1px solid var(--light-bg);
        text-align: center;

        &:last-child {
          border-bottom: none;
        }

        a {
          color: var(--title-dark);
          text-decoration: none;
        }
      }
    }
  }

  @media screen and (max-width: 1440px) {
    .hero--img-desk {
      width: 120%;
      transform: translateX(-16.6%);
      margin-top: -30vw;
    }

    .hero--image {
      width: 100% !important;
      overflow: hidden;
    }
  }

  @media screen and (max-width: 1330px) {
    .hero--img-desk {
      margin-top: -38vw;
      overflow: hidden;

      img {
        transform: translateX(10%);
      }
    }
  }

  @media screen and (max-width: 1065px) {
    height: 60vh;
    
    .hero--content {
      margin-top: 1.875rem;
      align-self: center;
      gap: 1rem;
    }

    .hero--title {
      font-size: 2rem;
    }

    .hero--subtitle {
      font-size: 1.25rem;
    }

    .hero--image {
      display: block;
      width: calc(100% + var(--margin-left));
      position: absolute;
      left: 0;
      top: 10rem;

      img {
        width: 100%;
        min-width: 708px;
      }
    }
  }
}

.challenges {
  padding: 15.5rem var(--margin-left) 15rem;
  background-color: var(--light-bg);

  .section-title {
    margin-bottom: 1.87rem;
  }

  .challenges--cards {
    display: flex;
    gap: 1.25rem;
  }

  .challenges--card {
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
    flex-grow: 1;

    img {
      max-width: 68px;
      margin-bottom: .75rem;
    }
  }

  .challenges--card-content {
    display: flex;
    flex-direction: column;
    color: var(--text-dark);

    h3 {
      font-size: 1.25rem;
      font-weight: 600;
      line-height: 150%;
    }
  }

  @media screen and (max-width: 990px) {
    padding: 18rem 0 5rem;

    .section-title {
      padding: 0 var(--margin-left);
    }

    .challenges--cards {
      flex-direction: column;

      .slick-track {
        display: flex;
      }

      .slick-slide {
        height: auto;
      }

      .slick-list {
        padding: 20px 40px 60px 20px !important;
      }

      .slick-dots {
        margin-top: -3rem;
      }
    }
    
    .challenges--card {
      margin-right: 1rem;
      flex: 1 0 auto;
    }

    .slick-dots {
      display: flex !important;
      gap: .5rem;
      list-style: none;
      justify-content: center;
      margin-top: -20px;

      li button {
        font-size: 0;
        width: 10px;
        height: 10px;
        border-radius: 999px;
        background-color: var(--blue);
        border: none;
      }

      .slick-active button {
        width: 20px;
      }
    }
  }
}

.whatis {
  background: var(--blue-gradient);
  height: 540px;
  max-width: 100vw;
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-template-rows: minmax(19rem, 1fr) 1fr;
  grid-template-areas:
  'img top'
  'cards cards';

  .whatis-img {
    max-width: 657px;
    width: 100%;
    min-width: 490px;
    position: relative;
    top: -11rem;

    img {
      max-width: 100%;
    }
  }

  .whatis--top {
    grid-area: top;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    width: 100%;
    max-width: 39rem;
    height: min-content;

    color: var(--white);

    padding: 3rem 0 4rem;

    .section-title {
      color: var(--white);
    }

    .whatis--subtitle {
      font-size: 1.5rem;
    }
  }

  .whatis--cards {
    grid-area: cards;
    display: flex;
    gap: 1.25rem;

    position: relative;
    width: 57%;
    justify-content: self-end;
    left: calc(var(--margin-left) + 20vw);

    .whatis--card {
      display: flex;
      flex-direction: column;
      gap: 1.75rem;

      img {
        max-width: 68px;
      }

      .whatis--card-content {
        display: flex;
        flex-direction: column;
        gap: .75rem;

        color: var(--text-card-dark);

        h3 {
          font-size: 1.25rem;
        }
      }
    }
  }

  @media screen and (max-width: 1570px) {
    .whatis--cards {
      left: unset;
      width: 100%;
      padding: 0 var(--margin-left);
    }
  }

  @media screen and (max-width: 1200px) {
    padding: 0 var(--margin-left);
    grid-template-columns: 100%;
    grid-template-rows: repeat(2, 1fr);
    grid-template-areas:
    'top'
    'cards'
    'img';
    height: 62rem;
    justify-items: center;

    .whatis--top {
      max-width: 100%;
      padding-bottom: 3rem;
    }

    .whatis-img {
      top: -2rem;
      left: 1rem;
      min-width: unset;
      width: 39rem;

      img {
        width: 100%;
        object-fit: cover;
      }
    }

    .whatis--cards {
      max-width: 100%;
      position: relative;
      right: 0;
      left: 0;
      justify-content: space-between;
    }

    .whatis--card {
      /* max-width: 380px; */
      margin-right: 1rem;
      height: 100%;
    }

    .slick-dots {
      display: flex !important;
      gap: .5rem;
      list-style: none;
      justify-content: center;

      li button {
        font-size: 0;
        width: 10px;
        height: 10px;
        border-radius: 999px;
        background-color: var(--white);
        border: none;
      }

      .slick-active button {
        width: 20px;
      }
    }

    .slick-track {
      height: 100%;
    }
  }

  @media screen and (max-width: 990px) {
    padding: 0;

    .whatis--top {
      padding: 3rem var(--margin-left) 4rem;

      .section-title {
        font-size: 2rem;
      }

      .whatis--subtitle {
        font-size: 1.25rem;
      }
    }

    .whatis--cards {
      padding: 0;
      flex-direction: column;
    }
  }
}

.solutions {
  background-color: var(--light-bg);
  padding: 13rem var(--margin-left) 2.5rem;

  .solutions--top {
    margin-bottom: 3.75rem;
    color: var(--subtitle-dark);

    .section-title {
      margin-bottom: 1.25rem;
    }
  }

  .solutions--content {
    display: flex;
    gap: 1.5rem;

    .solutions--img {
      position: relative;
      max-height: 26.75rem;

      img {
        max-width: 26.375rem;
        position: relative;
        top: 50%;
        transform: translateY(-50%);
      }

      &:before {
        content: '';
        position: absolute;
        width: 90%;
        height: 100%;
        max-height: 100%;
        background-color: var(--title-dark);
        left: -10vw;
      }
    }

    .solutions--cards-wrapper {
      max-width: 70%;
      position: relative;
      padding: 0 2rem;
    }

    .solutions--cards {
      display: flex;
      flex-direction: column;

      .slick-list {
        padding: 20px 2.5px !important;
        min-height: 28rem;
      }

      .solutions--card {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        min-height: 20rem;
        margin-right: -.5rem;
        margin-left: -.5rem;
        transition: all .3s ease-in-out;
        justify-content: center;
        box-shadow: unset;
        flex: 1 0 auto;
      }

      .solutions--item {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;

        h4 {
          color: var(--title-blue-md);
          font-size: 18px;
          /* font-weight: 600; */
        }

        p {
          color: var(--text-dark);
          font-size: 15px;
          line-height: 120%;
        }
      }

      .slick-slide {
        filter: blur(2.5px);
        margin-top: 2rem;
      }

      .slick-current {
        filter: none;
        z-index: 1;
        position: relative;
        margin-top: 5rem;
        box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.1);
      }

      .slick-dots {
        display: flex !important;
        gap: .5rem;
        list-style: none;
        justify-content: center;
        margin-top: -1rem;

        li button {
          font-size: 0;
          width: 10px;
          height: 10px;
          border-radius: 999px;
          background-color: var(--title-dark);
          border: none;
        }

        .slick-active button {
          width: 20px;
        }
      }
    }

    .solutions--arrow {
      all: unset;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      cursor: pointer;
    }

    .next-solutions {
      right: 0;
    }

    .prev-solutions {
      left: 0;
    }

  }

  @media screen and (max-width: 1405px) {
    padding: 12rem var(--margin-left) 3.5rem;
  }

  @media screen and (max-width: 1200px) {
    padding: 15rem 0 3.5rem;
    .solutions--top {
      padding: 0 var(--margin-left);
    }
    .solutions--content {
      flex-direction: column;

      .solutions--img{
        max-height: unset;
        img {
          position: static;
          transform: unset;
          max-width: 100%;
        }

        &:before {
        display: none;
        }
      }

      .solutions--cards-wrapper {
        padding: 0;
        max-width: 100%;

        .solutions--cards {
          .solutions--card {
            flex: 1 0 auto;
          }

          .slick-list {
            padding: 20px 30px !important;
            min-height: unset;
          }
          
          .slick-track {
            display: flex;
          }

          .slick-slide {
            height: auto;
          }
        }
      }

      .solutions--card {
        margin: 0 .5rem !important;
        max-width: unset !important;
        min-height: unset !important;
        height: 100%;
      }

      .slick-slide {
        filter: unset !important;
      }

      .solutions--arrow {
       display: none !important;
      }
    }
  }
}

.highlights {
  background-color: var(--light-bg);
  padding: 3rem var(--margin-left) 4.375rem;

  .highlights--tabs {
    width: 100%;
    max-height: 36.5rem;
    display: flex;
    border-radius: 10px;
    overflow: hidden;    

    .highlights--tab {
      background-color: var(--tabs-bg);
      padding: 2.75rem 0 0 2.75rem;
      display: flex;
      justify-content: space-between;
      width: 100%;
      max-width: calc(100% - (15rem * 2));
      height: 37rem;
      overflow: hidden;
      position: relative;

      transition: all .3s ease-in-out;

      .tab--content {
        max-width: 24.5rem;
        transition: all .2s ease;
      }
      
      .tab--title {
        color: var(--white);
        font-size: 2rem;
        font-weight: 600;
        margin-bottom: .5rem;
      }

      .tab--subtitle {
        color: var(--white);
        font-size: 1.25rem;
        line-height: 120%;
      }

      img {
        position: absolute;
        bottom: 0rem;
        right: 0;
        max-width: 44rem;
        width: 40vw;

        &.tab-img-catalogo {
          bottom: -5rem;
        }

        &.tab-img-retirada {
          bottom: -12rem;
          right: -3rem;
        }
      }

      .closed-arrow {
        display: none;
      }
    }

    .tab-closed {
      max-width: 15rem;
      background: var(--title-dark);

      cursor: pointer;
      padding: unset;
      
      .tab--content {
        transform: rotate(-90deg);
        position: absolute;
        bottom: 10rem;
        width: 120%;
        z-index: 1;
        p {
          display: none;
        }
      }

      img {
        position: static;
        max-width: 100%;
        height: 100%;
        opacity: .2;
        object-fit: cover;

        transition: opacity .3s;
      }

      &:hover {
        img {
          opacity: .4;
        }
      }
    }
  }

  @media screen and (max-width: 990px) {
    .highlights--tabs {
      max-height: unset;
      flex-direction: column;
      
      .highlights--tab {
        padding: 0;
        max-width: 100%;
        height: 25.75rem;
        flex-direction: column;


        .tab--content {
          padding: 1.25rem 1.25rem 0;
          transition: unset;
        }

        .tab--title {
          line-height: 130%;
        }

        img {
          width: 100%;
          position: unset;
          max-width: unset;

          &.tab-img-catalogo {
            margin-top: -2rem;
          }

          &.tab-img-retirada {
            margin: 1.25rem 0 0 1.25rem;
          }
        }
      }

      .tab-closed {
        max-width: 100%;
        height: 10rem;
        padding: 0;

        .tab--content {
          transform: unset;
          bottom: 50%;
          left: 50%;
          transform: translate(-50%, 50%);

          text-align: center;

          display: flex;
          align-items: center;
          justify-content: space-between;
          gap: .5rem;

          max-width: 90%;
        }

        .tab--title {
          font-size: 1.5rem;
          text-align: start;
        }

        img {
          position: absolute;
          top: 0;
          margin: 0 !important;
        }
      }

      .tab-open {
        .closed-arrow {
          display: none;
        }
      }
    }

    .tab-closed .closed-arrow {
      display: block !important;
    }
  }
  
  @media screen and (max-width: 620px) {
    .tab-img-catalogo {
      right: -7rem;
    }

    .tab-img-retirada {
      width: 90%;
      bottom: -9rem;
    }

  }

}

.integration {
  padding: 3rem 0;
  display: flex;
  flex-direction: column;
  gap: 3.1rem;

  .integration--title {
    color: var(--title-dark);
    font-size: 2rem;
    font-weight: 600;
    line-height: 143%;
    text-align: center;
  }

  .integration--logos {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    row-gap: .875rem;
    column-gap: 1.25rem;
    padding: 0 var(--margin-left);
    justify-content: center;
    justify-items: center;
    align-items: center;

    > img {
      width: 100%;
      height: auto;
      object-fit: contain;

      &:first-child {
        max-width: 80%;
      }
    }
  }

  @media screen and (max-width: 1350px){
    .integration--logos {
      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }
  }

  @media screen and (max-width: 990px) {
    padding: 3rem 0;

    .integration--title{
      padding: 0 var(--margin-left);
    }

    .integration--logos {
      display: block;
      justify-items: unset;

      div {
        margin-right: .5rem;
      }

      .slick-track {
        height: 154px;
      }

      .slick-slide {
        min-height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;

        &:first-child {
          padding-top: 20px;
        }
      }

      .slick-dots {
        display: flex !important;
        gap: .5rem;
        list-style: none;
        justify-content: center;

        li button {
          font-size: 0;
          width: 10px;
          height: 10px;
          border-radius: 999px;
          background-color: var(--blue);
          border: none;
        }

        .slick-active button {
          width: 20px;
        }
      }
    }
    
  }
}

.clients {
  background-color: var(--light-bg);
  padding: 4.375rem var(--margin-left);

  .clients--title {
    color: var(--title-dark);
    font-size: 2rem;
    font-weight: 600;
    line-height: 127%;
    text-align: center;

    margin-bottom: 1.875rem;
  }

  .clients--cards {
    display: grid;
    column-gap: 1.25rem;
    justify-content: center;
    grid-template-columns: repeat(4, 1fr);

    .clients--card {
      background-color: var(--white);
      border: 1px solid var(--gray-light);
      padding: 1.5rem;
      border-radius: 20px;
      
      display: flex;
      align-items: center;
      justify-content: center;

      img {
        max-width: 100%;
      }
    }
  }

  @media screen and (max-width: 990px) {
    .clients--cards {
      grid-template-columns: repeat(2, 1fr);
      column-gap: .5rem;
      row-gap: .5rem;
    }
  }
}

.why-haass {
  background-color: var(--green-light);
  padding: 3.125rem var(--margin-left);
  position: relative;

  .section-title {
    color: var(--white);
    margin-bottom: 1.875rem;
  }

  .why-haass--cards {
    display: flex;
    justify-content: center;
    flex-direction: column;

    .slick-track {
      display: flex;
    }

    .slick-slide {
      height: auto;
    }

    .why-haass--card {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      box-shadow: unset;

      margin-right: 0.625rem;
      margin-left: 0.625rem;
      flex: 1 0 auto;

      img {
        max-width: 68px;
      }
    }

    .slick-dots {
      justify-content: center;
      display: flex !important;
      gap: .5rem;
      list-style: none;
      margin-top: 2rem;

      li button {
        font-size: 0;
        width: 10px;
        height: 10px;
        border: none;
        background-color: var(--white);
        border-radius: 999px;
      }

      .slick-active button {
        width: 25px;
      }
    }
  }

  .why-haass--arrow {
    all: unset;
    position: absolute;
    top: 50%;
    cursor: pointer;

    &.prev-arrow {
      left: 7vw;
    }

    &.next-arrow {
      right: 7vw;
    }
  }

  @media screen and (max-width: 1299px) {
    .why-haass--arrow {
      &.prev-arrow {
        left: 2vw;
      }
  
      &.next-arrow {
        right: 2vw;
      }
    }
  }

  @media screen and (max-width: 990px) {
    padding: 3.125rem 0;

    .section-title {
      padding: 0 var(--margin-left);
    }

    .why-haass--arrow {
      display: none !important;
    }
  }
}

.results {
  background-color: var(--light-bg);
  padding: 4.5rem var(--margin-left);
  display: flex;
  flex-direction: column;
  gap: 5rem;

  .section-title {
    margin-bottom: 1.25rem;
    color: var(--text-dark);
  }

  .results--subtitle {
    color: var(--text-dark);
    font-size: 1.25rem;
  }

  .results--graphs {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .results--left {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;

    &:first-child {
      max-width: 22.5rem;
    }
  }

  .results--right {
    width: min-content;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  @media screen and (max-width: 1070px) {
    .results--graphs {
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 3rem;
    }

    img {
      width: 100%;
    }

    .results--right {
      width: 100%;
    }
  }

  @media screen and (max-width: 618px) {
    .section-title {
      font-size: 2rem;
    }

    .result--subtitle {
      font-size: 1.25rem;
    }

    .results--left {
      max-width: 100% !important;
    }

    .results--right {
      width: 110% !important;
    }
  }
}

footer {
  background: var(--blue-gradient);
  display: flex;
  justify-content: space-between;
  position: relative;

  .footer--form {
    padding: 2.5rem 0 5rem var(--margin-left);
    color: var(--white);
    
    .section-title {
      color: var(--white);
      margin-bottom: 1.25rem;
    }

    .footer--subtitle {
      font-size: 1.25rem;
      margin-bottom: 1.875rem;
    }

    form {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      max-width: 34.25rem;

      input {
        padding: 1rem 1.25rem;
        border-radius: 20px;
        background-color: transparent;
        border: 1px solid var(--white);
        color: var(--white);

        &:focus {
          outline: none;
          box-shadow: 0 0 0 1.5px var(--white);
        }

        &::placeholder {
          color: var(--white);
        }
      }

      button {
        width: 100%;
      }
    }
  }

  .desktop {
    max-width: 60%;
  }

  @media screen and (max-width: 1200px) {
    flex-direction: column;

    .footer--form {
      .section-title {
        font-size: 2rem;
      }

      padding: 2.5rem 1.5rem 0;
    }
  }
}