/**
 * FAQ Widget — estilos fiéis ao Figma (node 987:2110).
 * Todos os seletores usam .pucpr-faq como raiz para blindar contra o tema.
 */

/* ============================================================
   Wrapper geral
   ============================================================ */

.pucpr-faq {
	width: 100%;
	box-sizing: border-box;
}

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

/* ============================================================
   Filtros: label (linha 1) + chips | espaço | busca (linha 2)
   ============================================================ */

.pucpr-faq .pucpr-faq__filtros {
	display: grid !important;
	grid-template-columns: minmax(0, 648px) 1fr 287px;
	grid-template-rows: auto auto;
	gap: 16px 20px;
	margin-bottom: 48px;
}

.pucpr-faq .pucpr-faq__filtros-label {
	grid-column: 1 / -1;
	grid-row: 1;
	font-family: 'Poppins', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.pucpr-faq .pucpr-faq__chips {
	grid-column: 1;
	grid-row: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-content: flex-start;
}

.pucpr-faq button.pucpr-faq__chip {
	display: inline-flex !important;
	align-items: center !important;
	padding: 15px 20px !important;
	background: var(--cinza-background, #f5f0f2) !important;
	border: none !important;
	border-radius: 1000px !important;
	box-shadow: none !important;
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
	text-decoration: none !important;
}

.pucpr-faq button.pucpr-faq__chip:hover {
	background: var(--lilás, #863bff) !important;
	color: #fff !important;
}

.pucpr-faq button.pucpr-faq__chip.is-ativo {
	background: var(--preto, #000) !important;
	color: #fff !important;
}

.pucpr-faq .pucpr-faq__busca-wrap {
	grid-column: 3;
	grid-row: 2;
	display: flex !important;
	align-items: center !important;
	gap: 8px;
	width: 287px;
	height: 50px;
	padding: 10px 25px !important;
	background: var(--cinza-background, #f5f0f2) !important;
	border: none !important;
	border-radius: 1000px !important;
	box-shadow: none !important;
	align-self: flex-start;
}

.pucpr-faq .pucpr-faq__busca,
.pucpr-faq .pucpr-faq__busca:focus,
.pucpr-faq .pucpr-faq__busca:active {
	flex: 1 !important;
	min-width: 0 !important;
	width: 100% !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	appearance: none;
	-webkit-appearance: none;
	padding: 0 !important;
	margin: 0 !important;
	height: auto !important;
}

.pucpr-faq .pucpr-faq__busca::-webkit-search-cancel-button,
.pucpr-faq .pucpr-faq__busca::-webkit-search-decoration,
.pucpr-faq .pucpr-faq__busca::-webkit-search-results-button,
.pucpr-faq .pucpr-faq__busca::-webkit-search-results-decoration {
	display: none;
	-webkit-appearance: none;
}

.pucpr-faq .pucpr-faq__busca::placeholder {
	color: var(--preto, #000) !important;
	opacity: 0.6;
}

.pucpr-faq .pucpr-faq__busca-ico {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	pointer-events: none;
	color: var(--preto, #000);
	opacity: 0.6;
}

/* Lupa some quando há texto */
.pucpr-faq .pucpr-faq__busca-wrap.is-filled .pucpr-faq__busca-ico {
	display: none !important;
}

/* Botão X */
.pucpr-faq button.pucpr-faq__busca-clear {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0;
	width: 18px !important;
	height: 18px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	background: transparent !important;
	color: var(--preto, #000) !important;
	opacity: 0.6;
	cursor: pointer;
	box-shadow: none !important;
}

.pucpr-faq button.pucpr-faq__busca-clear:hover,
.pucpr-faq button.pucpr-faq__busca-clear:focus {
	opacity: 1;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
}

.pucpr-faq button.pucpr-faq__busca-clear[hidden] {
	display: none !important;
}

.pucpr-faq .pucpr-faq__clear-ico {
	width: 16px;
	height: 16px;
	fill: currentColor;
	pointer-events: none;
}

/* ============================================================
   Corpo: seções
   ============================================================ */

.pucpr-faq .pucpr-faq__corpo {
	display: flex;
	flex-direction: column;
}

.pucpr-faq .pucpr-faq__secao {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: 140px !important;
}

.pucpr-faq .pucpr-faq__secao:last-child {
	margin-bottom: 0 !important;
}

/* ============================================================
   Coluna esquerda — label sticky
   ============================================================ */

.pucpr-faq .pucpr-faq__label-col {
	width: 308px;
	flex-shrink: 0;
	position: sticky;
	top: 141px;
	align-self: flex-start;
}

.pucpr-faq .pucpr-faq__label {
	font-family: 'Poppins', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 28px !important;
	color: var(--preto, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ============================================================
   Coluna direita — lista de itens
   ============================================================ */

.pucpr-faq .pucpr-faq__lista {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

/* ============================================================
   Sub-seção (heading interno)
   ============================================================ */

.pucpr-faq .pucpr-faq__subsecao {
	font-family: 'Poppins', sans-serif !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	display: flex;
	align-items: flex-end;
	height: 50px;
	margin-top: 10px !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
}

.pucpr-faq .pucpr-faq__lista > .pucpr-faq__subsecao:first-child {
	margin-top: 0 !important;
}

/* ============================================================
   Accordion item
   ============================================================ */

.pucpr-faq .pucpr-faq__item {
	background: var(--cinza-background, #f5f0f2) !important;
	border-radius: 20px !important;
	border: none !important;
	overflow: hidden;
	transition: opacity 0.2s ease;
}

.pucpr-faq .pucpr-faq__item.is-hidden,
.pucpr-faq .pucpr-faq__subsecao.is-hidden {
	display: none !important;
}

.pucpr-faq .pucpr-faq__item-header {
	display: flex !important;
	align-items: center !important;
	gap: 20px;
	padding: 15px 20px !important;
	cursor: pointer;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
}

.pucpr-faq .pucpr-faq__pergunta {
	flex: 1;
	min-width: 0;
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: font-weight 0.15s ease;
}

.pucpr-faq .pucpr-faq__item--aberto .pucpr-faq__pergunta {
	font-weight: 700 !important;
}

/* ============================================================
   Botão +/×
   ============================================================ */

.pucpr-faq button.pucpr-faq__btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0;
	width: 40px !important;
	height: 40px !important;
	border-radius: 1000px !important;
	border: none !important;
	background: var(--lilás, #863bff) !important;
	color: #fff !important;
	cursor: pointer;
	transition: background 0.2s ease;
	padding: 0 !important;
	margin: 0 !important;
	position: relative;
	box-shadow: none !important;
}

.pucpr-faq button.pucpr-faq__btn:hover,
.pucpr-faq button.pucpr-faq__btn:focus {
	background: var(--roxo, #3e0f8a) !important;
	outline: none !important;
	box-shadow: none !important;
}

.pucpr-faq .pucpr-faq__item--aberto button.pucpr-faq__btn {
	background: var(--roxo, #3e0f8a) !important;
}

.pucpr-faq .pucpr-faq__btn-ico {
	position: absolute;
	width: 20px;
	height: 20px;
	transition: opacity 0.15s ease, transform 0.2s ease;
}

.pucpr-faq .pucpr-faq__btn-ico--plus {
	opacity: 1;
	transform: rotate(0deg);
}

.pucpr-faq .pucpr-faq__btn-ico--xmark {
	opacity: 0;
	transform: rotate(-45deg);
}

.pucpr-faq .pucpr-faq__item--aberto .pucpr-faq__btn-ico--plus {
	opacity: 0;
	transform: rotate(45deg);
}

.pucpr-faq .pucpr-faq__item--aberto .pucpr-faq__btn-ico--xmark {
	opacity: 1;
	transform: rotate(0deg);
}

/* ============================================================
   Resposta (área colapsável)
   ============================================================ */

.pucpr-faq .pucpr-faq__resposta {
	display: grid;
	grid-template-rows: 0fr;
	overflow: hidden;
	/* !important vence o reset global do Elementor sob prefers-reduced-motion
	   (`html * { transition-duration: 0s !important }` em frontend.min.css). */
	transition: grid-template-rows 0.3s ease !important;
}

.pucpr-faq .pucpr-faq__resposta[hidden] {
	display: grid !important;
}

.pucpr-faq .pucpr-faq__item--aberto .pucpr-faq__resposta {
	grid-template-rows: 1fr;
}

.pucpr-faq .pucpr-faq__resposta-inner {
	min-height: 0;
	overflow: hidden;
}

.pucpr-faq .pucpr-faq__resposta-conteudo {
	padding: 0 65px 25px 20px !important;
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 24px !important;
	color: var(--preto, #000) !important;
}

.pucpr-faq .pucpr-faq__resposta-inner p {
	margin: 0 0 8px !important;
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	line-height: 24px !important;
	color: var(--preto, #000) !important;
}

.pucpr-faq .pucpr-faq__resposta-inner p:last-child {
	margin-bottom: 0 !important;
}

.pucpr-faq .pucpr-faq__resposta-inner a {
	color: inherit !important;
	text-decoration: underline !important;
}

.pucpr-faq .pucpr-faq__resposta-inner strong,
.pucpr-faq .pucpr-faq__resposta-inner b {
	font-weight: 700 !important;
}

.pucpr-faq .pucpr-faq__resposta-inner em,
.pucpr-faq .pucpr-faq__resposta-inner i {
	font-style: italic !important;
}

/* ============================================================
   Seção oculta após filtro (sem itens visíveis)
   ============================================================ */

.pucpr-faq .pucpr-faq__secao.is-vazia {
	display: none !important;
}

/* ============================================================
   Estado vazio (nenhum resultado)
   ============================================================ */

.pucpr-faq .pucpr-faq__vazio {
	display: flex;
	align-items: center;
	gap: 40px;
	background: var(--cinza-background, #f5f0f2) !important;
	border-radius: 20px !important;
	padding: 40px 50px !important;
	margin-top: 20px !important;
}

.pucpr-faq .pucpr-faq__vazio[hidden] {
	display: none !important;
}

.pucpr-faq .pucpr-faq__vazio-ico {
	width: 90px;
	height: 90px;
	flex-shrink: 0;
	color: var(--bordô, #8a0538);
}

.pucpr-faq .pucpr-faq__vazio-texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pucpr-faq .pucpr-faq__vazio-titulo {
	font-family: 'Poppins', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 28px !important;
	color: var(--preto, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: 600px;
}

.pucpr-faq .pucpr-faq__vazio-subtitulo {
	font-family: 'Source Sans Pro', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: normal !important;
	color: var(--preto, #000) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ============================================================
   Responsivo — Tablet (≤ 1024px)
   ============================================================ */

@media (max-width: 1024px) {
	.pucpr-faq .pucpr-faq__label-col {
		width: 220px;
	}

	.pucpr-faq .pucpr-faq__label {
		font-size: 20px !important;
	}
}

/* ============================================================
   Responsivo — Mobile (≤ 767px)
   ============================================================ */

@media (max-width: 767px) {

	/* Filtros: coluna simples, busca sobe para o topo */
	.pucpr-faq .pucpr-faq__filtros {
		display: flex !important;
		flex-direction: column;
		gap: 12px;
		margin-bottom: 32px;
	}

	.pucpr-faq .pucpr-faq__filtros-label {
		grid-column: unset;
		grid-row: unset;
	}

	.pucpr-faq .pucpr-faq__chips {
		grid-column: unset;
		grid-row: unset;
		max-width: 100%;
	}

	.pucpr-faq .pucpr-faq__busca-wrap {
		grid-column: unset;
		grid-row: unset;
		order: -1;
		width: 100%;
		margin-left: 0;
	}

	.pucpr-faq .pucpr-faq__filtros-label {
		order: 0;
		font-size: 16px !important;
		margin-bottom: 0 !important;
	}

	.pucpr-faq .pucpr-faq__chips {
		order: 1;
		width: 100%;
	}

	/* Chips menores no mobile */
	.pucpr-faq button.pucpr-faq__chip {
		padding: 8px 16px !important;
		font-size: 12px !important;
	}

	/* Sem hover roxo em telas de toque: o estado :hover gruda após o tap.
	   Mantém o fundo/cor base; o estado ativo (preto) segue prevalecendo. */
	.pucpr-faq button.pucpr-faq__chip:hover {
		background: var(--cinza-background, #f5f0f2) !important;
		color: var(--preto, #000) !important;
	}

	.pucpr-faq button.pucpr-faq__chip.is-ativo:hover {
		background: var(--preto, #000) !important;
		color: #fff !important;
	}

	/* Seção: label acima da lista, não sidebar */
	.pucpr-faq .pucpr-faq__secao {
		flex-direction: column;
		gap: 20px;
		margin-bottom: 60px !important;
	}

	/* Ícone +/× menor no mobile conforme Figma (18px) */
	.pucpr-faq .pucpr-faq__btn-ico {
		width: 18px;
		height: 18px;
	}

	.pucpr-faq .pucpr-faq__secao:last-child {
		margin-bottom: 0 !important;
	}

	.pucpr-faq .pucpr-faq__label-col {
		width: 100%;
		position: static;
	}

	/* Label da seção: 22px Poppins Bold conforme Figma mobile */
	.pucpr-faq .pucpr-faq__label {
		font-size: 22px !important;
		line-height: 1.2 !important;
	}

	/* Sub-seção: mantém 18px mas line-height 22px */
	.pucpr-faq .pucpr-faq__subsecao {
		font-size: 18px !important;
		line-height: 22px !important;
		height: auto;
	}

	/* Estado vazio: empilha verticalmente */
	.pucpr-faq .pucpr-faq__vazio {
		flex-direction: column;
		text-align: center;
		gap: 20px;
		padding: 30px 24px !important;
	}

	.pucpr-faq .pucpr-faq__vazio-titulo {
		max-width: 100%;
		font-size: 20px !important;
	}
}

/* ============================================================
   Animações de entrada
   ============================================================ */

@keyframes pucpr-faq-in {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Animação de entrada dos filtros (label + chips + busca) ao carregar a página.
   Os animation-delay são injetados via JS para suportar qualquer nº de chips. */
.pucpr-faq .pucpr-faq__filtros-label,
.pucpr-faq .pucpr-faq__chip,
.pucpr-faq .pucpr-faq__busca-wrap {
	animation: pucpr-faq-in 0.45s ease both;
}

/* Estado inicial: invisível até o observer disparar. */
.pucpr-faq--animavel .pucpr-faq__label:not(.is-visivel),
.pucpr-faq--animavel .pucpr-faq__subsecao:not(.is-visivel),
.pucpr-faq--animavel .pucpr-faq__item:not(.is-visivel) {
	opacity: 0;
	transform: translateY(28px);
}

/* Entrada por scroll. */
.pucpr-faq--animavel .pucpr-faq__label.is-visivel,
.pucpr-faq--animavel .pucpr-faq__subsecao.is-visivel,
.pucpr-faq--animavel .pucpr-faq__item.is-visivel {
	animation: pucpr-faq-in 0.65s ease both;
}

/* ============================================================
   Reduced motion
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
	.pucpr-faq .pucpr-faq__btn,
	.pucpr-faq .pucpr-faq__btn-ico,
	.pucpr-faq .pucpr-faq__chip {
		transition: none;
	}

	.pucpr-faq--animavel .pucpr-faq__label,
	.pucpr-faq--animavel .pucpr-faq__subsecao,
	.pucpr-faq--animavel .pucpr-faq__item,
	.pucpr-faq .pucpr-faq__filtros-label,
	.pucpr-faq .pucpr-faq__chip,
	.pucpr-faq .pucpr-faq__busca-wrap {
		opacity: 1;
		transform: none;
		animation: none;
	}
}
