/**
 * Unified Form Styling
 * Professional, cohesive design for all WordPress forms
 */

/* ============================================
   Color Scheme Variables
   ============================================ */
:root {
	--ufs-primary-color: #f97316;
	--ufs-primary-hover: #ea580c;
	--ufs-primary-light: #fb923c;
	--ufs-secondary-color: #64748b;
	--ufs-success-color: #10b981;
	--ufs-error-color: #ef4444;
	--ufs-warning-color: #f59e0b;
	--ufs-text-color: #1e293b;
	--ufs-text-light: #64748b;
	--ufs-border-color: #e2e8f0;
	--ufs-border-focus: #f97316;
	--ufs-bg-color: #ffffff;
	--ufs-bg-light: #f8fafc;
	--ufs-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
	--ufs-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
	--ufs-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	--ufs-radius: 8px;
	--ufs-radius-sm: 6px;
	--ufs-radius-lg: 12px;
	--ufs-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ufs-font-size: 16px;
	--ufs-line-height: 1.5;
}

/* ============================================
   Typography - Apply to all forms
   ============================================ */
form,
.ufbl-form-wrapper,
.gform_wrapper,
.elementor-form,
.wpforms-container,
.contact-form-7,
.wpcf7-form,
#gform_wrapper,
form.wpdm-form {
	font-family: var(--ufs-font-family) !important;
	font-size: var(--ufs-font-size) !important;
	line-height: var(--ufs-line-height) !important;
	color: var(--ufs-text-color) !important;
}

/* ============================================
   Input Fields - All Types
   ============================================ */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="time"],
input[type="week"],
textarea,
select {
	font-family: var(--ufs-font-family) !important;
	font-size: var(--ufs-font-size) !important;
	line-height: var(--ufs-line-height) !important;
	color: var(--ufs-text-color) !important;
	background-color: var(--ufs-bg-color) !important;
	border: 1px solid var(--ufs-border-color) !important;
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	transition: all 0.2s ease-in-out !important;
	box-shadow: var(--ufs-shadow) !important;
}

/* Focus States */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
textarea:focus,
select:focus {
	outline: none !important;
	border-color: var(--ufs-border-focus) !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1) !important;
}

/* Placeholder Styling */
input::placeholder,
textarea::placeholder {
	color: var(--ufs-text-light) !important;
	opacity: 0.7 !important;
}

/* ============================================
   Disabled Input Fields
   ============================================ */
input[type="text"]:disabled,
input[type="email"]:disabled,
input[type="password"]:disabled,
input[type="number"]:disabled,
input[type="tel"]:disabled,
input[type="url"]:disabled,
input[type="search"]:disabled,
input[type="date"]:disabled,
input[type="datetime-local"]:disabled,
input[type="month"]:disabled,
input[type="time"]:disabled,
input[type="week"]:disabled,
textarea:disabled,
select:disabled,
input[type="file"]:disabled {
	background-color: #f1f5f9 !important;
	color: #94a3b8 !important;
	border-color: #cbd5e1 !important;
	cursor: not-allowed !important;
	opacity: 0.6 !important;
	box-shadow: none !important;
}

input[type="text"]:disabled::placeholder,
input[type="email"]:disabled::placeholder,
input[type="password"]:disabled::placeholder,
textarea:disabled::placeholder {
	color: #cbd5e1 !important;
	opacity: 1 !important;
}

select:disabled {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
	cursor: not-allowed !important;
}

input[type="checkbox"]:disabled,
input[type="radio"]:disabled {
	background-color: #f1f5f9 !important;
	border-color: #cbd5e1 !important;
	cursor: not-allowed !important;
	opacity: 0.6 !important;
}

input[type="checkbox"]:disabled + label,
input[type="radio"]:disabled + label {
	color: #94a3b8 !important;
	cursor: not-allowed !important;
	opacity: 0.6 !important;
}

button:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled {
	background-color: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: not-allowed !important;
	opacity: 0.6 !important;
	box-shadow: none !important;
	transform: none !important;
}

button:disabled:hover,
input[type="submit"]:disabled:hover,
input[type="button"]:disabled:hover {
	background-color: #cbd5e1 !important;
	box-shadow: none !important;
	transform: none !important;
}

/* ============================================
   Readonly Input Fields
   ============================================ */
