/* Autogenerated by richieste-it for form ID 246 */
:root {
	--fr-font-family: inherit;

	/* 🎨 DA PERSONALIZZARE — COLORI BRAND */
	--fr-label-color: #1a1a1a;
	--fr-field-text-color: #1a1a1a;
	--fr-placeholder-color: #6c757d;
	--fr-link-color: #cb3522;
	--fr-icon-color: #cb3522;
	--fr-accent-color: #cb3522;
	--fr-bg-form: #f8f9fa;
	--fr-field-bg: #ffffff;
	--fr-border-color: #ced4da;
	--fr-border-focus: #cb3522;
	--fr-button-bg: #cb3522;
	--fr-button-bg-hover: #a62b1c;
	--fr-button-text-color: #ffffff;

	/* RADIUS */
	--fr-border-radius: 6px;
	--fr-button-border-radius: 6px;

	/* ⛔ MAI CAMBIARE I FONT SIZE (devono essere inherit) */
	--fr-label-font-size: inherit;
	--fr-labelcheck-font-size: inherit;
	--fr-field-text-font-size: inherit;
}


/* ======================================================================
   FORM BULLETPROOF v6 — FLUID RESPONSIVE, ZERO BREAKPOINT HARDCODED.
   ----------------------------------------------------------------------
   Strategia:
   - container-type + cqi  → tutte le dimensioni scalano in base al
     CONTAINER reale, non al viewport. Funziona in qualunque colonna,
     sidebar, popup, anche nidificato.
   - clamp(min, fluid, max) → niente gradini fra breakpoint. Si adatta
     smooth da 180px a 2000px.
   - flex-basis: min(NNNpx, 100%) → se il container è più stretto del
     valore, il campo prende 100% AUTOMATICAMENTE. Nessuna media query.
   - .form-richieste.form-richieste → specificità raddoppiata per vincere
     contro i CSS dei temi WP senza ricorrere a !important.
   - contain: layout style → isolamento dal DOM circostante.
   - @supports fallback → browser senza container query (~5% fondo scala)
     resta comunque leggibile.
   ====================================================================== */


/* ======================================================================
   CONTENITORE
   ====================================================================== */

.form-richieste.form-richieste {
	max-width: 600px;
	width: 100%;
	margin: 20px auto;
	padding: clamp(10px, 3cqi, 25px);
	background-color: var(--fr-bg-form);
	font-family: var(--fr-font-family);
	font-size: clamp(13px, 0.5cqi + 12.5px, 16px);
	box-sizing: border-box;
	border-radius: clamp(8px, 2cqi, 12px);
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
	container-type: inline-size;
	container-name: fr-form;
	contain: layout style;
}

.form-richieste div:not(.campo):not(.riga):not(.campo *):not(.riga *) {
	margin: 10px auto;
}


/* ======================================================================
   LINK
   ====================================================================== */

.form-richieste a {
	color: var(--fr-link-color);
	text-decoration: underline;
}

.form-richieste a:hover {
	text-decoration: none;
}


/* ======================================================================
   LABEL
   ====================================================================== */

.form-richieste label {
	display: block;
	margin-bottom: 5px;
	font-weight: 600;
	color: var(--fr-label-color);
	font-size: var(--fr-label-font-size);
}

.form-richieste label#label-check {
	font-size: var(--fr-labelcheck-font-size);
}

/* Modalità NO LABEL — nasconde visivamente ma mantiene accessibilità */
.form-richieste.fr-no-label label,
.form-richieste .fr-no-label label {
	visibility: hidden;
}


/* ======================================================================
   CAMPI / BORDI — tutte le dimensioni FLUID via clamp() + cqi
   ====================================================================== */

