.newsletter-overlay {
  box-sizing:border-box;
  width:min(560px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px);
  margin:auto;
  padding:24px;
  border:1px solid var(--line,#d5cfc3);
  background:var(--paper,#f5f2e9);
  color:var(--ink,#191b1c);
  overflow:auto;
  overscroll-behavior:contain;
}
.newsletter-overlay::backdrop { background:rgba(0,0,0,.55); }
.newsletter-overlay .newsletter-overlay-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px;
}
.newsletter-overlay h2 {
  font-family:Georgia,'Times New Roman',serif; font-weight:400;
  font-size:1.8rem; line-height:1.25; color:var(--ink); margin:0;
}
.newsletter-overlay .newsletter-overlay-close {
  flex:none; display:grid; place-items:center; width:44px; height:44px;
  padding:0; border:1px solid var(--line); background:transparent; color:inherit;
  font:inherit; font-size:26px; cursor:pointer;
}
.newsletter-overlay .newsletter-overlay-intro { font-size:16px; line-height:1.6; margin:0 0 24px; }
.newsletter-overlay .newsletter-signup { max-width:none; gap:18px; }
.newsletter-overlay .newsletter-signup input { background:var(--paper-light,#fffdf9); min-height:44px; font-size:16px; }
.newsletter-overlay .newsletter-signup .button {
  color:#765726; border:2px solid #bd8d40; background:transparent;
  min-height:48px; padding:12px 18px; font-weight:700;
}
.newsletter-overlay .signup-consent a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.newsletter-overlay :focus-visible { outline:2px solid #765726; outline-offset:3px; }
html.newsletter-overlay-open { overflow:hidden; }
@media(max-width:480px) {
  .newsletter-overlay { padding:20px; }
  .newsletter-overlay h2 { font-size:1.4rem; }
}