input[type="text"][readonly],
input[type="email"][readonly],
input[type="password"][readonly],
input[type="number"][readonly],
input[type="tel"][readonly],
input[type="url"][readonly],
input[type="search"][readonly],
input[type="date"][readonly],
input[type="datetime-local"][readonly],
input[type="month"][readonly],
input[type="time"][readonly],
input[type="week"][readonly],
textarea[readonly],
select[readonly] {
	background-color: #f8fafc !important;
	background-image: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 10px,
		rgba(203, 213, 225, 0.1) 10px,
		rgba(203, 213, 225, 0.1) 20px
	) !important;
	color: var(--ufs-text-color) !important;
	border-color: #cbd5e1 !important;
	border-style: solid !important;
	cursor: default !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	opacity: 0.85 !important;
}

input[type="text"][readonly]:focus,
input[type="email"][readonly]:focus,
input[type="password"][readonly]:focus,
input[type="number"][readonly]:focus,
input[type="tel"][readonly]:focus,
input[type="url"][readonly]:focus,
input[type="search"][readonly]:focus,
input[type="date"][readonly]:focus,
input[type="datetime-local"][readonly]:focus,
input[type="month"][readonly]:focus,
input[type="time"][readonly]:focus,
input[type="week"][readonly]:focus,
textarea[readonly]:focus,
select[readonly]:focus {
	border-color: #cbd5e1 !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	outline: none !important;
}

input[type="text"][readonly]::placeholder,
input[type="email"][readonly]::placeholder,
input[type="password"][readonly]::placeholder,
textarea[readonly]::placeholder {
	color: #94a3b8 !important;
	opacity: 0.8 !important;
}

select[readonly] {
	background-image: 
		repeating-linear-gradient(
			45deg,
			transparent,
			transparent 10px,
			rgba(203, 213, 225, 0.1) 10px,
			rgba(203, 213, 225, 0.1) 20px
		),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
	background-position: right 16px center !important;
	cursor: default !important;
}

/* Readonly wrapper indicator (for form plugins that wrap readonly inputs) */
.gfield_readonly input,
.elementor-field-readonly input,
.wpforms-field-readonly input {
	background-color: #f8fafc !important;
	background-image: repeating-linear-gradient(
		45deg,
		transparent,
		transparent 10px,
		rgba(203, 213, 225, 0.1) 10px,
		rgba(203, 213, 225, 0.1) 20px
	) !important;
	color: var(--ufs-text-color) !important;
	border-color: #cbd5e1 !important;
	cursor: default !important;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	opacity: 0.85 !important;
}

/* ============================================
   Textarea Specific
   ============================================ */
textarea {
	min-height: 120px !important;
	resize: vertical !important;
}

/* ============================================
   Select Dropdowns
   ============================================ */
select {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	padding-right: 40px !important;
	cursor: pointer !important;
}

/* Hide default dropdown arrow in all browsers */
select::-ms-expand {
	display: none !important;
}

select::-webkit-appearance {
	-webkit-appearance: none !important;
}

/* Remove any additional icons that might be added by themes/plugins */
select option {
	background-image: none !important;
}

/* Ensure no duplicate icons */
.gform_wrapper select,
.elementor-form select,
.wpforms-form select,
.wpcf7-form select,
.ufbl-front-form select,
form.wpdm-form select {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
}

/* ============================================
   File Input Fields
   ============================================ */
input[type="file"] {
	font-family: var(--ufs-font-family) !important;
	font-size: var(--ufs-font-size) !important;
	color: var(--ufs-text-color) !important;
	padding: 12px 16px !important;
	border: 2px dashed var(--ufs-border-color) !important;
	border-radius: var(--ufs-radius) !important;
	background-color: var(--ufs-bg-light) !important;
	cursor: pointer !important;
	transition: all 0.2s ease-in-out !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

input[type="file"]:hover {
	border-color: var(--ufs-secondary-color) !important;
	background-color: var(--ufs-bg-color) !important;
}

input[type="file"]:focus {
	outline: none !important;
	border-color: var(--ufs-border-focus) !important;
	border-style: solid !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1) !important;
	background-color: var(--ufs-bg-color) !important;
}

input[type="file"]::file-selector-button {
	font-family: var(--ufs-font-family) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	color: var(--ufs-text-color) !important;
	background-color: var(--ufs-bg-light) !important;
	border: 1px solid var(--ufs-border-color) !important;
	border-radius: var(--ufs-radius-sm) !important;
	padding: 6px 12px !important;
	margin-right: 12px !important;
	cursor: pointer !important;
	transition: all 0.2s ease-in-out !important;
}

input[type="file"]::file-selector-button:hover {
	background-color: var(--ufs-border-color) !important;
	border-color: var(--ufs-secondary-color) !important;
}

