/* R52: mobile "Back to top" button (SPA + server-rendered pages). */
.ga-top {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 40;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  background:
    radial-gradient(circle at 32% 26%, rgba(255, 255, 255, 0.55) 0, rgba(255, 255, 255, 0.12) 34%, rgba(255, 255, 255, 0) 52%),
    linear-gradient(160deg, #1a7a4c 0%, #0c4a32 62%, #083a27 100%);
  box-shadow:
    0 0 0 2px rgba(201, 162, 39, 0.75),
    0 0 0 4px rgba(201, 162, 39, 0.18),
    0 6px 16px rgba(8, 40, 26, 0.35),
    inset 0 1px 1px rgba(255, 255, 255, 0.35);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0.22s;
  -webkit-tap-highlight-color: transparent;
}
.ga-top svg { width: 22px; height: 22px; display: block; filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.3)); }
.ga-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s;
}
.ga-top:hover { filter: brightness(1.08); }
.ga-top:focus-visible { outline: 3px solid #f3d27a; outline-offset: 3px; }
@media (max-width: 900px) {
  .ga-top { display: inline-flex; }
}
@media (prefers-reduced-motion: reduce) {
  .ga-top, .ga-top.is-visible { transition: none; transform: none; }
}
@media print { .ga-top { display: none !important; } }
