/**
 * Gravity Forms — Evolva contact form design overrides.
 * Loaded via public-style.css after theme + GF styles.
 */

.contact-form .gform_wrapper,
.contact-form .gform_wrapper.gravity-theme,
.contact-form .gform_wrapper.gform-theme--framework,
.contact-form .gform-theme {
	--gf-ctrl-border-color: transparent !important;
	--gf-ctrl-border-color-focus: transparent !important;
	--gf-ctrl-border-radius: 0 !important;
	--gf-ctrl-bg-color: transparent !important;
	--gf-ctrl-shadow: none !important;
	--gf-ctrl-size-padding-x: 0 !important;
	--gf-ctrl-size-padding-y: 0.85rem !important;
	--gf-field-gap-x: 1.25rem !important;
	--gf-field-gap-y: 1.25rem !important;
	--gf-form-gap-y: 1.25rem !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	max-width: none !important;
	width: 100% !important;
}

.contact-form .gform_wrapper *,
.contact-form .gform_wrapper *::before,
.contact-form .gform_wrapper *::after {
	box-sizing: border-box;
}

.contact-form .gform_heading,
.contact-form .gform_title,
.contact-form .gform_description,
.contact-form .gform_required_legend,
.contact-form .gform_validation_errors,
.contact-form .gform_submission_error,
.contact-form .gfield_required,
.contact-form .gfield_required_legend {
	display: none !important;
}

.contact-form .gform_body,
.contact-form form {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

.contact-form .gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	column-gap: 1.25rem !important;
	row-gap: 1.25rem !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100% !important;
}