input[type="file"]::file-selector-button:active {
	transform: translateY(1px) !important;
	box-shadow: var(--ufs-shadow) !important;
}

/* Webkit browsers (Chrome, Safari, Edge) */
input[type="file"]::-webkit-file-upload-button {
	font-family: var(--ufs-font-family) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	color: var(--ufs-text-color) !important;
	background-color: var(--ufs-bg-light) !important;
	border: 1px solid var(--ufs-border-color) !important;
	border-radius: var(--ufs-radius-sm) !important;
	padding: 6px 12px !important;
	margin-right: 12px !important;
	cursor: pointer !important;
	transition: all 0.2s ease-in-out !important;
}

input[type="file"]::-webkit-file-upload-button:hover {
	background-color: var(--ufs-border-color) !important;
	border-color: var(--ufs-secondary-color) !important;
}

/* ============================================
   Buttons - All Types
   ============================================ */
input[type="submit"],
input[type="button"],
button[type="submit"],
button[type="button"],
.wp-block-button__link,
.gform_button,
.ufbl-form-submit,
.elementor-button,
.wpforms-submit-container button,
.wpcf7-submit,
.wpdm-submit-btn,
.submit-btn {
	font-family: var(--ufs-font-family) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	color: #ffffff !important;
	background-color: var(--ufs-primary-color) !important;
	border: none !important;
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
	cursor: pointer !important;
	transition: all 0.2s ease-in-out !important;
	box-shadow: var(--ufs-shadow-md) !important;
	text-decoration: none !important;
	display: inline-block !important;
	text-align: center !important;
	width: auto !important;
	min-width: 140px !important;
}

/* Button Hover States */
input[type="submit"]:hover,
input[type="button"]:hover,
button[type="submit"]:hover,
button[type="button"]:hover,
.wp-block-button__link:hover,
.gform_button:hover,
.ufbl-form-submit:hover,
.elementor-button:hover,
.wpforms-submit-container button:hover,
.wpcf7-submit:hover,
.wpdm-submit-btn:hover,
.submit-btn:hover {
	background-color: var(--ufs-primary-hover) !important;
	box-shadow: var(--ufs-shadow-lg) !important;
	transform: translateY(-1px) !important;
}

/* Button Active States */
input[type="submit"]:active,
input[type="button"]:active,
button[type="submit"]:active,
button[type="button"]:active,
.wp-block-button__link:active,
.gform_button:active,
.ufbl-form-submit:active,
.elementor-button:active,
.wpforms-submit-container button:active,
.wpcf7-submit:active,
.wpdm-submit-btn:active,
.submit-btn:active {
	transform: translateY(0) !important;
	box-shadow: var(--ufs-shadow) !important;
}

/* ============================================
   Labels
   ============================================ */
label,
.ufbl-form-field > label,
.gfield_label,
.elementor-field-label,
.wpforms-field-label,
.wpcf7-form label,
.wpdm-form label {
	font-family: var(--ufs-font-family) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--ufs-text-color) !important;
	margin-bottom: 8px !important;
	display: block !important;
	line-height: 1.5 !important;
}

/* Required Field Indicators */
label .required,
.gfield_label .gfield_required,
.elementor-field-label .elementor-mark-required,
.wpforms-field-label .wpforms-required-label {
	color: var(--ufs-error-color) !important;
	margin-left: 4px !important;
}

/* ============================================
   Checkboxes and Radio Buttons
   ============================================ */
input[type="checkbox"],
input[type="radio"] {
	width: 22px !important;
	height: 22px !important;
	border-radius: var(--ufs-radius-sm) !important;
	border: 2px solid var(--ufs-border-color) !important;
	accent-color: var(--ufs-primary-color) !important;
	cursor: pointer !important;
	margin-right: 10px !important;
	vertical-align: middle !important;
	transition: all 0.2s ease-in-out !important;
	background-color: var(--ufs-bg-color) !important;
	position: relative !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
}

input[type="radio"] {
	border-radius: 50% !important;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
	background-color: var(--ufs-primary-color) !important;
	border-color: var(--ufs-primary-color) !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1) !important;
}

input[type="checkbox"]:checked::before {
	content: "✓" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	color: #ffffff !important;
	font-size: 14px !important;
	font-weight: bold !important;
	line-height: 1 !important;
}

input[type="radio"]:checked::before {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	width: 10px !important;
	height: 10px !important;
	border-radius: 50% !important;
	background-color: #ffffff !important;
}

