/*!
 * FUSION 1 – Forminator styling.
 * Full styling for forms whose Design Style is "None" (recommended) or "Default".
 * Flat / Bold / Material designs are left to Forminator except for brand colors.
 * Change the submit color with: .forminator-ui { --f1-form-btn: var(--f1-accent); }
 */

.f1-forminator .forminator-ui.forminator-custom-form {
	--f1-form-btn: var(--f1-primary);
	--f1-form-btn-hover: var(--f1-primary-dark);
	--f1-form-error: #D92D20;
	--f1-form-success: #12805C;
	font-family: var(--f1-font-body);
}

/* ---------- Layout ---------- */
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) .forminator-row { margin-bottom: 22px; }
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) .forminator-row-last { margin-bottom: 0; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-row { display: flex; flex-wrap: wrap; gap: 22px 24px; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col { flex: 1 1 0; min-width: 0; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col-12 { flex-basis: 100%; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col-6 { flex: 1 1 calc(50% - 12px); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col-4 { flex: 1 1 calc(33.333% - 16px); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col-3 { flex: 1 1 calc(25% - 18px); }
@media (max-width: 767px) {
	.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-col { flex-basis: 100% !important; }
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-field { position: relative; }

/* ---------- Labels & help text ---------- */
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) .forminator-label {
	display: block;
	margin: 0 0 8px;
	padding: 0;
	color: var(--f1-heading) !important;
	font-family: var(--f1-font-heading) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
}
.f1-forminator .forminator-ui.forminator-custom-form .forminator-required { color: var(--f1-accent) !important; }
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) .forminator-description {
	display: block;
	margin-top: 6px;
	color: var(--f1-text) !important;
	font-size: 13px !important;
	line-height: 1.5;
}
/* Character counter sits top-right of the textarea */
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-field-textarea .forminator-label + div { position: absolute; top: 0; right: 0; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-field-textarea .forminator-label + div .forminator-description { margin: 0; opacity: .75; }

/* ---------- Inputs ---------- */
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) :is(.forminator-input, .forminator-textarea, select.forminator-select--field) {
	width: 100%;
	max-width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 13px 18px !important;
	background-color: #fff !important;
	border: 1px solid var(--f1-border) !important;
	border-radius: 8px !important;
	box-shadow: none;
	color: var(--f1-heading) !important;
	font-family: var(--f1-font-body) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	transition: border-color .2s, box-shadow .2s;
}
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) textarea.forminator-textarea { min-height: var(--forminator-textarea-min-height, 140px) !important; resize: vertical; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] select.forminator-select--field { padding-right: 44px !important; }
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) :is(.forminator-input, .forminator-textarea, select):hover { border-color: #C8CCD8 !important; }
.f1-forminator .forminator-ui.forminator-custom-form:is([data-design="none"], [data-design="default"]) :is(.forminator-input, .forminator-textarea, select):focus {
	outline: 0;
	border-color: var(--f1-primary) !important;
	box-shadow: 0 0 0 3px rgba(var(--f1-primary-rgb), .15) !important;
}
.f1-forminator .forminator-ui.forminator-custom-form :is(.forminator-input, .forminator-textarea)::placeholder { color: #9096A8 !important; opacity: 1; }

/* Select2 (Default design) */
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] .select2-container .select2-selection--single,
.forminator-select-dropdown-container--open .select2-dropdown.forminator-custom-form-default {
	border-color: var(--f1-border) !important;
	border-radius: 8px !important;
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] .select2-container .select2-selection--single { min-height: 52px; padding: 8px 12px; background: #fff !important; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] .select2-container--open .select2-selection--single { border-color: var(--f1-primary) !important; box-shadow: 0 0 0 3px rgba(var(--f1-primary-rgb), .15); }

/* ---------- Radio & checkbox ---------- */
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] :is(.forminator-radio, .forminator-checkbox) {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 4px 24px 8px 0;
	color: var(--f1-text);
	font-size: 15px;
	line-height: 1.4;
	cursor: pointer;
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] :is(.forminator-radio, .forminator-checkbox) input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] :is(.forminator-radio-bullet, .forminator-checkbox-box) {
	position: relative;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 2px solid #C8CCD8;
	border-radius: 6px;
	transition: all .2s;
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-radio-bullet { border-radius: 50%; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] :is(.forminator-radio, .forminator-checkbox):hover :is(.forminator-radio-bullet, .forminator-checkbox-box) { border-color: var(--f1-primary); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] input:checked + .forminator-checkbox-box { background: var(--f1-primary); border-color: var(--f1-primary); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] input:checked + .forminator-checkbox-box::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 6px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] input:checked + .forminator-radio-bullet { border-color: var(--f1-primary); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] input:checked + .forminator-radio-bullet::after {
	content: "";
	position: absolute;
	inset: 3px;
	background: var(--f1-primary);
	border-radius: 50%;
}
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] input:focus-visible + :is(.forminator-radio-bullet, .forminator-checkbox-box) { box-shadow: 0 0 0 3px rgba(var(--f1-primary-rgb), .25); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] :is(.forminator-radio-label, .forminator-checkbox-label) { color: var(--f1-heading); }
/* Default design: brand color on checked state */
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] input:checked + .forminator-checkbox-box { background-color: var(--f1-primary) !important; border-color: var(--f1-primary) !important; color: #fff !important; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] input:checked + .forminator-radio-bullet::before { background-color: var(--f1-primary) !important; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="default"] :is(.forminator-checkbox, .forminator-radio) { color: var(--f1-heading) !important; font-size: 15px !important; }

/* Consent / GDPR */
.f1-forminator .forminator-ui.forminator-custom-form .forminator-checkbox__label,
.f1-forminator .forminator-ui.forminator-custom-form .forminator-checkbox__label p { font-size: 14px !important; line-height: 1.5; }

/* ---------- Submit ---------- */
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button,
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button-submit {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 160px;
	margin: 0;
	padding: 15px 34px !important;
	background: var(--f1-form-btn) !important;
	border: 0 !important;
	border-radius: var(--f1-btn-radius) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--f1-font-heading) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-transform: var(--f1-btn-transform);
	cursor: pointer;
	transition: all .25s var(--f1-ease);
}
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button:hover,
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button-submit:hover {
	background: var(--f1-form-btn-hover) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(var(--f1-primary-rgb), .28) !important;
}
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button:focus-visible { outline: 2px solid var(--f1-accent) !important; outline-offset: 2px; }
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button-back { background: var(--f1-light) !important; color: var(--f1-heading) !important; }
.f1-forminator .forminator-ui.forminator-custom-form .forminator-button.forminator-button-submit[disabled],
.f1-forminator .forminator-ui.forminator-custom-form.forminator-fields-disabled .forminator-button-submit { opacity: .6; transform: none; }
@media (max-width: 767px) {
	.f1-forminator .forminator-ui.forminator-custom-form .forminator-button-submit { width: 100%; }
}

/* ---------- Validation & messages ---------- */
.f1-forminator .forminator-ui.forminator-custom-form .forminator-field.forminator-has_error :is(input.forminator-input, textarea.forminator-textarea, select.forminator-select--field) { border-color: var(--f1-form-error) !important; box-shadow: 0 0 0 3px rgba(217, 45, 32, .12) !important; }
.f1-forminator .forminator-ui.forminator-custom-form .forminator-error-message {
	display: block;
	margin-top: 6px;
	padding: 0 !important;
	background: none !important;
	color: var(--f1-form-error) !important;
	font-size: 13px !important;
	font-weight: 600;
}
.f1-forminator .forminator-ui.forminator-custom-form .forminator-error-message::before { display: none; }
.f1-forminator .forminator-ui .forminator-response-message:not(:empty) {
	margin-bottom: 22px;
	padding: 16px 20px !important;
	border: 0 !important;
	border-left: 4px solid currentColor !important;
	border-radius: 8px !important;
	font-size: 15px !important;
	line-height: 1.5;
}
.f1-forminator .forminator-ui .forminator-response-message.forminator-success { background: #E7F7F0 !important; color: var(--f1-form-success) !important; }
.f1-forminator .forminator-ui .forminator-response-message.forminator-error { background: #FDECEA !important; color: var(--f1-form-error) !important; }
.f1-forminator .forminator-ui .forminator-response-message p { margin: 0; color: inherit !important; }
.f1-forminator .forminator-ui .forminator-response-message[aria-hidden="true"]:empty { display: none; }

/* ---------- Other field types (None design) ---------- */
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-field-section .forminator-title { color: var(--f1-heading); font-family: var(--f1-font-heading); font-size: var(--f1-h4); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-border { border-top: 1px solid var(--f1-border); }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-button-upload { min-width: 0; padding: 10px 18px !important; background: var(--f1-light) !important; color: var(--f1-heading) !important; font-size: 14px !important; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-pagination-steps { margin-bottom: 26px; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-progress-bar { height: 8px; overflow: hidden; background: var(--f1-light); border-radius: 8px; }
.f1-forminator .forminator-ui.forminator-custom-form[data-design="none"] .forminator-progress-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--f1-primary), var(--f1-accent)); }

/* ---------- On dark backgrounds ---------- */
:is(.f1-on-dark, .f1-section--navy, .f1-section--dark, .f1-section--brand, .f1-cta-band, .f1-footer, .f1-card--dark) .forminator-ui.forminator-custom-form .forminator-label { color: #fff !important; }
:is(.f1-on-dark, .f1-section--navy, .f1-section--dark, .f1-section--brand, .f1-cta-band, .f1-footer, .f1-card--dark) .forminator-ui.forminator-custom-form :is(.forminator-radio-label, .forminator-checkbox-label, .forminator-description) { color: rgba(255, 255, 255, .8) !important; }
:is(.f1-cta-band, .f1-footer) .forminator-ui.forminator-custom-form .forminator-button-submit { --f1-form-btn: var(--f1-accent); --f1-form-btn-hover: var(--f1-accent-dark); }

/* Poll / quiz buttons get brand color too */
.f1-forminator .forminator-ui.forminator-poll .forminator-button,
.f1-forminator .forminator-ui.forminator-quiz .forminator-button { background: var(--f1-primary) !important; border-radius: var(--f1-btn-radius) !important; color: #fff !important; }