.contact-form .gfield,
.contact-form .gform_fields > li,
.contact-form .gform_fields > .gfield {
	display: block !important;
	float: none !important;
	clear: both !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

.contact-form .gfield--width-half,
.contact-form .gfield.gfield--width-half,
.contact-form .gfield.gf_left_half,
.contact-form .gfield.gf_right_half {
	grid-column: span 1 !important;
	width: 100% !important;
}

/* Hide field labels — use placeholders (except file upload) */
.contact-form .gfield > .gfield_label,
.contact-form .gfield .gfield_label,
.contact-form .gfield .gform-field-label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.contact-form .gfield--type-fileupload > .gfield_label,
.contact-form .gfield--type-fileupload .gfield_label,
.contact-form .gfield--type-file > .gfield_label {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 0 0.45rem !important;
	clip: auto !important;
	overflow: visible !important;
	white-space: normal !important;
	display: block !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	color: #667085 !important;
}

.contact-form .ginput_container {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Name field (First / Last) */
.contact-form .ginput_container_name,
.contact-form .ginput_complex.ginput_container_name,
.contact-form .ginput_complex {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 1.25rem !important;
	width: 100% !important;
	max-width: 100% !important;
}

.contact-form .ginput_complex > span,
.contact-form .ginput_container_name > span,
.contact-form .name_first,
.contact-form .name_last,
.contact-form .name_middle {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

.contact-form .ginput_complex label,
.contact-form .ginput_container_name label,
.contact-form .name_first label,
.contact-form .name_last label {
	display: none !important;
}

/* Phone */
.contact-form .ginput_container_phone {
	display: block !important;
	width: 100% !important;
}

.contact-form .ginput_container_phone .ginput_address_country,
.contact-form .ginput_container_phone span {
	width: 100% !important;
	display: block !important;
}

/* All controls full width underline style */
.contact-form .gform_wrapper input[type="text"],
.contact-form .gform_wrapper input[type="email"],
.contact-form .gform_wrapper input[type="tel"],
.contact-form .gform_wrapper input[type="url"],
.contact-form .gform_wrapper input[type="number"],
.contact-form .gform_wrapper input[type="password"],
.contact-form .gform_wrapper select,
.contact-form .gform_wrapper textarea,
.contact-form .gfield input[type="text"],
.contact-form .gfield input[type="email"],
.contact-form .gfield input[type="tel"],
.contact-form .gfield input[type="url"],
.contact-form .gfield input[type="number"],
.contact-form .gfield select,
.contact-form .gfield textarea,
.contact-form .name_first input,
.contact-form .name_last input {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	padding: 0.85rem 0 !important;
	margin: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(16, 24, 40, 0.18) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	color: #101828 !important;
	font-family: inherit !important;
	font-size: 0.95rem !important;
	line-height: 1.5 !important;
	height: auto !important;
	min-height: 0 !important;
}

.contact-form .gfield input::placeholder,
.contact-form .gfield textarea::placeholder,
.contact-form .name_first input::placeholder,
.contact-form .name_last input::placeholder {
	color: #667085 !important;
	opacity: 1 !important;
}

.contact-form .gfield select,
.contact-form .gform_wrapper select {
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	padding-right: 1.5rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23667085' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.15rem center !important;
	background-color: transparent !important;
}

.contact-form .gfield input:focus,
.contact-form .gfield select:focus,
.contact-form .gfield textarea:focus,
.contact-form .name_first input:focus,
.contact-form .name_last input:focus {
	border-bottom-color: #2f5be8 !important;
	box-shadow: none !important;
}

.contact-form .gfield textarea,
.contact-form .gform_wrapper textarea {
	resize: vertical !important;
	min-height: 72px !important;
	height: 72px !important;
	padding-top: 0.5rem !important;
	padding-bottom: 0.5rem !important;
}

/* File upload */
.contact-form .gfield--type-fileupload,
.contact-form .gfield--type-fileupload .ginput_container,
.contact-form .gfield--type-fileupload .gform_fileupload_rules {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.contact-form .gfield input[type="file"] {
	width: 100% !important;
	padding: 0.55rem 0 !important;
	border: none !important;
	border-bottom: none !important;
	font-size: 0.88rem !important;
	color: #667085 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.contact-form .gfield_description,
.contact-form .gform_fileupload_rules,
.contact-form .gfield .instruction {
	display: block !important;
	margin: 0.45rem 0 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	font-size: 0.75rem !important;
	color: #667085 !important;
	line-height: 1.45 !important;
}

/* Submit */
.contact-form .gform_footer,
.contact-form .gform_page_footer {
	display: block !important;
	width: 100% !important;
	margin: 0.5rem 0 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	grid-column: 1 / -1 !important;
}

.contact-form .gform_button,
.contact-form input[type="submit"].gform_button,
.contact-form .gform_footer input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0.85rem 1.75rem !important;
	border: none !important;
	border-radius: 999px !important;
	background: linear-gradient(135deg, #1a3fad 0%, #2f5be8 50%, #5b8cff 100%) !important;
	background-color: #2f5be8 !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	cursor: pointer !important;
	box-shadow: none !important;
}

.contact-form .gform_button:hover,
.contact-form input[type="submit"].gform_button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(43, 88, 204, 0.35) !important;
}

.contact-form .gfield_validation_message,
.contact-form .validation_message {
	margin-top: 0.35rem !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	font-size: 0.82rem !important;
	color: #d92d20 !important;
}

.contact-form .gfield_error input,
.contact-form .gfield_error select,
.contact-form .gfield_error textarea {
	border-bottom-color: #d92d20 !important;
}

.contact-form .gform_confirmation_message {
	margin: 0 !important;
	padding: 0.5rem 0 0 !important;
	border: none !important;
	background: transparent !important;
	color: #101828 !important;
	font-size: 0.95rem !important;
	line-height: 1.6 !important;
}

@media (max-width: 640px) {
	.contact-form .gform_fields,
	.contact-form .ginput_complex,
	.contact-form .ginput_container_name {
		grid-template-columns: 1fr !important;
	}

	.contact-form .gfield--width-half,
	.contact-form .gfield.gf_left_half,
	.contact-form .gfield.gf_right_half {
		grid-column: 1 / -1 !important;
	}
}

/* Custom contact form dropdown */
.contact-form .gfield--type-select,
.contact-form .gfield--type-select .ginput_container,
.contact-form .ginput_container_select,
.contact-form .ginput_container:has(> .evo-select),
.contact-form .ginput_container:has(select) {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

.contact-form .evo-select {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 100% !important;
}

.contact-form .evo-select select {
	position: absolute !important;
	left: 0 !important;
	top: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	width: 100% !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.contact-form .evo-select__trigger {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 0.75rem !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 0.85rem 0 !important;
	background: transparent !important;
	border: none !important;
	border-bottom: 1px solid rgba(16, 24, 40, 0.18) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: #101828 !important;
	font-family: inherit !important;
	font-size: 0.95rem !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	text-align: left !important;
	cursor: pointer !important;
}

.contact-form .evo-select.is-placeholder .evo-select__label {
	color: #667085;
}

.contact-form .evo-select.is-open .evo-select__trigger {
	border-bottom-color: #2f5be8 !important;
}

.contact-form .evo-select__label {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.contact-form .evo-select__chevron {
	display: inline-flex !important;
	flex: 0 0 auto !important;
	margin-left: auto !important;
	color: #667085;
	transition: transform 0.2s ease;
}

.contact-form .evo-select.is-open .evo-select__chevron {
	transform: rotate(180deg);
	color: #2f5be8;
}

.contact-form .evo-select__list {
	position: absolute;
	top: calc(100% + 0.45rem);
	left: 0;
	right: 0;
	width: 100% !important;
	z-index: 40;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	background: #fff;
	border: 1px solid rgba(16, 24, 40, 0.08);
	border-radius: 14px;
	box-shadow: 0 12px 40px rgba(16, 24, 40, 0.12);
	max-height: 260px;
	overflow-y: auto;
	box-sizing: border-box;
}

.contact-form .evo-select__option {
	padding: 0.7rem 0.85rem;
	border-radius: 10px;
	color: #101828;
	font-size: 0.95rem;
	line-height: 1.35;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.contact-form .evo-select__option:hover {
	background: #eef2ff;
	color: #1a3fad;
}

.contact-form .evo-select__option.is-selected {
	background: linear-gradient(135deg, #1a3fad 0%, #2f5be8 50%, #5b8cff 100%);
	color: #fff;
}

.contact-form .evo-select__option[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
}
