/* Base wrapper reset */
.spb-wrapper {
  display: inline-block;
  position: relative;
}

/* Holder aligns and positions shine/glow children */
.spb-button-holder {
  display: inline-block;
  position: relative;
}

/* Button core styles */
.spb-button {
  display: inline-block;
  text-decoration: none;
  border: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 12px 20px rgba(0,0,0,0.2);
  transform: translateZ(0);
}

/* Bottom "hard" shadow to mimic pressed look */
.spb-button::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -5px;
  height: 5px;
  background: transparent;
  /* You may choose to style this via border/shadow controls if desired */
}

/* Shine sweep */
.has-shine .spb-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.22) 50%, rgba(255,255,255,0) 100%);
  transition: 0.5s;
}

.has-shine .spb-button:hover::before {
  left: 120%;
}

/* Hover + active movement */
.spb-button:hover {
  transform: translateY(-3px);
}
.spb-button:active {
  transform: translateY(2px) scale(0.98);
}

/* Glow element */
.spb-button-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 40%;
  background: rgba(45,196,224,0.4);
  z-index: -1;
  filter: blur(15px);
  border-radius: 10px;
}
