@charset "UTF-8";
/*!
Theme Name: swt
Theme URI: http://underscores.me/
Author: Bastian Wagner
Author URI: https://bastian-wagner.com
Description: Description
Version: 0.6.2
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: swt
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.

swt 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
--------------------------------------------- */
@font-face {
  font-family: "Scope";
  src: url("./assets/fonts/scope/Scope-Regular.woff") format("woff"), url("./assets/fonts/scope/Scope-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Faktum";
  src: url("./assets/fonts/faktum/Faktum-Regular.woff2") format("woff2"), url("./assets/fonts/faktum/Faktum-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Faktum";
  src: url("./assets/fonts/faktum/faktum-semibold.woff2") format("woff2"), url("./assets/fonts/faktum/faktum-semibold.woff") format("woff");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
/* 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: clamp(18px, calc(12.2261427426px + 0.9623095429vw), 30px);
  --fs-h1: clamp(30px, calc(-3.6808340016px + 5.6134723336vw), 100px);
  --fs-h2: 30px;
  --fs-h3: clamp(18px, calc(12.2261427426px + 0.9623095429vw), 30px);
  --fs-h4: clamp(20px, calc(17.1130713713px + 0.4811547715vw), 26px);
  --fs-nav: clamp(20px, calc(17.5942261427px + 0.4009623095vw), 25px);
  --fs-big: var(--fs-h1);
  --fs-medium: clamp(30px, calc(20.376904571px + 1.6038492382vw), 50px);
  --fs-small: clamp(18px, calc(17.0376904571px + 0.1603849238vw), 20px);
  --fs-button: 1rem;
  --ff-alt: "Faktum", sans-serif;
  --ff-default: "Faktum", sans-serif;
}

:root {
  --height-header: 70px;
  --height-header-scrolled: 70px;
  --vertical-padding: clamp(50px, calc(-22.1732157177px + 12.0288692863vw), 200px);
  --card-padding: 30px;
  --card-spacing: 20px;
  --horizontal-padding: 20px;
  --card-circlesize: 3rem;
  --admin-bar-height: 32px;
  --theme-radius: 0em;
  --theme-border: 1px;
}
@media screen and (max-width: 782px) {
  :root {
    --admin-bar-height: 46px;
  }
}

:root {
  --color-pink: #da4a91;
  --bg-pink: #ff0076;
  --bg-purple: #ce01ff;
  --bg-blue: #0000ff;
  --bg-yellow: #f5ff01;
  --bg-green: #02ffa7;
  --bg-lightblue: #01ffff;
  --color-white: #ffffff;
  --color-black: #262626;
  --color-black: #000000;
  --color-primary: var(--color-black);
  --color-secondary: var(--color-white);
  --color-bg: var(--color-secondary);
  --color-bg-alt: var(--color-primary);
  --bg-default: var(--color-bg);
  --bg-alt: var(--color-bg-alt);
  --bg-default-init: var(--color-secondary);
  --bg-alt-init: var(--color-primary);
  --color-text: var(--color-black);
  --color-text-init: var(--color-black);
  --color-text-alt: var(--color-white);
  --color-text-alt-init: var(--color-white);
}

:root {
  --content-default: 1200px;
  --sidegap: var(--card-spacing);
}

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;
}

/* Mixins
--------------------------------------------- */
/* Seitenwind
--------------------------------------------- */
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
.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;
  }
}
.e-con.e-parent,
.content {
  --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];
}

.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;
  padding-left: var(--card-spacing) !important;
  padding-right: var(--card-spacing) !important;
}

.e-con.e-parent.grid-small > *,
.small {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

@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-spacing) !important;
}
.gap-2 {
  gap: calc(var(--card-spacing) * 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;
}
.e-parent.twoColumns > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--horizontal-padding);
  width: 100%;
}
@media (max-width: 767px) {
  .e-parent.twoColumns > .e-con-inner {
    grid-template-columns: 1fr;
  }
}
.e-parent.twoColumnsEmptyFirst > .e-con-inner {
  width: 50%;
  margin-left: 50%;
}
@media (max-width: 767px) {
  .e-parent.twoColumnsEmptyFirst > .e-con-inner {
    width: 100%;
    margin-left: 0;
  }
}
.e-parent.smallWide > .e-con-inner {
  display: grid;
  grid-template-columns: minmax(0, 30%) minmax(0, 70%);
  gap: var(--horizontal-padding);
  width: 100%;
}
@media (max-width: 767px) {
  .e-parent.smallWide > .e-con-inner {
    grid-template-columns: 1fr;
  }
}
.e-parent.smallWideEmptyFirst > .e-con-inner {
  width: 70%;
  margin-left: 30%;
}
@media (max-width: 767px) {
  .e-parent.smallWideEmptyFirst > .e-con-inner {
    width: 100%;
    margin-left: 0;
  }
}

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