.form-richieste.form-richieste input[type="text"],
.form-richieste.form-richieste input[type="tel"],
.form-richieste.form-richieste input[type="email"],
.form-richieste.form-richieste input[type="number"],
.form-richieste.form-richieste input[type="date"],
.form-richieste.form-richieste select,
.form-richieste.form-richieste textarea {
	width: 100%;
	max-width: 100%;
	min-width: 0; /* DIFENSIVO: evita overflow in flex/grid parent */
	padding: 0 clamp(8px, 3cqi, 14px);
	height: clamp(36px, 11cqi, 46px);
	border: 1px solid var(--fr-border-color);
	background-color: var(--fr-field-bg);
	color: var(--fr-field-text-color);
	font-size: clamp(12px, 0.4cqi + 11.5px, 15px);
	box-sizing: border-box;
	border-radius: var(--fr-border-radius);
	text-overflow: ellipsis; /* DIFENSIVO: placeholder lungo non rompe layout */
	transition:
		border-color 0.2s ease-in-out,
		box-shadow 0.2s ease-in-out,
		background-color 0.2s ease-in-out;
}

.form-richieste.form-richieste textarea {
	height: auto;
	min-height: clamp(70px, 20cqi, 110px);
	padding: clamp(6px, 2cqi, 10px) clamp(8px, 3cqi, 14px);
	resize: vertical;
	line-height: 1.5;
}

/* Focus */
.form-richieste input:focus,
.form-richieste select:focus,
.form-richieste textarea:focus {
	outline: none;
	border-color: var(--fr-border-focus);
	box-shadow: 0 0 0 3px rgba(203, 53, 34, 0.2);
}

/* Placeholder */
.form-richieste ::placeholder {
	color: var(--fr-placeholder-color);
	opacity: 1;
}


/* ======================================================================
   CHECKBOX / RADIO
   ====================================================================== */

.form-richieste input[type="checkbox"],
.form-richieste input[type="radio"] {
	cursor: pointer;
	vertical-align: middle;
}

/* Checkbox custom — sovrascrive stili del tema con alta specificità */
.form-richieste input[type="checkbox"]:not(#fr-x) {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	width: 17px !important;
	height: 17px !important;
	min-width: 17px !important;
	border: 2px solid #ced4da !important;
	border-radius: 3px !important;
	background-color: #ffffff !important;
	background-image: none !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	vertical-align: middle !important;
	transition: background-color 0.15s ease, border-color 0.15s ease !important;
}

/* Nasconde il ::before del tema (spunta ciana) */
.form-richieste input[type="checkbox"]:checked::before {
	display: none !important;
}

/* Stato checked — colore brand + spunta SVG bianca */
.form-richieste input[type="checkbox"]:checked:not(#fr-x) {
	background-color: #cb3522 !important;
	border-color: #cb3522 !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M2.5 8l3.5 3.5 7.5-7'/%3E%3C/svg%3E") !important;
	background-size: 11px !important;
	background-position: center !important;
	background-repeat: no-repeat !important;
}

.form-richieste input[type="radio"] {
	transform: scale(1.15);
	margin-right: 6px;
	accent-color: #cb3522 !important;
}

.form-richieste .form-check {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
}


/* ======================================================================
   RADIO "TIPO CLIENTE" INLINE — BULLETPROOF: mai a capo, mai rotto.
   Resta SEMPRE su una riga grazie a nowrap + overflow:hidden + shrink.
   Se lo spazio manca davvero, il font scala via clamp(cqi).
   ====================================================================== */

.form-richieste.form-richieste .tipo-soggetto-wrapper {
	display: flex;
	align-items: center;
	gap: clamp(6px, 2cqi, 15px);
	flex-wrap: nowrap;
	min-width: 0;
	overflow: hidden;
	font-size: clamp(11px, 0.4cqi + 10.5px, 14px);
}

.form-richieste.form-richieste .tipo-soggetto-wrapper .ts-label-titolo {
	margin: 0;
	font-weight: 600;
	white-space: nowrap;
	flex-shrink: 0;
}

.form-richieste.form-richieste .ts-option {
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 0 !important;
	flex-shrink: 1;
	min-width: 0;
	white-space: nowrap;
}

