.primary-action-button,
.primary-action-button-inverted,
.secondary-action-button,
.secondary-action-button-inverted,
.tertiary-action-button,
.quaternary-action-button,
.vendor-row-other-choice-button
{
	display: inline-block /* !important */;
	-webkit-appearance: none;
	box-sizing: border-box;
	font-weight: 500;	
	border-width: 1px;
	border-style: solid;
	outline: none;
	font-family: inherit;
	max-height: 46px;
	cursor: pointer;
	border-radius: 2px;
	text-align: center;
	text-decoration: none !important;
	white-space: nowrap;
	-webkit-touch-callout: none; /* iOS Safari */
	-webkit-user-select: none; /* Safari */
	-khtml-user-select: none; /* Konqueror HTML */
	-moz-user-select: none; /* Firefox */
	-ms-user-select: none; /* Internet Explorer/Edge */
	user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}

.button-lg
{
	font-size: 18px;	
	line-height: 24px;
	padding: 10px 32px;
	max-height: 46px;
}
.button-md
{
	font-size: 14px;	
	line-height: 20px;
	padding: 7px 24px;
	max-height: 36px;
}
.button-sm
{
	font-size: 12px;	
	line-height: 14px;
	padding: 4px 16px;
	max-height: 24px;
}

/* For hover affect transition */
.button-lg:hover:not(.loading-simple):not(.loading-complex):not([disabled]),
.button-md:hover:not(.loading-simple):not(.loading-complex):not([disabled]),
.button-sm:hover:not(.loading-simple):not(.loading-complex):not([disabled])
{
	-webkit-transition: background-color 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in, border-color 0.2s ease-in;
	-moz-transition: background-color 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in, border-color 0.2s ease-in;
	-o-transition: background-color 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in, border-color 0.2s ease-in;
	transition: background-color 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in, border-color 0.2s ease-in;
}

.button-lg:hover:disabled:not(.loading-simple):not(.loading-complex),
.button-md:hover:disabled:not(.loading-simple):not(.loading-complex),
.button-sm:hover:disabled:not(.loading-simple):not(.loading-complex)
{
	cursor: not-allowed;
}

.rounded.button-lg
{
	border-radius: 23px;
}
.rounded.button-md
{
	border-radius: 18px;
}
.rounded.button-sm
{
	border-radius: 15px;
}
.secondary-action-button-inverted[disabled]
{
	pointer-events: none;
}
.left-angle-quote::before{
	content: "\00ab\00a0";
}
.right-angle-quote::after{
	content: "\00a0\00bb";
}

/***************************** ANIMATIONS ******************************/

/* Simple loading - ellipsis (...) */
.loading-simple
{
	vertical-align: bottom;
	/*cursor: not-allowed;*/
}
.loading-simple::after
{
	position: absolute;
	display: inline-block;
	overflow: hidden;
	content: "\2026";
	width: 0;
	vertical-align: bottom;
}
.loading-simple.button-lg::after
{
	-webkit-animation: ellipsis-lg steps(6,end) 750ms infinite;      
	-moz-animation: ellipsis-lg steps(6,end) 750ms infinite;      
	-ms-animation: ellipsis-lg steps(6,end) 750ms infinite;      
	-o-animation: ellipsis-lg steps(6,end) 750ms infinite;      
	animation: ellipsis-lg steps(6,end) 750ms infinite;
}
.loading-simple.right-angle-quote 
{
	text-align: left;	
}
@-webkit-keyframes ellipsis-lg 
{
  to {
		width: 18px;
  }
}
@-moz-keyframes ellipsis-lg 
{
  to {
		width: 18px;
  }
}
@-o-keyframes ellipsis-lg 
{
  to {
		width: 18px;
  }
}
@keyframes ellipsis-lg 
{
  to {
		width: 18px;
  }
}
.loading-simple.button-md::after
{
	-webkit-animation: ellipsis-md steps(6,end) 750ms infinite;      
	-moz-animation: ellipsis-md steps(6,end) 750ms infinite;      
	-ms-animation: ellipsis-md steps(6,end) 750ms infinite;      
	-o-animation: ellipsis-md steps(6,end) 750ms infinite;      
	animation: ellipsis-md steps(6,end) 750ms infinite;
}
@-webkit-keyframes ellipsis-md {
	to {
		width: 14px;
	}
}
@-moz-keyframes ellipsis-md {
	to {
		width: 14px;
	}
}
@-o-keyframes ellipsis-md {
	to {
		width: 14px;
	}
}
@keyframes ellipsis-md {
	to {
		width: 14px;
	}
}
.loading-simple.button-sm::after
{
	-webkit-animation: ellipsis-sm steps(6,end) 750ms infinite;      
	-moz-animation: ellipsis-sm steps(6,end) 750ms infinite;      
	-ms-animation: ellipsis-sm steps(6,end) 750ms infinite;      
	-o-animation: ellipsis-sm steps(6,end) 750ms infinite;      
	animation: ellipsis-sm steps(6,end) 750ms infinite;
}
@-webkit-keyframes ellipsis-sm {
	to {
		width: 12px;
	}
}
@-moz-keyframes ellipsis-sm {
	to {
		width: 12px;
	}
}
@-o-keyframes ellipsis-sm {
	to {
		width: 12px;
	}
}
@keyframes ellipsis-sm {
	to {
		width: 12px;
	}
}

