* {
  -webkit-transition: background-color 0.15s ease;
  -moz-transition:    background-color 0.15s ease;
  -ms-transition:     background-color 0.15s ease;
  -o-transition:      background-color 0.15s ease;
  transition:         background-color 0.15s ease;

  -webkit-transition-timing-function: cubic-bezier(.62,.28,.23,.99); 
  -moz-transition-timing-function: cubic-bezier(.62,.28,.23,.99); 
  transition-timing-function: cubic-bezier(.62,.28,.23,.99);

  -webkit-animation-timing-function: cubic-bezier(.62,.28,.23,.99); 
  -moz-animation-timing-function: cubic-bezier(.62,.28,.23,.99); 
  animation-timing-function: cubic-bezier(.62,.28,.23,.99);
}

.font-ani{
  -webkit-transition: font 0.1s ease;
  -moz-transition:    font 0.1s ease;
  -ms-transition:     font 0.1s ease;
  -o-transition:      font 0.1s ease;
  transition:         font 0.1s ease;
}

/* Slide in from left with margin */
.menu-main-mobile .animate-home-link {
  margin-left: -80px;
  transition-timing-function: cubic-bezier(.62,.28,.23,.99);
  transition: margin-left 0.5s, font-size 0.5s;
}
.menu-sticky-mobile .menu-main-mobile .animate-home-link {
  margin-left: 0px;
}

/* Arrow rotation */
.animate-arrow {
  -webkit-transform-origin: 50% 55%;
  -moz-transform-origin: 50% 55%;
  transform-origin: 50% 55%;
}

.navigation-mobile .animate-arrow {
  -webkit-transform-origin: 50% 60%;
  -moz-transform-origin: 50% 60%;
  transform-origin: 50% 60%;
}

.footer-mobile .animate-arrow {
  -webkit-transform-origin: 50% 50%;
  -moz-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}

.rotated {
  -webkit-transform:rotate(-180deg);
  -moz-transform:rotate(-180deg);
  transform:rotate(-180deg);
}

.animate-arrow.rotated-remove.rotated-remove-active{
  -webkit-transition:transform 0.5s ease-in;
  -moz-transition:transform 0.5s ease-in;
  transition:transform 0.5s ease-in;
}
.animate-arrow.rotated-add.rotated-add-active {
  -webkit-transition:transform 0.5s ease-out;
  -moz-transition:transform 0.5s ease-out;
  transition:transform 0.5s ease-out;
}

/* no animation */
.no-ani.ng-hide-remove.ng-hide-remove-active,
.no-ani.ng-hide-add.ng-hide-add-active{
  -webkit-transition: background-color 0s ease;
  -moz-transition:    background-color 0s ease;
  -ms-transition:     background-color 0s ease;
  -o-transition:      background-color 0s ease;
  transition:         background-color 0s ease;

  -webkit-transition: font 0s ease;
  -moz-transition: font 0s ease;
  -o-transition: font 0s ease;
  -ms-transition: font 0s ease;
}

/* Dropdown animation */
.slide-down.ng-hide-remove.ng-hide-remove-active{
  -webkit-animation:slideInDown 0.5s both;
  -moz-animation:slideInDown 0.5s both;
  animation:slideInDown 0.5s both;

  -webkit-animation-timing-function: cubic-bezier(0,0,.05,1); 
  -moz-animation-timing-function: cubic-bezier(0,0,.05,1); 
  animation-timing-function: cubic-bezier(0,0,.05,1);
}
.slide-down.ng-hide-add.ng-hide-add-active {
  -webkit-animation:slideOutUp 0.5s both;
  -moz-animation:slideOutUp 0.5s both;
  animation:slideOutUp 0.5s both;


  -webkit-animation-timing-function: cubic-bezier(.83,0,1,1); 
  -moz-animation-timing-function: cubic-bezier(.83,0,1,1); 
  animation-timing-function: cubic-bezier(.83,0,1,1);
}

/* Carousel animation */
.carousel-slide-left.ng-hide-remove.ng-hide-remove-active{
  -webkit-animation:slideInLeft 0.5s both ease-out;
  -moz-animation:slideInLeft 0.5s both ease-out;
  animation:slideInLeft 0.5s both ease-out;
}
.carousel-slide-left.ng-hide-add.ng-hide-add-active {
  -webkit-animation:slideOutLeft 0.5s both ease-out;
  -moz-animation:slideOutLeft 0.5s both ease-out;
  animation:slideOutLeft 0.5s both ease-out;
}

.carousel-slide-right.ng-hide-remove.ng-hide-remove-active{
  -webkit-animation:slideInRight 0.5s both ease-out;
  -moz-animation:slideInRight 0.5s both ease-out;
  animation:slideInRight 0.5s both ease-out;
}
.carousel-slide-right.ng-hide-add.ng-hide-add-active {
  -webkit-animation:slideOutRight 0.5s both ease-out;
  -moz-animation:slideOutRight 0.5s both ease-out;
  animation:slideOutRight 0.5s both ease-out;
}

/* slide down */
@keyframes slideInDown {
  from  { transform:translateY(-100%); }
  to    { transform: translateY(0); }
}
@-moz-keyframes slideInDown {
  from  { -moz-transform:translateY(-100%); }
  to    { -moz-transform: translateY(0); }
}
@-webkit-keyframes slideInDown {
  from  { -webkit-transform:translateY(-100%); }
  to    { -webkit-transform: translateY(0); }
}

/* slide up */
@keyframes slideOutUp {
  from  { transform:translateY(0); }
  to    { transform: translateY(-100%); }
}
@-moz-keyframes slideOutUp {
  from  { -moz-transform:translateY(0); }
  to    { -moz-transform: translateY(-100%); }
}
@-webkit-keyframes slideOutUp {
  from  { -webkit-transform:translateY(0); }
  to    { -webkit-transform: translateY(-100%); }
}

/* slide in right */
@keyframes slideInRight {
  from  { transform: translateX(-100%); }
  to    { transform: translateX(0); }
}
@-moz-keyframes slideInRight {
  from  { -moz-transform: translateX(-100%); }
  to    { -moz-transform: translateX(0); }
}
@-webkit-keyframes slideInRight {
  from  { -webkit-transform: translateX(-100%); }
  to    { -webkit-transform: translateX(0); }
}

/* slide out right */
@keyframes slideOutRight {
  from  { transform: translateX(0); }
  to    { transform: translateX(100%); }
}
@-moz-keyframes slideOutRight {
  from  { -moz-transform: translateX(0); }
  to    { -moz-transform: translateX(100%); }
}
@-webkit-keyframes slideOutRight {
  from  { -webkit-transform: translateX(0); }
  to    { -webkit-transform: translateX(100%); }
}

/* slide in left */
@keyframes slideInLeft {
  from  { transform: translateX(100%); }
  to    { transform: translateX(0); }
}
@-moz-keyframes slideInLeft {
  from  { -moz-transform: translateX(100%); }
  to    { -moz-transform: translateX(0); }
}
@-webkit-keyframes slideInLeft {
  from  { -webkit-transform: translateX(100%); }
  to    { -webkit-transform: translateX(0); }
}


/* slide out left */
@keyframes slideOutLeft {
  from  { transform: translateX(0); }
  to    { transform: translateX(-100%); }
}
@-moz-keyframes slideOutLeft {
  from  { -moz-transform: translateX(0); }
  to    { -moz-transform: translateX(-100%); }
}
@-webkit-keyframes slideOutLeft {
  from  { -webkit-transform: translateX(0); }
  to    { -webkit-transform: translateX(-100%); }
}