:root { --gt-size: 44px; }

.gotoTop {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(16px + env(safe-area-inset-bottom));
  width: var(--gt-size);
  height: var(--gt-size);
  border-radius: 999px;
  border: none;
  background: rgba(0,0,0,.7);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, background .2s ease;
  z-index: 999;
}
.gotoTop.show { opacity: 1; transform: translateY(0); }
.gotoTop:hover { background: rgba(0,0,0,.85); }
.gotoTop:active { transform: translateY(1px); }
@media (hover: none) {
  .gotoTop { width: 48px; height: 48px; font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .gotoTop { transition: none; }
}

.floating-buttons {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(16px + env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 999;
}

.float-btn {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  display: grid;
  place-items: center;
  font-size: 20px;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
  opacity: 0.9;
  transition: opacity .2s ease, transform .2s ease;
  text-decoration: none;
}

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

.call-btn { background: #28a745; } 
.fb-btn   { background: #1877f2; font-weight: bold; font-family: sans-serif; }
.top-btn  { background: rgba(0,0,0,.7); }
.top-btn.show { opacity: 0.9; }