/* =========================================================
   Component — Nav de seções (sticky, dois estados)
   Inicial (logo após o hero): "navegue pelas seções →" + links.
   Fixo no topo (.is-stuck): logo Arts (verde) + links + CTA.
   ========================================================= */

:root {
  --section-nav-h: 64px;        /* altura do nav (p/ offsets de âncora/sticky) */
}

.section-nav-sentinel {
  height: 0;
  pointer-events: none;
}

.section-nav {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--color-white);
  border-block-end: 1px solid var(--border-subtle);
  transition: box-shadow var(--dur-base) var(--ease-std);
}
.section-nav.is-stuck { box-shadow: var(--shadow-sm); }

.section-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  padding-block: var(--space-3);
  min-height: var(--section-nav-h);
}

/* --- Marca (esquerda): dica de texto ↔ logo, em cross-fade --- */
.section-nav__brand {
  position: relative;
  display: grid;
  align-items: center;
  min-height: 40px;
}
/* os dois ocupam a MESMA célula → sobrepostos p/ o cross-fade */
.section-nav__hint,
.section-nav__logo-link {
  grid-area: 1 / 1;
  transition: opacity var(--dur-base) var(--ease-std);
}

.section-nav__hint {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);          /* medium p/ mais contraste */
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--text-secondary);
}
/* seta → (assets/icons/arrow.svg) tingida com a cor do texto */
.section-nav__arrow {
  width: 1rem;
  height: 1rem;
  flex: none;
  background-color: currentColor;
  -webkit-mask: url("../../assets/icons/arrow.svg") center / contain no-repeat;
          mask: url("../../assets/icons/arrow.svg") center / contain no-repeat;
}

.section-nav__logo-link {
  opacity: 0;                    /* aparece só quando fixa (cross-fade) */
  pointer-events: none;
}
.section-nav__logo {
  height: 40px;
  width: auto;
  display: block;
}

/* Troca texto↔logo só no desktop; no mobile mantém "navegue pelas seções" */
@media (min-width: 769px) {
  .section-nav.is-stuck .section-nav__hint { opacity: 0; pointer-events: none; }
  .section-nav.is-stuck .section-nav__logo-link { opacity: 1; pointer-events: auto; }
}

/* --- Menu (direita): links + CTA --- */
.section-nav__menu {
  display: flex;
  align-items: center;
  /* sem gap aqui: a folga do CTA vem do margin dele (p/ colapsar de vez) */
}
.section-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(var(--space-5), 3vw, var(--space-7));
}

/* Links: medium; linha surge no hover; ativo = bold + linha fixa */
.section-nav__link {
  position: relative;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wide);
  color: var(--text-primary);
  padding-block: var(--space-2);
  transition: color var(--dur-base) var(--ease-std);
}
.section-nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--dur-base) var(--ease-out);
}
.section-nav__link:hover::after { transform: scaleX(1); }

/* Estado ativo (seção atual) — semibold + linha inferior ativa */
.section-nav__link.is-active { font-weight: var(--fw-semibold); }
.section-nav__link.is-active::after { transform: scaleX(1); }

/* CTA — mesmas diretrizes do CTA do header (hero): 40px de altura, padding 8/16/10.
   Quando NÃO está fixo, colapsa (largura 0) → os links ficam à direita.
   Quando fixa, expande com fade — aí os links recuam p/ abrir espaço. */
.section-nav__cta {
  min-height: 40px;
  max-width: 0;
  margin-inline-start: 0;
  padding-block: 8px;
  padding-inline: 0;
  overflow: hidden;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: max-width var(--dur-base) var(--ease-out),
              margin var(--dur-base) var(--ease-out),
              padding var(--dur-base) var(--ease-out),
              opacity var(--dur-base) var(--ease-std);
}
.section-nav.is-stuck .section-nav__cta {
  max-width: 18rem;
  margin-inline-start: clamp(var(--space-5), 3vw, var(--space-7));
  padding-inline: 16px;
  opacity: 1;
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  .section-nav__hint,
  .section-nav__logo-link,
  .section-nav__cta { transition: none; }
}

/* Âncoras não ficam escondidas atrás do nav fixo */
/* Levemente MENOR que a altura do nav: ao navegar p/ a 1ª seção (#sobre, logo
   após o nav), a rolagem passa do ponto de "stuck" → o nav fixa e o CTA aparece.
   O conteúdo das seções fica abaixo graças ao próprio padding-block delas. */
#sobre,
#empreendimentos,
#localizacao { scroll-margin-top: calc(var(--section-nav-h) - 4px); }

/* Hambúrguer do nav — só no mobile (no desktop o menu mostra links + CTA) */
.section-nav__toggle { display: none; }

@media (max-width: 768px) {
  /* esquerda mantém "navegue pelas seções →"; direita vira o hambúrguer */
  .section-nav__menu { display: none; }
  .section-nav__toggle { display: flex; }

  /* quando o overlay do menu abre, o nav sobe acima dele p/ o "X" funcionar */
  .section-nav:has(.nav-toggle[aria-expanded="true"]) {
    z-index: calc(var(--z-modal) + 1);
  }
}
