/* site.css — Programa de Embaixadores · só o que o design system não cobre.
   Regras: usar var(--bn-*); não sobrescrever raio, padding ou fundo das classes .bn-*.
   Exceção declarada (receita de formulário §15): padding-left do input com prefixo "@". */

/* ————— [hidden] vence as classes .bn-* que definem display (fieldset.bn-stack, p.bn-cluster, .bn-btn) ————— */
.lp-cadastro [hidden],
.lp-legal [hidden] { display: none !important; }

/* ————— fieldset/legend sem o visual padrão do navegador (legend vira item da pilha) ————— */
.lp-cadastro fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.lp-cadastro legend { float: left; width: 100%; margin: 0 0 var(--bn-space-1); padding: 0; }
.lp-cadastro legend + * { clear: both; }

/* ————— Âncoras da nav fixa ————— */
#como-funciona, #beneficios, #cadastro, #perguntas {
  scroll-margin-top: calc(var(--bn-navbar-h) + env(safe-area-inset-top) + 24px);
}
@media (min-width: 1024px) {
  #como-funciona, #beneficios, #cadastro, #perguntas {
    scroll-margin-top: calc(var(--bn-nav-top) + var(--bn-nav-h) + 24px);
  }
}

/* ————— Campos lado a lado no desktop (CEP/número, cidade/estado) ————— */
.lp-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--bn-space-5);
}
@media (min-width: 640px) {
  .lp-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-row--2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

/* ————— Prefixo "@" fora do valor do campo ————— */
.lp-prefix { position: relative; }
.lp-prefix__sign {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--bn-font-body);
  font-size: 16px;
  line-height: 1;
  color: var(--bn-ink-2);
  pointer-events: none;
}
.lp-prefix > .bn-input { padding-left: 34px; } /* exceção: receita §15 (prefixo dentro do campo) */

/* ————— Estado de disponibilidade do cupom (texto + ícone, nunca só cor) ————— */
.lp-cupom-estado { display: flex; align-items: center; gap: 6px; }
.lp-cupom-estado .bn-icon { display: none; width: 14px; height: 14px; flex: none; }
.lp-cupom-estado[data-estado="conferindo"] [data-icone="conferindo"],
.lp-cupom-estado[data-estado="disponivel"] [data-icone="disponivel"],
.lp-cupom-estado[data-estado="em-uso"] [data-icone="em-uso"],
.lp-cupom-estado[data-estado="indisponivel"] [data-icone="indisponivel"] { display: block; }
.lp-cupom-estado[data-estado="disponivel"] { color: var(--bn-state-success); }
.lp-cupom-estado[data-estado="em-uso"] { color: var(--bn-state-error); }
.lp-cupom-estado[data-estado="conferindo"] [data-icone="conferindo"] { animation: lp-gira 900ms linear infinite; }
@keyframes lp-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .lp-cupom-estado[data-estado="conferindo"] [data-icone="conferindo"] { animation: none; }
}

/* ————— Erro geral do envio e navegação dos passos ————— */
.lp-form-erro { gap: 8px; }
.lp-form-erro .bn-icon { width: 16px; height: 16px; flex: none; }
.lp-form-nav { --bn-cluster-gap: 16px; }

/* ————— Bloco de sucesso (#ok-cupom = código; #ok-detalhe = texto que o lp.js troca conforme o cupom foi criado) ————— */
.lp-ok .bn-body { max-width: 52ch; }
.lp-ok strong { font-weight: var(--bn-fw-medium); color: var(--bn-ink); }
/* Ações do sucesso: 1 primária (#ok-leo, hidden sem número do Leo) + link do painel; no mobile, uma por linha */
.lp-ok__acoes { align-items: center; }
@media (max-width: 599px) {
  .lp-ok__acoes { flex-direction: column; align-items: stretch; }
  .lp-ok__acoes > .bn-btn:not(.bn-btn--link) { width: 100%; }
}

/* ————— Gota centrada no painel de marca (CTA final) ————— */
.lp-drop-center { display: flex; align-items: center; justify-content: center; }

/* ————— Páginas legais: hero curto antes da folha ————— */
.lp-legal-hero { padding-bottom: var(--bn-space-7); }
.lp-legal-hero > .bn-display-l { max-width: 24ch; }
.lp-prose-meta { margin: 0; }

/* ————— Rodapé sem o contador de tempo de cuidado (pedido do Antonio, 2026-09-29): a marca sobe para o topo do rodapé ————— */
.bn-footer { padding-top: 0; }           /* o respiro fica por conta do padding inferior da seção anterior */
.bn-footer__brand { margin-top: 0; }
