.newsletter-signup { padding: clamp(1.25rem, 3vw, 2.5rem); background: #f2f3f0; color: #18241e; border-top: 3px solid #65815b; }
.newsletter-signup .newsletter-signup__eyebrow { margin: 0 0 .75rem; font-size: .75rem; letter-spacing: .09em; text-transform: uppercase; color: #46673d; font-weight: 700; }
.newsletter-signup h2 { margin: 0 0 .8rem; font-family: "Source Serif 4", Georgia, serif; font-size: clamp(1.65rem, 3vw, 2.25rem); font-weight: 500; line-height: 1.2; color: #18241e; text-transform: none; }
.newsletter-signup .newsletter-signup__summary { color: #46524a; line-height: 1.65; max-width: 44rem; }
.newsletter-exit .newsletter-signup__topics { display: flex; flex-wrap: wrap; gap: .5rem 1rem; list-style: none; padding: 0; margin: 1.2rem 0; font-size: .8rem; color: #46673d; }
.newsletter-signup label { display: block; font-size: .85rem; margin-bottom: .4rem; font-weight: 600; }
.brief-follow .newsletter-signup form { display: block; }
.brief-follow .newsletter-signup__row input { min-width: 0; }
.brief-follow .newsletter-signup h2 { font-size: clamp(1.65rem, 3vw, 2.25rem); }
.newsletter-signup__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .6rem; }
.newsletter-signup__row input { width: 100%; min-width: 0; min-height: 3rem; background: white; color: #18241e; }
.newsletter-signup .newsletter-signup__note { margin: .8rem 0 0; font-size: .75rem; line-height: 1.6; color: #59635c; }
.newsletter-signup__note a { color: inherit; text-decoration: underline; }
.newsletter-signup .newsletter-signup__error { color: #a22f20; }
/* Popup styles are scoped so inline newsletter forms keep their layout. */
.newsletter-exit { padding: 0; width: min(30rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); border: 1px solid var(--border); border-radius: 16px; background: var(--surface); color: var(--ink); overflow-y: auto; box-shadow: 0 24px 80px #0005; }
.newsletter-exit::backdrop { background: #0f1b17b3; }
.newsletter-exit .newsletter-signup { border: 0; border-radius: 0; background: transparent; padding: 36px 32px 0; }
.newsletter-exit .newsletter-signup__eyebrow { margin: 0 44px 16px 0; color: var(--muted); font-size: 10px; letter-spacing: 1.3px; }
.newsletter-exit .newsletter-signup h2 { margin: 0 0 14px; max-width: 350px; font: 620 34px/1.12 var(--font-display); letter-spacing: -.035em; }
.newsletter-exit .newsletter-signup__summary { margin: 0 0 24px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.newsletter-exit .newsletter-signup form { display: block; padding-top: 24px; border-top: 1px solid var(--border-strong); }
.newsletter-exit .newsletter-signup label { margin-bottom: 8px; font-size: 12px; }
.newsletter-exit .newsletter-signup__row { display: grid; grid-template-columns: 1fr; gap: 10px; }
.newsletter-exit .newsletter-signup__row input { min-height: 48px; margin: 0; font-size: 14px; }
.newsletter-exit .newsletter-signup__row .button { width: 100%; min-height: 46px; font-size: 13px; }
.newsletter-exit .newsletter-signup__note { margin-top: 14px; font-size: 11px; line-height: 1.7; }
.newsletter-exit .newsletter-exit__close { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; }
.newsletter-exit .newsletter-exit__close:hover { background: var(--surface-raised); }
.newsletter-exit .newsletter-exit__dismiss { display: block; min-height: 44px; margin: 18px auto 20px; padding: 10px 16px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.newsletter-exit .newsletter-exit__dismiss:hover { color: var(--ink); background: var(--surface-raised); }
@media (max-width: 480px) { .newsletter-exit .newsletter-signup { padding: 32px 24px 0; } .newsletter-exit .newsletter-signup h2 { font-size: 30px; } }
.newsletter-signup :focus-visible, .newsletter-exit :focus-visible { outline: 2px solid #46673d; outline-offset: 3px; }
@media (max-width: 600px) { .newsletter-signup__row { grid-template-columns: 1fr; } }
