.hn-newsletter-wrap {
	--hn-button-bg: #4f46e5;
	--hn-button-hover-bg: #3730a3;
	--hn-button-text: #ffffff;
	--hn-button-hover-text: #ffffff;
	--hn-field-bg: #ffffff;
	--hn-field-border: #e5e7eb;
	--hn-field-focus-border: #4f46e5;
	--hn-field-text: #111827;
	--hn-field-placeholder: #adb5bd;
	--hn-success-text: #155724;
	--hn-success-bg: #d4edda;
	--hn-error-text: #c0392b;
	--hn-error-bg: #fdecea;
	--hn-max-width: 480px;
	--hn-border-radius: 8px;
	--hn-field-gap: 10px;

	max-width: var(--hn-max-width);
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
}

.hn-newsletter-wrap * {
	box-sizing: border-box;
}

.hn-newsletter-form {
	width: 100%;
}

.hn-newsletter-fieldrow {
	display: flex;
	gap: var(--hn-field-gap);
	align-items: stretch;
}

.hn-newsletter-layout-stacked .hn-newsletter-fieldrow {
	flex-direction: column;
}

.hn-newsletter-input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 12px 16px;
	font-size: 15px;
	line-height: 1.4;
	background-color: var(--hn-field-bg);
	border: 1px solid var(--hn-field-border);
	border-radius: var(--hn-border-radius);
	color: var(--hn-field-text);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hn-newsletter-input::placeholder {
	color: var(--hn-field-placeholder);
}

.hn-newsletter-input:focus {
	border-color: var(--hn-field-focus-border);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--hn-field-focus-border) 20%, transparent);
}

.hn-newsletter-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.hn-newsletter-btn {
	position: relative;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
	background-color: var(--hn-button-bg);
	color: var(--hn-button-text);
	border: none;
	border-radius: var(--hn-border-radius);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, transform 0.1s ease;
}

.hn-newsletter-btn:hover,
.hn-newsletter-btn:focus-visible {
	background-color: var(--hn-button-hover-bg);
	color: var(--hn-button-hover-text);
}

.hn-newsletter-btn:active {
	transform: translateY(1px);
}

.hn-newsletter-btn:disabled {
	opacity: 0.75;
	cursor: default;
}

.hn-newsletter-spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: hn-newsletter-spin 0.6s linear infinite;
}

.hn-newsletter-btn.is-loading .hn-newsletter-spinner {
	display: inline-block;
}

@keyframes hn-newsletter-spin {
	to {
		transform: rotate(360deg);
	}
}

.hn-newsletter-message {
	margin-top: 12px;
	padding: 10px 14px;
	border-radius: calc(var(--hn-border-radius) * 0.7);
	font-size: 14px;
	line-height: 1.4;
	display: none;
}

.hn-newsletter-message.is-visible {
	display: block;
}

.hn-newsletter-message.is-success {
	background-color: var(--hn-success-bg);
	color: var(--hn-success-text);
}

.hn-newsletter-message.is-error {
	background-color: var(--hn-error-bg);
	color: var(--hn-error-text);
}
