/**
 * assets/css/components/back-to-top.css
 * Botão flutuante "voltar ao topo" — canto inferior direito, contorno
 * verde, seta branca. Fundo escuro semi-transparente com blur por trás
 * do contorno (mesmo tratamento "vidro fosco" do header): sem isto, a
 * seta branca ficaria ilegível sobre o fundo creme claro do site.
 */
.back-to-top {
	position: fixed;
	right: var(--space-md);
	bottom: var(--space-md);
	z-index: 150;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(48, 76, 100, 0.55);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 2px solid var(--color-accent);
	box-shadow: var(--shadow-md);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(12px);
	transition: opacity var(--dur-sm) ease, visibility var(--dur-sm), transform var(--dur-sm) var(--ease-snap), background var(--dur-sm) ease, border-color var(--dur-sm) ease;
}

.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.back-to-top:hover,
.back-to-top:focus-visible {
	background: var(--color-accent);
	border-color: var(--color-accent);
}

.back-to-top svg {
	width: 20px;
	height: 20px;
	stroke: var(--color-white);
	stroke-width: 2.4;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform var(--dur-sm) var(--ease-snap);
}

.back-to-top:hover svg {
	transform: translateY(-2px);
}

/* esconde-se quando o menu está aberto, para não competir visualmente
   com o painel de navegação */
body.menu-is-open .back-to-top {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

@media (max-width: 600px) {
	.back-to-top {
		width: 46px;
		height: 46px;
		right: var(--space-sm);
		bottom: var(--space-sm);
	}

	.back-to-top svg {
		width: 18px;
		height: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.back-to-top {
		transition: opacity var(--dur-sm) ease, visibility var(--dur-sm);
		transform: none;
	}
}
