/* ---------- pular para o conteúdo ----------
   O cabeçalho tem 8 destinos antes do conteúdo, e sem isto quem navega por
   Tab percorre os 8 em toda página. Fica fora da tela até receber foco. Mora aqui, e não numa folha
   de página, porque o valor de z-index só faz sentido em relação ao cabeçalho
   fixo logo abaixo (1000): mais baixo que isso e o link aparece atrás dele. */
.pular-conteudo {
  position: absolute;
  left: 16px;
  top: 16px;
  z-index: 1200;
  padding: 12px 20px;
  border-radius: 3px;
  background: var(--calone-white);
  color: var(--calone-black);
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
  /* sai por transform, não por `top`: a regra do projeto é não animar layout */
  transform: translateY(calc(-100% - 24px));
  transition: transform var(--motion-micro) var(--ease-calone);
}

.pular-conteudo:focus-visible {
  transform: translateY(0);
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: clamp(16px, 2.5vw, 28px) clamp(18px, 4vw, 54px);
  pointer-events: none;
}

.site-header > * {
  pointer-events: auto;
}

/* Estado transparente no topo → sólido após scroll (§12).
   Adaptado ao fundo da seção sob o header. */
.site-header {
  background: transparent;
  transition: background-color var(--motion-header) var(--ease-calone),
    backdrop-filter var(--motion-header) var(--ease-calone);
}

.site-header.is-scrolled {
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.site-header.is-scrolled.site-header--on-light {
  background: rgba(255, 255, 255, 0.72);
}

/* Borda esfumada, não régua de 1px. Onde a cromagem flutuante encontra o
   conteúdo, a HIG pede um esmaecimento — o divisor duro anuncia uma barra
   opaca, que é justamente o que este cabeçalho não é. O degradê continua a
   cor do próprio cabeçalho para baixo e morre em 24px.
   `pointer-events` já é none no pai, então nunca intercepta clique. */
.site-header::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 24px;
  opacity: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .38), transparent);
  transition: opacity var(--motion-header) var(--ease-calone);
}

.site-header.is-scrolled::after {
  opacity: 1;
}

.site-header--on-light::after {
  background: linear-gradient(180deg, rgba(255, 255, 255, .5), transparent);
}

.site-header__brand {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: clamp(110px, 12vw, 160px);
  min-height: 44px;              /* a proporção do logo parava em 43,4px */
  flex: none;
}

.site-header__logo {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity var(--motion-header) var(--ease-calone);
}

.site-header__logo--black {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.site-header--on-light .site-header__logo--white {
  opacity: 0;
}

.site-header--on-light .site-header__logo--black {
  opacity: 1;
}

.site-header__pill {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /* Cápsula central (§12) */
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 8px;
  align-items: center;
  gap: 4px;
  transition: background-color var(--motion-header) var(--ease-calone),
    border-color var(--motion-header) var(--ease-calone);
}
@media (min-width: 1100px) {
  .site-header__pill { display: flex; }
}

.site-header--on-light .site-header__pill {
  background: rgba(0, 0, 0, 0.06);
  border-color: rgba(0, 0, 0, 0.12);
}

/* Os itens da cápsula são <button> enquanto a página não existe e viram <a>
   conforme cada uma entra no ar. O <a> trazia o sublinhado padrão do
   navegador, o que fazia dois itens parecerem ativos ao mesmo tempo — quem
   marca a página atual é a cor cheia de `.is-active`, não um traço. */
.site-header__link {
  display: inline-flex;
  align-items: center;
  padding: 6px 16px;
  border-radius: 999px;
  text-decoration: none;
  font-family: var(--calone-font-sans);
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background-color var(--motion-standard) var(--ease-calone), color var(--motion-standard) var(--ease-calone);
}
.site-header__link:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.site-header__link.is-active {
  color: #fff;
}

.site-header--on-light .site-header__link {
  color: rgba(0, 0, 0, 0.6);
}
.site-header--on-light .site-header__link:hover {
  background: rgba(0, 0, 0, 0.08);
  color: #000;
}
.site-header--on-light .site-header__link.is-active {
  color: #000;
}

.site-header__signup {
  /* Virou <a> em 2026-08-25 (aponta para /contato/). O <button> centralizava o
     rótulo sozinho dentro do min-height; o link precisa do flex para isso, e
     de tirar o sublinhado. */
  display: none;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: #fff;
  color: var(--calone-black);
  font-family: var(--calone-font-sans);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 24px;
  min-height: 44px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  transition: background-color var(--motion-standard) var(--ease-calone), color var(--motion-header) var(--ease-calone);
}
@media (min-width: 1100px) {
  .site-header__signup { display: flex; }
}
.site-header__signup:hover {
  background: var(--calone-silver);
}

.site-header--on-light .site-header__signup {
  background: var(--calone-black);
  color: #fff;
}
.site-header--on-light .site-header__signup:hover {
  background: #000;
}

.site-header__burger {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 4px;
}
@media (min-width: 1100px) {
  .site-header__burger { display: none; }
}
.site-header__burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
  transition: background-color var(--motion-header) var(--ease-calone);
}
.site-header__burger span:last-child {
  width: 14px;
}