.swt-scatter {
  --imagegrid-gap: 16px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--imagegrid-gap);
  /* Verhindert das vertikale Strecken, damit das Aspect Ratio exakt bleibt */
  align-items: start;
  width: 100%;
  margin: 0 auto;
}
.swt-scatter__item {
  aspect-ratio: 16/9;
  width: 100%;
  /* Nur zur Visualisierung der Zahlen (optional) */
  display: flex;
  align-items: center;
  justify-content: center;
  /* 1. Element: Oben links (nimmt 3 Spalten ein) */
  /* 2. Element: Oben rechts (nimmt 2 Spalten ein, lässt Spalte 4 leer) */
  /* 3. Element: Mitte links (nimmt 2 Spalten ein) */
  /* 4. Element: Mitte rechts, sehr groß (nimmt 4 Spalten ein) */
  /* 5. Element: Zentriert unter der linken Hälfte des großen Elements (nimmt 2 Spalten ein) */
  /* 6. Element: Volle Breite (nimmt alle 6 Spalten ein) */
  /* 7. Element: Unten rechts, alleinstehend (nimmt 2 Spalten ein) */
  /* 8. Element: Ganz unten links (nimmt 3 Spalten ein) */
  /* 9. Element: Ganz unten rechts (nimmt 3 Spalten ein) */
}
.swt-scatter__item > img {
  aspect-ratio: 16/9;
  width: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.swt-scatter__item:nth-child(9n+1) {
  grid-column: 1/4;
}
.swt-scatter__item:nth-child(9n+2) {
  grid-column: 5/7;
  align-self: end;
}
.swt-scatter__item:nth-child(9n+3) {
  grid-column: 1/3;
  align-self: end;
}
.swt-scatter__item:nth-child(9n+4) {
  grid-column: 3/7;
}
.swt-scatter__item:nth-child(9n+5) {
  grid-column: 3/5;
}
.swt-scatter__item:nth-child(9n+6) {
  grid-column: 1/7;
}
.swt-scatter__item:nth-child(9n+7) {
  grid-column: 5/7;
}
.swt-scatter__item:nth-child(9n+8) {
  grid-column: 1/4;
}
.swt-scatter__item:nth-child(9n+9) {
  grid-column: 4/7;
}
@media (max-width: 767px) {
  .swt-scatter {
    display: flex;
    flex-direction: column;
  }
}

.swt-quote-slider {
  overflow: hidden;
}
.swt-quote-slider__swiper {
  width: 100%;
}
.swt-quote-slider__slide {
  display: flex;
  align-items: stretch;
  min-height: 420px;
}
.swt-quote-slider__image {
  flex: 0 0 33%;
  max-width: 33%;
  align-self: flex-end;
  aspect-ratio: 1;
  overflow: hidden;
}
.swt-quote-slider__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.swt-quote-slider__image-placeholder {
  width: 100%;
  height: 100%;
  background-color: var(--bg-alt);
  min-height: 400px;
}
.swt-quote-slider__content {
  flex: 0 0 50%;
  max-width: 50%;
  margin-left: auto;
  display: flex;
  flex-direction: column;
}
.swt-quote-slider__nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
}
.swt-quote-slider__prev, .swt-quote-slider__next {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: var(--fs-default);
  color: var(--color-text);
  line-height: 1;
  transition: opacity 0.2s ease;
}
.swt-quote-slider__prev:hover, .swt-quote-slider__next:hover {
  opacity: 0.5;
}
.swt-quote-slider__prev.swiper-button-disabled, .swt-quote-slider__next.swiper-button-disabled {
  opacity: 0.25;
  cursor: default;
}
.swt-quote-slider__counter {
  font-size: var(--fs-default);
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 4px;
}
.swt-quote-slider__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.swt-quote-slider__name {
  font-size: var(--fs-h4, 1.2rem);
  margin-bottom: 1em;
  line-height: 1.4;
}
.swt-quote-slider__name strong {
  font-weight: 600;
}
.swt-quote-slider__position {
  font-weight: 400;
}
.swt-quote-slider__quote {
  margin: 0;
  padding: 0;
  border: none;
}
.swt-quote-slider__quote p {
  font-size: var(--fs-default);
  line-height: 1.6;
  margin: 0;
  color: var(--color-text);
}
@media (max-width: 767px) {
  .swt-quote-slider__slide {
    flex-direction: column;
    min-height: auto;
  }
  .swt-quote-slider__image {
    flex: none;
    max-width: 100%;
    width: 100%;
    aspect-ratio: 1;
  }
  .swt-quote-slider__content {
    padding-top: var(--card-padding, 32px);
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .swt-quote-slider .swiper-wrapper {
    align-items: flex-end;
  }
}
.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);
}
.bg-blue {
  background-color: var(--bg-blue) !important;
}
.bg-green {
  background-color: var(--bg-green) !important;
}
.bg-yellow {
  background-color: var(--bg-yellow) !important;
}
.bg-purple {
  background-color: var(--bg-purple) !important;
}
.bg-lightblue {
  background-color: var(--bg-lightblue) !important;
}
.bg-pink {
  background-color: var(--bg-pink) !important;
}

.section {
  color: var(--color-text);
  background-color: var(--bg-default);
  position: relative;
}
.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-clip {
  overflow: clip;
}

.section.section-alt {
  --color-text: var(--color-text-alt-init);
  --color-text-alt: var(--color-text-init);
  --bg-default: var(--bg-alt);
  --bg-alt-init: var(--bg-default-init);
  color: var(--color-text);
  background-color: var(--bg-default);
}
.section.section-alt ::selection {
  color: var(--bg-default);
  background: var(--color-secondary);
}
.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,
.section.section-alt h5,
.section.section-alt .h5,
.section.section-alt h6,
.section.section-alt .h6 {
  color: var(--color-secondary);
}
.section.section-alt .section-alt {
  --color-text: var(--color-text-init);
  --color-text-alt: var(--color-text-alt);
  --bg-default: var(--bg-alt-init);
  --bg-alt: var(--color-primary);
  color: var(--color-text);
  background-color: var(--bg-default);
}
.section.section-alt .section-alt h1,
.section.section-alt .section-alt .h1,
.section.section-alt .section-alt h2,
.section.section-alt .section-alt .h2,
.section.section-alt .section-alt h3,
.section.section-alt .section-alt .h3,
.section.section-alt .section-alt h4,
.section.section-alt .section-alt .h4,
.section.section-alt .section-alt h5,
.section.section-alt .section-alt .h5,
.section.section-alt .section-alt h6,
.section.section-alt .section-alt .h6 {
  color: var(--color-text);
}
.section:not(.section-alt) .section-alt {
  --color-text: var(--color-secondary);
  --color-text-alt: var(--color-text-init);
  --bg-default: var(--bg-alt-init);
  --bg-alt: var(--bg-default-init);
  color: var(--color-text);
  background-color: var(--bg-default);
}
.section:not(.section-alt) .section-alt h1,
.section:not(.section-alt) .section-alt .h1,
.section:not(.section-alt) .section-alt h2,
.section:not(.section-alt) .section-alt .h2,
.section:not(.section-alt) .section-alt h3,
.section:not(.section-alt) .section-alt .h3,
.section:not(.section-alt) .section-alt h4,
.section:not(.section-alt) .section-alt .h4,
.section:not(.section-alt) .section-alt h5,
.section:not(.section-alt) .section-alt .h5,
.section:not(.section-alt) .section-alt h6,
.section:not(.section-alt) .section-alt .h6 {
  color: var(--color-text);
}
.elementor-widget-text-editor > *:first-child,
.wysiwyg > *:first-child {
  margin-top: 0;
}
.elementor-widget-text-editor > *:last-child,
.wysiwyg > *:last-child {
  margin-bottom: 0;
}
.elementor-widget-text-editor--no-margin > *,
.wysiwyg--no-margin > * {
  margin: 0 !important;
}

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

.no-liststyle {
  list-style: none;
  margin: 0;
  padding: 0 !important;
}
.no-liststyle li {
  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;
}

.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;
}

