/* Newsletter Smartize: faixa no topo do rodapé (11/11/2026) */
.nl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding-bottom: clamp(36px, 5vw, 56px); border-bottom: 1px solid var(--navy-line); }
/* O cartão do diagnóstico, quando visível, afasta-se da faixa; quando está escondido, o espaço vem da grelha do rodapé. */
.nl + .site-footer__cta { margin-top: clamp(36px, 5vw, 56px); }
.nl__title { margin: 0 0 10px; font-family: var(--display); font-weight: 800; font-size: clamp(1.45rem, 1.15rem + 1.1vw, 2rem); line-height: 1.15; letter-spacing: -.025em; color: #fff; text-wrap: balance; max-width: 22ch; }
.nl__text { margin: 0; max-width: 46ch; color: var(--night-muted); line-height: 1.6; }
.nl__form { display: grid; gap: 14px; }
.nl__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.nl__input { min-height: 54px; width: 100%; padding: 0 18px; border: 1px solid var(--navy-line-strong); border-radius: 12px; background: rgba(255,255,255,.05); color: #fff; font: inherit; font-size: 1rem; transition: border-color .2s, background-color .2s, box-shadow .2s; }
.nl__input::placeholder { color: #8394B0; }
.nl__input:focus { outline: none; border-color: var(--blue-300); background: rgba(255,255,255,.08); box-shadow: 0 0 0 4px rgba(0,105,254,.25); }
.nl__input[aria-invalid="true"] { border-color: #F97066; }
.nl__btn { min-height: 54px; padding-inline: 26px; white-space: nowrap; }
.nl__btn[disabled] { opacity: .7; cursor: progress; }
.nl__consent { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; line-height: 1.5; color: var(--night-muted); cursor: pointer; }
.nl__consent input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--blue); cursor: pointer; }
.nl__consent input[aria-invalid="true"] { outline: 2px solid #F97066; outline-offset: 2px; }
.site-footer .nl__consent a { color: var(--blue-300); text-decoration: underline; text-underline-offset: 2px; }
.site-footer .nl__consent a:hover { color: #fff; }
.nl__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nl__msg { margin: 0; padding: 12px 14px; border-radius: 10px; font-size: .94rem; line-height: 1.5; }
.nl__msg.is-success { background: rgba(18,183,106,.12); color: #A6F4C5; border: 1px solid rgba(18,183,106,.35); }
.nl__msg.is-info { background: rgba(111,168,255,.1); color: #C7DBFF; border: 1px solid rgba(111,168,255,.3); }
.nl__msg.is-error { background: rgba(240,68,56,.12); color: #FECDCA; border: 1px solid rgba(240,68,56,.35); }
@media (max-width: 860px) {
  .nl { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .nl__row { grid-template-columns: 1fr; }
  .nl__btn { width: 100%; }
}
/* Com a faixa de contacto no fim da página, o rodapé não tem espaço superior próprio (main.css): a newsletter, que agora abre o rodapé, ganha o seu. */
body:has(.cta-band) .nl { padding-top: clamp(48px, 6vw, 80px); }
