/* Custom FAQ Sections — front-end
   Le variabili vengono sovrascritte dalle impostazioni (Bacheca > FAQ > Stile e CSS). */
.cfs-faq{
	--cfs-primary:#012169;
	--cfs-accent:#012169;
	--cfs-answer:#4a5266;
	--cfs-bg:#fff;
	--cfs-border:#e3e7ef;
	--cfs-radius:6px;
	--cfs-gap:14px;
	--cfs-max:1000px;
	--cfs-q-size:18px;
	--cfs-a-size:16px;
	--cfs-h-size:38px;
	--cfs-h-line:47px;
	--cfs-h-margin:40px;
	--cfs-h-align:center;
	max-width:var(--cfs-max);
	margin:0 auto;
	font-family:inherit;
}

/* Titolo H2 della sezione.
   !important limitato al componente: il tema (Salient) applica agli h2/h3 regole
   con specificità più alta (es. ".row .col h3", "#ajax-content-wrap h3"). */
.cfs-faq .cfs-faq__title{
	margin:0 0 var(--cfs-h-margin) !important;
	padding:0 !important;
	font-size:var(--cfs-h-size) !important;
	line-height:var(--cfs-h-line) !important;
	text-align:var(--cfs-h-align) !important;
	text-transform:none !important;
	letter-spacing:normal !important;
	color:var(--cfs-h-color, inherit) !important;
}

/* Riquadro domanda */
.cfs-faq .cfs-faq__item{
	position:relative;
	margin:0 0 var(--cfs-gap);
	background:var(--cfs-bg);
	border:1px solid var(--cfs-border);
	border-radius:var(--cfs-radius);
	overflow:hidden;
	transition:border-color .25s ease, box-shadow .25s ease;
}
.cfs-faq .cfs-faq__item:last-child{margin-bottom:0}
.cfs-faq .cfs-faq__item::before{
	content:"";
	position:absolute; left:0; top:0; bottom:0; width:4px;
	background:var(--cfs-accent);
	transform:scaleY(0); transform-origin:top;
	transition:transform .3s ease;
	z-index:1;
}
.cfs-faq .cfs-faq__item:hover{border-color:color-mix(in srgb, var(--cfs-primary) 22%, var(--cfs-border))}
.cfs-faq .cfs-faq__item.is-open{
	border-color:var(--cfs-primary);
	box-shadow:0 10px 30px -12px color-mix(in srgb, var(--cfs-primary) 30%, transparent);
}
.cfs-faq .cfs-faq__item.is-open::before{transform:scaleY(1)}

/* H3 domanda: neutralizza gli stili globali del tema sugli h3 */
.cfs-faq .cfs-faq__q{
	margin:0 !important;
	padding:0 !important;
	font-size:var(--cfs-q-size) !important;
	line-height:1.4 !important;
	font-weight:500 !important;
	font-style:normal !important;
	letter-spacing:normal !important;
	text-transform:none !important;
	color:var(--cfs-primary) !important;
	background:none !important;
	border:0 !important;
}

/* Pulsante dentro l'H3: eredita tutto dall'H3, neutralizza gli stili del tema sui button */
.cfs-faq .cfs-faq__btn{
	-webkit-appearance:none; appearance:none;
	display:flex !important; align-items:center; justify-content:space-between; gap:24px;
	width:100% !important;
	margin:0 !important;
	padding:22px 28px !important;
	background:transparent !important;
	border:0 !important;
	border-radius:0 !important;
	box-shadow:none !important;
	font-family:inherit !important;
	font-size:inherit !important;
	font-weight:inherit !important;
	font-style:inherit !important;
	line-height:inherit !important;
	color:inherit !important;
	text-align:left !important;
	text-transform:none !important;
	letter-spacing:inherit !important;
	text-shadow:none !important;
	cursor:pointer;
	min-height:0 !important;
	height:auto !important;
	opacity:1 !important;
	transform:none !important;
}
.cfs-faq .cfs-faq__btn:hover,
.cfs-faq .cfs-faq__btn:focus{background:transparent !important; color:inherit !important; box-shadow:none !important}
.cfs-faq .cfs-faq__btn:focus{outline:none}
.cfs-faq .cfs-faq__btn:focus-visible{outline:2px solid var(--cfs-accent); outline-offset:-2px}

