@import url("fontes.css");

/* Paleta retirada da apresentacao MCR: #001E62 e o azul do fundo dos slides,
   #195AB4 e a cor mais usada nos elementos, #418FDE o acento claro. */
:root {
	--azul-fundo:    #001E62;
	--azul-medio:    #195AB4;
	--azul-claro:    #418FDE;
	--azul-profundo: #0A1E8C;
	--ardosia:       #33404F;
	--cinza-azul:    #9AA4B2;
	--cinza-claro:   #D7DDE6;
	--quase-branco:  #F3F5F8;
	--branco:        #FFFFFF;

	--largura:  1160px;
	--gutter:   clamp(1.25rem, 4vw, 3rem);
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-weight: 300;
	font-size: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
	line-height: 1.65;
	color: var(--ardosia);
	background: var(--branco);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }
a { color: inherit; }

.envolve {
	width: 100%;
	max-width: var(--largura);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* ---------------------------------------------------------------- cabecalho */
.cabecalho {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--azul-fundo);
	border-bottom: 1px solid rgba(255,255,255,.10);
}
.cabecalho__interior {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 76px;
	flex-wrap: wrap;
}
.marca {
	display: inline-flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--branco);
	line-height: 1.1;
}
.marca__nome {
	font-size: clamp(.95rem, 2vw, 1.12rem);
	font-weight: 500;
	letter-spacing: .2em;
	text-indent: .2em;
	white-space: nowrap;
}
.marca__sub {
	margin-top: .35rem;
	font-size: .6rem;
	font-weight: 300;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--cinza-azul);
}

.navegacao { display: flex; gap: clamp(.9rem, 2.2vw, 1.75rem); flex-wrap: wrap; }
.navegacao a {
	position: relative;
	padding: .4rem 0;
	font-size: .82rem;
	font-weight: 400;
	letter-spacing: .09em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--cinza-claro);
	transition: color .2s ease;
}
.navegacao a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: var(--azul-claro);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.navegacao a:hover, .navegacao a:focus-visible { color: var(--branco); }
.navegacao a:hover::after, .navegacao a:focus-visible::after, .navegacao a[aria-current="page"]::after { transform: scaleX(1); }
.navegacao a[aria-current="page"] { color: var(--branco); }

/* -------------------------------------------------------------------- heroi */
.heroi {
	position: relative;
	background: var(--azul-fundo);
	color: var(--branco);
	overflow: hidden;
}
.heroi::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(70rem 40rem at 78% 12%, rgba(65,143,222,.20), transparent 62%),
		radial-gradient(48rem 34rem at 8% 96%, rgba(25,90,180,.24), transparent 60%);
	pointer-events: none;
}
.heroi__interior {
	position: relative;
	padding-block: clamp(4.5rem, 12vw, 9.5rem);
}
/* O nome por extenso e muito mais longo do que uma marca curta: o corpo desce
   e o espacamento entre letras aperta, senao parte a linha em ecras estreitos. */
.heroi__marca {
	margin: 0;
	font-size: clamp(1.9rem, 6.2vw, 4.15rem);
	font-weight: 300;
	letter-spacing: .14em;
	text-indent: .14em;
	line-height: 1.12;
	text-wrap: balance;
}
.heroi__papel {
	margin: clamp(1.4rem, 3.5vw, 2rem) 0 0;
	font-size: clamp(1.05rem, 2.8vw, 1.75rem);
	font-weight: 300;
	color: var(--cinza-claro);
}
.heroi__regua {
	width: 84px;
	height: 2px;
	margin: clamp(2rem, 5vw, 3rem) 0 0;
	background: var(--azul-claro);
	border: 0;
}
.heroi__lemas {
	margin: clamp(1.8rem, 4vw, 2.5rem) 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	font-size: clamp(.9rem, 2vw, 1.05rem);
	font-weight: 300;
	letter-spacing: .14em;
	color: var(--cinza-azul);
}
.heroi__lemas span { color: var(--azul-claro); padding-inline: .45rem; }