body.layout-bordered .swt-accordion__body {
  border-color: var(--bg-default);
}
body.layout-bordered .swt-cards.show-counter .swt-card::after {
  border-radius: 0 0 0 var(--theme-radius);
}
body.layout-bordered .swt-cards.show-counter .swt-card__inner {
  clip-path: none;
}
body.layout-bordered .section .section-alt {
  border: var(--theme-border) solid var(--bg-default);
  color: var(--color-text-alt);
}
body.layout-bordered .section .section-alt .button {
  --bg-button: var(--bg-default);
  --color-button: var(--color-text);
}
body.layout-bordered .section:not(.section-alt) .section-alt h1,
body.layout-bordered .section:not(.section-alt) .section-alt .h1,
body.layout-bordered .section:not(.section-alt) .section-alt h2,
body.layout-bordered .section:not(.section-alt) .section-alt .h2,
body.layout-bordered .section:not(.section-alt) .section-alt h3,
body.layout-bordered .section:not(.section-alt) .section-alt .h3,
body.layout-bordered .section:not(.section-alt) .section-alt h4,
body.layout-bordered .section:not(.section-alt) .section-alt .h4,
body.layout-bordered .section:not(.section-alt) .section-alt h5,
body.layout-bordered .section:not(.section-alt) .section-alt .h5,
body.layout-bordered .section:not(.section-alt) .section-alt h6,
body.layout-bordered .section:not(.section-alt) .section-alt .h6 {
  color: var(--color-primary);
}
body.layout-bordered .section.section-alt .section-alt h1,
body.layout-bordered .section.section-alt .section-alt .h1,
body.layout-bordered .section.section-alt .section-alt h2,
body.layout-bordered .section.section-alt .section-alt .h2,
body.layout-bordered .section.section-alt .section-alt h3,
body.layout-bordered .section.section-alt .section-alt .h3,
body.layout-bordered .section.section-alt .section-alt h4,
body.layout-bordered .section.section-alt .section-alt .h4,
body.layout-bordered .section.section-alt .section-alt h5,
body.layout-bordered .section.section-alt .section-alt .h5,
body.layout-bordered .section.section-alt .section-alt h6,
body.layout-bordered .section.section-alt .section-alt .h6 {
  color: var(--color-secondary);
}
body.layout-bordered .section.section-alt .section-alt {
  background-color: transparent !important;
}
body.layout-bordered .section:not(.section-alt) .section-alt {
  background-color: transparent !important;
}

.decoration-right::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 500px;
  height: 500px;
  background-image: url("./assets/img/decorations/thorn_02.png");
  background-repeat: no-repeat;
  background-position: center right;
  transform: rotate(270deg) translateX(50%) translateY(45%);
  background-size: contain;
  z-index: 1;
  pointer-events: none;
}
.decoration-left::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 300px;
  height: 300px;
  background-image: url(./assets/img/decorations/thorn_03.png);
  background-repeat: no-repeat;
  background-position: center right;
  transform: rotate(90deg) translateX(-50%) translateY(45%);
  background-size: contain;
  z-index: 1;
  pointer-events: none;
}
.decoration-bottom > .e-con-inner::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(50%);
  width: 100%;
  height: 75px;
  background-image: url(./assets/img/decorations/thorn_01.png);
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  z-index: 1;
  pointer-events: none;
}

@media (max-width: 767px) {
  .decoration-right:after,
  .decoration-left:after {
    display: none;
  }
}
.global-swiper-pagination .swiper-pagination-bullet {
  border-radius: var(--theme-radius);
}

.fw-400 {
  font-weight: 400 !important;
}
.fw-500 {
  font-weight: 500 !important;
}
.fw-600 {
  font-weight: 600 !important;
}
.fw-700 {
  font-weight: 700 !important;
}

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-primary);
  font-weight: 400;
  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: 0.3em !important;
}

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

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

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

.fs-medium {
  font-size: var(--fs-medium);
  line-height: 1.2;
}

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

.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: 2px;
}

.button,
.nav--top ul.menu > li > a,
.nav--legal ul.menu > li > a,
.e-parent.section a:not([class]),
.wysiwyg a:not([class]) {
  text-decoration: none !important;
  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;
}
.button:hover,
.nav--top ul.menu > li > a:hover,
.nav--legal ul.menu > li > a:hover,
.e-parent.section a:not([class]):hover,
.wysiwyg a:not([class]):hover {
  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 .nav--legal ul.menu > li > a,
.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 .nav--legal ul.menu > li > a:hover,
.section-alt .wysiwyg a:not([class]):hover {
  color: var(--color-white);
}

/* Verhindert Text-Überlauf in Layouts */
/* Verbessert das Rendering von Schriften */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  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: 170px;
}

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.5;
  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-site {
  overflow-x: clip;
}

.main-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
}
.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: space-between;
  transition: all 0.3s ease;
  will-change: height;
  position: relative;
  padding-top: 1em;
}
@media (min-width: 1224px) {
  .main-header__inner {
    gap: var(--card-spacing);
  }
}
@media (max-width: 1223px) {
  .main-header__top-menu .nav {
    display: none;
  }
}
.main-header__logo {
  height: auto;
  position: relative;
  display: flex;
  align-items: center;
  z-index: 110;
  margin-right: auto;
}
.main-header__logo a {
  display: block;
  height: 100%;
  text-decoration: none;
  color: currentColor;
}
.main-header__logo img {
  height: 100%;
  width: auto;
  object-fit: contain;
  object-position: center;
  display: block;
}
.main-header__logo h1 {
  font-size: 1.5rem;
  margin: 0;
}
.main-header__logo h1 a {
  color: var(--color-secondary);
  text-decoration: none;
}
.main-header__navigation {
  display: flex;
  align-items: center;
  position: relative;
}
@media (min-width: 1224px) {
  .main-header__navigation {
    display: none;
  }
}
.main-header__trash-page {
  display: flex;
  align-items: center;
  z-index: 110;
  margin-left: 1em;
}
@media (max-width: 1223px) {
  .main-header__trash-page {
    display: none;
  }
}
.main-header__trash-page a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: currentColor;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.main-header__trash-page a:hover {
  opacity: 1;
}
.main-header__trash-page svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  display: block;
}
.main-header.headroom--not-top:before {
  background-color: var(--color-secondary);
}
.main-header.headroom--not-top .main-header__inner {
  height: var(--height-header-scrolled);
}

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

