@font-face {
  font-family: 'Boldonse';
  src: url('/assets/fonts/Boldonse/Boldonse-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

body.home-header-overlay {
  & #header-placeholder {
    height: 0 !important;
  }
}

& .hero-video {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;

  & .bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  & .overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.801);
  }

  & .conteudo {
    display: flex;
    flex-flow: column;
    gap: 4rem;
    justify-content: flex-end;
    position: relative;
    z-index: 2;
    color: white;
    text-align: left;
    padding-left: 2rem;
    /* padding: 33rem 21rem; */

    &::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 4px;
      background-color: var(--laranja-hashimoto);
      border-radius: 1rem;
      transform-origin: bottom;
      transform: scaleY(0);
      opacity: 0;
      animation: revelar-borda-conteudo 0.8s ease-out 1s forwards;
    }

    & .titulo {
      font-size: 2rem;
      font-weight: 600;
      color: var(--laranja-hashimoto);
    }

    & .apresentacao {
      font-family: 'Archivo Black', sans-serif;
      font-size: 5rem;
      line-height: 5.5rem;
      font-weight: bolder;
    }

    & p {
      display: block;
    }

    & .botao-conteudo {
      display: inline-block;
      background-color: var(--laranja-hashimoto);
      padding: 1.5rem 3rem;
      border-radius: 1rem;
      font-weight: 600;
      text-align: center;
      box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.138);
      transition: background-color 0.25s ease;
      width: 26.2rem;

      &:hover {
        background-color: #f15922;
      }
    }
  }

  & .hero-indicador {
    position: absolute;
    left: 50%;
    bottom: 4.2rem;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: flutuar-indicador 2.4s ease-in-out infinite;
  }
}

@media (prefers-reduced-motion: reduce) {
  .video video {
    transform: none;
  }

  .hero-video .hero-indicador {
    animation: flutuar-indicador 3.2s ease-in-out infinite;
  }

  .hero-video .conteudo::before {
    animation: none;
    transform: scaleY(1);
    opacity: 1;
  }
}

@keyframes flutuar-indicador {
  0% {
    transform: translate(-50%, 0);
  }
  50% {
    transform: translate(-50%, -2.2rem);
  }
  100% {
    transform: translate(-50%, 0);
  }
}

@keyframes revelar-borda-conteudo {
  0% {
    transform: scaleY(0);
    opacity: 0;
  }
  100% {
    transform: scaleY(1);
    opacity: 1;
  }
}

