:root {
	--portal-bg: #e9ecef;
	--portal-card-border: #dee2e6;
	--portal-btn: #1a237e;
	--portal-btn-hover: #121858;
}
body {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	background: var(--portal-bg);
	min-height: 100vh;
}
.portal-hero {
	background: #fff;
	border-bottom: 1px solid var(--portal-card-border);
	padding: 2rem 0 1.75rem;
	margin-bottom: 0;
}
.portal-brand {
	max-height: 104px;
	width: auto;
	max-width: min(280px, 42vw);
	height: auto;
	object-fit: contain;
}
.portal-hero-text {
	min-width: 0;
}
.portal-hero-title {
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	font-weight: 700;
	color: #0f172a;
	line-height: 1.25;
	letter-spacing: -0.02em;
	margin-bottom: 0;
}
.letter-spacing-tight {
	letter-spacing: 0.04em;
}
.btn-portal-voltar {
	--bs-btn-color: var(--portal-btn);
	--bs-btn-border-color: var(--portal-btn);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--portal-btn);
	--bs-btn-hover-border-color: var(--portal-btn);
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--portal-btn-hover);
	--bs-btn-active-border-color: var(--portal-btn-hover);
	font-weight: 600;
	font-size: 0.9rem;
	padding: 0.55rem 1.15rem;
	border-radius: 0.5rem;
	white-space: nowrap;
}
@media (max-width: 991.98px) {
	.portal-brand {
		max-height: 88px;
		max-width: 240px;
	}
}
.section-heading {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 2.5rem 0 1.25rem;
}
.section-heading::before,
.section-heading::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #adb5bd;
}
.section-heading span {
	white-space: nowrap;
	font-weight: 700;
	font-size: 1.05rem;
	color: #212529;
	letter-spacing: 0.02em;
}
.portal-card-box {
	background: #fff;
	border: 1px solid var(--portal-card-border);
	border-radius: 0.5rem;
	overflow: hidden;
	margin-bottom: 1.5rem;
}
.portal-card-box .inner {
	padding: 1.25rem 1.5rem;
}
.portal-card-title {
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.35;
	color: #111;
	margin-bottom: 1rem;
}
.portal-meta-line {
	font-size: 0.875rem;
	color: #495057;
	margin-bottom: 0.35rem;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}
.portal-meta-line i {
	margin-top: 0.15rem;
	opacity: 0.75;
}
.portal-desc {
	font-size: 0.9375rem;
	color: #343a40;
	line-height: 1.55;
	margin-bottom: 0;
	white-space: pre-wrap;
}
.btn-portal-primary {
	--bs-btn-bg: var(--portal-btn);
	--bs-btn-border-color: var(--portal-btn);
	--bs-btn-hover-bg: var(--portal-btn-hover);
	--bs-btn-hover-border-color: var(--portal-btn-hover);
	--bs-btn-active-bg: var(--portal-btn-hover);
	--bs-btn-active-border-color: var(--portal-btn-hover);
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.5rem 1rem;
	border-radius: 0.25rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.portal-detail-desc {
	white-space: pre-wrap;
	max-height: 280px;
	overflow-y: auto;
}
footer.portal-footer {
	margin-top: 3rem;
	padding: 1.5rem 0 2rem;
	color: #6c757d;
	font-size: 0.875rem;
}

/* Bloco institucional + downloads */
.portal-disclaimer-section {
	background: var(--portal-bg);
}
.portal-disclaimer {
	background: #0f2147;
	color: #fff;
	padding: 1.75rem 1.5rem;
	box-shadow: 0 0.35rem 1rem rgba(15, 33, 71, 0.25);
}
@media (min-width: 768px) {
	.portal-disclaimer {
		padding: 2rem 2.25rem;
	}
}
.portal-disclaimer-text {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.96);
	margin-bottom: 0;
}
.portal-disclaimer-files-label {
	font-size: 0.9375rem;
	color: #fff;
	letter-spacing: 0.02em;
}
.btn-portal-download-outline {
	--bs-btn-color: #fff;
	--bs-btn-border-color: #fff;
	--bs-btn-hover-color: #0f2147;
	--bs-btn-hover-bg: #fff;
	--bs-btn-hover-border-color: #fff;
	--bs-btn-active-color: #0f2147;
	--bs-btn-active-bg: #f0f0f0;
	--bs-btn-active-border-color: #fff;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.55rem 1rem;
	border-radius: 0.35rem;
	border-width: 1px;
}
.btn-portal-download-solid {
	background: #000;
	color: #fff;
	border: 1px solid #000;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.55rem 1rem;
	border-radius: 0.35rem;
}
.btn-portal-download-solid:hover {
	background: #1a1a1a;
	color: #fff;
	border-color: #1a1a1a;
}
.btn-portal-download-solid:focus-visible {
	box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.35);
}
