.nbp-politics-subscription {
  margin: 2rem 0;
  padding: 1.3rem 1.5rem;
  border-top: 3px solid #b0241f;
  border-bottom: 1px solid #bd9954;
  background: #faf7f0;
}
.nbp-politics-subscription p { margin: 0 0 1rem; font-size: 1rem; line-height: 1.7; }
.nbp-politics-bell { margin: 2.5rem 0; padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid #d8c8a8; border-top: 4px solid #bd9954; background: #faf7f0; }
.nbp-politics-bell h2 { font-family: Georgia, serif; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.2; margin: .7rem 0; }
.nbp-politics-bell p { line-height: 1.65; margin: 0 0 1rem; }
.nbp-politics-bell__form label { display: block; font-weight: 600; margin-bottom: .5rem; }
.nbp-politics-bell__fields { display: flex; gap: .65rem; }
.nbp-politics-bell input[type=email] { flex: 1; min-width: 0; width: 100%; background: white; border: 1px solid #aaa; border-radius: 2px; padding: .8rem; font-size: 16px; }
.nbp-politics-bell input:focus-visible { outline: 2px solid #b0241f; outline-offset: 2px; }
.nbp-politics-bell small { display: block; margin-top: 1rem; color: #555; }
.nbp-politics-bell__success, .nbp-politics-bell__loading { display: none; }
.nbp-politics-bell__form.success { display: none; }
.nbp-politics-bell__form.success + .nbp-politics-bell__success { display: block; }
.nbp-politics-bell__form.loading .nbp-politics-bell__loading { display: block; }
.nbp-politics-bell__form.loading button { pointer-events: none; opacity: .6; }
.nbp-politics-bell__error { color: #a01919; }
@media (max-width: 540px) { .nbp-politics-bell__fields { flex-direction: column; } }