.cfs-faq .cfs-faq__q-text{flex:1 1 auto}

/* Icona +/− */
.cfs-faq .cfs-faq__icon{
	position:relative;
	flex:0 0 32px; width:32px; height:32px;
	box-sizing:border-box;
	border:1.5px solid var(--cfs-primary);
	border-radius:50%;
	transition:background-color .25s ease;
}
.cfs-faq .cfs-faq__icon::before,
.cfs-faq .cfs-faq__icon::after{
	content:"";
	position:absolute; left:50%; top:50%;
	width:12px; height:1.5px;
	background:var(--cfs-primary);
	transform:translate(-50%,-50%);
	transition:transform .3s ease, background-color .25s ease;
}
.cfs-faq .cfs-faq__icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.cfs-faq .is-open .cfs-faq__icon{background:var(--cfs-primary)}
.cfs-faq .is-open .cfs-faq__icon::before,
.cfs-faq .is-open .cfs-faq__icon::after{background:var(--cfs-bg)}
.cfs-faq .is-open .cfs-faq__icon::after{transform:translate(-50%,-50%) rotate(0deg)}

/* Risposta */
.cfs-faq .cfs-faq__a[hidden]{display:none}
.cfs-faq .cfs-faq__a-inner{
	padding:0 28px 24px;
	color:var(--cfs-answer);
	font-size:var(--cfs-a-size);
	line-height:1.7;
}
.cfs-faq .cfs-faq__a-inner > :first-child{margin-top:0}
.cfs-faq .cfs-faq__a-inner > :last-child{margin-bottom:0; padding-bottom:0}
.cfs-faq .cfs-faq__a-inner p{margin:0 0 1em; padding:0; font-size:inherit; line-height:inherit; color:inherit}
.cfs-faq .cfs-faq__a-inner ul,
.cfs-faq .cfs-faq__a-inner ol{margin:0 0 1em 1.25em; padding:0}
.cfs-faq .cfs-faq__a-inner a{color:var(--cfs-primary); text-decoration:underline; text-underline-offset:2px}
.cfs-faq .cfs-faq__a-inner a:hover{color:var(--cfs-accent)}
.cfs-faq .cfs-faq__a-inner strong{color:var(--cfs-primary); font-weight:600}

.cfs-faq .is-animating .cfs-faq__a-inner{animation:cfsFaqIn .35s ease}
@keyframes cfsFaqIn{from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none}}

/* Tablet/mobile (breakpoint Salient 690px) */
@media (max-width:999px){
	.cfs-faq .cfs-faq__title{font-size:calc(var(--cfs-h-size) * .84) !important; line-height:calc(var(--cfs-h-line) * .84) !important}
}
@media (max-width:690px){
	.cfs-faq .cfs-faq__title{
		font-size:calc(var(--cfs-h-size) * .68) !important;
		line-height:calc(var(--cfs-h-line) * .7) !important;
		margin-bottom:calc(var(--cfs-h-margin) * .7) !important;
	}
	.cfs-faq .cfs-faq__q{font-size:calc(var(--cfs-q-size) - 2px) !important}
	.cfs-faq .cfs-faq__btn{padding:18px !important; gap:16px}
	.cfs-faq .cfs-faq__a-inner{padding:0 18px 20px; font-size:calc(var(--cfs-a-size) - 1px)}
	.cfs-faq .cfs-faq__icon{flex-basis:28px; width:28px; height:28px}
}

@media (prefers-reduced-motion:reduce){
	.cfs-faq *, .cfs-faq *::before, .cfs-faq *::after{transition:none !important; animation:none !important}
}
