.sobhan-faq-fallback {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: 0;
}

.sobhan-faq {
	--faq-brand: #bf1348;
	--faq-brand-dark: #98103a;
	--faq-brand-deep: #70102f;
	--faq-brand-soft: #fff0f5;
	--faq-brand-glow: rgba(191, 19, 72, .13);
	--faq-ink: #18251e;
	--faq-muted: #58675e;
	--faq-border: #dce8df;
	position: relative;
	margin: 42px 0;
	padding: 26px;
	overflow: hidden;
	border: 1px solid var(--faq-border);
	border-radius: 22px;
	background:
		radial-gradient(circle at 100% 0, var(--faq-brand-glow) 0, transparent 34%),
		linear-gradient(145deg, #fff 0%, #fbfefc 100%);
	box-shadow: 0 18px 50px rgba(20, 83, 45, .08), 0 2px 6px rgba(15, 23, 42, .04);
	color: var(--faq-ink);
	font-family: "Vazirmatn", "Vazir", Tahoma, sans-serif;
	font-feature-settings: "ss01";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	isolation: isolate;
}

.sobhan-faq::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -85px;
	right: -85px;
	width: 210px;
	height: 210px;
	border: 35px solid rgba(191, 19, 72, .055);
	border-radius: 50%;
}

.sobhan-faq::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 4px;
	background: linear-gradient(90deg, transparent 0%, var(--faq-brand) 48%, var(--faq-brand-dark) 100%);
}

.sobhan-faq__title {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px !important;
	padding: 0 0 16px !important;
	border: 0 !important;
	color: var(--faq-ink) !important;
	font-size: clamp(21px, 2.3vw, 28px) !important;
	font-weight: 900 !important;
	line-height: 1.6 !important;
	letter-spacing: -.25px;
}

.sobhan-faq__title::before {
	content: "؟";
	display: grid;
	flex: 0 0 40px;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 13px;
	background: linear-gradient(145deg, var(--faq-brand), var(--faq-brand-dark));
	box-shadow: 0 8px 18px rgba(191, 19, 72, .23);
	color: #fff;
	font-size: 23px;
	font-weight: 900;
}

.sobhan-faq__title::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--faq-border) 28%, var(--faq-border));
}

.sobhan-faq__list {
	display: grid;
	gap: 11px;
	counter-reset: faq-counter;
}

.sobhan-faq__item {
	counter-increment: faq-counter;
	overflow: hidden;
	border: 1px solid var(--faq-border);
	border-radius: 14px;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 3px 12px rgba(15, 23, 42, .035);
	transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease, background .22s ease;
}

.sobhan-faq__item:hover {
	border-color: rgba(191, 19, 72, .38);
	box-shadow: 0 9px 24px rgba(20, 83, 45, .08);
	transform: translateY(-1px);
}

.sobhan-faq__item[open] {
	border-color: rgba(191, 19, 72, .48);
	background: linear-gradient(135deg, #fff 0%, var(--faq-brand-soft) 145%);
	box-shadow: 0 10px 26px rgba(20, 83, 45, .09);
}

.sobhan-faq__item summary {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr) 28px;
	align-items: center;
	gap: 12px;
	padding: 17px 18px;
	color: var(--faq-ink);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.9;
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.sobhan-faq__item summary::-webkit-details-marker { display: none; }

.sobhan-faq__item summary::before {
	content: counter(faq-counter, decimal-leading-zero);
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 10px;
	background: #f1f7f3;
	color: var(--faq-brand-dark);
	font-size: 11px;
	font-weight: 900;
	transition: background .22s ease, color .22s ease;
}

.sobhan-faq__item[open] summary::before {
	background: var(--faq-brand);
	color: #fff;
}

.sobhan-faq__item summary:focus-visible {
	outline: 3px solid rgba(191, 19, 72, .25);
	outline-offset: -3px;
}

.sobhan-faq__item summary i {
	position: relative;
	width: 28px;
	height: 28px;
	border: 1px solid rgba(191, 19, 72, .2);
	border-radius: 9px;
	background: var(--faq-brand-soft);
	color: var(--faq-brand-dark);
	transition: background .22s ease, transform .22s ease;
}

.sobhan-faq__item summary i::before,
.sobhan-faq__item summary i::after {
	content: "";
	position: absolute;
	top: 13px;
	left: 8px;
	width: 10px;
	height: 2px;
	border-radius: 3px;
	background: currentColor;
	transition: transform .22s ease;
}

.sobhan-faq__item summary i::after { transform: rotate(90deg); }
.sobhan-faq__item[open] summary i { background: var(--faq-brand); color: #fff; transform: rotate(180deg); }
.sobhan-faq__item[open] summary i::after { transform: rotate(0); }

.sobhan-faq__answer {
	position: relative;
	margin: 0 62px 0 18px;
	padding: 3px 0 19px 17px;
	border-top: 1px dashed rgba(191, 19, 72, .22);
	color: var(--faq-muted);
	font-size: 14.5px;
	font-weight: 400;
	line-height: 2.05;
}

.sobhan-faq__answer::before {
	content: "";
	position: absolute;
	top: 17px;
	right: -16px;
	width: 4px;
	height: 24px;
	border-radius: 99px;
	background: linear-gradient(var(--faq-brand), rgba(191, 19, 72, .18));
}

.sobhan-faq__answer p {
	margin: 14px 0 0 !important;
	padding: 0 !important;
	font: inherit !important;
	line-height: inherit !important;
}

.sobhan-faq__answer a {
	color: var(--faq-brand-dark) !important;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: rgba(191, 19, 72, .38);
	text-underline-offset: 4px;
}

@media (max-width: 600px) {
	.sobhan-faq-fallback { width: min(100% - 20px, 1180px); }
	.sobhan-faq { margin: 28px 0; padding: 17px 12px; border-radius: 16px; }
	.sobhan-faq::before { display: none; }
	.sobhan-faq__title { gap: 9px; margin-bottom: 14px !important; padding: 0 3px 13px !important; font-size: 20px !important; }
	.sobhan-faq__title::before { flex-basis: 34px; width: 34px; height: 34px; border-radius: 10px; font-size: 19px; }
	.sobhan-faq__list { gap: 8px; }
	.sobhan-faq__item { border-radius: 11px; }
	.sobhan-faq__item summary { grid-template-columns: 27px minmax(0, 1fr) 25px; gap: 8px; padding: 13px 11px; font-size: 13.5px; line-height: 1.85; }
	.sobhan-faq__item summary::before { width: 27px; height: 27px; border-radius: 8px; font-size: 9px; }
	.sobhan-faq__item summary i { width: 25px; height: 25px; border-radius: 8px; }
	.sobhan-faq__item summary i::before,
	.sobhan-faq__item summary i::after { top: 11px; left: 7px; }
	.sobhan-faq__answer { margin: 0 46px 0 11px; padding: 2px 0 15px 8px; font-size: 13.5px; line-height: 2; }
	.sobhan-faq__answer::before { right: -11px; }
}

@media (prefers-reduced-motion: reduce) {
	.sobhan-faq * { transition: none !important; }
}
