@import url("https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Josefin+Sans:ital,wght@0,100..700;1,100..700&display=swap");

/* Reset */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
body {
  line-height: 1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* Fim Reset */

:root {
  --azul: #103f61;
  --bege: #caad68;
  --preto: #1a1a1a;
  --azul-escuro: #1e223a;
  --branco: #fffbf6;
  --font01: "IBM Plex Serif";
  --font02: "Inter";
  --font03: "Josefin Sans";
  --font04: "Arimo";
}

.font01 {
  font-family: var(--font01);
  font-weight: 500;
  font-size: 24px;
  text-align: center;
}
.menus {
  display: none;
}

.base-bege {
  /* 1. Define a cor e espessura da linha */
  border-bottom: 3px solid var(--bege);

  /* 2. Adiciona um preenchimento para empurrar a linha para baixo */
  padding-bottom: 7px;

  /* 3. Ajusta o display para que a borda funcione corretamente */
  display: inline-block;
}

/* ------------------- NAVBAR / CABEÇALHO ------------------- */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  background-color: var(--azul-escuro);
  color: #fff;
  position: relative; /* Para o z-index e posicionamento */
  z-index: 100; /* Garante que a navbar fique no topo */
  border-bottom: 4px solid var(--bege);
}

.logo-img {
  height: 80px;
  /* filter: brightness(0) invert(1); Tenta deixar o logo branco/dourado no fundo escuro, dependendo do logo */
}

/* ------------------- ÍCONE HAMBÚRGUER ------------------- */
.hamburger-menu {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  width: 50px;
  height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  position: relative;
  z-index: 101; /* Fica acima do menu dropdown */
}

.bar {
  display: block;
  width: 100%;
  height: 8px;
  background-color: var(--bege);
  border-radius: 10px;
  transition: all 0.3s ease-in-out;
}

/* Opcional: Animação de fechar (X) - Bônus */
.hamburger-menu.is-active .bar:nth-child(2) {
  opacity: 0;
}

.hamburger-menu.is-active .bar:nth-child(1) {
  transform: translateY(15.5px) rotate(45deg);
}

.hamburger-menu.is-active .bar:nth-child(3) {
  transform: translateY(-10.5px) rotate(-45deg);
}

/* ------------------- MENU DROPDOWN (O que desce) ------------------- */
.dropdown-menu {
  /* Altura total do menu fechado */
  max-height: 0;
  /* Transição para a animação de "descer e empurrar" */
  transition: max-height 0.5s ease-in-out;
  overflow: hidden; /* Importante para a animação */
  background-color: var(--azul-escuro);
  width: 100%;
  color: #fff;
  font-family: var(--font03);
  /* Garante que o menu comece logo abaixo da navbar */
  position: relative;
  z-index: 99;
}

.dropdown-menu.is-open {
  /* Altura do menu aberto. Ajuste este valor! */
  /* Deve ser maior que a soma das alturas dos seus itens de menu */
  max-height: 300px;
}

.dropdown-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.dropdown-menu li a {
  display: block;
  padding: 15px 20px;
  text-decoration: none;
  color: var(--white);
  font-size: 1.1em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: background-color 0.3s;
}

.dropdown-menu li a:hover {
  color: var(--bege);
}

/* Divisão Bege */

.divisao-bege {
  width: 100%;
  height: 10px;
  background-color: var(--bege);
}

/* Rodapé */

.rodape01 {
  /* Mantém o fundo e a cor do texto principal */
  text-align: center;
  background-color: var(--azul-escuro);
  color: #fff;
  padding-bottom: 20px; /* Adiciona um padding no final para não ficar grudado */
}

/* Garante que o logo tenha a cor branca/dourada para aparecer no fundo escuro */
.rodape01 img {
  padding: 3rem 0;
  width: 250px;
  height: auto;
}

.campo_rodape {
  text-align: left;
  margin-bottom: 4rem;
  margin-left: 20px;
  padding-left: 20px; /* Adiciona um padding para melhor alinhamento */
  padding-top: 15px; /* Espaçamento entre os blocos de rodapé */
}

/* Estilo do TÍTULO (Contato, E-mail, Endereço) - Imagem 02 */
.campo_rodape h4 {
  font-size: 24px;
  font-family: var(--font04);
  font-weight: bold; /* Título em negrito */
  color: #fff; /* Garante que o título seja branco */
  margin-bottom: 10px; /* Espaçamento após o título */
}

