/**
 * Diagnóstico Empresarial Consenso Global — estilos do frontend.
 *
 * As variáveis de cor são injetadas no elemento raiz pelo PHP (ABSB_Brand),
 * pelo que a paleta pode ser alterada no backoffice sem tocar neste ficheiro.
 * Todos os seletores são prefixados para não colidir com temas nem com o
 * Elementor.
 */

.cg-diagnostic,
.cg-report {
	--cg-radius: 18px;
	--cg-radius-sm: 12px;
	--cg-shadow: 0 24px 60px -28px rgba( 13, 19, 45, 0.45 );
	--cg-shadow-sm: 0 8px 24px -14px rgba( 13, 19, 45, 0.35 );

	box-sizing: border-box;
	font-family: "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: var( --cg-text );
	line-height: 1.62;
	-webkit-font-smoothing: antialiased;
}

.cg-diagnostic *,
.cg-diagnostic *::before,
.cg-diagnostic *::after,
.cg-report *,
.cg-report *::before,
.cg-report *::after {
	box-sizing: border-box;
}

.cg-diagnostic {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var( --cg-line );
	border-radius: var( --cg-radius );
	box-shadow: var( --cg-shadow );
	overflow: hidden;
}

.cg-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
}

/* ---------------------------------------------------------------------
 * Cabeçalho
 * ------------------------------------------------------------------ */

.cg-header {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 28px;
	background: var( --cg-navy );
	color: #fff;
}

/* O logótipo já traz o nome da empresa; não leva texto ao lado. */
.cg-header__logo {
	width: 76px;
	height: 76px;
	object-fit: contain;
	flex: 0 0 auto;
	display: block;
}

/* ---------------------------------------------------------------------
 * Progresso
 * ------------------------------------------------------------------ */

.cg-progress {
	padding: 18px 28px 0;
}

.cg-progress__track {
	height: 6px;
	background: #eef1f6;
	border-radius: 999px;
	overflow: hidden;
}

.cg-progress__bar {
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: linear-gradient( 90deg, var( --cg-primary ), var( --cg-accent ) );
	transition: width 0.5s cubic-bezier( 0.4, 0, 0.2, 1 );
}

.cg-progress__meta {
	display: flex;
	justify-content: space-between;
	margin-top: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

/* ---------------------------------------------------------------------
 * Painéis
 * ------------------------------------------------------------------ */

.cg-stage {
	position: relative;
	padding: 28px;
}

.cg-panel[hidden] {
	display: none;
}

.cg-panel.is-active {
	animation: cg-fade 0.42s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes cg-fade {
	from {
		opacity: 0;
		transform: translateY( 14px );
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.cg-panel.is-active {
		animation: none;
	}
	.cg-progress__bar,
	.cg-preview__fill,
	.cg-bar__fill {
		transition: none;
	}
}

/* ---------------------------------------------------------------------
 * Tipografia
 * ------------------------------------------------------------------ */

.cg-title {
	margin: 0 0 12px;
	font-size: 27px;
	line-height: 1.22;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var( --cg-ink );
}

.cg-title--sm {
	font-size: 20px;
}

.cg-text {
	margin: 0 0 16px;
	font-size: 15.5px;
	color: var( --cg-text );
}

.cg-text--muted {
	color: var( --cg-text-soft );
	font-size: 14.5px;
}

.cg-text p:last-child {
	margin-bottom: 0;
}

.cg-badge {
	display: inline-block;
	margin-bottom: 14px;
	padding: 5px 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-primary );
	background: rgba( 69, 145, 206, 0.12 );
	border-radius: 999px;
}

/* ---------------------------------------------------------------------
 * Introdução
 * ------------------------------------------------------------------ */

.cg-intro__points {
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 12px;
}

.cg-intro__points li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 16px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	font-size: 14.5px;
	font-weight: 600;
	color: var( --cg-ink );
}

.cg-intro__points .cg-icon {
	color: var( --cg-primary );
	margin-top: 1px;
}

.cg-intro__note {
	margin: 12px 0 0;
	text-align: center;
	font-size: 13px;
	color: var( --cg-text-soft );
}

/* ---------------------------------------------------------------------
 * Perguntas
 * ------------------------------------------------------------------ */

.cg-question__title {
	margin: 0 0 8px;
	font-size: 21px;
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var( --cg-ink );
}

.cg-question__hint {
	margin: 0 0 18px;
	font-size: 14px;
	color: var( --cg-text-soft );
}

.cg-question__hint--muted {
	font-style: italic;
}

.cg-options {
	display: grid;
	gap: 10px;
}

.cg-option {
	position: relative;
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 15px 17px;
	background: #fff;
	border: 1.5px solid var( --cg-line );
	border-radius: var( --cg-radius-sm );
	cursor: pointer;
	transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.cg-option:hover {
	border-color: var( --cg-primary );
	transform: translateY( -1px );
}

.cg-option input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}

.cg-option__mark {
	position: relative;
	width: 21px;
	height: 21px;
	flex: 0 0 auto;
	border: 2px solid #c8cee0;
	border-radius: 50%;
	transition: border-color 0.18s ease, background 0.18s ease;
}

.cg-options--multi .cg-option__mark {
	border-radius: 6px;
}

.cg-option__mark::after {
	content: "";
	position: absolute;
	inset: 4px;
	border-radius: inherit;
	background: var( --cg-primary );
	transform: scale( 0 );
	transition: transform 0.18s cubic-bezier( 0.34, 1.56, 0.64, 1 );
}

.cg-option input:checked ~ .cg-option__mark {
	border-color: var( --cg-primary );
}

.cg-option input:checked ~ .cg-option__mark::after {
	transform: scale( 1 );
}

.cg-option input:checked ~ .cg-option__label {
	color: var( --cg-ink );
	font-weight: 700;
}

.cg-option:has( input:checked ) {
	border-color: var( --cg-primary );
	background: rgba( 69, 145, 206, 0.06 );
}

.cg-option input:focus-visible ~ .cg-option__mark {
	outline: 2px solid var( --cg-accent );
	outline-offset: 3px;
}

.cg-option__label {
	font-size: 15px;
	color: var( --cg-text );
}

/* ---------------------------------------------------------------------
 * Campos
 * ------------------------------------------------------------------ */

.cg-input {
	width: 100%;
	padding: 13px 15px;
	font-family: inherit;
	font-size: 15.5px;
	color: var( --cg-ink );
	background: #fff;
	border: 1.5px solid var( --cg-line );
	border-radius: var( --cg-radius-sm );
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
	appearance: none;
}

.cg-input:focus {
	outline: none;
	border-color: var( --cg-primary );
	box-shadow: 0 0 0 4px rgba( 69, 145, 206, 0.16 );
}

.cg-url-field {
	display: flex;
	align-items: stretch;
	border: 1.5px solid var( --cg-line );
	border-radius: var( --cg-radius-sm );
	overflow: hidden;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.cg-url-field:focus-within {
	border-color: var( --cg-primary );
	box-shadow: 0 0 0 4px rgba( 69, 145, 206, 0.16 );
}

.cg-url-field__prefix {
	display: flex;
	align-items: center;
	padding: 0 14px;
	font-size: 14px;
	font-weight: 600;
	color: var( --cg-text-soft );
	background: var( --cg-surface );
	border-right: 1.5px solid var( --cg-line );
	white-space: nowrap;
}

.cg-input--url {
	border: 0;
	border-radius: 0;
}

.cg-input--url:focus {
	box-shadow: none;
}

.cg-fields {
	display: grid;
	grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	gap: 14px;
	margin-bottom: 16px;
}

.cg-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var( --cg-ink );
}

.cg-required {
	color: var( --cg-accent );
}

.cg-error {
	margin: 8px 0 0;
	font-size: 13px;
	font-weight: 600;
	color: var( --cg-danger );
}

.has-error .cg-input,
.has-error .cg-url-field {
	border-color: var( --cg-danger );
}

.cg-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13.5px;
	color: var( --cg-text-soft );
	cursor: pointer;
}

.cg-consent input {
	margin-top: 3px;
	width: 17px;
	height: 17px;
	accent-color: var( --cg-primary );
	flex: 0 0 auto;
}

