.button {
  display: inline-flex;
  gap: 5px;
  align-items: center;
}

.button.black {
  padding: 10px 25px;
  border: unset;
  border-radius: 20px;
  color: #fff;
  z-index: 1;
  background-color: var(--ch-color-primary);
  background-image: linear-gradient(to right bottom, var(--ch-color-primary), var(--ch-color-primary-1));
  position: relative;
  font-size: 1rem;
  -webkit-box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  transition: all 250ms;
  overflow: hidden;
}

.button.black::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  border-radius: 15px;
  background-color: var(--ch-color-primary);
  z-index: -1;
  -webkit-box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  transition: all 250ms
}

.button.light {
  padding: 10px 25px;
  border: unset;
  border-radius: 20px;
  color: var(--ch-color-black);
  z-index: 1;
  background-color: #fff;
  position: relative;
  font-size: 1rem;
  -webkit-box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  transition: all 250ms;
  overflow: hidden;
}

.button.light::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  border-radius: 15px;
  background-color: var(--ch-color-primary);
  z-index: -1;
  -webkit-box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  box-shadow: 4px 8px 19px -3px rgba(0, 0, 0, 0.27);
  transition: all 250ms
}

.button.light:hover::before,
.button.black:hover::before {
  width: 100%;
}

.button.light:hover {
  color: #fff;
}

svg {
  width: 23px;
  height: 23px;
  margin-right: 5px;
  stroke: #000;
}

.button.light:hover svg {
  fill: #fff;
  stroke: #fff;
}