/*
 * Header desktop (deslogado por padrão; body.is-logado mostra a variante da prancha Header-Logado)
 * e header simplificado do mobile.
 * Regra: o header nunca quebra em duas linhas. Em larguras intermediárias a busca encolhe e os
 * rótulos secundários viram só ícone, mantendo o nome acessível.
 */

.topo {
  background: var(--superficie);
  border-bottom: 1px solid var(--linha);
}

.topo__interno {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--space-6);
  min-height: 80px;
  padding-block: var(--space-3);
}

.topo__busca {
  flex: 1 1 380px;
  min-width: 0;
  max-width: 560px;
}

body.is-logado .topo__busca {
  flex-basis: 340px;
  max-width: 520px;
}

.topo__nav {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--space-2);
  margin-left: auto;
  flex: none;
}

.topo__nav--logado {
  gap: var(--space-1);
}

.topo__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: var(--alvo-toque);
  padding: 0 var(--space-3);
  border-radius: var(--radius-md);
  font-size: 15px;
  font-weight: 600;
  color: var(--grafite-700);
  text-decoration: none;
  white-space: nowrap;
}

.topo__link:hover {
  background: var(--superficie-sutil);
  color: var(--grafite-900);
}

.topo__anunciar {
  margin-left: var(--space-2);
}

/* "grátis" é item separado do flex (some em telas estreitas): compensa o gap para virar um espaço comum */
.topo__gratis {
  margin-left: calc(0.28em - var(--space-2));
}

.topo__conta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: var(--controle-md);
  margin-left: var(--space-1);
  padding: 0 6px 0 4px;
  border: 0;
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--grafite-700);
}

.topo__conta:hover {
  background: var(--superficie-sutil);
}

.topo__buscar-mobile {
  display: none;
}

/* Larguras intermediárias */
@media (max-width: 1100px) {
  .topo__rotulo {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .topo__link {
    width: var(--alvo-toque);
    padding: 0;
    justify-content: center;
    border-radius: var(--radius-full);
  }
}

@media (max-width: 1023.98px) {
  .topo__interno {
    gap: var(--space-4);
  }

  .topo__busca .seletor-local {
    display: none;
  }
}

@media (max-width: 959.98px) {
  .topo__gratis {
    display: none;
  }

  body.is-logado .topo .marca__nome {
    display: none;
  }
}

/* Mobile: logo + lupa */
@media (max-width: 767.98px) {
  .topo {
    position: sticky;
    top: 0;
    z-index: 20;
  }

  .topo__interno {
    min-height: 64px;
    padding-block: 0;
    justify-content: space-between;
    gap: var(--space-2);
  }

  .topo .marca__simbolo {
    width: 36px;
    height: 36px;
  }

  .topo .marca__nome,
  body.is-logado .topo .marca__nome {
    display: inline;
    font-size: 17px;
  }

  .topo__nav {
    display: none !important;
  }

  /* A busca fica recolhida atrás da lupa e abre como uma segunda linha do header */
  .topo__busca {
    display: none;
  }

  .topo--busca-aberta .topo__interno {
    flex-wrap: wrap;
  }

  .topo--busca-aberta .topo__busca {
    display: block;
    order: 3;
    flex: 1 0 100%;
    max-width: none;
    padding-bottom: var(--space-3);
  }

  .topo__busca .seletor-local {
    display: inline-flex;
  }

  .topo__buscar-mobile {
    display: flex;
  }

  .topo__buscar-mobile[aria-expanded="true"] {
    background: var(--superficie-sutil);
    color: var(--oliva-700);
  }
}
