/* Newsletter sign-up: footer of every page, and a section on the home page. Colors come from each page's :root. */
.newsletter-box h2 { margin: 0 0 0.35rem; font-size: 1.35rem; font-weight: 700; line-height: 1.2; }
.newsletter-box > p { margin: 0 0 1.25rem; }
.nl-fields { display: grid; gap: 1rem; align-items: end; }
@media (min-width: 44rem) { .nl-fields { grid-template-columns: 1fr 1.4fr auto; } }
.nl-lbl { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 0.35rem; }
.nl-input {
  width: 100%; font: inherit; font-size: 1.05rem; color: var(--ink); background: var(--paper);
  border: 2px solid var(--ink); border-radius: 10px; padding: 0.7rem 0.9rem;
}
.newsletter .btn { border: 0; cursor: pointer; font-family: inherit; font-size: 1.05rem; padding: 0.85rem 1.6rem; white-space: nowrap; }
.newsletter .btn[disabled] { opacity: 0.6; cursor: wait; }
.nl-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nl-ts:not(:empty) { margin-top: 1rem; }
.nl-error { margin: 0.75rem 0 0; font-weight: 600; color: #b3124f; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .nl-error { color: #ff7ab0; } }
.nl-done { margin: 0; font-size: 1.1rem; font-weight: 600; }

/* In the footer: always on black. */
.site-foot .nl-foot { display: block; padding-bottom: 2.5rem; margin-bottom: 2.5rem; border-bottom: 1px solid #333333; }
.site-foot .newsletter-box { max-width: 48rem; }
.site-foot .newsletter-box > p { margin: 0 0 1.25rem; }
.site-foot .nl-input { color: #000000; background: #ffffff; border-color: #ffffff; }
.site-foot .nl-error { color: #ff7ab0; }