input[type="checkbox"]:hover,
input[type="radio"]:hover {
	border-color: var(--ufs-primary-light) !important;
	box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.1) !important;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
	outline: none !important;
	border-color: var(--ufs-primary-color) !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.2) !important;
}

/* Checkbox/Radio Labels */
input[type="checkbox"] + label,
input[type="radio"] + label,
.ufbl-form-field label,
.gchoice_label,
.elementor-field-type-checkbox label,
.elementor-field-type-radio label {
	font-weight: 400 !important;
	margin-left: 0 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
}

/* ============================================
   Form Wrappers
   ============================================ */
.ufbl-form-wrapper,
.gform_wrapper,
.elementor-form,
.wpforms-container,
.wpcf7-form,
form.wpdm-form {
	background-color: transparent !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin: 0 !important;
}

/* ============================================
   Form Fields/Input Groups
   ============================================ */
.ufbl-form-field-wrap,
.gfield,
.elementor-field-group,
.wpforms-field,
.wpcf7-form-control-wrap,
.wpdm-form-group {
	margin-bottom: 24px !important;
}

/* ============================================
   Error Messages
   ============================================ */
.ufbl-error,
.gfield_description.validation_message,
.elementor-message.elementor-message-danger,
.wpforms-error,
.wpcf7-not-valid-tip,
.wpdm-error {
	color: var(--ufs-error-color) !important;
	font-size: 14px !important;
	margin-top: 8px !important;
	display: block !important;
	font-weight: 500 !important;
}