/* ---------------------------------------------------------------- cabecalho de pagina */
.topo-pagina {
	background: var(--azul-fundo);
	color: var(--branco);
	padding-block: clamp(3rem, 8vw, 5.5rem);
}
.topo-pagina__capitulo {
	margin: 0 0 .9rem;
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--azul-claro);
}
.topo-pagina h1 {
	margin: 0;
	font-size: clamp(2rem, 5.5vw, 3.4rem);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -.01em;
}
.topo-pagina p {
	margin: 1.4rem 0 0;
	max-width: 62ch;
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	color: var(--cinza-claro);
}

/* ligacao para a versao noutro idioma */
.alt-idioma {
	margin-top: 1.6rem !important;
	font-size: .78rem !important;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.alt-idioma a {
	color: var(--azul-claro);
	text-decoration: none;
	border-bottom: 1px solid rgba(65,143,222,.5);
	padding-bottom: .15rem;
	transition: color .2s ease, border-color .2s ease;
}
.alt-idioma a:hover, .alt-idioma a:focus-visible { color: var(--branco); border-color: var(--branco); }

/* ------------------------------------------------------------------ seccoes */
.seccao { padding-block: clamp(3.5rem, 9vw, 6rem); }
.seccao--clara { background: var(--quase-branco); }
.seccao--escura { background: var(--azul-fundo); color: var(--branco); }
.seccao--escura .seccao__titulo { color: var(--branco); }
.seccao--escura .seccao__chapeu { color: var(--azul-claro); }

.seccao__chapeu {
	margin: 0 0 .8rem;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--azul-medio);
}
.seccao__titulo {
	margin: 0;
	font-size: clamp(1.6rem, 4vw, 2.5rem);
	font-weight: 300;
	line-height: 1.2;
	color: var(--azul-fundo);
}
.seccao__intro {
	margin: 1.2rem 0 0;
	max-width: 68ch;
	font-size: clamp(1rem, 2vw, 1.12rem);
}

/* separa grupos de cartoes dentro da mesma seccao (ex.: em curso / concluidos) */
.seccao__subtitulo {
	margin: clamp(2.25rem, 5vw, 3rem) 0 0;
	padding-bottom: .6rem;
	border-bottom: 1px solid var(--cinza-claro);
	font-size: .74rem;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--azul-medio);
}
.seccao__subtitulo + .grelha { margin-top: clamp(1.25rem, 3vw, 1.75rem); }
.seccao--escura .seccao__subtitulo { color: var(--azul-claro); border-bottom-color: rgba(255,255,255,.16); }
.seccao--escura .seccao__intro { color: var(--cinza-claro); }

/* -------------------------------------------------------------------- grelhas */
.grelha { display: grid; gap: clamp(1.25rem, 3vw, 2rem); margin-top: clamp(2rem, 5vw, 3rem); }
.grelha--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.grelha--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.5rem), 1fr)); }
.grelha--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }


/* lista de valencias dentro dos cartoes da homepage */
.mini-lista { margin: .9rem 0 0; padding: 0; list-style: none; }
.mini-lista li { position: relative; padding-left: 1.1rem; margin-bottom: .35rem; font-size: .89rem; line-height: 1.5; }
.mini-lista li::before { content: ""; position: absolute; left: 0; top: .68em; width: 5px; height: 1px; background: var(--azul-medio); }
.mini-lista a { color: var(--ardosia); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s ease, color .2s ease; }
.mini-lista a:hover, .mini-lista a:focus-visible { color: var(--azul-fundo); border-bottom-color: var(--azul-medio); }

/* sequencia de arranque de mandato (/modelo-de-negocio) */
.passos { margin-top: clamp(2rem, 5vw, 3rem); display: flex; flex-direction: column; }
.passo {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr) auto;
	align-items: start;
	gap: .5rem 1.5rem;
	padding: 1.4rem 0;
	border-bottom: 1px solid var(--cinza-claro);
}
.passo:first-child { border-top: 1px solid var(--cinza-claro); }
@media (max-width: 40rem) {
	.passo { grid-template-columns: 2.5rem minmax(0, 1fr); }
	.passo__prazo { grid-column: 2; }
}
.passo__num { font-size: .8rem; font-weight: 500; letter-spacing: .12em; color: var(--azul-claro); padding-top: .25rem; }
.passo h3 { margin: 0 0 .3rem; font-size: clamp(1.02rem, 2.2vw, 1.18rem); font-weight: 400; color: var(--azul-fundo); }
.passo p { margin: 0; font-size: .93rem; color: var(--ardosia); }
.passo__prazo {
	font-size: .68rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
	color: var(--cinza-azul); white-space: nowrap; padding-top: .35rem;
}

