/*
 * APO – Otoneurologia: estilos do tema.
 * Ordem das camadas: tokens < reset < base < layout < componentes < paginas < utilitarios.
 * Escala: 1rem = 10px (html a 62.5%, como no site anterior); o tamanho de letra do utilizador é respeitado.
 * Cores com texto por cima cumprem WCAG 2.2 AA (≥ 4.5:1); o laranja original (#f1471d) só em elementos decorativos.
 */

@layer tokens, reset, base, layout, componentes, paginas, utilitarios;

/* ---------- Fontes (Poppins, alojada no tema) ---------- */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins-300-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 300; font-display: swap; src: url("../fonts/poppins-300-latin-ext.woff2") format("woff2"); 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: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-latin-ext.woff2") format("woff2"); 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: "Poppins"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-italic-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: italic; font-weight: 400; font-display: swap; src: url("../fonts/poppins-400-italic-latin-ext.woff2") format("woff2"); 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: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-500-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/poppins-500-latin-ext.woff2") format("woff2"); 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: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-600-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/poppins-600-latin-ext.woff2") format("woff2"); 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: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-700-latin.woff2") format("woff2"); 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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/poppins-700-latin-ext.woff2") format("woff2"); 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; }

/* ---------- Tokens ---------- */
@layer tokens {
	:root {
		/* Cores */
		--cor-laranja: #f1471d;          /* marca: só decorativo (linhas, fundos sem texto) */
		--cor-laranja-aa: #d83f1a;       /* laranja com texto branco por cima, ou texto laranja sobre branco (4.52:1) */
		--cor-laranja-escuro: #b8330f;   /* hover dos botões laranja */
		--cor-ligacao: #ca3b18;          /* ligações de texto: ≥ 4.6:1 em branco e nos fundos claros do site */
		--cor-laranja-sobre-escuro: #ff7a55; /* texto/linhas laranja sobre #202020 (≥ 4.5:1) */
		--cor-texto: #202020;
		--cor-titulo: #656159;
		--cor-branco: #ffffff;
		--cor-fundo-suave: #f3f5f8;
		--cor-fundo-creme: #f9f6f2;
		--cor-cinza-claro: #eeeeee;
		--cor-cinza-texto: #5c5c5c;      /* texto secundário sobre branco (6.6:1) */
		--cor-borda: #767676;            /* bordas de campos (≥ 3:1) */
		--cor-erro: #b3261e;
		--cor-foco: #1a5fb4;

		/* Tipografia (valores do site anterior) */
		--fonte: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
		--texto: clamp(1.4rem, 0.382vw + 1.278rem, 1.8rem);
		--h1: clamp(3.8rem, 1.147vw + 3.433rem, 5rem);
		--h2: calc(var(--h1) * 0.85);
		--h3: calc(var(--h1) * 0.45);

		/* Espaços e larguras */
		--largura-pagina: 136.6rem;
		--largura-texto: 75ch;
		--margem-lateral: clamp(2rem, 0.956vw + 1.694rem, 3rem);
		--secao-vertical: clamp(5rem, 5.736vw + 3.164rem, 11rem);
		--espaco-s: clamp(1rem, 1.147vw + 0.633rem, 2.2rem);
		--espaco-m: clamp(2rem, 1.147vw + 1.633rem, 3.2rem);
		--espaco-l: clamp(3rem, 1.434vw + 2.541rem, 4.5rem);
		--espaco-xl: clamp(4rem, 1.912vw + 3.388rem, 6rem);
		--grelha: clamp(2rem, 0.956vw + 1.694rem, 3rem);

		--transicao: 0.2s ease-in-out;
		--sombra: 0 1rem 3rem rgb(0 0 0 / 0.15);
		--raio: 1.2rem;
		--sombra-cartao: 0 0.6rem 2.4rem rgb(32 32 32 / 0.08);
		--sombra-cartao-forte: 0 1.6rem 4rem rgb(32 32 32 / 0.14);
	}
}