.hero {
  position: relative;
  padding-top: calc(var(--height-header) + var(--vertical-padding));
  padding-bottom: calc(var(--vertical-padding) / 2);
}
.hero--project {
  padding-top: 0 !important;
}
.hero--project .hero__content {
  flex-direction: column-reverse;
  gap: calc(0.75 * var(--vertical-padding));
  align-items: flex-start;
}
.hero--project .hero__image {
  max-width: calc(100% + var(--card-spacing) * 2);
  margin-left: calc(-1 * var(--card-spacing));
  margin-right: calc(-1 * var(--card-spacing));
  width: calc(100% + 2 * var(--card-spacing));
}
.hero--project .hero__image > img {
  max-width: unset !important;
}
.hero__group {
  display: flex;
  gap: var(--card-spacing);
}
.hero__group:not(:last-child) {
  margin-bottom: calc(var(--vertical-padding) / 2);
}
@media (max-width: 767px) {
  .hero__group {
    flex-direction: column;
    gap: var(--card-spacing);
  }
}
.hero__container {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr;
}
.hero__title {
  margin: 0;
}
.hero .button {
  --fs-button: 0.8em;
}
.hero__container {
  position: relative;
  width: 100%;
  margin: 0 auto;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: var(--horizontal-padding);
}
.hero__content {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: var(--horizontal-padding);
  align-items: center;
  z-index: 3;
}
@media (max-width: 767px) {
  .hero__content {
    flex-direction: column;
    gap: var(--card-spacing);
    align-items: flex-start;
  }
}
.hero__image {
  flex-shrink: 0;
  flex: 0 0 32%;
  max-width: 32%;
  width: 100%;
}
.hero__image--above-text {
  max-width: 100%;
}
@media (max-width: 767px) {
  .hero__image {
    max-width: 100%;
    width: 100%;
  }
}
.hero__image video {
  display: block;
  width: 100%;
  object-fit: cover;
}
.hero__image img {
  display: block;
  width: 100%;
  max-width: unset !important;
}
.hero__main {
  padding-bottom: calc(var(--vertical-padding) / 2);
}
.hero__main-inner {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
}
.hero__meta {
  max-width: 50%;
  width: 100%;
}
.hero__meta-item {
  display: flex;
  flex-direction: column;
}
@media (max-width: 767px) {
  .hero__meta {
    max-width: 100%;
  }
}
.hero__text {
  max-width: 50%;
  width: 100%;
  margin-left: auto;
  padding: 0 !important;
}
@media (max-width: 767px) {
  .hero__text {
    max-width: 100%;
    width: 100%;
    margin: 0;
  }
}
.hero__subtitle {
  font-size: var(--fs-h5);
  font-family: var(--ff-alt);
  text-transform: uppercase;
  margin-top: 0.5rem;
  margin-bottom: 0;
  max-width: 600px;
}
.hero__top-button {
  margin-bottom: 2.5rem;
}
.hero__buttons {
  margin-top: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
.hero__quote {
  width: 100%;
}
.hero__quote-title {
  max-width: 50%;
  width: 100%;
  margin: 0;
}
.hero__quote-text {
  max-width: 50%;
  width: 100%;
  margin: 0 0 0 auto;
  padding: 0 !important;
  border: none;
}
.hero__quote-text p {
  margin: 0;
}
@media (max-width: 767px) {
  .hero__quote-title {
    max-width: 100%;
    width: 100%;
    margin: 0;
  }
  .hero__quote-text {
    max-width: 100%;
    width: 100%;
    margin: 0;
  }
}
.hero__bg-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  padding: 0 !important;
}
.hero__bg-image img,
.hero__bg-image video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.hero--has-bg-image .hero__container {
  z-index: 2;
}

