/* ---- botões ---- */
.btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.9rem 2rem;
  border: none;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: var(--fs-sm);
  letter-spacing: 0.02em;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
}

/* preenchimento que desliza da esquerda pra direita no hover, atrás do texto
   (z-index negativo + isolamento de contexto) — nada de deslocar o botão.
   inset:-1px + border-radius:inherit evita a costura/coluna de pixel sem
   preencher na borda de saída — artefato clássico de overflow:hidden +
   border-radius recortando um elemento animado via transform (composição GPU) */
.btn::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-base) var(--ease-out);
}

.btn:hover::before,
.btn:focus-visible::before {
  transform: scaleX(1);
}

.btn-primary {
  background: var(--gold-500);
  color: var(--text-on-gold);
}

.btn-primary::before {
  background: var(--gold-400);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  box-shadow: var(--shadow-gold-glow);
}

.btn-ghost {
  background: transparent;
  color: var(--text-primary);
  border: 1px solid var(--black-500);
}

.btn-ghost::before {
  background: var(--gold-500);
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
  color: var(--text-on-gold);
  border-color: var(--gold-500);
}

/* ---- chip de rede social (usado em Quem Somos e no footer) ---- */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--fs-xs);
  color: var(--text-muted);
  transition: color var(--dur-fast) var(--ease-out);
}

.chip:hover {
  color: var(--gold-400);
}

.chip i {
  font-size: 1em;
}

/* ---- ícones (sprite SVG inline, sem dependência externa) ---- */
.icon {
  width: 1.15em;
  height: 1.15em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

.icon-fill {
  fill: currentColor;
  stroke: none;
}

.icon-sm {
  width: 1em;
  height: 1em;
}

/* ---- foco acessível consistente ---- */
a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gold-500);
  outline-offset: 3px;
}
