.ha-faq {
	--ha-orange: #f59e0b;
	--ha-text: #f8fafc;
	--ha-muted: #94a3b8;
	--ha-border: rgba(255, 255, 255, .1);
	--ha-panel: #171717;
	width: 100%;
	max-width: 1150px;
	margin: 28px auto;
	color: var(--ha-text);
	font-family: inherit;
}

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

.ha-faq__intro {
	margin: 0 0 24px;
	color: var(--ha-muted);
	font-size: 18px;
	line-height: 1.7;
}

.ha-faq__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ha-faq__item {
	border: 1px solid var(--ha-border);
	border-radius: 14px;
	background: var(--ha-panel);
	overflow: hidden;
}

.ha-faq__item[open] {
	border-color: rgba(245, 158, 11, .35);
}

.ha-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 20px 24px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.45;
	cursor: pointer;
	list-style: none;
	user-select: none;
	transition: background .15s;
}

.ha-faq__question::-webkit-details-marker {
	display: none;
}

.ha-faq__question:hover {
	background: rgba(255, 255, 255, .03);
}

.ha-faq__question:focus-visible {
	outline: 2px solid var(--ha-orange);
	outline-offset: -2px;
}

.ha-faq__chevron {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	color: var(--ha-muted);
	transition: transform .2s ease;
}

.ha-faq__item[open] .ha-faq__chevron {
	transform: rotate(180deg);
	color: var(--ha-orange);
}

.ha-faq__answer {
	padding: 0 24px 22px;
	color: #d1d5db;
	font-size: 17px;
	line-height: 1.75;
}

.ha-faq__answer strong {
	color: #fff;
}

.ha-faq__checklist {
	margin-top: 26px;
	padding: 22px 24px;
	border: 1px solid var(--ha-border);
	border-radius: 14px;
	background: rgba(245, 158, 11, .06);
}

.ha-faq__checklist strong {
	display: block;
	margin-bottom: 12px;
	color: #fff;
	font-size: 17px;
}

.ha-faq__checklist ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ha-faq__checklist li {
	position: relative;
	padding-left: 28px;
	color: #d1d5db;
	font-size: 16px;
	line-height: 1.65;
}

.ha-faq__checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: .12em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: rgba(245, 158, 11, .18);
	color: var(--ha-orange);
	font-size: 12px;
	font-weight: 800;
}

@media (max-width: 600px) {
	.ha-faq {
		margin: 22px auto;
	}

	.ha-faq__intro {
		font-size: 16px;
		line-height: 1.65;
	}

	.ha-faq__question {
		padding: 17px 16px;
		font-size: 16px;
	}

	.ha-faq__answer {
		padding: 0 16px 17px;
		font-size: 15.5px;
		line-height: 1.7;
	}

	.ha-faq__checklist {
		padding: 18px 16px;
	}

	.ha-faq__checklist strong {
		font-size: 16px;
	}

	.ha-faq__checklist li {
		font-size: 15px;
	}
}