.form-richieste.form-richieste .tipo-soggetto-wrapper .ts-label-opzione {
	margin: 0;
	font-weight: normal;
	cursor: pointer;
}

.form-richieste.form-richieste .tipo-soggetto-wrapper input[type="radio"] {
	transform: scale(1.05);
	margin: 0;
	flex-shrink: 0;
}


/* ======================================================================
   CONSENSI (privacy e marketing)
   ====================================================================== */

.form-richieste.form-richieste .checkbox-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

.form-richieste .checkbox-wrapper input[type="checkbox"] {
	align-self: flex-start;
	margin-top: 2px;
	flex-shrink: 0;
}

.form-richieste.form-richieste .checkbox-wrapper label,
.form-richieste.form-richieste .checkbox-wrapper span {
	white-space: normal;
	line-height: 1.4;
	font-weight: normal;
	margin: 0;
	font-size: clamp(0.6em, 0.2cqi + 0.58em, 0.75em);
}

.form-richieste .checkbox-wrapper label#label-check {
	font-size: clamp(0.6em, 0.2cqi + 0.58em, 0.75em) !important;
}


/* ======================================================================
   SELECT — freccia e padding-right FLUID
   ====================================================================== */

.form-richieste.form-richieste select {
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23cccccc%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: right clamp(4px, 2cqi, 12px) top 50%;
	background-size: clamp(8px, 2.5cqi, 10px) auto;
	padding-right: clamp(16px, 6cqi, 30px);
}


/* ======================================================================
   PULSANTI — altezza, padding, font FLUID.
   nowrap + ellipsis: il testo del bottone non va mai a capo.
   ====================================================================== */

