
/* ?? Sticky Buttons ?????????????????????????????????????????? */
.sticky-buttons {
  position: fixed;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: var(--t);
}

.-right-center {
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

.sb-item {
  --color: #ffffff;
  --bg: var(--navy);
  background: var(--bg);
  border-radius: 8px 0 0 8px;
  box-shadow: var(--sh-md);
  transition: var(--t);
  overflow: hidden;
  width: 54px;
}

.sb-item:hover {
  width: 190px;
  transform: translateX(-5px);
}

.sb-link {
  display: flex;
  align-items: center;
  height: 54px;
  color: var(--color) !important;
  text-decoration: none;
}

.sb-icon {
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
}

.sb-label {
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
  padding-right: 20px;
  opacity: 0;
  transition: opacity 0.2s;
}

.sb-item:hover .sb-label {
  opacity: 1;
}

/* Specific Modifiers */
.-rsquare .sb-item { border-radius: 8px 0 0 8px; }
.-large .sb-item { width: 60px; }
.-large .sb-link { height: 60px; }
.-large .sb-icon { width: 60px; height: 60px; font-size: 1.6rem; }
.-large .sb-item:hover { width: 210px; }

/* Admission Pulse */
.sb-item[style*="--bg: #dd3333"] {
  animation: sb-pulse 2s infinite;
}

@keyframes sb-pulse {
  0% { box-shadow: 0 0 0 0 rgba(221, 51, 51, 0.4); }
  70% { box-shadow: 0 0 0 15px rgba(221, 51, 51, 0); }
  100% { box-shadow: 0 0 0 0 rgba(221, 51, 51, 0); }
}

@media (max-width: 768px) {
  .sticky-buttons {
    bottom: 20px;
    right: 20px;
    top: auto;
    transform: none;
    flex-direction: row;
    justify-content: center;
    left: 20px;
    pointer-events: none;
  }
  .sb-item {
    pointer-events: auto;
    width: 50px !important;
    border-radius: 50% !important;
    height: 50px;
    margin: 0 5px;
  }
  .sb-item:hover { width: 50px !important; transform: translateY(-5px); }
  .sb-label { display: none; }
  .sb-link { height: 50px; width: 50px; justify-content: center; }
  .sb-icon { width: 50px; height: 50px; font-size: 1.2rem; }
}
