/* --------------------
 * FORM 
 * -------------------- */

body {	
	--cf-horizontal-gap: 1rem;
	--cf-vertical-gap: 1rem;
	
	--cf-field--padding-top: 5px;
	--cf-field--padding-right: 11px;
	--cf-field--padding-bottom: 5px;
	--cf-field--padding-left: 11px;
	--cf-field--border-radius: 0px;
	--cf-field--background-color: var(--df-e-color-Gray-0);
	--cf-field--color: var(--df-e-color-Neutral-100);
	--cf-field--border-width: 2px;
	--cf-field--border-style: solid;
	--cf-field--border-color: var(--df-e-color-Accent-0);
	--cf-field--border-color-hover: var(--df-e-color-Accent-50);
	--cf-field--font-weight: 600;
	--cf-field--height: 48px;
	
	--cf-tip--font-size: 76%;
	--cf-tip--size-scaler: 1.36;
	--cf-tip--background-color: transparent;
	--cf-tip--error--color: #d63637;
	
	--cf-list_item-horizzontal-gap: .8rem;
	--cf-list_item-vertical-gap: .4rem;
	
	--cf-check_radio--border-color: var(--color-gray-400);
	--cf-check_radio--border-color--hover: var(--accent-color);
	
	
	--cf-label--padding-bottom: 0.2rem;

}



