/* Opera Studio: folha de estilos do tema (v0.2.2).
   Direção: claro, fotográfico, com vida. Uma família tipográfica (Archivo variável, alojada no site),
   títulos largos e grandes, fotografias a cores a toda a largura, uma cor principal usada em superfícies
   (números, botões, menu de telemóvel) e uma cor por área de atuação nas listas.
   As cores principais chegam de "Opera > Definições" (functions.php escreve --acento e derivadas). */

/* 1. Fontes */
@font-face {
	font-family: 'Archivo Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	font-stretch: 62% 125%;
	src: url(../fonts/archivo-latin-ext-standard-normal.woff2) format('woff2-variations');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Archivo Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	font-stretch: 62% 125%;
	src: url(../fonts/archivo-latin-standard-normal.woff2) format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 2. Variáveis (as de cor principal vêm das definições; estes são valores de recurso) */
:root {
	--papel: #ffffff;
	--tinta: #0a0a0a;
	--texto: #1f1f1f;
	--cinza: #6b6b68;
	--cinza-claro: #a3a3a0;
	--linha: #e2e2dd;
	--superficie: #f4f4f1;
	--escuro: #111111;
	--escuro-texto: #d9d9d4;
	--acento: #1F4ACB;
	--acento-contraste: #FFFFFF;
	--acento-texto: #1F4ACB;
	--acento-suave: #EBEFFA;
	--acento-escuro: #1B41B3;
	--cor-area: var(--acento);
	--fonte: 'Archivo Variable', Archivo, 'Helvetica Neue', Arial, sans-serif;
	--largura: 1440px;
	--margem: clamp(1.25rem, 4vw, 4rem);
	--espaco: clamp(4rem, 8vw, 7.5rem);
	--espaco-meio: clamp(2rem, 4vw, 3.5rem);
	--cabecalho: 4.5rem;
	--largo: 112%;
	--transicao: 240ms cubic-bezier(0.2, 0.6, 0.2, 1);
}

/* 3. Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--papel);
	color: var(--texto);
	font-family: var(--fonte);
	font-size: 1.0625rem;
	line-height: 1.55;
	font-feature-settings: 'kern', 'liga';
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--acento-texto); }
:focus-visible { outline: 2px solid var(--acento-texto); outline-offset: 3px; }
h1, h2, h3 { margin: 0; font-weight: 500; line-height: 1.05; letter-spacing: -0.02em; text-wrap: balance; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; list-style: none; }
address { font-style: normal; }
button { font: inherit; }
.contentor { max-width: var(--largura); margin-inline: auto; padding-inline: var(--margem); }
.saltar { position: absolute; left: -999px; top: 0; background: var(--tinta); color: #fff; padding: 0.5rem 1rem; z-index: 100; }
.saltar:focus { left: 0; }
.seccao { padding-block: var(--espaco); }
.seccao--topo { padding-top: calc(var(--cabecalho) + var(--espaco-meio)); }
.seccao__cabeca { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem 2rem; flex-wrap: wrap; margin-bottom: var(--espaco-meio); }
.seccao__titulo { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); font-stretch: var(--largo); }
.titulo-pagina { font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4.5rem); font-stretch: var(--largo); letter-spacing: -0.025em; max-width: 18ch; }
.titulo-pagina--largo { max-width: 22ch; }
.antetitulo { color: var(--cinza); margin-bottom: 0.75rem; }
.ligacao { display: inline-block; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 0.1em; transition: color var(--transicao), border-color var(--transicao); }
.ligacao:hover { color: var(--acento-texto); }
.botao { display: inline-block; background: var(--acento); color: var(--acento-contraste); text-decoration: none; padding: 0.95rem 1.6rem; border: 0; cursor: pointer; font-weight: 500; transition: background-color var(--transicao), transform var(--transicao); }
.botao:hover { background: var(--acento-escuro); color: var(--acento-contraste); transform: translateY(-1px); }
.prosa { max-width: 68ch; font-size: 1.125rem; }
.prosa p { margin-bottom: 1.25em; }
.prosa--intro { max-width: 52ch; color: var(--cinza); margin-top: 1rem; }
.prosa--pagina { margin-top: var(--espaco-meio); }
.ponto { display: inline-block; width: 0.55em; height: 0.55em; border-radius: 50%; background: var(--cor-area); margin-right: 0.45em; vertical-align: 0.05em; }
.chip { display: inline-flex; align-items: center; gap: 0.1em; text-decoration: none; border: 1px solid var(--linha); border-radius: 999px; padding: 0.35rem 0.9rem; font-size: 0.9375rem; color: var(--texto); transition: background-color var(--transicao), border-color var(--transicao), color var(--transicao); }
.chip:hover { border-color: var(--cor-area); color: var(--texto); }
.chip.is-atual { background: var(--cor-area); border-color: var(--cor-area); color: #fff; }
.chip.is-atual .ponto { background: #fff; }
.chip__contagem { color: var(--cinza); margin-left: 0.35em; font-size: 0.875rem; }
.chip.is-atual .chip__contagem { color: rgba(255, 255, 255, 0.75); }
body:not(.areas-coloridas) .chip.is-atual { background: var(--tinta); border-color: var(--tinta); }

/* 4. Cabeçalho, barra de progresso, menu */
.progresso { position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: var(--acento); transform: scaleX(0); transform-origin: left; z-index: 30; }
.cabecalho { position: absolute; inset: 0 0 auto 0; z-index: 20; height: var(--cabecalho); background: var(--papel); border-bottom: 1px solid transparent; transition: border-color var(--transicao); }
.cabecalho.is-fixo { position: fixed; border-color: var(--linha); }
.cabecalho__interior { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.marca { text-decoration: none; display: inline-flex; align-items: baseline; gap: 0.35em; color: var(--tinta); font-weight: 700; font-stretch: 118%; font-size: 1.375rem; letter-spacing: -0.01em; line-height: 1; }
.marca:hover { color: var(--tinta); }
.marca__sufixo { font-weight: 300; font-stretch: 100%; color: var(--cinza); }
.menu { display: flex; align-items: center; gap: 2.5rem; }
.menu__lista { display: flex; gap: 2rem; }
.menu__ligacao { text-decoration: none; padding-block: 0.25rem; border-bottom: 1px solid transparent; transition: border-color var(--transicao), color var(--transicao); }
.menu__ligacao:hover { color: var(--texto); border-color: var(--acento); }
.menu__ligacao.is-atual { color: var(--tinta); border-color: var(--acento); }
.lingua { text-decoration: none; font-size: 0.875rem; color: var(--cinza); border: 1px solid var(--linha); padding: 0.3rem 0.6rem; transition: color var(--transicao), border-color var(--transicao); }
.lingua:hover { color: var(--tinta); border-color: var(--tinta); }
.menu__contacto { display: none; }
.menu-botao { display: none; background: none; border: 1px solid var(--linha); padding: 0.45rem 0.9rem; cursor: pointer; }
@media (max-width: 899px) {
	.menu-botao { display: inline-block; }
	.menu { display: none; position: fixed; inset: var(--cabecalho) 0 0 0; background: var(--acento); color: var(--acento-contraste); flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: var(--espaco-meio) var(--margem); gap: 2rem; overflow: auto; }
	.menu.is-aberto { display: flex; }
	.menu__lista { flex-direction: column; gap: 0.35rem; }
	.menu__ligacao { font-size: clamp(2.25rem, 9vw, 3.25rem); font-stretch: var(--largo); font-weight: 600; letter-spacing: -0.025em; line-height: 1.1; border: 0; color: inherit; }
	.menu__ligacao:hover, .menu__ligacao.is-atual { color: inherit; border: 0; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.12em; }
	.lingua { color: inherit; border-color: currentColor; }
	.menu__contacto { display: block; margin-top: auto; line-height: 1.8; }
	.menu__contacto a { text-decoration: none; }
	body.menu-aberto { overflow: hidden; }
}

/* 5. Página inicial: abertura com a imagem a toda a largura e o título sobreposto */
.abertura { padding-top: var(--cabecalho); }
.abertura__figura { margin: 0; overflow: hidden; }
.abertura__ligacao { display: block; }
.abertura__imagem { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; animation: entrar-imagem 1.4s cubic-bezier(0.2, 0.6, 0.2, 1) both; }
.abertura__sobre { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 1.5rem var(--espaco-meio); align-items: end; margin-top: calc(-1 * clamp(4rem, 11vw, 10rem)); position: relative; }
.abertura__bloco { background: var(--papel); padding: clamp(1.75rem, 3vw, 3rem) clamp(1.5rem, 4vw, 4rem) 0 0; margin-left: calc(-1 * var(--margem)); padding-left: var(--margem); animation: entrar-bloco 0.9s 0.25s cubic-bezier(0.2, 0.6, 0.2, 1) both; }
.abertura__titulo { font-size: clamp(2.5rem, 1rem + 5.6vw, 6rem); font-stretch: 118%; font-weight: 600; letter-spacing: -0.03em; line-height: 0.98; max-width: 13ch; }
.abertura__texto { font-size: 1.125rem; max-width: 42ch; margin: 1.5rem 0 0; }
.abertura__acoes { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin: 1.75rem 0 0; }
.abertura__legenda { color: var(--cinza); font-size: 0.9375rem; margin: 0; padding-bottom: 0.5rem; display: grid; gap: 0.15rem; }
.abertura__rotulo { font-size: 0.8125rem; }
.abertura__legenda a { color: var(--texto); text-decoration: none; font-weight: 500; }
.abertura__legenda a:hover { color: var(--acento-texto); }
@keyframes entrar-imagem { from { transform: scale(1.06); } to { transform: scale(1); } }
@keyframes entrar-bloco { from { transform: translateY(1.5rem); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 899px) {
	.abertura__imagem { aspect-ratio: 4 / 3; }
	.abertura__sobre { grid-template-columns: 1fr; margin-top: -2.5rem; }
	.abertura__bloco { margin-right: var(--margem); padding-right: 1rem; }
	.abertura__legenda { padding-top: 0.5rem; border-top: 1px solid var(--linha); }
}

.destaques { padding-top: var(--espaco-meio); }

.areas { background: var(--acento-suave); }
.areas__grelha { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--espaco-meio); align-items: start; }
.areas__texto p { max-width: 42ch; font-size: 1.125rem; margin-top: 1.25rem; }
.areas__previa { position: relative; aspect-ratio: 4 / 3; overflow: hidden; margin-top: 2rem; background: var(--superficie); }
.areas__imagem { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 500ms ease; }
.areas__imagem.is-visivel { opacity: 1; }
.areas__lista { border-top: 1px solid var(--linha); }
.areas__ligacao { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1.15rem 0.75rem; margin-inline: -0.75rem; border-bottom: 1px solid var(--linha); text-decoration: none; font-size: clamp(1.5rem, 1rem + 2vw, 2.75rem); font-stretch: var(--largo); font-weight: 500; letter-spacing: -0.02em; transition: background-color var(--transicao), color var(--transicao), padding-left var(--transicao); }
.areas__ligacao:hover, .areas__ligacao:focus-visible { background: var(--papel); color: var(--tinta); padding-left: 1.25rem; }
.areas__ligacao .ponto { width: 0.4em; height: 0.4em; vertical-align: 0.15em; margin-right: 0.5em; transition: transform var(--transicao); }
.areas__ligacao:hover .ponto { transform: scale(1.35); }
.areas__contagem { font-size: 1rem; font-stretch: 100%; font-weight: 400; color: var(--cinza); letter-spacing: 0; white-space: nowrap; }
@media (max-width: 899px) { .areas__grelha { grid-template-columns: 1fr; } .areas__previa { display: none; } }

.numeros { background: var(--acento); color: var(--acento-contraste); padding-block: var(--espaco-meio); }
.numeros__grelha { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.numeros__item { display: flex; flex-direction: column; gap: 0.35rem; border-left: 1px solid rgba(255, 255, 255, 0.3); border-left-color: color-mix(in srgb, var(--acento-contraste) 30%, transparent); padding-left: 1.25rem; }
.numeros__valor { font-size: clamp(2.25rem, 1.4rem + 2.8vw, 4rem); font-weight: 600; font-stretch: var(--largo); letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.numeros__etiqueta { opacity: 0.8; }
@media (max-width: 899px) { .numeros__grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.estudio-teaser__grelha { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--espaco-meio); align-items: center; }
.estudio-teaser__texto p { font-size: 1.125rem; max-width: 52ch; }
.estudio-teaser__texto .seccao__titulo { margin-bottom: 1.25rem; }
.estudio-teaser__ligacoes { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 1.5rem; }
.estudio-teaser__fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; align-items: end; }
.estudio-teaser__fotos li:nth-child(2) { padding-bottom: 2.5rem; }
.estudio-teaser__fotos img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; background: var(--superficie); }
.estudio-teaser__fotos span { display: block; font-size: 0.875rem; color: var(--cinza); margin-top: 0.5rem; }
@media (max-width: 899px) { .estudio-teaser__grelha { grid-template-columns: 1fr; } }

.chamada { background: var(--escuro); color: #fff; padding-block: var(--espaco); }
.chamada__grelha { display: flex; justify-content: space-between; align-items: center; gap: 2rem; flex-wrap: wrap; }
.chamada__titulo { font-size: clamp(1.9rem, 1.2rem + 2.8vw, 3.75rem); font-stretch: var(--largo); max-width: 16ch; }
.chamada__texto { color: var(--escuro-texto); font-size: 1.125rem; margin: 0.75rem 0 0; }
.chamada__acao { margin: 0; }
body.home .rodape { border-top: 1px solid rgba(255, 255, 255, 0.12); margin-top: 0; }

/* 6. Cartões e grelha de projetos */
.grelha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espaco-meio) 1.5rem; }
@media (min-width: 1500px) { .grelha:not(.grelha--editorial) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 899px) { .grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; } }
@media (max-width: 479px) { .grelha { grid-template-columns: 1fr; } }
.cartao--grande { grid-column: span 2; }
.cartao--grande .cartao__titulo { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2rem); }
@media (max-width: 479px) { .cartao--grande { grid-column: auto; } }
.cartao__ligacao { display: block; text-decoration: none; color: inherit; }
.cartao__imagem { overflow: hidden; background: var(--superficie); aspect-ratio: 4 / 3; }
.cartao--grande .cartao__imagem { aspect-ratio: 3 / 2; }
.cartao__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(0.2, 0.6, 0.2, 1), filter var(--transicao); }
.cartao__ligacao:hover .cartao__imagem img { transform: scale(1.04); }
.cartao__titulo { font-size: 1.125rem; font-weight: 500; letter-spacing: -0.01em; margin-top: 0.9rem; line-height: 1.25; transition: color var(--transicao); }
.cartao__meta { color: var(--cinza); font-size: 0.9375rem; margin: 0.3rem 0 0; }
.cartao__ligacao:hover .cartao__titulo { color: var(--acento-texto); }
.imagem--vazia { aspect-ratio: 4 / 3; background: var(--superficie); }
/* Miniaturas a preto e branco (opção do painel); cor ao passar o rato ou ao focar. */
body.grelha-cinza .lista .cartao__imagem img, body.grelha-cinza .relacionados .cartao__imagem img { filter: grayscale(1); }
body.grelha-cinza .lista .cartao__ligacao:hover .cartao__imagem img, body.grelha-cinza .lista .cartao__ligacao:focus-visible .cartao__imagem img,
body.grelha-cinza .relacionados .cartao__ligacao:hover .cartao__imagem img { filter: grayscale(0); }