.header-logo .logo-presentation-inner {
  white-space: nowrap;
  display: flex;
  font-family: "Scope", sans-serif;
  font-size: var(--fs-medium);
}
.header-logo .logo-presentation-inner .init-char {
  animation-name: logomove;
  animation-iteration-count: infinite;
  animation-duration: 2.5s;
  animation-timing-function: cubic-bezier(0.37, 0, 0.63, 1);
  font-variation-settings: "wght" 60, "wdth" 400;
}
.header-logo .logo-presentation-inner .init-char:nth-child(1) {
  animation-delay: 0s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(2) {
  animation-delay: 0.2s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(3) {
  animation-delay: 0.4s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(4) {
  animation-delay: 0.6s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(5) {
  animation-delay: 0.8s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(6) {
  animation-delay: 1s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(7) {
  animation-delay: 1.2s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(8) {
  animation-delay: 1.4s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(9) {
  animation-delay: 1.6s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(10) {
  animation-delay: 1.8s;
}
.header-logo .logo-presentation-inner .init-char:nth-child(11) {
  animation-delay: 2s;
}

@keyframes logomove {
  0%, 100% {
    font-variation-settings: "wght" 60, "wdth" 400;
  }
  20% {
    font-variation-settings: "wght" 100, "wdth" 600;
  }
}
.main-footer {
  width: 100%;
  margin-top: auto;
  padding-bottom: calc(var(--vertical-padding) / 4);
}
.main-footer__inner {
  display: flex;
  flex-direction: column;
  gap: 2em;
  z-index: 2;
}
.main-footer__contact {
  font-style: normal;
}

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

.button {
  --color-button: var(--color-text);
  --bg-button: transparent;
  text-decoration: none !important;
  background-color: var(--bg-button);
  border: none;
  color: var(--color-button);
  padding: 0.1em 0;
  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;
}
.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;
}

.swt-form {
  --form-radius: calc(var(--theme-radius) / 2);
  width: 100%;
}
.swt-form-wrapper {
  padding: var(--card-padding);
}
.swt-form__fields {
  display: flex;
  flex-wrap: wrap;
  gap: var(--card-spacing);
  margin-bottom: var(--card-spacing);
}
.swt-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.swt-form__field.field-width-100 {
  width: 100%;
}
.swt-form__field.field-width-50 {
  width: 100%;
}
@media (min-width: 768px) {
  .swt-form__field.field-width-50 {
    width: calc(50% - var(--card-spacing) / 2);
  }
}
.swt-form__field.field-width-33 {
  width: 100%;
}
@media (min-width: 1224px) {
  .swt-form__field.field-width-33 {
    width: calc(33.333% - var(--card-spacing) / 1.5);
  }
}
.swt-form__label {
  font-weight: 600;
  font-size: var(--fs-small);
  color: var(--color-text);
}
.swt-form__label .required {
  color: var(--color-primary);
}
.swt-form__input {
  width: 100%;
  padding: 1rem;
  border: var(--theme-border) solid var(--color-text);
  border-width: 0 0 1px 0;
  padding-left: 0;
  padding-right: 0;
  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;
}
.swt-form__input:focus {
  outline: none;
  border-color: var(--color-primary);
}
.swt-form__input::placeholder {
  color: var(--color-text);
  opacity: 0.5;
}
.swt-form textarea.swt-form__input {
  resize: vertical;
  min-height: 150px;
}
.swt-form select.swt-form__input {
  cursor: pointer;
}
.swt-form__options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.swt-form__option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: var(--fs-default);
}
.swt-form__option input {
  cursor: pointer;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
}
.swt-form__actions {
  display: flex;
  justify-content: flex-start;
}
.swt-form__messages {
  margin-top: var(--card-spacing);
}
.swt-form__message {
  padding: 1rem;
  border-radius: var(--form-radius);
  margin-bottom: 1rem;
}
.swt-form__message--success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}
.swt-form__message--error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}
.swt-form.hide-labels .swt-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;
}
.swt-form.hide-labels .swt-form__field {
  gap: 0;
}

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

.swt-form.floating-labels .swt-form__field.floating-label-field {
  position: relative;
  padding-top: 1.5rem;
  gap: 0;
}
.swt-form.floating-labels .swt-form__field.floating-label-field .swt-form__label {
  position: absolute;
  top: 2.5rem;
  left: 0;
  font-size: var(--fs-default);
  font-weight: 400;
  opacity: 0.5;
  pointer-events: none;
  cursor: text;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  transition: top 0.2s ease, font-size 0.2s ease, font-weight 0.2s ease, opacity 0.2s ease;
}
.swt-form.floating-labels .swt-form__field.floating-label-field:has(.swt-form__input:focus) .swt-form__label, .swt-form.floating-labels .swt-form__field.floating-label-field:has(.swt-form__input:not(:placeholder-shown)) .swt-form__label, .swt-form.floating-labels .swt-form__field.floating-label-field.has-value .swt-form__label {
  top: 0;
  font-size: var(--fs-small);
  font-weight: 600;
  opacity: 1;
}
.swt-form.floating-labels .swt-form__input::placeholder {
  opacity: 0;
  transition: opacity 0.15s ease;
}
.swt-form.floating-labels .swt-form__input:focus::placeholder {
  opacity: 0.4;
}

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

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

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

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

input[type=checkbox]:not(.swt-form__toggle) {
  height: 0;
  width: 0;
  opacity: 0;
  position: absolute;
  /* --- Label (Container) --- */
  /* --- Checked State --- */
}
input[type=checkbox]:not(.swt-form__toggle) + 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]:not(.swt-form__toggle) + label > a {
  text-decoration: none !important;
  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;
}
input[type=checkbox]:not(.swt-form__toggle) + label > a:hover {
  background-size: 20px var(--underline-height), 0 var(--underline-height), 100% var(--underline-height);
  background-position: calc(100% + 20px) 100%, 100% 100%, 0 100%;
}
input[type=checkbox]:not(.swt-form__toggle) + label > a {
  margin-right: 0.25em;
}
input[type=checkbox]:not(.swt-form__toggle) + label > span:not([class]) {
  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]:not(.swt-form__toggle) + label:hover > span:not([class]) {
  background: var(--checkbox-hover-bg);
}
input[type=checkbox]:not(.swt-form__toggle):checked + label > span:not([class]) {
  /* Uses the checked color variable */
  border: 0.5em solid var(--checkbox-checked-color);
  animation: shrswt-bounce 200ms cubic-bezier(0.4, 0, 0.23, 1);
  /* The Checkmark */
}
input[type=checkbox]:not(.swt-form__toggle):checked + label > span:not([class]):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]:not(.swt-form__toggle) + 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 shrswt-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);
  }
}
/* --- Toggle Switch Styling --- */
.swt-form__toggle {
  height: 0;
  width: 0;
  opacity: 0;
  position: absolute;
  /* Toggle Label (Container) */
  /* The Slider Background */
  /* Toggle Text */
  /* Checked State */
  /* Focus State */
  /* Disabled State */
}
.swt-form__toggle + .swt-form__toggle-label {
  --toggle-width: 70px;
  --toggle-height: 40px;
  --toggle-padding: 7px;
  --toggle-bg-off: var(--bg-default);
  --toggle-bg-on: var(--color-primary);
  --toggle-slider-color: var(--bg-alt);
  --toggle-slider-color-on: #fff;
  --toggle-transition: 0.3s;
  margin-top: 8px;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  user-select: none;
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-slider {
  position: relative;
  display: inline-block;
  width: var(--toggle-width);
  height: var(--toggle-height);
  border: var(--theme-border) solid var(--color-primary);
  background-color: var(--toggle-bg-off);
  border-radius: calc(var(--toggle-height) / 2);
  transition: background-color var(--toggle-transition);
  /* The Moving Circle */
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-slider::before {
  content: "";
  position: absolute;
  margin-top: calc(var(--theme-border) * -1);
  top: var(--toggle-padding);
  left: var(--toggle-padding);
  width: calc(var(--toggle-height) - var(--toggle-padding) * 2);
  height: calc(var(--toggle-height) - var(--toggle-padding) * 2);
  background-color: var(--toggle-slider-color);
  border-radius: 50%;
  transition: transform var(--toggle-transition);
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-text {
  display: inline-flex;
  align-items: center;
  font-size: var(--fs-default);
  font-weight: 500;
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-yes,
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-no {
  transition: opacity var(--toggle-transition);
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-yes {
  opacity: 0;
  position: absolute;
}
.swt-form__toggle + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-no {
  opacity: 1;
}
.swt-form__toggle:checked + .swt-form__toggle-label .swt-form__toggle-slider {
  background-color: var(--toggle-bg-on);
}
.swt-form__toggle:checked + .swt-form__toggle-label .swt-form__toggle-slider::before {
  background-color: var(--toggle-slider-color-on, var(--toggle-slider-color));
  transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));
}
.swt-form__toggle:checked + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-yes {
  opacity: 1;
  position: static;
}
.swt-form__toggle:checked + .swt-form__toggle-label .swt-form__toggle-text .swt-form__toggle-no {
  opacity: 0;
  position: absolute;
}
.swt-form__toggle:focus + .swt-form__toggle-label .swt-form__toggle-slider {
  box-shadow: 0 0 0 3px rgba(var(--color-primary), 0.2);
}
.swt-form__toggle:disabled + .swt-form__toggle-label {
  opacity: 0.5;
  cursor: not-allowed;
}

.section-alt .swt-form__toggle + .swt-form__toggle-label {
  --toggle-bg-on: var(--color-secondary);
}

.main-navigation__trash-page {
  display: none;
}
@media (max-width: 1223px) {
  .main-navigation__trash-page {
    display: flex;
    align-items: center;
  }
}
.main-navigation__trash-page a {
  display: flex;
  align-items: center;
  gap: 0.5em;
  text-decoration: none;
  color: currentColor;
  opacity: 1;
  transition: opacity 0.2s ease;
  font-size: var(--fs-medium);
}
.main-navigation__trash-page svg {
  width: 26px;
  height: 26px;
  fill: currentColor;
  display: block;
  flex-shrink: 0;
}

.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;
}
@media (max-width: 1223px) {
  .nav--legal ul.menu {
    flex-direction: column;
    gap: 0.15rem;
  }
}
.nav--top ul.menu {
  gap: var(--card-padding);
}
@media (min-width: 1540px) {
  .nav--top ul.menu {
    gap: calc(var(--card-padding) * 2);
  }
}
.nav--top ul.menu li > a:hover {
  color: var(--bg-pink);
}
.nav--top ul.menu li.current-menu-item > a {
  color: var(--bg-pink);
}

.main-navigation .nav:not(.nav--legal) {
  display: flex;
  flex-direction: column;
}
.main-navigation .nav:not(.nav--legal) :focus-visible {
  outline: 2px solid currentColor;
}
.main-navigation .nav:not(.nav--legal) ul.menu {
  flex-direction: column;
  gap: 0.5rem;
}
.main-navigation .nav:not(.nav--legal) ul.menu > li > a {
  font-size: var(--fs-h2);
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.main-navigation .nav:not(.nav--legal) ul.menu > li > a:hover {
  opacity: 0.7;
}

.hamburger {
  --hamburger-line-height: 3px;
  background: transparent;
  position: absolute;
  right: 0;
  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-primary);
  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 {
  background-color: var(--color-secondary);
}
.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-primary, #1a5f3f);
  padding-right: calc((100vw - var(--content-default, 1400px)) / 2);
  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;
    overflow: scroll;
    overflow-x: clip;
  }
}
.main-navigation__inner {
  padding-top: calc(var(--height-header) + var(--vertical-padding) / 2);
  padding-bottom: var(--vertical-padding);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100%;
  gap: var(--vertical-padding);
}
.main-navigation__footer {
  margin-top: auto;
  font-size: var(--fs-small);
  padding-bottom: var(--vertical-padding);
}
.main-navigation__footer .nav--legal {
  margin-top: 1rem;
}

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;
}
body.menu-open .main-header__logo a {
  color: var(--color-white);
}