/* Complex loading - three circles (o o o) */
.loading-complex
{
	/*cursor: not-allowed;*/
}
.loading-complex::before
{
	display: flex;
	position: relative;
	justify-content: center;
	content: "\25CF\2003\25CF";
	top: 0;
	color: #FFF !important;
	-webkit-animation: alternate-fade-dots-outer 1s infinite;      
	-moz-animation: alternate-fade-dots-outer 1s infinite;      
	-ms-animation: alternate-fade-dots-outer 1s infinite;      
	-o-animation: alternate-fade-dots-outer 1s infinite;      
	animation: alternate-fade-dots-outer 1s infinite;
}
.loading-complex::after
{
	display: flex;
	position: relative;
	justify-content: center;
	content: "\25CF";
	color: #FFF !important;
	-webkit-animation: alternate-fade-dots-inner 1s infinite;      
	-moz-animation: alternate-fade-dots-inner 1s infinite;      
	-ms-animation: alternate-fade-dots-inner 1s infinite;      
	-o-animation: alternate-fade-dots-inner 1s infinite;      
	animation: alternate-fade-dots-inner 1s infinite;
}
@-webkit-keyframes  alternate-fade-dots-outer
{
	0% {
		opacity: 0.3;
	}
	50% {
		opacity: 1;
	}
  100% {
		opacity: 0.3;
  }
}
@-moz-keyframes  alternate-fade-dots-outer
{
	0% {
		opacity: 0.3;
	}
	50% {
		opacity: 1;
	}
  100% {
		opacity: 0.3;
  }
}
@-o-keyframes  alternate-fade-dots-outer
{
	0% {
		opacity: 0.3;
	}
	50% {
		opacity: 1;
	}
  100% {
		opacity: 0.3;
  }
}
@keyframes alternate-fade-dots-outer
{
	0% {
		opacity: 0.3;
	}
	50% {
		opacity: 1;
	}
  100% {
		opacity: 0.3;
  }
}
@-webkit-keyframes alternate-fade-dots-inner
{
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
  100% {
		opacity: 1;
  }
}
@-moz-keyframes alternate-fade-dots-inner
{
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
  100% {
		opacity: 1;
  }
}
@-o-keyframes alternate-fade-dots-inner
{
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
  100% {
		opacity: 1;
  }
}
@keyframes alternate-fade-dots-inner
{
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0.3;
	}
  100% {
		opacity: 1;
  }
}
.loading-complex.button-lg::after
{
	margin-top: -48px;
}
.loading-complex.button-md::after
{
	margin-top: -40px;
}
.loading-complex.button-sm::after
{
	margin-top: -28px;
}
.loading-complex,
.loading-complex:hover,
.loading-complex:active,
.loading-complex[disabled],
.loading-complex[disabled]:hover,
.loading-complex[disabled]:active
{
	color: transparent !important;
	cursor: wait;
}

