/* ==========================================================================
   HGU Mestrados — blocos
   Seções da home, páginas de mestrado e componentes compartilhados.
   Depende dos tokens declarados em base.css (:root).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Hero com imagem de fundo desfocada
   -------------------------------------------------------------------------- */
.hgu-hero {
	position: relative;
	isolation: isolate;
	min-height: min(88vh, 760px);
	display: flex;
	align-items: center;
	padding-block: clamp(4rem, 2rem + 8vw, 7rem);
	background: var(--hgu-tinta);
	color: #fff;
	overflow: hidden;
}

/*
 * Fundo desfocado. A camada é ampliada em 6% porque o blur "come" as bordas:
 * sem a escala sobraria uma faixa clara na volta da imagem.
 */
.hgu-hero__midia {
	position: absolute;
	inset: -3%;
	z-index: -2;
	background-color: var(--hgu-azul-900);
	background-size: cover;
	background-position: center;
	filter: blur(10px) saturate(115%);
	transform: scale(1.06);
	will-change: transform;
}

.hgu-hero__mascara {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(180deg, rgba(3, 3, 3, 0.68) 0%, rgba(2, 51, 124, 0.62) 55%, rgba(3, 3, 3, 0.82) 100%);
}

/* Conteúdo centralizado na horizontal e na vertical */
.hgu-hero__conteudo {
	max-width: 52rem;
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.hgu-hero h1 {
	color: #fff;
	margin-bottom: var(--hgu-e-4);
	text-wrap: balance;
}

.hgu-hero__texto {
	font-size: var(--hgu-t-md);
	color: rgba(255, 255, 255, 0.9);
	max-width: 54ch;
	margin-bottom: var(--hgu-e-6);
}

.hgu-selo {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.9rem;
	border-radius: var(--hgu-raio-pill);
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: var(--hgu-e-5);
}

.hgu-hero__acoes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--hgu-e-3);
	width: 100%;
}

.hgu-hero__marcas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--hgu-e-3) var(--hgu-e-5);
	list-style: none;
	padding: 0;
	margin-top: var(--hgu-e-7);
	padding-top: var(--hgu-e-5);
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	font-size: var(--hgu-t-sm);
	color: rgba(255, 255, 255, 0.82);
	width: 100%;
	max-width: 46rem;
}
.hgu-hero__marca {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-align: left;
}

/* Telas pequenas: hero mais curto, botões em largura total */
@media (max-width: 899px) {
	/* espaço extra embaixo para a barra fixa não cobrir o último item */
	.hgu-hero { padding-bottom: calc(clamp(3rem, 2rem + 6vw, 4.5rem) + 3.75rem); }
}
@media (max-width: 719px) {
	.hgu-hero {
		min-height: 0;
		padding-top: clamp(3rem, 2rem + 6vw, 4.5rem);
	}
	.hgu-hero__acoes { flex-direction: column; }
	.hgu-hero__acoes .hgu-btn { width: 100%; }
	.hgu-hero__marcas {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--hgu-e-3);
		margin-top: var(--hgu-e-6);
		text-align: left;
	}
}

/* --------------------------------------------------------------------------
   Faixa de áreas (marquee)
   -------------------------------------------------------------------------- */
.hgu-areas {
	border-block: 1px solid var(--hgu-linha);
	padding-block: clamp(1.25rem, 0.8rem + 1.6vw, 2rem);
	overflow: hidden;
	background: var(--hgu-branco);
}
.hgu-areas__pista {
	display: flex;
	width: max-content;
	gap: 0;
	animation: hgu-desliza 38s linear infinite;
}
.hgu-areas:hover .hgu-areas__pista { animation-play-state: paused; }

.hgu-areas__grupo {
	display: flex;
	align-items: center;
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	padding-right: clamp(1.5rem, 1rem + 2vw, 3rem);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: clamp(1.75rem, 1rem + 3.4vw, 3.5rem);
	letter-spacing: -0.02em;
	color: var(--hgu-azul-100);
	white-space: nowrap;
}
.hgu-areas__ponto {
	width: 0.42em;
	height: 0.42em;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}

@keyframes hgu-desliza {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.hgu-areas__pista {
		animation: none;
		width: 100%;
		overflow-x: auto;
	}
}