.site-header--on-light .site-header__burger span {
  background: #000;
}

/* Fechado, o menu precisa sair da ORDEM DE TABULAÇÃO, não só da vista.

   Com `opacity: 0` e `pointer-events: none` ele sumia do olho e do mouse, mas
   os sete links continuavam alcançáveis por Tab: quem navega por teclado caía
   dentro de um menu invisível e não tinha como saber onde estava. O axe-core
   acusava `aria-hidden-focus` (serious) em todas as páginas do site — conteúdo
   marcado como oculto para leitor de tela que ainda recebe foco.

   `visibility: hidden` resolve porque tira o subárvore do foco e da árvore de
   acessibilidade. A transição da visibilidade é `0s` com ATRASO igual ao da
   opacidade: ao fechar, ela só vira `hidden` depois que o fade terminou, então
   a animação continua visível; ao abrir, `transition-delay: 0s` a devolve no
   mesmo quadro. Sem esse atraso o menu sumiria de estalo.

   O `inert` no HTML faz o mesmo pelo lado semântico e cobre o caso de o CSS
   não ter carregado; os dois juntos são cinto e suspensório de propósito. */
.site-menu {
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: var(--calone-black);
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity var(--motion-standard) var(--ease-calone),
    visibility 0s linear var(--motion-standard);
}
.site-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

html.is-menu-locked,
html.is-menu-locked body {
  overflow: hidden;
  overscroll-behavior: none;
}
.site-menu__close {
  align-self: flex-end;
  margin: 20px;
  width: 44px;                   /* alvo mínimo; o X segue desenhado no centro */
  height: 44px;
  position: relative;
  background: transparent;
  border: none;
  cursor: pointer;
}
.site-menu__close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  background: #fff;
}
.site-menu__close span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}
.site-menu__close span:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.site-menu__links {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
}
/* Mesma regra para <a> e <button>: os itens viram link conforme cada página
   entra no ar, e sem isto os que já viraram caíam para a fonte e o corpo
   padrão do navegador, além de ganharem sublinhado. */
.site-menu__links a,
.site-menu__links button {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-family: var(--calone-font-sans);
  font-size: 28px;
  font-weight: 500;
  cursor: pointer;
}
.site-menu__links a.is-active,
.site-menu__links button.is-active {
  color: #fff;
}
.site-menu__signup {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  margin: 0 auto 48px;
  background: #fff;
  color: var(--calone-black);
  font-family: var(--calone-font-sans);
  font-size: 14px;
  font-weight: 600;
  padding: 10px 24px;
  min-height: 44px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
}
