/* IFS Forms. Eredita font e colori del tema; definisce solo struttura e stati. */
.ifsf-wrap {
	/* Palette e misure riprese dal tema WPForms "Classic (Copy)" usato sul sito */
	--ifsf-accent: #8c8464;
	--ifsf-accent-dark: #756e4d;
	--ifsf-text: #444444;
	--ifsf-label: #8c8464;
	--ifsf-muted: #ada788;
	--ifsf-border: #8c8464;
	--ifsf-field-bg: #f4f2e4;
	--ifsf-error: #d63637;
	--ifsf-radius: 30px;
	--ifsf-radius-box: 18px;
	--ifsf-field-h: 43px;
	--ifsf-field-fs: 16px;
	--ifsf-btn-bg: var(--ifsf-accent);
	--ifsf-btn-border: var(--ifsf-accent-dark);
	--ifsf-btn-text: #fff;
	--ifsf-btn-radius: var(--ifsf-radius);
	max-width: 100%;
	color: var(--ifsf-text);
}
.ifsf-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.ifsf-form, .ifsf-step { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px 16px; }
.ifsf-form > *, .ifsf-step > * { grid-column: 1 / -1; }
.ifsf-form > .ifsf-w-half, .ifsf-step > .ifsf-w-half { grid-column: span 3; }
.ifsf-form > .ifsf-w-third, .ifsf-step > .ifsf-w-third { grid-column: span 2; }
.ifsf-field { display: grid; gap: 7px; align-content: start; }
.ifsf-field[hidden], .ifsf-step[hidden] { display: none; }
.ifsf-wrap .ifsf-label { font-size: 14px; font-weight: 600; color: var(--ifsf-label); line-height: 1.3; }
.ifsf-req { color: var(--ifsf-error); }
.ifsf-help { margin: 0; font-size: 13px; color: var(--ifsf-muted); line-height: 1.45; }
.ifsf-wrap .ifsf-help a, .ifsf-wrap .ifsf-choice a { color: inherit; font-size: inherit; font-weight: 600; text-decoration: underline; }
.ifsf-sub { display: grid; gap: 5px; }
.ifsf-sublabel { font-size: 13px; color: var(--ifsf-muted); padding-left: 16px; }
.ifsf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ifsf-row-phone { grid-template-columns: minmax(140px, 1fr) 2fr; }
.ifsf-form input[type=text], .ifsf-form input[type=email], .ifsf-form input[type=tel],
.ifsf-form select, .ifsf-form textarea {
	width: 100%; box-sizing: border-box; height: var(--ifsf-field-h); padding: 0 16px;
	border: 1px solid var(--ifsf-border); border-radius: var(--ifsf-radius);
	background: var(--ifsf-field-bg); color: var(--ifsf-text); font: inherit; font-size: var(--ifsf-field-fs); line-height: 1.4;
	box-shadow: none; transition: border-color .15s, box-shadow .15s;
}
.ifsf-form select { padding-right: 36px; -webkit-appearance: none; appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238c8464' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center; }
.ifsf-form textarea { height: auto; min-height: 120px; padding: 12px 16px; border-radius: var(--ifsf-radius-box); resize: vertical; }
.ifsf-form input::placeholder, .ifsf-form textarea::placeholder { color: #9b9578; opacity: 1; }
.ifsf-form input:focus, .ifsf-form select:focus, .ifsf-form textarea:focus {
	outline: none; border-color: var(--ifsf-accent-dark); box-shadow: 0 0 0 1px var(--ifsf-accent-dark);
}
.ifsf-form .ifsf-has-error input, .ifsf-form .ifsf-has-error select, .ifsf-form .ifsf-has-error textarea { border-color: var(--ifsf-error); }
.ifsf-error { margin: 0; color: var(--ifsf-error); font-size: 13px; }
.ifsf-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.ifsf-choices { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 6px; }
.ifsf-wrap .ifsf-choice { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; line-height: 1.45; font-size: 15px; color: var(--ifsf-label); }
.ifsf-choice span a { color: inherit; text-decoration: underline; }
.ifsf-choice input { margin-top: .2em; accent-color: var(--ifsf-accent); width: 18px; height: 18px; flex: 0 0 auto; }
.ifsf-consent { font-size: 15px; }
.ifsf-range { display: flex; align-items: center; gap: 14px; }
.ifsf-range input { flex: 1; accent-color: var(--ifsf-accent); }
.ifsf-range output { min-width: 70px; font-weight: 500; }
.ifsf-section { padding-top: 14px; }
.ifsf-form > .ifsf-section:first-of-type, .ifsf-step > .ifsf-section:first-child { padding-top: 0; }
.ifsf-section h3 { margin: 0; padding-bottom: 8px; border-bottom: 1px solid #d9d5bf; font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ifsf-accent-dark); }
/* Etichette nascoste (restano per i lettori di schermo) */
.ifsf-hide-labels .ifsf-field > .ifsf-label, .ifsf-hide-labels .ifsf-group > .ifsf-label {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Avanzamento dei passaggi */
.ifsf-progress { display: grid; gap: 8px; }
.ifsf-progress-text { font-size: 14px; font-weight: 600; color: var(--ifsf-label); }
.ifsf-progress-bar { height: 6px; border-radius: 6px; background: #e7e3cf; overflow: hidden; }
.ifsf-progress-bar span { display: block; height: 100%; background: var(--ifsf-accent); border-radius: 6px; transition: width .3s; }
.ifsf-section h3 + .ifsf-help { margin-top: 8px; }

/* Newsletter in linea: email e pulsante sulla stessa riga */
.ifsf-layout-inline .ifsf-form { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 0; }
.ifsf-layout-inline .ifsf-form > .ifsf-field[data-key="email"] { grid-column: 1; }
.ifsf-layout-inline .ifsf-form > .ifsf-nav-inline { grid-column: 2; align-self: start; }
.ifsf-layout-inline .ifsf-form > .ifsf-field[data-key="email"] input { border-radius: var(--ifsf-radius) 0 0 var(--ifsf-radius); }
.ifsf-layout-inline .ifsf-nav-inline button { height: var(--ifsf-field-h); border-radius: 0 var(--ifsf-btn-radius) var(--ifsf-btn-radius) 0; margin-left: -1px; }
.ifsf-layout-inline .ifsf-consent { font-size: 13px; padding: 0 16px; }
@media (max-width: 640px) {
	.ifsf-layout-inline .ifsf-form { grid-template-columns: 1fr; }
	.ifsf-layout-inline .ifsf-form > .ifsf-nav-inline, .ifsf-layout-inline .ifsf-form > .ifsf-field[data-key="email"] { grid-column: 1; }
	.ifsf-layout-inline .ifsf-form > .ifsf-field[data-key="email"] input, .ifsf-layout-inline .ifsf-nav-inline button { border-radius: var(--ifsf-radius); margin-left: 0; width: 100%; }
}

/* Select con ricerca */
.ifsf-ss { position: relative; min-width: 0; }
.ifsf-wrap .ifsf-ss-native { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; pointer-events: none; }
.ifsf-wrap .ifsf-ss-toggle {
	width: 100%; height: var(--ifsf-field-h); margin: 0; padding: 0 38px 0 16px; text-align: left;
	border: 1px solid var(--ifsf-border); border-radius: var(--ifsf-radius); background-color: var(--ifsf-field-bg);
	color: var(--ifsf-text); font: inherit; font-size: var(--ifsf-field-fs); font-weight: 400; line-height: 1.2; cursor: pointer;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238c8464' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center;
}
.ifsf-wrap .ifsf-ss-toggle:hover { background-color: var(--ifsf-field-bg); color: var(--ifsf-text); }
.ifsf-wrap .ifsf-ss-toggle.ifsf-ss-empty { color: #9b9578; }
.ifsf-wrap .ifsf-ss-toggle:focus, .ifsf-ss-open .ifsf-ss-toggle { outline: none; border-color: var(--ifsf-accent-dark); box-shadow: 0 0 0 1px var(--ifsf-accent-dark); }
.ifsf-form .ifsf-has-error .ifsf-ss-toggle { border-color: var(--ifsf-error); }
.ifsf-ss-drop { position: absolute; z-index: 50; left: 0; right: 0; top: calc(100% + 6px); min-width: 240px; padding: 8px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--ifsf-border); border-radius: var(--ifsf-radius-box); box-shadow: 0 10px 28px rgba(60, 55, 30, .16); }
.ifsf-ss-drop[hidden] { display: none; }
.ifsf-wrap .ifsf-ss-drop .ifsf-ss-search { height: 38px; margin: 0 0 6px; padding: 0 14px; font-size: 15px; border-radius: 20px; }
.ifsf-ss-list { list-style: none; margin: 0; padding: 0; max-height: 250px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--ifsf-accent) transparent; }
.ifsf-ss-list li { margin: 0; padding: 8px 12px; border-radius: 10px; font-size: 15px; line-height: 1.3; color: var(--ifsf-text); cursor: pointer; }
.ifsf-ss-list li.ifsf-ss-active { background: var(--ifsf-field-bg); }
.ifsf-ss-list li[aria-selected=true] { font-weight: 600; color: var(--ifsf-accent-dark); }
.ifsf-ss-list li.ifsf-ss-none { cursor: default; color: var(--ifsf-muted); }
/* Riassunto dei termini: area di testo di sola lettura con barra di scorrimento personalizzata */
.ifsf-wrap textarea.ifsf-summary {
	width: 100%; box-sizing: border-box; height: 300px; min-height: 0; padding: 16px 18px; resize: none;
	border: 1px solid var(--ifsf-border); border-radius: var(--ifsf-radius-box); background: var(--ifsf-field-bg);
	color: var(--ifsf-text); font: inherit; font-size: 14px; line-height: 1.6; white-space: pre-wrap; cursor: default;
	overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--ifsf-accent) transparent;
}
.ifsf-wrap textarea.ifsf-summary:focus { outline: none; border-color: var(--ifsf-accent-dark); box-shadow: none; }
.ifsf-wrap textarea.ifsf-summary::-webkit-scrollbar { width: 8px; }
.ifsf-wrap textarea.ifsf-summary::-webkit-scrollbar-track { background: transparent; margin: 14px 0; }
.ifsf-wrap textarea.ifsf-summary::-webkit-scrollbar-thumb { background: var(--ifsf-accent); border-radius: 8px; }
.ifsf-wrap textarea.ifsf-summary::-webkit-scrollbar-thumb:hover { background: var(--ifsf-accent-dark); }
.ifsf-nav { display: flex; gap: 12px; justify-content: flex-start; flex-wrap: wrap; }
.ifsf-form button {
	height: 50px; padding: 0 28px; border: 1px solid var(--ifsf-btn-border); border-radius: var(--ifsf-btn-radius);
	background: var(--ifsf-btn-bg); color: var(--ifsf-btn-text); font: inherit; font-size: 17px; font-weight: 500; cursor: pointer;
	transition: background .15s, border-color .15s;
}
.ifsf-form button:hover { background: var(--ifsf-accent-dark); border-color: var(--ifsf-accent-dark); color: var(--ifsf-btn-text); }
.ifsf-form button.ifsf-prev { background: transparent; color: var(--ifsf-accent-dark); }
.ifsf-form button:disabled { opacity: .6; cursor: progress; }
.ifsf-status { min-height: 1.2em; font-size: 14px; color: var(--ifsf-muted); }
.ifsf-status-error { color: var(--ifsf-error); }
.ifsf-success { padding: 22px 24px; border-left: 3px solid var(--ifsf-accent); background: var(--ifsf-field-bg); line-height: 1.6; border-radius: 0 var(--ifsf-radius-box) var(--ifsf-radius-box) 0; }
.ifsf-success p { margin: 0 0 10px; }
.ifsf-success p:last-child { margin: 0; }
.ifsf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* Pagina di accettazione dei termini */
.ifsf-acc { display: grid; gap: 22px; }
.ifsf-acc-intro { margin: 0; }
.ifsf-acc-card { border: 1px solid #d9d5bf; border-radius: var(--ifsf-radius-box); padding: 22px 24px; display: grid; gap: 14px; }
.ifsf-acc-card h3 { margin: 0; font-size: 1.05em; }
.ifsf-acc-data { margin: 0; display: grid; gap: 8px; }
.ifsf-acc-row { display: grid; grid-template-columns: 210px 1fr; gap: 12px; }
.ifsf-acc-row dt { color: var(--ifsf-label); font-size: .9em; }
.ifsf-acc-row dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.ifsf-acc-wrong { margin: 0; font-size: .9em; color: var(--ifsf-muted); }
.ifsf-wrap .ifsf-link { background: none; border: 0; padding: 0; color: var(--ifsf-accent-dark); text-decoration: underline; cursor: pointer; font: inherit; }
.ifsf-acc-fix textarea { width: 100%; box-sizing: border-box; padding: 12px 16px; border: 1px solid var(--ifsf-border); background: var(--ifsf-field-bg); border-radius: var(--ifsf-radius-box); font: inherit; margin-bottom: 10px; }
.ifsf-acc-verify { display: grid; gap: 10px; padding-top: 6px; }
.ifsf-row-code { grid-template-columns: minmax(0, 180px) auto; align-items: center; }
.ifsf-row-code input { letter-spacing: 4px; font-size: 1.1em; }
.ifsf-acc button { height: 50px; padding: 0 28px; font-size: 17px; border: 1px solid var(--ifsf-accent); border-radius: var(--ifsf-radius); background: var(--ifsf-accent); color: #fff; font: inherit; font-weight: 500; cursor: pointer; }
.ifsf-acc button.ifsf-prev { background: transparent; color: var(--ifsf-accent-dark); }
.ifsf-acc button.ifsf-link { padding: 0; border: 0; background: none; color: var(--ifsf-accent-dark); font-weight: 400; }
.ifsf-acc button:disabled { opacity: .5; cursor: not-allowed; }
@media (max-width: 600px) { .ifsf-acc-row { grid-template-columns: 1fr; gap: 2px; } }
/* Allineamento del pulsante dal widget Elementor */
.ifsf-align-center .ifsf-nav { justify-content: center; }
.ifsf-align-flex-end .ifsf-nav { justify-content: flex-end; }
.ifsf-align-stretch .ifsf-nav button { flex: 1; }
@media (max-width: 1024px) {
	.ifsf-align-tablet-flex-start .ifsf-nav { justify-content: flex-start; }
	.ifsf-align-tablet-center .ifsf-nav { justify-content: center; }
	.ifsf-align-tablet-flex-end .ifsf-nav { justify-content: flex-end; }
	.ifsf-align-tablet-stretch .ifsf-nav button { flex: 1; }
}
@media (max-width: 767px) {
	.ifsf-align-mobile-flex-start .ifsf-nav { justify-content: flex-start; }
	.ifsf-align-mobile-center .ifsf-nav { justify-content: center; }
	.ifsf-align-mobile-flex-end .ifsf-nav { justify-content: flex-end; }
	.ifsf-align-mobile-stretch .ifsf-nav button { flex: 1; }
}
@media (max-width: 600px) {
	.ifsf-row, .ifsf-row-phone { grid-template-columns: 1fr; }
	.ifsf-form > .ifsf-w-half, .ifsf-step > .ifsf-w-half, .ifsf-form > .ifsf-w-third, .ifsf-step > .ifsf-w-third { grid-column: 1 / -1; }
	.ifsf-form button { width: 100%; }
}


/* reCAPTCHA v3: marchio nascosto, al suo posto la nota sotto il modulo (come richiesto da Google) */
.grecaptcha-badge { visibility: hidden !important; }
.ifsf-form .ifsf-rc-note { margin: 12px 0 0; font-size: 11px; line-height: 1.5; opacity: .7; }
.ifsf-form .ifsf-rc-note a { color: inherit; text-decoration: underline; }