/* Error Field Styling */
input.error,
input.wpforms-error,
input.wpcf7-not-valid,
.gfield_error input,
.elementor-field-group.elementor-field-type-text input.error {
	border-color: var(--ufs-error-color) !important;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* File input in error state */
input[type="file"].error,
input[type="file"].wpforms-error,
input[type="file"].wpcf7-not-valid {
	border-color: var(--ufs-error-color) !important;
	border-style: solid !important;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* ============================================
   Success Messages
   ============================================ */
.ufbl-success-message,
.gform_confirmation_message,
.elementor-message.elementor-message-success,
.wpforms-confirmation-container,
.wpcf7-mail-sent-ok {
	background-color: rgba(16, 185, 129, 0.1) !important;
	color: var(--ufs-success-color) !important;
	border: 1px solid var(--ufs-success-color) !important;
	border-radius: var(--ufs-radius) !important;
	padding: 16px !important;
	margin: 16px 0 !important;
	font-weight: 500 !important;
}

/* ============================================
   Form Titles
   ============================================ */
.ufbl-form-title,
.gform_title,
.elementor-form-title,
.wpforms-title,
h2.form-title,
h3.form-title {
	font-family: var(--ufs-font-family) !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--ufs-text-color) !important;
	margin-bottom: 24px !important;
	line-height: 1.3 !important;
}

/* ============================================
   Gravity Forms Specific
   ============================================ */
.gform_wrapper .gfield input[type="text"],
.gform_wrapper .gfield input[type="email"],
.gform_wrapper .gfield input[type="password"],
.gform_wrapper .gfield textarea,
.gform_wrapper .gfield select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

.gform_wrapper .gform_button {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* Gravity Forms Description/Info Box - Default styling for simple descriptions */
.gform_wrapper .gfield_description:not(.gfield_description_info):not(.validation_message):not(.gfield_validation_message),
.gform_wrapper .gfield_instruction:not(.gfield_description_info),
.gform_wrapper .gform_description {
	font-family: var(--ufs-font-family) !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: var(--ufs-text-light) !important;
	margin-top: 6px !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
	font-weight: 400 !important;
}

/* Gravity Forms Info Box with background (orange dashed border, 10% opacity background, orange text) */
.gform_wrapper .gfield_description.gfield_description_info,
.gform_wrapper .gfield_html.gfield_html_info,
.gform_wrapper .gfield--type-html,
.gform_wrapper .gfield_html {
	font-family: var(--ufs-font-family) !important;
	font-size: 14px !important;
	color: var(--ufs-primary-color) !important;
	padding: 12px 16px !important;
	border: 2px dashed var(--ufs-primary-color) !important;
	border-radius: var(--ufs-radius) !important;
	background-color: rgba(249, 115, 22, 0.1) !important;
	cursor: default !important;
	transition: all 0.2s ease-in-out !important;
	width: 100% !important;
	box-sizing: border-box !important;
	margin-top: 8px !important;
	margin-bottom: 16px !important;
	line-height: 1.6 !important;
	font-weight: 400 !important;
}

/* Ensure text inside info boxes is orange */
.gform_wrapper .gfield_html p,
.gform_wrapper .gfield_html div,
.gform_wrapper .gfield_html span,
.gform_wrapper .gfield_description.gfield_description_info p,
.gform_wrapper .gfield_description.gfield_description_info div,
.gform_wrapper .gfield_description.gfield_description_info span {
	color: var(--ufs-primary-color) !important;
	font-family: var(--ufs-font-family) !important;
	line-height: 1.6 !important;
}

/* Hover state for info boxes */
.gform_wrapper .gfield_description.gfield_description_info:hover,
.gform_wrapper .gfield_html:hover,
.gform_wrapper .gfield--type-html:hover {
	border-color: var(--ufs-primary-hover) !important;
	background-color: rgba(249, 115, 22, 0.15) !important;
}

/* Focus state for info boxes (if they become focusable) */
.gform_wrapper .gfield_description.gfield_description_info:focus,
.gform_wrapper .gfield_html:focus,
.gform_wrapper .gfield--type-html:focus {
	outline: none !important;
	border-color: var(--ufs-primary-color) !important;
	border-style: solid !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1) !important;
	background-color: rgba(249, 115, 22, 0.1) !important;
}

/* Gravity Forms Section Titles */
.gform_wrapper .gfield_section_title {
	font-family: var(--ufs-font-family) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	color: var(--ufs-text-color) !important;
	margin-top: 24px !important;
	margin-bottom: 16px !important;
	padding-bottom: 8px !important;
	border-bottom: 2px solid var(--ufs-border-color) !important;
}

/* ============================================
   AIO Icon Component (no dashed border, padding, grey background, thick left border)
   ============================================ */
.aio-icon-component {
	font-family: var(--ufs-font-family) !important;
	padding: 16px 20px !important;
	border: none !important;
	border-left: 4px solid var(--ufs-secondary-color) !important;
	border-radius: var(--ufs-radius) !important;
	background-color: rgba(148, 163, 184, 0.1) !important;
	transition: all 0.2s ease-in-out !important;
	box-sizing: border-box !important;
	margin-top: 0 !important;
}

.aio-icon-component .aio-icon-box {
	border: none !important;
	border-style: none !important;
	border-width: 0 !important;
	background-color: transparent !important;
}

.aio-icon-component:hover {
	background-color: rgba(148, 163, 184, 0.15) !important;
}

.aio-icon-component .aio-icon-description,
.aio-icon-component .aio-icon-header,
.aio-icon-component .aio-icon-title,
.aio-icon-component p,
.aio-icon-component div,
.aio-icon-component span,
.aio-icon-component b {
	font-family: var(--ufs-font-family) !important;
	line-height: 1.6 !important;
	color: var(--ufs-text-color) !important;
}

.aio-icon-component .aio-icon-title {
	font-size: 16px !important;
	font-weight: 600 !important;
	margin-bottom: 8px !important;
}

.aio-icon-component .aio-icon-description {
	font-size: 14px !important;
	margin-top: 8px !important;
	text-align: left !important;
}

.aio-icon-component .aio-icon-description b {
	font-weight: 600 !important;
}

/* Gravity Forms HTML Content Fields */
.gform_wrapper .gfield_html p,
.gform_wrapper .gfield_html div,
.gform_wrapper .gfield_html span {
	font-family: var(--ufs-font-family) !important;
	color: var(--ufs-text-color) !important;
	line-height: 1.6 !important;
}

/* Gravity Forms Validation Messages (keep error styling) */
.gform_wrapper .gfield_description.validation_message,
.gform_wrapper .gfield_validation_message {
	color: var(--ufs-error-color) !important;
	font-size: 14px !important;
	margin-top: 8px !important;
	font-weight: 500 !important;
	background-color: transparent !important;
	border: none !important;
	padding: 0 !important;
}

/* ============================================
   Ultimate Form Builder Specific
   ============================================ */
.ufbl-front-form input[type="text"],
.ufbl-front-form input[type="email"],
.ufbl-front-form input[type="password"],
.ufbl-front-form textarea,
.ufbl-front-form select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

.ufbl-form-submit {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* ============================================
   Elementor Forms Specific
   ============================================ */
.elementor-form .elementor-field-group input[type="text"],
.elementor-form .elementor-field-group input[type="email"],
.elementor-form .elementor-field-group input[type="password"],
.elementor-form .elementor-field-group textarea,
.elementor-form .elementor-field-group select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

.elementor-form .elementor-button {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* ============================================
   Contact Form 7 Specific
   ============================================ */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea,
.wpcf7-form select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

.wpcf7-submit {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* ============================================
   WPForms Specific
   ============================================ */
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="password"],
.wpforms-form textarea,
.wpforms-form select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

.wpforms-submit-container button {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* ============================================
   Download Manager Forms
   ============================================ */
form.wpdm-form input[type="text"],
form.wpdm-form input[type="email"],
form.wpdm-form textarea,
form.wpdm-form select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
}

form.wpdm-form .wpdm-submit-btn {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
}

/* ============================================
   Divi Theme Forms
   ============================================ */
.et_pb_contact_form .input,
.et_pb_contact_form input[type="text"],
.et_pb_contact_form input[type="email"],
.et_pb_contact_form input[type="tel"],
.et_pb_contact_form textarea,
.et_pb_contact_form select,
.et_pb_newsletter_form .input,
.et_pb_newsletter_form input[type="text"],
.et_pb_newsletter_form input[type="email"],
.et_pb_newsletter_form textarea,
.et_pb_newsletter_form select {
	border-radius: var(--ufs-radius) !important;
	padding: 12px 16px !important;
	border: 1px solid var(--ufs-border-color) !important;
	background-color: var(--ufs-bg-color) !important;
	color: var(--ufs-text-color) !important;
	font-family: var(--ufs-font-family) !important;
	font-size: var(--ufs-font-size) !important;
	box-shadow: var(--ufs-shadow) !important;
}

.et_pb_contact_form .input:focus,
.et_pb_contact_form input[type="text"]:focus,
.et_pb_contact_form input[type="email"]:focus,
.et_pb_contact_form input[type="tel"]:focus,
.et_pb_contact_form textarea:focus,
.et_pb_contact_form select:focus,
.et_pb_newsletter_form .input:focus,
.et_pb_newsletter_form input[type="text"]:focus,
.et_pb_newsletter_form input[type="email"]:focus,
.et_pb_newsletter_form textarea:focus,
.et_pb_newsletter_form select:focus {
	border-color: var(--ufs-border-focus) !important;
	box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1) !important;
	outline: none !important;
}

.et_pb_contact_form .et_pb_button,
.et_pb_newsletter_form .et_pb_button,
.et_pb_contact_form input[type="submit"],
.et_pb_newsletter_form input[type="submit"] {
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
	background-color: var(--ufs-primary-color) !important;
	color: #ffffff !important;
	font-family: var(--ufs-font-family) !important;
	font-weight: 600 !important;
	border: none !important;
	box-shadow: var(--ufs-shadow-md) !important;
	transition: all 0.2s ease-in-out !important;
}

.et_pb_contact_form .et_pb_button:hover,
.et_pb_newsletter_form .et_pb_button:hover,
.et_pb_contact_form input[type="submit"]:hover,
.et_pb_newsletter_form input[type="submit"]:hover {
	background-color: var(--ufs-primary-hover) !important;
	box-shadow: var(--ufs-shadow-lg) !important;
	transform: translateY(-1px) !important;
}

.et_pb_contact_field label,
.et_pb_newsletter_form label {
	font-family: var(--ufs-font-family) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--ufs-text-color) !important;
	margin-bottom: 8px !important;
}

/* ============================================
   Responsive Design
   ============================================ */
@media (max-width: 768px) {
	.ufbl-form-wrapper,
	.gform_wrapper,
	.elementor-form,
	.wpforms-container,
	.wpcf7-form,
	form.wpdm-form {
		padding: 0 !important;
	}
	
	input[type="text"],
	input[type="email"],
	input[type="password"],
	input[type="number"],
	input[type="tel"],
	input[type="url"],
	textarea,
	select {
		font-size: 16px !important; /* Prevents zoom on iOS */
	}
	
	input[type="submit"],
	button[type="submit"],
	.gform_button,
	.ufbl-form-submit,
	.elementor-button,
	.wpforms-submit-container button,
	.wpcf7-submit {
		width: 100% !important;
		padding: 16px 28px !important;
	}
}

/* ============================================
   Accessibility Improvements
   ============================================ */
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible,
input[type="file"]:focus-visible {
	outline: 2px solid var(--ufs-primary-color) !important;
	outline-offset: 2px !important;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	:root {
		--ufs-border-color: #000000;
		--ufs-text-color: #000000;
	}
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		animation: none !important;
	}
}

