/* Floating FAB for Microsoft petition */
.hb-fab {
  position: fixed;
  right: 1.25rem;
  bottom: 1.5rem; /* auto-adjusted by JS if the "back to top" button overlaps */
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: .25rem;
}

.hb-fab__link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .9rem;
  border-radius: 999px;
  text-decoration: none;
  background: var(--md-accent-fg-color);
  color: var(--md-default-bg-color);
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
  white-space: nowrap;
}

.hb-fab__link:hover { filter: brightness(.95); }

.hb-fab__close {
  background: transparent;
  border: none;
  color: var(--md-default-fg-color);
  opacity: .6;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
}
.hb-fab__close:hover { opacity: 1; background: rgba(0,0,0,.06); }

.hb-fab svg { width: 1.1rem; height: 1.1rem; fill: currentColor; }

@media (max-width: 700px) { .hb-fab__text { display: none; } }

/* Gentle pulse to draw attention (respects reduced motion) */
.hb-fab::after {
  content: "";
  position: absolute;
  right: -.5rem;
  bottom: -.5rem;
  width: 3rem; height: 3rem;
  border-radius: 999px;
  background: var(--md-accent-fg-color);
  opacity: .22;
  animation: hb-pulse 2.4s ease-out infinite;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) { .hb-fab::after { animation: none; } }

@keyframes hb-pulse {
  0%   { transform: scale(.6);  opacity: .35; }
  70%  { transform: scale(1.15); opacity: .06; }
  100% { transform: scale(1.2);  opacity: 0; }
}