/* --------------------------------------------------------------------------
   Números
   -------------------------------------------------------------------------- */
.hgu-numeros__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: center;
}
@media (min-width: 900px) {
	.hgu-numeros__grade { grid-template-columns: 1fr 1.15fr; gap: var(--hgu-e-8); }
}

.hgu-numeros__cartoes {
	display: grid;
	gap: var(--hgu-e-4);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 560px) {
	.hgu-numeros__cartoes { grid-template-columns: 1fr; }
}

.hgu-numero {
	background: linear-gradient(180deg, var(--hgu-azul-050) 0%, #ffffff 100%);
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	display: flex;
	flex-direction: column;
	gap: var(--hgu-e-4);
	min-height: 15rem;
}
.hgu-numero__valor {
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-numero);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--hgu-tinta);
}
.hgu-numero__texto {
	font-size: var(--hgu-t-sm);
	color: var(--hgu-texto);
	border-top: 1px solid var(--hgu-linha);
	padding-top: var(--hgu-e-4);
	margin-top: auto;
}

.hgu-numero--cta {
	background: var(--hgu-azul-900);
	border-color: var(--hgu-azul-900);
	color: #fff;
	justify-content: space-between;
	text-decoration: none;
}
.hgu-numero--cta h3 {
	color: #fff;
	font-size: var(--hgu-t-xl);
	margin: 0;
}
.hgu-numero--cta:hover { background: var(--hgu-tinta); color: #fff; }
.hgu-numero__seta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--hgu-raio-sm);
	background: var(--hgu-tinta);
	color: #fff;
}

/* --------------------------------------------------------------------------
   Cursos
   -------------------------------------------------------------------------- */
.hgu-cursos__grade {
	display: grid;
	gap: var(--hgu-e-4);
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.hgu-cursos__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.hgu-cursos__grade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.hgu-cursos__painel {
	background: var(--hgu-vermelho-050);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-6);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 22rem;
}
.hgu-cursos__painel h2 { margin-bottom: var(--hgu-e-5); }

.hgu-filtros {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.hgu-filtro {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.5rem 0.95rem;
	border-radius: var(--hgu-raio-pill);
	background: var(--hgu-azul-800);
	color: #fff;
	border: 1px solid var(--hgu-azul-800);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-xs);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--hgu-transicao), color var(--hgu-transicao);
}
.hgu-filtro:hover {
	background: var(--hgu-azul-900);
	border-color: var(--hgu-azul-900);
	color: #fff;
}
.hgu-filtro[aria-current='true'],
.hgu-filtro.esta-ativo {
	background: var(--hgu-tinta);
	border-color: var(--hgu-tinta);
	color: #fff;
}

.hgu-curso {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--hgu-e-3);
	min-height: 22rem;
	padding: var(--hgu-e-5);
	border-radius: var(--hgu-raio);
	overflow: hidden;
	background-color: var(--hgu-azul-900);
	background-size: cover;
	background-position: center;
	color: #fff;
}
.hgu-curso::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(3, 3, 3, 0.25) 0%, rgba(3, 3, 3, 0.55) 55%, rgba(3, 3, 3, 0.85) 100%);
}
.hgu-curso__area {
	position: absolute;
	top: var(--hgu-e-4);
	left: var(--hgu-e-5);
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-xs);
	color: #fff;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
}
.hgu-curso__tag {
	align-self: flex-start;
	display: inline-flex;
	padding: 0.35rem 0.75rem;
	border-radius: var(--hgu-raio-sm);
	background: var(--hgu-tinta);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-xs);
	color: #fff;
}
.hgu-curso__titulo {
	font-size: var(--hgu-t-lg);
	color: #fff;
	margin: 0;
	text-wrap: balance;
}
.hgu-curso .hgu-btn { align-self: flex-start; }
.hgu-curso--indisponivel { cursor: default; }

.hgu-cursos__vazio {
	grid-column: 1 / -1;
	background: var(--hgu-fundo-alt);
	border: 1px dashed var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-6);
	text-align: center;
	color: var(--hgu-texto-suave);
}

/* --------------------------------------------------------------------------
   Reconhecimento
   -------------------------------------------------------------------------- */