/************************* END ANIMATIONS ******************************/
	
@media all and (min-width : 1025px) {
	/* Convert button-sm or button-md to button-lg */
	.button-lg-desktop.button-sm,
	.button-lg-desktop.button-md
	{
		font-size: 18px;	
		line-height: 24px;
		padding: 10px 32px;
		max-height: 46px;
	}
	.button-lg-desktop.rounded.button-sm,
	.button-lg-desktop.rounded.button-md
	{
		border-radius: 23px;
	}
	.button-lg-desktop.button-sm.loading-simple::after,
	.button-lg-desktop.button-md.loading-simple::after
	{
		-webkit-animation: ellipsis-lg steps(6,end) 750ms infinite;      
		animation: ellipsis-lg steps(6,end) 750ms infinite;
	}
	.button-lg-desktop.button-sm.loading-complex::after,
	.button-lg-desktop.button-md.loading-complex::after
	{
		margin-top: -48px;
	}
	
	/* Convert button-sm or button-lg to button-md */
	.button-md-desktop.button-sm,
	.button-md-desktop.button-lg
	{
		font-size: 14px;	
		line-height: 20px;
		padding: 7px 24px;
		max-height: 36px;
	}
	.button-md-desktop.rounded.button-sm,
	.button-md-desktop.rounded.button-lg
	{
		border-radius: 18px;
	}
	.button-md-desktop.button-sm.loading-simple::after,
	.button-md-desktop.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-md steps(6,end) 750ms infinite;      
		animation: ellipsis-md steps(6,end) 750ms infinite;
	}
	.button-md-desktop.button-sm.loading-complex::after,
	.button-md-desktop.button-lg.loading-complex::after
	{
		margin-top: -40px;
	}
	
	/* Convert button-md or button-lg to button-sm */
	.button-sm-desktop.button-md,
	.button-sm-desktop.button-lg
	{
		font-size: 12px;	
		line-height: 14px;
		padding: 4px 16px;
		max-height: 24px;
	}
	.button-sm-desktop.rounded.button-md,
	.button-sm-desktop.rounded.button-lg
	{
		border-radius: 15px;
	}
	.button-sm-desktop.button-md.loading-simple::after,
	.button-sm-desktop.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-sm steps(6,end) 750ms infinite;      
		animation: ellipsis-sm steps(6,end) 750ms infinite;
	}
	.button-sm-desktop.button-md.loading-complex::after,
	.button-sm-desktop.button-lg.loading-complex::after
	{
		margin-top: -28px;
	}

}
@media all and (min-width : 768px) and (max-width : 1024px) {
	/* Convert button-sm or button-md to button-lg */
	.button-lg-tablet.button-sm,
	.button-lg-tablet.button-md
	{
		font-size: 18px;	
		line-height: 24px;
		padding: 10px 32px;
		max-height: 46px;
	}
	.button-lg-tablet.rounded.button-sm,
	.button-lg-tablet.rounded.button-md
	{
		border-radius: 23px;
	}
	.button-lg-tablet.button-sm.loading-simple::after,
	.button-lg-tablet.button-md.loading-simple::after
	{
		-webkit-animation: ellipsis-lg steps(6,end) 750ms infinite;      
		animation: ellipsis-lg steps(6,end) 750ms infinite;
	}
	.button-lg-tablet.button-sm.loading-complex::after,
	.button-lg-tablet.button-md.loading-complex::after
	{
		margin-top: -48px;
	}
	
	/* Convert button-sm or button-lg to button-md */
	.button-md-tablet.button-sm,
	.button-md-tablet.button-lg
	{
		font-size: 14px;	
		line-height: 20px;
		padding: 7px 24px;
		max-height: 36px;
	}
	.button-md-tablet.rounded.button-sm,
	.button-md-tablet.rounded.button-lg
	{
		border-radius: 18px;
	}
	.button-md-tablet.button-sm.loading-simple::after,
	.button-md-tablet.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-md steps(6,end) 750ms infinite;      
		animation: ellipsis-md steps(6,end) 750ms infinite;
	}
	.button-md-tablet.button-sm.loading-complex::after,
	.button-md-tablet.button-lg.loading-complex::after
	{
		margin-top: -40px;
	}
	
	/* Convert button-md or button-lg to button-sm */
	.button-sm-tablet.button-md,
	.button-sm-tablet.button-lg
	{
		font-size: 12px;	
		line-height: 14px;
		padding: 4px 16px;
		max-height: 24px;
	}
	.button-sm-tablet.rounded.button-md,
	.button-sm-tablet.rounded.button-lg
	{
		border-radius: 15px;
	}
	.button-sm-tablet.button-md.loading-simple::after,
	.button-sm-tablet.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-sm steps(6,end) 750ms infinite;      
		animation: ellipsis-sm steps(6,end) 750ms infinite;
	}
	.button-sm-tablet.button-md.loading-complex::after,
	.button-sm-tablet.button-lg.loading-complex::after
	{
		margin-top: -28px;
	}
}

