.cabecalho { border-bottom: 1px solid var(--borda); }
.cabecalho__interno {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 2rem;
  padding-block: .75rem;
}
.cabecalho__marca {
  color: var(--branco);
  font-size: 1.25rem;
  font-weight: 900;
  letter-spacing: -.035em;
}
.cabecalho__marca span { color: var(--acento); }
.cabecalho__aviso-mobile {
  display: none;
  padding: .75rem var(--gutter);
  border-top: 1px solid var(--borda);
  background: var(--superficie);
  color: #d9827e;
  font-size: .875rem;
  font-weight: 700;
  text-align: center;
}
.cabecalho a { text-decoration: none; }
.cabecalho a:hover, .rodape a:hover { text-decoration: underline; }
.cabecalho nav { width: 100%; }
.cabecalho__controles { display: flex; align-items: center; gap: .5rem; }
.cabecalho__menu { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.cabecalho__menu a { padding-block: .6rem; }
.js .cabecalho__interno { position: relative; }
.js .cabecalho nav { width: auto; }
.js .cabecalho__menu {
  position: absolute;
  inset: 100% 0 auto;
  z-index: 2;
  flex-direction: column;
  gap: 0;
  padding: .5rem 1rem;
  background: var(--superficie);
  border: 1px solid var(--borda);
}
[hidden] { display: none !important; }
.cabecalho__botao, .botao {
  border: 1px solid var(--borda);
  border-radius: .25rem;
  background: transparent;
  color: var(--branco);
  padding: .65rem 1rem;
  cursor: pointer;
}
.botao {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 3.25rem;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
}
.botao:hover { text-decoration: underline; }
.botao--primario {
  background: var(--acento);
  border-color: var(--acento);
  color: var(--fundo);
}
.botao--escuro { background: var(--fundo); border-color: var(--fundo); }
.acoes { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.destaque {
  border-left: .25rem solid var(--acento);
  background: var(--entrada);
  color: var(--branco);
  padding: 1.125rem 1.25rem;
  font-weight: 700;
}
.destaque--parcial { font-weight: 400; }
.navegacao-lateral {
  display: none;
  position: fixed;
  inset-block: 1rem;
  inset-inline-end: .5rem;
  z-index: 5;
  width: max-content;
  min-width: var(--largura-navegacao-lateral);
  height: fit-content;
  max-height: calc(100% - 2rem);
  margin-block: auto;
  padding-block: .75rem;
  padding-inline: .75rem .5rem;
  overflow-y: auto;
  background: var(--superficie);
  box-shadow: 0 .25rem 1rem rgb(0 0 0 / 30%);
}
.navegacao-lateral__interno { display: grid; gap: .5rem; }
.navegacao-lateral__marca {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-width: 2.25rem;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 1rem;
}
.navegacao-lateral__marca:enabled { cursor: pointer; }
.navegacao-lateral__marca:enabled:hover { text-decoration: underline; }
.navegacao-lateral__fechar { flex: none; color: var(--branco); }
.navegacao-lateral__marca:disabled .navegacao-lateral__fechar { display: none; }
.navegacao-lateral__sigla { display: none; }
.navegacao-lateral__logo { width: 2.25rem; height: auto; }
.navegacao-lateral__lista {
  position: relative;
  padding: 0;
  list-style: none;
}
.navegacao-lateral__lista::before {
  position: absolute;
  top: 1.125rem;
  bottom: 1.125rem;
  inset-inline-start: calc(1.375rem - .5px);
  width: 1px;
  background: var(--borda);
  content: "";
}
.navegacao-lateral__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: .25rem;
  min-height: 2.25rem;
  color: var(--texto-suave);
  font-size: .8125rem;
  line-height: 1.3;
  text-decoration: none;
}
.navegacao-lateral__numero {
  flex: none;
  width: .875rem;
  font-size: .625rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.navegacao-lateral__rotulo { white-space: nowrap; }
.navegacao-lateral__marcador {
  flex: none;
  width: .5rem;
  height: .5rem;
  border: 1px solid var(--borda);
  border-radius: 50%;
  background: var(--fundo);
}
.navegacao-lateral__link:hover { color: var(--branco); }
.navegacao-lateral__link[aria-current="location"] { color: var(--acento); font-weight: 700; }
.navegacao-lateral__link[aria-current="location"] .navegacao-lateral__marcador {
  border-color: var(--acento);
  background: var(--acento);
}
.navegacao-lateral--recolhida { min-width: 0; padding-inline: .5rem; }
.navegacao-lateral--recolhida .navegacao-lateral__marca,
.navegacao-lateral--recolhida .navegacao-lateral__link { justify-content: center; }
.navegacao-lateral--recolhida .navegacao-lateral__sigla {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 1.65rem;
}
.navegacao-lateral--recolhida .navegacao-lateral__nome,
.navegacao-lateral--recolhida .navegacao-lateral__fechar,
.navegacao-lateral--recolhida .navegacao-lateral__marcador { display: none; }
.navegacao-lateral--recolhida .navegacao-lateral__lista::before { inset-inline-start: calc(50% - .5px); }
.navegacao-lateral--recolhida .navegacao-lateral__numero {
  width: auto;
  padding-block: .125rem;
  background: var(--superficie);
  font-size: .8125rem;
}
.navegacao-lateral--recolhida .navegacao-lateral__rotulo {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

/* Language options belong to the existing navigation, including its compact state. */
.idiomas {
  display: flex;
  align-items: center;
  gap: .375rem;
  margin-top: .5rem;
  padding-top: .5rem;
  border-top: 1px solid var(--borda);
}
.idiomas .idiomas__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: .25rem;
  color: var(--texto-suave);
  font-size: .8125rem;
  font-weight: 700;
  text-decoration: none;
}
.idiomas .idiomas__link[aria-current="true"] { color: var(--acento); }
.idiomas .idiomas__link:hover { color: var(--branco); }
.idiomas__separador { color: var(--texto-suave); font-size: .75rem; }
.idiomas--cabecalho { margin: 0; padding: 0; border: 0; }
.navegacao-lateral { overscroll-behavior: contain; scrollbar-width: thin; }
.navegacao-lateral .idiomas { justify-content: center; gap: .125rem; }
.navegacao-lateral .idiomas__link { min-width: 1.75rem; min-height: 1.75rem; }
.navegacao-lateral--recolhida .idiomas { flex-direction: column; gap: 0; }
.navegacao-lateral--recolhida .idiomas__separador { display: none; }
@media (min-width: 52rem) and (max-width: 89.99rem) {
  .cabecalho nav { display: flex; align-items: center; gap: .75rem; }
  .cabecalho__menu { min-width: 0; }
  .cabecalho__controles { order: 1; flex: none; }
  .idiomas--cabecalho { padding-inline-start: .75rem; border-inline-start: 1px solid var(--borda); }
}
@media (width < 52rem) {
  .js .cabecalho__interno { flex-wrap: nowrap; gap: .5rem; }
  .cabecalho__marca { font-size: clamp(1rem, 4.5vw, 1.25rem); white-space: nowrap; }
  .idiomas--cabecalho { gap: .125rem; }
  .idiomas--cabecalho .idiomas__link { min-width: 2rem; min-height: 2.75rem; }
  .cabecalho__botao { padding-inline: .75rem; }
  .js .cabecalho__menu {
    flex-wrap: nowrap;
    max-height: min(75svh, calc(100svh - var(--altura-navegacao, 5rem) - 1rem), 36rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .js .cabecalho__menu > * { flex-shrink: 0; }
}
