*,
*:after,
*::before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

body {
	font-family: 'Raleway', sans-serif;
}

nav a {
	position: relative;
	display: inline-block;
	margin: 15px 25px;
	outline: none;
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 400;
	text-shadow: 0 0 1px rgba(255,255,255,0.3);
	font-size: 1.35em;
}

nav a:hover,
nav a:focus {
	outline: none;
}

/* Effect 1: Brackets */
.cl-effect-1 a::before,
.cl-effect-1 a::after {
	display: inline-block;
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.2s;
	-moz-transition: -moz-transform 0.3s, opacity 0.2s;
	transition: transform 0.3s, opacity 0.2s;
}

.cl-effect-1 a::before {
	margin-right: 10px;
	content: '[';
	-webkit-transform: translateX(20px);
	-moz-transform: translateX(20px);
	transform: translateX(20px);
}

.cl-effect-1 a::after {
	margin-left: 10px;
	content: ']';
	-webkit-transform: translateX(-20px);
	-moz-transform: translateX(-20px);
	transform: translateX(-20px);
}

.cl-effect-1 a:hover::before,
.cl-effect-1 a:hover::after,
.cl-effect-1 a:focus::before,
.cl-effect-1 a:focus::after {
	opacity: 1;
	-webkit-transform: translateX(0px);
	-moz-transform: translateX(0px);
	transform: translateX(0px);
}

/* Effect 2: 3D rolling links, idea from http://hakim.se/thoughts/rolling-links */
.cl-effect-2 a {
	line-height: 44px;
	-webkit-perspective: 1000px;
	-moz-perspective: 1000px;
	perspective: 1000px;
}

.cl-effect-2 a span {
	position: relative;
	display: inline-block;
	padding: 0 14px;
	background: #2195de;
	-webkit-transition: -webkit-transform 0.3s;
	-moz-transition: -moz-transform 0.3s;
	transition: transform 0.3s;
	-webkit-transform-origin: 50% 0;
	-moz-transform-origin: 50% 0;
	transform-origin: 50% 0;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.csstransforms3d .cl-effect-2 a span::before {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 100%;
	background: #0965a0;
	content: attr(data-hover);
	-webkit-transition: background 0.3s;
	-moz-transition: background 0.3s;
	transition: background 0.3s;
	-webkit-transform: rotateX(-90deg);
	-moz-transform: rotateX(-90deg);
	transform: rotateX(-90deg);
	-webkit-transform-origin: 50% 0;
	-moz-transform-origin: 50% 0;
	transform-origin: 50% 0;
}

.cl-effect-2 a:hover span,
.cl-effect-2 a:focus span {
	-webkit-transform: rotateX(90deg) translateY(-22px);
	-moz-transform: rotateX(90deg) translateY(-22px);
	transform: rotateX(90deg) translateY(-22px);
}

.csstransforms3d .cl-effect-2 a:hover span::before,
.csstransforms3d .cl-effect-2 a:focus span::before {
	background: #28a2ee;	
}

/* Effect 3: bottom line slides/fades in */
.cl-effect-3 a {
	padding: 8px 0;
}

.cl-effect-3 a::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 4px;
	background: rgba(0,0,0,0.1);
	content: '';
	opacity: 0;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	-moz-transition: opacity 0.3s, -moz-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
	-webkit-transform: translateY(10px);
	-moz-transform: translateY(10px);
	transform: translateY(10px);
}

.cl-effect-3 a:hover::after,
.cl-effect-3 a:focus::after {
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}

/* Effect 4: bottom border enlarge */
.cl-effect-4 a {
	padding: 0 0 10px;
}

.cl-effect-4 a::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 1px;
	background: #fff;
	content: '';
	opacity: 0;
	-webkit-transition: height 0.3s, opacity 0.3s, -webkit-transform 0.3s;
	-moz-transition: height 0.3s, opacity 0.3s, -moz-transform 0.3s;
	transition: height 0.3s, opacity 0.3s, transform 0.3s;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-4 a:hover::after,
.cl-effect-4 a:focus::after {
	height: 5px;
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}

/* Effect 5: same word slide in */
.cl-effect-5 a {
	overflow: hidden;
	padding: 0 4px;
	height: 1em;
}

.cl-effect-5 a span {
	position: relative;
	display: inline-block;
	-webkit-transition: -webkit-transform 0.3s;
	-moz-transition: -moz-transform 0.3s;
	transition: transform 0.3s;
}

.cl-effect-5 a span::before {
	position: absolute;
	top: 100%;
	content: attr(data-hover);
	font-weight: 700;
	-webkit-transform: translate3d(0,0,0);
	-moz-transform: translate3d(0,0,0);
	transform: translate3d(0,0,0);
}

.cl-effect-5 a:hover span,
.cl-effect-5 a:focus span {
	-webkit-transform: translateY(-100%);
	-moz-transform: translateY(-100%);
	transform: translateY(-100%);
}

/* Effect 5: same word slide in and border bottom */
.cl-effect-6 a {
	margin: 0 10px;
	padding: 10px 20px;
}

.cl-effect-6 a::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: #fff;
	content: '';
	-webkit-transition: top 0.3s;
	-moz-transition: top 0.3s;
	transition: top 0.3s;
}

.cl-effect-6 a::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 2px;
	height: 2px;
	background: #fff;
	content: '';
	-webkit-transition: height 0.3s;
	-moz-transition: height 0.3s;
	transition: height 0.3s;
}

.cl-effect-6 a:hover::before {
	top: 100%;
	opacity: 1;
}

.cl-effect-6 a:hover::after {
	height: 100%;
} 

/* Effect 7: second border slides up */
.cl-effect-7 a {
	padding: 12px 10px 10px;
	color: #566473;
	text-shadow: none;
	font-weight: 700;
}

.cl-effect-7 a::before,
.cl-effect-7 a::after {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 3px;
	background: #566473;
	content: '';
	-webkit-transition: -webkit-transform 0.3s;
	-moz-transition: -moz-transform 0.3s;
	transition: transform 0.3s;
	-webkit-transform: scale(0.85);
	-moz-transform: scale(0.85);
	transform: scale(0.85);
}