.wpcf7-form .elementor-form-fields-wrapper {
 	margin-left: calc( var(--cf-horizontal-gap) / -2 );
	margin-right: calc( var(--cf-horizontal-gap) / -2 );
}
.wpcf7-form .elementor-column {
	padding-left: calc( var(--cf-horizontal-gap) / 2 );
	padding-right: calc( var(--cf-horizontal-gap) / 2 );
}
.wpcf7-form .elementor-field-group:not(:last-child) {
	margin-bottom: var(--cf-vertical-gap);
}

	/* ----- LABEL ----- */
	.wpcf7-form .elementor-labels-above .elementor-field-group > label {
		padding: var(--cf-label--padding-bottom);
	}


	/* ----- FIELDS ----- */
	.wpcf7-form .elementor-field-group {
		align-content: flex-start;
		/*flex-grow: 1;*/
	}
	.wpcf7-form-control-wrap {
		width: 100%;
		position: initial !important;
	}
	/*.wpcf7-form .wpcf7-form-control:is(.wpcf7-acceptance, .wpcf7-file, .wpcf7-checkbox, .wpcf7-radio) {
		margin: var(--cf-field--padding-top) 0 var(--cf-field--padding-bottom) 0;
	}*/
	.wpcf7-form .wpcf7-form-control:not(.elementor-button):hover,
	.wpcf7-form input:not(.elementor-button):hover,
	.wpcf7-form select:hover {
		border-color: var(--cf-field--border-color-hover);
	}
	.wpcf7-form .wpcf7-form-control:focus,
	.wpcf7-form input:focus,
	.wpcf7-form select:focus {
		outline: none;
	}

		/* ---- autocomplete fixes ---- */
		.wpcf7-form input:-webkit-autofill,
		.wpcf7-form input:-webkit-autofill:hover,
		.wpcf7-form input:-webkit-autofill:focus {
			-webkit-text-fill-color: var(--cf-field--color) !important;
    		-webkit-box-shadow: 0 0 0px 40rem var(--cf-field--background-color) inset !important;
		}

	/* ---- textarea ---- */
	.wpcf7-form .wpcf7-field-textarea textarea {
		height: unset;
	}
	
	/* ---- select ---- */
	.wpcf7-form .wpcf7-select {
		
	}
	.wpcf7-form .wpcf7-select[multiple="multiple"] {
		
	}
	.wpcf7-form .wpcf7-select option {
		
	}
	.wpcf7-form .wpcf7-select option:is(:checked) {
		background-color: var( --e-global-color-secondary ) !important;
	}

	/* ---- date ---- */
	.wpcf7-form .wpcf7-date {
  		/*font-weight: var( --cf-field--font-weight );*/
	}

	/* ---- checkboxes | radio | list-item ---- */
	/*
	.wpcf7-form .wpcf7-checkbox,
	.wpcf7-form .wpcf7-radio {
		margin: 0;
		display: flex;
		flex-wrap: wrap;
	}
 	*/
	.wpcf7-form input[type="checkbox"],
	.wpcf7-form input[type="radio"] {
    	
 	}
	.wpcf7-form input[type="checkbox"]:hover,
	.wpcf7-form input[type="radio"]:hover {
    	
 	}
	.wpcf7-form input[type="checkbox"],
	.wpcf7-form input[type="radio"] {
		float: left;
		margin-right: 0;
	}
	.wpcf7-form .wpcf7-list-item > label {
		display: flex !important;
		flex-wrap: nowrap;
		flex-direction: row;
		align-items: flex-start;
	}
	.wpcf7-form .wpcf7-list-item > label > .wpcf7-list-item-label {
		margin-top: -0.2em;
		padding-left: calc(var(--cf-vertical-gap) / 2);
	}
	/*
	.wpcf7-form .elementor-field-group .wpcf7-list-item > label {
		
	}
	.wpcf7-form .elementor-field-group:not(.wpcf7-field-acceptance) .wpcf7-list-item {
		margin-left: var(--cf-list_item-horizzontal-gap);
	}
	* END TODO: Check
	*/

		/* --- row --- 
		 * START TODO: Check
		.wpcf7-form .wpcf7-list-row-direction .wpcf7-checkbox,
		.wpcf7-form .wpcf7-list-row-direction .wpcf7-radio {
			display: flex;
			flex-direction: row;
		}
		.wpcf7-form .wpcf7-list-row-direction .wpcf7-list-item {
			margin-top: var(--cf-list_item-vertical-gap);
		}
		.wpcf7-form .wpcf7-list-row-direction .wpcf7-list-item .wpcf7-list-item-label {
			width: unset;
		}
		* END TODO: Check
		*/
		
		/* --- column ---
		 * START TODO: Check
		.wpcf7-form .wpcf7-list-column-direction .wpcf7-checkbox,
		.wpcf7-form .wpcf7-list-column-direction .wpcf7-radio {
			display: flex;
			flex-direction: column;
		}
		.wpcf7-form .wpcf7-list-column-direction .wpcf7-list-item {
			width: 100%;
		}
		.wpcf7-form .wpcf7-list-column-direction .wpcf7-list-item:not(.first) {
			margin-top: var(--cf-list_item-vertical-gap);
		}
		.wpcf7-form .wpcf7-list-column-direction .wpcf7-list-item {
			margin-left: 0;
		}
		* END TODO: Check
		*/

		/* --- acceptance --- */
		.wpcf7-form .elementor-field-group.wpcf7-field-acceptance .wpcf7-list-item {
			margin-left: 0;
		}



	/* ----- MESSAGES ----- */
	.wpcf7-form .wpcf7-not-valid-tip {
		font-size: var( --cf-tip--font-size ) !important;
		background-color: var( --cf-tip--background-color );
	  	width: 100% !important;
	  	margin-top: calc( -1 * var(--cf-field--border-radius ) * var( --cf-tip--size-scaler ) );
	  	padding-top: calc( ( var( --cf-field--padding-top ) + var( --cf-field--border-radius ) ) / 2 );
	  	padding-bottom: calc( var(  --cf-field--padding-bottom  ) / 2 );
	  	padding-left: calc( var(  --cf-field--padding-left  ) * var( --cf-tip--size-scaler ) );
		padding-right: calc( var(  --cf-field--padding-right  ) * var( --cf-tip--size-scaler ) );
		border-radius: 0 0 calc( var(--cf-field--border-radius ) * var( --cf-tip--size-scaler ) ) calc( var(--cf-field--border-radius ) * var( --cf-tip--size-scaler ) );
		line-height: 1.4em;
	}
	.wpcf7-form .wpcf7-form-control-wrap:has(.wpcf7-not-valid-tip) .wpcf7-form-control {
		z-index: 1;
		border-color: var(--cf-tip--error--color);
	}

		/* ---- ICON (added with js) ---- */
		.wpcf7-form .wpcf7-not-valid-tip [class*=" eicon-"],
		.wpcf7-form .wpcf7-not-valid-tip [class^=eicon] {
			font-size: 1.2em;
			margin-left: -6px;
			margin-right: .4em;
			vertical-align: middle;
		}
	

	/* ----- SUBMIT ----- */
	.wpcf7-form .elementor-field-group.wpcf7-field-submit {
		
	}

		/* ----- Spinner ----- */
		.wpcf7-form .elementor-field-group.wpcf7-field-submit > .wpcf7-spinner {
			position: absolute;
			top: calc(50% - 12px);
			background-color: transparent;
			opacity: 1;
		}
		.wpcf7-form .elementor-field-group.wpcf7-field-submit > .wpcf7-spinner:before {
			background-color: var(--df-e-color-Gray-0);
		}

	/* --- disabled --- */
	.wpcf7-form .wpcf7-field-submit .wpcf7-submit[disabled] {
		opacity: .4;
	}

	/* ----- RESPONSE ----- */
	
		