/* === Client-First Utility Classes === */
/* Ensure all elements inherit the color from its parent */
body * {
    color: inherit;
}
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-slider-arrow-left,
.w-slider-arrow-right,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
}
/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
  input[type="file"]:focus-visible {
   outline: 0.125rem solid #4d65ff;
   outline-offset: 0.125rem;
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
  margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
	margin-bottom: 0 !important;
}
/* Prevent all click and hover interaction with an element */
.pointer-events-off {
	pointer-events: none;
}
/* Enables all click and hover interaction with an element */
.pointer-events-on {
  pointer-events: auto;
}
/* Create a class of .div-square which maintains a 1:1 dimension of a div */
.div-square::after {
	content: "";
	display: block;
	padding-bottom: 100%;
}
/* Make sure containers never lose their center alignment */
.container-medium,.container-small, .container-large {
	margin-right: auto !important;
  margin-left: auto !important;
}
/* Apply "..." after 3 lines of text */
.text-style-3lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
/* Apply "..." after 2 lines of text */
.text-style-2lines {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
/* Adds inline flex display */
.display-inlineflex {
  display: inline-flex;
}
/* These classes are never overwritten */
.hide {
  display: none !important;
}
@media screen and (max-width: 991px) {
    .hide, .hide-tablet {
        display: none !important;
    }
}
  @media screen and (max-width: 767px) {
    .hide-mobile-landscape{
      display: none !important;
    }
}
  @media screen and (max-width: 479px) {
    .hide-mobile{
      display: none !important;
    }
}
.margin-0 {
  margin: 0rem !important;
}
.padding-0 {
  padding: 0rem !important;
}
.spacing-clean {
padding: 0rem !important;
margin: 0rem !important;
}
.margin-top {
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}
.padding-top {
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
.margin-right {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
  margin-left: 0rem !important;
}
.padding-right {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
  padding-left: 0rem !important;
}
.margin-bottom {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
.padding-bottom {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}
.margin-left {
  margin-top: 0rem !important;
  margin-right: 0rem !important;
  margin-bottom: 0rem !important;
}
.padding-left {
  padding-top: 0rem !important;
  padding-right: 0rem !important;
  padding-bottom: 0rem !important;
}
.margin-horizontal {
  margin-top: 0rem !important;
  margin-bottom: 0rem !important;
}
.padding-horizontal {
  padding-top: 0rem !important;
  padding-bottom: 0rem !important;
}
.margin-vertical {
  margin-right: 0rem !important;
  margin-left: 0rem !important;
}
.padding-vertical {
  padding-right: 0rem !important;
  padding-left: 0rem !important;
}
/* Apply "..." at 100% width */
.truncate-width {
		width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* Removes native scrollbar */
.no-scrollbar {
    -ms-overflow-style: none;
    overflow: -moz-scrollbars-none;
}
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* === Button-Animation-System === */
/* Gemeinsame Custom Properties */
:root {
  --elastic-ease-out: linear(
    0, 0.5737 7.6%, 0.8382 11.87%, 0.9463 14.19%, 1.0292 16.54%,
    1.0886 18.97%, 1.1258 21.53%, 1.137 22.97%, 1.1424 24.48%,
    1.1423 26.1%, 1.1366 27.86%, 1.1165 31.01%, 1.0507 38.62%,
    1.0219 42.57%, 0.9995 46.99%, 0.9872 51.63%, 0.9842 58.77%,
    1.0011 81.26%, 1
  );
  --smooth-ease: cubic-bezier(.32, .72, 0, 1);
  --color-ease: cubic-bezier(.216, .62, .356, 1);
}
/* Hauptbutton-Container */
.button-primary,
.button-secondary,
.button-primary-inverted,
.button-nav,
.button-icon {
  transition: transform .45s var(--elastic-ease-out);
  -webkit-tap-highlight-color: transparent;
}
.button-primary:active,
.button-secondary:active,
.button-primary-inverted:active,
.button-nav:active,
.button-icon:active {
  transform: scaleX(0.955) scaleY(0.954);
}
/* Background */
.button-primary_bg,
.button-secondary_bg,
.button-primary-inverted_bg,
.button-nav_bg,
.button-icon_bg {
  transition: background-color .2s var(--color-ease);
}
/* Front Layer */
.button-primary_front,
.button-secondary_front,
.button-primary-inverted_front,
.button-nav_front,
.button-icon_front {
  transition: translate .85s var(--elastic-ease-out), rotate .75s var(--elastic-ease-out), opacity .15s ease-out;
}
/* Text Layer */
.button-primary_text,
.button-secondary_text,
.button-primary-inverted_text,
.button-nav_text,
.button-icon_text {
  transition: translate .75s var(--elastic-ease-out);
}
/* Back Layer */
.button-primary_back,
.button-secondary_back,
.button-primary-inverted_back,
.button-nav_back,
.button-icon_back {
  transition: translate .85s var(--elastic-ease-out), rotate .75s var(--elastic-ease-out), opacity .15s ease-out;
  opacity: 0;
  translate: 0 2rem -6rem;
  rotate: 1 0 0 -90deg;
}
.button-primary_back::before,
.button-secondary_back::before,
.button-primary-inverted_back::before,
.button-nav_back::before,
.button-icon_back::before {
  --index: 1;
  content: attr(data-text);
  display: contents;
}
/* Pfeil o.ä. */
.button-primary_arrow,
.button-secondary_arrow,
.button-primary-inverted_arrow,
.button-nav_arrow,
.button-icon_arrow,
.button-primary_back::before,
.button-secondary_back::before,
.button-primary-inverted_back::before,
.button-nav_back::before,
.button-icon_back::before {
  transition: translate .75s var(--elastic-ease-out);
  translate: 0 .75rem 0;
}
/* Hover/Fokus-Interaktionen */
@media (hover: hover) and (pointer: fine) {
  .button-primary:is(:hover, :focus-visible) .button-primary_front,
  .button-secondary:is(:hover, :focus-visible) .button-secondary_front,
  .button-primary-inverted:is(:hover, :focus-visible) .button-primary-inverted_front,
  .button-nav:is(:hover, :focus-visible) .button-nav_front,
  .button-icon:is(:hover, :focus-visible) .button-icon_front {
    translate: 0 -2rem -6rem;
    rotate: 1 0 0 85deg;
    opacity: 0;
  }
  .button-primary:is(:hover, :focus-visible) .button-primary_text,
  .button-secondary:is(:hover, :focus-visible) .button-secondary_text,
  .button-primary-inverted:is(:hover, :focus-visible) .button-primary-inverted_text,
  .button-nav:is(:hover, :focus-visible) .button-nav_text,
  .button-icon:is(:hover, :focus-visible) .button-icon_text {
    translate: 0 -.75rem 0;
    transition-delay: 0s;
  }
  .button-primary:is(:hover, :focus-visible) .button-primary_back,
  .button-secondary:is(:hover, :focus-visible) .button-secondary_back,
  .button-primary-inverted:is(:hover, :focus-visible) .button-primary-inverted_back,
  .button-nav:is(:hover, :focus-visible) .button-nav_back,
  .button-icon:is(:hover, :focus-visible) .button-icon_back {
    transition: translate .85s var(--elastic-ease-out), rotate .75s var(--elastic-ease-out), opacity .075s ease-in;
    rotate: 1 0 0 0deg;
    translate: 0 0 0;
    opacity: 1;
  }
  .button-primary:is(:hover, :focus-visible) :is(.button-primary_back::before, .button-primary_arrow),
  .button-secondary:is(:hover, :focus-visible) :is(.button-secondary_back::before, .button-secondary_arrow),
  .button-primary-inverted:is(:hover, :focus-visible) :is(.button-primary-inverted_back::before, .button-primary-inverted_arrow),
  .button-nav:is(:hover, :focus-visible) :is(.button-nav_back::before, .button-nav_arrow),
  .button-icon:is(:hover, :focus-visible) :is(.button-icon_back::before, .button-icon_arrow) {
    translate: 0 0 0;
    transition-delay: calc(var(--index) * .012s);
  }
}
/* Touch-Geräte: Active-State */
@media (hover: none) or (pointer: coarse) {
  .button-primary:active .button-primary_bg,
  .button-secondary:active .button-secondary_bg,
  .button-primary-inverted:active .button-primary-inverted_bg,
  .button-nav:active .button-nav_bg,
  .button-icon:active .button-icon_bg {
    background-color: #ff5100;
    transition-duration: 0s;
  }
}