.cl-effect-7 a::after {
	opacity: 0;
	-webkit-transition: top 0.3s, opacity 0.3s, -webkit-transform 0.3s;
	-moz-transition: top 0.3s, opacity 0.3s, -moz-transform 0.3s;
	transition: top 0.3s, opacity 0.3s, transform 0.3s;
}

.cl-effect-7 a:hover::before,
.cl-effect-7 a:hover::after,
.cl-effect-7 a:focus::before,
.cl-effect-7 a:focus::after {
	-webkit-transform: scale(1);
	-moz-transform: scale(1);
	transform: scale(1);
}

.cl-effect-7 a:hover::after,
.cl-effect-7 a:focus::after {
	top: 0%;
	opacity: 1;
}

/* Effect 8: border slight translate */
.cl-effect-8 a {
	padding: 10px 20px;
}

.cl-effect-8 a::before,
.cl-effect-8 a::after  {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 3px solid #354856;
	content: '';
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
}

.cl-effect-8 a::after  {
	border-color: #fff;
	opacity: 0;
	-webkit-transform: translateY(-7px) translateX(6px);
	-moz-transform: translateY(-7px) translateX(6px);
	transform: translateY(-7px) translateX(6px);
}

.cl-effect-8 a:hover::before,
.cl-effect-8 a:focus::before {
	opacity: 0;
	-webkit-transform: translateY(5px) translateX(-5px);
	-moz-transform: translateY(5px) translateX(-5px);
	transform: translateY(5px) translateX(-5px);
}

.cl-effect-8 a:hover::after,
.cl-effect-8 a:focus::after  {
	opacity: 1;
	-webkit-transform: translateY(0px) translateX(0px);
	-moz-transform: translateY(0px) translateX(0px);
	transform: translateY(0px) translateX(0px);
}

/* Effect 9: second text and borders */
.cl-effect-9 a {
	margin: 0 20px;
	padding: 18px 20px;
}

.cl-effect-9 a::before,
.cl-effect-9 a::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: #fff;
	content: '';
	opacity: 0.2;
	-webkit-transition: opacity 0.3s, height 0.3s;
	-moz-transition: opacity 0.3s, height 0.3s;
	transition: opacity 0.3s, height 0.3s;
}

.cl-effect-9 a::after {
	top: 100%;
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-9 a span:first-child {
	z-index: 2;
	display: block;
	font-weight: 300;
}

.cl-effect-9 a span:last-child {
	z-index: 1;
	display: block;
	padding: 8px 0 0 0;
	color: rgba(0,0,0,0.4);
	text-shadow: none;
	text-transform: none;
	font-style: italic;
	font-size: 0.75em;
	font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	-webkit-transform: translateY(-100%);
	-moz-transform: translateY(-100%);
	transform: translateY(-100%);
}

.cl-effect-9 a:hover::before,
.cl-effect-9 a:focus::before {
	height: 6px;
}

.cl-effect-9 a:hover::before,
.cl-effect-9 a:hover::after,
.cl-effect-9 a:focus::before,
.cl-effect-9 a:focus::after {
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}

.cl-effect-9 a:hover span:last-child,
.cl-effect-9 a:focus span:last-child {
	opacity: 1;
	-webkit-transform: translateY(0%);
	-moz-transform: translateY(0%);
	transform: translateY(0%);
}

/* Effect 10: reveal, push out */
.cl-effect-10  {
	position: relative;
	z-index: 1;
}

.cl-effect-10 a {
	overflow: hidden;
	margin: 0 15px;
}

.cl-effect-10 a span {
	display: block;
	padding: 10px 20px;
	background: #0f7c67;
	-webkit-transition: -webkit-transform 0.3s;
	-moz-transition: -moz-transform 0.3s;
	transition: transform 0.3s;
}

.cl-effect-10 a::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	padding: 10px 20px;
	width: 100%;
	height: 100%;
	background: #fff;
	color: #0f7c67;
	content: attr(data-hover);
	-webkit-transition: -webkit-transform 0.3s;
	-moz-transition: -moz-transform 0.3s;
	transition: transform 0.3s;
	-webkit-transform: translateX(-25%);
}

.cl-effect-10 a:hover span,
.cl-effect-10 a:focus span {
	-webkit-transform: translateX(100%);
	-moz-transform: translateX(100%);
	transform: translateX(100%);
}

.cl-effect-10 a:hover::before,
.cl-effect-10 a:focus::before {
	-webkit-transform: translateX(0%);
	-moz-transform: translateX(0%);
	transform: translateX(0%);
}

/* Effect 11: text fill based on Lea Verou's animation http://dabblet.com/gist/6046779 */
.cl-effect-11 a {
	padding: 10px 0;
	border-top: 2px solid #0972b4;
	color: #0972b4;
	text-shadow: none;
} 

.cl-effect-11 a::before {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	padding: 10px 0;
	max-width: 0;
	border-bottom: 2px solid #fff;
	color: #fff;
	content: attr(data-hover);
	-webkit-transition: max-width 0.5s;
	-moz-transition: max-width 0.5s;
	transition: max-width 0.5s;
}

.cl-effect-11 a:hover::before,
.cl-effect-11 a:focus::before {
	max-width: 100%;
}

/* Effect 12: circle */
.cl-effect-12 a::before,
.cl-effect-12 a::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100px;
	height: 100px;
	border: 2px solid rgba(0,0,0,0.1);
	border-radius: 50%;
	content: '';
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	-webkit-transform: translateX(-50%) translateY(-50%) scale(0.2);
	-moz-transform: translateX(-50%) translateY(-50%) scale(0.2);
	transform: translateX(-50%) translateY(-50%) scale(0.2);
}

.cl-effect-12 a::after {
	width: 90px;
	height: 90px;
	border-width: 6px;
	-webkit-transform: translateX(-50%) translateY(-50%) scale(0.8);
	-moz-transform: translateX(-50%) translateY(-50%) scale(0.8);
	transform: translateX(-50%) translateY(-50%) scale(0.8);
}

.cl-effect-12 a:hover::before,
.cl-effect-12 a:hover::after,
.cl-effect-12 a:focus::before,
.cl-effect-12 a:focus::after {
	opacity: 1;
	-webkit-transform: translateX(-50%) translateY(-50%) scale(1);
	-moz-transform: translateX(-50%) translateY(-50%) scale(1);
	transform: translateX(-50%) translateY(-50%) scale(1);
}

