.customer-back-to-top {
  position: fixed;
  right: calc(32px + env(safe-area-inset-right, 0px));
  bottom: calc(44px + env(safe-area-inset-bottom, 0px));
  z-index: 900;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 45%);
  border-radius: 50%;
  background: var(--customer-wine, #6b202b);
  color: #fffaf5;
  box-shadow: 0 4px 16px rgb(35 12 17 / 20%);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px) scale(.8);
  transition: opacity 160ms ease, transform 180ms cubic-bezier(.2,.8,.2,1), visibility 180ms;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.customer-back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.customer-back-to-top svg { width: 22px; height: 22px; }
.customer-back-to-top:focus-visible { outline: 3px solid #d9b96e; outline-offset: 3px; }
.customer-back-to-top:active { transform: scale(.94); }
@media (hover: hover) { .customer-back-to-top:hover { background: #4f1922; } }
@media (max-width: 480px) {
  .customer-back-to-top { right: calc(22px + env(safe-area-inset-right, 0px)); bottom: calc(38px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .customer-back-to-top { transition: none; } }
@media print { .customer-back-to-top { display: none; } }
