.newsletter-dialog { box-sizing: border-box; width: min(540px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: auto; margin: auto; border: 1px solid #d8cfbc; padding: 44px 36px 28px; background: #f7f3eb; color: #183d31; box-shadow: 0 20px 80px #0004; }
.newsletter-dialog::backdrop { background: rgb(9 29 22 / .65); }
.newsletter-dialog h2 { font-family: Georgia, serif; font-size: clamp(30px, 6vw, 43px); line-height: 1.1; margin: 12px 0 18px; }
.newsletter-dialog p { line-height: 1.6; }
.newsletter-dialog form { display: grid; gap: 12px; margin-top: 24px; }
.newsletter-dialog label { font-size: 14px; font-weight: 600; }
.newsletter-dialog input { box-sizing: border-box; width: 100%; padding: 14px; font: inherit; font-size: 16px; color: #183d31; background: white; border: 1px solid #9caa9e; border-radius: 0; }
.newsletter-dialog button { cursor: pointer; font: inherit; }
.newsletter-dialog button[type=submit] { padding: 15px; border: 0; background: #183d31; color: #fff; min-height: 48px; }
.newsletter-dialog button:disabled { opacity: .65; cursor: wait; }
.newsletter-close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; font-size: 28px !important; border: 0; background: transparent; color: #183d31; }
.newsletter-later { display: block; margin: 0 auto; padding: 12px 20px; border: 0; background: transparent; text-decoration: underline; color: #183d31; min-height: 44px; }
.newsletter-dialog :focus-visible { outline: 3px solid #956c21; outline-offset: 3px; }
.newsletter-message { min-height: 24px; font-size: 14px; }
.newsletter-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter-notice { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); box-sizing: border-box; width: min(540px, calc(100% - 32px)); padding: 18px 24px; z-index: 1000; background: #183d31; color: white; box-shadow: 0 4px 20px #0003; }
@media (max-width: 480px) { .newsletter-dialog { padding: 44px 24px 20px; } }