/* Effect 13: three circles */
.cl-effect-13 a {
	-webkit-transition: color 0.3s;
	-moz-transition: color 0.3s;
	transition: color 0.3s;
}

.cl-effect-13 a::before {
	position: absolute;
	top: 100%;
	left: 50%;
	color: transparent;
	content: '•';
	text-shadow: 0 0 transparent;
	font-size: 1.2em;
	-webkit-transition: text-shadow 0.3s, color 0.3s;
	-moz-transition: text-shadow 0.3s, color 0.3s;
	transition: text-shadow 0.3s, color 0.3s;
	-webkit-transform: translateX(-50%);
	-moz-transform: translateX(-50%);
	transform: translateX(-50%);
	pointer-events: none;
}

.cl-effect-13 a:hover::before,
.cl-effect-13 a:focus::before {
	color: #fff;
	text-shadow: 10px 0 #fff, -10px 0 #fff;
}

.cl-effect-13 a:hover,
.cl-effect-13 a:focus {
	color: #ba7700;
}

/* Effect 14: border switch */
.cl-effect-14 a {
	padding: 0 20px;
	height: 45px;
	line-height: 45px;
}

.cl-effect-14 a::before,
.cl-effect-14 a::after {
	position: absolute;
	width: 45px;
	height: 2px;
	background: #fff;
	content: '';
	opacity: 0.2;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
	pointer-events: none;
}

.cl-effect-14 a::before {
	top: 0;
	left: 0;
	-webkit-transform: rotate(90deg);
	-moz-transform: rotate(90deg);
	transform: rotate(90deg);
	-webkit-transform-origin: 0 0;
	-moz-transform-origin: 0 0;
	transform-origin: 0 0;
}

.cl-effect-14 a::after {
	right: 0;
	bottom: 0;
	-webkit-transform: rotate(90deg);
	-moz-transform: rotate(90deg);
	transform: rotate(90deg);
	-webkit-transform-origin: 100% 0;
	-moz-transform-origin: 100% 0;
	transform-origin: 100% 0;
}

.cl-effect-14 a:hover::before,
.cl-effect-14 a:hover::after,
.cl-effect-14 a:focus::before,
.cl-effect-14 a:focus::after {
	opacity: 1;
}

.cl-effect-14 a:hover::before,
.cl-effect-14 a:focus::before {
	left: 50%;
	-webkit-transform: rotate(0deg) translateX(-50%);
	-moz-transform: rotate(0deg) translateX(-50%);
	transform: rotate(0deg) translateX(-50%);
}

.cl-effect-14 a:hover::after,
.cl-effect-14 a:focus::after {
	right: 50%;
	-webkit-transform: rotate(0deg) translateX(50%);
	-moz-transform: rotate(0deg) translateX(50%);
	transform: rotate(0deg) translateX(50%);
}

/* Effect 15: scale down, reveal */
.cl-effect-15 a {
	color: rgba(0,0,0,0.2);
	font-weight: 700;
	text-shadow: none;
}

.cl-effect-15 a::before {
	color: #fff;
	content: attr(data-hover);
	position: absolute;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
}

.cl-effect-15 a:hover::before,
.cl-effect-15 a:focus::before {
	-webkit-transform: scale(0.9);
	-moz-transform: scale(0.9);
	transform: scale(0.9);
	opacity: 0;
}

/* Effect 16: fall down */
.cl-effect-16 a {
	color: #6f8686;
	text-shadow: 0 0 1px rgba(111,134,134,0.3);
}

.cl-effect-16 a::before {
	color: #fff;
	content: attr(data-hover);
	position: absolute;
	opacity: 0;
	text-shadow: 0 0 1px rgba(255,255,255,0.3);
	-webkit-transform: scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
	-moz-transform: scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
	transform: scale(1.1) translateX(10px) translateY(-10px) rotate(4deg);
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	pointer-events: none;
}

.cl-effect-16 a:hover::before,
.cl-effect-16 a:focus::before {
	-webkit-transform: scale(1) translateX(0px) translateY(0px) rotate(0deg);
	-moz-transform: scale(1) translateX(0px) translateY(0px) rotate(0deg);
	transform: scale(1) translateX(0px) translateY(0px) rotate(0deg);
	opacity: 1;
}

/* Effect 17: move up fade out, push border */
.cl-effect-17 a {
	color: #10649b;
	text-shadow: none;
	padding: 10px 0;
}

.cl-effect-17 a::before {
	color: #fff;
	text-shadow: 0 0 1px rgba(255,255,255,0.3);
	content: attr(data-hover);
	position: absolute;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	pointer-events: none;
}

.cl-effect-17 a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: #fff;
	opacity: 0;
	-webkit-transform: translateY(5px);
	-moz-transform: translateY(5px);
	transform: translateY(5px);
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	pointer-events: none;
}

.cl-effect-17 a:hover::before,
.cl-effect-17 a:focus::before {
	opacity: 0;
	-webkit-transform: translateY(-2px);
	-moz-transform: translateY(-2px);
	transform: translateY(-2px);
}

.cl-effect-17 a:hover::after,
.cl-effect-17 a:focus::after {
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}

/* Effect 18: cross */
.cl-effect-18 {
	position: relative;
	z-index: 1;
}

.cl-effect-18 a {
	padding: 0 5px;
	color: #b4770d;
	font-weight: 700;
	-webkit-transition: color 0.3s;
	-moz-transition: color 0.3s;
	transition: color 0.3s;
}

.cl-effect-18 a::before,
.cl-effect-18 a::after {
	position: absolute;
	width: 100%;
	left: 0;
	top: 50%;
	height: 2px;
	margin-top: -1px;
	background: #b4770d;
	content: '';
	z-index: -1;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
	-moz-transition: -moz-transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	pointer-events: none;
}

.cl-effect-18 a::before {
	-webkit-transform: translateY(-20px);
	-moz-transform: translateY(-20px);
	transform: translateY(-20px);
}

.cl-effect-18 a::after {
	-webkit-transform: translateY(20px);
	-moz-transform: translateY(20px);
	transform: translateY(20px);
}

.cl-effect-18 a:hover,
.cl-effect-18 a:focus {
	color: #fff;
}