/* Das Spielfeld - Ein Container für alles */
#game-board {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bg-default, #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-alt);
}

/* Die Mittellinie */
#net {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  border-left: 2px dashed color-mix(in srgb, var(--bg-alt), 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 {
    display: none !important;
  }
}
.error-404 .swt-imageteaser {
  pointer-events: none;
}
.error-404 .swt-imageteaser .buttons {
  display: none;
}

@media (max-width: 767px) {
  .error-404 .swt-imageteaser__content {
    position: relative !important;
    height: 100% !important;
    background: none !important;
  }
}

.swt-imagetextteaser {
  gap: 0 !important;
}
.swt-imagetextteaser__media {
  position: relative;
}
.swt-imagetextteaser__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .swt-imagetextteaser__media {
    position: relative;
    height: auto;
  }
  .swt-imagetextteaser__media img {
    position: relative;
    aspect-ratio: 4/3;
  }
  .swt-imagetextteaser__media .swt-imagetextteaser__headline {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
.swt-imagetextteaser.image-effect--fixed {
  overflow: hidden;
}
.swt-imagetextteaser.image-effect--fixed .swt-imagetextteaser__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.swt-imagetextteaser.image-effect--fixed .swt-imagetextteaser__media img {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: 0;
  will-change: clip-path;
}
.swt-imagetextteaser.image-effect--fixed .swt-imagetextteaser__content {
  position: relative;
  z-index: 1;
}
.swt-imagetextteaser.image-effect--parallax .swt-imagetextteaser__media img {
  height: 150%;
  top: var(--parallax-offset, -25%);
  will-change: top;
}
.swt-imagetextteaser__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--vertical-padding) calc(var(--horizontal-padding) / 2);
}
@media (max-width: 767px) {
  .swt-imagetextteaser__content {
    padding-left: var(--sidegap);
    padding-right: var(--sidegap);
  }
}
.swt-imagetextteaser__overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-black);
  opacity: 0;
}
.swt-imagetextteaser__headline, .swt-imagetextteaser__subheadline {
  margin: 0;
}
.swt-imagetextteaser__headline--on-media, .swt-imagetextteaser__subheadline--on-media {
  z-index: 99;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-secondary);
}

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

.swt-textteaser__content {
  display: flex;
  flex-direction: column;
}
.swt-textteaser__headline, .swt-textteaser__subheadline {
  margin: 0;
}
.swt-textteaser__text {
  margin-top: 1em;
}
.swt-textteaser.text-align--center {
  text-align: center;
  align-items: center;
}
.swt-textteaser.text-align--right {
  text-align: right;
  align-items: flex-end;
}

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

.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: column;
  align-items: flex-start;
}
.socialicons .socialicon {
  margin-top: 0.5em;
  background-color: var(--color-white);
  color: var(--color-black);
  border-radius: 0.4em;
  padding: 0.3em;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  font-size: var(--fs-medium);
  text-decoration: none;
}

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

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

.swt-card {
  transition: transform 0.3s ease;
  position: relative;
  counter-increment: card-counter;
}
.swt-card__image {
  position: relative;
  overflow: hidden;
  border-radius: var(--theme-radius) var(--theme-radius) 0 0;
}
.swt-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.swt-card__image a:hover img {
  transform: scale(1.05);
}
.swt-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);
}
.swt-card__meta > * {
  white-space: nowrap;
}
.swt-card__meta > *:not(:last-child):after {
  content: " | ";
}
.swt-card__headline {
  hyphens: auto;
}
.swt-card__link {
  display: flex;
  margin-top: 1em !important;
}
.swt-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;
}
.swt-card.no-image .swt-card__content {
  border-radius: var(--theme-radius);
}
.swt-card.bordered {
  border: var(--theme-border) solid var(--bg-alt);
}

.section-alt .swt-card.bordered {
  border-color: var(--color-bg);
}

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

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

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

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

.swt-cards.show-counter .swt-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;
}
.swt-cards.show-counter .swt-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);
}
.swt-cards.show-counter.real-counter .swt-card::after {
  content: attr(data-cardcount);
}

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

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

.swt-accordion {
  /* --- FIXED SECTION --- */
  /* We use a space here to target the icon inside the open item */
  /* --------------------- */
}
.swt-accordion__search {
  position: relative;
  margin-bottom: var(--card-padding, 2rem);
  display: flex;
  align-items: center;
}
.swt-accordion__search-input {
  width: 100%;
  font-family: var(--ff-default);
  padding: 1em var(--card-padding);
}
.swt-accordion__search-input::placeholder {
  color: var(--color-text);
  opacity: 0.5;
}
.swt-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;
}
.swt-accordion__search-icon svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
}
.swt-accordion__item {
  border-radius: calc(var(--theme-radius) / 2);
  margin-bottom: 0.5rem;
  overflow: hidden;
  transition: background-color 0.3s ease;
  /* Targets the content expansion */
}
.swt-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;
}
.swt-accordion__item[open]::details-content {
  height: auto;
  opacity: 1;
}
.swt-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;
}
.swt-accordion__summary::-webkit-details-marker {
  display: none;
}
.swt-accordion__title {
  text-transform: initial;
  font-size: var(--fs-h4);
  position: relative;
  z-index: 1;
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.swt-accordion__summary:hover .swt-accordion__title {
  transform: translateX(2px);
}
.swt-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);
}
.swt-accordion__icon svg {
  display: block;
  width: 1rem;
  height: 1rem;
  stroke-width: 2;
}
.swt-accordion__icon svg path {
  transition: opacity 0.3s ease, stroke 0.3s ease;
}
.swt-accordion__item[open] .swt-accordion__icon {
  transform: rotate(135deg);
}
.swt-accordion__body {
  padding: var(--card-padding);
  border-top: var(--theme-border) solid var(--bg-alt);
  overflow: hidden;
}
.swt-accordion__item--hidden {
  display: none;
}

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

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

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.swt-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) {
  .swt-timeline {
    --tl-dot: 12px;
    --tl-mark: 32px;
    --tl-line-pos: 8px;
  }
}
.swt-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--tl-line-pos);
  width: 2px;
  background: currentColor;
  opacity: 0.2;
}
.swt-timeline__item {
  position: relative;
  padding-left: var(--tl-gap);
  margin-bottom: calc(var(--card-padding) * 1.5);
}
.swt-timeline__item:last-child {
  margin-bottom: 0;
}
.swt-timeline__item:hover .swt-timeline__dot {
  transform: scale(1.2);
}
.swt-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;
}
.swt-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;
}
.swt-timeline__date {
  font-size: var(--fs-small, 18px);
  font-family: var(--ff-alt);
  color: var(--tl-accent);
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}
.swt-timeline__title {
  margin: 0 0 1rem;
}
.swt-timeline--alternating::before {
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 767px) {
  .swt-timeline--alternating::before {
    left: var(--tl-line-pos);
    transform: none;
  }
}
.swt-timeline--alternating .swt-timeline__item {
  width: calc(50% - var(--tl-gap) / 2);
  padding-left: 0;
  margin-left: 0;
}
.swt-timeline--alternating .swt-timeline__item .swt-timeline__marker {
  left: auto;
  right: calc(-1 * var(--tl-gap) / 2 - var(--tl-mark) / 2);
}
.swt-timeline--alternating .swt-timeline__item--right {
  margin-left: auto;
  text-align: right;
}
.swt-timeline--alternating .swt-timeline__item--right .swt-timeline__marker {
  right: auto;
  left: calc(-1 * var(--tl-gap) / 2 - var(--tl-mark) / 2);
}
@media (max-width: 767px) {
  .swt-timeline--alternating .swt-timeline__item {
    width: 100%;
    padding-left: var(--tl-gap);
    margin-left: 0 !important;
    text-align: left !important;
  }
  .swt-timeline--alternating .swt-timeline__item .swt-timeline__marker {
    left: calc(var(--tl-line-pos) - var(--tl-mark) / 2 + 1px) !important;
    right: auto !important;
  }
}

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

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

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