/* barras da natureza dos mandatos (/percurso) */
.barras { margin-top: clamp(2rem, 5vw, 3rem); display: flex; flex-direction: column; gap: .9rem; }
.barra {
	display: grid;
	grid-template-columns: minmax(0, 13rem) minmax(0, 1fr) 3rem;
	align-items: center;
	gap: 1rem;
}
@media (max-width: 40rem) {
	.barra { grid-template-columns: minmax(0, 1fr) 3rem; }
	.barra__traco { grid-column: 1 / -1; order: 3; }
}
.barra__nome { font-size: .95rem; color: var(--ardosia); }
.barra__traco { display: block; height: 8px; background: var(--cinza-claro); }
.barra__traco > span { display: block; height: 100%; background: var(--azul-medio); }
.barra__valor { font-size: 1.05rem; font-weight: 400; color: var(--azul-fundo); text-align: right; font-variant-numeric: tabular-nums; }
.seccao--escura .barra__nome { color: var(--cinza-claro); }
.seccao--escura .barra__traco { background: rgba(255,255,255,.16); }
.seccao--escura .barra__traco > span { background: var(--azul-claro); }
.seccao--escura .barra__valor { color: var(--branco); }

/* valores longos (ex.: "€ 3,2 bn + R$ 14 bn") nao devem dominar a linha */
.numero__valor--longo { font-size: clamp(1.25rem, 2.6vw, 1.7rem) !important; line-height: 1.25; }

/* quatro numeros em vez de tres */
.numeros--quatro { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }

/* operacoes de referencia (/percurso) */
.operacao {
	display: grid;
	gap: .35rem clamp(1rem, 4vw, 2.5rem);
	grid-template-columns: minmax(0, 1fr);
	padding: 1.35rem 0;
	border-bottom: 1px solid rgba(255,255,255,.14);
}
@media (min-width: 52rem) { .operacao { grid-template-columns: minmax(0, 13rem) minmax(0, 1fr); } }
.operacao { scroll-margin-top: 100px; }
.operacao:target h3 { color: var(--azul-claro); }
.operacao:first-of-type { border-top: 1px solid rgba(255,255,255,.14); margin-top: clamp(1.75rem,4vw,2.5rem); }
.operacao__periodo {
	margin: 0;
	font-size: .8rem;
	letter-spacing: .1em;
	color: var(--azul-claro);
	font-variant-numeric: tabular-nums;
}
.operacao h3 { margin: 0 0 .35rem; font-size: clamp(1.05rem, 2.4vw, 1.25rem); font-weight: 400; color: var(--branco); }
.operacao p { margin: 0; font-size: .95rem; color: var(--cinza-claro); }
/* em secção clara (/conceito-e-valencias: investigação) — as cores acima são para fundo escuro */
.seccao:not(.seccao--escura) .operacao { border-bottom-color: var(--cinza-claro); }
.seccao:not(.seccao--escura) .operacao:first-of-type { border-top-color: var(--cinza-claro); }
.seccao:not(.seccao--escura) .operacao__periodo { color: var(--azul-medio); }
.seccao:not(.seccao--escura) .operacao h3 { color: var(--azul-fundo); }
.seccao:not(.seccao--escura) .operacao p { color: var(--ardosia); }

/* tabela comparativa de duas colunas (/family-office) */
.comparar { margin-top: clamp(2rem, 5vw, 3rem); display: flex; flex-direction: column; }
.comparar__linha {
	display: grid;
	grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) minmax(0, 1fr);
	gap: .4rem 1.5rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(255,255,255,.14);
	font-size: .92rem;
	line-height: 1.55;
}
@media (max-width: 46rem) {
	.comparar__linha { grid-template-columns: minmax(0, 1fr); gap: .2rem; padding: 1.1rem 0; }
	.comparar__linha--cab { display: none; }
}
.comparar__linha:first-child { border-top: 1px solid rgba(255,255,255,.14); }
.comparar__rot { color: var(--azul-claro); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; padding-top: .2rem; }
.comparar__linha span:not(.comparar__rot) { color: var(--cinza-claro); }
.comparar__linha--cab span:not(.comparar__rot) { color: var(--branco); font-weight: 500; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }

