Hola @inmaes82 y @danielaonline48,
@danielaonline48 ha dado en el clavo con position: fixed. Ese es el cambio fundamental para que el botón 'Volver arriba' se mantenga siempre visible en la ventana del navegador, independientemente del scroll. La versión de PrestaShop 9.1.4 en PHP 8.1+ no cambia la forma en que CSS maneja esto, así que la solución es puramente de estilos.
Para conseguir el efecto circular, la sombra y la animación suave al pasar el ratón, además de asegurar que esté por encima de otros elementos (como el modal de cookies que mencionas), te propongo el siguiente código para tu themes/classic/assets/css/custom.css:
#back-to-top {
background-color: var(--primary-color, #007bff); /* Usar variable de tema o fallback */
color: #fff;
width: 48px;
height: 48px;
text-align: center;
line-height: 48px;
border-radius: 50%; /* Esto lo hace circular */
position: fixed; /* Clave para que flote */
bottom: 25px;
Explicación de los cambios:
position: fixed;: Esto asegura que el botón se posicione en relación con la ventana gráfica (viewport) y no se mueva al hacer scroll.
border-radius: 50%;: Con esto, el botón se convierte en un círculo perfecto (asumiendo width y height iguales).
box-shadow: Añade una sombra para darle un efecto de elevación. He puesto un valor suave para empezar.
transition: Esta propiedad es crucial para las animaciones suaves. Cuando cambias background-color, box-shadow o transform al pasar el ratón (:hover), la transición hace que el cambio sea gradual.
z-index: 1050;: Este valor es bastante alto y debería colocar el botón por encima de la mayoría de los elementos de la interfaz, incluyendo modales y banners de cookies, que suelen usar z-index en el rango de 1000-1040.
@media (max-width: 767px): He añadido una pequeña media query para hacerlo más pequeño en dispositivos móviles, ajustando bottom y right para que no ocupe demasiado espacio.
Recuerda que la lógica para mostrar/ocultar el botón cuando el usuario hace scroll, y la funcionalidad real de 'scroll suave' al hacer clic, todavía necesitarán un pequeño script JavaScript, pero con este CSS, el botón tendrá el estilo y la posición correctos.