.newsletter{background:var(--paper);border-top:1px solid var(--line);padding:64px 0;color:var(--navy)}
.newsletter-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
.newsletter-copy h2{font-size:clamp(30px,3.2vw,42px);line-height:1.12;letter-spacing:-.045em;font-weight:600;margin:20px 0 18px}
.newsletter-copy>p{font-size:14px;line-height:1.8;max-width:405px;color:var(--muted);margin:0}
.newsletter-form{min-width:0;position:relative}.newsletter-form>label{font-size:13px;font-weight:650}
.newsletter-fields{display:flex;gap:10px;margin:10px 0 20px}
.newsletter-fields input{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #91a5b2;border-radius:9px;padding:16px;min-width:0;width:100%;min-height:54px}
.newsletter-fields .button{border:0;white-space:nowrap;cursor:pointer;gap:15px;min-height:54px;padding:16px 22px;border-radius:9px}
.newsletter-form .newsletter-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400;line-height:1.7;color:#415b6c;cursor:pointer}
.newsletter-consent input{flex-shrink:0;width:18px;height:18px;margin:2px 0 0;accent-color:var(--blue)}
.newsletter a{text-decoration:underline;text-underline-offset:3px}.newsletter-note{font-size:11px;line-height:1.8;color:var(--muted);margin:12px 0 0 28px}
.newsletter-status{font-size:13px;line-height:1.6;margin:14px 0 0;min-height:21px;font-weight:600;overflow-wrap:anywhere}.newsletter-status[data-state="error"]{color:#a52c20}.newsletter-status[data-state="success"]{color:#245c20}
.newsletter-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.newsletter input:focus-visible,.newsletter button:focus-visible,.newsletter a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.newsletter button:disabled{cursor:wait;opacity:.7;transform:none}
@media(max-width:900px){.newsletter-grid{gap:32px;grid-template-columns:1fr}.newsletter-copy>p{max-width:550px}.newsletter{padding:44px 0}.newsletter-form{max-width:620px}}
@media(max-width:480px){.newsletter-fields{flex-direction:column}.newsletter-fields .button{width:100%}.newsletter-note{margin-left:28px}.newsletter-copy h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.newsletter .button{transition:none;transform:none}}

/* Popup: native dialog supplies focus containment and an inert background. */
.newsletter-invite{padding:32px 0;border-top:1px solid var(--line);background:var(--paper)}
.newsletter-invite-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.newsletter-invite p{font-size:18px;letter-spacing:-.02em;margin:12px 0 0}.newsletter-open{border:0;cursor:pointer}
.newsletter-dialog{position:fixed;inset:0;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;border:1px solid var(--line);border-radius:24px;padding:44px 40px 24px;overflow:auto;box-shadow:0 28px 100px #04243d45;overscroll-behavior:contain}
.newsletter-dialog:not([open]){display:none}.newsletter-dialog::backdrop{background:rgba(4,24,40,.68);backdrop-filter:blur(4px)}
.newsletter-dialog .newsletter-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.newsletter-dialog .newsletter-copy h2{font-size:38px;line-height:1.12;margin:22px 0 16px}
.newsletter-dialog .newsletter-copy>p{max-width:none}.newsletter-dialog .eyebrow{padding-right:22px}
.newsletter-close{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:44px;height:44px;background:transparent;border:0;border-radius:50%;font-size:28px;color:var(--navy);cursor:pointer;line-height:1}
.newsletter-close:hover{background:#e4ecef}.newsletter-dialog .newsletter-fields{flex-direction:column}.newsletter-dialog .newsletter-fields .button{width:100%}
html.newsletter-modal-open{overflow:hidden}.newsletter-dialog[open]{animation:newsletter-enter .22s ease-out}
@keyframes newsletter-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.newsletter-invite-inner{align-items:flex-start;flex-direction:column}.newsletter-invite p{font-size:16px}.newsletter-dialog{padding:38px 24px 18px;border-radius:20px}.newsletter-dialog .newsletter-copy h2{font-size:30px}.newsletter-dialog .newsletter-grid{gap:22px}.newsletter-dialog .newsletter-copy>p{font-size:13px}.newsletter-dialog .newsletter-note{margin-left:0}}
@media(max-height:650px){.newsletter-dialog{padding-top:32px}.newsletter-dialog .newsletter-grid{gap:16px}.newsletter-dialog .newsletter-copy h2{margin:16px 0 12px}}
@media(prefers-reduced-motion:reduce){.newsletter-dialog[open]{animation:none}}