/* nota de rodape de seccao */
.nota {
	margin: clamp(1.75rem, 4vw, 2.5rem) 0 0;
	max-width: 76ch;
	font-size: .8rem;
	line-height: 1.6;
	color: var(--cinza-azul);
}

/* cartoes numerados (valores, modelo de negocio) */
.cartao {
	padding: clamp(1.4rem, 3vw, 1.9rem);
	background: var(--branco);
	border: 1px solid var(--cinza-claro);
	border-top: 2px solid var(--azul-medio);
}
.seccao--escura .cartao {
	background: rgba(255,255,255,.045);
	border-color: rgba(255,255,255,.14);
	border-top-color: var(--azul-claro);
}
.cartao__num {
	white-space: nowrap;
	display: block;
	margin-bottom: .8rem;
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: .16em;
	color: var(--azul-claro);
}
.cartao h3 {
	margin: 0 0 .6rem;
	font-size: 1.12rem;
	font-weight: 500;
	color: var(--azul-fundo);
}
.seccao--escura .cartao h3 { color: var(--branco); }
.cartao p { margin: 0; font-size: .96rem; }
.seccao--escura .cartao p { color: var(--cinza-claro); }

/* numeros de destaque */
.numeros {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: clamp(1.5rem, 4vw, 2.5rem);
	margin-top: clamp(2.5rem, 6vw, 3.5rem);
	padding-top: clamp(2rem, 5vw, 2.75rem);
	border-top: 1px solid rgba(255,255,255,.16);
}
.numero__valor {
	display: block;
	font-size: clamp(2.1rem, 6vw, 3rem);
	font-weight: 300;
	line-height: 1;
	color: var(--azul-claro);
}
.numero__nota {
	display: block;
	margin-top: .7rem;
	font-size: .88rem;
	color: var(--cinza-azul);
}

/* lista de valencias (indice do capitulo II) */
.indice { margin-top: clamp(2rem, 5vw, 3rem); display: grid; gap: 0; }
.indice__item {
	display: flex;
	align-items: baseline;
	gap: clamp(1rem, 3vw, 2rem);
	padding: 1.15rem 0;
	border-bottom: 1px solid var(--cinza-claro);
	text-decoration: none;
	color: inherit;
	transition: padding-left .2s ease, background-color .2s ease;
}
.indice__item:first-child { border-top: 1px solid var(--cinza-claro); }
.indice__item:hover, .indice__item:focus-visible { padding-left: .75rem; background: rgba(25,90,180,.05); }
.indice__num { font-size: .82rem; font-weight: 500; letter-spacing: .12em; color: var(--azul-claro); min-width: 2.2rem; }
.indice__nome { font-size: clamp(1rem, 2.2vw, 1.18rem); font-weight: 400; color: var(--azul-fundo); }


.cartao__exemplos {
	margin: .9rem 0 0 !important;
	padding-top: .8rem;
	border-top: 1px solid var(--cinza-claro);
	font-size: .8rem !important;
	line-height: 1.5;
	color: var(--cinza-azul) !important;
}

/* situacoes tipicas + entregaveis dentro de cada valencia */
.valencia__extra {
	margin-top: 1.6rem;
	display: grid;
	gap: 1.4rem 2.5rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	padding-top: 1.3rem;
	border-top: 1px solid var(--cinza-claro);
}
.valencia__extra h4 {
	margin: 0 0 .6rem;
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--cinza-azul);
}
.valencia__extra ul { margin: 0; padding: 0; list-style: none; }
.valencia__extra li {
	position: relative;
	padding-left: 1.1rem;
	margin-bottom: .4rem;
	font-size: .89rem;
	line-height: 1.5;
	color: var(--ardosia);
}
.valencia__extra li::before { content: ""; position: absolute; left: 0; top: .68em; width: 5px; height: 1px; background: var(--azul-medio); }