.cg-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.cg-privacy {
	margin: 14px 0 0;
	font-size: 12.5px;
	color: var( --cg-text-soft );
	text-align: center;
}

/* ---------------------------------------------------------------------
 * Botões
 * ------------------------------------------------------------------ */

.cg-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
}

.cg-actions--center {
	justify-content: center;
}

.cg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 13px 24px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	border: 1.5px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.cg-btn:hover {
	transform: translateY( -1px );
}

.cg-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

.cg-btn--lg {
	padding: 16px 32px;
	font-size: 16px;
}

.cg-btn--primary {
	color: #fff;
	background: var( --cg-primary );
	box-shadow: 0 10px 26px -12px rgba( 69, 145, 206, 0.9 );
}

.cg-btn--primary:hover {
	background: var( --cg-primary-dark );
	color: #fff;
}

.cg-btn--accent {
	color: var( --cg-navy );
	background: var( --cg-accent );
	box-shadow: 0 12px 30px -12px rgba( 228, 172, 30, 0.85 );
}

.cg-btn--accent:hover {
	background: var( --cg-accent-light );
	color: var( --cg-navy );
}

.cg-btn--ghost {
	color: var( --cg-text-soft );
	background: transparent;
}

.cg-btn--ghost:hover {
	color: var( --cg-ink );
	background: var( --cg-surface );
}

.cg-btn--outline {
	color: var( --cg-primary );
	background: #fff;
	border-color: var( --cg-primary );
}

.cg-btn--outline:hover {
	background: rgba( 69, 145, 206, 0.08 );
}

.cg-panel--intro .cg-actions--center .cg-btn,
.cg-panel--website .cg-actions .cg-btn--primary {
	min-width: 220px;
}

/* ---------------------------------------------------------------------
 * Ligação Google
 * ------------------------------------------------------------------ */

.cg-google {
	margin-top: 22px;
	padding: 18px;
	background: var( --cg-surface );
	border: 1px dashed #cfd6e4;
	border-radius: var( --cg-radius-sm );
}

.cg-google__head {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 14px;
}

.cg-google__head .cg-icon {
	color: var( --cg-primary );
	margin-top: 2px;
}

.cg-google__head strong {
	display: block;
	font-size: 14.5px;
	color: var( --cg-ink );
	margin-bottom: 3px;
}

.cg-google__head span {
	font-size: 13px;
	color: var( --cg-text-soft );
}

.cg-google__status {
	margin: 12px 0 0;
	font-size: 13px;
	font-weight: 600;
}

.cg-google__status.is-ok {
	color: var( --cg-success );
}

.cg-google__status.is-fail {
	color: var( --cg-danger );
}

.cg-google__privacy {
	margin: 10px 0 0;
	font-size: 12px;
	color: var( --cg-text-soft );
}

/* ---------------------------------------------------------------------
 * Ecrã de análise
 * ------------------------------------------------------------------ */

.cg-loader {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 32px;
	background: rgba( 255, 255, 255, 0.97 );
	backdrop-filter: blur( 3px );
}

.cg-loader[hidden] {
	display: none;
}

.cg-loader__ring {
	width: 52px;
	height: 52px;
	border: 3px solid rgba( 69, 145, 206, 0.2 );
	border-top-color: var( --cg-primary );
	border-radius: 50%;
	animation: cg-spin 0.85s linear infinite;
}

@keyframes cg-spin {
	to {
		transform: rotate( 360deg );
	}
}

.cg-loader__text {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var( --cg-ink );
}

.cg-loader__steps {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 9px;
	width: 100%;
	max-width: 320px;
}

.cg-loader__steps li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13.5px;
	color: #a9b0c2;
	transition: color 0.3s ease;
}

.cg-loader__steps li::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #d9dee9;
	flex: 0 0 auto;
	transition: background 0.3s ease, transform 0.3s ease;
}

.cg-loader__steps li.is-active {
	color: var( --cg-ink );
	font-weight: 600;
}

.cg-loader__steps li.is-active::before {
	background: var( --cg-primary );
	transform: scale( 1.4 );
}

.cg-loader__steps li.is-done {
	color: var( --cg-text-soft );
}

.cg-loader__steps li.is-done::before {
	background: var( --cg-success );
}

/* ---------------------------------------------------------------------
 * Pontuação provisória
 * ------------------------------------------------------------------ */

.cg-teaser {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 22px;
	margin-bottom: 18px;
	background: var( --cg-navy );
	border-radius: var( --cg-radius );
	color: #fff;
}

.cg-teaser__gauge {
	flex: 0 0 auto;
	width: 116px;
}

.cg-teaser__label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-accent );
	margin-bottom: 4px;
}

.cg-teaser__level {
	display: block;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: #fff;
	margin-bottom: 6px;
}

.cg-teaser__text {
	margin: 0;
	font-size: 14px;
	color: var( --cg-text-invert );
}

/* ---------------------------------------------------------------------
 * Indicadores do resumo: o que o visitante vê antes de deixar os dados
 * ------------------------------------------------------------------ */

.cg-kpis {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 150px, 1fr ) );
	gap: 12px;
	margin-bottom: 14px;
}

.cg-kpis[hidden] {
	display: none;
}

.cg-kpi {
	padding: 16px 16px 15px;
	background: #fff;
	border: 1px solid var( --cg-line );
	border-top: 3px solid var( --cg-primary );
	border-radius: var( --cg-radius-sm );
}

.cg-kpi--good {
	border-top-color: var( --cg-success );
}

.cg-kpi--warn {
	border-top-color: var( --cg-accent );
}

.cg-kpi--bad {
	border-top-color: var( --cg-danger );
}

.cg-kpi__label {
	display: block;
	margin-bottom: 7px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-kpi__value {
	display: block;
	font-size: 27px;
	line-height: 1.05;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var( --cg-navy );
}

.cg-kpi__note {
	display: block;
	margin-top: 7px;
	font-size: 12px;
	line-height: 1.4;
	color: var( --cg-text-soft );
}

/* ---------------------------------------------------------------------
 * Curva do retorno estimado
 * ------------------------------------------------------------------ */

.cg-forecast {
	padding: 20px 20px 16px;
	margin-bottom: 22px;
	background: linear-gradient( 160deg, var( --cg-navy ) 0%, var( --cg-navy-soft ) 100% );
	border-radius: var( --cg-radius-sm );
	color: #fff;
}

.cg-forecast[hidden] {
	display: none;
}

.cg-forecast__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.cg-forecast__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var( --cg-accent );
}

.cg-forecast__value {
	font-size: 30px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: #fff;
}

.cg-forecast__chart {
	margin: 4px -6px 2px;
}

.cg-forecast__note {
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
	color: rgba( 255, 255, 255, 0.74 );
}

