@charset "UTF-8";
/*!
Theme Name: wildtype
Theme URI: http://underscores.me/
Author: Bastian Wagner
Author URI: https://bastian-wagner.com
Description: Description
Version: 3.2.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: wildtype
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

wildtype is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------

/* Fonts
--------------------------------------------- */
/* inter-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("./assets/fonts/inter/inter-v20-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* inter-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Inter";
  font-style: normal;
  font-weight: 800;
  src: url("./assets/fonts/inter/inter-v20-latin-800.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* neuething-sans-semibold-semi-expanded */
@font-face {
  font-display: swap;
  font-family: "Neuething Sans";
  font-style: normal;
  font-weight: 600;
  src: url("./assets/fonts/neuething-sans/NeuethingSans-SemiBoldSemiExpanded.woff") format("woff");
}
/* neuething-sans-bold-semi-expanded */
@font-face {
  font-display: swap;
  font-family: "Neuething Sans";
  font-style: normal;
  font-weight: 700;
  src: url("./assets/fonts/neuething-sans/NeuethingSans-BoldSemiExpanded.woff") format("woff");
}
/* felmo */
@font-face {
  font-display: swap;
  font-family: "Felmo";
  font-style: normal;
  font-weight: 400;
  src: url("./assets/fonts/felmo/Felmo.woff") format("woff");
}
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/* Variables
--------------------------------------------- */
:root {
  --fs-default: 16px;
  --fs-h1: 80px;
  --fs-h2: 60px;
  --fs-h3: 28px;
  --fs-h4: 20px;
  --fs-nav: 20px;
  --fs-big: var(--fs-h2);
  --fs-medium: var(--fs-h3);
  --fs-small: 14px;
  --fs-button: var(--fs-small);
  --ff-default: "Inter", sans-serif;
  --ff-alt: "Neuething Sans", sans-serif;
  --ff-tertiary: "Felmo", sans-serif;
}
@media (min-width: 768px) and (max-width: 1223px) {
  :root {
    --fs-default: 15px;
    --fs-h1: 60px;
    --fs-h2: 60px;
    --fs-h3: 24px;
    --fs-h4: 20px;
    --fs-nav: 16px;
  }
}
@media (max-width: 767px) {
  :root {
    --fs-default: 15px;
    --fs-h1: 40px;
    --fs-h2: 40px;
    --fs-h3: 20px;
    --fs-h4: 18px;
    --fs-nav: 14px;
    --fs-small: 13px;
  }
}
@media (max-width: 499px) {
  :root {
    --fs-default: 14px;
    --fs-h1: 30px;
    --fs-h2: 30px;
    --fs-h3: 16px;
    --fs-h4: 15px;
    --fs-nav: 13px;
    --fs-small: 12px;
  }
}

:root {
  --height-header: 110px;
  --height-header-scrolled: 70px;
  --vertical-padding: 120px;
  --card-padding: 30px;
  --horizontal-padding: 100px;
  --card-circlesize: 1.5rem;
  --admin-bar-height: 32px;
  --theme-radius: 1.25rem;
  --theme-border: 2px;
}
@media screen and (max-width: 782px) {
  :root {
    --admin-bar-height: 46px;
  }
}
@media (min-width: 768px) and (max-width: 1223px) {
  :root {
    --card-padding: 25px;
    --vertical-padding: 90px;
    --horizontal-padding: 70px;
  }
}
@media (max-width: 767px) {
  :root {
    --height-header: 70px;
    --card-padding: 25px;
    --vertical-padding: 60px;
    --horizontal-padding: 50px;
  }
}

:root {
  --color-yellow: #daff02;
  --color-green: #192622;
  --color-grey: #f5f5f6;
  --color-sky-blue: #9eb8f9;
  --color-blue: #001928;
  --color-primary: var(--color-sky-blue);
  --color-secondary: var(--color-yellow);
  --color-gradient: linear-gradient(
    125deg,
    rgba(0, 80, 87, 1) 0%,
    rgba(158, 184, 249, 1) 100%
  );
  --color-white: #ffffff;
  --color-black: #000000;
  --color-bg: var(--color-grey);
  --color-bg-alt: var(--color-gradient);
  --bg-default: var(--color-bg);
  --bg-alt: var(--color-bg-alt);
  --bg-default-init: var(--color-gradient);
  --bg-alt-init: var(--color-primary);
  --color-text: var(--color-blue);
  --color-text-init: var(--color-blue);
  --color-headline: var(--color-blue);
  --color-headline-init: var(--color-blue);
  --color-headline-alt: var(--color-yellow);
  --color-headline-alt-init: var(--color-yellow);
  --color-text-alt: var(--color-yellow);
  --color-text-alt-init: var(--color-yellow);
}

body.elementor-page {
  --e-global-color-primary: var(--color-primary);
  --e-global-color-secondary: var(--color-secondary);
  --e-global-color-text: var(--color-text);
  --e-global-color-accent: var(--color-primary);
  --e-global-typography-primary-font-family: var(--ff-default);
  --e-global-typography-primary-font-weight: 600;
  --e-global-typography-secondary-font-family: var(--ff-alt);
  --e-global-typography-secondary-font-weight: 400;
  --e-global-typography-text-font-family: var(--ff-default);
  --e-global-typography-text-font-weight: 400;
  --e-global-typography-accent-font-family: var(--ff-default);
  --e-global-typography-accent-font-weight: 600;
}

/* Seitenwind
--------------------------------------------- */
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Alignments
--------------------------------------------- */
.global-swiper-nav-container {
  bottom: 0;
  position: absolute;
  width: 100%;
}
.global-swiper-nav-container__inner {
  position: relative;
}

