:root {
  --rv-stepper-active-color: #e8e8e8;
  --rv-stepper-background-color: var(--rv-active-color);
  --rv-stepper-button-icon-color: var(--rv-text-color);
  --rv-stepper-button-disabled-color: var(--rv-background-color);
  --rv-stepper-button-disabled-icon-color: var(--rv-gray-5);
  --rv-stepper-button-round-theme-color: var(--rv-danger-color);
  --rv-stepper-input-width: 64px;
  --rv-stepper-input-height: 56px;
  --rv-stepper-input-font-size: var(--rv-font-size-md);
  --rv-stepper-input-line-height: normal;
  --rv-stepper-input-text-color: var(--rv-text-color);
  --rv-stepper-input-disabled-text-color: var(--rv-gray-5);
  --rv-stepper-input-disabled-background-color: var(--rv-active-color);
  --rv-stepper-border-radius: var(--rv-border-radius-md);
}

.rv-stepper {
  display: inline-block;
  user-select: none;
}

.rv-stepper__minus,
.rv-stepper__plus {
  position: relative;
  box-sizing: border-box;
  width: var(--rv-stepper-input-height);
  height: var(--rv-stepper-input-height);
  margin: 0;
  padding: 0;
  color: var(--rv-stepper-button-icon-color);
  vertical-align: middle;
  background-color: var(--rv-stepper-background-color);
  border: 0;
  cursor: pointer;
}

.rv-stepper__minus::before,
.rv-stepper__plus::before {
  width: 50%;
  height: 2px;
}

.rv-stepper__minus::after,
.rv-stepper__plus::after {
  width: 2px;
  height: 50%;
}

.rv-stepper__minus::before,
.rv-stepper__plus::before,
.rv-stepper__minus::after,
.rv-stepper__plus::after {
  position: absolute;
  top: 50%;
  left: 50%;
  background-color: currentColor;
  transform: translate(-50%, -50%);
  content: '';
}

.rv-stepper__minus:active,
.rv-stepper__plus:active {
  background-color: var(--rv-stepper-active-color);
}

.rv-stepper__minus--disabled,
.rv-stepper__plus--disabled {
  color: var(--rv-stepper-button-disabled-icon-color);
  background-color: var(--rv-stepper-button-disabled-color);
  cursor: not-allowed;
}

.rv-stepper__minus--disabled:active,
.rv-stepper__plus--disabled:active {
  background-color: var(--rv-stepper-button-disabled-color);
}

.rv-stepper__minus {
  border-radius: var(--rv-stepper-border-radius) 0 0 var(--rv-stepper-border-radius);
}

.rv-stepper__minus::after {
  display: none;
}

.rv-stepper__plus {
  border-radius: 0 var(--rv-stepper-border-radius) var(--rv-stepper-border-radius) 0;
}

.rv-stepper__input {
  box-sizing: border-box;
  width: var(--rv-stepper-input-width);
  height: var(--rv-stepper-input-height);
  margin: 0 4px;
  padding: 0;
  color: var(--rv-stepper-input-text-color);
  font-size: var(--rv-stepper-input-font-size);
  line-height: var(--rv-stepper-input-line-height);
  text-align: center;
  vertical-align: middle;
  background-color: var(--rv-stepper-background-color);
  border: 0;
  border-width: 2px 0;
  border-radius: 0;
  -webkit-appearance: none;
}

.rv-stepper__input:disabled {
  color: var(--rv-stepper-input-disabled-text-color);
  background-color: var(--rv-stepper-input-disabled-background-color);
  -webkit-text-fill-color: var(--rv-stepper-input-disabled-text-color);
  opacity: 1;
}

.rv-stepper__input:read-only {
  cursor: default;
}

.rv-stepper--round .rv-stepper__input {
  background-color: transparent;
}

.rv-stepper--round .rv-stepper__plus,
.rv-stepper--round .rv-stepper__minus {
  border-radius: 100%;
}

.rv-stepper--round .rv-stepper__plus:active,
.rv-stepper--round .rv-stepper__minus:active {
  opacity: var(--rv-active-opacity);
}

.rv-stepper--round .rv-stepper__plus--disabled,
.rv-stepper--round .rv-stepper__minus--disabled,
.rv-stepper--round .rv-stepper__plus--disabled:active,
.rv-stepper--round .rv-stepper__minus--disabled:active {
  opacity: 0.3;
}

.rv-stepper--round .rv-stepper__plus {
  color: var(--rv-white);
  background-color: var(--rv-stepper-button-round-theme-color);
}

.rv-stepper--round .rv-stepper__minus {
  color: var(--rv-stepper-button-round-theme-color);
  background-color: var(--rv-white);
  border: 2px solid var(--rv-stepper-button-round-theme-color);
}