.cl-effect-18 a:hover::before,
.cl-effect-18 a:hover::after,
.cl-effect-18 a:focus::before,
.cl-effect-18 a:focus::after {
	opacity: 0.7;
}

.cl-effect-18 a:hover::before,
.cl-effect-18 a:focus::before {
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}

.cl-effect-18 a:hover::after,
.cl-effect-18 a:focus::after {
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
	
}

/* Effect 19: 3D side */
.cl-effect-19 a {
	line-height: 2em;
	margin: 15px;
	-webkit-perspective: 800px;
	-moz-perspective: 800px;
	perspective: 800px;
	color:#ffffff;
	width: 250px;
}

.cl-effect-19 a span {
	color:#ffffff;
	position: relative;
	display: inline-block;
	width: 100%;
	padding: 0 14px;
	background: #fdb92e;
	-webkit-transition: -webkit-transform 0.4s, background 0.4s;
	-moz-transition: -moz-transform 0.4s, background 0.4s;
	transition: transform 0.4s, background 0.4s;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transform-origin: 50% 50% -100px;
	-moz-transform-origin: 50% 50% -100px;
	transform-origin: 50% 50% -100px;
}

.csstransforms3d .cl-effect-19 a span::before {
	position: absolute;
	top: 0;
	left: 100%;
	width: 100%;
	height: 100%;
	background: #c6a410;
	content: attr(data-hover);
	-webkit-transition: background 0.4s;
	-moz-transition: background 0.4s;
	transition: background 0.4s;
	-webkit-transform: rotateY(90deg);
	-moz-transform: rotateY(90deg);
	transform: rotateY(90deg);
	-webkit-transform-origin: 0 50%;
	-moz-transform-origin: 0 50%;
	transform-origin: 0 50%;
	pointer-events: none;
}

.cl-effect-19 a:hover span,
.cl-effect-19 a:focus span {
	background: #c6a410;
	-webkit-transform: rotateY(-90deg);
	-moz-transform: rotateY(-90deg);
	transform: rotateY(-90deg);
}

.csstransforms3d .cl-effect-19 a:hover span::before,
.csstransforms3d .cl-effect-19 a:focus span::before {
	background: #fdb92e;
	color:#ffffff;	
}

/* Effect 20: 3D side */
.cl-effect-20 a {
	line-height: 2em;
	-webkit-perspective: 800px;
	-moz-perspective: 800px;
	perspective: 800px;
}

.cl-effect-20 a span {
	color:#FFFFFF;
	position: relative;
	display: inline-block;
	padding: 2px 15px 0;
	background: #529dd6;
	box-shadow: inset 0 3px #fdb92e;
	-webkit-transition: background 0.6s;
	-moz-transition: background 0.6s;
	transition: background 0.6s;
	-webkit-transform-origin: 50% 0;
	-moz-transform-origin: 50% 0;
	transform-origin: 50% 0;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
	-webkit-transform-origin: 0% 50%;
	-moz-transform-origin: 0% 50%;
	transform-origin: 0% 50%;
}

.cl-effect-20 a span::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	color: #fdb92e;
	padding:2px 15px 0;
	content: attr(data-hover);
	-webkit-transform: rotateX(270deg);
	-moz-transform: rotateX(270deg);
	transform: rotateX(270deg);
	-webkit-transition: -webkit-transform 0.6s;
	-moz-transition: -moz-transform 0.6s;
	transition: transform 0.6s;
	-webkit-transform-origin: 0 0;
	-moz-transform-origin: 0 0;
	transform-origin: 0 0;
	pointer-events: none;
	
}

.cl-effect-20 a:hover span,
.cl-effect-20 a:focus span {
background-color:rgba(245,214,78,0.5);
}

.cl-effect-20 a:hover span::before,
.cl-effect-20 a:focus span::before {
	-webkit-transform: rotateX(10deg);	
	-moz-transform: rotateX(10deg);
	transform: rotateX(10deg);
}

/* Effect 21: borders slight translate */
.cl-effect-21 a {
	padding: 10px;
	color: #237546;
	font-weight: 700;
	text-shadow: none;
	-webkit-transition: color 0.3s;
	-moz-transition: color 0.3s;
	transition: color 0.3s;
}

