

.btn-hover {
  background-image: linear-gradient(to right, var(--softtec-medium-blue1) 55%, var(--softtec-dark-blue) 100%);
  border: none;
  color: var(--softtec-white);
  font-family: var(--font-medium);
  transition: 0.4s;
  background-size: 200% auto;
}

@media (hover: hover) and (pointer: fine) {
  .btn-hover:hover {
    background-position: right center !important;
    cursor: pointer !important;
  }
}


/*#region Animations Occupancy */
@keyframes btn-glow {
  0%, 100% {
    box-shadow: var(--dark-transparent1) 0px 4px 30px, 0 0 0px rgba(255, 255, 255, 0);
    border-color: var(--light-transparent3);
  }

  50% {
    box-shadow: var(--dark-transparent1) 0px 4px 30px, 0 0 31px rgba(255, 255, 255, 0.5), 0 0 35px rgba(255, 255, 255, 0.125);
    border-color: rgba(255, 255, 255, 0.3);
  }
}


/*#region Animations Kategie & Pakete  */

.scale-up-fade-in {
	-webkit-animation: scale-up-fade-in 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
					animation: scale-up-fade-in 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}

@keyframes scale-up-fade-in {
	0% {
		-webkit-transform: scale(0.5);
						transform: scale(0.5);
		opacity: 0;
	}
	100% {
		-webkit-transform: scale(1);
						transform: scale(1);
		opacity: 1;
	}
}

@keyframes fade-in-up {
	0% {
		opacity: 0;
		-webkit-transform: translateY(10px);
				transform: translateY(10px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
				transform: translateY(0);
	}
}

@keyframes fade-in-down {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-10px);
				transform: translateY(-10px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
				transform: translateY(0);
	}
}

.card-stagger {
	animation-delay: var(--card-delay, 0s) !important;
	animation-fill-mode: backwards !important;
}

@keyframes card-swipe-in-right {
  from {
    opacity: 0;
    transform: translateX(28px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes card-swipe-in-left {
  from {
    opacity: 0;
    transform: translateX(-28px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/*#endregion */


/*#region Animations Kalender */
@keyframes calendar-swipe-in-left {
  from {
    opacity: 0;
    transform: translateX(-28px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}
/*#endregion */


/*#region Animations Rate-Modal  */
.fade-in {
  overflow-y: hidden !important;
}

.rate-info-animate {
	-webkit-animation: fade-in-up 0.4s ease backwards;
  animation: fade-in-up 0.4s ease backwards;
}

.blazored-modal:has(.rates-modal) {
  animation: fly-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}


.rate-info-delay-1 {
  animation-delay: .4s;
}

.rate-info-delay-2 {
  animation-delay: .5s;
}

.rate-info-delay-3 {
  animation-delay: .6s;
}

/*#endregion */



/*#region Animations Extras*/

@media (min-width: 1091px) {
  .summary-container {
    /* backwards statt both: "both" liesse den Transform der letzten Keyframe (translateY(0)) dauerhaft
       am Element haengen und macht .summary-container damit zum containing block fuer
       position:fixed-Nachfahren */
    animation: fly-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
  }
}

.articles-container {
  /* backwards statt both: "both" liesse den Transform der letzten Keyframe (translateY(0)) dauerhaft
     am Element haengen und macht .articles-container damit zum containing block fuer
     position:fixed-Nachfahren (z.B. .article-tooltip-container) */
  animation: fly-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}

@keyframes fly-in {
  from {
    transform: translateY(6rem);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/*#endregion*/





/* Accessibility: prefers-reduced-motion
 * Disables all animations and transitions when the user
 * has enabled "Reduce motion" in their system settings.
 * Applies globally - covers card, text, hover animations.
 * https://caniuse.com/prefers-reduced-motion
 * ------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		animation-delay: 0ms !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0ms !important;
	}
}