.cg-spark {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.cg-spark__stop {
	stop-color: var( --cg-accent );
}

.cg-spark__stop--top {
	stop-opacity: 0.34;
}

.cg-spark__stop--base {
	stop-opacity: 0;
}

.cg-spark__grid {
	stroke: rgba( 255, 255, 255, 0.14 );
	stroke-width: 1;
}

.cg-spark__line {
	fill: none;
	stroke: var( --cg-accent );
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cg-spark__dot {
	fill: var( --cg-accent );
	stroke: #fff;
	stroke-width: 2.5;
}

.cg-spark__axis {
	font-size: 12px;
	font-weight: 600;
	fill: rgba( 255, 255, 255, 0.6 );
}

/* O texto dentro do SVG encolhe com o gráfico: num telemóvel a curva desenha
   a cerca de 70% e estas etiquetas ficariam a 8px. As unidades são do viewBox,
   não do ecrã — daí os valores parecerem grandes. */
@media ( max-width: 680px ) {
	.cg-spark__axis {
		font-size: 17px;
	}
}

@media ( max-width: 480px ) {
	.cg-spark__axis {
		font-size: 21px;
	}
}

/* ---------------------------------------------------------------------
 * O que o relatório completo acrescenta
 * ------------------------------------------------------------------ */

.cg-unlock {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 9px;
}

.cg-unlock[hidden] {
	display: none;
}

.cg-unlock li {
	position: relative;
	padding-left: 26px;
	font-size: 14px;
	line-height: 1.5;
	color: var( --cg-text );
}

.cg-unlock li::before {
	content: "";
	position: absolute;
	top: 6px;
	left: 0;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: var( --cg-success );
	box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 3px var( --cg-success );
}

.cg-preview {
	padding: 20px;
	margin-bottom: 22px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
}

.cg-preview__hint {
	display: block;
	margin-bottom: 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-preview__rows {
	display: grid;
	gap: 11px;
}

.cg-preview__row {
	display: grid;
	grid-template-columns: minmax( 120px, 1.3fr ) 2fr auto;
	align-items: center;
	gap: 12px;
}

.cg-preview__row.is-locked {
	filter: blur( 5px );
	user-select: none;
	pointer-events: none;
}

.cg-preview__label {
	font-size: 13.5px;
	font-weight: 600;
	color: var( --cg-ink );
}

.cg-preview__track {
	height: 8px;
	background: #e4e8f0;
	border-radius: 999px;
	overflow: hidden;
}

.cg-preview__fill {
	display: block;
	height: 100%;
	width: 0;
	border-radius: 999px;
	background: var( --cg-primary );
	transition: width 0.8s cubic-bezier( 0.22, 1, 0.36, 1 );
}

.cg-preview__row--good .cg-preview__fill {
	background: var( --cg-success );
}

.cg-preview__row--warn .cg-preview__fill {
	background: var( --cg-warning );
}

.cg-preview__row--bad .cg-preview__fill {
	background: var( --cg-danger );
}

.cg-preview__value {
	font-size: 14px;
	font-weight: 800;
	color: var( --cg-ink );
	min-width: 26px;
	text-align: right;
}

.cg-preview__lock {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #e0e4ee;
	font-size: 13px;
	font-weight: 600;
	color: var( --cg-primary );
}

/* ---------------------------------------------------------------------
 * Mostrador circular
 * ------------------------------------------------------------------ */

.cg-gauge svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.cg-gauge__track {
	fill: none;
	stroke: rgba( 255, 255, 255, 0.16 );
	stroke-width: 11;
}

.cg-report .cg-gauge__track {
	stroke: rgba( 255, 255, 255, 0.18 );
}

.cg-gauge__value {
	fill: none;
	stroke: var( --cg-accent );
	stroke-width: 11;
	stroke-linecap: round;
}

.cg-gauge--good .cg-gauge__value {
	stroke: var( --cg-success );
}

.cg-gauge--warn .cg-gauge__value {
	stroke: var( --cg-accent );
}

.cg-gauge--bad .cg-gauge__value {
	stroke: var( --cg-danger );
}

.cg-gauge.is-animated .cg-gauge__value {
	animation: cg-draw 1.2s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes cg-draw {
	from {
		stroke-dashoffset: 340;
	}
}

.cg-gauge__number {
	font-family: inherit;
	font-size: 34px;
	font-weight: 800;
	fill: #fff;
}

.cg-gauge__unit {
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	fill: rgba( 255, 255, 255, 0.6 );
}

/* ---------------------------------------------------------------------
 * Relatório
 * ------------------------------------------------------------------ */

.cg-report {
	background: #fff;
}

.cg-report__cover {
	padding: 28px;
	margin: -28px -28px 28px;
	background: linear-gradient( 140deg, var( --cg-navy ) 0%, var( --cg-navy-soft ) 100% );
	color: #fff;
}

.cg-report__brand {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 22px;
	margin-bottom: 22px;
	border-bottom: 1px solid rgba( 255, 255, 255, 0.14 );
}

.cg-report__logo {
	width: 44px;
	height: 44px;
	object-fit: contain;
	flex: 0 0 auto;
}

.cg-report__eyebrow {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --cg-accent );
}

.cg-report__company {
	margin: 3px 0 2px;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
}

.cg-report__meta {
	font-size: 13px;
	color: var( --cg-text-invert );
}

.cg-report__score {
	display: flex;
	align-items: center;
	gap: 24px;
}

.cg-report__score .cg-gauge {
	width: 130px;
	flex: 0 0 auto;
}

.cg-report__score-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-accent );
	margin-bottom: 4px;
}

.cg-report__score-level {
	display: block;
	font-size: 23px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
	margin-bottom: 8px;
}

.cg-report__score-text p {
	margin: 0;
	font-size: 14.5px;
	color: var( --cg-text-invert );
}

.cg-report__section {
	padding: 26px 0;
	border-top: 1px solid var( --cg-line );
}

.cg-report__section:first-of-type {
	border-top: 0;
	padding-top: 0;
}

.cg-report__title {
	margin: 0 0 6px;
	font-size: 19px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var( --cg-ink );
}

.cg-report__subtitle {
	margin: 22px 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: var( --cg-primary );
}

.cg-report__lead {
	margin: 0 0 18px;
	font-size: 14.5px;
	color: var( --cg-text-soft );
}

/* Barras por área */

.cg-bars {
	display: grid;
	gap: 16px;
}

.cg-bar__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 7px;
}

.cg-bar__label {
	font-size: 14.5px;
	font-weight: 700;
	color: var( --cg-ink );
}

.cg-bar__value {
	font-size: 15px;
	font-weight: 800;
	color: var( --cg-ink );
}

.cg-bar__value small {
	font-size: 11px;
	font-weight: 600;
	color: var( --cg-text-soft );
}

.cg-bar__track {
	height: 9px;
	background: #edf0f5;
	border-radius: 999px;
	overflow: hidden;
}

.cg-bar__fill {
	height: 100%;
	border-radius: 999px;
	background: var( --cg-primary );
	animation: cg-grow 1s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes cg-grow {
	from {
		width: 0 !important;
	}
}

.cg-bar--good .cg-bar__fill {
	background: var( --cg-success );
}

.cg-bar--warn .cg-bar__fill {
	background: var( --cg-warning );
}

.cg-bar--bad .cg-bar__fill {
	background: var( --cg-danger );
}

.cg-bar__hint {
	margin: 6px 0 0;
	font-size: 12.5px;
	color: var( --cg-text-soft );
}

/* Métricas */

.cg-metrics {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 175px, 1fr ) );
	gap: 12px;
}

.cg-metric {
	padding: 14px 16px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	border-left: 3px solid #cfd6e4;
}

.cg-metric--good {
	border-left-color: var( --cg-success );
}

.cg-metric--warn {
	border-left-color: var( --cg-warning );
}

.cg-metric--bad {
	border-left-color: var( --cg-danger );
}

.cg-metric--neutral {
	border-left-color: var( --cg-primary );
}

.cg-metric__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var( --cg-text-soft );
	margin-bottom: 4px;
}

.cg-metric__value {
	display: block;
	font-size: 16px;
	font-weight: 800;
	color: var( --cg-ink );
	word-break: break-word;
}

/* Verificações SEO */

.cg-checks {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 8px;
}

.cg-check {
	display: grid;
	grid-template-columns: 24px minmax( 0, 1fr ) auto;
	align-items: center;
	gap: 12px;
	padding: 11px 14px;
	background: var( --cg-surface );
	border-radius: 10px;
}

.cg-check__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
	color: #fff;
}

.cg-check.is-ok .cg-check__icon {
	background: var( --cg-success );
}

.cg-check.is-fail .cg-check__icon {
	background: var( --cg-danger );
}

.cg-check__label {
	font-size: 14px;
	font-weight: 600;
	color: var( --cg-ink );
}

.cg-check__detail {
	font-size: 12.5px;
	color: var( --cg-text-soft );
	text-align: right;
}

/* Cartões de risco e oportunidade */

.cg-cards {
	display: grid;
	gap: 12px;
}

.cg-card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 17px;
	border-radius: var( --cg-radius-sm );
	background: #fff;
	border: 1px solid var( --cg-line );
	box-shadow: var( --cg-shadow-sm );
}

.cg-card--risk {
	border-left: 3px solid var( --cg-danger );
}

.cg-card--chance {
	border-left: 3px solid var( --cg-success );
}

.cg-card__index {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: rgba( 209, 73, 91, 0.12 );
	color: var( --cg-danger );
	font-size: 13px;
	font-weight: 800;
}

.cg-card__icon {
	display: flex;
	flex: 0 0 auto;
	color: var( --cg-success );
	margin-top: 2px;
}