.hgu-reconhecimento__topo {
	display: grid;
	gap: var(--hgu-e-5);
	grid-template-columns: 1fr;
	margin-bottom: var(--hgu-e-7);
}
@media (min-width: 900px) {
	.hgu-reconhecimento__topo {
		grid-template-columns: 1.1fr 1fr;
		gap: var(--hgu-e-8);
		align-items: start;
	}
}

.hgu-bandeiras {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: var(--hgu-e-4);
	padding: 0;
	list-style: none;
}
.hgu-bandeira {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid var(--hgu-linha);
	background: var(--hgu-cinza-100);
	display: grid;
	place-items: center;
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-xs);
	color: var(--hgu-azul-800);
}
.hgu-bandeira img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hgu-cartoes {
	display: grid;
	gap: var(--hgu-e-4);
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.hgu-cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.hgu-cartoes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.hgu-cartao {
	background: linear-gradient(160deg, #ffffff 0%, #fdf7f8 100%);
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	display: flex;
	flex-direction: column;
	gap: var(--hgu-e-3);
	transition: box-shadow var(--hgu-transicao), transform var(--hgu-transicao);
}
.hgu-cartao:hover {
	box-shadow: var(--hgu-sombra);
	transform: translateY(-2px);
}
.hgu-cartao__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 14px 14px 14px 4px;
	background: var(--hgu-azul-050);
	color: var(--hgu-azul-800);
	margin-bottom: var(--hgu-e-2);
}
.hgu-cartao h3 {
	font-size: var(--hgu-t-lg);
	color: var(--hgu-azul-800);
	margin: 0;
}
.hgu-cartao p {
	font-size: var(--hgu-t-sm);
	margin: 0;
}

.hgu-cartao--imagem {
	padding: 0;
	overflow: hidden;
	min-height: 14rem;
	background: var(--hgu-azul-900);
	background-size: cover;
	background-position: center;
	border: 0;
}

/* --------------------------------------------------------------------------
   Experiência do aluno
   -------------------------------------------------------------------------- */
.hgu-experiencia__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: center;
}
@media (min-width: 980px) {
	.hgu-experiencia__grade { grid-template-columns: 1.05fr 1fr; gap: var(--hgu-e-8); }
}

.hgu-recursos {
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	display: grid;
	gap: var(--hgu-e-5);
	grid-template-columns: 1fr;
	margin-top: var(--hgu-e-5);
}
@media (min-width: 560px) {
	.hgu-recursos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.hgu-recurso {
	display: flex;
	gap: var(--hgu-e-3);
	align-items: flex-start;
}
.hgu-recurso__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--hgu-azul-800);
	color: #fff;
}
.hgu-recurso h3 {
	font-size: var(--hgu-t-base);
	margin: 0 0 0.15rem;
}
.hgu-recurso p {
	font-size: var(--hgu-t-sm);
	color: var(--hgu-texto);
	margin: 0;
}

.hgu-dispositivos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--hgu-e-3);
	/* rótulo em linha própria: evita "Computador" sobrando sozinho embaixo */
	--hgu-dispositivos-rotulo: 100%;
	margin-top: var(--hgu-e-5);
	padding-top: var(--hgu-e-5);
	border-top: 1px solid var(--hgu-linha);
	font-size: var(--hgu-t-sm);
	color: var(--hgu-texto-suave);
}
.hgu-dispositivos > span:first-child {
	flex: 0 0 var(--hgu-dispositivos-rotulo);
	margin-bottom: 0.25rem;
}
.hgu-dispositivo {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.1rem;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio-sm);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	color: var(--hgu-tinta);
	background: #fff;
}

.hgu-experiencia__figura {
	margin: 0;
	border-radius: var(--hgu-raio);
	overflow: hidden;
	background: linear-gradient(140deg, var(--hgu-azul-050), #ffffff 60%);
	min-height: 18rem;
	display: grid;
	place-items: center;
	padding: var(--hgu-e-5);
}
.hgu-experiencia__figura img { border-radius: var(--hgu-raio-sm); }

/* --------------------------------------------------------------------------
   Institucional com o globo
   -------------------------------------------------------------------------- */
.hgu-instituicao {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: var(--hgu-secao-y);
	background: var(--hgu-azul-900);
	color: rgba(255, 255, 255, 0.88);
}
.hgu-instituicao__fundo {
	position: absolute;
	inset: 0;
	z-index: -2;
	background-size: cover;
	background-position: center;
}
.hgu-instituicao::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(120deg, rgba(2, 20, 52, 0.88) 0%, rgba(2, 40, 96, 0.72) 45%, rgba(2, 20, 52, 0.62) 100%);
}