@media only screen and (max-device-width : 480px),
       only all    and (max-width : 767px),
       only screen and (max-device-width : 767px) and (min-aspect-ratio: 13/9) 
{
	/* Convert button-sm or button-md to button-lg */
	.button-lg-mobile.button-sm,
	.button-lg-mobile.button-md
	{
		font-size: 18px;	
		line-height: 24px;
		padding: 10px 32px;
		max-height: 46px;
	}
	.button-lg-mobile.rounded.button-sm,
	.button-lg-mobile.rounded.button-md
	{
		border-radius: 23px;
	}
	.button-lg-mobile.button-sm.loading-simple::after,
	.button-lg-mobile.button-md.loading-simple::after
	{
		-webkit-animation: ellipsis-lg steps(6,end) 750ms infinite;      
		animation: ellipsis-lg steps(6,end) 750ms infinite;
	}
	.button-lg-mobile.button-sm.loading-complex::after,
	.button-lg-mobile.button-md.loading-complex::after
	{
		margin-top: -48px;
	}
	
	/* Convert button-sm or button-lg to button-md */
	.button-md-mobile.button-sm,
	.button-md-mobile.button-lg
	{
		font-size: 14px;	
		line-height: 20px;
		padding: 7px 24px;
		max-height: 36px;
	}
	.button-md-mobile.rounded.button-sm,
	.button-md-mobile.rounded.button-lg
	{
		border-radius: 18px;
	}
	.button-md-mobile.button-sm.loading-simple::after,
	.button-md-mobile.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-md steps(6,end) 750ms infinite;      
		animation: ellipsis-md steps(6,end) 750ms infinite;
	}
	.button-md-mobile.button-sm.loading-complex::after,
	.button-md-mobile.button-lg.loading-complex::after
	{
		margin-top: -40px;
	}
	
	/* Convert button-md or button-lg to button-sm */
	.button-sm-mobile.button-md,
	.button-sm-mobile.button-lg
	{
		font-size: 12px;	
		line-height: 14px;
		padding: 4px 16px;
		max-height: 24px;
	}
	.button-sm-mobile.rounded.button-md,
	.button-sm-mobile.rounded.button-lg
	{
		border-radius: 15px;
	}
	.button-sm-mobile.button-md.loading-simple::after,
	.button-sm-mobile.button-lg.loading-simple::after
	{
		-webkit-animation: ellipsis-sm steps(6,end) 750ms infinite;      
		animation: ellipsis-sm steps(6,end) 750ms infinite;
	}
	.button-sm-mobile.button-md.loading-complex::after,
	.button-sm-mobile.button-lg.loading-complex::after
	{
		margin-top: -28px;
	}

	/************************ START OVERRIDES ******************************/
	/* Write a Review link on the product reviews page */
	#write-a-review-button.primary-action-button:hover:not(.loading-simple):not(.loading-complex):not([disabled])
	{
		background-color: transparent !important;	
	}
	/************************ END OVERRIDES ******************************/
}
	