/* remissao de cada valencia para as operacoes que a ilustram */
.ilustram { margin: 1.1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--cinza-claro); font-size: .85rem; line-height: 1.7; }
.ilustram__rot { display: block; margin-bottom: .3rem; font-size: .68rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--cinza-azul); }
.ilustram a { color: var(--azul-medio); text-decoration: none; border-bottom: 1px solid rgba(25,90,180,.35); transition: border-color .2s ease, color .2s ease; }
.ilustram a:hover, .ilustram a:focus-visible { color: var(--azul-fundo); border-bottom-color: var(--azul-fundo); }
.ilustram span:not(.ilustram__rot) { color: var(--cinza-azul); }

/* linha de servico: cabecalho de agrupamento das valencias */
.linha-servico {
	margin-top: clamp(2.5rem, 6vw, 4rem);
	padding-bottom: .9rem;
	border-bottom: 2px solid var(--azul-fundo);
}
.linha-servico:first-of-type { margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.linha-servico__num {
	display: block;
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--azul-claro);
	margin-bottom: .4rem;
}
.linha-servico h3 {
	margin: 0;
	font-size: clamp(1.15rem, 2.6vw, 1.45rem);
	font-weight: 400;
	color: var(--azul-fundo);
}

/* cartoes de enquadramento: setores, geografias, contrapartes */
.enquadramento { margin-top: clamp(2rem, 5vw, 3rem); display: grid; gap: 1.5rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.enquadramento h4 {
	margin: 0 0 .5rem; font-size: .68rem; font-weight: 500; letter-spacing: .2em;
	text-transform: uppercase; color: var(--azul-claro);
}
.enquadramento p { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--cinza-claro); }

/* blocos de valencia detalhados */
.valencia {
	padding-block: clamp(2.25rem, 5vw, 3rem);
	border-bottom: 1px solid var(--cinza-claro);
	display: grid;
	gap: clamp(1.25rem, 4vw, 3rem);
	grid-template-columns: minmax(0, 1fr);
	scroll-margin-top: 100px;
}
@media (min-width: 62rem) {
	.valencia { grid-template-columns: minmax(0, 22rem) minmax(0, 1fr); }
}
.valencia:last-of-type { border-bottom: 0; }
.valencia__chapeu {
	margin: 0 0 .55rem;
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--azul-claro);
}
.valencia h3 {
	margin: 0;
	font-size: clamp(1.25rem, 3vw, 1.65rem);
	font-weight: 400;
	line-height: 1.25;
	color: var(--azul-fundo);
}
.valencia__resumo { margin: 0 0 1.15rem; color: var(--ardosia); }
.valencia ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .7rem; }
.valencia li { position: relative; padding-left: 1.5rem; font-size: .97rem; }
.valencia li::before {
	content: "";
	position: absolute;
	left: 0; top: .62em;
	width: 7px; height: 1px;
	background: var(--azul-claro);
}

/* citacao */
.citacao {
	margin: clamp(2.5rem, 6vw, 3.5rem) 0 0;
	padding: clamp(1.75rem, 4vw, 2.5rem);
	background: rgba(255,255,255,.05);
	border-left: 2px solid var(--azul-claro);
	font-size: clamp(1.05rem, 2.6vw, 1.35rem);
	font-weight: 300;
	line-height: 1.5;
	color: var(--branco);
}
.citacao p { margin: 0; }

/* ----------------------------------------------------------------------- CV */
.cargo {
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--cinza-claro);
}
.cargo:first-of-type { border-top: 1px solid var(--cinza-claro); }
.seccao--escura .cargo { border-color: rgba(255,255,255,.14); }

.cargo__cab {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .35rem 1.5rem;
}
.cargo__titulo {
	margin: 0;
	font-size: clamp(1.02rem, 2.2vw, 1.15rem);
	font-weight: 500;
	color: var(--azul-fundo);
	flex: 1 1 22rem;
}
.seccao--escura .cargo__titulo { color: var(--branco); }
.cargo__data {
	margin: 0;
	font-size: .82rem;
	font-weight: 400;
	letter-spacing: .06em;
	color: var(--azul-medio);
	white-space: nowrap;
}
.seccao--escura .cargo__data { color: var(--azul-claro); }
.cargo__org {
	margin: .2rem 0 0;
	font-size: .93rem;
	color: var(--azul-medio);
	flex-basis: 100%;
}
.seccao--escura .cargo__org { color: var(--azul-claro); }
.cargo__desc { margin: .6rem 0 0; font-size: .95rem; }
.seccao--escura .cargo__desc { color: var(--cinza-claro); }

