.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  /* Mesma largura útil da moldura do hero, para alinhar com o texto dele */
  padding: calc(var(--moldura) + var(--respiro-header)) var(--moldura) 0;
  pointer-events: none;
}

.header-inner {
  position: relative;
  isolation: isolate;
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: var(--altura-header);
  padding-inline: 24px;
  border-radius: 14px;
  backdrop-filter: blur(24px) saturate(1.2);
  -webkit-backdrop-filter: blur(24px) saturate(1.2);
}

/* Vidro claro (sobre seções escuras) e vidro escuro (sobre seções claras) */
.header-inner::before,
.header-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  transition: opacity var(--duracao-rapida) var(--curva-suave);
}

.header-inner::before {
  background: var(--vidro-claro);
  border: 1px solid var(--vidro-claro-borda);
}

.header-inner::after {
  background: var(--vidro-escuro);
  border: 1px solid var(--vidro-escuro-borda);
  opacity: 0;
}

html[data-tema-header="claro"] .header-inner::before {
  opacity: 0;
}

html[data-tema-header="claro"] .header-inner::after {
  opacity: 1;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .header-inner::before {
    background: var(--vidro-claro-firme);
  }
}

.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  min-height: 48px;
}

.logo img {
  width: 30px;
  height: auto;
}

.logo span {
  font-family: var(--fonte-titulo);
  font-size: 1.75rem;
  line-height: 1;
  color: var(--cor-creme-100);
}

.nav-desktop {
  display: none;
}

/* 7 links: o espaço entre eles diminui abaixo de 1200 px para não espremer o logo e o botão */
.nav-desktop ul {
  display: flex;
  align-items: center;
  gap: clamp(20px, 2.2vw, 32px);
}

.nav-desktop a {
  position: relative;
  display: inline-block;
  padding-block: 12px;
  text-decoration: none;
  font-size: 0.9375rem;
  color: var(--cor-creme-100);
}

.nav-desktop a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  height: 1px;
  background: var(--cobre-acento);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--duracao-rapida) var(--curva-suave);
}

.nav-desktop a:hover::after,
.nav-desktop a[aria-current]::after {
  transform: scaleX(1);
}

.header-cta {
  display: none;
  flex-shrink: 0;
}

.menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-right: -12px;
  flex-shrink: 0;
}

.menu-toggle .icone-menu {
  position: relative;
  width: 20px;
  height: 14px;
}

.menu-toggle .icone-menu span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: var(--cor-creme-100);
  border-radius: 1px;
}

.menu-toggle .icone-menu span:nth-child(1) {
  top: 0;
}

.menu-toggle .icone-menu span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}

.menu-toggle .icone-menu span:nth-child(3) {
  bottom: 0;
}

@media (min-width: 1024px) {
  .nav-desktop {
    display: block;
  }

  .header-cta {
    display: inline-flex;
    padding: 0 22px;
    min-height: 44px;
  }

  .menu-toggle {
    display: none;
  }
}

/* Menu mobile em tela cheia */

.menu-mobile {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: var(--cor-floresta-800);
  padding: 20px var(--gutter) 32px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity var(--duracao-media) var(--curva-suave),
    transform var(--duracao-media) var(--curva-suave),
    visibility 0s linear var(--duracao-media);
}

.menu-mobile.is-aberto {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: opacity var(--duracao-media) var(--curva-suave),
    transform var(--duracao-media) var(--curva-suave), visibility 0s linear 0s;
}

.menu-mobile-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--linha-sobre-escuro);
}

.menu-mobile-topo img {
  width: 28px;
  height: auto;
}

.menu-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid var(--cobre-acento);
  color: var(--cobre-acento);
  font-size: 1.125rem;
  line-height: 1;
}

.menu-mobile-nav {
  flex: 1;
  padding-top: 8px;
}

.menu-mobile-nav li {
  border-bottom: 1px solid var(--linha-sobre-escuro);
}

.menu-mobile-nav a {
  display: flex;
  align-items: baseline;
  padding: 10px 0;
  text-decoration: none;
  min-height: 48px;
}

/* Item do menu em Montserrat 500 (a Italiana só aparece a partir de 40 px) */
.menu-mobile-nav .rotulo-menu {
  font-weight: 500;
  font-size: var(--tam-subtitulo);
  line-height: 1.3;
  color: var(--cor-creme-100);
}

.menu-mobile-rodape {
  padding-top: 16px;
}

.menu-mobile-rodape .btn {
  width: 100%;
}