& .secao-servico {
  & .container-servicos {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    justify-content: center;

    & img {
      width: 60rem;
    }

    & .servicotexto {
      width: 51.8rem;
      display: flex;
      flex-flow: column;
      gap: 1rem;

      & .textos {
        display: flex;
        flex-flow: column;
        gap: 0.8rem;

        & h1 {
          color: var(--azul-Fonte);
          line-height: 3.5rem;
        }

        & .p-nossosservicos {
          font-size: 1.4rem;
          border-bottom: 2px solid #f15922;
        }
        & .p-descricao-servicos {
          color: rgba(0, 0, 0, 0.5);
        }
      }

      & .tipos-servicos {
        display: flex;
        flex-flow: column;
        gap: 1.3rem;

        & .tiposervico {
          border: 1px solid #0b2c4421;
          border-radius: 1rem;
          padding: 1.5rem;
          cursor: pointer;

          & .descricao-servico {
            display: none;
          }

          & h2 {
            font-size: 2rem;
          }

          & .titulo-tiposervico {
            display: flex;
            align-items: center;
            gap: 1rem;

            & h2 {
              color: var(--azul-Fonte);
              font-weight: 600;
              transition: color 0.25s ease;
            }
          }

          & .icon-tiposervico {
            width: 5rem;
            height: 5rem;
            background-color: #09243b;
            border-radius: 1rem;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 0.3rem 1rem rgba(0, 0, 0, 0.11);

            & img {
              width: 2.7rem;
              height: 2.7rem;
            }
          }

          /* & .icon-iluminacao {
            background-color: #a80000;
          }
          & .icon-engenharia {
            background-color: #006c9e;
          }
          & .icon-painel {
            background-color: #f1b500;
          }
          & .icon-sinalizacao {
            background-color: #0d9c00;
          } */

          & .p-desctiposervico {
            padding: 0 0 0 5.5rem;
          }

          & .aberto-fechado {
            width: 45rem;
            display: flex;
            justify-content: space-between;

            & svg {
              transform: rotate(0deg);
              transform-origin: center;
              transition: transform 0.22s ease;
            }
          }
        }

        & .servico-aberto {
          background: linear-gradient(145deg, #0e3654 0%, #081d30 100%);
          border-color: rgba(255, 255, 255, 0.14);
          box-shadow: 0 0.5rem 2rem rgba(6, 20, 33, 0.138);
          animation: abrir-card-servico 0.26s ease;

          & .descricao-servico {
            display: block;
            animation: abrir-descricao-servico 0.28s ease both;
          }

          & .aberto-fechado h2 {
            color: #f5f9ff;
            font-size: 2.1rem;
            font-weight: 700;
            letter-spacing: 0.02rem;
            line-height: 1.25;
          }

          & .p-desctiposervico {
            color: rgba(245, 249, 255, 0.9);
            font-size: 1.5rem;
            line-height: 1.6;
          }

          & .aberto-fechado svg path {
            fill: #ffffff;
          }

          & .aberto-fechado svg {
            transform: rotate(180deg);
          }

          & .icon-tiposervico {
            background-color: var(--laranja-hashimoto);
          }
        }
      }
    }
  }
}

@keyframes abrir-card-servico {
  from {
    transform: translateY(0.3rem);
    box-shadow: 0 0.2rem 0.8rem rgba(6, 20, 33, 0.14);
  }
  to {
    transform: translateY(0);
    box-shadow: 0 0.8rem 2rem rgba(6, 20, 33, 0.24);
  }
}

@keyframes abrir-descricao-servico {
  from {
    opacity: 0;
    transform: translateY(0.6rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

& .secao-obras {
  background: linear-gradient(to right, #0b2c44, #061622);

  & .container-obras {
    & .grid-obras {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1rem;

      grid-template-areas:
        'item1 item2 item3'
        'item4 item5 item5';
      & .grid-item {
        height: 30rem;
        background-color: #fff;
      }

      & .grid-item {
        border-radius: 1rem;
        padding: 2rem;
        color: white;
        display: flex;
        flex-flow: column;
        gap: 1rem;
        justify-content: flex-end;
        position: relative;
        overflow: hidden;
        transition:
          transform 0.25s ease,
          box-shadow 0.25s ease;

        &::before {
          content: '';
          position: absolute;
          inset: 0;
          background-color: rgba(0, 0, 0, 0.325);
          transition: background-color 0.25s ease;
          pointer-events: none;
          z-index: 0;
        }

        & > * {
          position: relative;
          z-index: 1;
        }

        & .click {
          position: absolute;
          top: 1.6rem;
          right: 1.6rem;
          z-index: 2;
          pointer-events: none;
        }

        & .click img {
          width: 3.2rem;
          height: 3.2rem;
          display: block;
        }

        & .botao-obra {
          height: 4rem;
          width: 50%;
          background-color: #ff6a00;
          font-weight: 600;
          color: #09243b;
          font-size: 1.4rem;
          display: flex;
          max-height: 0;
          margin-top: 0;
          padding-top: 0;
          padding-bottom: 0;
          opacity: 0;
          visibility: hidden;
          transform: translateY(0.8rem);
          overflow: hidden;
          pointer-events: none;
          transition:
            opacity 0.25s ease,
            transform 0.25s ease,
            max-height 0.25s ease,
            margin-top 0.25s ease,
            padding-top 0.25s ease,
            padding-bottom 0.25s ease,
            visibility 0s linear 0.25s;
        }

        &:hover::before {
          background-color: rgba(11, 44, 68, 0.38);
        }

        &:hover {
          transform: translateY(-0.35rem);
          box-shadow: 0 0.8rem 1.8rem rgba(6, 20, 33, 0.22);
        }

        &:hover .botao-obra {
          max-height: 4rem;
          margin-top: 0.8rem;
          padding-top: 1rem;
          padding-bottom: 1rem;
          opacity: 1;
          visibility: visible;
          transform: translateY(0);
          pointer-events: auto;
          transition-delay: 0s;
        }

        &.obra-aberta::before {
          background-color: rgba(11, 44, 68, 0.38);
        }

        &.obra-aberta {
          transform: translateY(-0.35rem);
          box-shadow: 0 0.8rem 1.8rem rgba(6, 20, 33, 0.22);
        }

        &.obra-aberta .botao-obra {
          max-height: 4rem;
          margin-top: 0.8rem;
          padding-top: 1rem;
          padding-bottom: 1rem;
          opacity: 1;
          visibility: visible;
          transform: translateY(0);
          pointer-events: auto;
          transition-delay: 0s;
        }

        & .p-griditem {
          color: #ffffffb7;
        }
      }

      & .item1 {
        grid-area: item1;
        background: transparent;
        box-shadow: none;
        display: flex;
        color: #ffffffe4;
        font-size: 3rem;
        line-height: 4rem;
        align-items: center;
        justify-content: center;
        padding: 0;
        transition: none;
        transform: none;
        overflow: visible;

        &::before {
          content: none;
        }

        &:hover {
          transform: none;
          box-shadow: none;
        }
      }

      & .item2 {
        grid-area: item2;
        background-image: url('../assets/images/home/atendimentoturista.jpeg');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
      }

      & .item3 {
        grid-area: item3;
        background-image: url('../assets/images/home/Empresas.webp');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
      }

      & .item4 {
        grid-area: item4;
        background-image: url('../assets/images/home/sinalizacao.JPEG');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
      }

      & .item5 {
        grid-area: item5;
        background-image: url('../assets/images/home/PracadoBemEstar.webp');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
      }
    }
  }
}

& .secao-brasao {
  & .container-brasao {
    display: flex;
    flex-flow: column;
    gap: 4rem;

    & .grid-brasoes {
      display: grid;
      align-items: center;
      gap: 0.6rem;
      grid-template-columns: repeat(7, 1fr);

      & .img-brasao {
        transition: transform 0.25s ease;
      }

      & .img-brasao:hover {
        transform: translateY(-0.35rem);
      }
    }

    img {
      width: 13rem;
      /* filter: grayscale(100%);
      transition: 0.3s ease; */
    }

    /* img:hover {
      filter: grayscale(0%);
    } */

    & .texto-brasao {
      display: flex;
      align-items: center;
      justify-content: space-between;

      & h3 {
        width: 28rem;
        font-size: 3rem;
        padding-left: 3rem;
        box-sizing: border-box;
        border-left: 4px solid #f15922;
        color: var(--azul-Fonte);
      }

      & .p-brasao {
        border-top: 3px solid #f15922;
        padding-top: 2rem;
      }

      & p {
        width: 68rem;
        color: rgba(0, 0, 0, 0.664);
        letter-spacing: 0.01rem;
        font-size: 1.8rem;
      }
    }
  }
}

.secao-quemsomos {
  background: linear-gradient(to right, #0b2c44, #061622);

  & .conatiner-quemsomos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;

    & .img-quemsomos {
      width: 50%;
      height: 54rem;
      background-image: url('../assets/images/quemsomos/capaquemsomos.webp');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      border-radius: 1.4rem;
    }

    & .inf-quemsomos {
      display: flex;
      flex-flow: column;
      gap: 3rem;
    }

    & .texto-quemsomos {
      width: 50%;
      display: flex;
      flex-flow: column;
      color: #ffffffdd;
      letter-spacing: 0.1rem;

      & .nome-secao {
        border-bottom: 1px solid var(--laranja-hashimoto);
        font-size: 1.4rem;
      }

      & h3 {
        font-size: 3.6rem;
        line-height: 3.8rem;

        & span {
          color: var(--laranja-hashimoto);
        }
      }

      & .lista-quemsomos {
        & ul {
          list-style: none;
          padding-left: 0;
        }

        & li {
          display: flex;
          align-items: center;
          gap: 0.8rem;
        }

        & li::before {
          content: '•';
          color: var(--laranja-hashimoto);
          font-size: 2em;
          line-height: 1;
        }
      }
    }
  }
}

footer {
  background-color: #fff;

  & .container-footer {
    max-width: var(--container-max-width);
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    letter-spacing: 0.03rem;
    font-weight: 600;
    color: #00000090;
    padding-bottom: 4rem;
    border-bottom: 1px solid #00000054;
  }

  & .img-footer {
    width: 23rem;
    display: flex;
    flex-flow: column;
    gap: 1rem;
    align-items: flex-start;
    text-align: left;

    & img {
      margin-bottom: 1.5rem;
    }

    & p {
      border-top: 2px solid var(--laranja-hashimoto);
      padding-top: 1.5rem;
      font-family: 'Archivo Black', sans-serif;
      font-size: 2.1rem;
      color: #f15922;
    }
  }

  & .footer-redessociais {
    width: 20rem;

    display: flex;
    flex-flow: column;

    & .itens-contatos {
      display: flex;
      gap: 1rem;
    }

    & .item-contato {
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid #f15922;
      width: 4.5rem;
      height: 4.5rem;
      border-radius: 1rem;
    }
    & .item-contato:hover {
      background-color: #f15922;

      & svg path {
        fill: #e9e9e9;
      }
    }
  }

  & .linksrapidos {
    width: 19rem;

    display: flex;
    flex-flow: column;
    gap: 0.1rem;

    & a:hover {
      color: #f15922;
    }

    & .seta-link {
      display: flex;
      align-items: center;
      gap: 0.4rem;
    }
  }

  & .informacoesdecontato {
    width: 30rem;

    display: flex;
    flex-flow: column;
    gap: 0.8rem;

    & .informacaocontato {
      display: flex;
      align-items: center;
      gap: 0.8rem;
    }
  }

  & h3 {
    color: var(--laranja-hashimoto);
    padding-bottom: 1rem;
  }

  & .direitos {
    text-align: center;
    padding-top: 4rem;
  }
}

@media (max-width: 1080px) {
  & .hero-video {
    & .conteudo {
      max-width: 86rem;

      & .apresentacao {
        font-size: 3.4rem;
        line-height: 5.2rem;
      }
    }
  }

  & .secao-servico {
    & .container-servicos {
      gap: 2rem;

      & img {
        width: min(48vw, 52rem);
      }

      & .servicotexto {
        width: min(50vw, 49rem);

        & .tipos-servicos {
          & .tiposervico {
            & .aberto-fechado {
              width: 100%;
              gap: 1rem;
            }
          }
        }
      }
    }
  }

  & .secao-obras {
    & .container-obras {
      & .grid-obras {
        & .grid-item {
          & .botao-obra {
            width: 65%;
          }
        }
      }
    }
  }

  & .secao-brasao {
    & .container-brasao {
      & .texto-brasao {
        gap: 2.4rem;
        align-items: flex-start;
        flex-direction: column;

        & h3 {
          width: 100%;
        }

        & p {
          width: 100%;
        }
      }

      & .grid-brasoes {
        grid-template-columns: repeat(5, 1fr);
      }
    }
  }

  & .secao-quemsomos {
    & .conatiner-quemsomos {
      & .texto-quemsomos {
        & h3 {
          font-size: 3.2rem;
          line-height: 3.5rem;
        }
      }
    }
  }

  footer {
    & .container-footer {
      gap: 3rem 2rem;
      flex-wrap: wrap;
    }

    & .img-footer {
      width: min(100%, 30rem);
    }

    & .informacoesdecontato {
      width: min(100%, 40rem);
    }

    & .linksrapidos,
    & .footer-redessociais {
      width: min(100%, 24rem);
    }
  }
}

@media (max-width: 900px) {
  .secao {
    padding: 7.6rem 2rem;
  }

  & .hero-video {
    & .conteudo {
      width: min(100%, 64rem);
      gap: 3rem;
      padding-left: 1.8rem;

      & .titulo {
        font-size: 1.7rem;
      }

      & .apresentacao {
        font-size: 3rem;
        line-height: 4.2rem;
      }

      & .botao-conteudo {
        width: 23rem;
      }
    }
  }

  & .secao-servico {
    & .container-servicos {
      flex-direction: column;
      align-items: stretch;

      & img {
        width: min(100%, 62rem);
        margin: 0 auto;
      }

      & .servicotexto {
        width: min(100%, 62rem);
        margin: 0 auto;

        & .tipos-servicos {
          & .tiposervico {
            & .aberto-fechado {
              align-items: center;
            }

            & .p-desctiposervico {
              padding: 1rem 0 0;
            }
          }
        }
      }
    }
  }

  & .secao-obras {
    & .container-obras {
      & .grid-obras {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
          'item1 item1'
          'item2 item3'
          'item4 item5';

        & .item1 {
          min-height: 16rem;
          justify-content: flex-start;
          align-items: flex-start;
          line-height: 1.15;
          font-size: 2.6rem;
          padding-top: 1rem;
        }
      }
    }
  }

  & .secao-brasao {
    & .container-brasao {
      & .grid-brasoes {
        grid-template-columns: repeat(4, 1fr);

        & .img-brasao {
          display: flex;
          justify-content: center;
        }
      }

      img {
        width: min(100%, 11rem);
      }
    }
  }

  .secao-quemsomos {
    & .conatiner-quemsomos {
      flex-direction: column-reverse;

      & .img-quemsomos,
      & .texto-quemsomos {
        width: 100%;
      }

      & .img-quemsomos {
        height: 42rem;
      }
    }
  }
}

@media (max-width: 640px) {
  .secao {
    padding: 6rem 1.6rem;
  }

  & .hero-video {
    height: 100vh;

    & .conteudo {
      width: 100%;
      gap: 2.4rem;
      padding-left: 1.2rem;

      & .apresentacao {
        font-size: 2.4rem;
        line-height: 3.4rem;
      }

      & .botao-conteudo {
        width: min(100%, 22rem);
      }
    }

    & .hero-indicador {
      bottom: 2.2rem;
    }
  }

  & .secao-servico {
    & .container-servicos {
      & .servicotexto {
        & .textos {
          & h1 {
            font-size: 2.8rem;
            line-height: 3.2rem;
          }
        }

        & .tipos-servicos {
          & .tiposervico {
            padding: 1.3rem;

            & .icon-tiposervico {
              width: 4.2rem;
              height: 4.2rem;
            }

            & h2 {
              font-size: 1.8rem;
            }
          }
        }
      }
    }
  }

  & .secao-obras {
    & .container-obras {
      & .grid-obras {
        grid-template-columns: 1fr;
        grid-template-areas:
          'item1'
          'item2'
          'item3'
          'item4'
          'item5';

        & .grid-item {
          height: 25rem;

          & .botao-obra {
            width: 72%;
          }
        }

        & .item1 {
          min-height: 12rem;
          height: auto;
          font-size: 2.3rem;
        }
      }
    }
  }

  & .secao-brasao {
    & .container-brasao {
      & .texto-brasao {
        & h3 {
          font-size: 2.4rem;
          line-height: 1.2;
          padding-left: 1.6rem;
        }

        & p {
          font-size: 1.6rem;
        }
      }

      img {
        width: min(100%, 8.5rem);
      }

      & .grid-brasoes {
        grid-template-columns: repeat(5, 1fr);
      }
    }
  }

  .secao-quemsomos {
    & .conatiner-quemsomos {
      & .img-quemsomos {
        height: 30rem;
      }

      & .texto-quemsomos {
        & h3 {
          font-size: 2.6rem;
          line-height: 3rem;
        }
      }
    }
  }

  footer {
    & .container-footer {
      flex-direction: column;
      gap: 5rem;
      font-weight: 500;
    }

    & .img-footer,
    & .informacoesdecontato,
    & .linksrapidos,
    & .footer-redessociais {
      width: 100%;
      max-width: none;
    }

    & .direitos {
      padding-top: 2.8rem;
    }
  }
}