/* lista compacta (experiencia anterior) */
.compacta { margin-top: clamp(1.5rem, 4vw, 2rem); display: grid; gap: 0; }
.compacta__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .2rem 1.5rem;
	padding: .95rem 0;
	border-bottom: 1px solid var(--cinza-claro);
}
.compacta__item:first-child { border-top: 1px solid var(--cinza-claro); }
.compacta__nome { font-size: 1rem; font-weight: 500; color: var(--azul-fundo); }
.compacta__data { font-size: .82rem; color: var(--azul-medio); white-space: nowrap; }
.compacta__desc { grid-column: 1 / -1; font-size: .92rem; color: var(--ardosia); }

/* competencias */
.competencias { margin: clamp(1.8rem,4vw,2.5rem) 0 0; padding: 0; list-style: none;
	display: grid; gap: .55rem 2rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); }
.competencias li { position: relative; padding-left: 1.4rem; font-size: .97rem; }
.competencias li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 1px; background: var(--azul-medio); }
.seccao--escura .competencias li::before { background: var(--azul-claro); }

/* ligacoes para as teses */
.documentos { margin-top: 1.2rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.doc {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .6rem 1.05rem;
	font-size: .88rem;
	font-weight: 400;
	text-decoration: none;
	color: var(--azul-fundo);
	background: var(--branco);
	border: 1px solid var(--azul-medio);
	transition: background-color .2s ease, color .2s ease;
}
.doc:hover, .doc:focus-visible { background: var(--azul-fundo); color: var(--branco); border-color: var(--azul-fundo); }
.doc::before { content: "↗"; font-size: 1rem; line-height: 1; }
.doc__meta { color: var(--cinza-azul); font-size: .8rem; }
.doc:hover .doc__meta { color: var(--cinza-claro); }

/* estudos de caso */
.caso {
	padding: 1.35rem 0;
	border-bottom: 1px solid rgba(255,255,255,.14);
}
.caso:first-of-type { border-top: 1px solid rgba(255,255,255,.14); }
.caso h3 { margin: 0 0 .45rem; font-size: 1.05rem; font-weight: 500; color: var(--branco); }
.caso p { margin: 0; font-size: .94rem; color: var(--cinza-claro); }

/* ---------------------------------------------------------------- contactos */
.contactos__grelha {
	display: grid;
	gap: clamp(2rem, 5vw, 3.5rem);
	margin-top: clamp(2rem, 5vw, 3rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}
.bloco-morada h3 {
	margin: 0 0 1.1rem;
	padding-bottom: .7rem;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--azul-claro);
	border-bottom: 1px solid rgba(255,255,255,.16);
}
.bloco-morada ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.1rem; }
.bloco-morada li { font-size: .97rem; color: var(--cinza-claro); line-height: 1.55; }
.bloco-morada strong { display: block; font-weight: 500; color: var(--branco); }
.bloco-morada a { color: var(--branco); text-decoration: none; border-bottom: 1px solid var(--azul-claro); }
.bloco-morada a:hover { color: var(--azul-claro); }

/* ------------------------------------------------------------------- rodape */
.rodape {
	background: #001543;
	color: var(--cinza-azul);
	padding-block: 2.5rem;
	font-size: .85rem;
}
.rodape__interior {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	align-items: center;
	justify-content: space-between;
}
.rodape a { color: var(--cinza-claro); text-decoration: none; }
.rodape a:hover { color: var(--branco); }
.rodape__ligacoes { display: flex; gap: 1.5rem; flex-wrap: wrap; }

/* ------------------------------------------------------------ acessibilidade */
:focus-visible { outline: 2px solid var(--azul-claro); outline-offset: 3px; }

.saltar {
	position: absolute;
	left: -9999px;
	top: 0;
	padding: .75rem 1.25rem;
	background: var(--branco);
	color: var(--azul-fundo);
	z-index: 100;
}
.saltar:focus { left: 1rem; top: 1rem; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media print {
	.cabecalho, .rodape__ligacoes { display: none; }
	body { color: #000; background: #fff; }
	.heroi, .topo-pagina, .seccao--escura { background: #fff !important; color: #000 !important; }
}
