/**
 * ReservaBoat — topo, rodapé e páginas.
 *
 * Este arquivo só compõe: toda cor, tamanho e sombra vem de tokens.css.
 */

/* ======================================================================
   Topo
   ====================================================================== */

.rb-topo {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgb(251 249 245 / 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow var(--rb-transicao), border-color var(--rb-transicao);
}

.rb-topo--rolado {
  border-bottom-color: var(--rb-borda);
  box-shadow: var(--rb-sombra-1);
}

.rb-topo__interno {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rb-espaco-6);
  min-height: 4.5rem;
}

.rb-topo__marca img,
.rb-topo__marca .custom-logo {
  max-height: 2.75rem;
  width: auto;
}

.rb-marca-texto {
  font-family: var(--rb-fonte-display);
  font-stretch: 112%;
  font-size: var(--rb-texto-xl);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--rb-marinho);
  text-decoration: none;
}

.rb-topo__nav {
  display: flex;
  align-items: center;
  gap: var(--rb-espaco-8);
}

.rb-menu {
  display: flex;
  align-items: center;
  gap: var(--rb-espaco-6);
  list-style: none;
  margin: 0;
  padding: 0;
}

.rb-menu a {
  position: relative;
  display: inline-block;
  padding-block: var(--rb-espaco-2);
  color: var(--rb-texto);
  font-size: var(--rb-texto-sm);
  font-weight: 600;
  text-decoration: none;
}

.rb-menu a:hover {
  color: var(--rb-marinho);
}

/* A linha d'água em miniatura marca o item ativo. Mesmo motivo do divisor,
   na menor escala em que ele ainda é reconhecível. */
.rb-menu .current-menu-item > a::after,
.rb-menu .current_page_item > a::after,
.rb-menu a:hover::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: radial-gradient(circle at 25% 0, transparent 60%, var(--rb-mar) 62%),
    radial-gradient(circle at 75% 100%, transparent 60%, var(--rb-mar) 62%);
  background-size: 12px 4px;
  background-repeat: repeat-x;
  opacity: 0.9;
}

.rb-topo__acoes {
  display: flex;
  align-items: center;
  gap: var(--rb-espaco-3);
}

.rb-botao--compacto {
  min-height: 2.5rem;
  padding-inline: var(--rb-espaco-5);
  font-size: var(--rb-texto-sm);
}

.rb-botao .rb-icone,
.rb-botao svg {
  width: 1.05rem;
  height: 1.05rem;
  flex: none;
}

.rb-topo__alternar {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: transparent;
  border: 1px solid var(--rb-borda-forte);
  border-radius: var(--rb-raio-sm);
  color: var(--rb-texto);
  cursor: pointer;
}

.rb-topo__alternar svg {
  width: 1.4rem;
  height: 1.4rem;
}

.rb-topo__alternar-fechar {
  display: none;
}

@media (max-width: 960px) {
  .rb-topo__alternar {
    display: inline-flex;
  }

  .rb-topo__nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: var(--rb-espaco-4);
    padding: var(--rb-espaco-6) var(--rb-goteira) var(--rb-espaco-8);
    background: var(--rb-superficie);
    border-bottom: 1px solid var(--rb-borda);
    box-shadow: var(--rb-sombra-2);
    /* Fechado por padrão, mas ainda no fluxo para o leitor de tela ignorar
       corretamente via display:none. */
    display: none;
  }

  .rb-topo--aberto .rb-topo__nav {
    display: flex;
  }

  .rb-topo--aberto .rb-topo__alternar-abrir {
    display: none;
  }

  .rb-topo--aberto .rb-topo__alternar-fechar {
    display: inline-flex;
  }

  .rb-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .rb-menu li + li {
    border-top: 1px solid var(--rb-borda);
  }

  .rb-menu a {
    padding-block: var(--rb-espaco-4);
    font-size: var(--rb-texto-base);
  }

  .rb-menu a::after {
    display: none;
  }

  .rb-topo__acoes .rb-botao {
    width: 100%;
  }
}

/* ======================================================================
   Rodapé
   ====================================================================== */

.rb-rodape {
  margin-top: var(--rb-secao);
  background: var(--rb-superficie-escura);
  color: var(--rb-texto-inverso);
}

.rb-rodape .rb-agua {
  margin-top: calc(clamp(28px, 4vw, 56px) * -1);
  color: var(--rb-superficie-escura);
}

.rb-rodape__interno {
  display: grid;
  gap: var(--rb-espaco-10);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  padding-block: var(--rb-espaco-16) var(--rb-espaco-12);
}

.rb-rodape__marca img {
  max-height: 3rem;
  width: auto;
  /* A logomarca é colorida sobre fundo claro; no marinho ela some.
     O brilho a traz de volta sem precisar de um segundo arquivo. */
  filter: brightness(0) invert(1);
}

.rb-rodape__marca .rb-marca-texto {
  color: var(--rb-texto-inverso);
}

.rb-rodape__marca p {
  margin-top: var(--rb-espaco-3);
  color: var(--rb-texto-inverso-suave);
  font-size: var(--rb-texto-sm);
}

.rb-rodape__menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--rb-espaco-3);
}

.rb-rodape a {
  color: var(--rb-texto-inverso);
  text-decoration: none;
  font-size: var(--rb-texto-sm);
}

.rb-rodape a:hover {
  color: var(--rb-mar-raso);
  text-decoration: underline;
}

.rb-rodape__contato ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--rb-espaco-2);
}

.rb-rodape__base {
  border-top: 1px solid rgb(255 255 255 / 0.12);
  padding-block: var(--rb-espaco-5);
}

.rb-rodape__base p {
  margin: 0;
  max-width: none;
  font-size: var(--rb-texto-xs);
  color: var(--rb-texto-inverso-suave);
  text-align: center;
}