/* ============================================
   Admin/Backend - Exclude from styling
   ============================================ */
/* No admin styling - keep admin interface unchanged */

/* ============================================
   Atlas Mobile Verification Button
   ============================================ */
.w3eden {
	display: block !important;
	visibility: visible !important;
	margin: 12px 0 !important;
}

.w3eden .verify,
.w3eden .btn-secondary,
.w3eden a.verify {
	display: inline-block !important;
	visibility: visible !important;
	opacity: 1 !important;
	font-family: var(--ufs-font-family) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	color: #ffffff !important;
	background-color: var(--ufs-primary-color) !important;
	border: none !important;
	border-radius: var(--ufs-radius) !important;
	padding: 14px 28px !important;
	cursor: pointer !important;
	transition: all 0.2s ease-in-out !important;
	box-shadow: var(--ufs-shadow-md) !important;
	text-decoration: none !important;
	text-align: center !important;
	width: auto !important;
	min-width: 140px !important;
}

.w3eden .verify:hover,
.w3eden .btn-secondary:hover,
.w3eden a.verify:hover {
	background-color: var(--ufs-primary-hover) !important;
	box-shadow: var(--ufs-shadow-lg) !important;
	transform: translateY(-1px) !important;
	color: #ffffff !important;
	text-decoration: none !important;
}

