.botao {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.35rem;
  border: 1px solid transparent;
  border-radius: var(--raio-minimo);
  font-size: 0.9375rem;
  font-weight: var(--fonte-peso-bold);
  line-height: 1.2;
  text-align: center;
  transition:
    background-color var(--duracao-transicao) var(--curva-transicao),
    border-color var(--duracao-transicao) var(--curva-transicao),
    color var(--duracao-transicao) var(--curva-transicao),
    translate var(--duracao-transicao) var(--curva-transicao);
}

.botao--primario {
  border-color: var(--acento);
  background: var(--acento);
  color: var(--fundo);
}

.botao--primario:hover {
  border-color: var(--cor-complementar);
  background: var(--cor-complementar);
  translate: 0 -0.125rem;
}

.cabecalho {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: var(--altura-cabecalho);
  border-bottom: 1px solid var(--borda);
  background: var(--fundo);
}

.cabecalho__interno {
  min-height: var(--altura-cabecalho);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacamento-sm);
}

.cabecalho__marca {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
}

.cabecalho__logo {
  width: 7.6875rem;
  height: 1rem;
}

.cabecalho__navegacao {
  display: flex;
  align-items: center;
}

.cabecalho__botao-menu {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--borda);
  border-radius: var(--raio-minimo);
  background: var(--superficie);
  cursor: pointer;
}

.js .cabecalho__botao-menu {
  display: inline-flex;
}

.cabecalho__icone-menu,
.cabecalho__icone-menu::before,
.cabecalho__icone-menu::after {
  width: 1.25rem;
  height: 0.125rem;
  border-radius: 999px;
  background: currentColor;
  transition:
    rotate var(--duracao-transicao) var(--curva-transicao),
    translate var(--duracao-transicao) var(--curva-transicao),
    opacity var(--duracao-transicao) var(--curva-transicao);
}

.cabecalho__icone-menu {
  position: relative;
}

.cabecalho__icone-menu::before,
.cabecalho__icone-menu::after {
  position: absolute;
  left: 0;
  content: "";
}

.cabecalho__icone-menu::before {
  translate: 0 -0.375rem;
}

.cabecalho__icone-menu::after {
  translate: 0 0.375rem;
}

.cabecalho--menu-aberto .cabecalho__icone-menu {
  background: transparent;
}

.cabecalho--menu-aberto .cabecalho__icone-menu::before {
  translate: 0;
  rotate: 45deg;
}

.cabecalho--menu-aberto .cabecalho__icone-menu::after {
  translate: 0;
  rotate: -45deg;
}

.cabecalho__menu {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  display: grid;
  gap: 0.25rem;
  padding: var(--espacamento-sm);
  border-bottom: 1px solid var(--borda);
  background: var(--fundo);
}

.js .cabecalho__menu {
  display: none;
}

.js .cabecalho--menu-aberto .cabecalho__menu {
  display: grid;
}

.cabecalho__link {
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--borda);
  color: var(--texto-suave);
  font-size: 0.9375rem;
  font-weight: var(--fonte-peso-media);
  transition: color var(--duracao-transicao) var(--curva-transicao);
}

.cabecalho__link:hover {
  color: var(--acento);
}

.cabecalho__cta {
  width: 100%;
  margin-top: 0.5rem;
}