.cg-card__body h4 {
	margin: 0 0 6px;
	font-size: 15.5px;
	font-weight: 700;
	line-height: 1.35;
	color: var( --cg-ink );
}

.cg-card__body p {
	margin: 0;
	font-size: 14px;
	color: var( --cg-text );
}

.cg-tag {
	display: inline-block;
	margin-left: 8px;
	padding: 3px 9px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border-radius: 999px;
	vertical-align: middle;
}

.cg-tag--alto {
	background: rgba( 46, 158, 107, 0.14 );
	color: #227a52;
}

.cg-tag--medio {
	background: rgba( 228, 172, 30, 0.18 );
	color: #9a710a;
}

/* Gráfico de projeção */

.cg-chart {
	margin: 4px 0 14px;
	padding: 16px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
}

.cg-chart svg {
	display: block;
	width: 100%;
	height: auto;
}

.cg-chart__grid {
	stroke: #dfe4ee;
	stroke-width: 1;
	stroke-dasharray: 3 5;
}

.cg-chart__axis {
	font-family: inherit;
	font-size: 11px;
	font-weight: 600;
	fill: var( --cg-text-soft );
}

.cg-chart__area {
	fill: rgba( 69, 145, 206, 0.12 );
	stroke: none;
}

.cg-chart__line {
	fill: none;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cg-chart__line--guided {
	stroke: var( --cg-primary );
	stroke-dasharray: 1400;
	animation: cg-draw-line 1.6s cubic-bezier( 0.22, 1, 0.36, 1 ) both;
}

@keyframes cg-draw-line {
	from {
		stroke-dashoffset: 1400;
	}
	to {
		stroke-dashoffset: 0;
	}
}

.cg-chart__line--current {
	stroke: #b7bfd0;
	stroke-width: 2.5;
	stroke-dasharray: 6 6;
}

.cg-chart__dot {
	fill: var( --cg-primary );
	stroke: #fff;
	stroke-width: 2.5;
}

.cg-chart__dot--end {
	fill: var( --cg-accent );
}

.cg-chart__value {
	font-family: inherit;
	font-size: 15px;
	font-weight: 800;
	fill: var( --cg-ink );
}

.cg-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 20px;
	font-size: 12.5px;
	font-weight: 600;
	color: var( --cg-text-soft );
}

.cg-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.cg-legend__item::before {
	content: "";
	width: 16px;
	height: 3px;
	border-radius: 2px;
}

.cg-legend__item--guided::before {
	background: var( --cg-primary );
}

.cg-legend__item--current::before {
	background: #b7bfd0;
}

/* Margem de progressão */

.cg-gaps {
	padding: 18px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	display: grid;
	gap: 12px;
}

.cg-gaps__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-gap {
	display: grid;
	grid-template-columns: minmax( 110px, 1.2fr ) 2fr auto;
	align-items: center;
	gap: 12px;
}

.cg-gap__label {
	font-size: 13.5px;
	font-weight: 600;
	color: var( --cg-ink );
}

.cg-gap__track {
	position: relative;
	height: 9px;
	background: #e4e8f0;
	border-radius: 999px;
	overflow: hidden;
}

.cg-gap__potential,
.cg-gap__current {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	border-radius: 999px;
}

.cg-gap__potential {
	background: rgba( 69, 145, 206, 0.32 );
}

.cg-gap__current {
	background: var( --cg-primary );
}

.cg-gap__delta {
	font-size: 13px;
	font-weight: 800;
	color: var( --cg-success );
}

.cg-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 4px 0 0;
	padding: 14px 16px;
	background: rgba( 228, 172, 30, 0.1 );
	border-radius: var( --cg-radius-sm );
	font-size: 12.5px;
	line-height: 1.55;
	color: #7a5c08;
}

.cg-disclaimer .cg-icon {
	color: var( --cg-accent );
	width: 18px;
	height: 18px;
	margin-top: 1px;
}

/* Listas de valores (Google) */

.cg-list-chart {
	margin-top: 16px;
}

.cg-list-chart__title {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-list-chart__rows {
	display: grid;
	gap: 8px;
}

.cg-list-chart__row {
	display: grid;
	grid-template-columns: minmax( 110px, 1.3fr ) 2fr auto;
	align-items: center;
	gap: 12px;
}

.cg-list-chart__label {
	font-size: 13px;
	color: var( --cg-ink );
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cg-list-chart__bar {
	height: 7px;
	background: #e9edf4;
	border-radius: 999px;
	overflow: hidden;
}

.cg-list-chart__bar span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var( --cg-primary );
}

.cg-list-chart__value {
	font-size: 12.5px;
	font-weight: 700;
	color: var( --cg-text-soft );
	text-align: right;
}

/* Serviços recomendados */

.cg-services {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 230px, 1fr ) );
	gap: 14px;
}

.cg-service {
	position: relative;
	padding: 20px 18px;
	background: #fff;
	border: 1px solid var( --cg-line );
	border-radius: var( --cg-radius-sm );
	box-shadow: var( --cg-shadow-sm );
	display: flex;
	flex-direction: column;
}

.cg-service--top {
	border-color: var( --cg-accent );
	background: linear-gradient( 180deg, rgba( 228, 172, 30, 0.07 ), #fff 60% );
}

.cg-service__flag {
	position: absolute;
	top: -10px;
	left: 18px;
	padding: 4px 11px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-navy );
	background: var( --cg-accent );
	border-radius: 999px;
}

.cg-service__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 13px;
	border-radius: 12px;
	background: rgba( 69, 145, 206, 0.12 );
	color: var( --cg-primary );
}

.cg-service__icon .cg-icon {
	width: 21px;
	height: 21px;
}

.cg-service__name {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.3;
	color: var( --cg-ink );
}

.cg-service__summary {
	margin: 0 0 12px;
	font-size: 13.5px;
	color: var( --cg-text );
}

.cg-service__reason {
	margin: 0 0 14px;
	padding: 11px 13px;
	background: var( --cg-surface );
	border-radius: 10px;
	font-size: 12.5px;
	color: var( --cg-text );
}

.cg-service__link {
	margin-top: auto;
	font-size: 13.5px;
	font-weight: 700;
	color: var( --cg-primary );
	text-decoration: none;
}

.cg-service__link:hover {
	color: var( --cg-accent );
	text-decoration: underline;
}

/* Próximos passos */

.cg-steps {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: cg-step;
	display: grid;
	gap: 12px;
}

.cg-step {
	position: relative;
	counter-increment: cg-step;
	padding: 16px 18px 16px 58px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
}

.cg-step::before {
	content: counter( cg-step );
	position: absolute;
	left: 18px;
	top: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 27px;
	height: 27px;
	border-radius: 50%;
	background: var( --cg-primary );
	color: #fff;
	font-size: 13px;
	font-weight: 800;
}

.cg-step h4 {
	margin: 0 0 5px;
	font-size: 15px;
	font-weight: 700;
	color: var( --cg-ink );
}

.cg-step p {
	margin: 0;
	font-size: 13.5px;
	color: var( --cg-text );
}

/* Chamada final */

.cg-report__cta {
	margin: 26px -28px -28px;
	padding: 32px 28px;
	background: linear-gradient( 140deg, var( --cg-navy ) 0%, var( --cg-navy-soft ) 100% );
	color: #fff;
	text-align: center;
}

.cg-report__cta-body h3 {
	margin: 0 0 8px;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
}

.cg-report__cta-body p {
	margin: 0 0 20px;
	font-size: 14.5px;
	color: var( --cg-text-invert );
}

.cg-report__cta-note {
	margin: 14px 0 0;
	font-size: 12.5px;
	color: rgba( 189, 199, 220, 0.75 );
}

/* ---------------------------------------------------------------------
 * Responsivo
 * ------------------------------------------------------------------ */

