.btn_cms {
  height: 40px;
  padding: 5px 25px;
  border: 2px solid #000;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
  display: inline-block;
  font-size:14px;
}

.btn_default {
	border: 1px solid #303030;
	padding: 10px 20px 10px 20px !important;
	border-radius: 5px;
}
.btn_default:hover {
	background-color: #303030;
	color: #fff !important;
}

.btn_circle {
	background: none;
	border: 0;
	box-sizing: border-box !important;
	margin: 1em;
	padding: 35px 2em !important;
	box-shadow: inset 0 0 0 2px #f45e61 !important;
	color: #f45e61;
	font-size: inherit;
	font-weight: 700;
	position: relative;
	vertical-align: middle;
	width: 100px;
	height: 100px;
	border-radius: 100%;
	box-shadow: none;
}
.btn_circle:hover {
	color: #0eb7da;
}
.btn_circle::before, .btn_circle::after {
	box-sizing: inherit;
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;

	top: 0;
	left: 0;
}
.btn_circle::before {
	border: 2px solid transparent;
	border-radius: 100%;
}
.btn_circle:hover::before {
	border-top-color: #0eb7da;
	border-right-color: #0eb7da;
	border-bottom-color: #0eb7da;
	transition: border-top-color 0.15s linear, border-right-color 0.15s linear 0.1s, border-bottom-color 0.15s linear 0.2s;
}
.btn_circle::after {
	border: 0 solid transparent;
	border-radius: 100%;
}
.btn_circle:hover::after {
	border-top: 2px solid #0eb7da;
	border-left-width: 2px;
	border-right-width: 2px;
	-webkit-transform: rotate(270deg);
	transform: rotate(270deg);
	transition: border-left-width 0s linear 0.35s, -webkit-transform 0.4s linear 0s;
	transition: transform 0.4s linear 0s, border-left-width 0s linear 0.35s;
	transition: transform 0.4s linear 0s, border-left-width 0s linear 0.35s, -webkit-transform 0.4s linear 0s;
}

.btn_pan {
	border: 2px solid #000;
	border-radius: 3rem;
	overflow: hidden;
	color: #fff;
}
.btn_pan::before,
.btn_pan::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_pan span {
	position: relative;
	mix-blend-mode: difference;
}
.btn_pan::before {
	content: '';
	background: #000;
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}
.btn_pan:hover {
	color:#111;
}
.btn_pan:hover::before {
	transform: translate3d(0,-100%,0);
}


.btn_hyperion {
	border: 1px solid #000;
	overflow: hidden;
	color: #fff;
}
.btn_hyperion::before,
.btn_hyperion::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_hyperion span {
	display: block;
	position: relative;
}
.btn_hyperion > span {
	overflow: hidden;
}
.btn_hyperion > span > span {
	overflow: hidden;
	mix-blend-mode: difference;
}
.btn_hyperion:hover > span > span {
	animation: MoveUpInitial 0.2s forwards, MoveUpEnd 0.2s forwards 0.2s;
	color:#111;
}
@keyframes MoveUpInitial {
	to {
		transform: translate3d(0,-105%,0);
	}
}
@keyframes MoveUpEnd {
	from {
		transform: translate3d(0,100%,0);
	}
	to {
		transform: translate3d(0,0,0);
	}
}
.btn_hyperion::before {
	content: '';
	background: #000;
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
	transform-origin: 100% 50%;
}
.btn_hyperion:hover::before {
	transform: scale3d(0,1,1);
	transform-origin: 0% 50%;
}

.btn_mimas {
	border-radius: 0.5rem;
	overflow: hidden;
	color: #fff;
	background: #e7e7e7;
}
.btn_mimas::before,
.btn_mimas::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_mimas span {
	position: relative;
	mix-blend-mode: difference;
}
.btn_mimas::before {
	content: '';
	background: #000;
	width: 120%;
	left: -10%;
	transform: skew(30deg);
	transition: transform 0.4s cubic-bezier(0.3, 1, 0.8, 1);
}
.btn_mimas:hover::before {
	transform: translate3d(100%,0,0);
}