.cl-effect-21 a::before,
.cl-effect-21 a::after {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: #529dd6;
	content: '';
	opacity: 0;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	-moz-transition: opacity 0.3s, -moz-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-21 a::before {
	top: 0;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-21 a::after {
	bottom: 0;
	-webkit-transform: translateY(10px);
	-moz-transform: translateY(10px);
	transform: translateY(10px);
}

.cl-effect-21 a:hover,
.cl-effect-21 a:focus {
	color: #000;
}

.cl-effect-21 a:hover::before,
.cl-effect-21 a:focus::before,
.cl-effect-21 a:hover::after,
.cl-effect-21 a:focus::after {
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}
/* new self made effect */
.cl-effect-221 a {
	padding: 10px;
	color: #237546;
	font-weight: 700;
	text-shadow: none;
	-webkit-transition: color 0.3s;
	-moz-transition: color 0.3s;
	transition: color 0.3s;
}

.cl-effect-221 a::before,
.cl-effect-221 a::after {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: #FFFFFF;
	content: '';
	opacity: 0;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	-moz-transition: opacity 0.3s, -moz-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-221 a::before {
	top: 0;
	-webkit-transform: translateY(-10px);
	-moz-transform: translateY(-10px);
	transform: translateY(-10px);
}

.cl-effect-221 a::after {
	bottom: 0;
	-webkit-transform: translateY(10px);
	-moz-transform: translateY(10px);
	transform: translateY(10px);
}

.cl-effect-221 a:hover,
.cl-effect-221 a:focus {
	color: #000;
}

.cl-effect-221 a:hover::before,
.cl-effect-221 a:focus::before,
.cl-effect-221 a:hover::after,
.cl-effect-221 a:focus::after {
	opacity: 1;
	-webkit-transform: translateY(0px);
	-moz-transform: translateY(0px);
	transform: translateY(0px);
}
/* Effect 1: YouTube loading */
.la-anim-1 {
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 3px;
	background: #ed4e6e;
	-webkit-transform: translate3d(-100%, 0, 0);
	transform: translate3d(-100%, 0, 0);
	pointer-events: none;
}

.la-anim-1::after {
	position: absolute;
	top: 0;
	right: 0;
	width: 100px;
	height: 100%;
	background: #ed4e6e;
	box-shadow: 0 0 15px #ed4e6e, 0 0 5px #ed4e6e;
	content: '';
	opacity: 0;
	-webkit-transition: opacity 0.2s, box-shadow 2s 4s;
	transition: opacity 0.2s, box-shadow 2s 4s;
	-webkit-transform: rotate(2deg) translateY(-2px);
	transform: rotate(2deg) translateY(-2px);
}

.la-anim-1.la-animate {
	z-index: 100;
	opacity: 0;
	-webkit-transition: -webkit-transform 5s ease-in, opacity 1s 5s;
	transition: transform 5s ease-in, opacity 1s 5s;
	-webkit-transform: translate3d(0%, 0, 0);
	transform: translate3d(0%, 0, 0);
}

.la-anim-1.la-animate::after {
	box-shadow: 0 0 3px #ed4e6e, 0 0 1px #ed4e6e;
	opacity: 1;
}

/* Effect 2: Fill up from left */
.la-anim-2 {
	position: fixed;
	left: -100%;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: rgba(245,214,78,0.3);
	pointer-events: none;
}

.la-anim-2.la-animate {
	z-index: 100;
	opacity: 0;
	-webkit-transition: -webkit-transform 5s ease-in, opacity 1s 5s;
	transition: transform 5s ease-in, opacity 1s 5s;
	-webkit-transform: translate3d(100%,0,0);
	transform: translate3d(100%,0,0);
}

/* Effect 3: Fill up from down */
.la-anim-3 {
	position: fixed;
	top: 100%;
	z-index: 100;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.1);
	pointer-events: none;
}

.la-anim-3.la-animate {
	z-index: 100;
	opacity: 0;
	-webkit-transition: -webkit-transform 5s ease-in, opacity 1s 5s;
	transition: transform 5s ease-in, opacity 1s 5s;
	-webkit-transform: translate3d(0,-100%,0);
	transform: translate3d(0,-100%,0);
}

/* Effect 4: Expanding box */
.la-anim-4 {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.1);
	-webkit-transform: translateX(-50%) translateY(-50%) scale(0);
	transform: translateX(-50%) translateY(-50%) scale(0);
	-webkit-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
	pointer-events: none;
}

.la-anim-4.la-animate {
	z-index: 100;
	opacity: 0;
	-webkit-transition: -webkit-transform 5s ease-in, opacity 1s 5s;
	transition: transform 5s ease-in, opacity 1s 5s;
	-webkit-transform: translateX(-50%) translateY(-50%) scale(1);
	transform: translateX(-50%) translateY(-50%) scale(1);
}

/* Effect 5: 3d bar bottom */
.la-anim-5 {
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 12px;
	background: #ed4e6e;
	-webkit-transform: translate3d(-103%, 0, 0);
	transform: translate3d(-103%, 0, 0);
	pointer-events: none;
}

.la-anim-5::before,
.la-anim-5::after {
	position: absolute;
	content: '';
}

.la-anim-5::before {
	bottom: 100%;
	left: -10%;
	width: 110%;
	height: 6px;
	background: #fb738f;
	-webkit-transform: skew(-45deg);
	transform: skew(-45deg);
	-webkit-transform-origin: 0 100%;
	transform-origin: 0 100%;
}

.la-anim-5::after {
	top: 0;
	left: 100%;
	width: 6px;
	height: 100%;
	background: #d23d5b;
	-webkit-transform: skew(0,-45deg);
	transform: skew(0,-45deg);
	-webkit-transform-origin: 0 0;
	transform-origin: 0 0;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.la-anim-5.la-animate {
	bottom: -20px;
	z-index: 100;
	-webkit-transition: -webkit-transform 5s ease-in, bottom 0.3s 5.7s;
	transition: transform 5s ease-in, bottom 0.3s 5.7s;
	-webkit-transform: translate3d(0%, 0, 0);
	transform: translate3d(0%, 0, 0);
}

/* Effect 6: Pie Timer from Anders Grimsrud http://codepen.io/agrimsrud/pen/EmCoa */
.la-anim-6 svg {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: -1;
	display: block;
	width: 500px;
	height: 500px;
	-webkit-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
	pointer-events: none;
}

.la-anim-6.la-animate svg {
	z-index: 100;
}

#la-anim-6-loader { 
	fill: #fff; 
	fill-opacity: 0.05; 
}

#la-anim-6-border { 
	fill: #000; 
	fill-opacity: 0.05;
}

/* Effect 7: Centered expanding line */
.la-anim-7 {
	position: fixed;
	top: 50%;
	bottom: 0;
	left: 50%;
	z-index: -1;
	width: 0;
	height: 100%;
	background: rgba(0,0,0,0.1);
	-webkit-transform: translateX(-50%) translateY(-50%);
	transform: translateX(-50%) translateY(-50%);
	pointer-events: none;
}

.la-anim-7.la-animate {
	z-index: 100;
	width: 100%;
	opacity: 0;
	-webkit-transition: width 5s ease-in, opacity 1s 5s;
	transition: width 5s ease-in, opacity 1s 5s;
}

/* Effect 8: Fill sides */
.la-anim-8 div {
	position: fixed;
	bottom: 0;
	z-index: -1;
	width: 50px;
	height: 100%;
	background: rgba(0,0,0,0.1);
	-webkit-transition: -webkit-transform 5s ease-in, opacity 1s 5s;
	transition: transform 5s ease-in, opacity 1s 5s;
	-webkit-transform: translate3d(0, 100%, 0);
	transform: translate3d(0, 100%, 0);
	pointer-events: none;
}

.la-anim-8 div:first-child {
	right: 0;
}