.w3eden .verify:active,
.w3eden .btn-secondary:active,
.w3eden a.verify:active {
	transform: translateY(0) !important;
	box-shadow: var(--ufs-shadow) !important;
}

.w3eden .verify:focus,
.w3eden .btn-secondary:focus,
.w3eden a.verify:focus {
	outline: 2px solid var(--ufs-primary-color) !important;
	outline-offset: 2px !important;
}

/* Verification Button Loading State */
.w3eden .verify.verifying,
.w3eden .btn-secondary.verifying,
.w3eden a.verify.verifying {
	position: relative !important;
	color: transparent !important;
	pointer-events: none !important;
	opacity: 0.7 !important;
}

.w3eden .verify.verifying::after,
.w3eden .btn-secondary.verifying::after,
.w3eden a.verify.verifying::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	width: 20px !important;
	height: 20px !important;
	border: 3px solid rgba(255, 255, 255, 0.3) !important;
	border-top-color: #ffffff !important;
	border-radius: 50% !important;
	animation: spin 0.8s linear infinite !important;
}

@keyframes spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}

/* Mobile Input Field - Error State (Red Border) */
input.verification-error,
input.atlas-verification-error,
#input_54_1.verification-error,
#input_55_1.verification-error,
#input_64_27.verification-error,
#input_66_10.verification-error,
#input_70_25.verification-error,
#input_14_25.verification-error {
	border-color: var(--ufs-error-color) !important;
	border-width: 2px !important;
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
	background-color: #fff5f5 !important;
}

/* Mobile Input Field - Success State (Green Border) */
input.verification-success,
input.atlas-verification-success,
input.found,
#input_54_1.verification-success,
#input_55_1.verification-success,
#input_64_27.verification-success,
#input_66_10.verification-success,
#input_70_25.verification-success,
#input_14_25.verification-success,
#input_54_1.found,
#input_55_1.found,
#input_64_27.found,
#input_66_10.found,
#input_70_25.found,
#input_14_25.found {
	border-color: var(--ufs-success-color) !important;
	border-width: 2px !important;
	box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1) !important;
	background-color: #f0fdf4 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%2310b981'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M10 3L4.5 8.5L2 6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right calc(.375em + .1875rem) center !important;
	background-size: calc(.75em + .375rem) calc(.75em + .375rem) !important;
	padding-right: calc(1.5em + .75rem) !important;
}

/* Validation Messages */
.w3eden + .validation-message,
.w3eden .validation-message {
	display: block !important;
	margin-top: 8px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	padding: 8px 12px !important;
	border-radius: var(--ufs-radius-sm) !important;
}

.w3eden + .validation-message[style*="color: #198754"],
.w3eden .validation-message[style*="color: #198754"] {
	color: var(--ufs-success-color) !important;
	background-color: rgba(16, 185, 129, 0.1) !important;
	border: 1px solid var(--ufs-success-color) !important;
}

.w3eden + .validation-message[style*="color: #dc3545"],
.w3eden .validation-message[style*="color: #dc3545"] {
	color: var(--ufs-error-color) !important;
	background-color: rgba(239, 68, 68, 0.1) !important;
	border: 1px solid var(--ufs-error-color) !important;
}

/* ============================================
   Exclude from Divi Builder and Admin
   ============================================ */