.global-swiper-nav-prev,
.global-swiper-nav-next {
  position: absolute;
  bottom: 0;
  z-index: 5;
  width: var(--card-circlesize);
  height: var(--card-circlesize);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: var(--bg-alt-init);
  color: var(--color-text-alt);
  cursor: pointer;
  transition: all 0.3s ease;
  will-change: background-color, color;
}
.global-swiper-nav-prev span,
.global-swiper-nav-next span {
  width: 12px;
  height: 12px;
  display: block;
  background-color: currentColor;
  mask-image: url("./assets/img/icons/arrow-button.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}

.global-swiper-nav-prev {
  left: 0;
}
.global-swiper-nav-prev span {
  transform: rotate(225deg);
}

.global-swiper-nav-next {
  right: 0;
}
.global-swiper-nav-next span {
  transform: rotate(45deg);
}

.section-alt .global-swiper-nav-prev,
.section-alt .global-swiper-nav-next {
  background-color: var(--bg-default-init);
  color: var(--color-text-init);
}

.global-swiper-pagination {
  display: flex;
  justify-content: center;
  gap: calc(var(--card-circlesize) / 5);
  height: var(--card-circlesize);
  align-items: center;
  bottom: 0 !important;
  position: absolute;
  width: 100%;
}

.global-swiper-pagination .swiper-pagination-bullet {
  background: var(--color-primary);
  width: calc(var(--card-circlesize) / 4);
  height: calc(var(--card-circlesize) / 4);
  border-radius: 50%;
  opacity: 0.5;
  transition: opacity 0.3s;
}

.global-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  opacity: 1;
}

.global-swiper-nav-prev,
.global-swiper-nav-next {
  position: absolute;
  bottom: 0;
  z-index: 5;
  width: var(--card-circlesize, 56px);
  height: var(--card-circlesize, 56px);
  border-radius: var(--theme-radius);
  display: grid;
  place-items: center;
  background-color: var(--bg-alt-init, #fff);
  color: var(--color-text-alt, #000);
  cursor: pointer;
  transition: all 0.3s ease;
  will-change: background-color, color;
}

.global-swiper-nav-prev {
  left: 0;
}

.global-swiper-nav-next {
  right: 0;
}

.global-swiper-pagination {
  display: flex;
  justify-content: center;
  gap: calc(var(--card-circlesize, 56px) / 5);
  height: var(--card-circlesize, 56px);
  align-items: center;
  bottom: 0 !important;
  position: absolute;
  width: 100%;
}

.global-swiper-pagination .swiper-pagination-bullet {
  background: var(--color-primary, #000);
  width: calc(var(--card-circlesize, 56px) / 4);
  height: calc(var(--card-circlesize, 56px) / 4);
  border-radius: 50%;
  opacity: 0.5;
  transition: opacity 0.3s;
}

.global-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  opacity: 1;
}

/* --- 1. Basis-Setup & Fallback --- */
/* Standardmäßig sind Elemente sichtbar (für alte Browser) */
.scroll-animate {
  opacity: 1;
}

/* --- 2. Modern Browser Logic (2025) --- */
@supports (animation-timeline: view()) {
  .scroll-animate {
    /* Optimierung: Sagt dem Browser, was sich ändert */
    will-change: transform, opacity, filter, clip-path;
    /* Die Verbindung zum Scrollen */
    animation-timeline: view();
    /* Timing & Range:
       Startet, wenn das Element 5% im Bild ist.
       Ist fertig, wenn es 35% des Viewports erreicht hat.
       Das sorgt für ein schnelles, knackiges "Rein-Snappen".
    */
    animation-range: entry 5% cover 35%;
    /* WICHTIG: 'linear' ist hier Pflicht, da der Scrollbalken die Zeit steuert */
    animation-timing-function: linear;
    animation-fill-mode: both;
  }
  /* --- 3. Die Animationen (Flavors) --- */
  /* A. "Soft Rise" - Der elegante Klassiker (Apple Style) */
  @keyframes effect-soft-rise {
    from {
      opacity: 0;
      transform: translateY(40px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .effect-soft-rise {
    animation-name: effect-soft-rise;
  }
  /* B. "Focus Reveal" - Blur Effekt (Sehr modern für Headlines) */
  @keyframes effect-focus {
    from {
      opacity: 0;
      transform: scale(0.95);
      filter: blur(10px);
    }
    to {
      opacity: 1;
      transform: scale(1);
      filter: blur(0px);
    }
  }
  .effect-focus {
    animation-name: effect-focus;
  }
  /* C. "Mask Wipe" - Editorial Look (Hart und kantig) */
  @keyframes effect-wipe {
    from {
      opacity: 0;
      clip-path: inset(0 100% 0 0);
      transform: translateX(-20px);
    }
    to {
      opacity: 1;
      clip-path: inset(0 0 0 0);
      transform: translateX(0);
    }
  }
  .effect-wipe {
    animation-name: effect-wipe;
  }
  /* D. "3D Lever" - Drehung rein (Verspielt & Dynamisch) */
  @keyframes effect-lever {
    from {
      opacity: 0;
      transform: perspective(1000px) rotateX(45deg) translateY(50px);
    }
    to {
      opacity: 1;
      transform: perspective(1000px) rotateX(0) translateY(0);
    }
  }
  .effect-lever {
    animation-name: effect-lever;
  }
  /* E. "Expansion" - Tracking/Letter-Spacing Fake (Typografisch) 
     HINWEIS: Wir nutzen scaleX statt letter-spacing für Performance! */
  @keyframes effect-expand {
    from {
      opacity: 0;
      transform: scale(0.8);
      letter-spacing: -2px;
      filter: blur(4px);
    }
    to {
      opacity: 1;
      transform: scale(1);
      letter-spacing: normal;
      filter: blur(0);
    }
  }
  .effect-expand {
    animation-name: effect-expand;
  }
  /* F. "Slide Right" - Horizontal von links (Clean & Smooth) */
  @keyframes effect-slide-right {
    from {
      opacity: 0;
      transform: translateX(-60px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }
  .effect-slide-right {
    animation-name: effect-slide-right;
  }
  /* G. "Slide Left" - Horizontal von rechts (Clean & Smooth) */
  @keyframes effect-slide-left {
    from {
      opacity: 0;
      transform: translateX(60px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }
  .effect-slide-left {
    animation-name: effect-slide-left;
  }
  /* H. "Zoom In" - Scale Growth (Dramatic & Bold) */
  @keyframes effect-zoom-in {
    from {
      opacity: 0;
      transform: scale(0.5);
      filter: blur(8px);
    }
    to {
      opacity: 1;
      transform: scale(1);
      filter: blur(0);
    }
  }
  .effect-zoom-in {
    animation-name: effect-zoom-in;
  }
  /* I. "Zoom Out" - Scale Shrink (Subtle & Elegant) */
  @keyframes effect-zoom-out {
    from {
      opacity: 0;
      transform: scale(1.3);
      filter: blur(6px);
    }
    to {
      opacity: 1;
      transform: scale(1);
      filter: blur(0);
    }
  }
  .effect-zoom-out {
    animation-name: effect-zoom-out;
  }
  /* J. "Flip In" - 3D Flip Rotation (Playful & Dynamic) */
  @keyframes effect-flip-in {
    from {
      opacity: 0;
      transform: perspective(1000px) rotateY(90deg);
    }
    to {
      opacity: 1;
      transform: perspective(1000px) rotateY(0);
    }
  }
  .effect-flip-in {
    animation-name: effect-flip-in;
  }
  /* K. "Bounce Rise" - Springy Rise (Fun & Energetic) */
  @keyframes effect-bounce-rise {
    0% {
      opacity: 0;
      transform: translateY(50px);
    }
    60% {
      opacity: 1;
      transform: translateY(-10px);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
    }
  }
  .effect-bounce-rise {
    animation-name: effect-bounce-rise;
  }
  /* L. "Glitch" - Digital Glitch Effect (Edgy & Modern) */
  @keyframes effect-glitch {
    0% {
      opacity: 0;
      transform: translateX(-10px) skewX(-10deg);
      filter: blur(4px);
    }
    25% {
      opacity: 0.5;
      transform: translateX(8px) skewX(8deg);
    }
    50% {
      opacity: 0.7;
      transform: translateX(-6px) skewX(-6deg);
    }
    75% {
      opacity: 0.9;
      transform: translateX(4px) skewX(4deg);
    }
    100% {
      opacity: 1;
      transform: translateX(0) skewX(0);
      filter: blur(0);
    }
  }
  .effect-glitch {
    animation-name: effect-glitch;
  }
  /* M. "Rotate In" - Spin & Fade (Creative & Eye-catching) */
  @keyframes effect-rotate-in {
    from {
      opacity: 0;
      transform: rotate(-180deg) scale(0.5);
    }
    to {
      opacity: 1;
      transform: rotate(0) scale(1);
    }
  }
  .effect-rotate-in {
    animation-name: effect-rotate-in;
  }
}
:root {
  --content-default: 1400px;
  --sidegap: clamp(1rem, 6vw, 3rem);
}

.e-con.e-parent,
.content {
  --content-default: 1400px;
  --sidegap: clamp(1rem, 6vw, 3rem);
  --full: minmax(var(--sidegap), 1fr);
  --content: min(var(--content-default), 100% - var(--sidegap) * 2);
  --popout: minmax(0, 2rem);
  --feature: minmax(0, 5rem);
  --content-width: 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  display: grid;
  grid-template-columns: [full-start] var(--full) [feature-start] var(--feature) [popout-start] var(--popout) [content-start] var(--content) [content-end] var(--popout) [popout-end] var(--feature) [feature-end] var(--full) [full-end];
}
@media screen and (max-width: 1800px) {
  .e-con.e-parent,
  .content {
    --content-default: 1200px;
  }
}

.e-con.e-parent > *,
.content > * {
  grid-column: content;
}

.e-con.e-parent.grid-popout > *,
.popout {
  grid-column: popout;
}

.e-con.e-parent.grid-feature > *,
.feature {
  grid-column: feature;
}

.e-con.e-parent.grid-full > *,
.full {
  grid-column: full;
}

@media (max-width: 767px) {
  .mobile-full > * {
    grid-column: full !important;
  }
}
.padding-default {
  padding-top: var(--vertical-padding);
  padding-bottom: var(--vertical-padding);
}
.padding-half {
  padding-top: calc(var(--vertical-padding) / 2);
  padding-bottom: calc(var(--vertical-padding) / 2);
}
.padding-top-none {
  padding-top: 0;
}
.padding-top-default {
  padding-top: var(--vertical-padding);
}
.padding-top-half {
  padding-top: calc(var(--vertical-padding) / 2);
}
.padding-bottom-none {
  padding-bottom: 0;
}
.padding-bottom-default {
  padding-bottom: var(--vertical-padding);
}
.padding-bottom-half {
  padding-bottom: calc(var(--vertical-padding) / 2);
}

.gap-1 {
  gap: var(--card-padding) !important;
}
.gap-2 {
  gap: calc(var(--card-padding) * 2) !important;
}

.row {
  --gap: var(--horizontal-padding);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
}
.row--card {
  --gap: var(--card-padding);
}
.row--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.row--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.row--2-1 {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}
.row--1-2 {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}
.row--2-3 {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}
.row--3-2 {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}
@media (min-width: 768px) {
  .row.row--reverse > *:nth-child(1) {
    order: 3;
  }
  .row.row--reverse > *:nth-child(2) {
    order: 2;
  }
  .row.row--reverse > *:nth-child(3) {
    order: 1;
  }
  .row.row--reverse > *:nth-child(4) {
    order: 0;
  }
}
@media (min-width: 768px) and (max-width: 1223px) {
  .row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 767px) {
  .row {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
  }
}

.e-parent > .e-con-inner {
  padding: 0 !important;
}

@media (max-width: 767px) {
  .e-parent:not(.grid-full) .wildtype-imagetextteaser__media {
    margin-left: calc(-1 * var(--sidegap));
    margin-right: calc(-1 * var(--sidegap));
  }
}
@media (min-width: 768px) {
  .e-parent.grid-full .wildtype-imagetextteaser__content {
    max-width: calc(var(--content-default) * 0.6666666667);
    margin-right: auto;
    width: 90%;
  }
  .e-parent.grid-full .wildtype-imagetextteaser__media .wildtype-imagetextteaser__headline {
    padding: calc(var(--horizontal-padding) / 2);
    margin: 0 !important;
    margin-left: auto !important;
    max-width: calc(var(--content-default) * 0.6666666667);
  }
  .e-parent.grid-full .wildtype-imagetextteaser.row--reverse .wildtype-imagetextteaser__content {
    margin-left: auto;
    margin-right: 0;
  }
  .e-parent.grid-full .wildtype-imagetextteaser.row--reverse .wildtype-imagetextteaser__media .wildtype-imagetextteaser__headline {
    margin-right: auto !important;
    margin-left: 0 !important;
  }
}
.e-con.e-parent:not(.grid-full):has(.wildtype-imagetextteaser) {
  padding: 0 !important;
}
@media (max-width: 767px) {
  .e-con.e-parent:not(.grid-full):has(.wildtype-imagetextteaser) .wildtype-imagetextteaser__content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

.bg-default {
  background-color: var(--bg-default);
}
.bg-primary {
  background-color: var(--color-primary);
}
.bg-secondary {
  background-color: var(--color-secondary);
}
.bg-alt {
  background-color: var(--bg-alt);
}

.section {
  color: var(--color-text);
  background-color: var(--bg-default);
  transition: all 0.6s ease-in-out !important;
  will-change: all !important;
  position: relative;
}
.section.background-scroll-trigger * {
  transition: all 0.6s ease-in-out !important;
  will-change: all !important;
}
.section::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100vw;
  right: -100vw;
  bottom: 0;
  background-color: inherit;
  z-index: -1;
}
.section__inner {
  display: flex;
  flex-direction: column;
  gap: var(--card-spacing);
}
.section__absolute {
  position: absolute !important;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.section.readable-yes > * {
  max-width: 80ch;
  margin-left: 0;
  margin-right: auto;
}
.section-none {
  background-color: transparent !important;
}
.section-transparent {
  background-color: transparent !important;
}
.section-skyblue {
  background-color: var(--color-sky-blue) !important;
}
.section-skyblue .button {
  --color-button: var(--color-sky-blue);
  --bg-button: var(--color-text);
}
.section-skyblue:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url(./assets/img/grain.jpg);
  background-size: cover;
  opacity: 0.3;
  mix-blend-mode: overlay;
  pointer-events: none;
}
.section-skyblue > * {
  position: relative;
  z-index: 2;
}
.section-clip {
  overflow: clip;
}

.section.section-alt {
  --color-text: var(--color-text-alt-init);
  --color-text-alt: var(--color-text-init);
  --color-headline: var(--color-headline-alt-init);
  --color-headline-alt: var(--color-headline-init);
  --bg-default: var(--bg-alt);
  --bg-alt-init: var(--bg-default-init);
  color: var(--color-text);
  background: var(--bg-default);
}
.section.section-alt ::selection {
  color: var(--bg-default);
  background: var(--color-secondary);
}
.section.section-alt::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("./assets/img/grain.jpg");
  background-size: cover;
  opacity: 0.3;
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 1;
}
.section.section-alt > * {
  position: relative;
  z-index: 2;
}
.section.section-alt .button {
  --color-button: var(--color-text-init);
  --bg-button: var(--color-yellow);
  --bg-button-hover: var(--color-black);
  --color-button-hover: var(--color-yellow);
}
.section.section-alt .button--important {
  --bg-button-hover: var(--color-white) !important;
  --color-button-hover: var(--color-black) !important;
}
.section.section-alt h1,
.section.section-alt .h1,
.section.section-alt h2,
.section.section-alt .h2,
.section.section-alt h3,
.section.section-alt .h3,
.section.section-alt h4,
.section.section-alt .h4 {
  color: var(--color-headline);
}
.section.section-alt .section-alt {
  --color-text: var(--color-text-init);
  --color-headline: var(--color-headline-init);
  --color-headline-alt: var(--color-headline-alt-init);
  --bg-default: var(--color-yellow);
  --color-text-alt: var(--color-text-alt);
  --bg-alt: var(--bg-default-init);
  color: var(--color-text);
  background: var(--bg-default);
}
.section.section-alt .section-alt .button {
  --bg-button: var(--color-text-init);
  --color-button: var(--bg-default-init);
}
.section:not(.section-alt) .section-alt {
  --color-text: var(--color-white);
  --color-text-alt: var(--color-text-init);
  --color-headline: var(--color-headline-alt-init);
  --color-headline-alt: var(--color-headline-init);
  --bg-default: var(--bg-alt-init);
  --bg-alt: var(--bg-default-init);
  color: var(--color-text);
  background: var(--bg-default);
}
.wysiwyg > *:first-child {
  margin-top: 0;
}
.wysiwyg > *:last-child {
  margin-bottom: 0;
}
.wysiwyg--no-margin > * {
  margin: 0 !important;
}

body .no-margin {
  margin: 0 !important;
}

@media (min-width: 768px) {
  .min-height--default {
    min-height: auto;
  }
  .min-height--50 {
    min-height: 50vh;
    min-height: 50svh;
  }
  .min-height--100 {
    min-height: 100vh;
    min-height: 100svh;
  }
}
.relative {
  position: relative !important;
}

.absolute {
  position: absolute !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.fs-lowered h1,
.fs-lowered .h1,
.fs-lowered h2,
.fs-lowered .h2 {
  font-size: var(--fs-h3) !important;
}
.fs-lowered h3,
.fs-lowered .h3 {
  font-size: var(--fs-h4) !important;
}

.fs-h1 {
  font-size: var(--fs-h1) !important;
}

.fs-h2 {
  font-size: var(--fs-h2) !important;
}

.fs-h3 {
  font-size: var(--fs-h3) !important;
}

.fs-h4 {
  font-size: var(--fs-h4) !important;
}

.fs-medium {
  font-size: var(--fs-medium) !important;
}

.fs-small {
  font-size: var(--fs-small) !important;
}

.uppercase {
  text-transform: uppercase !important;
}

.screen-reader-text {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  top: -10000em;
  width: 1px;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.aspect-ratio--16-9 {
  aspect-ratio: 16/9;
}
.aspect-ratio--4-3 {
  aspect-ratio: 4/3;
}
.aspect-ratio--1-1 {
  aspect-ratio: 1/1;
}

.section.section-skyblue .section-alt {
  --bg-default: var(--color-blue);
}

html {
  font-size: var(--fs-default, 18px);
}

.h1,
h1,
.h2,
h2,
.h3,
h3,
.h4,
h4,
.h5,
h5,
.h6,
h6 {
  font-style: normal;
  line-height: 1.09;
  color: var(--color-headline);
  font-weight: 600;
  font-family: var(--ff-alt);
}

.h1,
h1 {
  font-size: var(--fs-h1);
  margin-bottom: 1em;
}

.h2,
h2 {
  font-size: var(--fs-h2);
  line-height: 1.125em !important;
  margin-bottom: 1em !important;
}

.h3,
h3 {
  font-size: var(--fs-h3);
  margin-bottom: 0.5em !important;
}

.h4,
h4 {
  font-size: var(--fs-h4);
}

h5 {
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  color: var(--color-blue);
  margin-block-start: 2em;
  margin-block-end: 2em;
}

.force-yellow.h1, .force-yellow.h2, .force-yellow.h3, .force-yellow.h4, .force-yellow.h5, .force-yellow.h6, .force-yellowh1, .force-yellowh2, .force-yellowh3, .force-yellowh4, .force-yellowh5, .force-yellowh6 {
  color: var(--color-yellow) !important;
}

.force-blue.h1, .force-blue.h2, .force-blue.h3, .force-blue.h4, .force-blue.h5, .force-blue.h6, .force-blueh1, .force-blueh2, .force-blueh3, .force-blueh4, .force-blueh5, .force-blueh6 {
  color: var(--color-blue) !important;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

:root {
  --underline-height: 1px;
}

.wysiwyg a:not([class]) {
  text-decoration: none;
  color: currentColor;
  background-image: linear-gradient(var(--color-secondary), var(--color-secondary)), linear-gradient(currentColor, currentColor), linear-gradient(var(--color-primary), var(--color-primary));
  background-size: 20px var(--underline-height), 100% var(--underline-height), 0 var(--underline-height);
  background-position: -20px 100%, 100% 100%, 0 100%;
  background-repeat: no-repeat;
  transition: background-size 0.5s linear, background-position 0.5s linear, color 0.5s linear;
}
.wysiwyg a:not([class]):hover {
  color: var(--color-primary);
  background-size: 20px var(--underline-height), 0 var(--underline-height), 100% var(--underline-height);
  background-position: calc(100% + 20px) 100%, 100% 100%, 0 100%;
}

.section-alt .wysiwyg a:not([class]) {
  background-image: linear-gradient(var(--color-primary), var(--color-primary)), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
}
.section-alt .wysiwyg a:not([class]):hover {
  color: var(--color-white);
}

.wysiwyg ul:not([class]) {
  list-style: none;
  padding-left: 0;
}
.wysiwyg ul:not([class]) li {
  position: relative;
  padding-left: 2em;
  margin-bottom: 0.5em;
}
.wysiwyg ul:not([class]) li::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 1.5em;
  height: 0.7em;
  position: absolute;
  left: 0;
  top: 0.4em;
  mask-image: url(./assets/img/icons/wt_graphics_arrow_subhead_y.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: currentColor;
  transition: all 0.3s ease;
  will-change: background-color;
}

/* Verhindert Text-Überlauf in Layouts */
h1,
h2,
h3,
p {
  overflow-wrap: break-word;
  hyphens: auto;
}

/* Verbessert das Rendering von Schriften */
body {
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty; /* Verhindert einzelne "Witwen"-Wörter am Zeilenende */
}

::selection {
  color: var(--color-white);
  background: var(--color-primary);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--height-header-scrolled);
}

body {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
body.no-scroll {
  overflow: hidden;
}

body {
  font-family: var(--ff-default);
  font-size: 1rem;
  color: var(--color-text);
  background-color: var(--bg-default);
  line-height: 1.4;
  font-weight: 400;
}
body strong {
  font-weight: 800;
}
body.no-scroll {
  overflow: hidden;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  font-style: italic;
  background-repeat: no-repeat;
  background-size: cover;
  shape-margin: 1rem;
}

* {
  outline-offset: 5px !important;
}

/* Better focus styles from https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */
:focus {
  /* Provide a fallback style for browsers
  that don't support :focus-visible */
  outline: none;
}

:focus:not(:focus-visible) {
  /* Remove the focus indicator on mouse-focus for browsers
  that do support :focus-visible */
}

:focus-visible {
  /* Draw a very noticeable focus style for
  keyboard-focus on browsers that do support
  :focus-visible */
  transition: none;
  outline: 3px solid var(--color-primary);
}

.main-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  color: var(--color-secondary);
}
.main-header:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  z-index: -1;
  transition: background-color 0.3s ease;
}
.main-header__inner {
  height: var(--height-header);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  will-change: height;
  position: relative;
}
.main-header__logo {
  height: 70%;
  position: relative;
  z-index: 110;
}
.main-header__logo a {
  display: block;
  height: 100%;
}
.main-header__logo img {
  height: 100%;
  width: auto;
}
.main-header__navigation {
  display: flex;
  align-items: center;
}
.main-header.headroom--not-top:before {
  background-color: var(--color-primary);
}
.main-header.headroom--not-top .main-header__inner {
  height: var(--height-header-scrolled);
}

body.admin-bar .main-header {
  top: var(--admin-bar-height);
}

.main-footer {
  width: 100%;
  position: relative;
  overflow: hidden;
  color: var(--color-white) !important;
}
.main-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 2em;
  z-index: 2;
}
.main-footer__text {
  margin-top: var(--vertical-padding);
}
.main-footer__contact {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: 1em;
}
.main-footer__company-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}
.main-footer__bg {
  position: absolute !important;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.main-footer__bg__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.main-footer__bg__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main-footer__bg__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-black);
  opacity: 0;
}

.buttons {
  margin-top: 3em;
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}
.buttons--col {
  flex-direction: column;
  align-items: flex-start;
}

.button {
  --color-button: var(--color-text);
  --color-button-hover: var(--color-text);
  --bg-button: var(--bg-alt-init);
  --bg-button-hover: var(--color-yellow);
  text-decoration: none !important;
  border: none;
  background-color: var(--bg-button);
  color: var(--color-button);
  padding: 0.6em 1.1em;
  font-size: var(--fs-button, 1rem);
  border-radius: var(--theme-radius);
  font-family: var(--ff-alt);
  transition: all 0.3s ease;
  cursor: pointer;
  will-change: background-color, color;
  white-space: nowrap;
  line-height: 1.3;
  text-transform: initial;
}
.button.force-yellow {
  --color-button: var(--color-black) !important;
  --color-button-hover: var(--color-yellow) !important;
  --bg-button: var(--color-yellow) !important;
  --bg-button-hover: var(--color-black) !important;
}
.button.force-blue {
  --color-button: var(--color-black) !important;
  --color-button-hover: var(--color-black) !important;
  --bg-button: var(--color-sky-blue) !important;
  --bg-button-hover: var(--color-yellow) !important;
}
.button[target=_blank]:after {
  content: "";
  display: inline-block;
  margin-left: 0.5em;
  vertical-align: middle;
  width: 0.7em;
  height: 0.7em;
  mask-image: url("./assets/img/icons/arrow-button.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  transform: translate(0);
  background-color: var(--color-button);
  transition: all 0.3s ease;
  will-change: background-color, transform;
}
.button.is-active, .button:hover {
  background-color: var(--bg-button-hover);
  color: var(--color-button-hover);
}
.button.is-active:after, .button:hover:after {
  background-color: var(--color-button-hover);
  mask-position: right center;
  transform: translate(1px, -1px);
}
.button.back-to-top {
  position: fixed;
  right: var(--sidegap);
  bottom: var(--sidegap);
  z-index: 9999;
  border-radius: 50%;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  will-change: opacity;
}
.button.back-to-top:after {
  margin: 0;
}
.button.back-to-top.is-active {
  opacity: 1;
  pointer-events: all;
}
.button--file:after {
  mask-image: url("./assets/img/icons/upload.svg");
  width: 0.7em;
  height: 1em;
  margin-left: 0.6em;
}
.button--filter:after {
  display: none;
}
.button--search {
  width: 100%;
  border-radius: calc(var(--theme-radius) / 3);
  text-transform: none;
  color: var(--color-text);
}
.button--search::after {
  display: none;
}
.button--search:hover {
  background-color: transparent;
  color: currentColor;
}
.button--search::placeholder {
  color: var(--color-text);
  opacity: 0.7;
}
.button--accordion {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.button--accordion:after {
  display: none;
}

.wildtype-form {
  --form-radius: calc(var(--theme-radius) / 2);
  width: 100%;
}
.wildtype-form__fields {
  display: flex;
  flex-wrap: wrap;
  gap: var(--card-padding);
  margin-bottom: var(--card-padding);
}
.wildtype-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.wildtype-form__field.field-width-100 {
  width: 100%;
}
.wildtype-form__field.field-width-50 {
  width: 100%;
}
@media (min-width: 768px) {
  .wildtype-form__field.field-width-50 {
    width: calc(50% - var(--card-padding) / 2);
  }
}
.wildtype-form__field.field-width-33 {
  width: 100%;
}
@media (min-width: 1224px) {
  .wildtype-form__field.field-width-33 {
    width: calc(33.333% - var(--card-padding) / 1.5);
  }
}
.wildtype-form__label {
  font-weight: 600;
  font-size: var(--fs-small);
  color: var(--color-text);
}
.wildtype-form__label .required {
  color: var(--color-primary);
}
.wildtype-form__input {
  width: 100%;
  padding: 1rem;
  border: var(--theme-border) solid var(--color-text);
  border-radius: var(--form-radius);
  font-family: var(--ff-default);
  font-size: var(--fs-default);
  color: var(--color-text);
  background-color: transparent;
  transition: border-color 0.3s ease;
}
.wildtype-form__input:focus {
  outline: none;
  border-color: var(--color-primary);
}
.wildtype-form__input::placeholder {
  color: var(--color-text);
  opacity: 0.5;
}
.wildtype-form textarea.wildtype-form__input {
  resize: vertical;
  min-height: 150px;
}
.wildtype-form select.wildtype-form__input {
  cursor: pointer;
}
.wildtype-form__options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.wildtype-form__option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: var(--fs-default);
}
.wildtype-form__option input {
  cursor: pointer;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
}
.wildtype-form__actions {
  display: flex;
  justify-content: flex-start;
}
.wildtype-form__messages {
  margin-top: var(--card-padding);
}
.wildtype-form__message {
  padding: 1rem;
  border-radius: var(--form-radius);
  margin-bottom: 1rem;
}
.wildtype-form__message--success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}
.wildtype-form__message--error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}
.wildtype-form.hide-labels .wildtype-form__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.wildtype-form.hide-labels .wildtype-form__field {
  gap: 0;
}

.section-alt .wildtype-form__input {
  border-color: var(--color-secondary);
}
.section-alt .wildtype-form__label {
  color: var(--color-secondary);
}

.wildtype-form__file-wrap {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
}

.wildtype-form__file-label {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  width: 100%;
}

.wildtype-form__file-filename {
  font-size: var(--fs-small);
  color: var(--color-text);
  opacity: 0.7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wildtype-form__file-input {
  display: none;
}

input[type=checkbox] {
  height: 0;
  width: 0;
  opacity: 0;
  position: absolute;
  /* --- Label (Container) --- */
  /* --- Checked State --- */
}
input[type=checkbox] + label {
  --checkbox-size: 20px;
  --checkbox-hover-bg: color-mix(
    in srgb,
    var(--color-primary),
    transparent 80%
  );
  --checkbox-checked-color: var(--color-primary);
  --checkmark-color: var(--color-secondary);
  line-height: 1.3;
  position: relative;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: color 250ms cubic-bezier(0.4, 0, 0.23, 1);
  padding-left: calc(var(--checkbox-size) * 1.5);
  min-height: 1em;
  /* --- The Box (Span) --- */
  /* Hover State */
}
input[type=checkbox] + label > span {
  font-size: var(--checkbox-size);
  /* Position Absolute & Centered Vertically */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1em;
  height: 1em;
  background: transparent;
  /* Unchecked: Thin border using variable */
  border: clamp(1px, var(--theme-border), 5px) solid currentColor;
  border-radius: var(--form-radius);
  transition: all 250ms cubic-bezier(0.4, 0, 0.23, 1);
}
input[type=checkbox] + label:hover > span {
  background: var(--checkbox-hover-bg);
}
input[type=checkbox]:checked + label > span {
  /* Uses the checked color variable */
  border: 0.5em solid var(--checkbox-checked-color);
  animation: shrink-bounce 200ms cubic-bezier(0.4, 0, 0.23, 1);
  /* The Checkmark */
}
input[type=checkbox]:checked + label > span:before {
  content: "";
  position: absolute;
  top: 0.11em;
  left: -0.23em;
  border-right: 0.125em solid transparent;
  border-bottom: 0.125em solid transparent;
  transform: rotate(45deg);
  transform-origin: 0% 100%;
  animation: checkbox-check 125ms 250ms cubic-bezier(0.4, 0, 0.23, 1) forwards;
}

.section-alt input[type=checkbox] + label {
  --checkbox-hover-bg: color-mix(
    in srgb,
    var(--color-secondary),
    transparent 80%
  );
  --checkbox-checked-color: var(--color-secondary);
  --checkmark-color: var(--color-primary);
}

/* --- Animations --- */
@keyframes shrink-bounce {
  0% {
    transform: translateY(-50%) scale(1);
  }
  33% {
    transform: translateY(-50%) scale(0.85);
  }
  100% {
    transform: translateY(-50%) scale(1);
  }
}
@keyframes checkbox-check {
  0% {
    width: 0;
    height: 0;
    border-color: var(--checkmark-color);
    transform: translate3d(0, 0, 0) rotate(45deg);
  }
  33% {
    width: 0.2em;
    height: 0;
    transform: translate3d(0, 0, 0) rotate(45deg);
  }
  100% {
    width: 0.2em;
    height: 0.5em;
    border-color: var(--checkmark-color);
    transform: translate3d(0, -0.5em, 0) rotate(45deg);
  }
}
.nav ul.menu {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}
.nav ul.menu > li > a {
  color: currentcolor;
  white-space: nowrap;
}
.nav--legal ul.menu {
  display: flex;
  gap: 1em;
  justify-content: flex-end;
}
.nav--legal ul.menu li a {
  text-decoration: none;
}
.nav--main {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.nav--main :focus-visible {
  outline: 2px solid currentColor;
}
.nav--main ul.menu {
  flex-direction: column;
  gap: 1.5rem;
}
.nav--main ul.menu > li > a {
  font-size: 1.5rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity 0.2s ease;
  color: var(--color-sky-blue);
  font-family: var(--ff-alt);
}
.nav--main ul.menu > li > a:hover {
  color: var(--color-yellow);
}
@media (max-width: 1223px) {
  .nav--main {
    align-items: center;
    text-align: center;
  }
}

.hamburger {
  --hamburger-line-height: 3px;
  background: transparent;
  position: absolute;
  right: var(--sidegap);
  width: 40px;
  height: 40px;
  border: 0;
  cursor: pointer;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hamburger__inner {
  width: 30px;
  height: 20px;
  position: relative;
}
.hamburger .line {
  position: absolute;
  left: 0;
  width: 100%;
  height: var(--hamburger-line-height);
  background-color: var(--color-secondary);
  transition: all 0.3s ease;
  border-radius: var(--theme-radius);
}
.hamburger .line.line-1 {
  top: 0;
}
.hamburger .line.line-2 {
  top: 50%;
  transform: translateY(-50%);
}
.hamburger .line.line-3 {
  bottom: 0;
}
.hamburger.is-active .line-1 {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
.hamburger.is-active .line-2 {
  opacity: 0;
}
.hamburger.is-active .line-3 {
  bottom: 50%;
  transform: translateY(50%) rotate(-45deg);
}

.main-navigation {
  position: fixed;
  top: 0;
  right: 0;
  max-width: 100vw;
  height: 100vh;
  background-color: var(--color-blue, #1a5f3f);
  padding-right: calc((100vw - var(--content-default, 1400px)) / 2);
  padding-top: var(--height-header);
  padding-bottom: var(--height-header);
  padding-left: 3rem;
  transform: translateX(100%);
  transition: all 0.3s ease;
  overflow-y: auto;
  z-index: 98;
  will-change: transform;
}
.main-navigation.is-active {
  transform: translateX(0);
}
@media (max-width: 1223px) {
  .main-navigation {
    max-width: 100%;
    width: 100%;
    padding-right: var(--sidegap);
    padding-left: var(--sidegap);
    will-change: opacity, visibility;
    transition: all 0.3s ease;
    transform: translateX(0);
    opacity: 0;
    visibility: hidden;
  }
  .main-navigation.is-active {
    opacity: 1;
    visibility: visible;
  }
}

body.menu-open::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 97;
}

/* Das Spielfeld - Ein Container für alles */
#game-board {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bg-color, #000);
  border: 2px solid #fff;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

/* Gemeinsame Styles für Spielobjekte */
.game-entity {
  position: absolute;
  background-color: white;
}

/* Der Ball */
#ball {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  /* Macht den Ball rund - einfach per CSS! */
  background-color: #ff3366;
  /* Eine coole Farbe */
}

/* Die Schläger */
.paddle {
  width: 10px;
  height: 80px;
  background-color: var(--bg-default-init);
}

/* Die Mittellinie */
#net {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  border-left: 2px dashed color-mix(in srgb, var(--bg-default-init), transparent 80%);
  transform: translateX(-50%);
}

/* Punktestand */
#score-board {
  position: absolute;
  top: 0;
  width: 100%;
  display: flex;
  justify-content: space-around;
  pointer-events: none;
  height: var(--height-header);
  align-items: center;
  font-size: 30px;
  font-weight: 800;
  /* Klicks gehen durch */
}

@media (max-width: 767px) {
  #game-board,
  #tattoo-game-board {
    display: none !important;
  }
}
.error-404 .wildtype-imageteaser {
  pointer-events: none;
}

.wildtype-imagetextteaser {
  gap: 0 !important;
}
.wildtype-imagetextteaser__media {
  position: relative;
}
.wildtype-imagetextteaser__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .wildtype-imagetextteaser__media {
    position: relative;
    height: auto;
  }
  .wildtype-imagetextteaser__media img {
    position: relative;
    aspect-ratio: 4/3;
  }
  .wildtype-imagetextteaser__media .wildtype-imagetextteaser__headline {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
.wildtype-imagetextteaser.image-effect--fixed {
  overflow: hidden;
}
.wildtype-imagetextteaser.image-effect--fixed .wildtype-imagetextteaser__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.wildtype-imagetextteaser.image-effect--fixed .wildtype-imagetextteaser__media img {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 0;
  will-change: clip-path;
}
.wildtype-imagetextteaser.image-effect--fixed .wildtype-imagetextteaser__content {
  position: relative;
  z-index: 1;
}
.wildtype-imagetextteaser__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--vertical-padding) calc(var(--horizontal-padding) / 2);
  margin-left: auto !important;
  margin-right: auto !important;
}
@media (max-width: 767px) {
  .wildtype-imagetextteaser__content {
    padding-left: var(--sidegap);
    padding-right: var(--sidegap);
  }
}
.wildtype-imagetextteaser__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-black);
  opacity: 0;
}
.wildtype-imagetextteaser__headline, .wildtype-imagetextteaser__subheadline {
  margin: 0;
}
.wildtype-imagetextteaser__headline--on-media, .wildtype-imagetextteaser__subheadline--on-media {
  --gap-size: 130px;
  /* 2. AUTOMATICALLY CALCULATE CENTER POSITIONS */
  --x-start: calc(50% - (var(--gap-size) / 2));
  --x-end: calc(50% + (var(--gap-size) / 2));
  z-index: 99;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-secondary);
  height: 100%;
  width: 100%;
  display: grid;
  place-items: center;
  text-align: center;
}
.wildtype-imagetextteaser__headline--on-media span, .wildtype-imagetextteaser__subheadline--on-media span {
  max-width: calc(100% - var(--horizontal-padding));
  display: block;
  margin: 0 auto;
}
.wildtype-imagetextteaser__headline--on-media::before, .wildtype-imagetextteaser__headline--on-media::after, .wildtype-imagetextteaser__subheadline--on-media::before, .wildtype-imagetextteaser__subheadline--on-media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.wildtype-imagetextteaser__headline--on-media::before, .wildtype-imagetextteaser__subheadline--on-media::before {
  content: "";
  border-radius: var(--theme-radius);
  inset: var(--horizontal-padding);
  border: var(--theme-border) solid currentColor;
  --mask-gradient: linear-gradient(
    to right,
    #000 var(--x-start),
    /* Visible until start */ transparent var(--x-start),
    /* Gap starts */ transparent var(--x-end),
    /* Gap ends */ #000 var(--x-end) /* Visible again */
  );
  /* 3. Define the Mask Gradient logic once */
  /* This creates a line that is solid -> transparent hole -> solid */
  --mask-pattern: linear-gradient(
    to right,
    #000 var(--x-start),
    transparent var(--x-start),
    transparent var(--x-end),
    #000 var(--x-end)
  );
  /* 4. Apply the mask pattern to Top AND Bottom */
  /* We use 51% height to ensure the left/right borders overlap slightly and don't break */
  -webkit-mask: var(--mask-pattern) top/100% 51% no-repeat, var(--mask-pattern) bottom/100% 51% no-repeat;
  mask: var(--mask-pattern) top/100% 51% no-repeat, var(--mask-pattern) bottom/100% 51% no-repeat;
}
.wildtype-imagetextteaser__headline--on-media__inner:before, .wildtype-imagetextteaser__headline--on-media__inner:after, .wildtype-imagetextteaser__subheadline--on-media__inner:before, .wildtype-imagetextteaser__subheadline--on-media__inner:after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: calc(var(--gap-size) + 2px);
  aspect-ratio: 16/9;
  left: 50%;
}
.wildtype-imagetextteaser__headline--on-media__inner:before, .wildtype-imagetextteaser__subheadline--on-media__inner:before {
  transform: translate(-50%, -50%);
  top: var(--horizontal-padding);
  margin-top: 8px;
  background-image: url("./assets/img/icons/wt_graphics_square_top_y.svg");
}
.wildtype-imagetextteaser__headline--on-media__inner:after, .wildtype-imagetextteaser__subheadline--on-media__inner:after {
  transform: translate(-50%, 50%);
  bottom: var(--horizontal-padding);
  margin-bottom: 7px;
  background-image: url("./assets/img/icons/wt_graphics_square_bottom_y.svg");
}
.wildtype-imagetextteaser__subheadline {
  text-transform: uppercase;
  margin-bottom: 1.2rem;
  line-height: 1.5;
}

.section-alt .wildtype-imagetextteaser__headline--on-media {
  color: var(--color-primary);
}

.wildtype-imageteaser {
  position: relative;
  color: inherit;
  text-decoration: none;
  overflow: clip;
  display: flex;
  flex-direction: column;
}
.wildtype-imageteaser__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.wildtype-imageteaser__media img,
.wildtype-imageteaser__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .wildtype-imageteaser__media {
    position: relative;
    height: auto;
  }
  .wildtype-imageteaser__media img {
    position: relative;
    aspect-ratio: 4/3;
  }
}
.wildtype-imageteaser h1.wildtype-imageteaser__headline {
  line-height: 1.125em !important;
  margin-bottom: 0.4em !important;
}
.wildtype-imageteaser__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-black);
  opacity: 0;
}
.wildtype-imageteaser__image, .wildtype-imageteaser__video {
  display: block;
  transition: transform 0.4s ease;
}
.wildtype-imageteaser__content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--vertical-padding) var(--sidegap);
  max-width: 100%;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 767px) {
  .wildtype-imageteaser__content {
    padding-left: var(--sidegap);
    padding-right: var(--sidegap);
  }
}
.wildtype-imageteaser__headline, .wildtype-imageteaser__subheadline {
  margin: 0;
}
.wildtype-imageteaser__subheadline {
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
.wildtype-imageteaser h1 + .wildtype-imageteaser__subheadline {
  margin-top: calc(var(--fs-h1) * -0.2) !important;
}
.wildtype-imageteaser h2 + .wildtype-imageteaser__subheadline {
  margin-top: calc(var(--fs-h2) * -0.2) !important;
}
.wildtype-imageteaser h3 + .wildtype-imageteaser__subheadline {
  margin-top: calc(var(--fs-h3) * -0.2) !important;
}
.wildtype-imageteaser h4 + .wildtype-imageteaser__subheadline {
  margin-top: calc(var(--fs-h4) * 0.6) !important;
}
.wildtype-imageteaser.align--top {
  justify-content: flex-start;
}
.wildtype-imageteaser.align--center {
  justify-content: center;
}
.wildtype-imageteaser.align--bottom {
  justify-content: flex-end;
}
.wildtype-imageteaser.image-effect--fixed {
  overflow: hidden;
}
.wildtype-imageteaser.image-effect--fixed .wildtype-imageteaser__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.wildtype-imageteaser.image-effect--fixed .wildtype-imageteaser__media img {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 0;
  will-change: clip-path;
}
.wildtype-imageteaser.image-effect--fixed .wildtype-imageteaser__content {
  z-index: 2;
}
.wildtype-imageteaser.image-effect--parallax .wildtype-imageteaser__media img {
  height: 150%;
  top: var(--parallax-offset, -25%);
  will-change: top;
  position: absolute;
}
@media (max-width: 767px) {
  .wildtype-imageteaser.text-on-image--mobile .wildtype-imageteaser__content {
    padding-top: calc(var(--vertical-padding) + var(--height-header));
    padding-bottom: var(--vertical-padding);
    inset: 0;
    justify-content: flex-end;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.55) 60%, rgba(0, 0, 0, 0.8) 100%);
  }
  .wildtype-imageteaser.text-on-image--mobile .wildtype-imageteaser__media {
    position: absolute;
  }
}