.la-anim-8.la-animate div {
	z-index: 100;
	opacity: 0;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

/* Effect 9: Surrounding borders */
.la-anim-9 {
	position: fixed;
	z-index: -1;
	width: 100%;
	height: 100%;
	border: 0px solid rgba(0,0,0,0.1);
	pointer-events: none;
}

.la-anim-9 div {
	position: fixed;
	background: #2c3e52;
}

.la-anim-9 div:first-child,
.la-anim-9 div:nth-child(3) {
	width: 0;
	height: 50px;
}

.la-anim-9 div:nth-child(2),
.la-anim-9 div:nth-child(4) {
	width: 50px;
	height: 0;
} 

.la-anim-9 div:first-child {
	top: 0;
	left: 0;
}

.la-anim-9.la-animate div:first-child {
	width: 100%;
	-webkit-transition: width 1.35s linear 0.3s;
	transition: width 1.35s linear 0.3s;
}

.la-anim-9 div:nth-child(2) {
	top: 0;
	right: 0;
}

.la-anim-9.la-animate div:nth-child(2) {
	height: 100%;
	-webkit-transition: height 1.35s linear 1.65s;
	transition: height 1.35s linear 1.65s;
}

.la-anim-9 div:nth-child(3) {
	right: 0;
	bottom: 0;
}

.la-anim-9.la-animate div:nth-child(3) {
	width: 100%;
	-webkit-transition: width 1.35s linear 3s;
	transition: width 1.35s linear 3s;
}

.la-anim-9 div:nth-child(4) {
	bottom: 0;
	left: 0;
}

.la-anim-9.la-animate div:nth-child(4) {
	height: 100%;
	-webkit-transition: height 1.35s linear 4.35s;
	transition: height 1.35s linear 4.35s;
}

.la-anim-9.la-animate {
	z-index: 100;
	border: 50px solid rgba(0,0,0,0.1);
	opacity: 0;
	-webkit-transition: border 0.3s, opacity 0.3s 5.7s;
	transition: border 0.3s, opacity 0.3s 5.7s;
}

/* Effect 10: Corner indicator */
.la-anim-10 {
	position: fixed;
	top: 0;
	right: 0;
	width: 300px;
	height: 300px;
	background: #ed4e6e;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
	-webkit-transform: translateX(100%) translateY(-100%) rotate(45deg);
	transform: translateX(100%) translateY(-100%) rotate(45deg);
	pointer-events: none;
}

.la-anim-10.la-animate {
	-webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);
	transform: translateX(50%) translateY(-50%) rotate(45deg);
}

/* Loading circle idea from http://codepen.io/Metty/details/lgJck */
.la-anim-10::before,
.la-anim-10::after {
	position: absolute;
	bottom: 30px;
	left: 50%;
	display: block;
	border: 5px solid #fff;
	border-radius: 50%;
	content: '';
}

.la-anim-10::before {
	margin-left: -40px;
	width: 80px;
	height: 80px;
	border-right-color: #bb344f;
	border-left-color: #bb344f;
	-webkit-animation: rotation 3s linear infinite;
	animation: rotation 3s linear infinite;
}

.la-anim-10::after {
	bottom: 50px;
	margin-left: -20px;
	width: 40px;
	height: 40px;
	border-top-color: #bb344f;
	border-bottom-color: #bb344f;
	-webkit-animation: rotation 1s linear infinite;
	animation: rotation 1s linear infinite;
}


@-webkit-keyframes rotation {
	0% 		{ -webkit-transform: rotate(0deg); }
	50% 	{ -webkit-transform: rotate(180deg); }
	100% 	{ -webkit-transform: rotate(360deg); }
}

@keyframes rotation {
	0% 		{ transform: rotate(0deg); }
	50% 	{ transform: rotate(180deg); }
	100% 	{ transform: rotate(360deg); }
}

/* Effect 11: Big counter */

.la-anim-11 {
	position: fixed;
	right: 20px;
	z-index: -1;
	display: inline-block;
	visibility: hidden;
	overflow: hidden;
	height: 1em;
	text-align: right;
	font-weight: 300;
	font-size: 10em;
	line-height: 1em;
	pointer-events: none;
}

.la-anim-11.la-animate {
	visibility: visible;
}

.la-anim-11::after {
	position: relative;
	width: 100%;
	color: rgba(0,0,0,0.1);
	content: "0%\A 10%\A 22%\A 36%\A 48%\A 53%\A 64%\A 71%\A 83%\A 100%\A";
	white-space: pre;
}

.la-anim-11.la-animate::after {
	-webkit-animation: counter 6s steps(10);
	animation: counter 6s steps(10);
}

@keyframes counter { 
	0% { top: 0; } 
	100% { top: -10em; opacity: 0;} 
}
@-webkit-keyframes counter {
	0% { top: 0; } 
	100% { top: -10em; opacity: 0;} 
}

/* Effect 12: Letter fill */
.la-anim-12 {
	position: relative;
	width: 11em;
	color: rgba(255,255,255,0.6);
}

.la-anim-12::before {
	position: absolute;
	overflow: hidden;
	width: 0;
	color: #fff;
	content: attr(data-content);
	text-align: left;
	white-space: nowrap;
}

.la-anim-12.la-animate::before {
	width: 100%;
	opacity: 0;
	-webkit-transition: width 5.7s linear, opacity 0.3s 5.7s;
	transition: width 5.7s linear, opacity 0.3s 5.7s;
}