.hgu-instituicao__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: center;
}
@media (min-width: 980px) {
	.hgu-instituicao__grade {
		grid-template-columns: 1.05fr 1fr;
		gap: var(--hgu-e-8);
	}
}

.hgu-instituicao h2 {
	color: #fff;
	text-wrap: balance;
}
.hgu-instituicao__texto p {
	font-size: var(--hgu-t-md);
	max-width: 56ch;
}
.hgu-instituicao__texto p + p { margin-top: var(--hgu-e-4); }

.hgu-instituicao__selos {
	list-style: none;
	margin: var(--hgu-e-5) 0 0;
	padding: 0;
	display: grid;
	gap: 0.625rem;
	font-size: var(--hgu-t-sm);
}
.hgu-instituicao__selos li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.hgu-instituicao__selos svg { color: #fff; }

.hgu-instituicao__acao { margin-top: var(--hgu-e-6); }

.hgu-instituicao__globo {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Área do canvas: quadrada, com brilho por trás para assentar no fundo. */
.hgu-globo {
	position: relative;
	width: 100%;
	max-width: 30rem;
	aspect-ratio: 1 / 1;
}
.hgu-globo::before {
	content: '';
	position: absolute;
	inset: 12%;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 45%, rgba(80, 160, 255, 0.35), rgba(80, 160, 255, 0) 70%);
	filter: blur(18px);
}
.hgu-globo canvas {
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: grab;
	transition: opacity 600ms ease;
	contain: layout paint size;
}

.hgu-globo__legenda {
	margin: var(--hgu-e-4) 0 0.75rem;
	font-size: var(--hgu-t-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
}
.hgu-globo__paises {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
}
.hgu-globo__paises li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.8rem;
	border-radius: var(--hgu-raio-pill);
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.22);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-xs);
	color: #fff;
}
.hgu-globo__paises img {
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	object-fit: cover;
}

@media (max-width: 719px) {
	.hgu-globo { max-width: 20rem; }
	.hgu-instituicao__texto p { font-size: var(--hgu-t-base); }
}

/* --------------------------------------------------------------------------
   Acreditação
   -------------------------------------------------------------------------- */
.hgu-acreditacao__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: center;
}
@media (min-width: 900px) {
	.hgu-acreditacao__grade { grid-template-columns: 1fr 1.2fr; gap: var(--hgu-e-8); }
}
.hgu-acreditacao__figura {
	margin: var(--hgu-e-5) 0 0;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--hgu-sombra-sm);
	max-width: 30rem;
}
.hgu-acreditacao__figura img { width: 100%; }

.hgu-acreditacao__cartao {
	background: #fff;
	border: 1px solid var(--hgu-linha);
	border-left: 4px solid var(--hgu-azul-800);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-6);
	box-shadow: var(--hgu-sombra-sm);
}
.hgu-acreditacao__cartao h3 {
	font-size: var(--hgu-t-lg);
	margin-bottom: var(--hgu-e-2);
}
.hgu-acreditacao__sigla {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-xs);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--hgu-azul-800);
	margin-bottom: var(--hgu-e-3);
}

/* --------------------------------------------------------------------------
   CTA final
   -------------------------------------------------------------------------- */
.hgu-cta__caixa {
	position: relative;
	isolation: isolate;
	background: var(--hgu-azul-800);
	background-size: cover;
	background-position: center;
	border-radius: var(--hgu-raio-lg);
	color: #fff;
	text-align: center;
	padding: clamp(2.5rem, 1.5rem + 5vw, 5rem) var(--hgu-gutter);
	overflow: hidden;
}
/* Véu azul por cima da foto: o texto continua legível e a marca, coerente. */
.hgu-cta__caixa--imagem::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(135deg, rgba(2, 51, 124, 0.94) 0%, rgba(3, 68, 164, 0.9) 55%, rgba(2, 51, 124, 0.96) 100%);
}
.hgu-cta__caixa h2 {
	color: #fff;
	max-width: 22ch;
	margin-inline: auto;
	text-wrap: balance;
}
.hgu-cta__rotulo {
	display: inline-block;
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-sm);
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
	margin-bottom: var(--hgu-e-4);
}
.hgu-cta__texto {
	max-width: 56ch;
	margin: 0 auto var(--hgu-e-6);
	color: rgba(255, 255, 255, 0.9);
	font-size: var(--hgu-t-sm);
}