.text-align--center {
  text-align: center;
}
.text-align--center .buttons {
  justify-content: center;
}
.text-align--left {
  text-align: left;
}
.text-align--left .buttons {
  justify-content: flex-start;
}
.text-align--right {
  text-align: right;
}
.text-align--right .buttons {
  justify-content: flex-end;
}

.socialicons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5em;
}
.socialicons .socialicon {
  color: var(--color-sky-blue);
  border-radius: 0.4em;
  padding: 0.3em;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  font-size: var(--fs-medium);
  text-decoration: none;
}
.socialicons .socialicon:hover {
  color: var(--color-yellow);
}

.wt-cardwrapper {
  counter-reset: card-counter;
}
@media (min-width: 768px) and (max-width: 1223px) {
  .wt-cardwrapper:not(.is-shuffle) {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .wt-cardwrapper:not(.is-shuffle) {
    grid-template-columns: 1fr;
  }
}

.wt-filter {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--card-padding, 30px) / 2);
  justify-content: center;
  margin-bottom: calc(var(--vertical-padding, 120px) / 2);
}

.wt-card {
  transition: transform 0.3s ease;
  position: relative;
  counter-increment: card-counter;
  width: 100%;
}
.wt-card__image {
  position: relative;
  overflow: hidden;
  border-radius: var(--theme-radius) var(--theme-radius) 0 0;
}
.wt-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.wt-card__image a:hover img {
  transform: scale(1.05);
}
.wt-card__content {
  padding: var(--card-padding);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  flex: 1;
  border-radius: 0 0 var(--theme-radius) var(--theme-radius);
  background: var(--bg-color);
}
.wt-card__meta > * {
  white-space: nowrap;
}
.wt-card__meta > *:not(:last-child):after {
  content: " | ";
}
.wt-card__headline {
  hyphens: auto;
}
.wt-card__link {
  display: flex;
  margin-top: 1em !important;
}
.wt-card__inner {
  --s: calc(var(--card-circlesize) / 2 * 1.5); /* inner curve size */
  --r: calc(var(--theme-radius, 10px) / 1.5); /* radius */
  position: relative;
  border-radius: var(--theme-radius);
  display: flex;
  flex-direction: column;
}
.wt-card.no-image .wt-card__content {
  border-radius: var(--theme-radius);
}
.wt-card--portfolio {
  perspective: 1000px;
}
.wt-card--portfolio .wildtype-cards__card__inner {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  border-radius: var(--theme-radius) !important;
}
.wt-card--portfolio .wildtype-cards__image,
.wt-card--portfolio .wildtype-cards__content {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: var(--theme-radius) !important;
  inset: 0;
}
.wt-card--portfolio .wildtype-cards__image {
  z-index: 2;
}
.wt-card--portfolio .wildtype-cards__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.wt-card--portfolio .wildtype-cards__content {
  transform: rotateY(180deg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  font-size: var(--fs-small);
  padding: var(--card-padding);
  gap: 0.5em;
  background-color: var(--bg-default) !important;
  opacity: 1;
}
.wt-card--portfolio:hover .wildtype-cards__card__inner {
  transform: rotateY(180deg);
}

.wt-cardwrapper.shuffle .wt-card {
  margin-bottom: var(--card-padding);
}
@media (min-width: 1224px) {
  .wt-cardwrapper.shuffle[data-columns="2"] .wt-card {
    width: calc((100% - 32px) / 2);
  }
  .wt-cardwrapper.shuffle[data-columns="3"] .wt-card {
    width: calc((100% - 64px) / 3);
  }
  .wt-cardwrapper.shuffle[data-columns="4"] .wt-card {
    width: calc((100% - 96px) / 4);
  }
}
@media (min-width: 768px) and (max-width: 1223px) {
  .wt-cardwrapper.shuffle[data-columns="2"] .wt-card, .wt-cardwrapper.shuffle[data-columns="3"] .wt-card, .wt-cardwrapper.shuffle[data-columns="4"] .wt-card {
    width: calc((100% - 32px) / 2);
  }
}
.wt-cardwrapper:not(.is-shuffle) .wt-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.wt-cardwrapper:not(.is-shuffle)[data-columns="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.wt-cardwrapper:not(.is-shuffle)[data-columns="3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wt-cardwrapper:not(.is-shuffle)[data-columns="4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (min-width: 768px) and (max-width: 1223px) {
  .wt-cardwrapper:not(.is-shuffle) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 767px) {
  .wt-cardwrapper:not(.is-shuffle) {
    grid-template-columns: 1fr !important;
  }
}

.wt-card {
  opacity: 1;
  transition: opacity 0.4s ease, transform 0.4s ease;
  display: flex;
  flex-direction: column;
}
.wt-card__inner {
  flex: 1;
}

.wt-card.is-shuffle-item--hidden {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.95);
}

.section-alt .wt-card::after {
  background-color: var(--color-secondary) !important;
  color: var(--color-primary) !important;
}

.wildtype-cards.show-counter .wt-card::after {
  content: counter(card-counter);
  position: absolute;
  top: 0;
  right: 0;
  width: var(--card-circlesize);
  height: var(--card-circlesize);
  display: grid;
  place-items: center;
  border-radius: var(--theme-radius);
  overflow: hidden;
  background-color: var(--bg-alt);
  font-size: calc(var(--card-circlesize) / 2);
  font-weight: 700;
  font-family: var(--ff-alt);
  color: var(--color-secondary);
  line-height: 1;
  z-index: 10;
}
.wildtype-cards.show-counter .wt-card__inner {
  clip-path: shape(from 0 0, hline to calc(100% - var(--s) - 2 * var(--r)), arc by var(--r) var(--r) of var(--r) cw, arc by var(--s) var(--s) of var(--s), arc by var(--r) var(--r) of var(--r) cw, vline to 100%, hline to 0);
}
.wildtype-cards.show-counter.real-counter .wt-card::after {
  content: attr(data-cardcount);
}

.wt-cardwrapper.show-counter .wt-card.no-image .wt-card__content > *:first-child {
  padding-right: var(--card-circlesize);
}

/* Enables animation for 'auto' dimensions */
:root {
  interpolate-size: allow-keywords;
}

.wildtype-accordion {
  /* --- FIXED SECTION --- */
  /* We use a space here to target the icon inside the open item */
  /* --------------------- */
}
.wildtype-accordion__search {
  position: relative;
  margin-bottom: var(--card-padding, 2rem);
  display: flex;
  align-items: center;
}
.wildtype-accordion__search-input {
  width: 100%;
  font-family: var(--ff-default);
  padding: 1em var(--card-padding);
}
.wildtype-accordion__search-input::placeholder {
  color: var(--color-text);
  opacity: 0.5;
}
.wildtype-accordion__search-icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-primary);
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wildtype-accordion__search-icon svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}
.wildtype-accordion__item {
  border-radius: calc(var(--theme-radius) * 1.5);
  margin-bottom: calc(var(--card-padding) / 3);
  overflow: hidden;
  transition: background-color 0.3s ease;
  background: var(--color-sky-blue) !important;
  color: var(--color-blue) !important;
  /* Targets the content expansion */
}
.wildtype-accordion__item:after {
  display: none;
}
.wildtype-accordion__item::details-content {
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease, content-visibility 0.4s allow-discrete;
  height: 0;
  opacity: 0;
}
.wildtype-accordion__item[open]::details-content {
  height: auto;
  opacity: 1;
}
.wildtype-accordion__summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1em var(--card-padding);
  font-size: 1rem;
  user-select: none;
  transition: background-color 0.25s ease;
  list-style: none;
  position: relative;
}
.wildtype-accordion__summary::-webkit-details-marker {
  display: none;
}
.wildtype-accordion__title {
  position: relative;
  z-index: 1;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.wildtype-accordion__summary:hover .wildtype-accordion__title {
  transform: translateX(4px);
}
.wildtype-accordion__icon {
  flex-shrink: 0;
  margin-left: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.wildtype-accordion__icon svg {
  display: block;
  width: 1rem;
  height: 1rem;
  stroke-width: 2;
}
.wildtype-accordion__icon svg path {
  transition: opacity 0.3s ease, stroke 0.3s ease;
}
.wildtype-accordion__item[open] .wildtype-accordion__icon {
  transform: rotate(135deg);
}
.wildtype-accordion__body {
  padding: var(--card-padding);
  border-top: 1px solid var(--color-blue);
  overflow: hidden;
}
.wildtype-accordion__item--hidden {
  display: none;
}

h3.wildtype-accordion__title {
  font-size: var(--fs-h4);
  color: var(--color-blue) !important;
}

/* Carousel overrides for wildtype cards */
.wildtype-cards {
  display: grid;
  grid-template-columns: repeat(var(--cards-columns, 3), 1fr);
  gap: var(--card-padding);
}
.wildtype-cards.is-carousel {
  overflow: hidden;
  overflow: clip;
  padding-bottom: calc(var(--card-circlesize) + 1.5rem) !important;
  display: flex;
}
.wildtype-cards.is-carousel .wildtype-cards__list {
  display: flex;
}
.wildtype-cards.is-carousel .swiper-slide {
  height: auto;
}
.wildtype-cards.is-carousel .wildtype-cards__card__inner {
  height: 100%;
}

.wildtype-tabs {
  display: flex;
  flex-direction: column;
  gap: var(--card-padding);
  /* Navigation */
  /* Tab Buttons */
  /* Content Wrapper */
  /* Tab Content */
}
.wildtype-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--card-padding) / 2);
  border-bottom: var(--theme-border) solid currentColor;
}
.wildtype-tabs__button {
  background: transparent;
  border: none;
  border-bottom: var(--theme-border) solid transparent;
  padding: 1rem 1.5rem;
  cursor: pointer;
  font-size: var(--fs-h4, 22px);
  font-family: var(--ff-alt);
  color: var(--color-text);
  transition: all 0.2s ease;
  opacity: 0.8;
}
.wildtype-tabs__button:hover {
  opacity: 1;
}
.wildtype-tabs__button.is-active {
  border-bottom-color: var(--color-primary);
  opacity: 1;
}
.wildtype-tabs__content-wrapper {
  position: relative;
}
.wildtype-tabs__content {
  display: none;
  animation: fadeIn 0.3s ease;
}
.wildtype-tabs__content.is-active {
  display: block;
}

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.wildtype-timeline {
  --tl-gap: var(--horizontal-padding);
  --tl-dot: 16px;
  --tl-mark: 40px;
  --tl-line-pos: 20px;
  --tl-accent: var(--color-primary);
  --tl-border: var(--color-bg);
  position: relative;
  padding: var(--card-padding) 0;
}
@media (max-width: 767px) {
  .wildtype-timeline {
    --tl-dot: 12px;
    --tl-mark: 32px;
    --tl-line-pos: 8px;
  }
}
.wildtype-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--tl-line-pos);
  width: 2px;
  background: currentColor;
  opacity: 0.2;
}
.wildtype-timeline__item {
  position: relative;
  padding-left: var(--tl-gap);
  margin-bottom: calc(var(--card-padding) * 1.5);
}
.wildtype-timeline__item:last-child {
  margin-bottom: 0;
}
.wildtype-timeline__item:hover .wildtype-timeline__dot {
  transform: scale(1.2);
}
.wildtype-timeline__marker {
  position: absolute;
  top: 0;
  left: calc(var(--tl-line-pos) - var(--tl-mark) / 2 + 1px);
  width: var(--tl-mark);
  height: var(--tl-mark);
  display: flex;
  align-items: center;
  justify-content: center;
}
.wildtype-timeline__dot {
  width: var(--tl-dot);
  height: var(--tl-dot);
  border-radius: 50%;
  background: var(--tl-accent);
  border: 3px solid var(--tl-border);
  box-shadow: 0 0 0 2px currentColor;
  transition: transform 0.3s ease;
}
.wildtype-timeline__date {
  font-size: var(--fs-small, 18px);
  font-family: var(--ff-alt);
  color: var(--tl-accent);
  margin-bottom: 0.5rem;
}
.wildtype-timeline__title {
  margin: 0 0 1rem;
}
.wildtype-timeline--alternating::before {
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 767px) {
  .wildtype-timeline--alternating::before {
    left: var(--tl-line-pos);
    transform: none;
  }
}
.wildtype-timeline--alternating .wildtype-timeline__item {
  width: calc(50% - var(--tl-gap) / 2);
  padding-left: 0;
  margin-left: 0;
}
.wildtype-timeline--alternating .wildtype-timeline__item .wildtype-timeline__marker {
  left: auto;
  right: calc(-1 * var(--tl-gap) / 2 - var(--tl-mark) / 2);
}
.wildtype-timeline--alternating .wildtype-timeline__item--right {
  margin-left: auto;
  text-align: right;
}
.wildtype-timeline--alternating .wildtype-timeline__item--right .wildtype-timeline__marker {
  right: auto;
  left: calc(-1 * var(--tl-gap) / 2 - var(--tl-mark) / 2);
}
@media (max-width: 767px) {
  .wildtype-timeline--alternating .wildtype-timeline__item {
    width: 100%;
    padding-left: var(--tl-gap);
    margin-left: 0 !important;
    text-align: left !important;
  }
  .wildtype-timeline--alternating .wildtype-timeline__item .wildtype-timeline__marker {
    left: calc(var(--tl-line-pos) - var(--tl-mark) / 2 + 1px) !important;
    right: auto !important;
  }
}

