/* ==========================================================================
   Página de assembleias — gramática própria (claim, destaque, ledger)
   Profundidade por hairline, não por card genérico.
   ========================================================================== */

/* --- Claim --- */
.assembleia-claim { padding-block: clamp(48px, 6vw, 88px); }
.assembleia-claim-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-block: clamp(32px, 4vw, 52px);
	border-top: 1px solid rgba(255,255,255,0.14);
	border-bottom: 1px solid rgba(255,255,255,0.14);
}
.assembleia-claim-text {
	font-family: var(--font-head);
	font-weight: 300;
	font-size: clamp(19px, 2.1vw, 30px);
	line-height: 1.45;
	color: var(--text-light-90);
	max-width: 44ch;
}
.assembleia-claim-text strong { color: var(--gold-1); font-weight: 500; }
.assembleia-claim-inner .btn { flex-shrink: 0; }

/* --- Destaque: votação pelo celular --- */
.assembleia-destaque { padding-block: clamp(40px, 5vw, 70px); }
.assembleia-destaque-card {
	position: relative;
	max-width: var(--container);
	margin-inline: auto;
	border-radius: var(--radius-lg);
	overflow: clip;
	min-height: 460px;
	display: flex;
	align-items: center;
}
.assembleia-destaque-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.assembleia-destaque-card::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(2,6,24,0.95) 0%, rgba(2,6,24,0.7) 55%, rgba(2,6,24,0.35) 100%);
}
.assembleia-destaque-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: clamp(32px, 5vw, 70px);
	padding-block: clamp(40px, 5vw, 60px);
}
.assembleia-destaque-texto { max-width: 620px; }
.assembleia-destaque-texto .section-title { max-width: 100%; }

/* números em "régua" vertical */
.assembleia-numeros {
	display: grid;
	gap: 0;
	margin: 0;
	flex-shrink: 0;
	min-width: 190px;
}
.assembleia-numeros > div {
	padding-block: 16px;
	border-top: 1px solid rgba(255,255,255,0.2);
}
.assembleia-numeros > div:last-child { border-bottom: 1px solid rgba(255,255,255,0.2); }
.assembleia-numeros dt {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--text-light-80);
	margin-bottom: 4px;
}
.assembleia-numeros dd {
	margin: 0;
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(17px, 1.5vw, 21px);
	color: var(--gold-1);
}

/* --- Ledger: benefícios em linhas, não em cards --- */
.assembleia-ledger-head { margin-bottom: 44px; }
.assembleia-ledger { display: grid; gap: 0; }
.assembleia-ledger-row {
	display: grid;
	grid-template-columns: 64px minmax(0, 300px) minmax(0, 1fr);
	gap: clamp(16px, 3vw, 44px);
	align-items: baseline;
	padding-block: 26px;
	border-top: 1px solid rgba(255,255,255,0.13);
	transition: background 0.3s ease, padding-inline 0.3s ease;
}
.assembleia-ledger-row:last-child { border-bottom: 1px solid rgba(255,255,255,0.13); }
.assembleia-ledger-row:hover {
	background: rgba(255,255,255,0.03);
	padding-inline: 14px;
}
.assembleia-ledger-num {
	font-family: var(--font-text);
	font-weight: 600;
	font-size: 15px;
	color: var(--gold-1);
	letter-spacing: 0.04em;
}
.assembleia-ledger-titulo {
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.35;
}
.assembleia-ledger-texto {
	font-size: 15px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--text-light-80);
}

@media (max-width: 900px) {
	.assembleia-claim-inner { flex-direction: column; align-items: flex-start; gap: 26px; }
	.assembleia-destaque-card { min-height: 0; }
	.assembleia-destaque-card::after {
		background: linear-gradient(180deg, rgba(2,6,24,0.72) 0%, rgba(2,6,24,0.94) 100%);
	}
	.assembleia-destaque-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
	.assembleia-numeros { min-width: 0; width: 100%; }
	.assembleia-ledger-row {
		grid-template-columns: 40px 1fr;
		gap: 12px 16px;
		row-gap: 8px;
	}
	.assembleia-ledger-texto { grid-column: 2; }
}

/* --- Trilho: processo horizontal (distinto do ledger vertical) --- */
.assembleia-trilho-head { margin-bottom: clamp(44px, 5vw, 70px); }

.trilho {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(18px, 2.4vw, 34px);
	margin: 0;
	padding: 0;
	counter-reset: none;
}
.trilho-etapa {
	position: relative;
	padding-top: 46px;
}
/* linha do trilho, ligando os nós */
.trilho-etapa::before {
	content: "";
	position: absolute;
	top: 13px;
	left: 0;
	right: calc(-1 * clamp(18px, 2.4vw, 34px));
	height: 1px;
	background: rgba(255,255,255,0.18);
}
.trilho-etapa:last-child::before { right: 0; }
/* nó */
.trilho-etapa::after {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--bg-navy);
	border: 1px solid var(--gold-1);
	transition: background 0.3s ease, box-shadow 0.3s ease;
}
.trilho-etapa:hover::after {
	background: var(--gold-1);
	box-shadow: 0 0 14px rgba(221,147,24,0.7);
}