/* --------------------------------------------------------------------------
   Página de mestrado
   -------------------------------------------------------------------------- */
.hgu-mestrado-hero {
	background: linear-gradient(180deg, var(--hgu-azul-050) 0%, #ffffff 100%);
	border-bottom: 1px solid var(--hgu-linha);
	padding-block: clamp(2.5rem, 1.5rem + 5vw, 5rem);
}
.hgu-mestrado-hero__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
}
@media (min-width: 980px) {
	.hgu-mestrado-hero__grade { grid-template-columns: 1.25fr 1fr; gap: var(--hgu-e-8); }
}
.hgu-mestrado-hero h1 { text-wrap: balance; }
.hgu-mestrado-hero__texto { font-size: var(--hgu-t-md); }
.hgu-mestrado-hero__texto p + p { margin-top: var(--hgu-e-4); }

.hgu-selo--azul {
	background: var(--hgu-azul-800);
	border-color: var(--hgu-azul-800);
	color: #fff;
}

.hgu-fichas {
	display: grid;
	gap: var(--hgu-e-3);
	grid-template-columns: 1fr;
	align-content: start;
}
@media (min-width: 560px) {
	.hgu-fichas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 980px) {
	.hgu-fichas { grid-template-columns: 1fr; }
}
.hgu-ficha {
	background: #fff;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-4) var(--hgu-e-5);
	display: flex;
	align-items: center;
	gap: var(--hgu-e-4);
}
.hgu-ficha__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	flex: 0 0 auto;
	border-radius: var(--hgu-raio-sm);
	background: var(--hgu-azul-050);
	color: var(--hgu-azul-800);
}
.hgu-ficha__rotulo {
	display: block;
	font-size: var(--hgu-t-xs);
	color: var(--hgu-texto-suave);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.hgu-ficha__valor {
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-lg);
	color: var(--hgu-tinta);
	line-height: 1.2;
}

.hgu-faixa-contato {
	background: var(--hgu-azul-900);
	color: #fff;
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--hgu-e-4);
	margin-top: var(--hgu-e-6);
}
.hgu-faixa-contato h2 {
	color: #fff;
	font-size: var(--hgu-t-lg);
	margin: 0;
	max-width: 40ch;
}

/* Foto do bloco institucional da página de curso */
.hgu-mestrado__figura {
	margin: 0 0 var(--hgu-e-5);
	border-radius: var(--hgu-raio);
	overflow: hidden;
	max-width: 26rem;
}
.hgu-mestrado__figura img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Disciplinas */
.hgu-disciplinas {
	display: grid;
	gap: var(--hgu-e-3);
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: hgu-disciplina;
}
@media (min-width: 720px) {
	.hgu-disciplinas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hgu-disciplina {
	display: flex;
	align-items: flex-start;
	gap: var(--hgu-e-4);
	background: #fff;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio-sm);
	padding: var(--hgu-e-4);
}
.hgu-disciplina__num {
	counter-increment: hgu-disciplina;
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-base);
	color: var(--hgu-azul-800);
	background: var(--hgu-azul-050);
	border-radius: var(--hgu-raio-sm);
	min-width: 2.25rem;
	height: 2.25rem;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
}
.hgu-disciplina__num::before { content: counter(hgu-disciplina) '.'; }
.hgu-disciplina__titulo {
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	color: var(--hgu-tinta-2);
	line-height: 1.4;
}
.hgu-disciplina__nota {
	display: block;
	font-family: var(--hgu-fonte-texto);
	font-weight: 400;
	font-size: var(--hgu-t-xs);
	color: var(--hgu-texto-suave);
}

