.icon[data-size] {
	position: relative;
	display: inline-block;
	margin-right: 0.5rem;
	vertical-align: middle;
	height: 1em;
	width: 1em;
}
.icon.icon-set-custom {
	height: 2em;
	width: 2em;
}
.icon[data-size]::before {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
	font-size: 1em;
}

.icon.svgicon.icon-set-custom {
	height: 2em;
	width: 2em;
}
.icon.svgicon.icon-set-custom .icon-set-img {
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}


.icon.icon-set-border {
	border: 2px solid transparent;
}

.icon.icon-set-radius-corners {
	border-radius: 4px;
}

.icon.icon-set-radius-round {
	border-radius: 50%;
}

.icon.icon-set-float-left {
	float: left;
	margin-right: 1rem;
}

.icon.icon-set-float-right {
	float: right;
	margin-right: 0;
	margin-left: 1rem;
}

.icon.icon-set-spin::before {
	animation: icon-anim-spin-default 2s infinite linear;
}
.icon.icon-set-spin.icon-set-spin-fast::before {
	animation-duration: 1s;
}
.icon.icon-set-spin.icon-set-spin-slow::before {
	animation-duration: 4s;
}
@keyframes icon-anim-spin-default {
	0% {
		transform: translate(-50%,-50%) rotate(0deg);
	}
	100% {
		transform: translate(-50%,-50%) rotate(359deg);
	}
}

.icon.icon-set-spin-reverse::before {
	animation: icon-anim-spin-reverse 2s infinite linear;
}
.icon.icon-set-spin-reverse.icon-set-spin-fast::before {
	animation-duration: 1s;
}
.icon.icon-set-spin-reverse.icon-set-spin-slow::before {
	animation-duration: 4s;
}
@keyframes icon-anim-spin-reverse {
	0% {
		transform: translate(-50%,-50%) rotate(0deg);
	}
	100% {
		transform: translate(-50%,-50%) rotate(-359deg);
	}
}

.icon.svgicon.icon-set-spin .icon-set-img {
	animation: icon-svg-anim-spin-default 2s infinite linear;
}
.icon.svgicon.icon-set-custom.icon-set-spin .icon-set-img {
	animation: icon-svg-anim-spin-custom-default 2s infinite linear;
}
.icon.svgicon.icon-set-spin.icon-set-spin-fast .icon-set-img {
	animation-duration: 1s;
}
.icon.svgicon.icon-set-spin.icon-set-spin-slow .icon-set-img {
	animation-duration: 4s;
}
@keyframes icon-svg-anim-spin-default {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(359deg);
	}
}
@keyframes icon-svg-anim-spin-custom-default {
	0% {
		transform: translate(-50%,-50%) rotate(0deg);
	}
	100% {
		transform: translate(-50%,-50%) rotate(359deg);
	}
}

.icon.svgicon.icon-set-spin-reverse .icon-set-img {
	animation: icon-svg-anim-spin-reverse 2s infinite linear;
}
.icon.svgicon.icon-set-custom.icon-set-spin-reverse .icon-set-img {
	animation: icon-svg-anim-spin-custom-reverse 2s infinite linear;
}
.icon.svgicon.icon-set-spin-reverse.icon-set-spin-fast .icon-set-img {
	animation-duration: 1s;
}
.icon.svgicon.icon-set-spin-reverse.icon-set-spin-slow .icon-set-img {
	animation-duration: 4s;
}
@keyframes icon-svg-anim-spin-reverse {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(-359deg);
	}
}
@keyframes icon-svg-anim-spin-custom-reverse {
	0% {
		transform: translate(-50%,-50%) rotate(0deg);
	}
	100% {
		transform: translate(-50%,-50%) rotate(-359deg);
	}
}


.icon.icon-set-horizontal-flip::before {
	transform: translate(-50%,-50%) scale(-1, 1);
}
.icon.icon-set-vertical-flip::before {
	transform: translate(-50%,-50%) scale(1, -1);
}
.icon.icon-set-horizontal-vertical-flip::before {
	transform: translate(-50%,-50%) scale(-1, -1);
}


.icon.svgicon.icon-set-horizontal-flip .icon-set-img {
	transform: scale(-1, 1);
}
.icon.svgicon.icon-set-vertical-flip .icon-set-img {
	transform: scale(1, -1);
}
.icon.svgicon.icon-set-horizontal-vertical-flip .icon-set-img {
	transform: scale(-1, -1);
}

.icon.svgicon.icon-set-custom.icon-set-horizontal-flip .icon-set-img {
	transform: translate(-50%,-50%) scale(-1, 1);
}
.icon.svgicon.icon-set-custom.icon-set-vertical-flip .icon-set-img {
	transform: translate(-50%,-50%) scale(1, -1);
}
.icon.svgicon.icon-set-custom.icon-set-horizontal-vertical-flip .icon-set-img {
	transform: translate(-50%,-50%) scale(-1, -1);
}


.icon.icon-set-rotate-90::before {
	transform: translate(-50%,-50%) rotate(90deg);
}
.icon.icon-set-rotate-180::before {
	transform: translate(-50%,-50%) rotate(180deg);
}
.icon.icon-set-rotate-270::before {
	transform: translate(-50%,-50%) rotate(270deg);
}


.icon.svgicon.icon-set-rotate-90 .icon-set-img {
	transform: rotate(90deg);
}
.icon.svgicon.icon-set-rotate-180 .icon-set-img {
	transform: rotate(180deg);
}
.icon.svgicon.icon-set-rotate-270 .icon-set-img {
	transform: rotate(270deg);
}

.icon.svgicon.icon-set-custom.icon-set-rotate-90 .icon-set-img {
	transform: translate(-50%,-50%) rotate(90deg);
}
.icon.svgicon.icon-set-custom.icon-set-rotate-180 .icon-set-img {
	transform: translate(-50%,-50%) rotate(180deg);
}
.icon.svgicon.icon-set-custom.icon-set-rotate-270 .icon-set-img {
	transform: translate(-50%,-50%) rotate(270deg);
}