/* ==========================================================================
   FAIXA DE NEWSLETTER — nws-
   Promessa de um lado; campo, botão e consentimento do outro.
   Tokens usados: --fg --fg-2 --fg-muted --rule-2 --accent --accent-ink --ease
   Usa a primitiva .field do core para o campo (rótulo + régua que acende).
   ========================================================================== */

.nws-grade{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(32px,6vw,96px);align-items:end;
}

.nws-form{display:grid;gap:18px}

/* O campo cresce, o botão fica do tamanho do texto. Alinhados pela base,
   para a régua do .field e a pílula do botão pousarem na mesma linha. */
.nws-linha{display:flex;align-items:flex-end;gap:16px}
.nws-campo{flex:1 1 auto;min-width:0}
.nws-enviar{flex:0 0 auto}
.nws-enviar[aria-busy="true"]{opacity:.6;cursor:progress}
.nws-enviar[aria-disabled="true"]{pointer-events:none}

/* ---------------------------------------------------------------- consentimento
   A caixa NATIVA, com a cor de marca por accent-color: vem de graça com
   foco, teclado, leitor de tela e o estado marcado anunciado. Um quadrado
   desenhado à mão teria de reimplementar os quatro. */
.nws-consentimento{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;
  font-size:13px;line-height:1.55;color:var(--fg-2);cursor:pointer;
}
.nws-caixa{
  inline-size:17px;block-size:17px;margin:1px 0 0;
  accent-color:var(--accent);cursor:pointer;
}
.nws-consentimento-t a{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.nws-consentimento-t a:hover{color:var(--accent-ink,var(--accent))}
.nws-consentimento.is-faltando .nws-consentimento-t{color:var(--fg)}

/* ---------------------------------------------------------------- retorno
   Uma linha que o leitor de tela anuncia (role=status). Vazia, não ocupa
   espaço. O estado vai por EXTENSO no texto, e o sinal antes dele repete —
   a cor nunca carrega sozinha a diferença entre erro e sucesso. */
.nws-retorno:empty{display:none}
.nws-retorno{
  display:flex;gap:10px;align-items:baseline;
  font-size:13.5px;line-height:1.55;color:var(--fg-2);
}
.nws-retorno::before{
  flex:0 0 auto;
  font-family:var(--display);font-weight:700;font-size:12px;
  color:var(--fg-muted);
}
.nws-retorno.is-ok{color:var(--fg)}
.nws-retorno.is-ok::before{content:"✓";color:var(--accent-ink,var(--accent))}
.nws-retorno.is-erro{color:var(--fg)}
.nws-retorno.is-erro::before{content:"!"}
.nws-retorno.is-aviso::before{content:"i"}

@media(max-width:900px){
  .nws-grade{grid-template-columns:1fr;align-items:start}
}
@media(max-width:480px){
  .nws-linha{flex-direction:column;align-items:stretch}
  .nws-enviar{width:100%}
}
