.spot-button {
  position: relative;
  isolation: isolate;
  width: 240px;
  height: 48px;
  border-radius: 100px;
  padding: 10px 30px 10px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Zen Kaku Gothic New", sans-serif;
  --fg: #fff;
  --fg-hover: #2b9b7d;
  color: var(--fg);
  font-weight: bold;
  font-size: 14px;
  line-height: 18px;
  letter-spacing: .01em;
  text-align: center;
  background: var(--accent, #2b9b7d);
  border: 1px solid var(--accent, #2b9b7d);
  cursor: pointer;
  overflow: hidden;
  transition: color .0s ease;}
.spot-button::after{
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--fg);
  transition: background-color .25s ease;
  z-index: 1;
}
.spot-button::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  clip-path: circle(0px at calc(100% - 18px) 50%);
  transition: clip-path .45s cubic-bezier(.4,0,.2,1);
  z-index: -1;
}
.spot-button:hover::before,
.spot-button:focus-visible::before{
  clip-path: circle(800px at calc(100% - 18px) 50%);
}
.spot-button:hover,
.spot-button:focus-visible{
  color: var(--fg-hover) !important;
  outline: none;
}
.spot-button:hover::after,
.spot-button:focus-visible::after{
  background-color: var(--fg-hover) !important;
}