/* Effect 13: Flat bar top */
.la-anim-13 {
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 50px;
	background: rgba(0,0,0,0.1);
	pointer-events: none;
	-webkit-transform: translate3d(0, -100%, 0);
	transform: translate3d(0, -100%, 0);
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

.la-anim-13::before {
	position: absolute;
	content: '';
	height: 100%;
	width: 100%;
	background: #ed4e6e;
	opacity: 0;
	-webkit-transform: translate3d(-100%, 0, 0);
	transform: translate3d(-100%, 0, 0);
	-webkit-transition: opacity 0.3s, -webkit-transform 0s 0.3s;
	transition: opacity 0.3s, transform 0s 0.3s;
}

.la-anim-13.la-animate::before {
	opacity: 1;
	-webkit-transition: -webkit-transform 5.4s linear 0.3s;
	transition: transform 5.4s linear 0.3s;
}

.la-anim-13.la-animate,
.la-anim-13.la-animate::before {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}
*, *:after, *::before {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

@font-face {
	font-weight: normal;
	font-style: normal;
	font-family: 'icomoon';
	src:url('../fonts/icomoon/icomoon.eot');
	src:url('../fonts/icomoon/icomoon.eot?#iefix') format('embedded-opentype'),
		url('../fonts/icomoon/icomoon.ttf') format('truetype'),
		url('../fonts/icomoon/icomoon.woff') format('woff'),
		url('../fonts/icomoon/icomoon.svg#icomoon') format('svg');
}

/* General styles for all types of buttons */
.progress-button {
	position: relative;
	display: inline-block;
	padding: 0 60px;
	outline: none;
	border: none;
	background: #1d9650;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 1em;
	line-height: 4;
}

.progress-button[disabled],
.progress-button[disabled].state-loading {
	cursor: default;
}

.progress-button .content {
	position: relative;
	display: block;
}

.progress-button .content::before,
.progress-button .content::after  {
	position: absolute;
	right: 20px;
	color: #0e7138;
	font-family: "icomoon";
	opacity: 0;
	-webkit-transition: opacity 0.3s 0.3s;
	transition: opacity 0.3s 0.3s;
}

.progress-button .content::before {
	content: "\e600"; /* Checkmark for success */
}

.progress-button .content::after {
	content: "\e601"; /* Cross for error */
}

.progress-button.state-success .content::before,
.progress-button.state-error .content::after {
	opacity: 1;
}

.notransition {
	-webkit-transition: none !important;
	transition: none !important;
}

.progress-button .progress {
	background: #148544;
}

.progress-button .progress-inner {
	position: absolute;
	left: 0;
	background: #0e7138;
}

.progress-button[data-horizontal] .progress-inner {
	top: 0;
	width: 0;
	height: 100%;
	-webkit-transition: width 0.3s, opacity 0.3s;
	transition: width 0.3s, opacity 0.3s;
}

.progress-button[data-vertical] .progress-inner {
	bottom: 0;
	width: 100%;
	height: 0;
	-webkit-transition: height 0.3s, opacity 0.3s;
	transition: height 0.3s, opacity 0.3s;
}

/* Necessary 3d styles for buttons with perspective */

.progress-button[data-perspective] {
	position: relative;
	display: inline-block;
	padding: 0;
	background: transparent;
	-webkit-perspective: 900px;
	perspective: 900px;
}

.progress-button[data-perspective] .content {
	padding: 0 60px;
	background: #1d9650;
}

.progress-button[data-perspective] .progress-wrap {
	display: block;
	-webkit-transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
	-webkit-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.progress-button[data-perspective] .content,
.progress-button[data-perspective] .progress {
	outline: 1px solid rgba(0,0,0,0); /* Smoothen jagged edges in FF */
}

/* Individual styles */
/* Choose the effect(s) you want, delete the rest */

/* Fill horizontal */
/* ====================== */

.progress-button[data-style="fill"][data-horizontal] {
	overflow: hidden;
}

.progress-button[data-style="fill"][data-horizontal] .content {
	z-index: 10;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

.progress-button[data-style="fill"][data-horizontal] .content::before,
.progress-button[data-style="fill"][data-horizontal] .content::after {
	top: 100%;
	right: auto;
	left: 50%;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.progress-button[data-style="fill"][data-horizontal].state-success .content,
.progress-button[data-style="fill"][data-horizontal].state-error .content {
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}

/* Fill vertical */
/* ====================== */

.progress-button[data-style="fill"][data-vertical] {
	overflow: hidden;
}

.progress-button[data-style="fill"][data-vertical] .content {
	z-index: 10;
	-webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

.progress-button[data-style="fill"][data-vertical] .content::before,
.progress-button[data-style="fill"][data-vertical] .content::after {
	top: 100%;
	right: auto;
	left: 50%;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.progress-button[data-style="fill"][data-vertical].state-success .content,
.progress-button[data-style="fill"][data-vertical].state-error .content {
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}

/* Shrink horizontal */
/* ====================== */

.progress-button[data-style="shrink"] { /* common for horizontal and vertical */
	overflow: hidden;
	-webkit-transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
}

.progress-button[data-style="shrink"][data-horizontal] .content {
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
}

.progress-button[data-style="shrink"][data-horizontal] .content::before,
.progress-button[data-style="shrink"][data-horizontal] .content::after {
	top: 100%;
	right: auto;
	left: 50%;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.progress-button[data-style="shrink"][data-horizontal].state-loading {
	-webkit-transform: scaleY(0.3);
	transform: scaleY(0.3);
}

.progress-button[data-style="shrink"][data-horizontal].state-loading .content {
	opacity: 0;
}

.progress-button[data-style="shrink"][data-horizontal].state-success .content,
.progress-button[data-style="shrink"][data-horizontal].state-error .content {
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}

/* Shrink vertical */
/* ====================== */

.progress-button[data-style="shrink"][data-vertical] .content {
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, transform 0.3s;
}

.progress-button[data-style="shrink"][data-vertical] .content::before,
.progress-button[data-style="shrink"][data-vertical] .content::after {
	top: 100%;
	right: auto;
	left: 50%;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.progress-button[data-style="shrink"][data-vertical].state-loading {
	-webkit-transform: scaleX(0.1);
	transform: scaleX(0.1);
}

.progress-button[data-style="shrink"][data-vertical].state-loading .content {
	opacity: 0;
}

.progress-button[data-style="shrink"][data-vertical].state-success .content,
.progress-button[data-style="shrink"][data-vertical].state-error .content {
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}

/* Rotate bottom 3d */
/* ====================== */

.progress-button[data-style="rotate-angle-bottom"] .progress {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 20px;
	box-shadow: 0 -1px 0 #148544; /* fix the blurriness that causes a gap */
	-webkit-transform: rotateX(-90deg);
	transform: rotateX(-90deg);
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
}

.progress-button[data-style="rotate-angle-bottom"].state-loading .progress-wrap {
	-webkit-transform: rotateX(45deg);
	transform: rotateX(45deg);
}

/* Rotate top 3d */
/* ====================== */

.progress-button[data-style="rotate-angle-top"] .progress {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: 20px;
	box-shadow: 0 1px 0 #148544; /* fix the blurriness that causes a gap */
	-webkit-transform: rotateX(90deg);
	transform: rotateX(90deg);
	-webkit-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
}

.progress-button[data-style="rotate-angle-top"].state-loading .progress-wrap {
	-webkit-transform: rotateX(-45deg);
	transform: rotateX(-45deg);
}

/* Rotate left 3d */
/* ====================== */

.progress-button[data-style="rotate-angle-left"] .progress {
	position: absolute;
	top: 0;
	right: 100%;
	width: 20px;
	height: 100%;
	box-shadow: 1px 0 0 #148544; /* fix the blurriness that causes a gap */
	-webkit-transform: rotateY(-90deg);
	transform: rotateY(-90deg);
	-webkit-transform-origin: 100% 50%;
	transform-origin: 100% 50%;
}

.progress-button[data-style="rotate-angle-left"].state-loading .progress-wrap {
	-webkit-transform: rotateY(45deg);
	transform: rotateY(45deg);
}

/* Rotate right 3d */
/* ====================== */

.progress-button[data-style="rotate-angle-right"] .progress {
	position: absolute;
	top: 0;
	left: 100%;
	width: 20px;
	height: 100%;
	box-shadow: -1px 0 0 #148544; /* fix the blurriness that causes a gap */
	-webkit-transform: rotateY(90deg);
	transform: rotateY(90deg);
	-webkit-transform-origin: 0% 50%;
	transform-origin: 0% 50%;
}

.progress-button[data-style="rotate-angle-right"].state-loading .progress-wrap {
	-webkit-transform: rotateY(-45deg);
	transform: rotateY(-45deg);
}

/* Rotate side down 3d */
/* ====================== */

.progress-button[data-style="rotate-side-down"] .progress {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 20px;
	-webkit-transform: rotateX(-90deg);
	transform: rotateX(-90deg);
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="rotate-side-down"].state-loading .progress-wrap {
	-webkit-transform: rotateX(90deg) translateZ(10px);
	transform: rotateX(90deg) translateZ(10px);
}

/* Rotate side up 3d */
/* ====================== */

.progress-button[data-style="rotate-side-up"] .progress {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	height: 20px;
	-webkit-transform: rotateX(90deg);
	transform: rotateX(90deg);
	-webkit-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="rotate-side-up"].state-loading .progress-wrap {
	-webkit-transform: rotateX(-90deg) translateZ(10px);
	transform: rotateX(-90deg) translateZ(10px);
}

/* Rotate side left 3d */
/* ====================== */

.progress-button[data-style="rotate-side-left"] .progress-wrap {
	-webkit-transform-origin: 0 50%;
	transform-origin: 0 50%;
}

.progress-button[data-style="rotate-side-left"] .progress {
	position: absolute;
	top: 0;
	left: 0;
	width: 20px;
	height: 100%;
	-webkit-transform: rotateY(90deg);
	transform: rotateY(90deg);
	-webkit-transform-origin: 0 50%;
	transform-origin: 0 50%;
}

.progress-button[data-style="rotate-side-left"].state-loading .progress-wrap {
	-webkit-transform: translateX(50%) rotateY(90deg) translateZ(10px);
	transform: translateX(50%) rotateY(90deg) translateZ(10px);
}

/* Rotate side right 3d */
/* ====================== */

.progress-button[data-style="rotate-side-right"] .progress-wrap {
	-webkit-transform-origin: 100% 50%;
	transform-origin: 100% 50%;
}

.progress-button[data-style="rotate-side-right"] .progress {
	position: absolute;
	top: 0;
	left: 100%;
	width: 20px;
	height: 100%;
	-webkit-transform: rotateY(90deg);
	transform: rotateY(90deg);
	-webkit-transform-origin: 0 50%;
	transform-origin: 0 50%;
}

.progress-button[data-style="rotate-side-right"].state-loading .progress-wrap {
	-webkit-transform: translateX(-50%) rotateY(-90deg) translateZ(10px);
	transform: translateX(-50%) rotateY(-90deg) translateZ(10px);
}

/* Rotate back 3d */
/* ====================== */

.progress-button[data-style="rotate-back"] .progress-wrap {
	-webkit-transition-timing-function: ease-out;
	transition-timing-function: ease-out;
}

.progress-button[data-style="rotate-back"] .content {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="rotate-back"] .progress {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transform: rotateX(-180deg);
	transform: rotateX(-180deg);
	-webkit-transform-origin: 50% 0%;
	transform-origin: 50% 0%;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="rotate-back"].state-loading .progress-wrap {
	-webkit-transform: rotateX(180deg) scaleX(0.6) scaleY(0.3);
	transform: rotateX(180deg) scaleX(0.6) scaleY(0.3);
}

/* flip open 3d */
/* ====================== */

.progress-button[data-style="flip-open"] .content  {
	z-index: 10;
	-webkit-transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
	-webkit-transform-origin: 50% 0;
	transform-origin: 50% 0;
}

.progress-button[data-style="flip-open"] .progress {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.progress-button[data-style="flip-open"].state-loading .content {
	-webkit-transform: rotateX(45deg);
	transform: rotateX(45deg);
}

/* slide down */
/* ====================== */

.progress-button[data-style="slide-down"] {
	padding: 0;
	overflow: visible;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="slide-down"] .content {
	z-index: 10;
	padding: 0 60px;
	background: #1d9650;
}

.progress-button[data-style="slide-down"] .progress {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
}

.progress-button[data-style="slide-down"].state-loading .progress {
	-webkit-transform: translateY(10px);
	transform: translateY(10px);
}

/* move-up */
/* ====================== */

.progress-button[data-style="move-up"] {
	padding: 0;
	overflow: visible;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.progress-button[data-style="move-up"] .content {
	z-index: 10;
	padding: 0 60px;
	background: #1d9650;
	-webkit-transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
}

.progress-button[data-style="move-up"] .progress {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.progress-button[data-style="move-up"].state-loading .content {
	-webkit-transform: translateY(-10px);
	transform: translateY(-10px);
}

/* top-line */
/* ====================== */

.progress-button[data-style="top-line"] .progress-inner {
	height: 3px;
}

.progress-button[data-style="top-line"] .content::before,
.progress-button[data-style="top-line"] .content::after {
	right: auto;
	left: 100%;
	margin-left: 25px;
}

/* lateral-lines */
/* ====================== */

.progress-button[data-style="lateral-lines"] .progress-inner {
	width: 100%;
	border-right: 3px solid #0e7138;
	border-left: 3px solid #0e7138;
	background: transparent;
}

.progress-button[data-style="lateral-lines"] .content::before,
.progress-button[data-style="lateral-lines"] .content::after {
	right: auto;
	left: 100%;
	margin-left: 25px;
}