/* PFKC Newsletter – sign-up panel. Colours follow the Elementor kit (deep blue #10171D, logo red #D22023, ice #F2F7FE). */
.pfkc-nl {
	--pfkc-nl-ink: #10171D;
	--pfkc-nl-text: #5B5B5B;
	--pfkc-nl-red: #D22023;
	--pfkc-nl-red-dark: #AF1A26;
	--pfkc-nl-line: #D6E1F0;
	--pfkc-nl-ice: #F2F7FE;
	background: #fff;
	border-top: 1px solid var(--pfkc-nl-line);
	color: var(--pfkc-nl-text);
	font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
}

.pfkc-nl__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 48px;
	align-items: center;
	width: 100%;
	max-width: 1320px;
	margin: 0 auto;
	padding: 56px 30px;
}

.pfkc-nl__intro {
	display: flex;
	gap: 18px;
	align-items: flex-start;
}

.pfkc-nl__icon {
	flex: none;
	width: 52px;
	height: 52px;
	padding: 12px;
	border-radius: 50%;
	background: var(--pfkc-nl-ice);
	color: var(--pfkc-nl-red);
}

.pfkc-nl .pfkc-nl__title {
	margin: 0 0 8px;
	color: var(--pfkc-nl-red);
	font-family: "Roboto Condensed", Roboto, Arial, sans-serif;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.pfkc-nl__lead {
	margin: 0;
	max-width: 46ch;
	color: var(--pfkc-nl-ink);
	font-size: 18px;
	line-height: 1.5;
}

.pfkc-nl__form {
	margin: 0;
}

.pfkc-nl__label {
	display: block;
	margin: 0 0 6px;
	color: var(--pfkc-nl-ink);
	font-size: 14px;
	font-weight: 500;
}

.pfkc-nl__row {
	display: flex;
	gap: 10px;
}

.pfkc-nl .pfkc-nl__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 50px;
	margin: 0;
	padding: 0 22px;
	border: 1px solid var(--pfkc-nl-line);
	border-radius: 999px;
	background: var(--pfkc-nl-ice);
	color: var(--pfkc-nl-ink);
	font-size: 16px;
	line-height: 50px;
	box-shadow: none;
	transition: border-color .15s, background-color .15s;
}

.pfkc-nl .pfkc-nl__input::placeholder {
	color: #768089;
	opacity: 1;
}

.pfkc-nl .pfkc-nl__input:focus {
	border-color: var(--pfkc-nl-ink);
	background: #fff;
	outline: none;
}

.pfkc-nl .pfkc-nl__input:focus-visible,
.pfkc-nl .pfkc-nl__button:focus-visible,
.pfkc-nl__consent input:focus-visible {
	outline: 3px solid var(--pfkc-nl-ink);
	outline-offset: 2px;
}

.pfkc-nl .pfkc-nl__input[aria-invalid="true"] {
	border-color: var(--pfkc-nl-red);
}

.pfkc-nl .pfkc-nl__button {
	flex: none;
	height: 50px;
	margin: 0;
	padding: 0 30px;
	border: 1px solid var(--pfkc-nl-red);
	border-radius: 999px;
	background: var(--pfkc-nl-red);
	color: #fff;
	font-family: "Roboto Condensed", Roboto, Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .15s, border-color .15s;
}

.pfkc-nl .pfkc-nl__button:hover {
	border-color: var(--pfkc-nl-red-dark);
	background: var(--pfkc-nl-red-dark);
	color: #fff;
}

.pfkc-nl .pfkc-nl__button[disabled] {
	opacity: .7;
	cursor: progress;
}

.pfkc-nl__consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-top: 14px;
	font-size: 13px;
	line-height: 1.5;
}

.pfkc-nl__consent input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--pfkc-nl-red);
}

.pfkc-nl__consent a {
	color: var(--pfkc-nl-ink);
	text-decoration: underline;
}

.pfkc-nl__msg {
	margin: 12px 0 0;
	font-size: 14px;
	font-weight: 500;
}

.pfkc-nl__msg:empty {
	display: none;
}

.pfkc-nl__msg.is-success {
	padding: 12px 16px;
	border-left: 4px solid #26A714;
	border-radius: 4px;
	background: #EDF8EB;
	color: #1B5E12;
}

.pfkc-nl__msg.is-error {
	color: var(--pfkc-nl-red);
}

/* Honeypot: off-screen rather than display:none, which some bots detect. */
.pfkc-nl__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 900px) {
	.pfkc-nl__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
		padding: 40px 20px;
	}
}

@media (max-width: 480px) {
	.pfkc-nl__row {
		flex-direction: column;
	}

	.pfkc-nl .pfkc-nl__button {
		width: 100%;
	}

	.pfkc-nl__icon {
		display: none;
	}
}

/* Shortcode placement inside page content. */
.pfkc-nl--shortcode {
	border: 1px solid #D6E1F0;
	border-radius: 12px;
}

.pfkc-nl--shortcode .pfkc-nl__inner {
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	padding: 32px;
}
