/* Newsletter: own form in the site design, sends straight to the Brevo form (assets/js/newsletter.js). No iframe. */
.nl-form { display: flex; flex-direction: column; gap: var(--bk-space-3); width: 100%; }
.nl-form__row { display: flex; gap: 6px; padding: 6px; background: var(--bk-brown-800); border: 2px solid var(--bk-brown-600); border-radius: var(--bk-radius-pill); transition: border-color .2s, box-shadow .2s; }
.nl-form__row:focus-within { border-color: var(--bk-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--bk-accent) 25%, transparent); }
.nl-form.is-invalid .nl-form__row { border-color: var(--bk-danger); }
.nl-form__input { flex: 1 1 auto; min-width: 0; height: 50px; padding: 0 var(--bk-space-5); border: 0; border-radius: var(--bk-radius-pill); background: transparent;
  color: var(--bk-cream-100); font: inherit; font-size: 17px; font-weight: 500; outline: none; }
.nl-form__input::placeholder { color: color-mix(in srgb, var(--bk-cream-400) 70%, transparent); }
.nl-form__btn { flex: none; height: 50px; padding: 0 var(--bk-space-6); border: 0; border-radius: var(--bk-radius-pill); background: var(--bk-accent);
  color: var(--bk-brown-800); font: inherit; font-weight: 800; white-space: nowrap; transition: background-color .2s, transform .2s; }
.nl-form__btn:hover { background: var(--bk-orange-400); }
.nl-form__btn:focus-visible { outline: 3px solid var(--bk-orange-200); outline-offset: 3px; }
.nl-form.is-busy .nl-form__btn { opacity: .7; pointer-events: none; }
.nl-form.is-busy .nl-form__btn-label::after { content: "…"; }
.nl-form__msg { margin: 0; min-height: 0; font-weight: 700; color: var(--bk-cream-100); }
.nl-form__msg:empty { display: none; }
.nl-form.is-invalid .nl-form__msg, .nl-form.is-error .nl-form__msg { color: var(--bk-danger); }
.nl-form__note { margin: 0; color: var(--bk-cream-400); font-size: var(--bk-text-xs); }

/* Success: the form row makes room for a friendly confirmation */
.nl-form.is-done .nl-form__row { display: none; }
.nl-form.is-done .nl-form__msg { display: flex; gap: var(--bk-space-3); align-items: center; padding: var(--bk-space-4) var(--bk-space-5);
  background: color-mix(in srgb, var(--bk-green) 22%, var(--bk-brown-800)); border: 2px solid var(--bk-green); border-radius: var(--bk-radius-md); font-size: 17px; }

/* Phones: input and button stacked, both full width */
@media (max-width: 480px) {
  .nl-form__row { flex-direction: column; border-radius: 26px; }
  .nl-form__btn { width: 100%; }
}

/* reCAPTCHA v3 badge hidden: the required Google notice is shown in .nl-form__note instead (allowed by Google's FAQ) */
.grecaptcha-badge { visibility: hidden !important; }
.nl-form__note a { color: var(--bk-orange-300); }
