@import url("https://fonts.googleapis.com/css2?family=Enriqueta:wght@400;600&family=Exo+2:wght@300;400;600&family=Poppins:wght@300;400;600&display=swap");
@font-face {
  font-family: "Exo 2", "Montserrat", "Arial";
  src: url("https://fonts.googleapis.com/css2?family=Enriqueta:wght@400;600&family=Exo+2:wght@300;400;600&family=Poppins:wght@300;400;600&display=swap")
    format("woff2");
  font-display: swap; /* O navegador usa uma fonte similar e troca instantaneamente sem 'pular' o layout */
}

:root {
  --cor-primaria: #f6f6f6;
  --cor-secundaria: #0f6fff;
  --cor-tercearia: #6ed2fd;
  --cor-hover: #38bdff;
  --cor-font: #000;
  --container: 1200px;
}

/* RESET */

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

html {
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  font-family: "Exo 2", sans-serif;
  background: linear-gradient(
    to right,
    var(--cor-secundaria),
    var(--cor-tercearia)
  );
  color: var(--cor-primaria);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* CONTAINER GLOBAL */

.interface {
  max-width: var(--container);
  margin: auto;
  padding: 5rem 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
}

/* HEADER */

.cabecalho {
  padding: 1rem 0;
}

.cabecalho_menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--container);
  margin: auto;
  padding: 0 1.5rem;
}

.cabecalho_menu_navegacao {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.cabecalho_menu_titulo {
  text-decoration: none;
  color: var(--cor-font);
  font-size: 1.1rem;
  font-weight: 400;
}

.cabecalho_menu_botao {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.3rem;
  border-radius: 2rem;
  background: rgba(255, 255, 255, 0.3);
  border: 0.05rem solid #000;
  transition: 0.3s;
}

.cabecalho_menu_botao:hover {
  background: var(--cor-hover);
}

/* HERO */

.principal_section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-align: center;
}

.principal_section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
  animation: trocarFundo 50s ease-in-out infinite;
}

.apresentacao__conteudo {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 2rem;
}

.apresentacao__conteudo h1 {
  font-family: "Poppins";
  font-weight: 200;
  font-size: clamp(2.5rem, 6vw, 5.5rem);
}

.apresentacao__conteudo p {
  font-size: clamp(1.2rem, 2vw, 2rem);
  font-weight: 400;
}

/* BOTÃO */

.botao {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  background: var(--cor-tercearia);
  padding: 0.7rem 1.4rem;
  border-radius: 2rem;
  transition: 0.3s;
}

.botao:hover {
  background: var(--cor-hover);
}

.botao_NossoServicos {
  text-decoration: none;
  color: var(--cor-font);
  font-size: 1rem;
}

/* SEÇÕES */

.slide_padrao,
.slide_catraca,
.slide_padrao_azul {
  padding: 8rem 0;
}

.slide_padrao {
  background: var(--cor-primaria);
  color: #0080ff;
}

.slide_padrao_azul {
  background-image: url(./imagem/background_slide.png);
}

.texto-slide {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 40rem;
}

.texto-slide h1 {
  font-size: clamp(4rem, 4vw, 3rem);
}

.texto-slide p {
  font-size: clamp(1rem, 1.5vw, 1.3rem);
  line-height: 1.6;
}

.texto-slide_gps h1 {
  font-size: clamp(4rem, 4vw, 3rem);
}

.texto-slide_gps p {
  font-size: clamp(1rem, 1.5vw, 1.3rem);
  line-height: 1.6;
}

/* FOOTER */

.rodape {
  text-align: center;
  padding: 2rem;
  background: #0f6fff;
  color: var(--cor-font);
  font-size: 0.9rem;
}

/* MODAL */

/* Container que cobre a tela toda */
.modal-container {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 20, 50, 0.7);
  backdrop-filter: blur(0.3125rem);
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.modal-fechando .modal-conteudo {
  animation: sair 0.3s ease-in forwards !important;
}

