/* Slim newsletter band shared above the footer. Uses the page design tokens. */
.nl-band{
  background:var(--light);
  color:var(--ink);
  padding:clamp(28px,3.6vw,44px) var(--gut);
  border-top:1px solid var(--rule);
}
.nl-in{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  gap:18px;
}
.nl-copy h2{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(26px,2.4vw,36px);
  line-height:1.15;
  letter-spacing:-.02em;
  color:var(--dark);
  margin:0 0 8px;
  text-wrap:balance;
}
.nl-copy p{
  margin:0;
  max-width:42em;
  font-size:16px;
  line-height:1.55;
  color:var(--ink-2);
}
.nl-form{min-width:0;}
.nl-fields{display:grid;gap:10px;min-width:0;}
.nl-sr{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.nl-row{
  display:grid;
  grid-template-columns:minmax(0,0.85fr) minmax(0,1.35fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
}
.nl-field{position:relative;min-width:0;}
.nl-form input{
  width:100%;
  min-width:0;
  padding:14px 18px;
  border:1.5px solid var(--dark);
  border-radius:999px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:16px;
}
.nl-form input::placeholder{color:var(--ink-3);opacity:.8;}
.nl-form .pill{white-space:nowrap;}
.nl-fine{
  margin:0;
  font-size:13px;
  line-height:1.45;
  color:var(--ink-3);
}
.nl-success{
  display:none;
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(22px,2.2vw,28px);
  line-height:1.35;
  color:var(--dark);
}
.nl-success.is-visible{display:block !important;}
.foot-small.nl-footline{max-width:none;}
.nl-band [hidden]{display:none !important;}
@media(max-width:700px){
  .nl-row{grid-template-columns:minmax(0,1fr);}
  .nl-form .pill{width:100%;}
}
