/* Contact form */
.contact-form {
	position: relative;
	padding: var(--md-space);
	padding-top: var(--lg-space);
	border: 1px solid #c9c3b7;
	border-radius: 4px;
	    background-color: rgba(255, 255, 255, .5);
}
.form-type-switch {
	display: flex;
	gap: 8px;
	max-width: 460px;
}
.form-type-option {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 12px 16px;
	margin: 0;
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
	border-radius: 0;
	border: 1px solid #c9c3b7;
}
.form-type-option input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.form-type-option span {
	display: block;
	font-weight: 500;
}
.form-type-option:has(input:checked) {
	background: #191717;
	color: #fff;
}
.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.form-field {
	display: flex;
	flex-direction: column;
}
.form-field-full {
	grid-column: 1 / -1;
}
.form-field label {
	font-size: var(--xs-text);
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: #5a5550;
}
.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field select,
.form-field textarea {
	background: transparent;
	border: none;
	border-bottom: 1px solid #c9c3b7;
	padding: 10px 0;
	font-size: 16px;
	font-family: inherit;
	color: #191717;
	width: 100%;
	transition: border-color .2s ease;
	appearance: none;
	-webkit-appearance: none;
	border-radius: 0;
}
.form-field select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%23191717' stroke-width='1.5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 4px center;
	padding-right: 24px;
	cursor: pointer;
}
.form-field textarea {
	resize: vertical;
	min-height: 140px;
	border: 1px solid #c9c3b7;
	padding: 14px;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	outline: none;
	border-color: #191717;
}
.form-field input.input-error,
.form-field select.input-error,
.form-field textarea.input-error {
	border-color: #b33a3a;
}
/* Azienda-only fields: hidden by default (privato è selezionato) */
.contact-form:not(.contact-form-fluent) .form-azienda-only {
	display: none;
}
.contact-form:not(.contact-form-fluent).is-azienda .form-azienda-only {
	display: grid;
}
.form-privacy {
	border:none;
	padding-top: 24px;
}
.form-check-label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.5;
}
.form-check-label input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	flex-shrink: 0;
	cursor: pointer;
	accent-color: #191717;
}
.form-check-label a {
	color: #191717;
	text-decoration: underline;
}
.form-feedback {
	font-size: 14px;
	min-height: 24px;
}
.form-feedback.is-success { color: #2f6b3d; }
.form-feedback.is-error { color: #b33a3a; }

@media (max-width: 767px) {
	.contact-form { padding: 24px; }
	.form-grid { grid-template-columns: 1fr; gap: 20px; }
	.form-type-switch { flex-direction: column; }
}
.btn.btn-form {
    font-size: 14px;
    letter-spacing: .03em;
    text-transform: uppercase;
    background: #191717;
    color: #fff;
}

/* Fluent Forms output */
.contact-form-fluent .fluentform {
	margin: 0;
	text-align: left;
}
.contact-form-fluent .ff-el-group {
	margin-bottom: 0;
	text-align: left;
	align-items: flex-start;
}
.contact-form-fluent .ff-el-group.ff-el-form-top .ff-el-input--content,
.contact-form-fluent .ff-el-input--content {
	float: none !important;
	width: 100% !important;
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0;
	text-align: left;
}
.contact-form-fluent .ff-el-group.form-field,
.contact-form-fluent .ff-el-group.ff-el-form-top {
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
.contact-form-fluent .ff-el-group.form-field .ff-el-input--label,
.contact-form-fluent .ff-el-group.ff-el-form-top .ff-el-input--label,
.contact-form-fluent .ff-el-input--label {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: none;
	padding: 0;
	text-align: left !important;
}
.contact-form-fluent .ff-t-cell {
	justify-content: flex-start !important;
	align-items: stretch !important;
}
.contact-form-fluent:not(.is-azienda) .form-azienda-only {
	display: none !important;
}
.contact-form-fluent.is-azienda .form-azienda-only {
	display: grid !important;
}
.contact-form-fluent .ff-t-container.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	width: 100%;
}
.contact-form-fluent .ff-t-container.ff_columns_total_1.form-grid {
	grid-template-columns: 1fr !important;
}
.contact-form-fluent .ff-t-container.ff_columns_total_1 .ff-t-cell {
	width: 100% !important;
	max-width: none;
}
.contact-form-fluent .ff-t-container.ff_columns_total_1 .ff-el-group,
.contact-form-fluent .ff-t-container.ff_columns_total_1 .ff-el-form-control {
	width: 100%;
}
.contact-form-fluent .form-field-full {
	grid-column: 1 / -1;
	width: 100%;
}
.contact-form-fluent .ff-t-cell {
	padding: 0 !important;
	width: auto !important;
}
.contact-form-fluent .form-field .ff-el-input--label label,
.contact-form-fluent .ff-el-input--label label {
	font-size: var(--xs-text);
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: #5a5550;
}
.contact-form-fluent .ff-el-input--label.ff-el-is-required.asterisk-right label:after,
.contact-form-fluent .ff-el-input--label.ff-el-is-required.asterisk-left label:before {
	content: none !important;
}
.contact-form-fluent .ff-el-form-control {
	background: transparent;
	border: none;
	border-bottom: 1px solid #c9c3b7;
	box-shadow: none;
	padding: 10px 0;
	font-size: 16px;
	font-family: inherit;
	color: #191717;
	width: 100%;
	transition: border-color .2s ease;
	appearance: none;
	-webkit-appearance: none;
	border-radius: 0;
}
.contact-form-fluent select.ff-el-form-control {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1L6 6L11 1' stroke='%23191717' stroke-width='1.5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 4px center;
	padding-right: 24px;
	cursor: pointer;
}
.contact-form-fluent textarea.ff-el-form-control {
	resize: vertical;
	min-height: 140px;
	border: 1px solid #c9c3b7;
	padding: 14px;
}
.contact-form-fluent .ff-el-form-control:focus {
	border-color: #191717;
	box-shadow: none;
	outline: none;
}
.contact-form-fluent .form-type-switch .ff-el-input--label {
	display: none;
}
.contact-form-fluent .form-type-switch .ff-el-input--content {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: stretch;
	gap: 8px;
	max-width: 460px;
	width: 100%;
}
.contact-form-fluent .form-type-switch .ff-el-form-check {
	flex: 1;
	margin: 0;
	display: block;
}
.contact-form-fluent .form-type-switch .ff-el-form-check-label {
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 12px 16px;
	margin: 0;
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
	border-radius: 0;
	border: 1px solid #c9c3b7;
}
.contact-form-fluent .form-type-switch input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.contact-form-fluent .form-type-switch .ff-el-form-check:has(input:checked) .ff-el-form-check-label {
	background: #191717;
	color: #fff;
}
.contact-form-fluent .form-privacy {
	margin-bottom: 0;
}
.contact-form-fluent .form-privacy .ff-el-form-check-label:not(.ff_tc_label) {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.5;
}
.contact-form-fluent .form-privacy .ff-el-tc {
	display: block !important;
	width: 100%;
	border: none;
	border-collapse: separate;
}
.contact-form-fluent .form-privacy .ff_tc_label {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	cursor: pointer;
	font-size: 14px;
	line-height: 1.5;
	font-weight: normal;
}
.contact-form-fluent .form-privacy .ff_tc_label .ff_tc_checkbox,
.contact-form-fluent .form-privacy .ff_tc_label .ff_t_c {
	display: block !important;
	width: auto !important;
	padding: 0 !important;
	margin: 0;
}
.contact-form-fluent .form-privacy .ff_tc_label .ff_tc_checkbox {
	flex-shrink: 0;
	padding-top: 2px !important;
}
.contact-form-fluent .form-privacy .ff_tc_label .ff_t_c {
	flex: 1;
}
.contact-form-fluent .form-privacy input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	flex-shrink: 0;
	cursor: pointer;
	accent-color: #191717;
}
.contact-form-fluent .form-privacy a {
	color: #191717;
	text-decoration: underline;
}
.contact-form-fluent .ff-btn-submit.btn-form {
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: uppercase;
	background: #191717;
	border-color: #191717;
	color: #fff;
}
.contact-form-fluent .ff_submit_btn_wrapper,
.contact-form-fluent .ff-btn-wrap {
	text-align: left !important;
}
.contact-form-fluent .ff-custom_html,
.contact-form-fluent .ff-custom_html .form-field {
	text-align: left !important;
}
.contact-form-fluent .ff-el-group.ff-custom_html.form-grid {
	display: block !important;
	width: 100%;
}
.contact-form-fluent .ff-custom_html .form-field {
	display: block;
	width: 100%;
}
.contact-form-fluent .ff-custom_html .form-field label {
	display: block;
	width: 100%;
	text-align: left !important;
	font-size: var(--xs-text);
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 10px;
	color: #5a5550;
}
.contact-form-fluent .ff-custom_html .form-field label strong {
	font-weight: 600;
}
.contact-form-fluent .ff-message-success,
.contact-form-fluent .ff-errors-in-stack {
	font-size: 14px;
}

@media (max-width: 767px) {
	.contact-form-fluent .ff-t-container.form-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.contact-form-fluent .ff-t-container.ff_columns_total_1.form-grid {
		grid-template-columns: 1fr !important;
	}
	.contact-form-fluent .form-type-switch .ff-el-input--content {
		flex-direction: column;
	}
}