.project-meta {
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: var(--card-spacing, 2rem);
  padding-block: var(--card-padding, 2rem);
}
@media (max-width: 767px) {
  .project-meta {
    grid-template-columns: 1fr;
  }
}
.project-meta__list {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  margin: 0;
}
.project-meta__item {
  display: flex;
  flex-direction: column;
  gap: 0.2em;
}
.project-meta__label {
  font-size: var(--fs-small);
  color: var(--color-text);
  opacity: 0.55;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.project-meta__value {
  margin: 0;
  font-size: var(--fs-default);
  color: var(--color-text);
  line-height: 1.4;
}

.project-gallery__inner {
  display: flex;
  flex-direction: column;
  gap: var(--card-spacing, 2rem);
}
.project-gallery__row {
  display: grid;
  gap: var(--card-spacing, 2rem);
}
.project-gallery__row--1-col {
  grid-template-columns: 1fr;
}
.project-gallery__row--2-col {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 767px) {
  .project-gallery__row--2-col {
    grid-template-columns: 1fr;
  }
}
.project-gallery__row--carousel .swiper {
  width: 100%;
  position: relative;
}
.project-gallery__row--carousel .swiper-slide {
  width: 100%;
}
.project-gallery__row--carousel .project-gallery__swiper-prev,
.project-gallery__row--carousel .project-gallery__swiper-next {
  --card-circlesize: 2rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: var(--card-circlesize, 2rem);
  height: var(--card-circlesize, 2rem);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: var(--bg-alt-init);
  color: var(--color-text-alt);
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.project-gallery__row--carousel .project-gallery__swiper-prev::after,
.project-gallery__row--carousel .project-gallery__swiper-next::after {
  display: none;
  content: none;
}
.project-gallery__row--carousel .project-gallery__swiper-prev::before,
.project-gallery__row--carousel .project-gallery__swiper-next::before {
  content: "";
  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;
}
.project-gallery__row--carousel .project-gallery__swiper-prev:hover,
.project-gallery__row--carousel .project-gallery__swiper-next:hover {
  opacity: 0.85;
}
.project-gallery__row--carousel .project-gallery__swiper-prev.swiper-button-disabled,
.project-gallery__row--carousel .project-gallery__swiper-next.swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}
.project-gallery__row--carousel .project-gallery__swiper-prev {
  left: 0.5rem;
}
.project-gallery__row--carousel .project-gallery__swiper-prev::before {
  transform: rotate(225deg);
}
.project-gallery__row--carousel .project-gallery__swiper-next {
  right: 0.5rem;
}
.project-gallery__row--carousel .project-gallery__swiper-next::before {
  transform: rotate(45deg);
}
.project-gallery__row--carousel .project-gallery__swiper-pag {
  --swiper-pagination-color: var(--color-primary);
}
.project-gallery__item video,
.project-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-contact__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--card-spacing, 2rem);
}
@media (max-width: 767px) {
  .project-contact__inner {
    grid-template-columns: 1fr;
  }
}
.project-contact__name {
  margin-bottom: 0.2em !important;
}
.project-contact__label p {
  font-weight: 600;
}

.challenge-detail__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--card-spacing, 2rem);
}
@media (max-width: 767px) {
  .challenge-detail__inner {
    grid-template-columns: 1fr !important;
  }
}
.challenge-detail__coloredboxes {
  grid-template-columns: 1fr 2fr;
}
.challenge-detail__coloredboxes > .challenge-detail__content {
  width: 100%;
  overflow: hidden;
  grid-column: 2/3;
}
.challenge-detail__label p {
  font-weight: 600;
}
.challenge-detail__content ul {
  margin: 0;
  padding-left: 1.25em;
}
.challenge-detail__content li {
  margin-bottom: 0.25em;
}

.swt-challengegrid__item {
  height: auto;
}
.swt-challengegrid__item .swt-card__inner {
  flex: 1;
  display: flex;
}
.swt-challengegrid__colorbox {
  flex: 1;
  min-height: 180px;
  display: flex;
  flex-direction: column;
}
.swt-challengegrid__link {
  margin-top: auto;
  align-self: flex-start;
}

.swt-challenge-hero {
  padding-top: calc(var(--height-header) + var(--vertical-padding));
  padding-bottom: var(--vertical-padding);
}
.swt-challenge-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  left: -100vw;
  right: -100vw;
  background-color: inherit;
  z-index: -1;
}
.swt-challenge-hero__inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.swt-challenge-hero__title {
  margin: 0;
  color: var(--color-text);
}
.swt-challenge-hero__description {
  margin: 0;
  font-size: var(--fs-default);
  color: var(--color-text);
  max-width: 70ch;
  line-height: 1.6;
}

.swt-challenge-content > * {
  padding-top: var(--vertical-padding);
  padding-bottom: var(--vertical-padding);
}

