/* Newsletter Pro – Public */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=Source+Serif+4:opsz,wght@8..60,300;400&display=swap');

.np-block { width: 100%; box-sizing: border-box; }
.np-center { text-align: center; }
.np-left   { text-align: left;   }

/* Hero */
.np-hero { max-width: 680px; margin: 0 auto 36px; }

.np-headline {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 900;
	font-size: clamp(1.8rem, 5vw, 3.2rem);
	line-height: 1.1;
	letter-spacing: -.02em;
	margin: 0 0 16px;
}

.np-subheadline {
	font-family: 'Source Serif 4', Georgia, serif;
	font-weight: 300;
	font-size: clamp(.9rem, 2vw, 1.1rem);
	line-height: 1.65;
	margin: 0;
	max-width: 460px;
}

.np-center .np-subheadline { margin-left: auto; margin-right: auto; }

.np-dark  .np-headline, .np-dark  .np-subheadline { color: #111827; }
.np-light .np-headline, .np-light .np-subheadline { color: #ffffff; }

/* Form */
.np-form-wrap { max-width: 540px; margin: 0 auto; }
.np-left .np-form-wrap { margin-left: 0; }

.np-form .np-row { display: flex; gap: 10px; margin-bottom: 10px; }

.np-form input {
	flex: 1;
	padding: 12px 15px;
	border: 1.5px solid rgba(0,0,0,.18);
	border-radius: 6px;
	font-size: .95rem;
	font-family: 'Source Serif 4', Georgia, serif;
	background: rgba(255,255,255,.92);
	color: #111827;
	transition: border-color .15s;
}

.np-light .np-form input {
	background: rgba(255,255,255,.15);
	border-color: rgba(255,255,255,.35);
	color: #fff;
}

.np-light .np-form input::placeholder { color: rgba(255,255,255,.6); }

.np-form input:focus {
	outline: none;
	border-color: #111827;
	box-shadow: 0 0 0 3px rgba(17,24,39,.1);
}

.np-form button {
	white-space: nowrap;
	padding: 12px 24px;
	background: #111827;
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: .95rem;
	font-family: 'Source Serif 4', Georgia, serif;
	cursor: pointer;
	transition: background .15s;
}

.np-light .np-form button { background: #fff; color: #111827; }
.np-form button:hover     { background: #374151; }
.np-light .np-form button:hover { background: rgba(255,255,255,.88); }

/* Messages */
.np-form-msg { padding: 10px 14px; border-radius: 5px; margin-bottom: 12px; font-size: .88rem; font-weight: 500; }
.np-form-msg.ok  { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }
.np-form-msg.err { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }

/* Site notice */
.np-site-notice { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); padding: 13px 22px; border-radius: 6px; font-size: .9rem; font-weight: 500; z-index: 9999; box-shadow: 0 4px 16px rgba(0,0,0,.18); }
.np-site-notice-ok  { background: #16a34a; color: #fff; }
.np-site-notice-err { background: #dc2626; color: #fff; }

@media (max-width: 520px) {
	.np-form .np-row { flex-direction: column; }
	.np-form button  { width: 100%; }
}