.section-alt .wildtype-timeline {
  --tl-accent: var(--color-secondary);
}

.wildtype-cards.is-carousel .global-swiper-nav-container {
  display: flex;
}
.wildtype-cards.is-carousel .global-swiper-nav-container__inner {
  width: 100%;
}

.e-parent.grid-full .wildtype-cards.is-carousel {
  padding-left: var(--sidegap);
  padding-right: var(--sidegap);
  position: relative;
  width: 100%;
}
.e-parent.grid-full .global-swiper-nav-container {
  display: grid;
  margin-left: calc(-1 * var(--sidegap));
}

.wildtype-bento-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-flow: dense;
  width: 100%;
  gap: var(--card-padding);
  /* Responsive Wireframe-Logik */
}
@media (max-width: 1024px) {
  .wildtype-bento-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 767px) {
  .wildtype-bento-grid {
    grid-template-columns: 1fr !important;
  }
}

.error-404 {
  overflow: hidden;
}
@media (min-width: 768px) {
  .error-404--with-tattoo .wildtype-imageteaser__content, .error-404--with-2048 .wildtype-imageteaser__content {
    display: none;
  }
}
@media (max-width: 767px) {
  .error-404 #game-2048-board {
    display: none;
  }
}

body.vanilla-tilt-enabled .wildtype-cards {
  padding-top: var(--card-padding);
  padding-bottom: var(--card-padding);
}
body.vanilla-tilt-enabled .wildtype-cards.is-carousel {
  overflow: visible;
}

.section.section-alt .wildtype-imageteaser__text {
  color: var(--color-white);
}

.headline-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
}
.headline-arrow:before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 1.5em;
  height: 0.7em;
  mask-image: url("./assets/img/icons/wt_graphics_arrow_subhead_y.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  transform: translate(0);
  background-color: currentColor;
  transition: all 0.3s ease;
  will-change: background-color, transform;
}

h3.wildtype-bigtext__text {
  line-height: 1.4em;
}

.subheadline h2 {
  font-size: var(--fs-h4);
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}

.section.section-alt h5 {
  color: var(--color-white);
}

.elementor-element.force-yellow * {
  color: var(--color-yellow) !important;
}
.elementor-element.force-blue * {
  color: var(--color-blue) !important;
}
.elementor-element.force-skyblue * {
  color: var(--color-sky-blue) !important;
}

/*# sourceMappingURL=style.css.map */