/* 1. Definindo o movimento de "surgir" */
@keyframes entrar {
  from {
    opacity: 0;
    transform: scale(0.8) translateY(-30px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* --- ANIMAÇÃO DE SAÍDA --- */
@keyframes sair {
  from {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  to {
    opacity: 0;
    transform: scale(0.9) translateY(20px);
  }
}

/* Caixa branca do formulário */

.modal-conteudo {
  background-color: var(--cor-primaria);
  padding: 2.5rem; /* antes 40px */
  border-radius: 0.9375rem; /* antes 15px */
  width: 90%;
  max-width: 28.125rem; /* antes 450px */
  position: relative;
  font-family: "Enriqueta", serif;
  color: var(--cor-font);
  box-shadow: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.3);
  animation: entrar 0.3s ease-out forwards; /* O 'forwards' mantém o estado final */
}

/* Título */

.modal-titulo {
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
  gap: 0.625rem; /* antes 10px */
}

.modal-titulo h2 {
  font-size: 2.5rem; /* antes 40px */
  width: 50%;
  color: var(--cor-secundaria);
}

.modal-titulo p {
  font-family: Arial, sans-serif;
  font-size: 1.375rem; /* antes 22px */
  width: 100%;
  padding-bottom: 1.25rem; /* antes 20px */
}

/* Botão fechar */

.botao-fechar {
  position: absolute;
  top: 0;
  right: 1.25rem; /* antes 20px */
  font-size: 2.5rem; /* antes 40px */
  cursor: pointer;
  color: #666;
}

/* Form */

.form-modal {
  display: flex;
  flex-direction: column;
  gap: 0.625rem; /* antes 10px */
}

/* Campo */

.campo {
  font-family: Arial, Helvetica, sans-serif;
  display: flex;
  align-items: center;
  padding: 0.625rem 5%;
  border-radius: 0.9375rem; /* antes 15px */
  background-color: var(--cor-secundaria);
  color: white;
  text-align: center;
}

.input {
  width: 100%;
  padding: 0.625rem; /* antes 10px */
  border: none;
  border-radius: 0.3125rem; /* antes 5px */
  font-size: 1.125rem; /* antes 18px */
  background: transparent;
  outline: none;
}

/* Placeholder */

input::placeholder {
  color: #afafaf;
  opacity: 1;
}

/* Botão enviar */

.botao-enviar {
  background-color: var(--cor-secundaria);
  color: var(--cor-primaria);
  border: none;
  padding: 0.9375rem; /* antes 15px */
  width: 100%;
  border-radius: 0.5rem; /* antes 8px */
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
  font-size: 1rem; /* antes 16px */
}

.botao-enviar:hover {
  background-color: #0fb300;
}

/* RGB TEXT */

.efeitorgb {
  /* 1. Aumentei o tamanho do fundo para 400% (essencial para não cortar) */
  background: linear-gradient(90deg, #00d1ff, #2993fd, #0080ff, #00d1ff);
  background-size: 400% 100%;
  font-weight: 600;

  /* 2. Clipping do texto (você já tinha, mas garanta que o display ajude) */
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block; /* Ajuda o navegador a calcular o tamanho real do texto */

  /* 3. A animação precisa ser 'linear' e 'infinite' para ser fluida */
  animation: degradeAnimado 8s linear infinite;
}

@keyframes degradeAnimado {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 400% 50%; /* Faz o ciclo completo do degradê */
  }
}

/* BACKGROUND ANIMATION */

@keyframes trocarFundo {
  /* --- IMAGEM 1 (Dura de 0% a 50%) --- */
  0% {
    opacity: 0;
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem1.png");
  }
  10%,
  40% {
    opacity: 1; /* Fica nítida */
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem1.png");
  }
  50% {
    opacity: 0; /* Esfumaça totalmente */
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem1.png");
  }

  /* --- TROCA DE IMAGEM NO ESCURO (Exatamente em 50.1%) --- */
  50.1% {
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem2.png");
  }

  /* --- IMAGEM 2 (Dura de 51% a 100%) --- */
  60%,
  90% {
    opacity: 1; /* Fica nítida */
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem2.png");
  }
  100% {
    opacity: 0; /* Esfumaça para reiniciar o ciclo */
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
      url("./imagem/imagem2.png");
  }
}

/* RESPONSIVIDADE */

/* TABLET */

@media (max-width: 900px) {
  .interface {
    flex-direction: column;
    text-align: center;
    padding: 3rem;
  }

  .interface h1 {
    font-size: 2.45rem;
    width: 100%;
  }

  .interface p {
    font-size: 1.25rem;
  }

  .cabecalho_menu_navegacao {
    gap: 1rem;
  }
  .cabecalho_menu_titulo {
    font-size: 0.7rem;
  }

  .cabecalho_menu_logo img {
    width: 45px;
  }
}

/* MOBILE */

@media (max-width: 390px) {
  .cabecalho_menu_navegacao {
    display: flex;
  }

  .apresentacao__conteudo {
    padding: 1rem;
  }

  .botao {
    margin-top: 1.5rem;
  }

  .modal-titulo h2 {
    font-size: 2.8rem;
    width: 15rem;
  }

  .container-servicos .revelar {
    display: flex;
    flex-direction: column;
    font-size: 3rem;
    line-height: 3rem;
    padding-top: 2rem;
  }

  .container-servicos .revelar strong {
    font-size: 3rem;
  }

  .card .botao-saiba-mais {
    padding: 0.5rem 7rem;
  }
}

/* Estado inicial: invisível e um pouco abaixo da posição original */
.revelar {
  opacity: 0;
  transform: translateY(50px);
  transition: all 1s ease-out; /* Controla a suavidade da subida */
}

/* Estado final: visível e na posição correta */
.revelar.ativo {
  opacity: 1;
  transform: translateY(0);
}

/* BOTÃO SERVIÇO */
ww .container-servicos .revelar {
  font-family: "Exo 2";
  font-weight: 100;
  text-align: center;
  font-size: 3rem;
  padding: 0rem 0rem 0rem;
  cursor: default;
}

.container-servicos .revelar strong {
  color: #0077ff; /* Cor do seu degradê */
  font-weight: bold;
  font-size: 5rem;
}

.container-servicos .revelar strong:hover {
  color: #000;
  transition: 2s;
  cursor: default;
}

.grid-servicos {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(
    auto-fit,
    minmax(350px, 1fr)
  ); /* Responsivo automático! */
  padding: 2.5rem 5%;
  /* max-width: 2000px ativar se necessário. é bom pra quem usa ultrawide*/
}
.card_descricao {
  text-align: center;
}

.card {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* background: rgba(255, 255, 255, 0.1); */
  backdrop-filter: blur(0.65rem);
  border-radius: 2rem;
  padding: 1.25rem 1.25rem 4.25rem 1.25rem;
  transition: 0.3s;
  gap: 2rem;
}

.card img {
  width: calc(450px);
}

.card:hover {
  transform: translateY(-10px); /* Efeito flutuante profissional */
  background: rgba(255, 255, 255, 0.2);
}

.botao-saiba-mais {
  font-family: "Exo 2";
  background: var(--cor-tercearia);
  padding: 0.7rem 9.4rem;
  border-radius: 2rem;
  transition: 1s;
  border: none;
  filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.1));
}

.botao-saiba-mais:hover {
  background: white;
  cursor: pointer;
}

input[name="nome"] {
  text-transform: capitalize;
}
