/* Componentes reutilizáveis. */

/* Botões */
.ce-botao,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 44px;
	padding: 0.6rem 1.1rem;
	border: 2px solid var(--ce-primary);
	border-radius: var(--ce-raio-pequeno);
	background: var(--ce-primary);
	color: #fff;
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.ce-botao:hover {
	background: var(--ce-primary-hover);
	border-color: var(--ce-primary-hover);
	color: #fff;
}

.ce-botao:focus-visible {
	outline: none;
	box-shadow: var(--ce-foco);
}

.ce-botao--secundario {
	background: #fff;
	color: var(--ce-primary);
}

.ce-botao--secundario:hover {
	background: #eef4ff;
	color: var(--ce-primary-hover);
}

/* Etiquetas e chips */
.ce-etiqueta {
	margin: 0 0 0.4rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ce-primary-text);
}

.ce-etiqueta a {
	color: inherit;
	text-decoration: none;
}

.ce-etiqueta a:hover {
	text-decoration: underline;
}

.ce-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

.ce-chip {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0.35rem 0.85rem;
	border: 1px solid var(--ce-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ce-dark);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

.ce-chip:hover {
	border-color: var(--ce-primary);
	color: var(--ce-primary);
}

/* Breadcrumbs */
.ce-breadcrumbs {
	margin-bottom: 1rem;
	font-size: 0.875rem;
}

.ce-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--ce-muted);
}

.ce-breadcrumbs li:not(:last-child)::after {
	content: "/";
	margin-inline: 0.45rem;
	color: #98a2b3;
}

.ce-breadcrumbs a {
	color: var(--ce-muted);
	display: inline-block;
	min-height: 24px;
}

.ce-breadcrumbs a:hover {
	color: var(--ce-primary);
}

.ce-breadcrumbs [aria-current] {
	color: var(--ce-dark);
}