.btn_calypso {
	overflow: hidden;
	border-radius: 0.85rem;
	color: #111;
}
.btn_calypso::before,
.btn_calypso::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_calypso span {
	display: block;
	position: relative;
	mix-blend-mode: difference;
	z-index: 10;
}
.btn_calypso:hover span {
	animation: MoveScaleUpInitial 0.3s forwards, MoveScaleUpEnd 0.3s forwards 0.3s;
	color: #fff;
}
@keyframes MoveScaleUpInitial {
	to {
		transform: translate3d(0,-105%,0) scale3d(1,2,1);
		opacity: 0;
	}
}
@keyframes MoveScaleUpEnd {
	from {
		transform: translate3d(0,100%,0) scale3d(1,2,1);
		opacity: 0;
	}
	to {
		transform: translate3d(0,0,0);
		opacity: 1;
	}
}
.btn_calypso::before {
	content: '';
	background: #000;
	width: 120%;
	height: 0;
	padding-bottom: 120%;
	top: -110%;
	left: -10%;
	border-radius: 50%;
	transform: translate3d(0,68%,0) scale3d(0,0,0);
}
.btn_calypso:hover::before {
	transform: translate3d(0,0,0) scale3d(1,1,1);
	transition: transform 0.4s cubic-bezier(0.1, 0, 0.3, 1);
}
.btn_calypso::after {
	content: '';
	background: #000;
	transform: translate3d(0,-100%,0);
	transition: transform 0.4s cubic-bezier(0.1, 0, 0.3, 1);
}
.btn_calypso:hover::after {
	transform: translate3d(0,0,0);
	transition-duration: 0.05s;
	transition-delay: 0.4s;
	transition-timing-function: linear;
}

.btn_greip {
	overflow: hidden;
	color: #fff;
}
.btn_greip::before,
.btn_greip::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_greip span {
	display: block;
	position: relative;
}
.btn_greip > span {
	overflow: hidden;
	mix-blend-mode: difference;
}
.btn_greip:hover > span > span {
	animation: MoveUpInitial 0.2s forwards, MoveUpEnd 0.2s forwards 0.2s;
	color:#111;
}
.btn_greip::before {
	content: '';
	background: #000;
	width: 100%;
	height: 100%;
	transform-origin: 50% 100%;
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	transition: clip-path 0.2s, -webkit-clip-path 0.2s;
	transition-timing-function: cubic-bezier(0.7, 0, 0.2, 1);
}
.btn_greip:hover::before {
	transition-duration: 0.3s;
	-webkit-clip-path: polygon(0 0, 100% 0, 0 0, 0% 100%);
	clip-path: polygon(0 0, 100% 0, 0 0, 0% 100%);
}

.btn_telesto {
	overflow: hidden;
}
.btn_telesto::before,
.btn_telesto::after {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.btn_telesto span {
	display: block;
	position: relative;
	z-index: 1;
}
.btn_telesto > span {
	overflow: hidden;
	mix-blend-mode: difference;
}
.btn_telesto:hover > span > span {
	animation: MoveRightInitial 0.1s forwards, MoveRightEnd 0.3s forwards 0.2s;
	color:#fff;
}
@keyframes MoveRightInitial {
	to {
		transform: translate3d(105%,0,0);
	}
}
@keyframes MoveRightEnd {
	from {
		transform: translate3d(-100%,0,0);
	}
	to {
		transform: translate3d(0,0,0);
	}
}
.btn_telesto::before,
.btn_telesto::after {
	content: '';
	background: #000;
}
.btn_telesto::before {
	width: 135%;
	-webkit-clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 0% 0%);
	clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 0% 0%);
	transform: translate3d(-100%,0,0);
}
.btn_telesto:hover::before {
	transform: translate3d(0,0,0);
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}
.btn_telesto::after {
	width: 105%;
	transform: translate3d(100%,0,0);
	transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}
