/* ══════════════════════════════════════════════════════════════════
   Site institucional — folha de estilo pública
   Identidade visual: CLAUDE.md §7. Nenhum hex fora das custom properties.
   ══════════════════════════════════════════════════════════════════ */

/* ── Tipos (variáveis, self-hosted, subset latin) ── */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400 500;
	font-display: swap;
	src: url('../fonts/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;
}
@font-face {
	font-family: 'Space Grotesk';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/space-grotesk-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;
}

/* ── Tokens ── */
:root {
	--fundo: #141b26;
	--fundo-topo: #1c2738;
	--superficie: #1b2430;
	/* nível acima da superfície (hover, destaques). Deriva de superficie
	   em direção ao texto de título → adapta-se a temas claros e escuros. */
	--superficie-2: color-mix(in srgb,var(--superficie),var(--titulo) 7%);
	--erro: #e5484d;
	--erro-texto: #ffd9da;
	/* estados de erro (validação) */
	--acento: #f5a200;
	--acento-hover: #ffbe3d;
	--texto: #e7ecf2;
	--titulo: #f4f7fa;
	--texto-2: #aeb8c4;
	--texto-3: #697585;
	--texto-4: #4d5766;
	--divisoria: #1b2531;
	--borda: #ffffff10;
	--borda-2: #ffffff12;
	--display: 'Space Grotesk',system-ui,-apple-system,sans-serif;
	--corpo: 'Inter',system-ui,-apple-system,sans-serif;
	--largura: 1120px;
	--largura-estreita: 760px;
	--raio: 14px;
	--gap: clamp(16px,3vw,28px);
}

/* ── Reset ── */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html {
	background: var(--fundo);
	scroll-behavior: smooth;
}
@media (prefers-reduced-motion:reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	font-family: var(--corpo);
	font-size: 16px;
	line-height: 1.65;
	color: var(--texto);
	background: var(--fundo);
	background-image: radial-gradient(115% 80% at 50% -8%,var(--fundo-topo) 0%,transparent 52%);
	background-attachment: fixed;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--acento);
	text-decoration: none;
}
a:hover {
	color: var(--acento-hover);
}

:focus-visible {
	outline: 2px solid var(--acento);
	outline-offset: 3px;
	border-radius: 4px;
}

h1,h2,h3,h4 {
	font-family: var(--display);
	color: var(--titulo);
	line-height: 1.2;
	letter-spacing: -.01em;
	font-weight: 600;
}

/* ── Utilitários ── */
.conter {
	width: 100%;
	max-width: var(--largura);
	margin-inline: auto;
	padding-inline: clamp(20px,5vw,40px);
}
.conter--estreito {
	max-width: var(--largura-estreita);
}

.eyebrow {
	font-family: var(--display);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--acento);
	margin-bottom: 14px;
}

.saltar {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 100;
	background: var(--superficie);
	color: var(--titulo);
	padding: 10px 16px;
	border-radius: 8px;
	border: 1px solid var(--borda-2);
}
.saltar:focus {
	left: 8px;
}

