/* ============================================
   REGEDOURA — CONSENTIMENTO DO MAPA (D28)
   Faixa «Mapa da Google e cookies» e botão «Preferências de cookies» do rodapé.
   Só carrega com o interruptor ligado (inc/assets.php).
   Mobile-first; usa apenas variáveis de tokens.css e theme.css.
   ============================================ */

/* Base estática: no fim do fluxo, antes do rodapé (não cobre conteúdo em ecrãs baixos). */
.consent-banner {
	z-index: 50;
	border-block-start: var(--space-1) solid var(--color-primary);
	background: var(--color-white);
	color: var(--color-text);
	box-shadow: var(--shadow-lg);
}

.consent-banner[hidden] {
	display: none;
}

.consent-banner__inner {
	max-width: var(--page-max-width);
	margin-inline: auto;
	padding: var(--space-4) var(--page-padding);
}

.consent-banner__title {
	margin: var(--layout-zero) var(--layout-zero) var(--space-2);
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: var(--text-h3);
	line-height: var(--leading-snug);
}

.consent-banner__text,
.consent-banner__more,
.consent-banner__state {
	margin: var(--layout-zero) var(--layout-zero) var(--space-2);
	font-size: var(--text-small);
	line-height: var(--leading-normal);
}

.consent-banner__state {
	font-weight: 600;
}

.consent-banner__state:empty {
	display: none;
}

.consent-banner__link {
	display: inline-flex;
	align-items: center;
	min-height: var(--target-min);
	color: var(--color-primary-dark);
	text-decoration: underline;
	text-underline-offset: var(--hover-underline-offset);
}

.consent-banner__link:hover {
	color: var(--color-primary);
	text-decoration-thickness: var(--hover-underline-thickness);
}

.consent-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
	margin-block-start: var(--space-2);
}

/* «Aceitar» e «Recusar» são iguais: nenhum é destacado. */
.consent-banner__btn {
	display: inline-flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	min-width: 8.5rem;
	min-height: var(--target-min);
	padding-block: var(--layout-zero);
	padding-inline: var(--space-4);
	border: 2px solid var(--color-primary);
	border-radius: var(--radius-full);
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: var(--text-body);
	font-weight: 600;
	line-height: var(--leading-normal);
	cursor: pointer;
}

.consent-banner__btn[hidden] {
	display: none;
}

.consent-banner__btn:hover {
	border-color: var(--color-primary-dark);
	background: var(--color-primary-dark);
}

.consent-banner__btn:focus-visible {
	outline: var(--focus-ring-width) solid var(--color-primary);
	outline-offset: var(--focus-ring-offset);
}

/* Botão do rodapé: aparência de ligação. */
.site-footer__consent {
	display: inline-flex;
	align-items: center;
	min-height: var(--target-min);
	margin: var(--layout-zero);
	padding: var(--layout-zero);
	border: 0;
	background: none;
	color: var(--footer-link);
	font: inherit;
	text-decoration: underline;
	text-underline-offset: var(--hover-underline-offset);
	cursor: pointer;
}

.site-footer__consent[hidden] {
	display: none;
}

.site-footer__consent:hover {
	color: var(--footer-link-hover);
	text-decoration-thickness: var(--hover-underline-thickness);
}

.site-footer__consent:focus-visible {
	outline: var(--focus-ring-width) solid var(--footer-focus-color);
	outline-offset: var(--focus-ring-offset);
}

/* 600 px: o texto ocupa a largura toda e os botões ficam por baixo, com largura própria. */
@media (min-width: 600px) {
	.consent-banner__btn {
		flex: 0 0 auto;
		padding-inline: var(--space-6);
	}
}

/* Ecrãs com altura suficiente (a faixa não passa de metade da altura): fixa em baixo,
   sem tapar conteúdo nem o foco. Abaixo disto fica no fim do fluxo, antes do rodapé. */
@media (min-height: 50em) {
	.consent-banner {
		position: fixed;
		inset-inline: 0;
		bottom: 0;
	}

	.consent-banner-open {
		scroll-padding-bottom: var(--consent-banner-height, 0px);
	}

	.consent-banner-open body {
		padding-bottom: var(--consent-banner-height, 0px);
	}
}

@media (min-width: 768px) {
	.consent-banner__text,
	.consent-banner__more,
	.consent-banner__state {
		font-size: var(--text-body);
	}

	.consent-banner__inner {
		padding-block: var(--space-6);
	}
}

/* 900 px (ponto de corte só da faixa, D28): uma só linha, texto à esquerda e botões à direita. */
@media (min-width: 900px) {
	.consent-banner__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: var(--space-8);
		align-items: center;
	}

	.consent-banner__body {
		max-width: 90ch;
	}

	.consent-banner__actions {
		flex-wrap: nowrap;
		margin-block-start: var(--layout-zero);
	}
}

/* O tema pai (GeneratePress) põe uma transição de 0,1 s em `a` e `button` com mais
   especificidade do que o `*` de base.css; aqui garantimos que a faixa e os botões
   do mapa respeitam a preferência de movimento reduzido. */
@media (prefers-reduced-motion: reduce) {
	.consent-banner__link,
	.consent-banner__btn,
	.site-footer__consent {
		transition: none;
	}
}

@media (forced-colors: active) {
	.consent-banner {
		border-block-start: 2px solid CanvasText;
	}

	.consent-banner__btn {
		border: 2px solid ButtonText;
	}
}
