.newsletter-panel { background: #f8f5fc; border: 1px solid #e8def2; border-radius: 12px; padding: 26px; margin: 26px 0; color: #24212b; }
.newsletter-panel h2 { font-size: 1.5rem; margin: 0 0 10px; }
.newsletter-panel p { margin: 0 0 18px; }
.newsletter-form label { display: block; font-weight: 600; margin-bottom: 8px; }
.newsletter-fields { display: flex; gap: 8px; flex-wrap: wrap; }
.newsletter-fields input { flex: 1 1 180px; width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #bcb3c5; border-radius: 6px; color: #24212b; background: white; font: inherit; }
.newsletter-fields button { border: 0; border-radius: 6px; padding: 11px 18px; background: #8012ce; color: white; font: inherit; font-weight: 600; cursor: pointer; }
.newsletter-fields button:disabled { opacity: .65; cursor: wait; }
.newsletter-form .newsletter-consent { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; font-size: .875rem; font-weight: 400; line-height: 1.5; }
.newsletter-consent input { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 3px; accent-color: #8012ce; }
.newsletter-form .newsletter-status { margin: 12px 0 0; font-size: .9rem; overflow-wrap: anywhere; }
.newsletter-status:empty { display: none; }
.newsletter-error { color: #a51d36; }
.footer .newsletter-error { color: #ffb6c3; }
.newsletter-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter-form :focus-visible { outline: 3px solid #b866f3; outline-offset: 3px; }
.newsletter-social { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 18px; }
@media (max-width: 480px) {
  .newsletter-fields { flex-direction: column; }
  .newsletter-fields input { flex: auto; }
  .newsletter-fields button { width: 100%; }
}