@media ( max-width: 680px ) {
	.cg-stage {
		padding: 20px;
	}

	.cg-header,
	.cg-progress {
		padding-left: 20px;
		padding-right: 20px;
	}

	.cg-header__logo {
		width: 64px;
		height: 64px;
	}

	.cg-title {
		font-size: 23px;
	}

	.cg-question__title {
		font-size: 18.5px;
	}

	.cg-fields {
		grid-template-columns: 1fr;
	}

	.cg-actions {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.cg-actions .cg-btn {
		width: 100%;
	}

	.cg-panel--intro .cg-actions--center .cg-btn,
	.cg-panel--website .cg-actions .cg-btn--primary {
		min-width: 0;
	}

	.cg-teaser {
		flex-direction: column;
		text-align: center;
		gap: 16px;
	}

	.cg-teaser__gauge {
		width: 130px;
	}

	.cg-preview__row,
	.cg-gap,
	.cg-list-chart__row {
		grid-template-columns: 1fr auto;
	}

	.cg-preview__track,
	.cg-gap__track,
	.cg-list-chart__bar {
		grid-column: 1 / -1;
		order: 3;
	}

	.cg-report__cover {
		margin: -20px -20px 22px;
		padding: 24px 20px;
	}

	.cg-report__score {
		flex-direction: column;
		text-align: center;
		gap: 16px;
	}

	.cg-report__cta {
		margin: 22px -20px -20px;
		padding: 26px 20px;
	}

	.cg-check {
		grid-template-columns: 24px 1fr;
	}

	.cg-check__detail {
		grid-column: 2;
		text-align: left;
	}

	.cg-services {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------------
 * Impressão
 * ------------------------------------------------------------------ */

/* ---------------------------------------------------------------------
 * Estado final: o relatório substitui o cabeçalho do widget
 * ------------------------------------------------------------------ */

.cg-diagnostic.is-report .cg-header {
	display: none;
}

.cg-diagnostic.is-report .cg-stage {
	padding-top: 28px;
}

@media ( max-width: 680px ) {
	.cg-diagnostic.is-report .cg-stage {
		padding-top: 20px;
	}
}

/* ---------------------------------------------------------------------
 * Número principal do relatório
 * ------------------------------------------------------------------ */

.cg-headline {
	padding: 22px 0 24px;
	margin-bottom: 22px;
	border-bottom: 1px solid rgba( 255, 255, 255, 0.14 );
	text-align: center;
}

.cg-headline__label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --cg-accent );
	margin-bottom: 8px;
}

.cg-headline__value {
	display: block;
	font-size: 66px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.035em;
	color: #fff;
}

.cg-headline__value small {
	display: inline-block;
	margin-left: 6px;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0;
	color: var( --cg-text-invert );
}

.cg-headline__money {
	margin: 12px auto 0;
	max-width: 46ch;
	font-size: 14.5px;
	line-height: 1.55;
	color: var( --cg-text-invert );
}

.cg-headline__money strong {
	color: #fff;
	font-weight: 700;
}

.cg-report__score--compact {
	gap: 18px;
}

.cg-report__score--compact .cg-gauge {
	width: 92px;
}

.cg-report__score--compact .cg-gauge__number {
	font-size: 36px;
}

.cg-report__score--compact .cg-report__score-level {
	font-size: 18px;
	margin-bottom: 5px;
}

.cg-report__score--compact .cg-report__score-text p {
	font-size: 13.5px;
}

/* ---------------------------------------------------------------------
 * Os seus números
 * ------------------------------------------------------------------ */

.cg-numbers {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 185px, 1fr ) );
	gap: 12px;
	margin-bottom: 22px;
}

.cg-number {
	padding: 17px 18px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	border-top: 3px solid #cfd6e4;
}

.cg-number--good {
	border-top-color: var( --cg-success );
}

.cg-number--warn {
	border-top-color: var( --cg-warning );
}

.cg-number--bad {
	border-top-color: var( --cg-danger );
}

.cg-number--neutral {
	border-top-color: var( --cg-primary );
}

.cg-number__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var( --cg-text-soft );
	margin-bottom: 6px;
}

.cg-number__value {
	display: block;
	font-size: 25px;
	line-height: 1.1;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var( --cg-ink );
	margin-bottom: 4px;
}

.cg-number__unit {
	display: block;
	font-size: 12px;
	color: var( --cg-text-soft );
}

/* Barra captado vs. perdido */

.cg-capture__track {
	display: flex;
	height: 42px;
	border-radius: 10px;
	overflow: hidden;
	background: var( --cg-surface );
}

.cg-capture__filled,
.cg-capture__lost {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 800;
	color: #fff;
	min-width: 42px;
}

.cg-capture__filled {
	background: var( --cg-primary );
}

.cg-capture__lost {
	flex: 1 1 auto;
	background: repeating-linear-gradient(
		45deg,
		rgba( 228, 172, 30, 0.92 ),
		rgba( 228, 172, 30, 0.92 ) 7px,
		rgba( 228, 172, 30, 0.7 ) 7px,
		rgba( 228, 172, 30, 0.7 ) 14px
	);
}

.cg-capture__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 10px;
	font-size: 12.5px;
	font-weight: 600;
	color: var( --cg-text-soft );
}

.cg-capture__legend-item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.cg-capture__legend-item::before {
	content: "";
	width: 12px;
	height: 12px;
	border-radius: 3px;
}

.cg-capture__legend-item--filled::before {
	background: var( --cg-primary );
}

.cg-capture__legend-item--lost::before {
	background: var( --cg-accent );
}

/* ---------------------------------------------------------------------
 * Gráfico de recuperação
 * ------------------------------------------------------------------ */

.cg-chart__bar {
	fill: rgba( 69, 145, 206, 0.28 );
}

.cg-legend__item--bars::before {
	background: rgba( 69, 145, 206, 0.4 );
	height: 10px;
	border-radius: 2px;
}

@media ( max-width: 680px ) {
	.cg-headline__value {
		font-size: 52px;
	}

	.cg-report__score--compact {
		flex-direction: column;
		text-align: center;
	}

	.cg-numbers {
		grid-template-columns: 1fr 1fr;
	}

	.cg-number__value {
		font-size: 21px;
	}
}