.trilho-no {
	position: absolute;
	top: 6px;
	left: 24px;
	font-family: var(--font-text);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--gold-1);
}
.trilho-titulo {
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.3;
	margin-bottom: 8px;
}
.trilho-texto {
	font-size: 14px;
	font-weight: 300;
	line-height: 1.6;
	color: var(--text-light-80);
}

@media (max-width: 900px) {
	/* no mobile o trilho vira vertical */
	.trilho { grid-template-columns: 1fr; gap: 0; }
	.trilho-etapa { padding: 0 0 26px 30px; }
	.trilho-etapa::before {
		top: 6px;
		bottom: -6px;
		left: 5px;
		right: auto;
		width: 1px;
		height: auto;
	}
	.trilho-etapa:last-child::before { bottom: auto; height: 0; }
	.trilho-etapa::after { top: 4px; left: 0; }
	.trilho-no { top: 2px; left: 22px; }
	.trilho-titulo { margin-top: 20px; }
}

/* --- Formatos: comparação virtual x semipresencial (split, não card) --- */
.assembleia-formatos-head { margin-bottom: clamp(32px, 4vw, 52px); }
.formatos-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 1px solid rgba(255,255,255,0.14);
	border-bottom: 1px solid rgba(255,255,255,0.14);
}
.formato {
	position: relative;
	display: flex;
	flex-direction: column;
}
.formato + .formato { border-left: 1px solid rgba(255,255,255,0.14); }
/* imagem do formato (deixa a comparação visual, não só texto) */
.formato-media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: clip;
}
.formato-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.9) brightness(0.82);
	transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
}
.formato:hover .formato-media img { transform: scale(1.05); filter: saturate(1) brightness(0.92); }
.formato-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2,6,24,0) 55%, rgba(2,6,24,0.55) 100%);
}
.formato-body {
	position: relative;
	padding: clamp(26px, 3vw, 40px) clamp(24px, 3vw, 44px);
	transition: background 0.4s ease;
}
/* barra-ouro superior que entra no hover */
.formato-body::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--gold-1);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}
.formato:hover .formato-body { background: rgba(255,255,255,0.02); }
.formato:hover .formato-body::before { transform: scaleX(1); }
.formato-tag {
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold-1);
}
.formato-titulo {
	margin-top: 14px;
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(28px, 3.4vw, 46px);
	line-height: 1.02;
	letter-spacing: -0.02em;
}
.formato-texto {
	margin-top: 16px;
	font-size: clamp(15px, 1.2vw, 17px);
	font-weight: 300;
	line-height: 1.62;
	color: var(--text-light-80);
	max-width: 46ch;
}
.formato-ideal {
	margin-top: 22px;
	padding-top: 16px;
	border-top: 1px solid rgba(255,255,255,0.1);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--text-light-90);
	max-width: 44ch;
}

