.cx-vui-button {
	cursor: pointer;
	display: inline-block;
	padding: 0;
	margin: 0;
	border: none;
	box-shadow: 0px 4px 4px rgba(35, 40, 45, 0.24);
	border-radius: 4px;
	transition: all 150ms linear;
	font-weight: 500;
	font-family: $font_family;
	outline: none;
	position: relative;
	box-sizing: border-box;
	text-decoration: none;
	&__content {
		display: flex;
		justify-content: center;
		align-items: center;
		.cx-vui-button--loading & {
			opacity: 0;
		}
	}
	&--style {
		&-default {
			background: $color__bg-input;
			color: $color__accent;
			&:hover {
				box-shadow: none;
				color: $color__accent;
				background: $color__bg-input-hover;
			}
		}
		&-accent {
			background: $color__accent;
			color: #fff;
			&:hover {
				box-shadow: none;
				color: #fff;
				background: $color__accent-hover;
			}
		}
		&-default-border {
			border: 1px solid $color__border-off-panel;
			background: transparent;
			color: $color__text;
			box-shadow: none;
			&:hover {
				border: 1px solid $color__border-off-panel;
				color: $color__text;
				background: #f3f5f6;
			}
		}
		&-accent-border {
			border: 1px solid $color__accent;
			background: transparent;
			color: $color__accent;
			box-shadow: none;
			&:hover {
				border: 1px solid $color__accent-hover;
				color: $color__accent-hover;
				background: #f3f5f6;
			}
		}
		&-link-accent {
			color: $color__accent;
			background: none;
			box-shadow: none;
			path {
				fill: $color__accent;
			}
			&:hover {
				color: $color__accent-hover;
				path {
					fill: $color__accent-hover;
				}
			}
		}
		&-link-error {
			color: $color__error;
			background: none;
			box-shadow: none;
			path {
				fill: $color__error;
			}
			&:hover {
				color: $color__error;
			}
		}
	}
	&--size {
		&-default {
			font-size: 15px;
			line-height: 21px;
			padding: 12px 25px 13px;
			.cx-vui-button__content {
				.dashicons {
					margin: 0 5px 0 -8px;
					.rtl & {
						margin: 0 -8px 0 5px;
					}
				}
				span + .dashicons {
					margin: -8px 0 0 5px;
					.rtl & {
						margin: -8px 5px 0 0;
					}
				}
			}
		}
		&-link {
			font-size: 15px;
			line-height: 18px;
			.cx-vui-button__content {
				svg {
					margin: 0 5px 1px 0;
					.rtl & {
						margin: 0 0 1px 5px;
					}
				}
				span + svg {
					margin: 0 0 1px 5px;
					.rtl & {
						margin: 0 5px 1px 0;
					}
				}
			}
		}
		&-mini {
			font-size: 13px;
			line-height: 19px;
			padding: 6px 14px 7px;
			.cx-vui-button__content {
				.dashicons {
					margin: 0 4px 0 -5px;
					.rtl & {
						margin: 0 -5px 0 4px;
					}
				}
				span + .dashicons {
					margin: -5px 0 0 4px;
					.rtl & {
						margin: -5px 4px 0 0;
					}
				}
			}

		}
	}
	&--disabled {
		cursor: default;
		opacity: .3;
		pointer-events: none;
	}
	&--loading {
		cursor: default;
	}
	&__loader {
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		left: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		.loader-icon {
			animation: spin 1200ms infinite linear;
			path {
				fill: currentColor;
			}
		}
		@keyframes spin {
			from {
				transform:rotate(0deg);
			}
			to {
				transform:rotate(360deg);
			}
		}
	}
	&.fullwidth {
		width: 100%;
	}
}