/* Objetivos */
.hgu-objetivos {
	display: grid;
	gap: var(--hgu-e-4);
	grid-template-columns: 1fr;
}
@media (min-width: 880px) {
	.hgu-objetivos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.hgu-objetivo {
	background: var(--hgu-azul-900);
	color: rgba(255, 255, 255, 0.9);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	font-size: var(--hgu-t-sm);
	display: flex;
	flex-direction: column;
	gap: var(--hgu-e-4);
}
.hgu-objetivo__icone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--hgu-raio-sm);
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

/* Valores institucionais */
.hgu-valores {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hgu-e-3);
	list-style: none;
	margin: var(--hgu-e-5) 0 0;
	padding: 0;
}
.hgu-valor {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 1rem;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio-pill);
	font-family: var(--hgu-fonte-titulo);
	font-weight: 500;
	font-size: var(--hgu-t-sm);
	color: var(--hgu-tinta);
	background: #fff;
}
.hgu-valor svg { color: var(--hgu-azul-800); }

/* Parceria */
.hgu-parceria {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: center;
	background: var(--hgu-fundo-alt);
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
}
@media (min-width: 880px) {
	.hgu-parceria { grid-template-columns: 1fr 1.3fr; gap: var(--hgu-e-7); }
}
.hgu-parceria__figura {
	margin: 0;
	display: grid;
	place-items: center;
	background: #fff;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-6);
	min-height: 10rem;
}

/* Com foto, a imagem preenche o bloco e o selo do parceiro fica sobre ela. */
.hgu-parceria__figura--foto {
	position: relative;
	padding: 0;
	overflow: hidden;
	border: 0;
	min-height: 15rem;
}
.hgu-parceria__figura--foto img {
	grid-area: 1 / 1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/*
 * Selo do parceiro sobre a foto. O logo da UniLife é claro, então a pílula é
 * escura e translúcida — com fundo branco ele sumiria.
 */
.hgu-parceria__figura--foto .hgu-parceria__logo {
	position: absolute;
	left: var(--hgu-e-4);
	bottom: var(--hgu-e-4);
	width: auto;
	height: auto;
	max-width: 74%;
	max-height: 4.25rem;
	object-fit: contain;
	padding: 0.55rem 0.85rem;
	background: rgba(3, 12, 30, 0.55);
	backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--hgu-raio-sm);
}
.hgu-parceria h2 {
	font-size: var(--hgu-t-xl);
	text-wrap: balance;
}

/* --------------------------------------------------------------------------
   Sobre nós
   -------------------------------------------------------------------------- */
.hgu-sobre__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 980px) {
	.hgu-sobre__grade {
		grid-template-columns: 1.4fr 1fr;
		gap: var(--hgu-e-8);
	}
}

.hgu-sobre__figura {
	margin: 0;
	border-radius: var(--hgu-raio);
	overflow: hidden;
	background: var(--hgu-azul-050);
}
.hgu-sobre__figura img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hgu-sobre__figura--larga {
	margin-top: var(--hgu-e-5);
	max-width: 32rem;
}