/* --- FAQ: cabeçalho fixo + acordeão (tipografia forte, não caixa barulhenta) --- */
.assembleia-faq-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(28px, 5vw, 80px);
	align-items: start;
}
.assembleia-faq-head { position: sticky; top: 110px; }
.faq-list { border-top: 1px solid rgba(255,255,255,0.14); }
.faq-list .accordion-item { border-bottom: 1px solid rgba(255,255,255,0.14); }
.faq-list .accordion-head {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: clamp(20px, 2vw, 26px) 0;
	text-align: left;
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.3;
	color: var(--text-light);
	transition: color 0.25s ease;
}
.faq-list .accordion-head:hover,
.faq-list .accordion-item.is-open .accordion-head { color: var(--gold-1); }
.faq-list .accordion-icon {
	position: relative;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
.faq-list .accordion-icon::before,
.faq-list .accordion-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: currentColor;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.faq-list .accordion-icon::before { width: 16px; height: 1.5px; transform: translate(-50%, -50%); }
.faq-list .accordion-icon::after { width: 1.5px; height: 16px; transform: translate(-50%, -50%); }
.faq-list .accordion-item.is-open .accordion-icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.faq-list .accordion-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.faq-list .accordion-item.is-open .accordion-panel { grid-template-rows: 1fr; }
.faq-list .accordion-panel > p {
	overflow: hidden;
	font-size: 15px;
	font-weight: 300;
	line-height: 1.68;
	color: var(--text-light-80);
	max-width: 62ch;
}
.faq-list .accordion-item.is-open .accordion-panel > p { padding-bottom: 24px; }

/* --- Controle total: showcase visual (imagem dominante + lista) --- */
.assembleia-controle-grid {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}
.assembleia-controle-media {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: clip;
	aspect-ratio: 4 / 5;
}
.assembleia-controle-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.95) brightness(0.85);
}
.assembleia-controle-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(2,6,24,0) 50%, rgba(2,6,24,0.7) 100%);
}
.assembleia-controle-badge {
	position: absolute;
	left: clamp(18px, 2vw, 26px);
	bottom: clamp(18px, 2vw, 26px);
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 9px 16px;
	border: 1px solid var(--gold-border);
	border-radius: var(--radius-pill);
	background: rgba(2,6,24,0.55);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text-light-90);
}
.assembleia-controle-badge::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gold-1);
	box-shadow: 0 0 0 0 rgba(221,147,24,0.6);
	animation: assembleia-pulse 2s infinite;
}
@keyframes assembleia-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(221,147,24,0.55); }
	70%  { box-shadow: 0 0 0 8px rgba(221,147,24,0); }
	100% { box-shadow: 0 0 0 0 rgba(221,147,24,0); }
}
.assembleia-controle-body .section-title { margin-bottom: clamp(24px, 3vw, 40px); }
.assembleia-controle-list {
	display: grid;
	gap: 0;
	border-top: 1px solid rgba(255,255,255,0.12);
}
.assembleia-controle-list li {
	position: relative;
	padding: clamp(16px, 1.8vw, 22px) 0 clamp(16px, 1.8vw, 22px) 28px;
	border-bottom: 1px solid rgba(255,255,255,0.12);
}
/* marcador-ouro no lugar de número de ledger */
.assembleia-controle-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: clamp(22px, 2.2vw, 28px);
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1px solid var(--gold-1);
	transition: background 0.3s ease, box-shadow 0.3s ease;
}
.assembleia-controle-list li:hover::before { background: var(--gold-1); box-shadow: 0 0 12px rgba(221,147,24,0.6); }
.assembleia-controle-list h3 {
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.3;
}
.assembleia-controle-list p {
	margin-top: 6px;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.55;
	color: var(--text-light-80);
	max-width: 52ch;
}

/* --- Por que a Gravamais: side-scroll horizontal --- */
.pq-scroll {
	position: relative;
	height: 100vh;
	overflow: hidden;
	background: var(--bg-navy);
}
.pq-track {
	display: flex;
	height: 100vh;
	width: max-content;
	align-items: stretch;
	will-change: transform;
}
.pq-panel {
	position: relative;
	flex: 0 0 auto;
	width: min(440px, 82vw);
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(48px, 8vh, 120px) clamp(32px, 4vw, 64px);
	border-right: 1px solid rgba(255,255,255,0.1);
}
/* painel de abertura: imagem cheia + título */
.pq-intro { width: min(680px, 92vw); overflow: hidden; }
.pq-intro-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	filter: brightness(0.5) saturate(0.9);
}
.pq-intro::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(120deg, rgba(2,6,24,0.92) 0%, rgba(2,6,24,0.5) 100%);
}
.pq-intro-content { position: relative; z-index: 2; }
.pq-hint {
	display: inline-block;
	margin-top: 28px;
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold-1);
}
/* painéis de benefício: número grande vazado + texto */
.pq-card { transition: background 0.4s ease; }
.pq-card:hover { background: rgba(255,255,255,0.025); }
.pq-num {
	font-family: var(--font-head);
	font-weight: 600;
	font-size: clamp(64px, 8vw, 120px);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px var(--gold-border);
	margin-bottom: clamp(20px, 3vh, 36px);
	transition: -webkit-text-stroke-color 0.3s ease;
}
.pq-card:hover .pq-num { -webkit-text-stroke-color: var(--gold-1); }
.pq-card-body h3 {
	font-family: var(--font-head);
	font-weight: 500;
	font-size: clamp(21px, 2vw, 30px);
	line-height: 1.15;
	letter-spacing: -0.02em;
}
.pq-card-body p {
	margin-top: 14px;
	font-size: clamp(15px, 1.2vw, 17px);
	font-weight: 300;
	line-height: 1.6;
	color: var(--text-light-80);
}

@media (max-width: 900px) {
	.formatos-split { grid-template-columns: 1fr; }
	.formato + .formato { border-left: 0; border-top: 1px solid rgba(255,255,255,0.14); }
	.assembleia-faq-inner { grid-template-columns: 1fr; gap: 26px; }
	.assembleia-faq-head { position: static; }
	.assembleia-controle-grid { grid-template-columns: 1fr; gap: 28px; }
	.assembleia-controle-media { aspect-ratio: 16 / 11; }

	/* side-scroll vira empilhamento vertical no mobile */
	.pq-scroll { height: auto; overflow: visible; }
	.pq-track { flex-direction: column; width: auto; height: auto; }
	.pq-panel {
		width: auto;
		height: auto;
		border-right: 0;
		border-bottom: 1px solid rgba(255,255,255,0.1);
		padding-block: clamp(40px, 9vw, 64px);
	}
	.pq-intro { min-height: 60vh; }
	.pq-hint { display: none; }
	.pq-num { margin-bottom: 14px; }
}
