/* ========== Post FAQ ========== */
.gpf-faq {
	--gpf-gradient: linear-gradient(45deg, #5310BA 0%, #F56BD0 100%);
	--gpf-radius: 12px;
	margin: 30px 0;
	width: 100%;
	box-sizing: border-box;
}
.gpf-faq *,
.gpf-faq *::before,
.gpf-faq *::after { box-sizing: border-box; }

.gpf-faq__title {
	margin: 0 0 18px;
	line-height: 1.3;
}

/* Item */
.gpf-faq__item {
	border-radius: var(--gpf-radius);
	margin: 0 0 14px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 4px 14px rgba(83, 16, 186, 0.12);
	border: 1px solid rgba(83, 16, 186, 0.15);
}
.gpf-faq__item:last-child { margin-bottom: 0; }

/* Question (gradient header) */
.gpf-faq__question {
	display: block;
	cursor: pointer;
	list-style: none;
	position: relative;
	margin: 0;
	padding: 18px 64px 18px 22px;
	background-image: linear-gradient(45deg, #5310BA 0%, #F56BD0 100%);
	background-image: var(--gpf-gradient);
	color: #fff;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.45;
	transition: filter 0.2s ease;
	-webkit-tap-highlight-color: transparent;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}
.gpf-faq__question::-webkit-details-marker,
.gpf-faq__question::marker { display: none; content: ""; }
.gpf-faq__question:hover { filter: brightness(1.08); }
.gpf-faq__question:focus-visible {
	outline: 3px solid #F56BD0;
	outline-offset: -3px;
}

/* +/− icon */
.gpf-faq__question::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.22);
	color: #fff;
	font-size: 22px;
	font-weight: 400;
	line-height: 29px;
	text-align: center;
	transition: transform 0.3s ease, background 0.3s ease;
}
.gpf-faq__item[open] .gpf-faq__question::after {
	content: "−";
	transform: translateY(-50%) rotate(180deg);
	background: rgba(255, 255, 255, 0.35);
}

/* Answer */
.gpf-faq__answer {
	padding: 18px 22px 20px;
	font-size: 16px;
	line-height: 1.7;
	color: #333;
	background: #fff;
	word-wrap: break-word;
	overflow-wrap: anywhere;
	animation: gpfFadeIn 0.3s ease;
}
.gpf-faq__answer > *:first-child { margin-top: 0; }
.gpf-faq__answer > *:last-child { margin-bottom: 0; }
.gpf-faq__answer a { color: #5310BA; text-decoration: underline; }
.gpf-faq__answer img,
.gpf-faq__answer iframe { max-width: 100%; height: auto; }
.gpf-faq__answer ul,
.gpf-faq__answer ol { padding-left: 1.3em; }

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

/* ===== Tablet (≤1024px) ===== */
@media (max-width: 1024px) {
	.gpf-faq { margin: 26px 0; }
	.gpf-faq__question { font-size: 17px; padding: 16px 58px 16px 20px; }
	.gpf-faq__question::after { right: 18px; }
	.gpf-faq__answer { font-size: 15.5px; padding: 16px 20px 18px; }
}

/* ===== Mobile (≤767px) ===== */
@media (max-width: 767px) {
	.gpf-faq { margin: 22px 0; --gpf-radius: 10px; }
	.gpf-faq__item { margin-bottom: 12px; }
	.gpf-faq__question { font-size: 16px; line-height: 1.4; padding: 14px 52px 14px 16px; }
	.gpf-faq__question::after { right: 14px; width: 26px; height: 26px; font-size: 19px; line-height: 25px; }
	.gpf-faq__answer { font-size: 15px; line-height: 1.65; padding: 14px 16px 16px; }
}

/* ===== Small mobile (≤480px) ===== */
@media (max-width: 480px) {
	.gpf-faq__question { font-size: 15px; padding: 13px 46px 13px 14px; }
	.gpf-faq__question::after { right: 12px; width: 24px; height: 24px; font-size: 18px; line-height: 23px; }
	.gpf-faq__answer { font-size: 14.5px; padding: 13px 14px 15px; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	.gpf-faq__answer { animation: none; }
	.gpf-faq__question::after { transition: none; }
}