.hgu-pilares {
	display: grid;
	gap: var(--hgu-e-4);
	grid-template-columns: 1fr;
}
@media (min-width: 720px) {
	.hgu-pilares { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
	.hgu-pilares { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.hgu-pilar {
	background: #fff;
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
}
.hgu-pilar h3 {
	font-size: var(--hgu-t-base);
	margin-bottom: var(--hgu-e-2);
}
.hgu-pilar p {
	font-size: var(--hgu-t-sm);
	margin: 0;
}

.hgu-linha-tempo {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--hgu-e-5);
	border-left: 2px solid var(--hgu-azul-100);
	padding-left: var(--hgu-e-5);
}
.hgu-linha-tempo li { position: relative; }
.hgu-linha-tempo li::before {
	content: '';
	position: absolute;
	left: calc(var(--hgu-e-5) * -1 - 6px);
	top: 0.55rem;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--hgu-azul-800);
}
.hgu-linha-tempo h3 {
	font-size: var(--hgu-t-base);
	margin-bottom: 0.25rem;
}
.hgu-linha-tempo p {
	font-size: var(--hgu-t-sm);
	margin: 0;
}

/* --------------------------------------------------------------------------
   Índice da política de privacidade
   -------------------------------------------------------------------------- */
.hgu-privacidade__grade {
	display: grid;
	gap: var(--hgu-e-6);
	grid-template-columns: 1fr;
}
/*
 * Sem isto, a coluna de texto assume min-width:auto e a tabela larga
 * estica a página inteira no celular em vez de rolar dentro da caixa.
 */
.hgu-privacidade__grade > * { min-width: 0; }
@media (min-width: 980px) {
	.hgu-privacidade__grade { grid-template-columns: 260px 1fr; gap: var(--hgu-e-8); }
}
.hgu-indice {
	position: sticky;
	top: calc(var(--hgu-header-h) + 1.5rem);
	align-self: start;
	background: var(--hgu-fundo-alt);
	border: 1px solid var(--hgu-linha);
	border-radius: var(--hgu-raio);
	padding: var(--hgu-e-5);
	font-size: var(--hgu-t-sm);
}
.hgu-indice summary {
	font-family: var(--hgu-fonte-titulo);
	font-weight: 700;
	font-size: var(--hgu-t-base);
	color: var(--hgu-tinta);
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hgu-e-3);
	min-height: 32px;
}
.hgu-indice summary::-webkit-details-marker { display: none; }
.hgu-indice summary::after {
	content: '';
	width: 0.6rem;
	height: 0.6rem;
	border-right: 2px solid var(--hgu-azul-800);
	border-bottom: 2px solid var(--hgu-azul-800);
	transform: rotate(45deg);
	transition: transform var(--hgu-transicao);
}
.hgu-indice__caixa[open] summary::after { transform: rotate(-135deg); }
.hgu-indice__caixa[open] summary { margin-bottom: var(--hgu-e-3); }
.hgu-indice ol {
	margin: 0;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.5rem;
}
.hgu-indice a { text-decoration: none; }
.hgu-indice a:hover { text-decoration: underline; }
@media (max-width: 979px) {
	.hgu-indice { position: static; }
}

/* --------------------------------------------------------------------------
   Ajustes finos para telas pequenas
   -------------------------------------------------------------------------- */
@media (max-width: 719px) {
	/* Cartões mais compactos: menos rolagem para ver o conteúdo */
	.hgu-numero {
		min-height: 0;
		padding: var(--hgu-e-4);
		gap: var(--hgu-e-3);
	}
	.hgu-numero--cta { min-height: 9rem; }
	.hgu-curso { min-height: 19rem; }
	.hgu-cursos__painel {
		min-height: 0;
		padding: var(--hgu-e-5);
	}
	.hgu-cartao,
	.hgu-acreditacao__cartao,
	.hgu-objetivo { padding: var(--hgu-e-4); }
	.hgu-cartao__icone {
		width: 2.75rem;
		height: 2.75rem;
	}
	.hgu-cartao--imagem { min-height: 11rem; }

	/* Faixa de contato e CTA em coluna, botão inteiro */
	.hgu-faixa-contato { flex-direction: column; align-items: stretch; }
	.hgu-faixa-contato .hgu-btn,
	.hgu-cta__caixa .hgu-btn { width: 100%; }
	.hgu-cta__caixa { border-radius: var(--hgu-raio); }

	/* Chips de dispositivo ocupam a linha inteira, sem quebra estranha */
	.hgu-dispositivos { gap: 0.5rem; }
	.hgu-dispositivo { flex: 1 1 8rem; justify-content: center; }

	/* Disciplinas e recursos com respiro menor */
	.hgu-disciplina { padding: 0.875rem; }
	.hgu-recursos { padding: var(--hgu-e-4); gap: var(--hgu-e-4); }

	/* Figura da plataforma não precisa de moldura grande no celular */
	.hgu-experiencia__figura {
		min-height: 0;
		padding: var(--hgu-e-4);
	}

	/* Parceria: logo acima do texto, sem coluna vazia */
	.hgu-parceria { padding: var(--hgu-e-5); }
	.hgu-parceria__figura { min-height: 7rem; }
	.hgu-parceria .hgu-btn { width: 100%; }
}

/* Área de toque mínima em qualquer botão ou chip tocável */
@media (pointer: coarse) {
	.hgu-btn,
	.hgu-filtro,
	.hgu-nav a { min-height: 44px; }
}