/* ---------- Reset mínimo ---------- */
@layer reset {
	*, *::before, *::after { box-sizing: border-box; }
	html { font-size: 62.5%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
	body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
	img, svg, video, iframe { display: block; max-width: 100%; }
	img { height: auto; }
	input, button, textarea, select { font: inherit; color: inherit; }
	button { cursor: pointer; }
	:where(ul, ol)[class] { list-style: none; margin: 0; padding: 0; }
	@media (prefers-reduced-motion: reduce) {
		*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
	}
}

/* ---------- Base ---------- */
@layer base {
	html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
	body {
		font-family: var(--fonte);
		font-size: var(--texto);
		font-weight: 300;
		line-height: 1.6;
		color: var(--cor-texto);
		background: var(--cor-branco);
		text-rendering: optimizeLegibility;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}
	h1, h2, h3, h4, h5, h6 { font-family: var(--fonte); line-height: 1.2; text-wrap: balance; }
	h1 { font-size: var(--h1); font-weight: 600; color: var(--cor-titulo); }
	h2 { font-size: var(--h2); font-weight: 600; color: var(--cor-titulo); }
	h3 { font-size: var(--h3); font-weight: 500; color: var(--cor-texto); }
	h4 { font-size: 2rem; font-weight: 500; }
	h5 { font-size: 1.8rem; font-weight: 500; }
	h6 { font-size: 1.6rem; font-weight: 500; }
	p { text-wrap: pretty; }
	b, strong { font-weight: 500; }
	a { color: var(--cor-ligacao); font-weight: 400; text-decoration: none; transition: color var(--transicao); }
	a:hover { color: var(--cor-laranja-escuro); }
	/* Ligações dentro de texto corrido: sublinhadas (não dependem só da cor, WCAG 1.4.1) */
	.conteudo a:not([class]) { text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
	.conteudo a:not([class]):hover { text-decoration-thickness: 2px; }

	/* Foco sempre visível, com contraste em fundos claros e escuros */
	:focus-visible { outline: 3px solid var(--cor-foco); outline-offset: 3px; box-shadow: 0 0 0 6px var(--cor-branco); border-radius: 2px; }
	main:focus, dialog:focus, .menu-principal__painel:focus { outline: none; box-shadow: none; }
	.usa-rato :focus-visible { outline: none; box-shadow: none; }
	.usa-rato .cartao:has(a:focus-visible), .usa-rato .cartao-arquivo:has(a:focus-visible), .usa-rato .cartao-capa:has(a:focus-visible), .usa-rato .lista-linhas__item:has(a:focus-visible) { outline: none; }

	::selection { background: var(--cor-laranja-aa); color: var(--cor-branco); }

	input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"]), select, textarea {
		width: 100%;
		padding: 1.2rem 1.6rem;
		border: 1px solid var(--cor-borda);
		border-radius: 4px;
		background: var(--cor-branco);
		font-size: 1.6rem;
		color: var(--cor-texto);
	}
	::placeholder { color: var(--cor-cinza-texto); opacity: 1; }
}

/* ---------- Layout ---------- */
@layer layout {
	.contentor { width: 100%; max-width: var(--largura-pagina); margin-inline: auto; padding-inline: var(--margem-lateral); }
	.secao { padding-block: var(--secao-vertical); }
	.secao--metade-topo { padding-block: calc(var(--secao-vertical) / 2) var(--secao-vertical); }
	.secao__titulos { display: grid; gap: 0.5rem; justify-items: center; text-align: center; margin-bottom: 4rem; }
	.secao__titulos > * { margin: 0; }
	.secao__titulos h2::after { content: ""; display: block; width: 6rem; height: 3px; margin: 1.6rem auto 0; border-radius: 2px; background: var(--cor-laranja); }
	.secao__subtitulo { font-size: calc(var(--texto) * 1.1); font-weight: 400; color: var(--cor-cinza-texto); }
	.secao__acoes { display: flex; justify-content: center; margin-top: 4rem; }
	.texto-estreito { max-width: var(--largura-texto); margin-inline: auto; }
	.grelha-3 { display: grid; gap: 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	@media (max-width: 991px) { .grelha-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
	@media (max-width: 767px) { .grelha-3 { grid-template-columns: 1fr; } }
}

/* ---------- Componentes ---------- */
@layer componentes {

	/* Saltar para o conteúdo */
	.saltar {
		position: absolute; left: 1rem; top: -10rem; z-index: 1000;
		padding: 1rem 1.6rem; background: var(--cor-texto); color: var(--cor-branco); font-weight: 500;
	}
	.saltar:focus { top: 1rem; color: var(--cor-branco); }

	.icone { width: 2rem; height: 2rem; flex-shrink: 0; }

	/* Botão */
	.botao {
		display: inline-flex; align-items: center; justify-content: center; gap: 0.8rem;
		min-height: 4.4rem; padding: 0.8rem 1.6rem;
		background: var(--cor-laranja-aa); color: var(--cor-branco);
		border: 1px solid var(--cor-laranja-aa); border-radius: 0;
		font-size: 1.6rem; font-weight: 400; line-height: 1.2; text-align: center; text-decoration: none;
		transition: background-color var(--transicao), color var(--transicao);
	}
	.botao:hover { background: var(--cor-branco); color: var(--cor-laranja-aa); }
	.botao--maiusculas { text-transform: uppercase; }
	.botao .icone { width: 1.6rem; height: 1.6rem; }

	/* Cabeçalho do site */
	.cabecalho { position: relative; z-index: 50; background: var(--cor-branco); }
	.cabecalho__interior {
		display: flex; align-items: center; justify-content: space-around; gap: 2rem;
		padding-block: 2rem;
	}
	.cabecalho__logo img { width: 9rem; }
	.cabecalho__acoes { display: flex; align-items: center; gap: 1rem; }
	.cabecalho__acao {
		display: inline-grid; place-items: center; width: 4.4rem; height: 4.4rem; padding: 0;
		background: none; border: 0; color: var(--cor-texto);
	}
	.cabecalho__acao .icone { width: 2rem; height: 2rem; }
	.cabecalho__acao:hover { color: var(--cor-laranja-aa); }
	.cabecalho__acao--sessao-ativa { color: var(--cor-laranja-aa); }

	/* Menu principal */
	.menu-principal__abrir, .menu-principal__fechar { display: none; }
	.menu-principal__lista { display: flex; align-items: center; gap: 0.4rem; }
	.menu-principal__item { position: relative; }
	.menu-principal__ligacao, .menu-principal__botao {
		display: inline-flex; align-items: center; gap: 0.4rem;
		min-height: 4.4rem; padding: 0.8rem 1.2rem;
		background: none; border: 0; border-bottom: 2px solid transparent;
		font-size: 1.6rem; font-weight: 400; letter-spacing: 2px; color: var(--cor-texto);
		transition: color var(--transicao), border-color var(--transicao);
	}
	.menu-principal__botao .icone { width: 1.2rem; height: 1.2rem; transition: transform var(--transicao); }
	.menu-principal__botao[aria-expanded="true"] .icone { transform: rotate(180deg); }
	.menu-principal__ligacao:hover, .menu-principal__botao:hover,
	.menu-principal__botao[aria-expanded="true"] { color: var(--cor-laranja-aa); }
	.menu-principal__item--atual > .menu-principal__ligacao,
	.menu-principal__item--atual > .menu-principal__botao,
	.menu-principal__ligacao[aria-current="page"] { border-bottom-color: currentColor; }
	.menu-principal__submenu { display: none; }
	.menu-principal__botao[aria-expanded="true"] ~ .menu-principal__submenu { display: block; }
	.menu-principal__submenu {
		position: absolute; top: 100%; left: 0; z-index: 10; min-width: 24rem;
		background: var(--cor-cinza-claro); box-shadow: var(--sombra);
	}
	.menu-principal__submenu .menu-principal__ligacao {
		display: flex; width: 100%; padding: 1rem 1.6rem; border: 0;
		font-size: 1.5rem; letter-spacing: 1px;
	}
	.menu-principal__submenu .menu-principal__ligacao:hover,
	.menu-principal__submenu .menu-principal__ligacao:focus-visible { background: var(--cor-branco); }
	.menu-principal__submenu .menu-principal__ligacao[aria-current="page"] { font-weight: 500; text-decoration: underline; text-underline-offset: 0.3em; }
	/* Com rato: abre também ao passar por cima (o JS mantém aria-expanded certo) */
	@media (hover: hover) and (min-width: 992px) {
		.menu-principal__item--pai:hover > .menu-principal__submenu { display: block; }
	}

	/* Redes sociais */
	.redes { display: flex; gap: 0.8rem; }
	.redes__ligacao { display: inline-grid; place-items: center; color: var(--cor-branco); transition: filter var(--transicao); }
	.redes__ligacao:hover { color: var(--cor-branco); filter: brightness(1.15); }
	.redes--cabecalho .redes__ligacao { width: 3rem; height: 3rem; }
	.redes--cabecalho .redes__ligacao .icone { width: 1.5rem; height: 1.5rem; }
	.redes--cabecalho .redes__ligacao--facebook { background: #3b5998; }
	.redes--cabecalho .redes__ligacao--instagram { background: #c32aa3; }
	.redes--cabecalho .redes__ligacao--vimeo { background: #1a6e93; }
	.redes--rodape .redes__ligacao { width: 4.4rem; height: 4.4rem; }
	.redes--rodape .redes__ligacao .icone { width: 2.6rem; height: 2.6rem; }

	/* Idiomas */
	.idiomas { display: flex; }
	.idiomas__ligacao { display: inline-grid; place-items: center; width: 4.4rem; height: 4.4rem; }
	.idiomas__ligacao img { width: 2.3rem; height: 1.7rem; object-fit: contain; }

	/* Diálogo de pesquisa */
	.dialogo-pesquisa {
		width: min(70%, 90rem); max-width: none; padding: 10rem 2rem; border: 0;
		background: var(--cor-branco); box-shadow: var(--sombra);
	}
	.dialogo-pesquisa::backdrop { background: rgb(0 0 0 / 0.5); }
	.dialogo-pesquisa__fechar {
		position: absolute; top: 1.6rem; right: 1.6rem; display: grid; place-items: center;
		width: 4.4rem; height: 4.4rem; background: var(--cor-laranja-aa); color: var(--cor-branco); border: 0;
	}
	.dialogo-pesquisa__fechar:hover { background: var(--cor-laranja-escuro); }

	/* Formulário de pesquisa */
	.pesquisa { display: grid; gap: 0.8rem; max-width: 70rem; margin-inline: auto; }
	.pesquisa__rotulo { font-weight: 500; }
	.pesquisa__linha { display: flex; gap: 0.8rem; }
	.pesquisa__campo { flex: 1; }

	/* Cabeçalho das páginas (faixa com imagem e onda) */
	.cabecalho-pagina {
		position: relative; z-index: 0; display: flex; overflow: hidden;
		min-height: clamp(17rem, 18.164vw + 11.187rem, 36rem);
		background-color: #8d3d2a;
		background-image: linear-gradient(rgb(141 61 42 / 0.75), rgb(141 61 42 / 0.75)), url("../img/cabecalho-fundo.webp");
		background-size: cover; background-position: center;
		color: var(--cor-branco);
	}
	.cabecalho-pagina--arquivo { min-height: clamp(15rem, 19.12vw + 8.881rem, 35rem); }
	.cabecalho-pagina__texto { width: 100%; margin-top: 4%; padding: 0 var(--margem-lateral) 8rem 25%; }
	.cabecalho-pagina--arquivo .cabecalho-pagina__texto { margin-top: 7%; }
	.cabecalho-pagina__titulo { font-size: calc(var(--texto) * 2); color: var(--cor-branco); font-weight: 600; }
	.cabecalho-pagina__subtitulo { font-size: calc(var(--texto) * 1.2); font-weight: 300; color: var(--cor-branco); }
	.cabecalho-pagina__onda { position: absolute; left: 0; bottom: -1px; width: 100%; height: 8rem; color: var(--cor-branco); }
	.cabecalho-pagina--arquivo .cabecalho-pagina__onda { height: clamp(5rem, 9.56vw + 1.941rem, 15rem); }

	/* Conteúdo do editor */
	.conteudo > * + * { margin-top: 1em; }
	.conteudo :is(h2, h3, h4) { margin-top: 1.6em; }
	.conteudo ul, .conteudo ol { padding-left: 2.4rem; }
	.conteudo img { margin-block: 2rem; }
	.conteudo .alignleft { float: left; margin: 0.5rem 2rem 1rem 0; }
	.conteudo .alignright { float: right; margin: 0.5rem 0 1rem 2rem; }
	.conteudo .aligncenter { margin-inline: auto; }
	.conteudo table { width: 100%; border-collapse: collapse; }
	.conteudo :is(th, td) { padding: 0.8rem; border: 1px solid var(--cor-cinza-claro); text-align: left; }
	.conteudo iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }

	/* Partilha */
	.partilha {
		display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem;
		margin-top: 4rem; padding: 2.4rem 3rem; background: #fbf8f6; border-radius: var(--raio);
	}
	.partilha__texto { font-weight: 500; }
	.partilha__lista { display: flex; gap: 1.2rem; }
	.partilha__ligacao {
		display: grid; place-items: center; width: 4.4rem; height: 4.4rem; border-radius: 50%;
		background: var(--cor-laranja-aa); color: var(--cor-branco);
	}
	.partilha__ligacao:hover { background: var(--cor-laranja-escuro); color: var(--cor-branco); }
	.partilha__ligacao .icone { width: 2rem; height: 2rem; }

	/* Paginação */
	.paginacao { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.8rem; margin-top: 4rem; }
	.paginacao .page-numbers { display: inline-grid; place-items: center; min-width: 4.4rem; min-height: 4.4rem; padding: 0.5rem 1.2rem; font-size: 1.6rem; color: var(--cor-texto); }
	.paginacao a.page-numbers:hover { color: var(--cor-laranja-aa); text-decoration: underline; }
	.paginacao .page-numbers.current { background: var(--cor-laranja-aa); color: var(--cor-branco); }

	/* Rodapé */
	.rodape { background: var(--cor-laranja-aa); color: var(--cor-branco); }
	.rodape a { color: var(--cor-branco); font-weight: 300; text-decoration: none; }
	.rodape a:hover { color: var(--cor-branco); text-decoration: underline; text-underline-offset: 0.25em; }
	.rodape :focus-visible { outline-color: var(--cor-branco); box-shadow: none; }
	.rodape__colunas {
		display: grid; grid-template-columns: 1.1fr 0.8fr 1.3fr 1fr; gap: 4rem;
		padding-block: clamp(5rem, 4vw + 2rem, 8rem);
	}
	.rodape__coluna { display: flex; flex-direction: column; gap: 1.2rem; }
	.rodape__coluna--marca { gap: 2.4rem; }
	.rodape__logo { width: 18rem; }
	.rodape__titulo { margin-top: 1.2rem; font-size: 1.3rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cor-branco); }
	.rodape__titulo:first-child { margin-top: 0; }
	.rodape__titulo::after { content: ""; display: block; width: 3rem; height: 2px; margin-top: 1rem; background: rgb(255 255 255 / 0.6); }
	.rodape__menu { display: grid; gap: 0.2rem; }
	.rodape__menu a { display: inline-block; padding-block: 0.4rem; }
	.rodape__contactos { display: grid; gap: 1rem; }
	.rodape__contactos li, .rodape__morada { display: flex; align-items: flex-start; gap: 1.2rem; }
	.rodape__contactos small { display: block; font-size: 1.3rem; }
	.rodape__icone { flex-shrink: 0; display: grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; background: rgb(255 255 255 / 0.15); }
	.rodape__icone .icone { width: 1.6rem; height: 1.6rem; }
	.rodape__morada { font-style: normal; line-height: 1.7; }
	.redes--rodape { gap: 1rem; }
	.redes--rodape .redes__ligacao { width: 4.4rem; height: 4.4rem; border: 1.5px solid rgb(255 255 255 / 0.7); border-radius: 50%; transition: background-color var(--transicao), color var(--transicao); }
	.redes--rodape .redes__ligacao:hover { background: var(--cor-branco); color: var(--cor-laranja-aa); filter: none; }
	.redes--rodape .redes__ligacao .icone { width: 2rem; height: 2rem; }
	.rodape__base { background: var(--cor-laranja-escuro); font-size: 1.4rem; }
	.rodape__base-interior { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.8rem; }
	.rodape__legal { display: flex; flex-wrap: wrap; gap: 0.4rem 2.4rem; }
}

/* ---------- Páginas ---------- */
@layer paginas {
	/* Utilidades de composição */
	.pilha { display: flex; flex-direction: column; gap: var(--espaco-l); }
	.pilha--centro { align-items: center; }
	.pilha--larga > .conteudo { width: 100%; }
	.secao--sem-topo { padding-top: 0; }
	.secao--compacta { padding-block: 0; }
	.texto-centro { text-align: center; }
	.titulo-bloco { font-size: calc(var(--texto) * 1.4); font-weight: 600; color: var(--cor-titulo); text-align: center; }
	.imagem-larga { width: 100%; }
	.imagem-natural { max-width: 100%; height: auto; }

	/* Formulários Contact Form 7 (mesmo aspeto do site anterior; rótulos só para leitores de ecrã) */
	.wpcf7 { max-width: 100%; color: #333; }
	.wpcf7 form > p, .wpcf7 form > div:not(.wpcf7-response-output):not(.screen-reader-response) { margin-bottom: 2.4rem; }
	.wpcf7 .cf7-label-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.wpcf7-form-control:not(.wpcf7-submit, .wpcf7-checkbox, .wpcf7-acceptance, .wpcf7-radio) {
		display: block; width: 100%; padding: 1.5rem 2rem; border: 1px solid var(--cor-borda); border-radius: 4px;
		background: var(--cor-branco); color: #333; font-size: 1.6rem; transition: border-color var(--transicao);
	}
	.wpcf7-form-control:not(.wpcf7-submit):focus { border-color: #333; }
	.wpcf7-form-control.wpcf7-not-valid { border-color: var(--cor-erro); }
	.wpcf7-textarea { min-height: 15rem; }
	.wpcf7-select {
		appearance: none; padding-right: 4rem; cursor: pointer;
		background: var(--cor-branco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 1.5rem center / 2rem;
	}
	.wpcf7-acceptance .wpcf7-list-item, .wpcf7-checkbox .wpcf7-list-item { margin: 0; }
	.wpcf7-acceptance label, .wpcf7-checkbox label { display: flex; align-items: flex-start; gap: 1rem; font-size: 90%; color: #333; cursor: pointer; }
	.wpcf7-acceptance input[type="checkbox"], .wpcf7-checkbox input[type="checkbox"] {
		flex-shrink: 0; appearance: none; position: relative; top: 0.3rem; width: 2rem; height: 2rem; margin: 0;
		border: 2px solid var(--cor-laranja-aa); border-radius: 0; background: transparent; cursor: pointer;
	}
	.wpcf7-acceptance input[type="checkbox"]:checked, .wpcf7-checkbox input[type="checkbox"]:checked { background: var(--cor-laranja-aa); }
	.wpcf7-acceptance input[type="checkbox"]:checked::before, .wpcf7-checkbox input[type="checkbox"]:checked::before {
		content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--cor-branco); font-size: 1.4rem; line-height: 1;
	}
	.wpcf7-list-item-label a { text-decoration: underline; }
	.wpcf7-submit {
		display: block; margin-top: 3rem; padding: 1.8rem 3rem; border: 0; border-radius: 4px;
		background: var(--cor-laranja-aa); color: var(--cor-branco); font-size: 1.6rem; font-weight: 500; text-transform: uppercase; cursor: pointer;
	}
	.wpcf7-submit:hover { background: var(--cor-laranja-escuro); }
	.wpcf7-submit:disabled { opacity: 0.55; cursor: not-allowed; }
	.wpcf7-not-valid-tip { display: block; margin-top: 0.5rem; color: var(--cor-erro); font-size: 90%; }
	.wpcf7 form .wpcf7-response-output { margin: 2rem 0 0; padding: 1rem 1.5rem; border: 2px solid var(--cor-erro); }
	.wpcf7 form.sent .wpcf7-response-output { border-color: #2e7d32; }
	.wpcf7-description { display: block; margin-top: 0.8rem; font-size: 0.8em; font-style: italic; color: #555; }
	.aviso { padding: 1.5rem 2rem; background: var(--cor-laranja-aa); color: var(--cor-branco); text-align: center; }
	.aviso a { color: var(--cor-branco); text-decoration: underline; }

	/* Imagem destacada que sobe sobre a onda */
	.imagem-destaque { position: relative; z-index: 2; display: flex; justify-content: center; margin-top: -15rem; padding: 3rem 2rem 0; }
	.imagem-destaque img { border-radius: 1rem; box-shadow: 0 15px 48px 0 var(--cor-cinza-texto); width: auto; max-height: 80vh; }
	.imagem-destaque--cartaz img { max-width: clamp(32rem, 33.461vw + 21.293rem, 67rem); }
	.imagem-destaque--capa { margin-top: -12rem; padding-top: 0; }
	.imagem-destaque--capa img { width: 40rem; border: 5px solid var(--cor-branco); border-radius: 0; box-shadow: none; }
	.editorial-autor { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 2rem; margin-top: -20rem; padding: 3rem 2rem; text-align: center; }
	.editorial-autor .imagem-destaque { margin: 0; padding: 0; }
	.imagem-destaque--retrato img { width: 25rem; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
	@media (max-width: 1366px) { .editorial-autor { margin-top: -17rem; } }

	/* Galeria e diálogo de ampliação */
	.galeria-bloco { display: flex; flex-direction: column; gap: var(--espaco-m); width: 100%; }
	/* Mosaico justificado: linhas da mesma altura (--altura), cada foto na sua proporção (--r); a última linha não estica */
	.galeria { --altura: 20rem; display: flex; flex-wrap: wrap; gap: 1rem; }
	.galeria--grande { --altura: 42rem; gap: 2rem; }
	.galeria::after { content: ""; flex-grow: 999; }
	.galeria--justificada::after { display: none; }
	.galeria li { flex: var(--r) 1 calc(var(--r) * var(--altura)); }
	.galeria a { display: block; overflow: hidden; border-radius: 0.8rem; }
	.galeria img { display: block; width: 100%; height: auto; aspect-ratio: var(--r); object-fit: cover; transition: transform 0.4s ease; }
	.galeria a:hover img { transform: scale(1.03); }
	.ampliacao { width: min(96vw, 140rem); max-width: none; height: min(94vh, 100rem); max-height: none; padding: 0; border: 0; background: #111; color: var(--cor-branco); }
	.ampliacao::backdrop { background: rgb(0 0 0 / 0.85); }
	.ampliacao__figura { display: flex; flex-direction: column; height: 100%; margin: 0; padding: 1rem 6rem 0; }
	.ampliacao__figura img { flex: 1 1 auto; min-height: 0; width: 100%; height: 100%; object-fit: contain; }
	.ampliacao__legenda { padding: 1rem 6rem; text-align: center; min-height: 4.4rem; }
	.ampliacao button { position: absolute; display: grid; place-items: center; width: 4.8rem; height: 4.8rem; border: 0; border-radius: 50%; background: rgb(0 0 0 / 0.6); color: var(--cor-branco); }
	.ampliacao button:hover { background: var(--cor-laranja-aa); }
	.ampliacao__fechar { top: 1rem; right: 1rem; }
	.ampliacao__anterior { left: 1rem; top: 50%; translate: 0 -50%; }
	.ampliacao__seguinte { right: 1rem; top: 50%; translate: 0 -50%; }

	/* Cartões das listas: claros, imagem inteira, título por baixo */
	.grelha-3--arquivo { column-gap: 3rem; row-gap: 4rem; }
	.cartao-arquivo {
		position: relative; display: flex; flex-direction: column; overflow: hidden;
		background: var(--cor-branco); border-radius: var(--raio); box-shadow: var(--sombra-cartao);
		transition: transform 0.25s ease, box-shadow 0.25s ease;
	}
	.cartao-arquivo:hover { transform: translateY(-0.4rem); box-shadow: var(--sombra-cartao-forte); }
	.cartao-arquivo__imagem { background: var(--cor-fundo-suave); }
	.cartao-arquivo__imagem img { width: 100%; }  /* imagem inteira, na proporção original */
	.cartao-arquivo__titulo {
		margin-top: auto; padding: 2rem 2.4rem 2.4rem; border-top: 3px solid var(--cor-laranja);
		font-size: calc(var(--texto) * 1.05); font-weight: 500; line-height: 1.35; text-align: center; color: var(--cor-texto);
	}
	.cartao-arquivo__titulo a { color: inherit; font-weight: inherit; }
	.cartao-arquivo__titulo a::after { content: ""; position: absolute; inset: 0; }
	.cartao-arquivo:hover .cartao-arquivo__titulo a { color: var(--cor-ligacao); }
	.cartao-arquivo:has(a:focus-visible), .cartao-capa:has(a:focus-visible) { outline: 3px solid var(--cor-foco); outline-offset: 3px; }
	.cartao-arquivo a:focus-visible, .cartao-capa a:focus-visible { outline: none; box-shadow: none; }
	.cartao-capa { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1.6rem; padding: 2rem; border-radius: var(--raio); transition: background-color 0.25s ease; }
	.cartao-capa:hover { background: var(--cor-fundo-suave); }
	.cartao-capa img { width: 80%; border-radius: 0.6rem; box-shadow: var(--sombra-cartao); }
	.cartao-capa__titulo { width: 90%; font-size: calc(var(--texto) * 1.05); font-weight: 400; text-align: center; }
	.cartao-capa__titulo a::after { content: ""; position: absolute; inset: 0; }

	/* Editoriais */
	.editoriais { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 4rem; row-gap: 6rem; justify-items: center; align-items: start; }
	.editoriais__item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2rem; text-align: center; }
	.editoriais__retrato { width: 50%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 0.6rem var(--cor-branco), 0 0 0 0.8rem transparent; transition: box-shadow 0.25s ease; }
	.editoriais__item:hover .editoriais__retrato { box-shadow: 0 0 0 0.6rem var(--cor-branco), 0 0 0 0.8rem var(--cor-laranja); }
	.editoriais__titulo { font-size: calc(var(--texto) * 1.1); font-weight: 500; }
	.editoriais__titulo a::after { content: ""; position: absolute; inset: 0; }
	.editoriais__autor { font-size: 90%; }

	/* Listas em linhas (sócios, artigos, pósteres, pesquisa) */
	.lista-com-pesquisa { display: flex; flex-direction: column; gap: 1.6rem; width: 100%; }
	.procurar-lista { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem; }
	.procurar-lista input { width: min(50vw, 60rem); border-radius: 0.8rem; }
	.procurar-lista .botao { border-radius: 0.8rem; }
	.procurar-lista__limpar { margin-left: 1rem; }
	.lista-linhas { display: flex; flex-direction: column; gap: 1rem; width: 100%; }
	.lista-linhas__item {
		position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 2rem 2.4rem;
		background: var(--cor-branco); border: 1px solid #e6e2df; border-left: 3px solid var(--cor-laranja); border-radius: 0.8rem;
		transition: background-color 0.2s ease, box-shadow 0.2s ease;
	}
	.lista-linhas__item:hover { background: #fffaf7; box-shadow: var(--sombra-cartao); }
	.lista-linhas__item--coluna { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
	.lista-linhas__item--seta .icone { color: var(--cor-laranja-aa); width: 2.8rem; height: 2.8rem; }
	.lista-linhas__titulo { font-size: var(--texto); font-weight: 400; line-height: 1.4; }
	.lista-linhas__titulo--texto { color: var(--cor-texto); }
	.lista-linhas__item--seta .lista-linhas__titulo a::after, .lista-linhas__item--coluna .lista-linhas__titulo a::after { content: ""; position: absolute; inset: 0; }
	.lista-linhas__item:has(a:focus-visible) { outline: 3px solid var(--cor-foco); outline-offset: 2px; }
	.lista-linhas__titulo a:focus-visible { outline: none; box-shadow: none; }
	.botao--pequeno { min-height: 4.4rem; padding: 0.6rem 1.2rem; font-size: 1.4rem; }

	/* Texto com imagem, fila de imagens, logótipos */
	.texto-imagem { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; padding-bottom: 0; }
	.texto-imagem__imagem img { width: 100%; border-radius: var(--raio); box-shadow: var(--sombra-cartao); }
	.fila-imagens { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding-block: var(--secao-vertical); }
	.fila-imagens img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--raio); box-shadow: var(--sombra-cartao); }
	.logotipos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
	.logotipos__item { display: flex; flex-direction: column; align-items: center; gap: 1rem; }

	/* Pessoas */
	.pessoas--caixa { background: var(--cor-fundo-suave); }
	.pessoas__intro { display: flex; flex-direction: column; align-items: center; gap: 1rem; text-align: center; max-width: var(--largura-texto); }
	.pessoas__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; width: 100%; }
	.pessoas--simples .pessoas__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.pessoas__item { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
	.pessoas--caixa .pessoas__item { overflow: hidden; background: var(--cor-branco); border-radius: var(--raio); box-shadow: var(--sombra-cartao); gap: 0; }
	.pessoas__foto { width: 100%; aspect-ratio: 1; object-fit: cover; }
	.pessoas--simples .pessoas__foto { border-radius: var(--raio); box-shadow: var(--sombra-cartao); }
	.pessoas--caixa .pessoas__texto { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; width: 100%; padding: 1.6rem; border-top: 3px solid var(--cor-laranja); text-align: center; }
	.pessoas__legenda { color: var(--cor-cinza-texto); font-size: 1.5rem; }
	.pessoas__nome { font-size: var(--h3); font-weight: 400; text-align: center; }
	.pessoas--simples .pessoas__nome { width: 80%; font-size: var(--texto); font-weight: 600; color: var(--cor-texto); }

	/* Contactos */
	.contactos { display: flex; gap: 3rem; }
	.contactos__info {
		display: flex; flex-direction: column; gap: var(--espaco-l); width: 40%; align-self: flex-start;
		padding: clamp(2rem, 2.5vw, 3.6rem); background: #fbf8f6; border-radius: var(--raio); border-top: 4px solid var(--cor-laranja);
	}
	.contactos__formulario { width: 60%; }
	.contactos__bloco { display: flex; flex-direction: column; gap: 1rem; }
	.contactos__titulo { font-size: calc(var(--texto) * 1.1); font-weight: 600; color: var(--cor-titulo); }
	.contactos__formulario .contactos__titulo { margin-bottom: 2rem; }
	.contactos__lista { display: flex; flex-direction: column; gap: 1rem; }
	.contactos__lista li { display: flex; align-items: center; gap: 1rem; }
	.contactos__lista .icone { width: 2.4rem; height: 2.4rem; color: var(--cor-laranja-aa); }
	.contactos address { font-style: normal; }

	/* Login, mensagem, vídeos, newsletter */
	.login form { width: min(70%, 60rem); display: grid; gap: 1rem; }
	.login form p { display: grid; gap: 0.6rem; }
	.login label { font-weight: 500; }
	.login .login-remember label { display: flex; align-items: center; gap: 0.8rem; font-weight: 300; }
	.login .login-remember input { width: 2rem; height: 2rem; accent-color: var(--cor-laranja-aa); }
	.login input[type="submit"] { justify-self: start; min-height: 4.4rem; padding: 0.8rem 2.4rem; border: 0; background: var(--cor-laranja-aa); color: var(--cor-branco); font-size: 1.6rem; cursor: pointer; }
	.login input[type="submit"]:hover { background: var(--cor-laranja-escuro); }
	.mensagem__texto { font-size: calc(var(--texto) * 2.15); font-weight: 600; line-height: 1.3; color: var(--cor-titulo); text-align: center; }
	.mensagem__texto > * + * { margin-top: 1rem; }
	.video { width: 100%; }
	.video iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; }
	.videos { padding-top: 0; width: 100%; }
	.videos__item { display: flex; flex-direction: column; gap: 1rem; }
	.videos__titulo { font-size: var(--texto); font-weight: 500; }
	.apoio { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 4rem; }
	.apoio p { text-transform: uppercase; font-weight: 500; }
	.newsletter { padding: calc(var(--secao-vertical) * 0.3) 0 var(--secao-vertical); background: #f6f6f6; }
	.newsletter > * { margin-inline: auto; }

	/* Carrossel (página inicial) */
	.carrossel { position: relative; }
	.carrossel__pista { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
	.carrossel__pista::-webkit-scrollbar { display: none; }
	.carrossel__slide {
		position: relative; isolation: isolate; flex: 0 0 100%; scroll-snap-align: start; overflow: hidden;
		display: flex; align-items: center;
		height: clamp(25rem, 38.241vw + 12.763rem, 65rem);
		background: var(--cor-slide, #202020);
	}
	.carrossel__imagem { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
	@media (min-width: 1500px) { .carrossel__slide--imagem-inteira .carrossel__imagem { object-fit: contain; } }
	.carrossel__texto { max-width: 50%; padding-left: 5rem; }
	.carrossel--ativo .carrossel__texto { opacity: 0; transform: translateY(5rem); transition: transform 1s ease-out, opacity 1s ease-out; }
	.carrossel--ativo .carrossel__slide.ativo .carrossel__texto { opacity: 1; transform: none; }
	.carrossel__caixa > * + * { margin-top: 1.5rem; }
	.carrossel__titulo { font-size: clamp(2rem, 2.294vw + 0.866rem, 4rem); font-weight: 600; line-height: 1; color: var(--cor-titulo); }
	.carrossel__subtitulo { font-size: clamp(1.6rem, 1.434vw + 0.541rem, 2.5rem); font-weight: 400; }
	.carrossel__paragrafo { font-size: clamp(1.4rem, 0.956vw + 0.694rem, 2rem); }
	.carrossel__slide--texto-claro :is(.carrossel__titulo, .carrossel__subtitulo, .carrossel__paragrafo) { color: var(--cor-branco); }
	.carrossel .botao { margin-top: 2rem; font-size: clamp(1.4rem, 0.956vw + 0.694rem, 2rem); }
	.botao--contorno { background: transparent; border-color: var(--cor-texto); color: var(--cor-texto); }
	.botao--contorno:hover { background: var(--cor-texto); color: var(--cor-branco); }
	.carrossel__slide--texto-claro .botao--contorno { border-color: var(--cor-branco); color: var(--cor-branco); }
	.carrossel__slide--texto-claro .botao--contorno:hover { background: var(--cor-branco); color: #000; }
	.carrossel__controlos {
		position: absolute; right: var(--margem-lateral); bottom: 1.2rem;
		display: flex; align-items: center; gap: 0.4rem;
		padding: 0.2rem 0.8rem; background: rgb(255 255 255 / 0.85); border-radius: 2.4rem;
	}
	.carrossel__controlos > button {
		display: grid; place-items: center; width: 3.6rem; height: 3.6rem; padding: 0;
		background: none; border: 0; border-radius: 50%; color: var(--cor-texto);
	}
	.carrossel__controlos > button .icone { width: 1.8rem; height: 1.8rem; }
	.carrossel__controlos > button:hover { color: var(--cor-laranja-aa); }
	.carrossel__indicadores { display: flex; gap: 0.2rem; }
	.carrossel__indicador { display: grid; place-items: center; width: 2.6rem; height: 3.6rem; padding: 0; background: none; border: 0; }
	.carrossel__indicador::before { content: ""; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #8a8a8a; transition: background-color var(--transicao); }
	.carrossel__indicador[aria-current="true"]::before { background: var(--cor-laranja-aa); }
	.carrossel:not(.carrossel--ativo) .carrossel__controlos { display: none; }

	/* Diapositivos em cartão (normais e "Última newsletter") */
	/* Paletas: --sc-* definem fundo, texto e acentos (contraste ≥ 4.5:1 verificado em cada uma) */
	.slide-cartao {
		--sc-fundo: linear-gradient(115deg, #fffaf7 0%, #fdebe3 55%, #f9d6c8 100%);
		--sc-texto: var(--cor-texto); --sc-secundario: var(--cor-titulo); --sc-etiqueta: var(--cor-laranja-aa);
		--sc-destaque: var(--cor-laranja-aa); --sc-espiral: var(--cor-laranja); --sc-espiral-opacidade: 0.35; --sc-sombra: rgb(141 61 42 / 0.35);
		background: var(--sc-fundo); color: var(--sc-texto);
	}
	.slide-cartao--cinza { --sc-fundo: linear-gradient(115deg, #f7f8fa 0%, #eef1f5 60%, #e3e7ed 100%); --sc-secundario: #5c5c5c; --sc-etiqueta: #b8330f; --sc-destaque: #b8330f; --sc-espiral: #98a1a8; --sc-espiral-opacidade: 0.45; --sc-sombra: rgb(32 32 32 / 0.25); }
	.slide-cartao--laranja { --sc-fundo: linear-gradient(115deg, #c43a17 0%, #a8361a 55%, #8d3d2a 100%); --sc-texto: #fff; --sc-secundario: #fff; --sc-etiqueta: #fff; --sc-destaque: #ffe1d6; --sc-espiral: #fff; --sc-espiral-opacidade: 0.18; --sc-sombra: rgb(0 0 0 / 0.35); }
	.slide-cartao--azul { --sc-fundo: linear-gradient(115deg, #1f2757 0%, #161c42 60%, #10142f 100%); --sc-texto: #fff; --sc-secundario: #c9cde6; --sc-etiqueta: #ff8a66; --sc-destaque: #ff8a66; --sc-espiral: #ff8a66; --sc-espiral-opacidade: 0.28; --sc-sombra: rgb(0 0 0 / 0.5); }
	.slide-cartao--grafite { --sc-fundo: linear-gradient(115deg, #2b2b2b 0%, #202020 60%, #161616 100%); --sc-texto: #fff; --sc-secundario: #c8c8c8; --sc-etiqueta: #ff8a66; --sc-destaque: #ff8a66; --sc-espiral: #ff8a66; --sc-espiral-opacidade: 0.25; --sc-sombra: rgb(0 0 0 / 0.5); }
	/* Fundos escuros: botão branco com texto laranja escuro (5.97:1) */
	:is(.slide-cartao--laranja, .slide-cartao--azul, .slide-cartao--grafite) .botao { background: #fff; border-color: #fff; color: #b8330f; }
	:is(.slide-cartao--laranja, .slide-cartao--azul, .slide-cartao--grafite) .botao:hover { background: transparent; color: #fff; }
	.slide-cartao__espiral {
		position: absolute; z-index: -1; right: -6%; top: 50%; width: min(70vw, 95rem); height: auto; translate: 0 -50%;
		fill: none; stroke: var(--sc-espiral); stroke-width: 1.4; opacity: var(--sc-espiral-opacidade);
	}
	.slide-cartao__interior { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); align-items: center; gap: 4rem; height: 100%; padding-inline: 5rem; }
	.slide-cartao__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 1.2rem; }
	.slide-cartao__etiqueta { font-size: clamp(1.3rem, 0.5vw + 1.1rem, 1.6rem); font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--sc-etiqueta); }
	.slide-cartao__titulo { font-size: clamp(2.6rem, 2.8vw + 1rem, 5.6rem); color: var(--sc-texto); line-height: 1.05; }
	.slide-cartao__destaque { color: var(--sc-destaque); white-space: nowrap; }
	.slide-cartao__subtitulo { font-size: clamp(1.6rem, 1vw + 1rem, 2.4rem); font-weight: 400; color: var(--sc-secundario); }
	.slide-cartao__nesta { margin-top: 1rem; font-size: 1.3rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--sc-secundario); }
	.slide-cartao__temas { display: grid; gap: 0.4rem; }
	.slide-cartao__temas li { position: relative; padding-left: 2rem; font-size: clamp(1.4rem, 0.4vw + 1.2rem, 1.8rem); }
	.slide-cartao__temas li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 1rem; height: 2px; background: var(--sc-destaque); }
	.slide-cartao .botao { margin-top: 1.6rem; }
	.slide-cartao__paragrafo { max-width: 52ch; font-size: clamp(1.4rem, 0.5vw + 1.2rem, 1.9rem); }
	.slide-cartao__imagem { display: flex; justify-content: center; }
	.slide-cartao__imagem img {
		width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: var(--foco, right center);
		border-radius: 1.2rem; box-shadow: 0 2.4rem 6rem var(--sc-sombra); rotate: -2deg;
		transition: rotate 0.4s ease;
	}
	.slide-cartao__imagem--retrato img { width: min(100%, 38rem); aspect-ratio: 4 / 5; object-fit: cover; object-position: top; rotate: -3deg; }
	.slide-cartao:hover .slide-cartao__imagem img { rotate: 0deg; }

	/* Cartões (notícias, eventos): claros, cantos arredondados, sombra suave; o cartão inteiro é clicável */
	.cartoes { align-items: stretch; }
	.cartao {
		position: relative; display: flex; flex-direction: column; overflow: hidden;
		background: var(--cor-branco); border-radius: var(--raio); box-shadow: var(--sombra-cartao);
		transition: transform 0.25s ease, box-shadow 0.25s ease;
	}
	.cartao:hover { transform: translateY(-0.4rem); box-shadow: var(--sombra-cartao-forte); }
	.cartao__imagem { overflow: hidden; background: var(--cor-fundo-suave); }
	.cartao__imagem img { width: 100%; transition: transform 0.5s ease; }
	.cartao:hover .cartao__imagem img { transform: scale(1.03); }
	.cartao__corpo { flex: 1; display: flex; flex-direction: column; gap: 0.8rem; padding: 2.4rem 2.4rem 2.8rem; }
	.cartao__titulo { order: 2; font-size: 2rem; font-weight: 500; line-height: 1.3; color: var(--cor-texto); }
	.cartao__titulo a { color: inherit; font-weight: inherit; }
	.cartao__titulo a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
	.cartao:hover .cartao__titulo a { color: var(--cor-ligacao); }
	.cartao:has(a:focus-visible) { outline: 3px solid var(--cor-foco); outline-offset: 3px; }
	.cartao__titulo a:focus-visible { outline: none; box-shadow: none; }
	.cartao__data { order: 1; display: flex; align-items: center; gap: 0.6rem; color: var(--cor-cinza-texto); font-size: 1.4rem; }
	.cartao__data .icone { width: 1.6rem; height: 1.6rem; color: var(--cor-laranja-aa); }
	.cartao__linha { order: 3; width: 4rem; height: 3px; margin: 0.4rem 0; border: 0; border-radius: 2px; background: var(--cor-laranja); }
	.cartao__excerto { order: 4; color: var(--cor-cinza-texto); font-size: 1.5rem; }
	.cartao--evento .cartao__titulo { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
	.cartao--evento .cartao__corpo { gap: 1.6rem; }
	.cartao__excerto--claro { color: var(--cor-texto); }
	.cartao--evento .botao { align-self: flex-start; margin-top: auto; }

	/* Destaque ("Save the date"): mesmo fundo dos diapositivos, data em destaque e imagem em cartão */
	.destaque { position: relative; isolation: isolate; overflow: hidden; }
	.destaque__interior { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: center; gap: 4rem; padding-block: var(--secao-vertical); }
	.destaque__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 1.6rem; }
	.destaque__texto h2 { color: var(--cor-texto); }
	.destaque__data { font-size: clamp(2.4rem, 2vw + 1.2rem, 4.4rem); font-weight: 600; line-height: 1.15; color: var(--cor-texto); }
	.destaque__botoes { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 0.8rem; }
	.destaque__imagem img { width: 100%; border-radius: var(--raio); box-shadow: 0 2.4rem 6rem var(--sc-sombra); rotate: 1.5deg; transition: rotate 0.4s ease; }
	.destaque:hover .destaque__imagem img { rotate: 0deg; }

	/* Parceria: quem apoia o site; cartão branco destacado com selo "APO × parceiro" */
	.parceria { position: relative; background: linear-gradient(160deg, var(--cor-fundo-suave) 0%, #fff 100%); }
	.parceria .secao__titulos { margin-bottom: 3rem; }
	.parceria__colunas {
		position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 4rem; align-items: center;
		padding: clamp(2rem, 3vw, 4.8rem); background: var(--cor-branco); border-radius: calc(var(--raio) * 1.5);
		box-shadow: 0 3rem 8rem rgb(32 32 32 / 0.1); border-top: 4px solid var(--cor-laranja);
	}
	.parceria__selo {
		position: absolute; top: 0; left: clamp(2rem, 3vw, 4.8rem); translate: 0 -50%; z-index: 2;
		padding: 0.6rem 1.6rem; border-radius: 99rem; background: var(--cor-laranja-aa); color: var(--cor-branco);
		font-size: 1.3rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; box-shadow: 0 0.8rem 2rem rgb(216 63 26 / 0.3);
	}
	.parceria__selo span { opacity: 0.8; padding-inline: 0.3em; }
	.parceria__imagem img { width: 100%; border-radius: var(--raio); box-shadow: var(--sombra-cartao); }
	.parceria__texto { display: flex; flex-direction: column; align-items: flex-start; gap: 2.4rem; }
	.parceria__texto .conteudo { font-size: calc(var(--texto) * 1.05); }

	/* Patrocínios: logótipos em cartões iguais, a cores, com realce ao passar */
	.patrocinios { position: relative; isolation: isolate; overflow: hidden; background: #fbf8f6; }
	.patrocinios::before {
		content: ""; position: absolute; z-index: -1; inset: auto -10% -60% auto; width: 70rem; aspect-ratio: 1; border-radius: 50%;
		background: repeating-radial-gradient(circle, transparent 0 2.4rem, rgb(241 71 29 / 0.12) 2.4rem 2.55rem);
	}
	.patrocinios .secao__titulos { margin-bottom: 4rem; }
	.patrocinios__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(30rem, 100%), 1fr)); gap: 2.4rem; }
	.patrocinios__lista li { display: flex; }
	.patrocinios__lista a, .patrocinios__lista li > img {
		flex: 1; display: grid; place-items: center; min-height: 20rem; padding: 3rem;
		background: var(--cor-branco); border: 1px solid #eee5e0; border-radius: var(--raio); box-shadow: var(--sombra-cartao);
		transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	}
	.patrocinios__lista a:hover { transform: translateY(-0.4rem); border-color: var(--cor-laranja); box-shadow: var(--sombra-cartao-forte); }
	.patrocinios__lista img { max-height: 16rem; width: auto; max-width: 100%; object-fit: contain; }

}

/* ---------- Utilitários ---------- */
@layer utilitarios {
	.visualmente-oculto {
		position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
		overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
	}
	[hidden] { display: none !important; }
}

/* ---------- Responsivo ---------- */
@media (max-width: 991px) {
	.cabecalho__interior { justify-content: space-between; }
	.menu-principal__abrir {
		display: inline-grid; place-items: center; width: 4.8rem; height: 4.8rem; padding: 0;
		background: none; border: 0; color: var(--cor-laranja-aa);
	}
	.menu-principal__abrir .icone { width: 3.2rem; height: 3.2rem; }
	.menu-principal__painel {
		position: fixed; inset: 0; z-index: 100; display: none; overflow-y: auto;
		padding: 2rem; background: var(--cor-branco);
	}
	.menu-principal.aberto .menu-principal__painel { display: block; }
	.menu-principal__fechar {
		display: inline-flex; align-items: center; gap: 0.8rem; margin: 0 0 2rem auto;
		padding: 1.2rem 1.6rem; background: var(--cor-cinza-claro); border: 0; border-radius: 8px;
		text-transform: uppercase; letter-spacing: 2px; font-weight: 500;
	}
	.menu-principal__fechar .icone { width: 2.4rem; height: 2.4rem; }
	.menu-principal__lista { flex-direction: column; align-items: stretch; gap: 0; }
	.menu-principal__ligacao, .menu-principal__botao { width: 100%; justify-content: space-between; padding: 1.2rem 0.8rem; border-bottom: 1px solid var(--cor-cinza-claro); }
	.menu-principal__submenu { position: static; box-shadow: none; background: var(--cor-fundo-suave); border-top: 1px solid var(--cor-laranja); }
	.menu-principal__submenu .menu-principal__ligacao { padding-left: 2.4rem; }
	.rodape__colunas { grid-template-columns: 1fr 1fr; gap: 4rem 3rem; }
	.cabecalho-pagina__texto { padding-left: var(--margem-lateral); text-align: center; }
}
@media (max-width: 991px) {
	.imagem-destaque { margin-top: -12rem; }
	.editorial-autor { margin-top: -14rem; }
	.contactos { flex-direction: column; }
	.contactos__info, .contactos__formulario { width: 100%; }
	.pessoas--simples .pessoas__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.texto-imagem { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
	.carrossel__texto { max-width: 90%; padding: 0 2rem; }
	.carrossel__caixa { padding: 2.5rem; background: rgb(30 30 30 / 0.85); }
	.carrossel__slide { height: auto; min-height: clamp(25rem, 38.241vw + 12.763rem, 65rem); padding-block: 2rem; }
	.carrossel__controlos { position: static; width: max-content; margin: 1rem var(--margem-lateral) 0 auto; background: var(--cor-cinza-claro); }
	.carrossel__caixa :is(.carrossel__titulo, .carrossel__subtitulo, .carrossel__paragrafo) { color: var(--cor-branco); }
	.carrossel__caixa .botao--contorno { border-color: var(--cor-branco); color: var(--cor-branco); }
}
@media (max-width: 767px) {
	.pagina-simples .conteudo { max-width: none; }
	.destaque__interior { grid-template-columns: 1fr; gap: 3rem; }
	.destaque__imagem { order: -1; }
	.destaque__texto { align-items: center; text-align: center; }
	.destaque__botoes { justify-content: center; }
	.parceria__colunas { grid-template-columns: 1fr; gap: 3rem; padding-top: 4rem; }
	.parceria__texto { align-items: center; text-align: center; }
	.patrocinios__lista a, .patrocinios__lista li > img { min-height: 16rem; padding: 2.4rem; }
	.parceria .secao__titulos { text-align: center; }
	.imagem-destaque { margin-top: -10rem; }
	.imagem-destaque--cartaz img { max-width: 32rem; }
	.imagem-destaque--capa { margin-top: -7rem; }
	.imagem-destaque--capa img { width: 38rem; }
	.editorial-autor { margin-top: -12rem; }
	.imagem-destaque--retrato img { width: 24rem; }
	.login form { width: 100%; }
	.pessoas__lista, .fila-imagens { grid-template-columns: 1fr; }
	.editoriais { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; row-gap: 3rem; }
	.procurar-lista input { width: 100%; }
	.lista-linhas__item { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 768px) {
	/* Telemóvel: imagem em cima com a largura toda e igual em todos os diapositivos; conteúdo alinhado ao topo */
	.slide-cartao { align-items: flex-start; }
	.slide-cartao__interior { grid-template-columns: 1fr; align-content: start; gap: 2rem; height: auto; padding: 2.4rem 2rem 3rem; text-align: left; }
	.slide-cartao__imagem { order: -1; }
	.slide-cartao__imagem img,
	.slide-cartao__imagem--retrato img { width: 100%; aspect-ratio: 16 / 10; rotate: -1deg; }
	.slide-cartao__imagem--retrato img { object-position: top; }
	.slide-cartao__espiral { width: 140vw; right: -50%; }
}
@media (max-width: 480px) {
	.carrossel__texto { max-width: 100%; padding: 0 1.5rem; }
	.carrossel__caixa { padding: 1.5rem; }
}
@media (max-width: 479px) {
	.galeria { --altura: 12rem; gap: 0.6rem; }
	.galeria--grande { --altura: 22rem; gap: 1rem; }
	.ampliacao__figura { padding-inline: 0; }
	.imagem-destaque { margin-top: -8rem; }
	.imagem-destaque--capa img { width: 27rem; }
	.editorial-autor { margin-top: -10rem; }
	.imagem-destaque--retrato img { width: 21rem; }
	.pessoas--simples .pessoas__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.logotipos { grid-template-columns: 1fr; }
	.redes--cabecalho { display: none; }
	.dialogo-pesquisa { width: 90%; }
	.pesquisa__linha { flex-direction: column; }
	.rodape__colunas { grid-template-columns: 1fr; gap: 3.6rem; }
	.rodape__base-interior { flex-direction: column; text-align: center; }
	.rodape__legal { justify-content: center; }
	.cabecalho-pagina__titulo { font-size: calc(var(--texto) * 1.8); line-height: 1.4; }
	.cabecalho-pagina__subtitulo { font-size: calc(var(--texto) * 0.95); }
}

/* Banner de cookies (CookieYes): o laranja da marca vem em estilos inline e não chega a 4.5:1. */
.cky-consent-container .cky-btn-customize,
.cky-consent-container .cky-btn-reject,
.cky-modal .cky-btn-reject,
.cky-modal .cky-btn-preferences {
	color: var(--cor-laranja-aa, #d83f1a) !important;
	border-color: var(--cor-laranja-aa, #d83f1a) !important;
}
.cky-consent-container .cky-btn-accept,
.cky-modal .cky-btn-accept,
.cky-modal .cky-btn-save {
	color: #fff !important;
	background-color: var(--cor-laranja-aa, #d83f1a) !important;
	border-color: var(--cor-laranja-aa, #d83f1a) !important;
}
.cky-consent-container .cky-policy,
.cky-modal .cky-show-desc-btn {
	color: var(--cor-ligacao, #ca3b18) !important;
}