/* Container do ÍCONE e TEXTO */
.campo_rodape_conteudo {
  display: flex;
  align-items: center; /* CHAVE: Alinha o ícone e o texto verticalmente no centro */
  flex-wrap: nowrap;
  margin: 2rem 0; /* Espaçamento entre as linhas de contato */
}

/* Estilo da Imagem/Ícone */
.campo_rodape_conteudo img {
  width: 18px;
  height: 18px;
  margin-right: 15px;
  padding: 0;
  /* flex-shrink: 0; */
}

/* Estilo do Texto/Link (o número de telefone/whatsapp) */
.campo_rodape_conteudo a {
  text-decoration: none;
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  font-family: var(--font04);
  line-height: 1.2;
}

/* Rodapé 02 */

.rodape02 {
  background-color: #0c0f22;
  color: #fff;
  text-align: center;
  font-family: var(--font04);
  font-size: 16px;
  padding: 2rem;
  border: none;
}

.rodape02 p {
  line-height: 24px;
}

.rodape02 a {
  text-decoration: none;
  color: #fff;
}

/* ------------------- CONTAINER PRINCIPAL (Fixa na tela) ------------------- */
.fab-container {
  position: fixed; /* CHAVE: Mantém o botão na tela mesmo com a rolagem */
  bottom: 20px; /* Distância da parte inferior */
  right: 20px; /* Distância da lateral direita */
  z-index: 1000; /* Garante que fique acima de todos os outros elementos */
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

/* ------------------- BOTÃO PRINCIPAL ------------------- */
.fab-button {
  background-color: var(--bege); /* Cor de destaque (Bege/Dourado) */
  color: var(--branco);
  width: 60px;
  height: 60px;
  border-radius: 50%; /* Transforma em círculo */
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); /* Sombra para dar profundidade */
  display: flex;
  justify-content: center;
  align-items: center;
  transition: transform 0.3s ease;
}

/* Animação opcional para o ícone quando o menu abre */
.fab-button.active {
  transform: rotate(
    360deg
  ); /* Gira 45 graus (pode ser usado para virar um 'X') */
}

.fab-button svg {
  width: 28px;
  height: 28px;
  color: var(--azul-escuro); /* Ícone escuro no fundo dourado */
}

/* ------------------- MENU DE OPÇÕES ------------------- */
.fab-options {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-bottom: 15px; /* Espaço entre o menu e o botão principal */

  /* CHAVE: Esconde o menu inicialmente e anima sua abertura */
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
}

/* Classe para MOSTRAR o menu (adicionada via JS) */
.fab-options.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.fab-option-link {
  background-color: var(--azul-escuro); /* Fundo azul escuro */
  color: var(--branco);
  text-decoration: none;
  padding: 10px 15px;
  margin-bottom: 8px; /* Espaço entre as opções */
  border-radius: 5px;
  white-space: nowrap; /* Impede que o texto quebre a linha */
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
  font-size: 14px;
  transition: background-color 0.2s;

  font-family: var(--font02);
}

.fab-option-link:hover {
  background-color: var(--azul); /* Cor levemente mais clara no hover */
}

@media (min-width: 425px) {
  .rodape02 {
    font-size: 20px;
  }
}

@media (min-width: 768px) {
  .divisao_rodape {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
  }

  .campo_rodape {
    margin: 0 2rem;
  }
}

@media (min-width: 1024px) {
  .logo {
    margin-left: 2rem;
  }

  .navbar {
    justify-content: space-between;
    padding: 15px 2.5rem;
  }

  .hamburger-menu {
    display: none;
  }

  .menus {
    width: 50%;
    display: flex;
    justify-content: space-around;
  }

  .menus a {
    color: #fff;
    text-decoration: none;
    font-size: 20px;
    font-family: var(--font03);
  }

  #ativo {
    border-bottom: 3px solid var(--bege);
    padding-bottom: 3px;
    display: inline-block;
  }

  .campo_rodape {
    width: 33%;
  }

  .divisao_rodape {
    flex-wrap: nowrap;
  }
}

@media (min-width: 1366px) {
  .navbar {
    padding: 6px 2.5rem;
  }
}