.swt-coloredbox {
  overflow: hidden;
}
.swt-coloredbox__swiper {
  width: 100%;
}
.swt-coloredbox__slide {
  width: 100%;
}
.swt-coloredbox__box {
  position: relative;
  padding: var(--card-padding);
  display: flex;
  flex-direction: column;
  aspect-ratio: 16/9;
  height: auto;
}
@media (max-width: 767px) {
  .swt-coloredbox__box {
    aspect-ratio: unset;
  }
}
.swt-coloredbox__box::before {
  content: "";
  position: absolute;
  inset: 0;
  left: -100vw;
  right: -100vw;
  background-color: inherit;
  z-index: -1;
}
.swt-coloredbox__content {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.swt-coloredbox__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
@media (max-width: 1223px) {
  .swt-coloredbox__body {
    max-width: 100%;
  }
}
.swt-coloredbox__nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 32px;
}
.swt-coloredbox__prev, .swt-coloredbox__next {
  background: none;
  border: none;
  cursor: pointer;
  font-size: var(--fs-default);
  line-height: 1;
  color: var(--color-text);
  padding: 0;
  transition: opacity 0.2s ease;
}
.swt-coloredbox__prev:hover, .swt-coloredbox__next:hover {
  opacity: 0.5;
}
.swt-coloredbox__prev.swiper-button-disabled, .swt-coloredbox__next.swiper-button-disabled {
  opacity: 0.25;
  cursor: default;
}
.swt-coloredbox__counter {
  font-size: var(--fs-default);
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 4px;
}
.swt-coloredbox__sep {
  margin-inline: 0.25em;
}
.swt-coloredbox__headline {
  margin-top: 0;
  margin-bottom: 1rem;
  color: var(--color-text);
}
.swt-coloredbox__text {
  color: var(--color-text);
  margin-top: auto;
}

.swt-joblist {
  list-style: none;
  padding: 0;
  margin: 0;
}
.swt-joblist__item__link {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.swt-joblist__item__link:hover {
  opacity: 0.6;
}
.swt-joblist__title {
  margin: 0 !important;
  line-height: 1.1;
}
.swt-joblist__subtitle {
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  font-size: var(--fs-default);
}
.swt-joblist__empty {
  opacity: 0.5;
}

.swt-logoslider {
  position: relative;
  width: 100%;
}

.swt-logoslider__track {
  overflow: hidden;
}

.swt-logoslider__wrapper {
  display: flex;
}

.swt-logoslider__item {
  flex-shrink: 0;
}

.swt-logoslider__link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.swt-logoslider__image {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.swt-logoslider__img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  object-fit: contain;
}

.swt-logoswiper {
  position: relative;
}
.swt-logoswiper__swiper {
  aspect-ratio: 16/9;
  width: 100%;
  overflow: hidden;
  border-radius: var(--theme-radius, 0);
}
.swt-logoswiper__swiper.section::before {
  display: none;
}
.swt-logoswiper__swiper.bg-alt {
  background-color: var(--color-text-alt) !important;
}
.swt-logoswiper__slide {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 8%;
}
.swt-logoswiper__img {
  display: block;
  max-width: var(--logo-max-width, 60%);
  max-height: 80%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: opacity 0.3s ease;
}
.swt-logoswiper__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.swt-logoswiper__link:hover .swt-logoswiper__img {
  opacity: 0.8;
}
.swt-logoswiper .swiper,
.swt-logoswiper .swiper-wrapper,
.swt-logoswiper .swiper-slide {
  height: 100%;
}

.swt-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background-color: var(--bg-alt-init);
  color: var(--color-text-alt-init);
  border-top: var(--theme-border) solid rgba(255, 255, 255, 0.15);
  visibility: hidden;
  opacity: 0;
  transform: translateY(100%);
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0s linear 0.3s;
  pointer-events: none;
}
.swt-cookie-banner--visible {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0s linear 0s;
  pointer-events: auto;
}
.swt-cookie-banner__inner {
  max-width: var(--content-default, 1200px);
  margin: 0 auto;
  padding: calc(var(--card-padding) * 0.7) var(--horizontal-padding);
  display: flex;
  align-items: center;
  gap: calc(var(--card-spacing) * 2);
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .swt-cookie-banner__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--card-spacing);
  }
}
.swt-cookie-banner__content {
  flex: 1;
  min-width: 0;
}
.swt-cookie-banner__title {
  font-size: var(--fs-small);
  font-weight: 600;
  margin: 0 0 0.25em;
  color: var(--color-text-alt-init);
  line-height: 1.3;
}
.swt-cookie-banner__text {
  font-size: calc(var(--fs-small) * 0.85);
  margin: 0;
  color: var(--color-text-alt-init);
  opacity: 0.75;
  line-height: 1.5;
}
.swt-cookie-banner__actions {
  display: flex;
  gap: var(--card-spacing, 20px);
  align-items: center;
  flex-shrink: 0;
}
.swt-cookie-banner__actions .button {
  color: var(--color-text-alt-init);
  white-space: nowrap;
}
@media (max-width: 767px) {
  .swt-cookie-banner__actions {
    width: 100%;
  }
  .swt-cookie-banner__actions .button {
    flex: 1;
    text-align: center;
  }
}

.swt-cookie-revoke {
  display: block;
  text-align: center;
  width: 100%;
  font-size: calc(var(--fs-small) * 0.8);
  padding: 0.35em 1em 0.5em;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  opacity: 0.45;
  transition: opacity 0.2s ease;
  cursor: pointer;
}
.swt-cookie-revoke:hover {
  opacity: 1;
}

.error-404 {
  overflow: hidden;
}

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

.swt-postgrid__item .swt-card__headline {
  font-weight: 400 !important;
}
.swt-postgrid__item .swt-card__content {
  padding-left: 0;
  padding-right: 0;
  gap: 0.25rem;
  padding-bottom: 0;
  padding-top: 0.5rem;
}

.swt-textteaser__headline {
  margin-bottom: 1em;
}

.section {
  overflow: clip;
}

.swt-colorbox__title {
  margin-bottom: 0;
}
@media (max-width: 1223px) {
  .swt-colorbox__title {
    --fs-medium: clamp(25px, calc(-21.3678516229px + 3.8639876352vw), 50px);
  }
}

.swt-colorbox__image {
  padding: var(--card-padding);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--card-spacing);
  font-size: var(--fs-default);
  width: 100%;
}
.swt-colorbox__image.align-left {
  text-align: left;
  align-items: flex-start;
}
.swt-colorbox__image.align-center {
  text-align: center;
  align-items: center;
}
.swt-colorbox__image.align-right {
  text-align: right;
  align-items: flex-end;
}
.swt-colorbox__image.valign-top {
  justify-content: flex-start;
}
.swt-colorbox__image.valign-center {
  justify-content: center;
}
.swt-colorbox__image.valign-bottom {
  justify-content: flex-end;
}
.swt-colorbox__image.valign-between {
  justify-content: space-between;
}

.swt-cardwrapper.posttype-linktree-employee .swt-card__content {
  justify-content: flex-start;
  gap: 0;
}

.e-parent > .e-con-inner > .section {
  background-color: transparent;
}
.e-parent > .e-con-inner > .section::before {
  display: none;
}

.elementor-widget-text-editor {
  break-inside: avoid;
  column-gap: var(--card-padding) !important;
}
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4,
.elementor-widget-text-editor h5,
.elementor-widget-text-editor h6 {
  margin-top: 0;
  break-after: avoid;
}
.elementor-widget-text-editor p {
  break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: 1.5em; /* Schafft sauber Raum zum nächsten Block */
}
@media (max-width: 767px) {
  .elementor-widget-text-editor {
    column-count: 1 !important;
  }
}

@media (max-width: 767px) {
  body.home .hero__image {
    padding-left: calc(2 * var(--vertical-padding));
  }
}

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