/* MARK: Contact form
*/

.cf-container {
	--cf-gutter: 1rem;
	--cf-columns: 2;
	container-name: cf-container;
	container-type: inline-size;
	display: grid;
	grid-template-columns: repeat(var(--cf-columns), 1fr);
	gap: var(--cf-gutter);
	&.notips {
		gap: 10px;
		.wpcf7-not-valid-tip {
			display: none !important;
		}

		input[type='text'],
		input[type='tel'],
		input[type='email'],
		input[type='url'],
		input[type='password'] {
			min-height: 2rem !important;
			background-color: color-mix(in srgb, var(--gray-lighter), #fff);
			&:is(:focus, :focus-visible) {
				background-color: #fff;
				border-color: var(--cf7-border) !important;
			}
		}
	}
}

[class*='cf-col-'] {
	position: relative;
	min-height: 1px;
	grid-column: span var(--cf-columns);

	&:has(.wpcf7-acceptance) {
		margin-top: var(--cf-gutter);
	}
}

/* Sistema di colonne con custom properties */
.cf-col-1 {
	--cf-span: 1;
}
.cf-col-2 {
	--cf-span: 2;
}

@container cf-container (width >= 600px) {
	[class*='cf-col-'] {
		grid-column: span var(--cf-span, var(--cf-columns));
	}
}

.wpcf7 {
	--cf7-primary-color: var(--primary);
	--cf7-border-radius: var(--radius-sm);
	/*
    --cf7-success-color: #73b234;
	--cf7-error-color: #c91d1d;
	--cf7-warning-color: #e8a530;
    */
	--cf7-success-color: oklch(from var(--primary) 0.65 0.15 145);
	--cf7-error-color: oklch(from var(--primary) 0.55 0.2 25);
	--cf7-warning-color: oklch(from var(--primary) 0.7 0.15 75);
	--cf7-padding: 10px;
	--cf7-text: var(--text-color);
	--cf7-border: var(--gray);
	--cf7-border-active: var(--gray-dark);
	--cf7-background: #fff;

	accent-color: var(--cf7-primary-color);
	p {
		display: contents;
	}
	/* Stili base Elementor */
	input[type='text'],
	input[type='tel'],
	input[type='email'],
	input[type='date'],
	input[type='url'],
	input[type='password'],
	select,
	textarea {
		display: block;
		width: 100%;
		font-family: inherit;
		font-size: 1rem;
		height: 2.5rem;
		outline: none;
		vertical-align: middle;
		background-color: var(--cf7-background);
		border: 1px solid var(--cf7-border);
		border-radius: var(--cf7-border-radius);
		box-shadow: none;
		padding: var(--cf7-padding) calc(var(--cf7-padding) + calc((1lh - 1ex) / 2));
		transition: all 0.5s;
		&:focus {
			border-color: var(--cf7-border-active);
		}
		&:user-invalid {
			border-color: var(--cf7-error-color);
			&::placeholder {
				color: var(--cf7-error-color);
			}
		}
		&:user-valid {
			border-color: var(--cf7-border-active);
		}
	}
	select,
	input[type='text'],
	input[type='tel'],
	input[type='date'],
	input[type='email'],
	input[type='url'],
	input[type='password'] {
		margin: 0;
		box-sizing: border-box;
		line-height: 1.4;
		min-height: 4em;
		border: 1px solid var(--cf7-border);
		color: var(--cf7-text);
		flex-grow: 1;
		flex-basis: 100%;
		max-width: 100%;
		&:is(:focus, :focus-visible) {
			background-color: #fff;
		}
	}

	input[type='submit'] {
		margin: 0;
		outline: 0;
		box-sizing: border-box;
		display: inline-block;
		line-height: 1;
		padding: 3em 4em;
		border-radius: var(--cf7-border-radius);
		fill: #fff;
		text-align: center;
		transition: all 0.3s;
		padding-top: 0;
		padding-bottom: 0;
		border: none;
		/*min-height: 4em;*/
		background-color: var(--cf7-primary-color);
		flex-basis: 100%;
		color: #fff;
	}
	hr {
		margin-top: 0.5rem;
		margin-bottom: 0.5rem;
		border: none;
	}

	.submitting {
		opacity: 0.65;
		pointer-events: none;
		user-select: none;
	}

	.wpcf7-spinner {
		display: none;
		position: absolute;
		opacity: 0;
	}

	.wpcf7-not-valid-tip {
		font-size: var(--text-12-14) !important;
		margin-bottom: 15px;
		font-family: sans-serif;
		color: var(--cf7-error-color);
	}

	.wpcf7-textarea {
		min-height: calc(4lh + 2 * var(--cf7-padding));
		max-height: calc(10lh + 2 * var(--cf7-padding));
		field-sizing: content;
		line-height: 1.5;
		padding: var(--cf7-padding);
		padding-inline: calc(var(--cf7-padding) + calc((1lh - 1ex) / 2));
		margin-bottom: 0;
		resize: vertical;
	}

	/* Privacy */
	.wpcf7-acceptance {
		margin: 15px 5px 0 0 !important;
		color: var(--cf7-text);
		a {
			color: var(--primary-dark) !important;
			text-decoration: underline;
		}
		.wpcf7-list-item {
			margin: 0 !important;
		}
	}
	.wpcf7-form-control-wrap[data-name='privacy'] .wpcf7-not-valid-tip {
		margin-left: 17px;
		padding-left: 0;
	} /* se vuoi allineare il messaggio alla casella*/
	.wpcf7-list-item,
	input[type='checkbox'] {
		margin-left: 0 !important;
		vertical-align: middle;
	}

	.wpcf7-list-item {
		margin: 0 1rem 0 0;

		& > label {
			display: flex;
			flex-direction: row;
			align-items: center;
			column-gap: 1rem;
		}
	}

	.wpcf7-list-item-label {
		font-weight: normal;
		line-height: 1.1em;
		color: var(--dark-gray);
		font-size: 90%;
		span:not(.wpcf7-not-valid-tip) {
			&:not([class]) {
				padding-right: 1rem;
			}
			display: inline-flex;
			gap: 2px;
			align-items: center;
		}
		span.wpcf7-not-valid-tip {
			margin: 0;
		}

		fieldset {
			display: contents;
		}
	}

	/* Response*/

	.wpcf7-response-output {
		margin: 2em 0 2.5em !important;
		padding: 2.5em 1em !important;
		background: none;
		border-width: 2px !important;
		border-radius: var(--radius);
		text-align: center;
		text-wrap: balance;
		&:empty {
			display: none !important;
		}
	}

	form.sent .wpcf7-response-output {
		border-color: var(--cf7-success-color);
		background-color: color-mix(
			in srgb,
			var(--cf7-success-color),
			var(--gray-light)
		);
		color: #fff;
	}

	form.failed .wpcf7-response-output,
	form.aborted .wpcf7-response-output,
	form.spam .wpcf7-response-output {
		border-color: var(--cf7-error-color);
		background-color: color-mix(
			in srgb,
			var(--cf7-error-color),
			var(--gray-light)
		);
		color: #fff;
	}

	form.invalid .wpcf7-response-output,
	form.unaccepted .wpcf7-response-output {
		border-color: var(--cf7-warning-color);
		background-color: color-mix(
			in srgb,
			var(--cf7-warning-color),
			var(--gray-light)
		);
		color: #fff;
	}

	@media screen and (-webkit-min-device-pixel-ratio: 0) {
		select,
		textarea,
		input {
			font-size: 16px;
		}
	}

	/* better cehckbox and radio styles */

	input[type='checkbox'],
	input[type='radio'] {
		-webkit-appearance: none;
		appearance: none;
		background-color: var(--cf7-background);
		margin: 0;
		font: inherit;
		color: currentColor;
		width: var(--text-16-20);
		height: var(--text-16-20);
		aspect-ratio: 1/1;
		border: solid 1px var(--cf7-border);
		transform: translateY(-0.075em);
		display: grid;
		place-content: center;

		&:before {
			content: '';
			transform: scale(0);
			transition: 200ms transform ease-in-out;
			background-color: #fff;
		}

		&:checked {
			background-color: var(--cf7-primary-color);
			border-color: var(--cf7-primary-color);
			&:before {
				transform: scale(1);
			}
		}

		&:disabled {
			--form-control-color: var(--form-control-disabled);
			color: var(--form-control-disabled);
			cursor: not-allowed;
		}
	}

	input[type='checkbox'] {
		border-radius: var(--cf7-border-radius);
		&:before {
			width: 1em;
			height: 1em;
			clip-path: polygon(20% 50%, 10% 60%, 45% 95%, 90% 20%, 85% 10%, 40% 70%);
			transform-origin: bottom left;
			box-shadow: inset 1em 1em var(--form-control-color);
		}
	}

	input[type='radio'] {
		border-radius: 50%;
		&:before {
			width: 0.6em;
			height: 0.6em;
			border-radius: 50%;
		}
	}

	/* rimuovi alone azzurro autocomplete*/
	input:-webkit-autofill,
	input:-webkit-autofill:hover,
	input:-webkit-autofill:focus,
	input:-webkit-autofill:active {
		box-shadow: 0 0 0 30px rgba(255, 255, 255, 0) inset !important;
	}
}

/* Newsletter last row layout */

.cf-container
	.cf-col-2:has(.wpcf7-submit):has(
		.wpcf7-form-control-wrap[data-name='privacy']
	) {
	display: flex;
	align-items: flex-end;
	gap: 15px;
	margin-top: 0;
	.wpcf7-form-control-wrap[data-name='privacy'] {
		font-size: var(--text-xs);
	}
}

@container cf-container (width<=480px) {
	.cf-container {
		gap: 10px !important;
		.cf-col-2:has(.wpcf7-submit):has(
				.wpcf7-form-control-wrap[data-name='privacy']
			) {
			flex-direction: column;
		}
	}
}

.row_newsletter .wpcf7-response-output {
	margin-top: 0 !important;
	margin-bottom: 1rem !important;
	zoom: 0.85;
}

/* Footer */

footer,
.footer_credits {
	* {
		color: #fff;
	}
	font-size: var(--text-xs);
	a {
		color: #fff;
		text-decoration: none;
		&:is(:hover, :focus, :active) {
			color: #fff;
			text-decoration: underline;
		}
	}
}

footer {
	figure {
		margin: 0;
		img {
			margin-bottom: 0.25rem;
			border-radius: 0;
		}
		&.cert {
			margin-bottom: 10px;
			img {
				margin-left: -2px;
			}
		}
		&.footer_logo img {
			margin-bottom: 1rem;
			width: auto !important;
			max-height: 3rem;
		}
	}
	hr {
		height: 1rem;
	}
	.footer_links {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		p.h4 {
			font-weight: 400 !important;
		}
		ul {
			list-style: none;
			margin: 1rem 0 0;
		}
		div {
			border-left: solid 1px white;
			padding-left: 2rem;
		}
	}
	@media (width<=992px) {
		.footer_infos {
			text-align: center;

			img,
			.cert img {
				margin-inline: auto;
				max-width: 80%;
			}
		}
		.footer_links div:first-of-type {
			border-left: none;
			padding-left: 1rem;
		}
	}
	@media (width<=768px) {
		.footer_links {
			grid-template-columns: 1fr;
			text-align: center;
			gap: 2.5rem;
			div {
				padding-left: 0;
				padding-top: 1.5rem;
				border-left: none;
				border-top: solid 1px white;
				&:first-of-type {
					padding-left: 0;
				}
			}
		}
	}
	/*@media (width<=768px) {
		background-color: #32657e;
		.gspb_row__content > div {
			width: 100% !important;
		}
		.alignfull div.wp-block-greenshift-blocks-row-column:nth-of-type(2) {
			background-color: #3a7c9c;
		}
	}*/
}

.footer_credits {
	.copyright {
		text-wrap: balance;
		line-height: 1.25em;
	}
	& > div > div {
		flex-direction: column;
	}
}
