.sfs-faq-wrapper {
	margin: 48px 0 24px;
}

.sfs-faq-heading {
	color: var(--sfs-h2-color, #1a1a1a);
	font-size: var(--sfs-h2-size, 28px);
	margin-bottom: 16px;
}

.sfs-faq-intro {
	color: var(--sfs-answer-color, #4a4a4a);
	font-size: var(--sfs-answer-size, 16px);
	line-height: 1.6;
	margin-bottom: 16px;
}

.sfs-faq-intro p:first-child {
	margin-top: 0;
}

.sfs-faq-intro p:last-child {
	margin-bottom: 0;
}

.sfs-faq-list {
	display: flex;
	flex-direction: column;
}

.sfs-faq-item {
	border-bottom: 1px solid #e2e2e2;
}

.sfs-faq-item:first-child {
	border-top: 1px solid #e2e2e2;
}

.sfs-faq-question {
	margin: 0;
	color: var(--sfs-h3-color, #1a1a1a);
	font-size: var(--sfs-h3-size, 18px);
}

.sfs-faq-answer {
	color: var(--sfs-answer-color, #4a4a4a);
	font-size: var(--sfs-answer-size, 16px);
	line-height: 1.6;
}

.sfs-faq-answer p:first-child {
	margin-top: 0;
}

.sfs-faq-answer p:last-child {
	margin-bottom: 0;
}

/* Estado não-acordeão: pergunta e resposta sempre visíveis. */
.sfs-faq-wrapper:not(.sfs-faq-accordion) .sfs-faq-question {
	padding: 16px 0 4px;
}

.sfs-faq-wrapper:not(.sfs-faq-accordion) .sfs-faq-answer {
	padding: 0 0 16px;
}

/* Estado acordeão. */
.sfs-faq-accordion .sfs-faq-question {
	padding: 0;
}

.sfs-faq-toggle {
	box-sizing: border-box;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: none;
	border: none;
	margin: 0;
	cursor: pointer;
	text-align: left;
	padding: 16px 4px;
	font: inherit;
	line-height: normal;
	color: inherit;
	white-space: normal;
	user-select: none;
}

.sfs-faq-toggle:focus-visible {
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}

.sfs-faq-icon {
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	position: relative;
}

.sfs-faq-icon::before,
.sfs-faq-icon::after {
	content: '';
	position: absolute;
	background: currentColor;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
}

.sfs-faq-icon::before {
	width: 12px;
	height: 2px;
}

.sfs-faq-icon::after {
	width: 2px;
	height: 12px;
}

.sfs-faq-toggle[aria-expanded="true"] .sfs-faq-icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}

.sfs-faq-accordion .sfs-faq-answer {
	overflow: hidden;
	max-height: 0;
	padding: 0 4px;
	transition: max-height 0.25s ease, padding 0.25s ease;
}

.sfs-faq-accordion .sfs-faq-answer[hidden] {
	display: block; /* sobrescreve o hidden nativo para permitir a transição via JS */
}

.sfs-faq-accordion .sfs-faq-answer.sfs-faq-open {
	padding: 0 4px 16px;
}

/* Sem JS (progressive enhancement): mantém tudo visível. */
.no-js .sfs-faq-accordion .sfs-faq-answer {
	max-height: none !important;
	padding: 0 4px 16px !important;
}