/* Grelha técnica de fundo (fio condutor visual, CLAUDE.md §7) */
.grelha-fundo {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.grelha-fundo::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image: linear-gradient(var(--grelha-cor,#ffffff08) 1px,transparent 1px),
		linear-gradient(90deg,var(--grelha-cor,#ffffff08) 1px,transparent 1px);
	background-size: var(--grelha-celula,56px) var(--grelha-celula,56px);
	-webkit-mask-image: radial-gradient(80% 70% at 50% 0%,#000 20%,transparent 78%);
	mask-image: radial-gradient(80% 70% at 50% 0%,#000 20%,transparent 78%);
}

/* ── Toggles de aparência (backoffice → classes no body) ── */
.tema-sem-grelha .grelha-fundo::before {
	display: none;
}

/* Padrões de grelha (redefinem o desenho de .grelha-fundo::before) */
.tema-grelha-pontos .grelha-fundo::before {
	background-image: radial-gradient(var(--grelha-cor,#ffffff08) 1.5px,transparent 1.6px);
	background-position: center;
}
.tema-grelha-diagonais .grelha-fundo::before {
	background-image: repeating-linear-gradient(45deg,var(--grelha-cor,#ffffff08) 0 1px,transparent 1px var(--grelha-celula,56px));
	background-size: auto;
}
.tema-grelha-xadrez .grelha-fundo::before {
	background-image: linear-gradient(45deg,var(--grelha-cor,#ffffff08) 25%,transparent 25%,transparent 75%,var(--grelha-cor,#ffffff08) 75%),
		linear-gradient(45deg,var(--grelha-cor,#ffffff08) 25%,transparent 25%,transparent 75%,var(--grelha-cor,#ffffff08) 75%);
	background-position: 0 0,calc(var(--grelha-celula,56px)/2) calc(var(--grelha-celula,56px)/2);
}
.tema-sem-guias .principal::before, .tema-sem-guias .principal::after {
	display: none;
}

/* Alternância de fundos: ritmo entre secções (standard moderno) */
.tema-alternado .principal>.seccao:nth-of-type(even) {
	background: color-mix(in srgb,var(--superficie) 55%,transparent);
	border-block: 1px solid var(--borda);
}
.tema-alternado .principal>.seccao--faixa {
	border-block: 0;
}

/* Primeiro serviço em destaque na home (grelha tipo "bento") */
@media (min-width:900px) {
	.tema-destaque .cartoes--servicos>li:first-child {
		grid-column: span 2;
	}
	.tema-destaque .cartoes--servicos>li:first-child .cartao__titulo {
		font-size: 24px;
	}
	.tema-destaque .cartoes--servicos>li:first-child .cartao__link {
		background: linear-gradient(135deg,color-mix(in srgb,var(--acento) 7%,var(--superficie)),var(--superficie) 60%);
	}
}

/* ── Cabeçalho / navegação ── */
.cabecalho {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--header-bg,color-mix(in srgb,var(--fundo) 88%,transparent));
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--divisoria);
}
.cabecalho__int {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 68px;
}
.marca {
	display: inline-flex;
	align-items: center;
}
.marca__logo {
	height: 36px;
	width: auto;
}

.nav__lista {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 6px;
}
.nav__link {
	display: inline-block;
	padding: 8px 14px;
	border-radius: 10px;
	color: var(--texto-2);
	font-size: 15px;
	font-weight: 500;
	transition: color .15s,background .15s;
}
.nav__link:hover {
	color: var(--titulo);
	background: var(--borda);
}
.nav__link.is-ativo {
	color: var(--titulo);
	background: var(--superficie);
}

.nav__botao {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 10px;
	border-radius: 10px;
}
.nav__botao span {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--texto);
	border-radius: 2px;
	transition: transform .2s,opacity .2s;
}
.nav__botao[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.nav__botao[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}
.nav__botao[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Seletor de idioma (só aparece com mais de um idioma ativo) */
.lingua-troca {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 3px;
	border: 1px solid var(--borda);
	border-radius: 10px;
}
.cabecalho__int:has(.lingua-troca) .nav {
	margin-left: auto;
}
.lingua-troca__op {
	display: inline-flex;
	align-items: center;
	padding: 5px 9px;
	border-radius: 7px;
	font-family: var(--fonte-titulo,inherit);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--texto-2);
	transition: color .15s,background .15s;
}
.lingua-troca__op:hover {
	color: var(--titulo);
	background: var(--borda);
}
.lingua-troca__op.is-ativo {
	color: var(--titulo);
	background: var(--superficie);
}

/* ── Principal / secções ── */
.principal {
	flex: 1 0 auto;
	position: relative;
}

/* Guias verticais da grelha nas margens do conteúdo (fio condutor §7).
   Alinham com as bordas do .conter (máx. 1120px). */
.principal::before, .principal::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	width: 1px;
	pointer-events: none;
	background: linear-gradient(180deg,transparent,var(--divisoria) 8%,var(--divisoria) 92%,transparent);
}
.principal::before {
	left: max(12px,calc(50vw - 572px));
}
.principal::after {
	right: max(12px,calc(50vw - 572px));
}
@media (max-width:600px) {
	.principal::before,.principal::after {
		display: none;
	}
}

.seccao {
	padding-block: clamp(48px,8vw,96px);
}
.seccao--topo {
	padding-block: clamp(56px,9vw,110px) clamp(24px,4vw,40px);
}
.seccao--faixa {
	background: var(--faixa-bg,linear-gradient(180deg,transparent,var(--superficie)));
}

/* Cabeçalho de secção com marca de alinhamento (leitura de esquema técnico) */
.seccao__cab {
	margin-bottom: clamp(28px,5vw,48px);
	max-width: 640px;
	position: relative;
	padding-left: 18px;
}
.seccao__cab::before {
	content: '';
	position: absolute;
	left: 0;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: linear-gradient(180deg,var(--acento),transparent);
}
.seccao__titulo {
	font-size: clamp(24px,3.4vw,32px);
}
.seccao__sub {
	color: var(--texto-2);
	margin-top: 10px;
}

/* ── Página de manutenção ── */
.principal--manutencao {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100dvh;
}
.manutencao {
	width: 100%;
	padding: clamp(40px,10vw,90px) 0;
}
.manutencao__cartao {
	max-width: 520px;
	margin-inline: auto;
	padding-inline: 24px;
	text-align: center;
}
.manutencao__logo {
	height: 44px;
	width: auto;
	margin: 0 auto 34px;
}
.manutencao__titulo {
	font-family: var(--display);
	font-weight: 700;
	font-size: clamp(30px,6vw,46px);
	color: var(--titulo);
	letter-spacing: -.02em;
	margin-bottom: 14px;
}
.manutencao__lead {
	color: var(--texto-2);
	font-size: 17px;
	line-height: 1.65;
	max-width: 400px;
	margin: 0 auto 30px;
	text-wrap: pretty;
}
.manutencao__barra {
	width: 200px;
	height: 5px;
	margin: 0 auto 34px;
	border-radius: 99px;
	background: var(--superficie);
	overflow: hidden;
	position: relative;
}
.manutencao__barra span {
	position: absolute;
	inset: 0;
	width: 45%;
	border-radius: 99px;
	background: linear-gradient(90deg,transparent,var(--acento),transparent);
	animation: varrer 2.2s ease-in-out infinite;
}
@keyframes varrer {
	0% {
		transform: translateX(-120%);
	}
	100% {
		transform: translateX(320%);
	}
}
@media (prefers-reduced-motion:reduce) {
	.manutencao__barra span {
		animation: none;
		width: 100%;
		opacity: .6;
	}
}
.manutencao__contacto {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 15px;
	color: var(--texto-3);
}
.manutencao__contacto a {
	font-weight: 500;
}

/* ── Hero ── */
.hero {
	padding-block: clamp(72px,12vw,150px) clamp(48px,8vw,90px);
}
.hero__int {
	max-width: 820px;
}
.hero__titulo {
	font-size: clamp(34px,6vw,60px);
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.08;
	text-wrap: balance;
}
.hero__lead {
	margin-top: 22px;
	font-size: clamp(16px,2vw,19px);
	color: var(--texto-2);
	max-width: 600px;
	text-wrap: pretty;
}
.hero__acoes {
	margin-top: 34px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* ── Botões ── */
.botao {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--display);
	font-weight: 600;
	font-size: 15px;
	padding: 12px 22px;
	border-radius: 12px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform .12s,background .15s,border-color .15s,color .15s;
}
.botao:active {
	transform: translateY(1px);
}
.botao--acento {
	background: var(--acento);
	color: var(--acento-texto,#1a1204);
}
.botao--acento:hover {
	background: var(--acento-hover);
	color: var(--acento-texto,#1a1204);
}
.botao--linha {
	border-color: var(--borda-2);
	color: var(--titulo);
}
.botao--linha:hover {
	border-color: var(--acento);
	color: var(--acento);
}

/* ── Cartões ── */
.cartoes {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fill,minmax(280px,1fr));
	gap: var(--gap);
}
.cartao {
	position: relative;
}
.cartao__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	gap: 10px;
	padding: 26px;
	border-radius: var(--raio);
	background: var(--superficie);
	border: 1px solid var(--borda);
	color: var(--texto);
	transition: border-color .15s,transform .15s,background .15s;
}
.cartao__link:hover {
	border-color: var(--acento);
	transform: translateY(-3px);
	background: var(--superficie-2);
	box-shadow: 0 14px 44px -14px color-mix(in srgb,var(--acento) 28%,transparent);
}
@media (prefers-reduced-motion:reduce) {
	.cartao__link:hover {
		transform: none;
	}
}
.cartao__img {
	width: calc(100% + 52px);
	margin: -26px -26px 6px;
	border-radius: var(--raio) var(--raio) 0 0;
	aspect-ratio: 16/9;
	object-fit: cover;
	background: var(--fundo);
}
.cartao__icone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 12px;
	margin-bottom: 4px;
	color: var(--acento);
	background: color-mix(in srgb,var(--acento) 10%,transparent);
	border: 1px solid color-mix(in srgb,var(--acento) 25%,transparent);
}
.cartao__titulo {
	font-size: 20px;
	color: var(--titulo);
}
.cartao__meta {
	font-size: 13px;
	color: var(--texto-3);
	text-transform: uppercase;
	letter-spacing: 1px;
}
.cartao__resumo {
	color: var(--texto-2);
	font-size: 15px;
	flex: 1;
}
.cartao__mais {
	font-family: var(--display);
	font-weight: 600;
	font-size: 14px;
	color: var(--acento);
	margin-top: 6px;
}

/* ── Produtos (soluções próprias) — faixa compacta de logos ── */
.produtos {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(20px,4vw,48px);
	padding: clamp(18px,3vw,26px) clamp(20px,4vw,36px);
	border-radius: var(--raio);
	background: var(--superficie);
	border: 1px solid var(--borda);
}
.produto {
	display: flex;
	align-items: center;
}
.produto+.produto {
	border-left: 1px solid var(--divisoria);
	padding-left: clamp(20px,4vw,48px);
}
.produto__link {
	display: flex;
	align-items: center;
	justify-content: center;
}
.produto__logo {
	height: 44px;
	width: auto;
	object-fit: contain;
	transition: transform .15s,opacity .15s;
	opacity: .92;
}
.produto__link:hover .produto__logo {
	transform: scale(1.04);
	opacity: 1;
}
@media (max-width:520px) {
	.produto+.produto {
		border-left: 0;
		padding-left: 0;
	}
}

/* ── Parceiros ── */
.parceiros {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--gap);
	align-items: center;
}
.parceiro {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	min-height: 88px;
	padding: 20px 32px;
	border-radius: var(--raio);
	background: var(--superficie);
	border: 1px solid var(--borda);
}
.parceiro__link {
	display: flex;
	align-items: center;
	justify-content: center;
}
.parceiro__logo {
	height: 44px;
	width: auto;
	object-fit: contain;
	opacity: .85;
	transition: opacity .15s;
}
.parceiro__link:hover .parceiro__logo {
	opacity: 1;
}
.parceiro__texto {
	font-family: var(--display);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: 1px;
	color: var(--texto-2);
}
/* Solução sem logo: nome em texto, como nos parceiros */
.produto__texto {
	font-family: var(--display);
	font-weight: 700;
	font-size: 26px;
	letter-spacing: 1px;
	color: var(--texto-2);
}

/* ── Faixa / métricas ── */
.faixa {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: clamp(28px,5vw,56px);
	align-items: center;
}
.faixa__texto p {
	color: var(--texto-2);
	margin: 14px 0 22px;
	max-width: 52ch;
}
.metricas {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(140px,1fr));
	gap: 16px;
	text-align: center;
}
.metricas li {
	padding: 20px 10px;
	border-radius: var(--raio);
	background: var(--superficie);
	border: 1px solid var(--borda);
}
.metricas strong {
	display: block;
	font-family: var(--display);
	font-size: 26px;
	color: var(--acento);
}
.metricas span {
	font-size: 13px;
	color: var(--texto-3);
}

/* ── Páginas de conteúdo ── */
.pagina__titulo {
	font-size: clamp(30px,5vw,46px);
	font-weight: 700;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.pagina__lead {
	margin-top: 16px;
	color: var(--texto-2);
	font-size: clamp(16px,2vw,18px);
	max-width: 60ch;
}
.miga {
	font-size: 14px;
	color: var(--texto-3);
	margin-bottom: 16px;
	display: flex;
	gap: 8px;
	align-items: center;
}
.miga a {
	color: var(--texto-2);
}
.miga span[aria-hidden] {
	color: var(--texto-4);
}

.prosa {
	max-width: 70ch;
	color: var(--texto);
}
.prosa h2 {
	font-size: 22px;
	margin: 32px 0 12px;
}
.prosa h3 {
	font-size: 18px;
	margin: 26px 0 10px;
	color: var(--titulo);
}
.prosa p {
	margin: 0 0 16px;
	color: var(--texto-2);
}
.prosa ul {
	margin: 0 0 18px;
	padding-left: 22px;
	color: var(--texto-2);
}
.prosa li {
	margin-bottom: 6px;
}
.prosa a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.prosa__cta {
	margin-top: 30px;
}
.artigo__data {
	color: var(--texto-3);
	font-size: 14px;
	margin-top: 10px;
}

.vazio {
	color: var(--texto-3);
	padding: 40px 0;
}

/* ── Outros serviços (detalhe) ── */
.seccao--relacionados {
	padding-block: 0 clamp(48px,8vw,96px);
}
.relacionados__titulo {
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--texto-3);
	margin-bottom: 16px;
}
.relacionados {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.relacionado {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px 8px 10px;
	border-radius: 99px;
	font-size: 14px;
	font-weight: 500;
	color: var(--texto-2);
	background: var(--superficie);
	border: 1px solid var(--borda);
	transition: border-color .15s,color .15s;
}
.relacionado:hover {
	border-color: var(--acento);
	color: var(--titulo);
}
.relacionado__icone {
	display: flex;
	color: var(--acento);
}
.relacionado__icone svg {
	width: 18px;
	height: 18px;
}

/* ── Imagem de destaque (detalhe de serviço/caso) ── */
.seccao--media {
	padding-block: 0 clamp(20px,4vw,36px);
}
.media-destaque {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	border-radius: var(--raio);
	border: 1px solid var(--borda);
}

/* ── Formulário / contacto ── */
.contacto-grelha {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: clamp(28px,5vw,56px);
	align-items: start;
}
.contacto-info .prosa {
	margin-bottom: 14px;
}
.form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.form__linha {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
.form__campo {
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.form__campo span {
	font-size: 14px;
	font-weight: 500;
	color: var(--texto-2);
}
.form__campo em {
	color: var(--texto-3);
	font-style: normal;
}
.form input,.form textarea {
	font-family: var(--corpo);
	font-size: 15px;
	color: var(--texto);
	background: var(--fundo);
	border: 1px solid var(--borda-2);
	border-radius: 10px;
	padding: 12px 14px;
	transition: border-color .15s;
}
.form input:focus,.form textarea:focus {
	outline: none;
	border-color: var(--acento);
}
.form textarea {
	resize: vertical;
	min-height: 130px;
}
.form__mel {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.aviso {
	padding: 14px 18px;
	border-radius: 12px;
	margin-bottom: 20px;
	font-size: 15px;
	border: 1px solid var(--borda-2);
}
.aviso ul {
	margin: 0;
	padding-left: 20px;
}
.aviso--ok {
	background: color-mix(in srgb,var(--acento) 12%,var(--superficie));
	border-color: var(--acento);
	color: var(--titulo);
}
.aviso--erro {
	background: color-mix(in srgb,var(--erro) 10%,var(--superficie));
	border-color: color-mix(in srgb,var(--erro) 55%,transparent);
	color: var(--erro-texto);
}
.aviso--nota {
	background: var(--superficie);
	color: var(--texto-2);
}

/* ── Rodapé ── */
.rodape {
	border-top: 1px solid var(--divisoria);
	background: var(--rodape-bg,var(--fundo));
	margin-top: auto;
}
.rodape__int {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.6fr;
	gap: clamp(28px,5vw,56px);
	padding-block: clamp(40px,6vw,64px);
}
.rodape__logo {
	height: 34px;
	width: auto;
	margin-bottom: 16px;
}
.rodape__morada {
	color: var(--texto-2);
	font-size: 15px;
	line-height: 1.8;
}
.rodape__titulo {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--texto-3);
	margin-bottom: 14px;
}
.rodape__lista {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.rodape__lista a {
	color: var(--texto-2);
}
.rodape__lista a:hover {
	color: var(--titulo);
}
.rodape__legal p {
	color: var(--texto-3);
	font-size: 14px;
	line-height: 1.8;
	margin-bottom: 12px;
}
.rodape__pendente {
	color: var(--texto-4);
}
.rodape__livro {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}
.ico-livro {
	color: var(--acento);
	flex-shrink: 0;
}
.rodape__base {
	border-top: 1px solid var(--divisoria);
	padding-block: 20px;
}
.rodape__base p {
	color: var(--texto-4);
	font-size: 13px;
}

/* ── Responsivo ── */
@media (max-width:820px) {
	.faixa,.contacto-grelha,.rodape__int {
		grid-template-columns: 1fr;
	}
	.nav__lista {
		flex-direction: column;
		align-items: stretch;
		gap: 2px;
		padding: 12px clamp(20px,5vw,40px) 20px;
	}
	.nav__link {
		padding: 12px 14px;
	}

	/* Colapso do menu só com JS. Sem JS fica sempre visível (§8). */
	.js .nav__botao {
		display: flex;
	}
	/* Em painel colapsado o seletor de idioma fica junto ao botão do menu */
	.js .cabecalho__int:has(.lingua-troca) .nav__botao {
		margin-left: auto;
	}
	.js .nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--fundo);
		border-bottom: 1px solid var(--divisoria);
		max-height: 0;
		overflow: hidden;
		transition: max-height .25s ease;
	}
	.js .nav.is-aberta {
		max-height: 70vh;
		box-shadow: 0 32px 56px -8px #000c;
		/* separa o painel do conteúdo */
	}
}
@media (max-width:600px) {
	/* Cartões mais compactos em ecrãs pequenos */
	.cartao__link {
		padding: 18px 20px;
	}
	.cartao__img {
		width: calc(100% + 40px);
		margin: -18px -20px 4px;
	}
	/* Com ícone: ícone ao lado do título, texto alinhado por baixo do título */
	.cartao__link:has(.cartao__icone) {
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 14px;
		align-items: center;
	}
	.cartao__link:has(.cartao__icone) .cartao__icone {
		width: 40px;
		height: 40px;
		margin-bottom: 0;
	}
	.cartao__link:has(.cartao__icone) .cartao__resumo, .cartao__link:has(.cartao__icone) .cartao__mais {
		grid-column: 2;
	}
}
@media (prefers-reduced-motion:reduce) {
	.js .nav {
		transition: none;
	}
}
@media (max-width:520px) {
	.form__linha {
		grid-template-columns: 1fr;
	}
	.metricas {
		grid-template-columns: 1fr;
		text-align: left;
	}
	.metricas li {
		display: flex;
		align-items: baseline;
		gap: 12px;
	}
}

/* ══════════════════════════════════════════════════════════════════
   Fundações de customização — densidade, tipografia, superfícies,
   botões e acento. Cada eixo é uma classe no <body> (só quando difere
   da predefinição) ou um custom property; sem classe = aspeto por
   omissão. Ver docs/MELHORIAS_CUSTOMIZACAO.md.
   ══════════════════════════════════════════════════════════════════ */
:root {
	--dens: 1;
	--fs: 1;
	--escala: 1;
	--cartao-borda-cor: var(--borda);
	--cartao-sombra: 0 5px 18px -12px #00000055;
	--raio-botao: 12px;
}

/* ── Densidade (espaçamento) ── */
body.dens-compacto {
	--dens: .82;
}
body.dens-amplo {
	--dens: 1.2;
}
.seccao {
	padding-block: calc(clamp(48px,8vw,96px) * var(--dens));
}
.seccao--topo {
	padding-block: calc(clamp(56px,9vw,110px) * var(--dens)) calc(clamp(24px,4vw,40px) * var(--dens));
}
.hero {
	padding-block: calc(clamp(72px,12vw,150px) * var(--dens)) calc(clamp(48px,8vw,90px) * var(--dens));
}
.cartoes {
	gap: calc(var(--gap) * var(--dens));
}
.cartao__link {
	padding: calc(26px * var(--dens));
	border-color: var(--cartao-borda-cor);
	box-shadow: var(--cartao-sombra);
}

/* ── Tamanho do texto + escala tipográfica ── */
body {
	font-size: calc(16px * var(--fs));
}
body.tipo-compacta {
	--escala: .9;
}
body.tipo-expressiva {
	--escala: 1.16;
}
.pagina__titulo {
	font-size: calc(clamp(30px,5vw,46px) * var(--fs) * var(--escala));
}
.seccao__titulo {
	font-size: calc(clamp(24px,3.4vw,32px) * var(--fs) * var(--escala));
}
.pagina__lead {
	font-size: calc(clamp(16px,2vw,18px) * var(--fs));
}

/* ── Estilo dos cartões + profundidade ── */
body.cartoes-plano {
	--cartao-borda-cor: transparent;
	--cartao-sombra: none;
}
body.cartoes-elevado {
	--cartao-borda-cor: transparent;
	--cartao-sombra: 0 14px 40px -16px #00000077;
}
body.sombra-nenhuma {
	--cartao-sombra: none;
}
body.sombra-media {
	--cartao-sombra: 0 18px 50px -16px #00000088;
}

/* ── Forma dos botões ── */
body.botoes-reto {
	--raio-botao: 3px;
}
body.botoes-pill {
	--raio-botao: 999px;
}
.botao {
	border-radius: var(--raio-botao);
}

/* ── Intensidade do acento ── */
body.acento-discreto .eyebrow {
	color: var(--texto-2);
}
body.acento-forte {
	background-image: radial-gradient(115% 80% at 50% -8%,color-mix(in srgb,var(--acento) 12%,var(--fundo-topo)) 0%,transparent 52%);
}

/* ── Estrutura: largura, cabeçalho de página, apresentação das listas ── */
body.larg-estreito {
	--largura: 1040px;
}
body.larg-largo {
	--largura: 1280px;
}

/* Cabeçalho de página (hero) */
body.hero-centrado .seccao--topo .conter {
	text-align: center;
}
body.hero-centrado .seccao--topo .pagina__lead {
	margin-inline: auto;
}
body.hero-minimal .seccao--topo {
	padding-block: calc(clamp(36px,5vw,64px) * var(--dens)) calc(clamp(18px,3vw,28px) * var(--dens));
}

/* Apresentação das listas de cartões */
body.lista-duas .cartoes {
	grid-template-columns: repeat(2,1fr);
}
body.lista-tres .cartoes {
	grid-template-columns: repeat(3,1fr);
}
body.lista-lista .cartoes {
	grid-template-columns: 1fr;
}
@media (max-width:760px) {
	body.lista-tres .cartoes {
		grid-template-columns: repeat(2,1fr);
	}
}
@media (max-width:520px) {
	body.lista-duas .cartoes,
	body.lista-tres .cartoes {
		grid-template-columns: 1fr;
	}
}
