/* ------------------------------------------------------------------
   Form CF7 nimax — allineate all'aspetto delle vecchie form Elementor.
   Valori presi dagli stili calcolati delle form Elementor in pagina,
   non a occhio. Si applica solo dentro .nx-form, quindi non tocca
   nessun'altra form del sito (compresa la modale download brochure).
   ------------------------------------------------------------------ */

.nx-form { font-family: Inter, sans-serif; }

/* CF7 avvolge i campi in <p> anche con wpcf7_autop: off su questa
   installazione: li rendo trasparenti al layout invece di inseguirlo. */
.nx-form p { display: contents; margin: 0; }

/* --- griglia ------------------------------------------------------ */
.nx-form .nx-row   { display: flex; flex-wrap: wrap; gap: 0 20px; }
.nx-form .nx-field { display: block; margin: 0 0 16px; }
.nx-form .nx-w50   { flex: 1 1 calc(50% - 10px); min-width: 220px; }
.nx-form .nx-w100  { flex: 1 1 100%; }

/* --- etichette ---------------------------------------------------- */
/* CF7 interpone un <p> fra .nx-field e la label: niente selettore figlio. */
.nx-form .nx-field label {
	display: block; margin: 0; padding: 0 0 8px;
	font-family: Roboto, sans-serif; font-size: 14px; font-weight: 600;
	line-height: 20px; color: #6d758f;
}

/* --- campi -------------------------------------------------------- */
.nx-form .wpcf7-form-control-wrap { display: block; }

.nx-form input[type=text],
.nx-form input[type=email],
.nx-form input[type=tel],
.nx-form select,
.nx-form textarea,
.nx-form input[type=file] {
	width: 100%; box-sizing: border-box; height: 46px;
	padding: 12px 16px; margin: 0;
	border: 1px solid #f1f3f7; border-radius: 6px; background: #fff;
	font-family: Inter, sans-serif; font-size: 14px; line-height: 20px;
	color: #6d758f;
	transition: border-color .15s, box-shadow .15s;
}
.nx-form textarea { height: 106px; min-height: 106px; resize: vertical; }
.nx-form input[type=file] { padding: 11px 16px; cursor: pointer; }
.nx-form select { appearance: none; -webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%236d758f' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
	padding-right: 40px; }

.nx-form ::placeholder { color: #a8aec2; opacity: 1; }

.nx-form input:focus, .nx-form select:focus, .nx-form textarea:focus {
	outline: none; border-color: #f16421;
	box-shadow: 0 0 0 3px rgba(241, 100, 33, .12);
}

/* --- consensi ----------------------------------------------------- */
.nx-form .nx-privacy > label,
.nx-form .nx-privacy > p > label,
.nx-form .nx-marketing > label,
.nx-form .nx-marketing > p > label { display: none; }
.nx-form .nx-privacy .wpcf7-list-item,
.nx-form .nx-marketing .wpcf7-list-item { margin: 0; }
.nx-form .nx-privacy label,
.nx-form .nx-marketing label {
	display: flex; align-items: flex-start; gap: 10px;
	margin: 0; padding: 0; cursor: pointer;
	font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400;
	line-height: 24px; color: #6d758f;
}
.nx-form .nx-privacy input[type=checkbox],
.nx-form .nx-marketing input[type=checkbox] {
	flex: 0 0 auto; width: 16px; height: 16px; margin: 4px 0 0;
	accent-color: #f16421;
}
/* Senza sottolineatura, come nelle form Elementor sostituite (verificato in
   pagina sulla newsletter): resta solo il colore a segnalare il collegamento. */
.nx-form .nx-privacy a, .nx-form .nx-marketing a {
	color: #f16421; text-decoration: none;
}
.nx-form .nx-privacy a:hover, .nx-form .nx-marketing a:hover {
	text-decoration: underline;
}
.nx-form .nx-marketing { margin-top: -6px; }

/* --- pulsante ----------------------------------------------------- */
.nx-form .nx-submit { margin-top: 8px; position: relative; }
.nx-form .nx-submit input[type=submit] {
	height: 40px; padding: 0 24px; border: 0; border-radius: 3px;
	background: #f16421; color: #fff; cursor: pointer;
	font-family: Roboto, sans-serif; font-size: 16px; font-weight: 500;
	transition: background .2s;
}
.nx-form .nx-submit input[type=submit]:hover { background: #d8551a; }
.nx-form .nx-submit input[type=submit]:disabled { opacity: .6; cursor: default; }
.nx-form .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }

/* --- validazione: stessa convenzione della modale download -------- */
.nx-form .wpcf7-not-valid { border-color: #dc3232; background: #fff6f6; }
.nx-form .wpcf7-acceptance.wpcf7-not-valid {
	background: none; outline: 2px solid #dc3232; outline-offset: 3px; border-radius: 3px;
}
.nx-form .wpcf7-not-valid-tip {
	display: block; padding-top: 4px;
	font-family: Inter, sans-serif; font-size: 12px; color: #dc3232;
}
.wpcf7 form.nx-cf7 .wpcf7-response-output {
	margin: 16px 0 0; padding: 10px 14px; border-radius: 6px;
	font-family: Inter, sans-serif; font-size: 14px; line-height: 1.5;
}
.wpcf7 form.nx-cf7.sent .wpcf7-response-output    { border: 1px solid #46b450; color: #2a7a31; background: #f4fbf5; }
.wpcf7 form.nx-cf7.invalid .wpcf7-response-output,
.wpcf7 form.nx-cf7.failed .wpcf7-response-output,
.wpcf7 form.nx-cf7.spam .wpcf7-response-output    { border: 1px solid #dc3232; color: #b32020; background: #fff6f6; }

/* --- schermi stretti ---------------------------------------------- */
@media (max-width: 767px) {
	.nx-form .nx-row { gap: 0; }
	.nx-form .nx-w50 { flex: 1 1 100%; min-width: 0; }
}

/* --- newsletter ---------------------------------------------------
   Un campo solo e un pulsante: nella form Elementor che sostituisce il
   pulsante occupa tutta la larghezza, qui invece si adatterebbe al testo.
   Vale solo per questa famiglia, altrove il pulsante resta compatto. */
.nx-form-newsletter .nx-submit input[type=submit] { width: 100%; }

/* Campo e pulsante alti 56px con testo a 16px: sono le misure della form
   Elementor sostituita, verificate in pagina. Il resto delle form resta
   sulle misure piu' compatte (campo 46, pulsante 40). */
.nx-form-newsletter input[type=email],
.nx-form-newsletter .nx-submit input[type=submit] {
	height: 56px; font-size: 16px; border-radius: 6px;
}
.nx-form-newsletter input[type=email] { padding: 16px 24px; }
.nx-form-newsletter .nx-submit input[type=submit] { padding: 0 24px; }

/* --- landing pubblicitarie ----------------------------------------
   Misure prese in pagina dalla form Elementor sostituita: campi e tendina
   piu' bassi (40px), area note piu' corta, pulsante a tutta larghezza,
   alto 50px, a pillola e in grassetto. Vale solo per .nx-form-landing. */
.nx-form-landing input[type=text],
.nx-form-landing input[type=email],
.nx-form-landing input[type=tel],
.nx-form-landing select { height: 40px; padding: 8px 16px; }
.nx-form-landing textarea { height: 58px; min-height: 58px; padding: 8px 16px; }
.nx-form-landing .nx-submit input[type=submit] {
	width: 100%; height: 50px; border-radius: 100px;
	font-size: 15px; font-weight: 700;
}