.form-richieste.form-richieste button[type="submit"],
.form-richieste.form-richieste input[type="submit"] {
	display: inline-block;
	background-color: var(--fr-button-bg);
	color: var(--fr-button-text-color);
	font-size: clamp(12px, 0.4cqi + 11.5px, 16px);
	font-weight: 700;
	padding: 0 clamp(8px, 4cqi, 25px);
	height: clamp(40px, 13cqi, 50px);
	line-height: clamp(40px, 13cqi, 50px);
	border: none;
	border-radius: var(--fr-button-border-radius);
	cursor: pointer;
	transition: background-color 0.2s ease;
	width: 100%;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.form-richieste button[type="submit"]:hover,
.form-richieste input[type="submit"]:hover {
	background-color: var(--fr-button-bg-hover);
}


/* ======================================================================
   ICONE INPUT — dimensione e posizione FLUID.
   L'icona si rimpicciolisce con il container, il padding-left segue.
   Niente più "...un comun" tagliato.
   ====================================================================== */

.form-richieste .input-icon {
	position: relative;
}

.form-richieste.form-richieste .input-icon svg {
	position: absolute;
	left: clamp(6px, 2.5cqi, 14px);
	top: 50%;
	transform: translateY(-50%);
	width: clamp(13px, 4cqi, 18px);
	height: clamp(13px, 4cqi, 18px);
	max-width: 18px;
	max-height: 18px;
	fill: var(--fr-icon-color);
	opacity: 0.8;
	pointer-events: none;
}

.form-richieste.form-richieste .input-icon input[type="text"],
.form-richieste.form-richieste .input-icon input[type="tel"],
.form-richieste.form-richieste .input-icon input[type="email"],
.form-richieste.form-richieste .input-icon input[type="number"],
.form-richieste.form-richieste .input-icon input[type="date"],
.form-richieste.form-richieste .input-icon select,
.form-richieste.form-richieste .input-icon textarea {
	padding-left: clamp(22px, 8cqi, 40px);
}


/* ======================================================================
   LAYOUT BASE — AUTO-COLLAPSE intrinseco.
   flex-basis: min(NNNpx, 100%) = se il container è più stretto di NNN,
   il flex-basis diventa 100% e il campo prende tutta la riga.
   Funziona SENZA @media e SENZA @container, su qualunque contesto.
   ====================================================================== */

.form-richieste .riga {
	display: flex;
	flex-wrap: wrap;
	min-width: 0;
}

.form-richieste.form-richieste .campo {
	padding: clamp(3px, 1cqi, 5px) clamp(4px, 1.5cqi, 10px);
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

/* Larghezze auto-collapse: sotto la soglia → 100%, sopra → affiancati.
   Zero breakpoint, zero scatti. */
.form-richieste.form-richieste .w-100 { flex: 1 1 100%; max-width: 100%; }
.form-richieste.form-richieste .w-50  { flex: 1 1 min(240px, 100%); max-width: 100%; }
.form-richieste.form-richieste .w-70  { flex: 1 1 min(320px, 100%); max-width: 100%; }
.form-richieste.form-richieste .w-30  { flex: 1 1 min(160px, 100%); max-width: 100%; }
.form-richieste.form-richieste .w-25  { flex: 1 1 min(140px, 100%); max-width: 100%; }

/* IMPORTANTE: nascosta ma NON con display:none */
.form-richieste .riga-sistema {
	overflow: hidden;
	height: 0;
	padding: 0;
	margin: 0;
}

/* reCAPTCHA invisibile */
.grecaptcha-badge {
	visibility: hidden;
	opacity: 0;
}


/* ======================================================================
   FALLBACK per browser senza container queries (~5%: Safari < 16.0,
   Firefox < 110, Chrome < 105). Valori medi sicuri + viewport media.
   ====================================================================== */

@supports not (container-type: inline-size) {
	.form-richieste.form-richieste {
		padding: 20px;
		font-size: 14px;
	}
	.form-richieste.form-richieste input[type="text"],
	.form-richieste.form-richieste input[type="tel"],
	.form-richieste.form-richieste input[type="email"],
	.form-richieste.form-richieste input[type="number"],
	.form-richieste.form-richieste input[type="date"],
	.form-richieste.form-richieste select,
	.form-richieste.form-richieste textarea {
		height: 42px;
		padding: 0 12px;
		font-size: 14px;
	}
	.form-richieste.form-richieste .input-icon svg {
		left: 12px;
		width: 18px;
		height: 18px;
	}
	.form-richieste.form-richieste .input-icon input,
	.form-richieste.form-richieste .input-icon select,
	.form-richieste.form-richieste .input-icon textarea {
		padding-left: 38px;
	}
	.form-richieste.form-richieste select {
		background-position: right 12px top 50%;
		padding-right: 28px;
	}
	.form-richieste.form-richieste button[type="submit"],
	.form-richieste.form-richieste input[type="submit"] {
		height: 46px;
		line-height: 46px;
		font-size: 15px;
	}
	@media (max-width: 600px) {
		.form-richieste.form-richieste { padding: 14px; font-size: 13px; }
		.form-richieste.form-richieste input,
		.form-richieste.form-richieste select,
		.form-richieste.form-richieste textarea { height: 38px; }
	}
}


/* ======================================================================
   BOT E SUBMIT SECURITY (Honeypot)
   ====================================================================== */

.form-richieste.is-submitting button[type="submit"],
.form-richieste.is-submitting input[type="submit"] {
	opacity: 0.7;
	cursor: wait;
	pointer-events: none;
}

.hp-field {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* fix ajax-lock: submit disabilitato durante invio */
.form-richieste.is-ajax-loading button[type="submit"],
.form-richieste.is-ajax-loading input[type="submit"] {
    opacity: 0.7;
    cursor: wait;
    pointer-events: none;
}
/*
 * richieste-it - focus e stati dei campi dei form (dalla 1.5.27).
 *
 * Accodato SEMPRE dopo il foglio del form, qualunque esso sia: default-form.css, il
 * template demo-*.css o il CSS personalizzato per-form (uploads/automa/richiesteform/
 * richiesteform<ID>.css, generato dal meta css-custom-code). Corregge tre difetti misurati
 * sui form della rete senza riscrivere il css-custom-code di nessun form:
 *
 * 1. Sugli input di testo il bordo non cambiava al focus: nel modello "Bulletproof"
 *    `.form-richieste.form-richieste input[type="text"]` (specificita' 0,3,1) batte
 *    `.form-richieste input:focus` (0,2,1), quindi --fr-border-focus era inerte.
 * 2. L'unico segnale di focus era `box-shadow: 0 0 0 3px rgba(<colore>,0.2)`: 1,21:1,
 *    sotto il 3:1 di WCAG 1.4.11 / 2.4.7. Chi naviga da tastiera non vede dove si trova.
 * 3. Checkbox spuntata e radio usavano esadecimali scritti a mano con !important, e
 *    --fr-accent-color era dichiarata ma non usata da nessuna regola.
 *
 * Nessun effetto a riposo: ogni regola e' sotto :focus, :focus-visible o :checked.
 */

/*
 * Colori derivati. Mescolare al 50% col nero in sRGB dimezza ogni canale: la luminanza
 * massima possibile e' quella di #808080, quindi il colore ottenuto ha almeno 3,95:1 sul
 * bianco (3,75:1 su #f8f9fa) PARTENDO DA QUALUNQUE COLORE. Senza color-mix si ripiega su
 * un colore scuro fisso per l'anello e sul colore del form per il bordo della spunta.
 */
.form-richieste {
	--fr-focus-ring: var(--fr-field-text-color, #1a1a1a);
	--fr-check-edge: var(--fr-accent-color, #0073aa);
}

@supports (color: color-mix(in srgb, red 50%, blue)) {
	.form-richieste {
		--fr-focus-ring: color-mix(in srgb, var(--fr-border-focus, #0073aa) 50%, #000);
		--fr-check-edge: color-mix(in srgb, var(--fr-accent-color, #0073aa) 50%, #000);
	}
}

/* 1. Bordo al focus legato a --fr-border-focus, con specificita' che batte 0,3,1. */
.form-richieste.form-richieste input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):focus,
.form-richieste.form-richieste select:focus,
.form-richieste.form-richieste textarea:focus {
	border-color: var(--fr-border-focus, #0073aa);
}

/*
 * 2. Anello di focus a due toni, solo quando il browser mostra il focus (tastiera, e
 *    per scelta del browser anche il clic in un campo di testo). Interno scuro, derivato
 *    da --fr-border-focus: si vede sugli sfondi chiari. Esterno bianco: si vede sugli
 *    sfondi scuri (form con --fr-bg-form scuro). outline sopravvive anche alla modalita'
 *    a contrasto forzato di Windows, che invece azzera box-shadow.
 */
.form-richieste.form-richieste input:focus-visible,
.form-richieste.form-richieste select:focus-visible,
.form-richieste.form-richieste textarea:focus-visible,
.form-richieste.form-richieste button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--fr-focus-ring);
}

/*
 * 3. Checkbox spuntata sulle variabili. Vince sulle regole del modello Bulletproof
 *    (`...:checked:not(#fr-x)` con !important, 1,3,1). Il riempimento resta il colore del
 *    form; il bordo e' la sua versione scura, che garantisce il 3:1 sugli sfondi chiari.
 *    Sulle checkbox native (appearance:auto) sfondo e bordo vengono ignorati dal browser.
 */
.form-richieste.form-richieste input[type="checkbox"]:checked:not(#fr-x) {
	background-color: var(--fr-accent-color, #0073aa) !important;
	border-color: var(--fr-check-edge) !important;
}

/* Filo bianco esterno: rende leggibile la spunta anche sugli sfondi scuri. Tolto al focus,
   dove comanda l'anello. */
.form-richieste.form-richieste input[type="checkbox"]:checked:not(#fr-x):not(:focus-visible) {
	box-shadow: 0 0 0 1px #fff;
}

.form-richieste.form-richieste input[type="radio"]:checked {
	accent-color: var(--fr-accent-color, auto) !important;
}
