/**
 * SDM FAQ Accordion - Frontend styles
 *
 * CSS variables are scoped to .sdm-faq-accordion so they can be
 * overridden per-instance with --el_class without leaking.
 */

.sdm-faq-accordion {
	--sdm-faq-border-color: #e5e7eb;
	--sdm-faq-bg: #ffffff;
	--sdm-faq-bg-hover: #f9fafb;
	--sdm-faq-bg-open: #ffffff;
	--sdm-faq-text: #111827;
	--sdm-faq-answer-text: #4b5563;
	--sdm-faq-accent: #2563eb;
	--sdm-faq-radius: 8px;
	--sdm-faq-gap: 12px;
	--sdm-faq-header-padding-y: 16px;
	--sdm-faq-header-padding-x: 20px;
	--sdm-faq-transition: 200ms ease;

	width: 100%;
	box-sizing: border-box;
}

.sdm-faq-accordion *,
.sdm-faq-accordion *::before,
.sdm-faq-accordion *::after {
	box-sizing: border-box;
}

.sdm-faq-accordion__title {
	margin: 0 0 20px;
	color: var(--sdm-faq-text);
}

.sdm-faq-accordion__list {
	display: flex;
	flex-direction: column;
	gap: var(--sdm-faq-gap);
}

/* Individual item */
.sdm-faq-item {
	border: 1px solid var(--sdm-faq-border-color);
	border-radius: var(--sdm-faq-radius);
	background: var(--sdm-faq-bg);
	overflow: hidden;
	transition: border-color var(--sdm-faq-transition), box-shadow var(--sdm-faq-transition);
}

.sdm-faq-item.is-open {
	background: var(--sdm-faq-bg-open);
	border-color: var(--sdm-faq-accent);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.sdm-faq-item__header {
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

.sdm-faq-item__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: var(--sdm-faq-header-padding-y) var(--sdm-faq-header-padding-x);
	margin: 0;
	background: transparent;
	border: 0;
	color: var(--sdm-faq-text);
	font: inherit;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background-color var(--sdm-faq-transition), color var(--sdm-faq-transition);
}

.sdm-faq-item__trigger:hover,
.sdm-faq-item__trigger:focus-visible {
	background: var(--sdm-faq-bg-hover);
}

.sdm-faq-item__trigger:focus-visible {
	outline: 2px solid var(--sdm-faq-accent);
	outline-offset: -2px;
}

.sdm-faq-item.is-open .sdm-faq-item__trigger {
	color: var(--sdm-faq-accent);
}

.sdm-faq-item__question {
	flex: 1 1 auto;
}

.sdm-faq-item__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	transition: transform var(--sdm-faq-transition), background-color var(--sdm-faq-transition);
}

.sdm-faq-item.is-open .sdm-faq-item__icon {
	transform: rotate(180deg);
}

/* Panel */
.sdm-faq-item__panel {
	overflow: hidden;
	transition: height var(--sdm-faq-transition);
}

.sdm-faq-item__panel[hidden] {
	display: none;
}

.sdm-faq-item__answer {
	padding: 0 var(--sdm-faq-header-padding-x) var(--sdm-faq-header-padding-y);
	color: var(--sdm-faq-answer-text);
	line-height: 1.6;
}

.sdm-faq-item__answer > *:first-child {
	margin-top: 0;
}

.sdm-faq-item__answer > *:last-child {
	margin-bottom: 0;
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
	.sdm-faq-accordion,
	.sdm-faq-item,
	.sdm-faq-item__trigger,
	.sdm-faq-item__icon,
	.sdm-faq-item__panel {
		transition: none !important;
	}
}
