/* Scoped + high-specificity rules so themes cannot restyle the form. */

.cmf-form-wrap {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	line-height: normal;
}

.cmf-form-wrap form.cmf-form,
form.cmf-form.cmf-form,
div.cmf-form.cmf-form {
	all: unset;
	display: block !important;
	box-sizing: border-box !important;
	position: relative !important;
	width: 100% !important;
	max-width: var(--cmf-form-max-width, 480px) !important;
	margin: 0 auto !important;
	padding: var(--cmf-form-padding, 24px) !important;
	background: var(--cmf-form-bg, #ffffff) !important;
	background-color: var(--cmf-form-bg, #ffffff) !important;
	background-image: none !important;
	border: var(--cmf-form-border-width, 1px) solid var(--cmf-form-border-color, #e5e7eb) !important;
	border-radius: var(--cmf-form-radius, 12px) !important;
	box-shadow: var(--cmf-form-shadow, none) !important;
	color: var(--cmf-text-color, #111827) !important;
	font-size: var(--cmf-text-size, 16px) !important;
	line-height: 1.45 !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	overflow: visible !important;
	min-height: 0 !important;
	height: auto !important;
	float: none !important;
	clear: both !important;
	transform: none !important;
}

.cmf-form-wrap form.cmf-form *,
.cmf-form-wrap form.cmf-form *::before,
.cmf-form-wrap form.cmf-form *::after,
form.cmf-form.cmf-form *,
form.cmf-form.cmf-form *::before,
form.cmf-form.cmf-form *::after,
div.cmf-form.cmf-form *,
div.cmf-form.cmf-form *::before,
div.cmf-form.cmf-form *::after {
	box-sizing: border-box !important;
}

.cmf-form-wrap form.cmf-form .cmf-hp,
form.cmf-form.cmf-form .cmf-hp,
div.cmf-form.cmf-form .cmf-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	border: 0 !important;
	background: transparent !important;
}

.cmf-form-wrap form.cmf-form .cmf-fields,
form.cmf-form.cmf-form .cmf-fields,
div.cmf-form.cmf-form .cmf-fields {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	width: 100% !important;
}

.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-fields,
form.cmf-form.cmf-form.cmf-layout-inline .cmf-fields,
div.cmf-form.cmf-form.cmf-layout-inline .cmf-fields {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	gap: 10px !important;
}

.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-field-firstname,
.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-field-email,
form.cmf-form.cmf-form.cmf-layout-inline .cmf-field-firstname,
form.cmf-form.cmf-form.cmf-layout-inline .cmf-field-email,
div.cmf-form.cmf-form.cmf-layout-inline .cmf-field-firstname,
div.cmf-form.cmf-form.cmf-layout-inline .cmf-field-email {
	flex: 1 1 140px !important;
	min-width: 120px !important;
}

.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-field-privacy,
form.cmf-form.cmf-form.cmf-layout-inline .cmf-field-privacy,
div.cmf-form.cmf-form.cmf-layout-inline .cmf-field-privacy {
	flex: 1 1 100% !important;
}

.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-field-submit,
form.cmf-form.cmf-form.cmf-layout-inline .cmf-field-submit,
div.cmf-form.cmf-form.cmf-layout-inline .cmf-field-submit {
	flex: 0 0 auto !important;
}

.cmf-form-wrap form.cmf-form .cmf-field,
form.cmf-form.cmf-form .cmf-field,
div.cmf-form.cmf-form .cmf-field {
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	width: auto !important;
	float: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-label,
form.cmf-form.cmf-form .cmf-label,
div.cmf-form.cmf-form .cmf-label {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--cmf-label-color, #374151) !important;
	font-size: 0.875em !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.cmf-form-wrap form.cmf-form .cmf-input,
.cmf-form-wrap form.cmf-form input.cmf-input[type="text"],
.cmf-form-wrap form.cmf-form input.cmf-input[type="email"],
form.cmf-form.cmf-form .cmf-input,
form.cmf-form.cmf-form input.cmf-input[type="text"],
form.cmf-form.cmf-form input.cmf-input[type="email"],
div.cmf-form.cmf-form .cmf-input,
div.cmf-form.cmf-form input.cmf-input[type="text"],
div.cmf-form.cmf-form input.cmf-input[type="email"] {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: var(--cmf-input-height, 48px) !important;
	min-height: var(--cmf-input-height, 48px) !important;
	padding: 0 14px !important;
	margin: 0 !important;
	border: 1px solid var(--cmf-input-border, #d1d5db) !important;
	border-radius: var(--cmf-input-radius, 8px) !important;
	background: var(--cmf-input-bg, #ffffff) !important;
	background-color: var(--cmf-input-bg, #ffffff) !important;
	background-image: none !important;
	color: var(--cmf-input-text, #111827) !important;
	font-size: inherit !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	outline: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-input::placeholder,
form.cmf-form.cmf-form .cmf-input::placeholder,
div.cmf-form.cmf-form .cmf-input::placeholder {
	color: var(--cmf-label-color, #9ca3af) !important;
	opacity: 0.85 !important;
}

.cmf-form-wrap form.cmf-form .cmf-input:focus,
.cmf-form-wrap form.cmf-form .cmf-input:focus-visible,
form.cmf-form.cmf-form .cmf-input:focus,
form.cmf-form.cmf-form .cmf-input:focus-visible,
div.cmf-form.cmf-form .cmf-input:focus,
div.cmf-form.cmf-form .cmf-input:focus-visible {
	border-color: var(--cmf-button-bg, #2563eb) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25) !important;
	outline: none !important;
	background: var(--cmf-input-bg, #ffffff) !important;
	color: var(--cmf-input-text, #111827) !important;
}

.cmf-form-wrap form.cmf-form .cmf-input.cmf-invalid,
form.cmf-form.cmf-form .cmf-input.cmf-invalid,
div.cmf-form.cmf-form .cmf-input.cmf-invalid {
	border-color: #dc2626 !important;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15) !important;
}

.cmf-form-wrap form.cmf-form .cmf-privacy-label,
form.cmf-form.cmf-form .cmf-privacy-label,
div.cmf-form.cmf-form .cmf-privacy-label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	cursor: pointer !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-size: 0.9em !important;
	color: var(--cmf-label-color, #374151) !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
}

.cmf-form-wrap form.cmf-form .cmf-privacy-input,
form.cmf-form.cmf-form .cmf-privacy-input,
div.cmf-form.cmf-form .cmf-privacy-input {
	margin: 3px 0 0 !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	width: auto !important;
	height: auto !important;
	accent-color: var(--cmf-button-bg, #2563eb);
}

.cmf-form-wrap form.cmf-form .cmf-privacy-text,
form.cmf-form.cmf-form .cmf-privacy-text,
div.cmf-form.cmf-form .cmf-privacy-text {
	color: inherit !important;
}

.cmf-form-wrap form.cmf-form .cmf-privacy-text a,
form.cmf-form.cmf-form .cmf-privacy-text a,
div.cmf-form.cmf-form .cmf-privacy-text a {
	color: inherit !important;
	text-decoration: underline !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.cmf-form-wrap form.cmf-form .cmf-button,
.cmf-form-wrap form.cmf-form button.cmf-button,
form.cmf-form.cmf-form .cmf-button,
form.cmf-form.cmf-form button.cmf-button,
div.cmf-form.cmf-form .cmf-button,
div.cmf-form.cmf-form button.cmf-button {
	position: relative !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--cmf-button-width, 100%) !important;
	min-width: 120px !important;
	max-width: 100% !important;
	height: var(--cmf-button-height, 48px) !important;
	min-height: var(--cmf-button-height, 48px) !important;
	padding: 0 20px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: var(--cmf-button-radius, 8px) !important;
	background: var(--cmf-button-bg, #2563eb) !important;
	background-color: var(--cmf-button-bg, #2563eb) !important;
	background-image: none !important;
	color: var(--cmf-button-text, #ffffff) !important;
	font-size: inherit !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease, opacity 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-button:hover,
.cmf-form-wrap form.cmf-form .cmf-button:focus,
.cmf-form-wrap form.cmf-form .cmf-button:focus-visible,
form.cmf-form.cmf-form .cmf-button:hover,
form.cmf-form.cmf-form .cmf-button:focus,
form.cmf-form.cmf-form .cmf-button:focus-visible,
div.cmf-form.cmf-form .cmf-button:hover,
div.cmf-form.cmf-form .cmf-button:focus,
div.cmf-form.cmf-form .cmf-button:focus-visible {
	background: var(--cmf-button-hover-bg, #1d4ed8) !important;
	background-color: var(--cmf-button-hover-bg, #1d4ed8) !important;
	background-image: none !important;
	color: var(--cmf-button-hover-text, #ffffff) !important;
	outline: none !important;
	border: none !important;
	text-decoration: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-button:focus-visible,
form.cmf-form.cmf-form .cmf-button:focus-visible,
div.cmf-form.cmf-form .cmf-button:focus-visible {
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.35) !important;
}

.cmf-form-wrap form.cmf-form .cmf-button:active,
form.cmf-form.cmf-form .cmf-button:active,
div.cmf-form.cmf-form .cmf-button:active {
	transform: translateY(1px) !important;
}

.cmf-form-wrap form.cmf-form .cmf-button:disabled,
form.cmf-form.cmf-form .cmf-button:disabled,
div.cmf-form.cmf-form .cmf-button:disabled {
	opacity: 0.7 !important;
	cursor: wait !important;
	transform: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-button-text,
form.cmf-form.cmf-form .cmf-button-text,
div.cmf-form.cmf-form .cmf-button-text {
	color: inherit !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	font: inherit !important;
	line-height: 1 !important;
}

.cmf-form-wrap form.cmf-form .cmf-button-spinner,
form.cmf-form.cmf-form .cmf-button-spinner,
div.cmf-form.cmf-form .cmf-button-spinner {
	display: none !important;
	width: 18px !important;
	height: 18px !important;
	margin-left: 10px !important;
	border: 2px solid currentColor !important;
	border-right-color: transparent !important;
	border-radius: 50% !important;
	background: transparent !important;
	animation: cmf-spin 0.7s linear infinite !important;
}

.cmf-form-wrap form.cmf-form.is-loading .cmf-button-spinner,
form.cmf-form.cmf-form.is-loading .cmf-button-spinner,
div.cmf-form.cmf-form.is-loading .cmf-button-spinner {
	display: inline-block !important;
}

.cmf-form-wrap form.cmf-form .cmf-message,
form.cmf-form.cmf-form .cmf-message,
div.cmf-form.cmf-form .cmf-message {
	margin-top: 14px !important;
	margin-bottom: 0 !important;
	padding: 12px 14px !important;
	border-radius: calc(var(--cmf-form-radius, 12px) / 2) !important;
	font-size: 0.95em !important;
	line-height: 1.4 !important;
	animation: cmf-fade-in 0.25s ease !important;
	box-shadow: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-message[hidden],
form.cmf-form.cmf-form .cmf-message[hidden],
div.cmf-form.cmf-form .cmf-message[hidden] {
	display: none !important;
}

.cmf-form-wrap form.cmf-form .cmf-message.cmf-message-success,
form.cmf-form.cmf-form .cmf-message.cmf-message-success,
div.cmf-form.cmf-form .cmf-message.cmf-message-success {
	background: rgba(16, 185, 129, 0.12) !important;
	color: #047857 !important;
	border: 1px solid rgba(16, 185, 129, 0.35) !important;
}

.cmf-form-wrap form.cmf-form .cmf-message.cmf-message-error,
form.cmf-form.cmf-form .cmf-message.cmf-message-error,
div.cmf-form.cmf-form .cmf-message.cmf-message-error {
	background: rgba(239, 68, 68, 0.1) !important;
	color: #b91c1c !important;
	border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.cmf-form-wrap form.cmf-form.is-success .cmf-fields,
form.cmf-form.cmf-form.is-success .cmf-fields,
div.cmf-form.cmf-form.is-success .cmf-fields {
	display: none !important;
}

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

@keyframes cmf-fade-in {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 600px) {
	.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-fields,
	form.cmf-form.cmf-form.cmf-layout-inline .cmf-fields,
	div.cmf-form.cmf-form.cmf-layout-inline .cmf-fields {
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-field-submit,
	.cmf-form-wrap form.cmf-form.cmf-layout-inline .cmf-button,
	form.cmf-form.cmf-form.cmf-layout-inline .cmf-field-submit,
	form.cmf-form.cmf-form.cmf-layout-inline .cmf-button,
	div.cmf-form.cmf-form.cmf-layout-inline .cmf-field-submit,
	div.cmf-form.cmf-form.cmf-layout-inline .cmf-button {
		width: 100% !important;
	}
}