/* Disable ALL unified form styling in Divi builder (et-fb, et-bfb, et-db) */
body.et-fb .gform_wrapper,
body.et-fb .gform_wrapper *,
body.et-bfb .gform_wrapper,
body.et-bfb .gform_wrapper *,
body.et-db.et-fb .gform_wrapper,
body.et-db.et-fb .gform_wrapper *,
body.et-db.et-bfb .gform_wrapper,
body.et-db.et-bfb .gform_wrapper *,
body.et-fb .gform_wrapper input[type="text"],
body.et-fb .gform_wrapper input[type="email"],
body.et-fb .gform_wrapper input[type="password"],
body.et-fb .gform_wrapper input[type="number"],
body.et-fb .gform_wrapper input[type="tel"],
body.et-bfb .gform_wrapper input[type="text"],
body.et-bfb .gform_wrapper input[type="email"],
body.et-bfb .gform_wrapper input[type="password"],
body.et-bfb .gform_wrapper input[type="number"],
body.et-bfb .gform_wrapper input[type="tel"],
body.et-fb .gform_wrapper textarea,
body.et-bfb .gform_wrapper textarea,
body.et-fb .gform_wrapper select,
body.et-bfb .gform_wrapper select,
body.et-fb .gform_wrapper button,
body.et-bfb .gform_wrapper button,
body.et-fb .gform_wrapper .gform_button,
body.et-bfb .gform_wrapper .gform_button,
body.et-fb .gform_wrapper label,
body.et-bfb .gform_wrapper label,
body.et-fb .gform_wrapper .gfield_label,
body.et-bfb .gform_wrapper .gfield_label,
body.et-fb .gform_wrapper .gfield,
body.et-bfb .gform_wrapper .gfield,
body.et-fb .gform_wrapper .gfield *,
body.et-bfb .gform_wrapper .gfield *,
body.et-fb .gform_wrapper .gfield_description,
body.et-bfb .gform_wrapper .gfield_description,
body.et-fb .gform_wrapper .gform_title,
body.et-bfb .gform_wrapper .gform_title,
body.et-fb form,
body.et-bfb form,
body.et-fb form input,
body.et-bfb form input,
body.et-fb form textarea,
body.et-bfb form textarea,
body.et-fb form select,
body.et-bfb form select,
body.et-fb form button,
body.et-bfb form button {
	all: revert !important;
	font-family: unset !important;
	font-size: unset !important;
	line-height: unset !important;
	color: unset !important;
	background-color: unset !important;
	background-image: unset !important;
	border: unset !important;
	border-radius: unset !important;
	border-color: unset !important;
	border-width: unset !important;
	border-style: unset !important;
	padding: unset !important;
	margin: unset !important;
	box-shadow: unset !important;
	transition: unset !important;
	width: unset !important;
	box-sizing: unset !important;
	appearance: unset !important;
	-webkit-appearance: unset !important;
	-moz-appearance: unset !important;
}

/* Disable ALL unified form styling in WordPress admin */
body.wp-admin .gform_wrapper,
body.wp-admin .gform_wrapper *,
body.wp-admin .gform_wrapper input[type="text"],
body.wp-admin .gform_wrapper input[type="email"],
body.wp-admin .gform_wrapper input[type="password"],
body.wp-admin .gform_wrapper input[type="number"],
body.wp-admin .gform_wrapper input[type="tel"],
body.wp-admin .gform_wrapper textarea,
body.wp-admin .gform_wrapper select,
body.wp-admin .gform_wrapper button,
body.wp-admin .gform_wrapper .gform_button,
body.wp-admin .gform_wrapper label,
body.wp-admin .gform_wrapper .gfield_label,
body.wp-admin .gform_wrapper .gfield,
body.wp-admin .gform_wrapper .gfield *,
body.wp-admin .gform_wrapper .gfield_description,
body.wp-admin .gform_wrapper .gform_title,
body.wp-admin form,
body.wp-admin form input,
body.wp-admin form textarea,
body.wp-admin form select,
body.wp-admin form button {
	font-family: unset !important;
	font-size: unset !important;
	line-height: unset !important;
	color: unset !important;
	background-color: unset !important;
	background-image: unset !important;
	border: unset !important;
	border-radius: unset !important;
	border-color: unset !important;
	border-width: unset !important;
	border-style: unset !important;
	padding: unset !important;
	margin: unset !important;
	box-shadow: unset !important;
	transition: unset !important;
	width: unset !important;
	box-sizing: unset !important;
	appearance: unset !important;
	-webkit-appearance: unset !important;
	-moz-appearance: unset !important;
}