/* Grelhas e cartões */
.ce-grelha {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

@media (min-width: 600px) {
	.ce-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.ce-grelha { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
}

.ce-grelha--marcas {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 600px) {
	.ce-grelha--marcas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.ce-grelha--marcas { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.ce-grelha > li {
	display: flex;
	min-width: 0;
}

.ce-cartao {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: var(--ce-raio);
	overflow: hidden;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.ce-cartao:hover {
	border-color: #c5ccd8;
	box-shadow: var(--ce-sombra);
}

.ce-cartao__imagem {
	aspect-ratio: 16 / 10;
	background: var(--ce-surface);
}

.ce-cartao__imagem img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ce-cartao__corpo {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1rem 1.1rem 1.1rem;
}

.ce-cartao__titulo {
	margin: 0 0 0.4rem;
	font-size: 1.125rem;
	line-height: 1.3;
}

.ce-cartao__titulo a {
	color: var(--ce-dark);
	text-decoration: none;
}

/* Toda a área do cartão é clicável, mantendo uma única ligação acessível. */
.ce-cartao__titulo a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.ce-cartao__titulo a:hover {
	color: var(--ce-primary);
}

.ce-cartao__titulo a:focus-visible {
	outline: none;
}

.ce-cartao:focus-within {
	box-shadow: var(--ce-foco);
}

.ce-cartao__resumo {
	color: #475467;
	font-size: 0.9375rem;
	margin-bottom: 0.75rem;
}

.ce-cartao__meta {
	margin: auto 0 0;
	color: var(--ce-muted);
	font-size: 0.8125rem;
}

.ce-cartao__preco {
	margin: 0.5rem 0 0.25rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.ce-cartao--marca {
	align-items: center;
	text-align: center;
	padding: 1rem 0.75rem;
}

.ce-cartao__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 64px;
	margin-bottom: 0.5rem;
}

.ce-cartao__logo img {
	max-height: 56px;
	width: auto;
}

.ce-cartao__inicial {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ce-surface);
	color: var(--ce-dark);
	font-weight: 800;
	font-size: 1.5rem;
}

.ce-cartao--marca .ce-cartao__titulo {
	font-size: 1rem;
	margin: 0;
}

.ce-dados-curtos {
	display: grid;
	gap: 0.25rem;
	margin: 0.25rem 0 0;
	font-size: 0.875rem;
}

.ce-dados-curtos > div {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	border-bottom: 1px dashed #e4e7ec;
	padding-bottom: 0.2rem;
}

.ce-dados-curtos dt {
	color: var(--ce-muted);
}

.ce-dados-curtos dd {
	margin: 0;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

/* Caixas */
.ce-caixa {
	background: var(--ce-surface);
	border-radius: var(--ce-raio);
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
}

.ce-caixa a {
	color: var(--ce-primary-text);
}

.ce-caixa p:last-child {
	margin-bottom: 0;
}

.ce-caixa__titulo {
	font-size: 1.0625rem;
	margin-bottom: 0.5rem;
}

.ce-caixa--atualizacao {
	background: #eef4ff;
	border-left: 4px solid var(--ce-primary);
}

.ce-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	background: var(--ce-surface);
	border-radius: var(--ce-raio);
	padding: 1.25rem;
}

.ce-cta p {
	margin: 0;
	max-width: 60ch;
}

/* Estado vazio */
.ce-vazio {
	border: 1px dashed #c5ccd8;
	border-radius: var(--ce-raio);
	padding: 2rem 1.25rem;
	text-align: center;
	color: #475467;
	background: #fbfcfd;
}

.ce-vazio__titulo {
	font-weight: 700;
	color: var(--ce-dark);
	margin-bottom: 0.25rem;
}

.ce-vazio p:last-child {
	margin-bottom: 0;
}

/* Pesquisa */
.ce-pesquisa {
	max-width: 640px;
	margin-bottom: 1.5rem;
}

.ce-pesquisa__linha {
	display: flex;
	gap: 0.5rem;
}

.ce-pesquisa__campo {
	flex: 1;
	min-width: 0;
}

/* No telemóvel o texto do botão fica só para leitores de ecrã (o botão mantém nome acessível). */
@media (max-width: 479px) {
	.ce-pesquisa .ce-botao span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

/* Paginação */
.ce-paginacao ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	list-style: none;
	padding: 0;
	margin: 1.5rem 0;
}

.ce-paginacao a,
.ce-paginacao span.current,
.ce-paginacao span.dots {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.75rem;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-raio-pequeno);
	text-decoration: none;
	font-weight: 600;
}

.ce-paginacao span.current {
	background: var(--ce-dark);
	border-color: var(--ce-dark);
	color: #fff;
}

/* Artigo */
.ce-artigo__cabecalho {
	max-width: var(--ce-texto);
	margin-bottom: 1.25rem;
}

.ce-artigo__subtitulo {
	font-size: 1.1875rem;
	color: #475467;
	line-height: 1.5;
}

.ce-artigo__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	color: var(--ce-muted);
	font-size: 0.875rem;
}

.ce-artigo__resumo {
	max-width: var(--ce-texto);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.6;
}

.ce-artigo__grelha {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
}

@media (min-width: 1024px) {
	.ce-artigo__grelha.tem-indice {
		grid-template-columns: 240px minmax(0, var(--ce-texto));
		gap: 3rem;
	}

	.ce-indice {
		position: sticky;
		top: 1rem;
		align-self: start;
	}
}

.ce-conteudo {
	max-width: var(--ce-texto);
}

/* Páginas com comparador ou calculadora: largura total do contentor (texto continua a 720 px). */
.ce-conteudo--largo {
	max-width: none;
}

.ce-conteudo--largo > p {
	max-width: var(--ce-texto);
}

.ce-conteudo > * + h2 {
	margin-top: 2.25rem;
}

.ce-conteudo > * + h3 {
	margin-top: 1.75rem;
}

.ce-conteudo h2,
.ce-conteudo h3 {
	scroll-margin-top: 1rem;
}

.ce-conteudo ul,
.ce-conteudo ol {
	padding-left: 1.25rem;
}

.ce-conteudo blockquote {
	margin: 1.5rem 0;
	padding: 0.25rem 0 0.25rem 1rem;
	border-left: 4px solid var(--ce-primary);
	color: #344054;
}

.ce-conteudo table {
	font-size: 0.9375rem;
	display: block;
	overflow-x: auto;
}

.ce-conteudo th,
.ce-conteudo td {
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid #e4e7ec;
	text-align: left;
}

/* Parágrafo-modelo das páginas institucionais (visível de propósito). */
.ce-modelo-revisao {
	background: var(--ce-warning-bg);
	border: 1px solid var(--ce-warning-border);
	border-radius: var(--ce-raio-pequeno);
	padding: 0.75rem 1rem;
	font-size: 0.9375rem;
}

/* Índice */
.ce-indice {
	background: var(--ce-surface);
	border-radius: var(--ce-raio);
	padding: 0.75rem 1rem;
	font-size: 0.9375rem;
}

.ce-indice summary {
	font-weight: 700;
	cursor: pointer;
	min-height: 32px;
	display: flex;
	align-items: center;
}

.ce-indice ol {
	margin: 0.5rem 0 0;
	padding-left: 1.1rem;
}

.ce-indice ol ol {
	margin: 0.25rem 0;
}

.ce-indice li {
	margin-bottom: 0.3rem;
}

.ce-indice a {
	color: var(--ce-primary-text);
}

/* Figuras */
.ce-figura {
	margin: 0 0 1.5rem;
}

.ce-figura img {
	display: block;
	width: 100%;
	border-radius: var(--ce-raio);
}

.ce-figura figcaption {
	margin-top: 0.4rem;
	font-size: 0.8125rem;
	color: var(--ce-muted);
}

.ce-figura__credito {
	overflow-wrap: anywhere;
}

/* Fontes */
.ce-fontes {
	max-width: var(--ce-texto);
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid #e4e7ec;
	font-size: 0.9375rem;
}

.ce-fontes h2 {
	font-size: 1.125rem;
}

.ce-ligados {
	margin-top: 1.5rem;
}

/* Prós e contras */
.ce-pros-contras {
	display: grid;
	gap: 1rem;
	margin: 1rem 0 1.5rem;
}

@media (min-width: 768px) {
	.ce-pros-contras { grid-template-columns: 1fr 1fr; }
}

.ce-pros-contras__col {
	border-radius: var(--ce-raio);
	padding: 1rem 1.25rem;
	background: var(--ce-surface);
	border-top: 4px solid;
}

.ce-pros { border-top-color: var(--ce-positive); }
.ce-contras { border-top-color: var(--ce-negative); }

.ce-pros-contras__col h3 {
	font-size: 1rem;
}

.ce-pros-contras__col ul {
	margin: 0;
	padding-left: 1.1rem;
}

.ce-lista {
	padding-left: 1.2rem;
}

/* Natureza do valor e fonte (expansível) */
.ce-fonte {
	display: inline-block;
	position: relative;
	margin-left: 0.4rem;
	vertical-align: middle;
	font-size: 0.75rem;
	line-height: 1.3;
}

.ce-fonte > summary {
	list-style: none;
	cursor: pointer;
}

.ce-fonte > summary::-webkit-details-marker {
	display: none;
}

.ce-natureza {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	min-height: 24px;
	padding: 0.1rem 0.5rem;
	border: 1px solid;
	border-radius: 999px;
	font-weight: 600;
	white-space: nowrap;
	background: #fff;
}

.ce-natureza::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: currentcolor;
}

/* Cores reforçam, mas o texto diz sempre a natureza (nunca só cor). */
.ce-natureza--oficial { color: #145ce0; border-color: #a9c4f5; }
.ce-natureza--homologado { color: #0f7f55; border-color: #a6d9c2; }
.ce-natureza--ensaio_independente { color: #6941c6; border-color: #cfc1f2; }
.ce-natureza--estimado { color: #8a4b00; border-color: #e7c79c; }
.ce-natureza--estimado::before { background: transparent; border: 1.5px solid currentcolor; }
.ce-natureza--por_confirmar { color: #475467; border-color: #c5ccd8; border-style: dashed; }
.ce-natureza--por_confirmar::before { background: transparent; border: 1.5px dashed currentcolor; }

.ce-fonte[open] > summary .ce-natureza,
.ce-fonte > summary:hover {
	text-decoration: underline;
}

.ce-fonte > summary:focus-visible {
	outline: 2px solid var(--ce-primary);
	outline-offset: 2px;
	border-radius: 999px;
}

.ce-fonte__corpo {
	position: absolute;
	z-index: 20;
	right: 0;
	top: calc(100% + 6px);
	width: min(280px, 80vw);
	padding: 0.75rem 0.85rem;
	background: #fff;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-raio-pequeno);
	box-shadow: 0 8px 24px rgb(16 35 63 / 14%);
	font-size: 0.8125rem;
	text-align: left;
	white-space: normal;
	color: var(--ce-dark);
}

.ce-fonte__corpo p {
	margin: 0 0 0.35rem;
}

.ce-fonte__corpo p:last-child {
	margin-bottom: 0;
}

.ce-fonte__demo {
	color: var(--ce-negative-text);
	font-weight: 700;
}

/* Estado comercial */
.ce-estado {
	display: inline-block;
	padding: 0.1rem 0.55rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	vertical-align: middle;
	background: var(--ce-surface);
	color: #344054;
}

.ce-estado--disponivel { background: #e7f6ef; color: #0a6644; }
.ce-estado--anunciado { background: #eef4ff; color: var(--ce-primary-text); }

/* Formulários */
.ce-form .ce-campo {
	max-width: 560px;
}

.ce-armadilha {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ce-ajuda {
	font-size: 0.875rem;
	color: #475467;
	max-width: 560px;
}

.ce-mensagem {
	border-radius: var(--ce-raio-pequeno);
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	font-weight: 600;
	border-left: 4px solid;
}

.ce-mensagem--sucesso { background: #e7f6ef; color: #0a6644; }
.ce-mensagem--erro { background: #fdecea; color: var(--ce-negative-text); }

/* Glossário */
.ce-az ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
}

.ce-az a,
.ce-az span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--ce-raio-pequeno);
	font-weight: 700;
	text-decoration: none;
}

.ce-az a {
	background: var(--ce-surface);
	color: var(--ce-primary-text);
}

.ce-az a:hover {
	background: var(--ce-primary);
	color: #fff;
}

.ce-az span {
	color: #98a2b3;
}

.ce-glossario__filtro {
	max-width: 420px;
	margin-bottom: 1rem;
}

.ce-glossario__letra {
	margin-bottom: 2rem;
	scroll-margin-top: 1rem;
}

.ce-glossario__letra h2 {
	border-bottom: 2px solid var(--ce-dark);
	padding-bottom: 0.25rem;
}

.ce-glossario dl {
	display: grid;
	gap: 1rem;
	margin: 0;
}

@media (min-width: 768px) {
	.ce-glossario dl { grid-template-columns: 1fr 1fr; }
}

.ce-glossario dt {
	font-weight: 700;
}

.ce-glossario dd {
	margin: 0.15rem 0 0;
	color: #475467;
	font-size: 0.9375rem;
}

/* Homepage */
.ce-hp {
	margin-block: 2.5rem;
}

.ce-hp__cabecalho {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	margin-bottom: 1rem;
}

.ce-hp__titulo {
	margin: 0;
}

.ce-hp__mais {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	min-height: 32px;
	font-weight: 600;
	font-size: 0.9375rem;
	text-decoration: none;
}

.ce-hp__mais:hover {
	text-decoration: underline;
}

.ce-hp__mais .ce-icone {
	width: 16px;
	height: 16px;
}

.ce-hp--hero {
	margin: 0 0 2rem;
	padding: 2.5rem 0 2.75rem;
	background: var(--ce-dark);
	color: #fff;
	background-image: radial-gradient(ellipse at 85% 0%, rgb(23 105 255 / 35%), transparent 55%);
}

@media (min-width: 768px) {
	.ce-hp--hero { padding: 4rem 0; }
}

.ce-hp__hero-titulo {
	color: #fff;
	max-width: 18ch;
	font-size: clamp(2rem, 1.4rem + 3vw, 3.25rem);
}

.ce-hp__hero-sub {
	max-width: 56ch;
	color: #dce3ee;
	font-size: 1.125rem;
}

.ce-hp--hero .ce-pesquisa__rotulo {
	color: #fff;
}

.ce-hp--hero .ce-pesquisa__campo {
	border-color: transparent;
}

.ce-hp__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0;
}

.ce-hp--hero .ce-botao--secundario {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.ce-hp--hero .ce-botao--secundario:hover {
	background: rgb(255 255 255 / 10%);
}

.ce-ferramenta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	width: 100%;
	min-height: 56px;
	padding: 0.75rem 1rem;
	border: 1px solid #e4e7ec;
	border-radius: var(--ce-raio);
	color: var(--ce-dark);
	font-weight: 700;
	text-decoration: none;
	background: #fff;
}

.ce-ferramenta:hover {
	border-color: var(--ce-primary);
	color: var(--ce-primary);
}

.ce-hp-vazia {
	border: 1px dashed #c5ccd8;
	padding: 0.75rem;
	color: var(--ce-muted);
	font-size: 0.875rem;
}

/* 404 */
.ce-404 .ce-grelha {
	margin-top: 1rem;
}

/* Filtros simples (página de marca) */
.ce-filtros-simples {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0 1rem;
	margin-bottom: 1rem;
}

.ce-filtros-simples p {
	margin-bottom: 0.75rem;
}

.ce-filtros-simples select {
	width: auto;
	min-width: 180px;
}

/* Telemóvel: a fonte expande-se no fluxo do texto (sem caixas flutuantes a sair do ecrã). */
@media (max-width: 767px) {
	.ce-fonte[open] {
		display: block;
		margin-left: 0;
		margin-top: 0.35rem;
	}

	.ce-fonte__corpo,
	.ce-ficha .ce-fonte__corpo,
	.ce-destaques .ce-fonte__corpo {
		position: static;
		width: auto;
		margin-top: 0.4rem;
		box-shadow: none;
	}
}

/* Conteúdo de <details> fechado não conta para a largura. */
.ce-fonte:not([open]) > .ce-fonte__corpo {
	display: none;
}

/* Listas-componente dentro de conteúdo editorial não herdam o recuo das listas. */
.ce-conteudo .ce-grelha,
.ce-conteudo .ce-chips,
.ce-conteudo .ce-galeria {
	padding-left: 0;
}

/* Sugestões de pesquisa */
.ce-pesquisa__caixa {
	flex: 1;
	min-width: 0;
}

.ce-pesquisa__caixa .ce-pesquisa__campo {
	width: 100%;
}

.ce-sugestoes {
	color: var(--ce-dark);
	text-align: left;
}

.ce-sugestoes__grupo {
	padding: 0.5rem 0.65rem 0.2rem;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #475467;
}

/* Resultados agrupados */
.ce-grupos-pesquisa {
	display: grid;
	gap: 1rem;
	margin-bottom: 2rem;
}

@media (min-width: 768px) {
	.ce-grupos-pesquisa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ce-grupo-pesquisa {
	border: 1px solid #e4e7ec;
	border-radius: var(--ce-raio);
	padding: 1rem 1.1rem;
}

.ce-grupo-pesquisa h2 {
	font-size: 1rem;
	margin-bottom: 0.5rem;
}

.ce-grupo-pesquisa ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ce-grupo-pesquisa li {
	padding: 0.35rem 0;
	border-bottom: 1px dashed #e4e7ec;
}

.ce-grupo-pesquisa li:last-child {
	border-bottom: 0;
}

.ce-grupo-pesquisa .ce-muted {
	font-size: 0.8125rem;
	margin-left: 0.35rem;
}

/* Calculadoras */
.ce-calc {
	display: grid;
	gap: 1.5rem;
}

.ce-calc__versao summary {
	font-weight: 700;
	cursor: pointer;
	min-height: 32px;
}

.ce-calc__versao-nota ul {
	margin: 0.25rem 0 0;
	padding-left: 1.1rem;
	font-size: 0.875rem;
}

.ce-calc__cenarios {
	display: grid;
	gap: 1rem;
	max-width: 640px;
}

.ce-calc__cenarios--multi {
	max-width: none;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.ce-calc__cenario {
	border: 1px solid #e4e7ec;
	border-radius: var(--ce-raio);
	padding: 0.75rem 1rem 0.25rem;
	margin: 0;
	min-width: 0;
}

.ce-calc__cenario legend {
	font-weight: 700;
	padding: 0 0.35rem;
}

.ce-campo {
	margin-bottom: 0.85rem;
}

.ce-campo__unidade {
	font-weight: 400;
	color: #475467;
}

.ce-campo .ce-ajuda {
	display: block;
	font-size: 0.8125rem;
	margin-top: 0.25rem;
}

.ce-erro {
	display: block;
	color: var(--ce-negative-text);
	font-size: 0.875rem;
	font-weight: 600;
	margin-top: 0.25rem;
}

.ce-erro:empty {
	display: none;
}

.ce-campo.tem-erro input,
.ce-campo.tem-erro select {
	border-color: var(--ce-negative);
	border-width: 2px;
}

.ce-calc__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ce-calc__resultados {
	background: var(--ce-surface);
	border-radius: var(--ce-raio);
	padding: 1rem 1.25rem;
	scroll-margin-top: 1rem;
}

.ce-calc__resultados h2 {
	font-size: 1.25rem;
	margin-bottom: 0.25rem;
}

.ce-calc__aviso {
	font-size: 0.875rem;
	color: #475467;
}

.ce-calc__lista {
	display: grid;
	gap: 0.5rem;
	margin: 0 0 1rem;
}

.ce-calc__lista > div {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	border-bottom: 1px solid #e4e7ec;
	padding-bottom: 0.4rem;
}

.ce-calc__lista dt {
	color: #344054;
}

.ce-calc__lista dd {
	margin: 0;
	font-weight: 700;
}

.ce-calc__principal dd {
	font-size: 1.75rem;
	letter-spacing: -0.02em;
}

.ce-calc__tabela {
	margin: 0;
	background: #fff;
}

.ce-calc__tabela th,
.ce-calc__tabela td {
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid #eef0f3;
	text-align: left;
}

.ce-calc__tabela td {
	font-weight: 700;
}

/* ---------- Avaliações (Fase 6) ---------- */
.ce-tipo-avaliacao {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.75rem;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 700;
	border: 1px solid;
}

.ce-tipo-avaliacao--ensaio {
	color: #6941c6;
	border-color: #cfc1f2;
	background: #f6f2ff;
}

.ce-tipo-avaliacao--analise_especificacoes {
	color: #8a4b00;
	border-color: #e7c79c;
	background: #fff8ee;
	border-style: dashed;
}

.ce-nota {
	display: grid;
	gap: 0.25rem;
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-raio);
	background: var(--ce-surface);
}

.ce-nota p {
	margin: 0;
}

.ce-nota__valor {
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1.1;
	color: var(--ce-dark);
}

.ce-nota__escala {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--ce-muted);
}

.ce-nota__aviso {
	color: #8a4b00;
	font-weight: 600;
}

.ce-cartao__nota {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0 0 0.5rem;
	font-size: 0.875rem;
}

.ce-nota-mini {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ce-dark);
}

.ce-nota-mini__escala {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ce-muted);
}

.ce-tabela-scroll {
	position: relative;
	overflow-x: auto;
	max-width: 100%;
	border: 1px solid #e4e7ec;
	border-radius: var(--ce-raio);
}

.ce-tabela-scroll:focus-visible {
	outline: 2px solid var(--ce-primary);
	outline-offset: 2px;
}

.ce-tabela-notas {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.ce-tabela-notas th,
.ce-tabela-notas td {
	padding: 0.55rem 0.85rem;
	border-bottom: 1px solid #e4e7ec;
	text-align: left;
}

.ce-tabela-notas thead th {
	background: var(--ce-surface);
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.ce-tabela-notas tbody th {
	font-weight: 600;
}

.ce-tabela-notas .ce-num {
	text-align: right;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.ce-tabela-notas tr.sem-valor td:last-child {
	color: var(--ce-muted);
	font-style: italic;
}

.ce-tabela-notas tbody tr:last-child > * {
	border-bottom: 0;
}

.ce-atualizacoes {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ce-atualizacoes li + li {
	margin-top: 0.35rem;
}

.ce-veredicto {
	border-left: 4px solid var(--ce-dark);
}

.ce-observado__item {
	padding: 1rem 0;
	border-top: 1px solid #e4e7ec;
}

.ce-observado__titulo {
	font-size: 1.0625rem;
	margin: 0 0 0.25rem;
}

/* ---------- Vídeos (Fase 6, D-017) ---------- */
.ce-video-figura {
	margin: 1.5rem 0;
}

.ce-video-figura figcaption {
	margin-top: 0.5rem;
	color: var(--ce-muted);
	font-size: 0.9375rem;
}

.ce-video__ecra {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--ce-raio);
	background: var(--ce-dark);
}

.ce-video__ecra img,
.ce-video__ecra iframe {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

.ce-video__play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.ce-video__play svg {
	transition: transform 0.15s ease;
}

.ce-video__play:hover svg,
.ce-video__play:focus-visible svg {
	transform: scale(1.08);
}

.ce-video__play:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -6px;
	box-shadow: inset 0 0 0 6px var(--ce-primary);
}

.ce-video__consentimento {
	margin-top: 0.75rem;
	padding: 1rem;
	border: 1px solid var(--ce-warning-border);
	border-radius: var(--ce-raio);
	background: var(--ce-warning-bg);
}

.ce-video__consentimento p:last-child {
	margin-bottom: 0;
}

.ce-video__consentimento .ce-botao + .ce-botao {
	margin-left: 0.5rem;
}

.ce-video__fonte {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	color: var(--ce-muted);
}

.ce-transcricao {
	margin: 1.5rem 0;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-raio);
	padding: 0.75rem 1rem;
}

.ce-transcricao > summary {
	font-weight: 700;
	cursor: pointer;
	min-height: 24px;
}

.ce-filtro-simples {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75rem 1rem;
	margin: 0 0 1.5rem;
	padding: 1rem;
	border-radius: var(--ce-raio);
	background: var(--ce-surface);
}

.ce-filtro-simples > div {
	display: grid;
	gap: 0.25rem;
	min-width: min(100%, 14rem);
}

.ce-filtro-simples label {
	font-weight: 600;
}

.ce-filtro-simples__acoes {
	display: flex !important;
	align-items: center;
	gap: 1rem;
}

.ce-filtro-simples .ce-ajuda {
	flex-basis: 100%;
	margin: 0;
}

.ce-ensaio dl + h3 {
	margin-top: 1.5rem;
}

/* Destaque "Melhor" (comparador e comparação rápida) */
.ce-melhor-celula {
	background: #eef8f3 !important;
}

.ce-melhor {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	margin-left: 0.25rem;
	padding: 0.05rem 0.45rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--ce-positive);
	color: #0a6644;
	font-size: 0.75rem;
	font-weight: 700;
	white-space: nowrap;
}

.ce-melhor .ce-icone {
	width: 14px;
	height: 14px;
	fill: currentcolor;
}


/* ---------- Blocos editoriais (Fase 6) ---------- */
.ce-bloco {
	margin: 2rem 0;
}

.ce-bloco-aviso {
	padding: 0.75rem 1rem;
	border: 1px dashed var(--ce-warning-border);
	border-radius: var(--ce-raio-pequeno);
	background: var(--ce-warning-bg);
	font-size: 0.9375rem;
}

.ce-ficha-resumo {
	padding: 1rem 1.25rem;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-raio);
	background: #fff;
	box-shadow: var(--ce-sombra);
}

.ce-ficha-resumo__cabecalho {
	display: flex;
	gap: 1rem;
	align-items: center;
	margin-bottom: 0.75rem;
}

.ce-ficha-resumo__imagem {
	flex: 0 0 96px;
}

.ce-ficha-resumo__imagem img {
	display: block;
	width: 96px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--ce-raio-pequeno);
}

.ce-ficha-resumo__titulo {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
}

.ce-ficha-resumo__versao {
	margin: 0;
	color: var(--ce-muted);
}

.ce-ficha-resumo__acoes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 0.75rem 0 0;
}

.ce-dados-curtos .sem-valor dd {
	color: var(--ce-muted);
}

.ce-tabela-espec .ce-tabela-scroll + .ce-tabela-scroll {
	margin-top: 1rem;
}

.ce-tabela-espec caption {
	padding: 0.6rem 0.85rem;
	text-align: left;
	font-weight: 700;
	background: var(--ce-surface);
}

.ce-tabela-espec td .ce-fonte,
.ce-tabela-comparacao td .ce-fonte {
	display: inline-block;
	margin-left: 0.25rem;
}

.ce-tabela-comparacao thead th {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.9375rem;
	vertical-align: bottom;
}

.ce-tabela-comparacao td {
	vertical-align: top;
	min-width: 9rem;
}

.ce-caixa--info {
	border-left: 4px solid var(--ce-muted);
}

.ce-caixa--aviso {
	background: var(--ce-warning-bg);
	border-left: 4px solid var(--ce-warning-border);
}

.ce-faq__item {
	border-bottom: 1px solid #e4e7ec;
}

.ce-faq__item > summary {
	padding: 0.85rem 0;
	min-height: 24px;
	font-weight: 700;
	cursor: pointer;
}

.ce-faq__item > summary:focus-visible {
	outline: 2px solid var(--ce-primary);
	outline-offset: 2px;
}

.ce-faq__resposta {
	padding: 0 0 0.75rem;
}

.ce-leitura {
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--ce-primary);
	background: #f5f8ff;
	border-radius: 0 var(--ce-raio) var(--ce-raio) 0;
}

.ce-leitura__titulo {
	margin: 0 0 0.5rem;
}

.ce-leitura ul {
	margin: 0;
	padding-left: 1.25rem;
}

.ce-leitura li + li {
	margin-top: 0.35rem;
}

.ce-conteudo .ce-tabela-espec table,
.ce-conteudo .ce-comparacao-rapida table {
	width: 100%;
	margin: 0;
}

/* Ligações sobre fundos cinzentos/azulados: tom mais escuro para manter contraste AA. */
.ce-nota a,
.ce-filtro-simples a,
.ce-tabela-notas thead a,
.ce-leitura a,
.ce-caixa a {
	color: var(--ce-primary-hover);
}

/* ---------- Publicidade (Fase 7) ---------- */
.ce-anuncio {
	margin: 2rem 0;
	padding: 0.5rem 0 0;
	border-top: 1px solid #e4e7ec;
	border-bottom: 1px solid #e4e7ec;
	overflow: hidden;
	text-align: center;
}

.ce-anuncio__etiqueta {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ce-muted);
}

/* Sem anúncio para mostrar: o espaço desaparece (a Google marca o contentor como "unfilled"). */
.ce-anuncio:has(ins[data-ad-status="unfilled"]) {
	display: none;
}

.ce-anuncio--marcador {
	display: grid;
	place-items: center;
	padding: 1rem;
	border: 2px dashed #98a2b3;
	border-radius: var(--ce-raio-pequeno);
	background: #eaecf0;
	color: #344054;
	font-size: 0.875rem;
}

.ce-anuncio--marcador p {
	margin: 0;
	max-width: 32rem;
}

.ce-anuncio--lateral {
	display: none;
}

@media (min-width: 1024px) {
	.ce-anuncio--lateral {
		display: block;
		margin-top: 1.5rem;
	}

	.ce-anuncio--lateral.ce-anuncio--marcador {
		display: grid;
	}

	/* Com anúncio na coluna, o índice deixa de ficar fixo para nunca se sobrepor ao anúncio. */
	.ce-artigo__lateral.tem-anuncio .ce-indice {
		position: static;
	}
}

/* ---------- Partilha (Fase 7) ---------- */
.ce-partilha {
	margin: 2rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid #e4e7ec;
}

.ce-partilha__titulo {
	margin: 0 0 0.5rem;
	font-weight: 700;
}

.ce-partilha__lista {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ce-partilha__ligacao {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 0.9rem;
	border: 1px solid var(--ce-border);
	border-radius: 999px;
	background: #fff;
	color: var(--ce-dark);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.ce-partilha__ligacao:hover {
	border-color: var(--ce-primary);
	color: var(--ce-primary-hover);
}

.ce-partilha__ligacao:focus-visible {
	outline: 2px solid var(--ce-primary);
	outline-offset: 2px;
}