.lista__cabeca { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; }
.lista__contagem { color: var(--cinza); margin: 0; }
.filtro { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: var(--espaco-meio) 0; }
.lista__vazia { color: var(--cinza); }
.paginacao { display: flex; justify-content: center; align-items: center; gap: 2rem; margin-top: var(--espaco); padding-top: 1.5rem; border-top: 1px solid var(--linha); }
.paginacao__ligacao { text-decoration: none; border-bottom: 1px solid currentColor; }
.paginacao__estado { color: var(--cinza); font-variant-numeric: tabular-nums; }

/* 7. Página de projeto */
.projeto { padding-top: calc(var(--cabecalho) + var(--espaco-meio)); }
.projeto__cabeca { padding-bottom: var(--espaco-meio); }
.projeto__area { margin: 0 0 1rem; }
.projeto__titulo { font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4.5rem); font-stretch: var(--largo); letter-spacing: -0.025em; max-width: 22ch; }
.projeto__meta { color: var(--cinza); font-size: 1.125rem; margin: 1rem 0 0; }
.projeto__principal { margin: 0; background: var(--acento-suave); background: color-mix(in srgb, var(--cor-area) 9%, #ffffff); padding: clamp(1rem, 3vw, 3rem) var(--margem); display: grid; place-items: center; }
.projeto__imagem { width: auto; max-width: 100%; max-height: 85vh; object-fit: contain; box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.35); box-shadow: 0 24px 60px -30px color-mix(in srgb, var(--cor-area) 45%, transparent); }
.projeto__corpo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--espaco-meio); padding-block: var(--espaco-meio) var(--espaco); }
.projeto__descricao { font-size: 1.125rem; max-width: 62ch; }
.projeto__descricao p:last-child { margin-bottom: 0; }
.ficha { margin: 0; align-self: start; }
.ficha__linha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; padding: 0.75rem 0; border-top: 1px solid var(--linha); }
.ficha__linha:last-child { border-bottom: 1px solid var(--linha); }
.ficha dt { color: var(--cinza); }
.ficha dd { margin: 0; }
@media (max-width: 899px) { .projeto__corpo { grid-template-columns: 1fr; } .projeto__imagem { max-height: none; } }
.galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding-bottom: var(--espaco); }
.galeria__item { margin: 0; }
.galeria__item:first-child:nth-last-child(odd) { grid-column: span 2; }
.galeria__item img { width: 100%; }
@media (max-width: 699px) { .galeria { grid-template-columns: 1fr; } .galeria__item:first-child:nth-last-child(odd) { grid-column: auto; } }
.vizinhos { display: flex; justify-content: space-between; gap: 2rem; padding-block: 1.5rem; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); }
.vizinhos__ligacao { text-decoration: none; display: flex; flex-direction: column; gap: 0.25rem; max-width: 45%; }
.vizinhos__ligacao--seguinte { text-align: right; margin-left: auto; }
.vizinhos__rotulo { color: var(--cinza); font-size: 0.9375rem; }
.vizinhos__nome { font-weight: 500; }
.vizinhos__ligacao:hover .vizinhos__nome { color: var(--acento-texto); }
.relacionados { padding-top: var(--espaco); }