.btn_telesto:hover::after {
	transform: translate3d(0,0,0);
	transition: transform 0.01s 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.btn_atbl {
	background: #000;
	color: #fff;
	border: none;
}
.btn_atbl:hover {
	background: transparent;
	color: #000;
	box-shadow:
	-7px -7px 20px 0px #fff9,
	-4px -4px 5px 0px #fff9,
	7px 7px 20px 0px #0002,
	4px 4px 5px 0px #0001;
}
.btn_atbl:before,
.btn_atbl:after{
	content:'';
	position:absolute;
	top:0;
	right:0;
	height:2px;
	width:0;
	background: #000;
	transition:400ms ease all;
}
.btn_atbl:after{
	right:inherit;
	top:inherit;
	left:0;
	bottom:0;
}
.btn_atbl:hover:before,
.btn_atbl:hover:after{
	width:100%;
	transition:800ms ease all;
}

.btn_aboxl {
	background: #000;
	color: #fff;
	line-height: 40px;
	padding: 0;
	border: none;
}
.btn_aboxl span {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0 20px 0 20px;
}
.btn_aboxl:before,
.btn_aboxl:after {
	position: absolute;
	content: "";
	height: 0%;
	width: 1px;
	background: #000;
}
.btn_aboxl:before {
	right: 0;
	top: 0;
	transition: all 500ms ease;
}
.btn_aboxl:after {
	left: 0;
	bottom: 0;
	transition: all 500ms ease;
}
.btn_aboxl:hover{
	color: #000;
	background: transparent;
}
.btn_aboxl:hover:before {
	transition: all 500ms ease;
	height: 100%;
}
.btn_aboxl:hover:after {
	transition: all 500ms ease;
	height: 100%;
}
.btn_aboxl span:before,
.btn_aboxl span:after {
	position: absolute;
	content: "";
	background: #000;
}
.btn_aboxl span:before {
	left: 0;
	top: 0;
	width: 0%;
	height: 1px;
	transition: all 500ms ease;
}
.btn_aboxl span:after {
	right: 0;
	bottom: 0;
	width: 0%;
	height: 1px;
	transition: all 500ms ease;
}
.btn_aboxl span:hover:before {
	width: 100%;
}
.btn_aboxl span:hover:after {
	width: 100%;
}

.btn_open {
	background: #000;
	color: #fff;
	border: none;
	z-index: 1;
	-webkit-transition: all 0.3s linear;
	transition: all 0.3s linear;
}
.btn_open:hover {
	background: transparent;
	color: #000;
}
.btn_open:before,
.btn_open:after {
	position: absolute;
	content: "";
	left: 0;
	width: 100%;
	height: 50%;
	right: 0;
	z-index: -1;
	background: #000;
	transition: all 0.3s ease;
}
.btn_open:before {
	top: 0;
}
.btn_open:after {
	bottom: 0;
}
.btn_open:hover:before,
.btn_open:hover:after {
	height: 0;
	background-color: #000;
}
.btn_open:hover {
	background-color: #eee;
}

.btn_slidedown {
   background: #000;
  color: #fff;
  z-index: 1;
}
.btn_slidedown:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
   background: #e0e5ec;
  transition: all 0.3s ease;
}
.btn_slidedown:hover {
  color: #000;
}
.btn_slidedown:hover:after {
  top: 0;
  height: 100%;
}
.btn_slidedown:active {
  top: 2px;
}

.btn_slideup {
   background: #000;
  color: #fff;
  z-index: 1;
}
.btn_slideup:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 0;
  top: 0;
  left: 0;
  z-index: -1;
  background: #e0e5ec;
  transition: all 0.3s ease;
}
.btn_slideup:hover {
  color: #000;
}
.btn_slideup:hover:after {
  top: auto;
  bottom: 0;
  height: 100%;
}
.btn_slideup:active {
  top: 2px;
}

.btn_slideright {
   background: #000;
  color: #fff;
  z-index: 1;
}
.btn_slideright:after {
  position: absolute;
  content: "";
  width: 0;
  height: 100%;
  top: 0;
  right: 0;
  z-index: -1;
   background: #e0e5ec;
  transition: all 0.3s ease;
}
.btn_slideright:hover {
  color: #000;
}
.btn_slideright:hover:after {
  left: 0;
  width: 100%;
}
.btn_slideright:active {
  top: 2px;
}

.btn_slideleft {
  color: #111;
  z-index: 1;
}
.btn_slideleft:after {
  position: absolute;
  content: "";
  width: 0;
  height: 100%;
  top: 0;
  left: 0;
  direction: rtl;
  z-index: -1;
  background: #111;
  transition: all 0.3s ease;
}
.btn_slideleft:hover {
  color: #fff;
}
.btn_slideleft:hover:after {
  left: auto;
  right: 0;
  width: 100%;
}
.btn_slideleft:active {
  top: 2px;
}