/* Festival Core — newsletter form. Uses theme tokens with fallbacks. */
.fp-newsletter {
	width: 100%;
}

.fp-newsletter__fields {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px;
}

.fp-newsletter__field {
	flex: 1 1 200px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.fp-newsletter__field--email {
	flex-grow: 2;
}

.fp-newsletter__field label {
	font-weight: 600;
	font-size: 0.9375rem;
}

.fp-newsletter__opt {
	font-weight: 400;
	color: var(--c-muted, #4b5751);
	font-size: 0.8125rem;
}

.fp-newsletter input[type="text"],
.fp-newsletter input[type="email"] {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1.5px solid #9aa6a0;
	border-radius: 999px;
	background: #fff;
	color: var(--c-ink, #14201a);
	font: inherit;
}

.fp-newsletter input:focus {
	border-color: var(--c-green, #046a38);
	box-shadow: 0 0 0 3px rgb(4 106 56 / 18%);
	outline: none;
}

.fp-newsletter input[aria-invalid="true"] {
	border-color: var(--c-red-dark, #b01f14);
}

.fp-newsletter__submit {
	flex: none;
	min-height: 48px;
	padding: 0 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--c-green, #046a38);
	color: #fff;
	font: 600 1rem/1 var(--f-body, inherit);
	cursor: pointer;
}

.fp-newsletter__submit:hover {
	background: var(--c-green-dark, #034d29);
}

.fp-newsletter__submit[disabled] {
	opacity: 0.7;
	cursor: progress;
}

.fp-newsletter__consent {
	display: flex;
	gap: 0.6rem;
	margin-top: 12px;
	font-size: 0.875rem;
	cursor: pointer;
}

.fp-newsletter__consent input {
	width: 20px;
	height: 20px;
	margin-top: 1px;
	flex: none;
	accent-color: var(--c-green, #046a38);
}

.fp-newsletter__message {
	margin: 10px 0 0;
	font-weight: 600;
	font-size: 0.9375rem;
}

.fp-newsletter__message:empty {
	display: none;
}

.fp-newsletter__message.is-success { color: var(--c-green, #046a38); }
.fp-newsletter__message.is-info { color: var(--c-ink, #14201a); }
.fp-newsletter__message.is-error { color: var(--c-red-dark, #b01f14); }

.fp-newsletter__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Compact (footer): email + button on one line. */
.fp-newsletter--compact .fp-newsletter__field label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.fp-newsletter--compact .fp-newsletter__fields {
	flex-wrap: nowrap;
}

.fp-newsletter--compact .fp-newsletter__field {
	flex: 1 1 auto;
	min-width: 0;
}