/* 8. Estúdio, equipa, contacto */
.estudio__cabeca { margin-bottom: var(--espaco-meio); }
.estudio__grelha { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--espaco-meio); align-items: start; }
.estudio__factos { margin: 0; }
.estudio__facto { padding: 1rem 0; border-top: 1px solid var(--linha); }
.estudio__facto:last-child { border-bottom: 1px solid var(--linha); }
.estudio__facto dt { color: var(--cinza); font-size: 0.9375rem; }
.estudio__facto dd { margin: 0.2rem 0 0; font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem); font-weight: 500; font-stretch: var(--largo); letter-spacing: -0.02em; line-height: 1.1; color: var(--acento-texto); }
@media (max-width: 899px) { .estudio__grelha { grid-template-columns: 1fr; } }
.especialidades { background: var(--acento-suave); }
.especialidades__grelha { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--espaco-meio); }
.especialidades__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.especialidades__lista li { padding: 0.75rem 0; border-bottom: 1px solid var(--linha); font-size: 1.125rem; }
@media (max-width: 899px) { .especialidades__grelha { grid-template-columns: 1fr; } }
@media (max-width: 599px) { .especialidades__lista { grid-template-columns: 1fr; } }
.internacional__grelha { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--espaco-meio); }
.internacional__texto { font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem); line-height: 1.35; max-width: 34ch; margin: 0; font-weight: 400; letter-spacing: -0.01em; }
@media (max-width: 899px) { .internacional__grelha { grid-template-columns: 1fr; } }
.equipa { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--espaco-meio) 1.5rem; }
.equipa--compacta { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pessoa__foto { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; background: var(--superficie); }
.pessoa__nome { font-size: 1.125rem; font-weight: 500; margin-top: 0.9rem; letter-spacing: -0.01em; }
.pessoa__cargo { color: var(--cinza); margin: 0.2rem 0 0; font-size: 0.9375rem; }
.pessoa__bio { margin-top: 0.75rem; font-size: 0.9375rem; }
@media (max-width: 899px) { .equipa, .equipa--compacta { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .equipa, .equipa--compacta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; } }

.contacto__grelha { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--espaco-meio); align-items: start; }
@media (max-width: 899px) { .contacto__grelha { grid-template-columns: 1fr; } }
.formulario__linha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; }
@media (max-width: 599px) { .formulario__linha { grid-template-columns: 1fr; } }
.campo { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 1.25rem; }
.campo label { color: var(--cinza); font-size: 0.9375rem; }
.campo input, .campo select, .campo textarea { font: inherit; color: var(--texto); background: var(--papel); border: 1px solid var(--linha); border-radius: 0; padding: 0.75rem 0.9rem; width: 100%; transition: border-color var(--transicao); }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--acento-texto); }
.campo input[type="file"] { padding: 0.6rem; }
.formulario__escondido { position: absolute; left: -9999px; }
.formulario__rodape { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 0.5rem; }
.formulario__nota { color: var(--cinza); font-size: 0.9375rem; max-width: 36ch; }
.aviso { padding: 1rem 1.25rem; border: 1px solid var(--linha); margin-bottom: 1.5rem; }
.aviso--ok { border-color: var(--acento); background: var(--acento-suave); }
.aviso--erro { border-color: #b3261e; color: #8a1c15; }
.contacto__subtitulo { font-size: 0.9375rem; font-weight: 400; color: var(--cinza); margin-top: 1.75rem; }
.contacto__subtitulo:first-child { margin-top: 0; }
.contacto__dados p, .contacto__morada { margin: 0.25rem 0 0; font-size: 1.125rem; }
.contacto__dados a { text-decoration: none; border-bottom: 1px solid var(--linha); }
.contacto__dados a:hover { border-color: var(--acento-texto); }

/* 9. Rodapé (escuro) */
.rodape { background: var(--escuro); color: var(--escuro-texto); padding-top: var(--espaco-meio); margin-top: var(--espaco-meio); font-size: 0.9375rem; }
.rodape__interior { display: grid; grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 2fr)); gap: 2rem; padding-bottom: var(--espaco-meio); }
.rodape .marca, .rodape .marca:hover { color: #fff; }
.rodape .marca__sufixo { color: rgba(255, 255, 255, 0.55); }
.rodape__texto { max-width: 40ch; color: rgba(255, 255, 255, 0.6); margin-top: 1rem; }
.rodape__titulo { font-size: 0.9375rem; font-weight: 500; margin-bottom: 0.75rem; color: #fff; }
.rodape__lista li { margin-bottom: 0.35rem; }
.rodape__lista a, .rodape__morada a { text-decoration: none; }
.rodape__lista a:hover, .rodape__morada a:hover { color: var(--acento); }
.rodape__morada { line-height: 1.7; }
.rodape__fim { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-block: 1.25rem; color: rgba(255, 255, 255, 0.5); font-size: 0.875rem; }
.rodape__fim p { margin: 0; }
@media (max-width: 899px) { .rodape__interior { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rodape__coluna--marca { grid-column: span 2; } }

/* 10. Movimento reduzido */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-delay: 0ms !important; }
}
