/* RFgen FAQ */

.rffaq {
	--rffaq-accent: #51D87D;
	--rffaq-border: #c5f1d3;
	--rffaq-bg: #fff;
	--rffaq-bg-open: #f4fcf7;
	--rffaq-text: var(--bs-body-color, inherit);
	--rffaq-title: inherit;
	--rffaq-radius: 10px;
	margin: 32px 0;
	text-align: left;
}

@supports (color: color-mix(in srgb, red 50%, white)) {
	.rffaq {
		--rffaq-border: color-mix(in srgb, var(--rffaq-accent) 45%, #fff);
		--rffaq-bg-open: color-mix(in srgb, var(--rffaq-accent) 6%, #fff);
	}
}

.rffaq .rffaq-heading {
	color: var(--rffaq-title);
	margin: 0 0 20px;
	text-align: left;
}

.rffaq .rffaq-answer > *:first-child { margin-top: 0; }
.rffaq .rffaq-answer > *:last-child { margin-bottom: 0; }

.rffaq .rffaq-answer ul,
.rffaq .rffaq-answer ol {
	padding-left: 1.25rem;
}

/* ---------- Modern: accordion cards ---------- */

.rffaq--modern .rffaq-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.rffaq--modern .rffaq-item {
	background: var(--rffaq-bg);
	border: 1px solid var(--rffaq-border);
	border-radius: var(--rffaq-radius);
	overflow: hidden;
	transition: box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}

.rffaq--modern .rffaq-item:hover {
	border-color: var(--rffaq-accent);
}

.rffaq--modern .rffaq-item[open] {
	background: var(--rffaq-bg-open);
	border-color: var(--rffaq-accent);
	box-shadow: 0 6px 20px rgba(0, 0, 0, .06);
}

.rffaq--modern .rffaq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	padding: 20px 24px;
	color: var(--rffaq-title);
	font-size: clamp(1.1rem, 1.3vw, 1.3rem);
	font-weight: 600;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.rffaq--modern .rffaq-question::-webkit-details-marker { display: none; }
.rffaq--modern .rffaq-question::marker { content: ''; }

.rffaq--modern .rffaq-question:focus-visible {
	outline: 2px solid var(--rffaq-accent);
	outline-offset: -2px;
}

/* +/− icon */
.rffaq--modern .rffaq-icon {
	position: relative;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid var(--rffaq-accent);
	transition: background-color .2s ease, transform .25s ease;
}

.rffaq--modern .rffaq-icon::before,
.rffaq--modern .rffaq-icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 2px;
	background: var(--rffaq-accent);
	transform: translate(-50%, -50%);
	transition: transform .25s ease, background-color .2s ease;
}

.rffaq--modern .rffaq-icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.rffaq--modern .rffaq-item[open] .rffaq-icon {
	background: var(--rffaq-accent);
	transform: rotate(180deg);
}

.rffaq--modern .rffaq-item[open] .rffaq-icon::before,
.rffaq--modern .rffaq-item[open] .rffaq-icon::after {
	background: #fff;
}

.rffaq--modern .rffaq-item[open] .rffaq-icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.rffaq--modern .rffaq-answer {
	padding: 0 24px 24px;
	color: var(--rffaq-text);
}

.rffaq--modern .rffaq-item[open] .rffaq-answer {
	animation: rffaq-reveal .25s ease;
}

@keyframes rffaq-reveal {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: none; }
}

/* ---------- Simple: looks like normal page content ---------- */

.rffaq--simple .rffaq-item + .rffaq-item {
	margin-top: 22px;
}

/* Question: bold line at body-text size, answer directly below it. */
.rffaq--simple .rffaq-question {
	margin: 0;
	padding: 0;
	color: #000;
	font-family: inherit;
	font-size: inherit;
	font-weight: 700;
	line-height: 1.6;
	text-transform: none;
	letter-spacing: normal;
}

.rffaq--simple .rffaq-answer {
	margin: 0;
	color: #000;
	line-height: 1.6;
}

.rffaq--simple .rffaq-answer p {
	margin: 0 0 10px;
}

@media (max-width: 767px) {
	.rffaq { margin: 24px 0; }
	.rffaq--modern .rffaq-list { gap: 12px; }
	.rffaq--modern .rffaq-question { padding: 16px 18px; font-size: 1.05rem; }
	.rffaq--modern .rffaq-answer { padding: 0 18px 18px; }
	.rffaq--modern .rffaq-icon { flex-basis: 28px; width: 28px; height: 28px; }
}

@media (prefers-reduced-motion: reduce) {
	.rffaq--modern .rffaq-item,
	.rffaq--modern .rffaq-icon,
	.rffaq--modern .rffaq-icon::before,
	.rffaq--modern .rffaq-icon::after { transition: none; }
	.rffaq--modern .rffaq-item[open] .rffaq-answer { animation: none; }
}