@media ( max-width: 420px ) {
	.cg-numbers {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------------
 * Número principal no ecrã de captação de contactos
 * ------------------------------------------------------------------ */

.cg-teaser-headline {
	padding: 26px 22px;
	margin-bottom: 14px;
	background: linear-gradient( 140deg, var( --cg-navy ) 0%, var( --cg-navy-soft ) 100% );
	border-radius: var( --cg-radius );
	text-align: center;
	color: #fff;
}

.cg-teaser-headline[hidden] {
	display: none;
}

.cg-teaser-headline__label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var( --cg-accent );
	margin-bottom: 8px;
}

.cg-teaser-headline__value {
	display: block;
	font-size: 58px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.035em;
	color: #fff;
}

.cg-teaser-headline__value small {
	display: inline-block;
	margin-left: 6px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
	color: var( --cg-text-invert );
}

.cg-teaser-headline__money {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var( --cg-text-invert );
}

/* Com o número principal presente, o mostrador passa a papel secundário. */

.cg-teaser-headline:not([hidden]) + .cg-teaser {
	padding: 16px 18px;
	background: var( --cg-surface );
	color: var( --cg-ink );
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-teaser__gauge {
	width: 84px;
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-teaser__level {
	font-size: 17px;
	color: var( --cg-ink );
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-teaser__text {
	color: var( --cg-text );
	font-size: 13.5px;
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-gauge__number {
	fill: var( --cg-ink );
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-gauge__unit {
	fill: var( --cg-text-soft );
}

.cg-teaser-headline:not([hidden]) + .cg-teaser .cg-gauge__track {
	stroke: #e0e4ee;
}

@media ( max-width: 680px ) {
	.cg-teaser-headline__value {
		font-size: 46px;
	}
}

/* ---------------------------------------------------------------------
 * Campos de resposta livre (número, moeda, percentagem)
 * ------------------------------------------------------------------ */

.cg-input-group {
	position: relative;
	display: flex;
	align-items: stretch;
}

.cg-input-group .cg-input {
	flex: 1 1 auto;
	font-size: 22px;
	font-weight: 700;
	padding: 16px 18px;
	letter-spacing: -0.01em;
}

.cg-input-group--suffixed .cg-input {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	border-right: 0;
}

.cg-input-group__suffix {
	display: flex;
	align-items: center;
	padding: 0 18px;
	font-size: 15px;
	font-weight: 700;
	color: var( --cg-text-soft );
	background: var( --cg-surface );
	border: 1.5px solid var( --cg-line );
	border-left: 0;
	border-radius: 0 var( --cg-radius-sm ) var( --cg-radius-sm ) 0;
	white-space: nowrap;
}

.cg-input-group:focus-within .cg-input-group__suffix {
	border-color: var( --cg-primary );
}

/* Esconde os botões de incremento: distraem e estragam o alinhamento. */

.cg-input[type="number"]::-webkit-outer-spin-button,
.cg-input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.cg-input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

/* ---------------------------------------------------------------------
 * Resumo executivo e navegação
 * ------------------------------------------------------------------ */

.cg-report__section--summary {
	padding-top: 0;
}

/* ---------------------------------------------------------------------
 * O modelo de negócio e o que ele mudou na leitura
 * ------------------------------------------------------------------ */

.cg-business__tag {
	display: inline-block;
	margin-bottom: 10px;
	padding: 5px 12px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --cg-navy );
	background: rgba( 228, 172, 30, 0.18 );
	border-radius: 999px;
}

.cg-business__points {
	display: grid;
	gap: 9px;
	margin: 14px 0 0;
	padding: 16px 18px;
	list-style: none;
	background: var( --cg-surface );
	border-left: 3px solid var( --cg-accent );
	border-radius: var( --cg-radius-sm );
}

.cg-business__points li {
	position: relative;
	padding-left: 22px;
	font-size: 14px;
	line-height: 1.5;
	color: var( --cg-ink );
}

.cg-business__points li::before {
	content: "";
	position: absolute;
	top: 7px;
	left: 2px;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: var( --cg-accent );
}

.cg-summary {
	margin: 0 0 20px;
	padding: 20px 22px;
	list-style: none;
	background: linear-gradient( 140deg, rgba( 69, 145, 206, 0.09 ), rgba( 228, 172, 30, 0.07 ) );
	border-radius: var( --cg-radius );
	display: grid;
	gap: 13px;
}

.cg-summary__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.55;
	color: var( --cg-ink );
}

.cg-summary__icon {
	display: flex;
	flex: 0 0 auto;
	margin-top: 2px;
	color: var( --cg-primary );
}

.cg-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.cg-nav__link {
	padding: 7px 14px;
	font-size: 12.5px;
	font-weight: 700;
	color: var( --cg-text-soft );
	background: var( --cg-surface );
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.18s ease, color 0.18s ease;
}

.cg-nav__link:hover {
	background: var( --cg-primary );
	color: #fff;
}

/* Botão de impressão */

.cg-print {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-left: auto;
	padding: 9px 15px;
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 700;
	color: #fff;
	background: rgba( 255, 255, 255, 0.12 );
	border: 1px solid rgba( 255, 255, 255, 0.22 );
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.18s ease;
	flex: 0 0 auto;
	align-self: flex-start;
}

.cg-print:hover {
	background: rgba( 255, 255, 255, 0.22 );
}

.cg-print svg {
	width: 16px;
	height: 16px;
}

/* ---------------------------------------------------------------------
 * Radar e referência comparativa
 * ------------------------------------------------------------------ */

.cg-areas-visual {
	display: grid;
	grid-template-columns: minmax( 0, 1.15fr ) minmax( 0, 0.85fr );
	align-items: center;
	gap: 18px;
	margin-bottom: 24px;
}

.cg-radar svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.cg-radar__ring {
	fill: none;
	stroke: #e3e8f1;
	stroke-width: 1;
}

.cg-radar__axis {
	stroke: #e3e8f1;
	stroke-width: 1;
}

.cg-radar__reference {
	fill: rgba( 132, 139, 169, 0.16 );
	stroke: #a7aec4;
	stroke-width: 1.5;
	stroke-dasharray: 5 4;
}

.cg-radar__shape {
	fill: rgba( 69, 145, 206, 0.28 );
	stroke: var( --cg-primary );
	stroke-width: 2.5;
	stroke-linejoin: round;
}

.cg-radar__dot {
	fill: var( --cg-primary );
	stroke: #fff;
	stroke-width: 2;
}

.cg-radar__label {
	font-family: inherit;
	font-size: 11.5px;
	font-weight: 600;
	fill: var( --cg-text-soft );
}

.cg-radar__value {
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	fill: var( --cg-ink );
}

.cg-reference {
	padding: 20px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	border-left: 3px solid var( --cg-primary );
}

.cg-reference--good {
	border-left-color: var( --cg-success );
}

.cg-reference--warn {
	border-left-color: var( --cg-warning );
}

.cg-reference--bad {
	border-left-color: var( --cg-danger );
}

.cg-reference__label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
	margin-bottom: 6px;
}

.cg-reference__value {
	display: block;
	font-size: 34px;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var( --cg-ink );
	margin-bottom: 8px;
}

.cg-reference--good .cg-reference__value {
	color: var( --cg-success );
}

.cg-reference--bad .cg-reference__value {
	color: var( --cg-danger );
}

.cg-reference__value small {
	font-size: 13px;
	font-weight: 600;
	color: var( --cg-text-soft );
	letter-spacing: 0;
}

.cg-reference__text {
	display: block;
	font-size: 13px;
	line-height: 1.5;
	color: var( --cg-text );
	margin-bottom: 12px;
}

.cg-reference__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 11.5px;
	font-weight: 600;
	color: var( --cg-text-soft );
}

.cg-reference__key {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cg-reference__key::before {
	content: "";
	width: 14px;
	height: 3px;
	border-radius: 2px;
}

.cg-reference__key--you::before {
	background: var( --cg-primary );
}

.cg-reference__key--median::before {
	background: #a7aec4;
}

/* Marcador da mediana nas barras */

.cg-bar__track {
	position: relative;
}

.cg-bar__median {
	position: absolute;
	top: -3px;
	bottom: -3px;
	width: 2px;
	background: var( --cg-ink );
	opacity: 0.45;
	border-radius: 2px;
}

/* ---------------------------------------------------------------------
 * Cascata do potencial
 * ------------------------------------------------------------------ */

.cg-chart__baseline {
	stroke: #d7dde8;
	stroke-width: 1.5;
}

.cg-waterfall__bar--base {
	fill: #b9c4d6;
}

.cg-waterfall__bar--gain {
	fill: var( --cg-primary );
}

.cg-waterfall__bar--total {
	fill: var( --cg-accent );
}

.cg-waterfall__value {
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	fill: var( --cg-ink );
}

.cg-waterfall__label {
	font-family: inherit;
	font-size: 11.5px;
	font-weight: 600;
	fill: var( --cg-text-soft );
}

/* ---------------------------------------------------------------------
 * Core Web Vitals
 * ------------------------------------------------------------------ */

.cg-report__lead--tight {
	margin-bottom: 14px;
}

.cg-vitals {
	display: grid;
	gap: 16px;
	margin-bottom: 18px;
}

.cg-vital__head {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 8px;
}

.cg-vital__key {
	padding: 3px 8px;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: 0.04em;
	border-radius: 5px;
	background: var( --cg-surface );
	color: var( --cg-text-soft );
}

.cg-vital__label {
	flex: 1 1 auto;
	font-size: 14px;
	font-weight: 700;
	color: var( --cg-ink );
}

.cg-vital__value {
	font-size: 16px;
	font-weight: 800;
	color: var( --cg-ink );
}

.cg-vital--good .cg-vital__value {
	color: var( --cg-success );
}

.cg-vital--warn .cg-vital__value {
	color: #9a710a;
}

.cg-vital--bad .cg-vital__value {
	color: var( --cg-danger );
}

.cg-vital__scale {
	position: relative;
	display: flex;
	height: 10px;
	border-radius: 999px;
	overflow: hidden;
	background: var( --cg-surface );
}

.cg-vital__band {
	height: 100%;
}

.cg-vital__band--good {
	background: rgba( 46, 158, 107, 0.55 );
}

.cg-vital__band--warn {
	background: rgba( 228, 172, 30, 0.55 );
}

.cg-vital__band--bad {
	flex: 1 1 auto;
	background: rgba( 209, 73, 91, 0.45 );
}

.cg-vital__marker {
	position: absolute;
	top: -4px;
	width: 3px;
	height: 18px;
	margin-left: -1.5px;
	border-radius: 2px;
	background: var( --cg-ink );
	box-shadow: 0 0 0 2px #fff;
}

.cg-vital__hint {
	margin: 7px 0 0;
	font-size: 12.5px;
	color: var( --cg-text-soft );
}

.cg-speed-wins {
	padding: 16px 18px;
	background: var( --cg-surface );
	border-radius: var( --cg-radius-sm );
	display: grid;
	gap: 9px;
}

.cg-speed-wins__title {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-speed-win {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	font-size: 13.5px;
	color: var( --cg-ink );
}

.cg-speed-win__value {
	font-weight: 800;
	color: var( --cg-success );
	white-space: nowrap;
}

/* ---------------------------------------------------------------------
 * Matriz de prioridades
 * ------------------------------------------------------------------ */

.cg-chart--matrix svg,
.cg-chart--waterfall svg {
	display: block;
	width: 100%;
	height: auto;
}

.cg-matrix__quadrant--priority {
	fill: rgba( 46, 158, 107, 0.09 );
}

.cg-matrix__quadrant-label {
	font-family: inherit;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	fill: var( --cg-text-soft );
}

.cg-matrix__divider {
	stroke: #dfe4ee;
	stroke-width: 1;
	stroke-dasharray: 4 4;
}

.cg-matrix__axis {
	stroke: #c8cfdd;
	stroke-width: 1.5;
}

.cg-matrix__axis-label {
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	fill: var( --cg-text-soft );
}

.cg-matrix__dot {
	stroke: #fff;
	stroke-width: 2.5;
}

.cg-matrix__dot--risco {
	fill: var( --cg-danger );
}

.cg-matrix__dot--oportunidade {
	fill: var( --cg-primary );
}

.cg-matrix__number {
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	fill: #fff;
}

.cg-matrix-legend {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: cg-matrix;
	display: grid;
	gap: 8px;
}

.cg-matrix-legend__item {
	counter-increment: cg-matrix;
	display: grid;
	grid-template-columns: 30px minmax( 0, 0.9fr ) minmax( 0, 1.6fr ) auto;
	align-items: center;
	gap: 12px;
	padding: 11px 14px;
	background: var( --cg-surface );
	border-radius: 10px;
	font-size: 13.5px;
}

.cg-matrix-legend__item::before {
	content: counter( cg-matrix );
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
	color: #fff;
}

.cg-matrix-legend__item--risco::before {
	background: var( --cg-danger );
}

.cg-matrix-legend__item--oportunidade::before {
	background: var( --cg-primary );
}

.cg-matrix-legend__area {
	font-weight: 700;
	color: var( --cg-ink );
}

.cg-matrix-legend__title {
	color: var( --cg-text );
}

.cg-matrix-legend__effort {
	padding: 3px 10px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 999px;
	background: #fff;
	color: var( --cg-text-soft );
	white-space: nowrap;
}

/* ---------------------------------------------------------------------
 * Roteiro
 * ------------------------------------------------------------------ */

.cg-roadmap {
	position: relative;
	display: grid;
	gap: 4px;
	margin-bottom: 26px;
}

.cg-phase {
	position: relative;
	display: grid;
	grid-template-columns: 150px minmax( 0, 1fr );
	gap: 20px;
	padding-bottom: 22px;
}

.cg-phase:last-child {
	padding-bottom: 0;
}

.cg-phase__marker {
	position: relative;
	padding-left: 22px;
}

.cg-phase__marker::before {
	content: "";
	position: absolute;
	left: 5px;
	top: 16px;
	bottom: -22px;
	width: 2px;
	background: var( --cg-line );
}

.cg-phase:last-child .cg-phase__marker::before {
	display: none;
}

.cg-phase__dot {
	position: absolute;
	left: 0;
	top: 5px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var( --cg-primary );
	box-shadow: 0 0 0 4px rgba( 69, 145, 206, 0.18 );
}

.cg-phase:nth-child(2) .cg-phase__dot {
	background: var( --cg-accent );
	box-shadow: 0 0 0 4px rgba( 228, 172, 30, 0.2 );
}

.cg-phase:nth-child(3) .cg-phase__dot {
	background: var( --cg-navy );
	box-shadow: 0 0 0 4px rgba( 13, 19, 45, 0.14 );
}

.cg-phase__window {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var( --cg-text-soft );
}

.cg-phase__title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var( --cg-ink );
}

.cg-phase__text {
	margin: 0 0 10px;
	font-size: 14px;
	color: var( --cg-text );
}

.cg-phase__items {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
}

.cg-phase__items li {
	position: relative;
	padding-left: 20px;
	font-size: 13.5px;
	font-weight: 600;
	color: var( --cg-ink );
}

.cg-phase__items li::before {
	content: "";
	position: absolute;
	left: 3px;
	top: 8px;
	width: 7px;
	height: 7px;
	border-radius: 2px;
	background: var( --cg-primary );
	opacity: 0.55;
}

/* ---------------------------------------------------------------------
 * Responsivo dos novos blocos
 * ------------------------------------------------------------------ */

@media ( max-width: 760px ) {
	.cg-areas-visual {
		grid-template-columns: 1fr;
	}

	.cg-radar {
		max-width: 420px;
		margin: 0 auto;
	}
}

@media ( max-width: 680px ) {
	.cg-report__brand {
		flex-wrap: wrap;
	}

	.cg-print {
		margin-left: 0;
	}

	.cg-reference__value {
		font-size: 28px;
	}

	.cg-matrix-legend__item {
		grid-template-columns: 26px minmax( 0, 1fr );
		row-gap: 4px;
	}

	.cg-matrix-legend__title,
	.cg-matrix-legend__effort {
		grid-column: 2;
	}

	.cg-matrix-legend__effort {
		justify-self: start;
		background: #fff;
	}

	.cg-phase {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.cg-phase__marker::before {
		display: none;
	}

	.cg-summary__item {
		font-size: 14px;
	}
}

/* ---------------------------------------------------------------------
 * Impressão dos novos blocos
 * ------------------------------------------------------------------ */

/* ---------------------------------------------------------------------
 * Impressão e PDF
 *
 * O relatório é partilhado em reunião e reencaminhado internamente: o PDF é,
 * muitas vezes, a única versão que o decisor vê. Daí valer o mesmo cuidado
 * que a versão em ecrã.
 *
 * A regra que estraga tudo é `break-inside: avoid` numa secção inteira: se ela
 * não couber no espaço que resta, salta toda para a página seguinte e deixa
 * meia página em branco. Aqui só se protege o que não faz sentido cortar ao
 * meio — um cartão, um gráfico, uma fase do roteiro.
 * ------------------------------------------------------------------ */

/* A folha de impressão é uma tabela por uma razão técnica — é a única forma de
   o rodapé se repetir em todas as páginas e reservar espaço. Em ecrã desfaz-se
   em blocos e o rodapé não aparece. */
.cg-sheet,
.cg-sheet > tbody,
.cg-sheet > tbody > tr,
.cg-sheet > tbody > tr > td {
	display: block;
	width: auto;
	padding: 0;
	margin: 0;
	border: 0;
	text-align: inherit;
}

.cg-sheet__foot,
.cg-print-footer {
	display: none;
}

@media print {

	@page {
		size: A4;
		/* Margem do documento, definida num sítio só. O lado é generoso de
		   propósito: 180mm de coluna dá uma linha de leitura confortável. */
		margin: 15mm 15mm 14mm;
	}

	/* A capa não tem margem: o azul-marinho vai de borda a borda. */
	@page cover {
		margin: 0;
	}

	/* As cores são conteúdo, não decoração: um relatório a preto e branco
	   perde as bandas do Google e a leitura dos gráficos. */
	*,
	*::before,
	*::after {
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
	}

	body {
		background: #fff;
	}

	/* Nenhum invólucro acrescenta margem à da página. `.cg-page` é a página
	   autónoma que o email abre; `main` cobre o ensaio e integrações simples. */
	html,
	body,
	main,
	.cg-page,
	.cg-diagnostic,
	.cg-stage,
	.cg-panel--report,
	.cg-report {
		margin: 0 !important;
		padding: 0 !important;
		max-width: none !important;
		width: auto !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: #fff !important;
		overflow: visible !important;
	}

	/* Fora tudo o que só serve para clicar. */
	.cg-header,
	.cg-progress,
	.cg-loader,
	.cg-nav,
	.cg-print,
	.cg-panel:not(.cg-panel--report),
	.cg-report__cta .cg-btn,
	.cg-service__link {
		display: none !important;
	}

	.cg-report {
		font-size: 10.5pt;
		line-height: 1.5;
	}

	/* A capa é o rosto do documento: fica sozinha e ocupa a página toda, com o
	   número principal a meio. Encostada ao topo, deixava dois terços de papel
	   branco — que é como uma apresentação de consultoria não se entrega. */
	.cg-report__cover {
		page: cover;
		display: flex;
		flex-direction: column;
		justify-content: center;
		box-sizing: border-box;
		min-height: 296mm;
		width: 100%;
		margin: 0;
		/* O espaço interior é da capa, não da folha: sem ele o conteúdo ficava
		   colado às bordas do papel. */
		padding: 26mm 24mm;
		border-radius: 0;
		break-after: page;
		page-break-after: always;
	}

	.cg-report__cover .cg-headline {
		padding-top: 30px;
		padding-bottom: 30px;
	}

	.cg-report__cover .cg-headline__value {
		font-size: 62pt;
	}

	/* As secções fluem de página para página. */
	.cg-report__section {
		break-inside: auto;
		page-break-inside: auto;
		margin-top: 18px;
	}

	/* Um título nunca fecha uma página sozinho. */
	.cg-report__title,
	.cg-report__subtitle,
	.cg-gaps__title,
	.cg-list-chart__title,
	.cg-speed-wins__title,
	.cg-matrix-legend__title {
		break-after: avoid;
		page-break-after: avoid;
	}

	.cg-report__lead {
		break-before: avoid;
		page-break-before: avoid;
	}

	/* O que não se corta ao meio. */
	.cg-card,
	.cg-service,
	.cg-number,
	.cg-metric,
	.cg-chart,
	.cg-gauge,
	.cg-radar,
	.cg-phase,
	.cg-vital,
	.cg-check,
	.cg-capture,
	.cg-gap,
	.cg-summary__item,
	.cg-reference,
	.cg-speed-win,
	.cg-list-chart__row,
	.cg-headline,
	.cg-business__points,
	.cg-disclaimer,
	.cg-legend,
	.cg-bar,
	.cg-step {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	p,
	li {
		orphans: 3;
		widows: 3;
	}

	/* Em ecrã os cartões flutuam; no papel um documento não tem sombras nem
	   cantos muito redondos — lê-se como um impresso, não como um site. */
	.cg-card,
	.cg-service,
	.cg-number,
	.cg-metric,
	.cg-phase,
	.cg-vital,
	.cg-check,
	.cg-chart,
	.cg-gap,
	.cg-capture,
	.cg-reference,
	.cg-speed-win,
	.cg-disclaimer,
	.cg-summary,
	.cg-list-chart,
	.cg-matrix-legend {
		box-shadow: none !important;
		border-radius: 5px;
	}

	/* O espaço entre secções faz o ritmo do documento. */
	.cg-report__section {
		padding-top: 22px;
		padding-bottom: 4px;
	}

	.cg-report__title {
		margin-bottom: 6px;
		font-size: 15pt;
	}

	.cg-report__subtitle {
		font-size: 12pt;
	}

	/* O polígono do radar precisa de mais corpo no papel. */
	.cg-radar__shape {
		fill: rgba( 69, 145, 206, 0.35 );
	}

	/* Rodapé repetido em todas as páginas: um PDF reencaminhado tem de dizer
	   de quem é e a que empresa diz respeito.

	   Um elemento `position: fixed` repete-se mas não reserva espaço — o texto
	   passa-lhe por cima. O grupo de rodapé de tabela repete-se **e** ocupa
	   lugar em todas as páginas, que é o que faz falta. */
	.cg-sheet {
		display: table;
		width: 100%;
		table-layout: fixed;
		border-collapse: collapse;
	}

	.cg-sheet > tbody,
	.cg-sheet > tbody > tr,
	.cg-sheet > tbody > tr > td,
	.cg-sheet > tfoot,
	.cg-sheet > tfoot > tr,
	.cg-sheet > tfoot > tr > td {
		display: revert;
		padding: 0;
		border: 0;
		vertical-align: top;
		text-align: left;
	}

	.cg-sheet__foot {
		display: table-footer-group;
	}
	.cg-print-footer {
		display: flex !important;
		align-items: baseline;
		justify-content: space-between;
		gap: 12px;
		margin-top: 10mm;
		padding-top: 5px;
		border-top: 1px solid var( --cg-line );
		font-size: 8pt;
		line-height: 1.3;
		color: var( --cg-text-soft );
	}

	.cg-print-footer__brand {
		font-weight: 700;
		color: var( --cg-navy );
	}

	.cg-print-footer__meta {
		text-align: right;
	}
}

/* ---------------------------------------------------------------------
 * Legibilidade dos gráficos em ecrãs estreitos
 *
 * O texto dentro de um SVG é medido em unidades do viewBox, pelo que encolhe
 * na mesma proporção do gráfico. Num telemóvel a matriz é desenhada a cerca de
 * 40% do tamanho original: sem esta compensação, as etiquetas ficariam com
 * quatro pixels de altura.
 * ------------------------------------------------------------------ */

@media ( max-width: 760px ) {
	.cg-radar__label {
		font-size: 17px;
	}

	.cg-radar__value {
		font-size: 19px;
	}
}

@media ( max-width: 680px ) {
	.cg-chart--matrix .cg-matrix__quadrant-label {
		font-size: 31px;
	}

	.cg-chart--matrix .cg-matrix__axis-label {
		font-size: 32px;
	}

	.cg-chart--matrix .cg-matrix__number {
		font-size: 34px;
	}

	.cg-chart--matrix .cg-matrix__dot {
		r: 30;
	}

	.cg-chart--waterfall .cg-waterfall__value {
		font-size: 34px;
	}

	.cg-chart--waterfall .cg-waterfall__label {
		font-size: 27px;
	}

	.cg-chart--money .cg-chart__axis {
		font-size: 30px;
	}

	.cg-chart--money .cg-chart__value {
		font-size: 34px;
	}

	.cg-chart .cg-chart__axis {
		font-size: 29px;
	}
}

@media ( max-width: 420px ) {
	.cg-radar__label {
		font-size: 20px;
	}

	.cg-radar__value {
		font-size: 23px;
	}
}

/* ---------------------------------------------------------------------
 * Meta e cabeçalhos, página a página
 * ------------------------------------------------------------------ */

.cg-pages {
	width: 100%;
	margin-top: 18px;
	border-collapse: collapse;
	font-size: 13px;
	line-height: 1.45;
}

.cg-pages th {
	padding: 9px 10px;
	border-bottom: 2px solid var( --cg-line );
	color: var( --cg-text-soft );
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: left;
}

.cg-pages td {
	padding: 10px;
	border-bottom: 1px solid var( --cg-line );
	color: var( --cg-text );
	vertical-align: top;
}

/* A repetição só se vê com as linhas alinhadas, por isso o texto não é
   truncado: é ele a prova. */
.cg-pages__path {
	color: var( --cg-ink );
	font-weight: 600;
	white-space: nowrap;
}

.cg-pages__count {
	text-align: center;
	font-weight: 700;
}

.cg-pages em {
	color: var( --cg-danger );
	font-style: normal;
	font-weight: 600;
}

@media ( max-width: 640px ) {
	.cg-pages {
		font-size: 12px;
	}

	.cg-pages th:nth-child( 4 ),
	.cg-pages td:nth-child( 4 ) {
		display: none;
	}

	.cg-pages__path {
		white-space: normal;
		word-break: break-word;
	}
}

/* Etiqueta do setor identificado, ao lado do modelo de negócio. */
.cg-business__tag--sector {
	margin-left: 8px;
	background: var( --cg-surface );
	color: var( --cg-text );
	border: 1px solid var( --cg-line );
}
