/* Newsletter Signup — inline form + popup. Scoped under .nlsu. */
.nlsu{
	--nl-red:#c44536;
	--nl-red-dark:#a5382b;
	--nl-navy:#2e3a56;
	--nl-cream:#f2e9dc;
	--nl-line:rgba(46,58,86,.18);
	font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
	color:var(--nl-navy);
}
.nlsu *{box-sizing:border-box}
.nlsu-align-center{text-align:center}
.nlsu-align-center .nlsu-fields{justify-content:center}

.nlsu-heading{
	font-family:"Oswald",Impact,sans-serif;
	font-weight:700;font-size:22px;letter-spacing:.5px;
	text-transform:uppercase;margin-bottom:6px;
}
.nlsu-text{margin:0 0 12px;font-size:14px;opacity:.85}

.nlsu-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nlsu-name,.nlsu-email{
	flex:1 1 180px;min-width:0;
	padding:11px 14px;font:inherit;font-size:14px;
	border:1px solid var(--nl-line);border-radius:8px;
	background:#fff;color:var(--nl-navy);
}
.nlsu-name:focus,.nlsu-email:focus{outline:2px solid var(--nl-red);outline-offset:1px}
.nlsu-name:disabled,.nlsu-email:disabled{opacity:.6}
.nlsu-email.nlsu-invalid{border-color:var(--nl-red)}

.nlsu .nlsu-submit,
.nlsu .nlsu-open{
	flex:0 0 auto;
	background:var(--nl-red);color:#fff;
	border:none;border-radius:8px;
	padding:11px 24px;
	font-family:inherit;font-weight:700;font-size:14px;line-height:1.2;
	cursor:pointer;
	transition:background .18s ease,transform .08s ease;
}
.nlsu .nlsu-submit:hover,
.nlsu .nlsu-open:hover{background:var(--nl-red-dark)}
.nlsu .nlsu-submit:active,
.nlsu .nlsu-open:active{transform:scale(.97)}
.nlsu .nlsu-submit:disabled{opacity:.6;cursor:default}

.nlsu-msg{margin:10px 0 0;font-size:13px;font-weight:600;min-height:18px}
.nlsu-msg.is-ok{color:#2f7d4f}
.nlsu-msg.is-err{color:var(--nl-red)}

/* honeypot — hidden from people, visible to bots */
.nlsu-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* popup */
.nlsu-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}
.nlsu-modal[hidden]{display:none}
.nlsu-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);animation:nlsu-fade .25s ease}
.nlsu-modal-box{
	position:relative;width:min(460px,100%);
	background:var(--nl-cream);border-radius:14px;
	padding:30px 28px 26px;
	box-shadow:0 24px 60px rgba(0,0,0,.4);
	animation:nlsu-in .28s cubic-bezier(.2,.8,.2,1);
}
.nlsu .nlsu-modal-close{
	position:absolute;top:8px;right:12px;
	width:34px;height:34px;border:none;background:transparent;
	color:var(--nl-navy);font-size:26px;line-height:1;cursor:pointer;opacity:.6;
}
.nlsu .nlsu-modal-close:hover{opacity:1}
.nlsu-modal .nlsu-fields{flex-direction:column;align-items:stretch}
.nlsu-modal .nlsu-name,
.nlsu-modal .nlsu-email,
.nlsu-modal .nlsu-submit{width:100%;flex:0 0 auto}

@keyframes nlsu-fade{from{opacity:0}to{opacity:1}}
@keyframes nlsu-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
	.nlsu-modal-backdrop,.nlsu-modal-box{animation:none}
}

@media (max-width:520px){
	.nlsu-fields{flex-direction:column;align-items:stretch}
	.nlsu .nlsu-submit{width:100%}
}
