/*
 Theme Name:   BMH Theme
 Theme URI:    https://www.bmh-hessen.de/
 Description:  Child Theme für Bricks.
 Author:       Twentyone Brands
 Author URI:   https://www.twentyone-brands.com/
 Template:     bricks
 Version:      1.1
 Text Domain:  bmh
*/

/**
 * @license
 *
 * Font Family: Space Grotesk
 * Designed by: Florian Karsten
 * URL: https://github.com/floriankarsten/space-grotesk
 * License: SIL Open Font License v1.1
 * Full license text included in ./webfonts/space-grotesk/OFL.txt
 */

@font-face {
  font-family: "Space Grotesk";
  src: url("./webfonts/space-grotesk/SpaceGrotesk%5Bwght%5D.woff2")
    format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-feature-settings: "ss01", "ss04", "ss05";
  font-display: swap;
}

/**
 * @license
 *
 * Font Family: Clash Display
 * Designed by: Indian Type Foundry
 * URL: https://www.fontshare.com/fonts/clash-display
 * © 2026 Indian Type Foundry
 *
 * Clash Display Variable (Variable font)
 */

@font-face {
  font-family: "Clash Display";
  src: url("./webfonts/clash-display/ClashDisplay-Variable.woff2")
    format("woff2");
  font-weight: 200 700;
  font-display: swap;
  font-style: normal;
}

/* ------------------------- Scaling System ------------------------- */

:root {
  /*
   * 16px Browser-Standardschrift → 10px Root-Schrift.
   * Größere Browser-Standardschrift bleibt wirksam.
   */
  font-size: 62.5%;

  /*
   * Wird durch JavaScript an die Root-Schriftgröße angepasst.
   * Ohne JavaScript entspricht die Darstellung dem alten System.
   */
  --user-font-scale: 1;

  --size-unit: 18;
  --size-container-ideal: 1920;
  /*--size-container-min: 1032px;*/
  --size-container-min: 1280px;
  --size-container-max: 2560px;

  --size-container: clamp(
    var(--size-container-min),
    100vw,
    var(--size-container-max)
  );

  --size-font-fluid: calc(
    var(--size-container) / (var(--size-container-ideal) / var(--size-unit))
  );

  --size-font: calc(var(--size-font-fluid) * var(--user-font-scale));

  --font-family-a: "Clash Display", "Arial", system-ui, sans-serif;
  --font-family-b: "Space Grotesk", "Roboto", "Arial", system-ui, sans-serif;

  --mask-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M14 19L21 12L14 5' stroke='currentColor' stroke-width='2' stroke-miterlimit='10'/%3E%3Cpath d='M21 12H2' stroke='currentColor' stroke-width='2' stroke-miterlimit='10'/%3E%3C/svg%3E")
    center bottom / contain no-repeat;

  --h1: 8em;
  --h2: 3.5em;
  --h3: 4.25em;
  --h4: 2.5em;
  --h5: 1.75em;
  --h6: 1.5em;
}

@media screen and (max-width: 991px) {
  :root {
    --size-container-ideal: 1100;
    --size-container-min: 768px;
    --size-container-max: 991px;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --size-container-ideal: 767;
    --size-container-min: 479px;
    --size-container-max: 767px;
  }
}

@media screen and (max-width: 478px) {
  :root {
    --size-container-ideal: 478;
    --size-container-min: 320px;
    --size-container-max: 478px;
  }
}

body {
  font-size: var(--size-font);
}

@media screen and (max-width: 991px) {
  :root {
    --h1: 5em;
    --h2: 4em;
    --h3: 3.5em;
    --h4: 3em;
    --h5: 2.25em;
    --h6: 2em;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --h1: 3.75em;
    --h2: 3em;
    --h3: 2.85em;
    --h4: 2em;
    --h5: 1.85em;
    --h6: 1.65em;
  }
}

@media screen and (max-width: 478px) {
  :root {
    --h1: 2.55em;
    --h2: 2.35em;
    --h3: 2.25em;
    --h4: 1.75em;
    --h5: 1.5em;
    --h6: 1.25em;
  }
}

/* Framework */

[id] {
  scroll-margin-top: -1em;
}

@media screen and (max-width: 767px) {
  [id] {
    scroll-margin-top: 2.75em;
  }
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html,
body {
  scrollbar-gutter: stable;
}

a,
button,
[role="button"],
[type="button"],
input,
textarea,
select,
label,
.case-accordion__item {
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  scroll-behavior: auto !important;
}

/* Lenis */

html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* Accessibility */

body.bricks-is-frontend :focus:not(:focus-visible),
.btn-arrow-shift:focus-visible {
  outline: none !important;
}

body.bricks-is-frontend :focus-visible {
  outline: solid 3px var(--base);
  outline-offset: 2px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(0 100% 100% 0);
  white-space: nowrap;
  border-width: 0;
}

/* Normalizer */

ul[class],
ol[class] {
  padding: 0;
  margin: 0;
  list-style: none;
}

ul.wp-block-list,
ol.wp-block-list {
  padding-left: 1em;
  margin: inherit;
  margin-top: 1em;
  list-style: inherit;
}

ul.wp-block-list {
  list-style-type: disc;
}

ol.wp-block-list {
  list-style-type: decimal;
}

address {
  font-style: normal;
}

.bricks-is-frontend img {
  pointer-events: none;
}

/* Text */

::selection {
  background: var(--secondary);
  color: #000;
}

body {
  font-size: var(--size-font);
  font-family: var(--font-family-a);
  color: var(--text-color);
  background: var(--white);
}

:where(p, .brxe-text-basic) {
  line-height: var(--text-line-height);
  font-weight: var(--text-font-weight);
  letter-spacing: var(--letter-spacing);
  max-width: 60ch;
}

.brxe-text :where(p, ul, ol) {
  line-height: var(--text-line-height);
}

strong {
  font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: var(--heading-line-height);
  color: var(--heading-color);
  font-weight: var(--heading-font-weight);
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing);
}

h1 {
  font-size: var(--h1);
}
h2 {
  font-size: var(--h2);
  text-decoration: underline;
}
h2.is--thin {
  font-size: var(--h3);
  font-weight: 300;
  text-decoration: none;
}
h3 {
  font-size: var(--h2);
  text-decoration: underline;
}
h3.is--thin {
  font-size: var(--h3);
  font-weight: 300;
  text-decoration: none;
}
h4 {
  font-size: var(--h4);
}
h5 {
  font-size: var(--h5);
}
h6 {
  font-size: var(--h6);
}

:is(h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

.inverse,
.inverse :where(h1, h2, h3, h4, h5, h6, a) {
  color: var(--white);
}

@media screen and (max-width: 767px) {
  h2.is--thin,
  h3.is--thin {
    font-size: var(--h2);
  }
}

/* Containers */

:where(section:not(section section)) {
  padding: var(--padding-section);
}

@media screen and (max-width: 767px) {
  :where(section:not(section section)) {
    padding-top: var(--space-m);
    padding-bottom: var(--space-m);
  }
}

:where(.brxe-container) > .brxe-block,
:where(.brxe-container) {
  gap: var(--content-gap);
}

main > section:last-of-type {
  padding-bottom: var(--space-3xl);
}

@media screen and (min-width: 992px) {
  main > section:last-of-type {
    padding-bottom: calc(var(--space-3xl) * 2);
  }
}

/* Grid Util */

.grid {
  display: grid;
  gap: var(--grid-gap-l);
}

.grid-1 {
  grid-template-columns: var(--grid-1);
}
.grid-2 {
  grid-template-columns: var(--grid-2);
}
.grid-3 {
  grid-template-columns: var(--grid-3);
}
.grid-4 {
  grid-template-columns: var(--grid-4);
}
.grid-5 {
  grid-template-columns: var(--grid-5);
}

.grid-1-2 {
  grid-template-columns: var(--grid-1-2);
}
.grid-1-3 {
  grid-template-columns: var(--grid-1-3);
}
.grid-1-4 {
  grid-template-columns: var(--grid-1-4);
}
.grid-2-1 {
  grid-template-columns: var(--grid-2-1);
}
.grid-2-3 {
  grid-template-columns: var(--grid-2-3);
}
.grid-2-4 {
  grid-template-columns: var(--grid-2-4);
}
.grid-3-1 {
  grid-template-columns: var(--grid-3-1);
}
.grid-3-2 {
  grid-template-columns: var(--grid-3-2);
}
.grid-3-4 {
  grid-template-columns: var(--grid-3-4);
}
.grid-4-1 {
  grid-template-columns: var(--grid-4-1);
}
.grid-4-2 {
  grid-template-columns: var(--grid-4-2);
}
.grid-4-3 {
  grid-template-columns: var(--grid-4-3);
}

@media (max-width: 991px) {
  .grid {
    gap: var(--content-gap);
  }
  .grid-2,
  .grid-3,
  .grid-4,
  .grid-5,
  .grid-1-2,
  .grid-1-3,
  .grid-1-4,
  .grid-2-1,
  .grid-2-3,
  .grid-2-4,
  .grid-3-1,
  .grid-3-2,
  .grid-3-4,
  .grid-4-1,
  .grid-4-2,
  .grid-4-3 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991px) {
  .grid--m-1 {
    grid-template-columns: 1fr;
  }
  .grid--m-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid--m-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .grid--s-1 {
    grid-template-columns: 1fr;
  }
  .grid--s-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid--s-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 478px) {
  .grid--xs-1 {
    grid-template-columns: 1fr;
  }
  .grid--xs-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid--xs-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.grid.grid-2:has(> hgroup:first-child) > :nth-child(2),
.grid.grid-3:has(> hgroup:first-child) > :nth-child(2),
.grid.grid-4:has(> hgroup:first-child) > :nth-child(2) {
  padding-top: 2.25em;
}

@media (max-width: 767px) {
  .grid.grid-2:has(> hgroup:first-child) > :nth-child(2),
  .grid.grid-3:has(> hgroup:first-child) > :nth-child(2),
  .grid.grid-4:has(> hgroup:first-child) > :nth-child(2) {
    padding-top: unset;
  }
  .grid.grid-2:has(hgroup) {
    display: block;
    overflow-wrap: anywhere;
  }
}

.col-1 {
  grid-column: 1;
}
.col-2 {
  grid-column: 2;
}
.col-3 {
  grid-column: 3;
}
.col-4 {
  grid-column: 4;
}

.col-span-2 {
  grid-column: span 2;
}
.col-span-3 {
  grid-column: span 3;
}

.g-align-end {
  align-items: end;
}
.g-align-start {
  align-items: start;
}
.g-align-center {
  align-items: center;
}

/* Aspect Ratio Util */

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

/* Fix overflow */

.bricks-is-frontend header {
  max-width: 100vw;
}

body.bricks-is-frontend {
  overflow-x: clip;
}

.brxe-section {
  overflow-x: hidden;
  overflow-x: clip;
}

body.bricks-is-frontend.no-scroll {
  overflow: hidden !important;
}

/* Custom link */

body .brxe-post-content a:not([class]),
body .brxe-text a:not([class]),
body label a {
  text-decoration-line: underline;
  text-decoration-color: currentColor;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
  transition:
    color 0.3s ease,
    text-decoration-color 0.3s ease;
}

body .bg-mesh .brxe-post-content a:not([class]),
body .bg-mesh .brxe-text a:not([class]),
body .bg-mesh label a {
  text-decoration-color: var(--primary);
}

body .brxe-post-content a:hover:not([class]),
body .brxe-text a:hover:not([class]),
body label a:hover,
body label a:focus-visible {
  text-decoration-color: var(--primary);
}

body .bg-mesh .brxe-post-content a:hover:not([class]),
body .bg-mesh .brxe-text a:hover:not([class]),
body .bg-mesh label a:hover,
body .bg-mesh label a:focus-visible {
  text-decoration-color: var(--primary);
  color: var(--primary);
}

/* Global Parallax */

.parallax-media {
  position: relative;
  aspect-ratio: 1/1;
  width: auto;
  min-width: 0;
  border-radius: var(--radius-main);
  overflow: clip;
}

.parallax-media__bg {
  z-index: 0;
  width: 100%;
  height: 120%;
  position: absolute;
}

.parallax-media__img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.parallax__wrapper {
  position: relative;
  width: 100%;
  border-radius: var(--radius-main);
  overflow: clip;
}

.parallax__image {
  position: absolute;
  width: 100%;
  height: 120%;
  object-fit: cover;
  transform: translate3d(0, 0, 0);
}

/* Section Divider */

.has--divider {
  position: relative;
}

.has--divider::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: var(--container-width-m);
  height: 1px;
  transform: translateX(-50%);
  background-color: var(--grey);
}

@media screen and (max-width: 991px) {
  .has--divider::after {
    width: calc(var(--container-width) - var(--space-m) * 2);
  }
}

/* ------------------------- Button: Arrow Shift ------------------------- */

:root {
  --btn-arrow-shift-color: var(--black);
  --btn-arrow-shift-bg: var(--white);
  --btn-arrow-shift-icon-color: var(--black);
  --btn-arrow-shift-icon-bg: var(--primary);
  --btn-arrow-shift-focus-color: var(--base);

  --btn-font-family: var(--font-family-b);
  --btn-font-size: 1em;
  --btn-font-weight: 400;
  --btn-letter-spacing: 0;
  --btn-text-transform: none;

  --btn-arrow-shift-height: 2.5em;
  --btn-arrow-shift-padding-x: 1em;
  --btn-arrow-shift-radius: var(--radius-pill);
  --btn-arrow-shift-border: 0.5px solid var(--secondary);
  --btn-arrow-shift-gap: 0em;
  --btn-arrow-shift-focus-inset: -0.125em;

  --btn-arrow-shift-ease-hover: cubic-bezier(0.625, 0.05, 0, 1);
  --btn-arrow-shift-ease-focus: cubic-bezier(0.32, 0.72, 0, 1);
}

.btn-arrow-shift {
  color: var(--btn-arrow-shift-color);
  -webkit-user-select: none;
  user-select: none;
  height: var(--btn-arrow-shift-height);
  /*width: fit-content;*/
  grid-column-gap: var(--btn-arrow-shift-gap);
  grid-row-gap: var(--btn-arrow-shift-gap);
  background-color: transparent;
  justify-content: center;
  align-items: center;
  padding: 0;
  font-family: var(--btn-font-family);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  letter-spacing: var(--btn-letter-spacing);
  text-transform: var(--btn-text-transform);
  line-height: 1;
  text-decoration: none;
  display: inline-flex;
  position: relative;
  --btn-arrow-shift-translate-x: calc(
    (var(--btn-arrow-shift-height) + var(--btn-arrow-shift-gap, 0em)) * -1
  );
  -webkit-tap-highlight-color: transparent;
}

.btn-arrow-shift::after {
  content: "";
  display: block;
  position: absolute;
  inset: var(--btn-arrow-shift-focus-inset);
  border-radius: var(--btn-arrow-shift-radius);
  transition: box-shadow 0.3s var(--btn-arrow-shift-ease-focus);
  pointer-events: none;
  z-index: 1;
}

.btn-arrow-shift:is(:focus-visible)::after {
  box-shadow: 0 0 0 2px var(--btn-arrow-shift-focus-color);
  outline: 3px solid var(--base);
}

.btn-arrow-shift__icon-wrap {
  aspect-ratio: 1;
  background-color: var(--btn-arrow-shift-icon-bg);
  border-radius: var(--btn-arrow-shift-radius);
  justify-content: center;
  align-items: center;
  display: flex;
  /*height: 100%;*/
  width: var(--btn-arrow-shift-height);
  height: var(--btn-arrow-shift-height);
  flex: 0 0 var(--btn-arrow-shift-height);	
  will-change: transform;
  transform-origin: left center;
  scale: 0;
  transition: scale 0.6s var(--btn-arrow-shift-ease-hover);
}

.btn-arrow-shift__icon-wrap.is--duplicate {
  z-index: 1;
  position: absolute;
  right: 0;
  transform-origin: right center;
  scale: 1;
}

.btn-arrow-shift__icon {
  width: 0.9em;
  height: 0.9em;
  color: var(--btn-arrow-shift-icon-color);
  transition: rotate 0.6s var(--btn-arrow-shift-ease-hover);
  rotate: 45deg;
}

.btn-arrow-shift__icon-wrap.is--duplicate .btn-arrow-shift__icon {
  rotate: 0deg;
}

.btn-arrow-shift__text-wrap {
  height: 100%;
  padding: 0 var(--btn-arrow-shift-padding-x);
  background-color: var(--btn-arrow-shift-bg);
  border: var(--btn-arrow-shift-border);
  border-radius: var(--btn-arrow-shift-radius);
  justify-content: center;
  align-items: center;
  display: flex;
  translate: var(--btn-arrow-shift-translate-x) 0 0;
  transition: translate 0.6s var(--btn-arrow-shift-ease-hover);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .btn-arrow-shift:is(:hover, :focus-visible) .btn-arrow-shift__icon-wrap,
  [data-hover]:is(:hover, :focus-visible)
    .btn-arrow-shift
    .btn-arrow-shift__icon-wrap {
    scale: 1;
    transition: scale 0.735s 0.05s var(--btn-arrow-shift-ease-hover);
  }

  .btn-arrow-shift:is(:hover, :focus-visible)
    .btn-arrow-shift__icon-wrap.is--duplicate,
  [data-hover]:is(:hover, :focus-visible)
    .btn-arrow-shift
    .btn-arrow-shift__icon-wrap.is--duplicate {
    scale: 0;
    transition: scale 0.735s 0.05s var(--btn-arrow-shift-ease-hover);
  }

  .btn-arrow-shift:is(:hover, :focus-visible)
    .btn-arrow-shift__icon-wrap.is--duplicate
    .btn-arrow-shift__icon,
  [data-hover]:is(:hover, :focus-visible)
    .btn-arrow-shift
    .btn-arrow-shift__icon-wrap.is--duplicate
    .btn-arrow-shift__icon {
    rotate: 45deg;
  }

  .btn-arrow-shift:is(:hover, :focus-visible) .btn-arrow-shift__icon,
  [data-hover]:is(:hover, :focus-visible)
    .btn-arrow-shift
    .btn-arrow-shift__icon {
    rotate: 0deg;
    transition:
      rotate 0.735s 0.05s var(--btn-arrow-shift-ease-hover),
      scale 0.4s ease;
  }

  .btn-arrow-shift:is(:hover, :focus-visible) .btn-arrow-shift__text-wrap,
  [data-hover]:is(:hover, :focus-visible)
    .btn-arrow-shift
    .btn-arrow-shift__text-wrap {
    translate: 0 0 0;
    transition: translate 0.735s 0.05s var(--btn-arrow-shift-ease-hover);
  }
}

.btn-arrow-shift:active .btn-arrow-shift__icon {
  scale: 0.8;
}

/* ------------------------- Mesh Background ------------------------- */

:root {
  --mesh-noise-svg: url("/wp-content/uploads/2026/07/noise.avif");
}

.bg-mesh {
  --mesh-base: #c4ff78;
  --mesh-dark: #043341;
  --mesh-grey: #effee5;
  --mesh-green: #00e6e7;

  --mesh-noise-opacity: 0.85;
  --mesh-noise-size: 125px;

  --mesh-min-height: auto;

  position: relative;
  overflow: hidden;

  min-height: var(--mesh-min-height);

  background-color: var(--base);

  background-image:
    radial-gradient(circle at 4% 89%, var(--mesh-dark) 11%, transparent 54%),
    radial-gradient(circle at 63% 112%, var(--mesh-dark) 12%, transparent 80%),
    radial-gradient(circle at 39% 42%, var(--mesh-green) 6%, transparent 61%),
    radial-gradient(circle at 13% 3%, var(--mesh-dark) 16%, transparent 84%),
    radial-gradient(circle at 98% 68%, var(--mesh-green) 8%, transparent 29%),
    radial-gradient(circle at 99% 79%, var(--mesh-base) 68%, transparent 74%);
  color: var(--white);
  border-radius: var(--radius-main);
}

@media screen and (max-width: 991px) {
  .bg-mesh {
    --mesh-green: #019697;
  }
}

.bg-mesh--var-1 {
  background-color: var(--mesh-dark);

  background-image:
    radial-gradient(circle at 87% 0%, var(--mesh-dark) 11%, transparent 80%),
    radial-gradient(circle at 9% 0%, var(--mesh-dark) 24%, transparent 90%),
    radial-gradient(circle at 74% 27%, var(--mesh-green) 4%, transparent 93%),
    radial-gradient(circle at 5% 3%, var(--mesh-green) 34%, transparent 43%),
    radial-gradient(circle at 0% 0%, var(--mesh-grey) 0%, transparent 100%),
    radial-gradient(circle at 41% 80%, var(--mesh-dark) 4%, transparent 70%);
}

.bg-mesh--var-2 {
  background-color: var(--mesh-dark);

  background-image:
    radial-gradient(circle at 99% 96%, var(--mesh-dark) 4%, transparent 70%),
    radial-gradient(circle at 0% 2%, var(--mesh-dark) 4%, transparent 70%),
    radial-gradient(circle at 27% 58%, var(--mesh-green) 4%, transparent 43%),
    radial-gradient(circle at 92% 37%, var(--mesh-green) 4%, transparent 43%),
    radial-gradient(circle at 75% 14%, var(--mesh-grey) 4%, transparent 70%),
    radial-gradient(circle at 40% 46%, var(--mesh-dark) 4%, transparent 70%);
}

.bg-mesh :where(h1, h2, h3, h4, h5, h6, a) {
  color: var(--white);
}

.bg-mesh p:not(.content-label),
.bg-mesh a,
.bg-mesh .brxe-text-basic:not(.content-label),
.bg-mesh ul li:not(:has(.content-label)) {
  text-shadow:
    0 0 1px rgba(0, 0, 0, 0.9),
    0 1px 4px rgba(0, 0, 0, 0.8);
}

.bg-mesh::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  opacity: var(--mesh-noise-opacity);
  mix-blend-mode: overlay;

  background-image: var(--mesh-noise-svg);
  background-size: var(--mesh-noise-size) var(--mesh-noise-size);
  z-index: 1;
}

.bg-mesh > * {
  position: relative;
  z-index: 2;
}

section.bg-mesh {
  margin: var(--space-xl) var(--space-s);
  width: auto;
}

.bg-mesh .btn-arrow-shift__icon-wrap {
  color: black;
}

.bg-mesh .btn-arrow-shift__text-wrap {
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(5px);
}

/* ------------------------- Text Elements ------------------------- */

.content-label {
  display: inline-block;
  font-size: 0.875em;
  font-family: var(--font-family-b);
  line-height: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-color);
  background-color: var(--primary);
  padding: 0.15em 0.15em 0.05em 0.15em;
}

.content-label + :where(h1, h2, h3, h4, h5, h6) {
  margin-block-start: 0;
}

/* ------------------------- Engagement KPIs ------------------------- */

@media screen and (max-width: 767px) {
  #engagement .grid {
    display: block;
  }
  #engagement hgroup {
    margin-bottom: var(--space-s);
  }
  #engagement hgroup h2 {
    word-break: break-word;
  }
}

.engagement-kpis .brxe-heading {
  font-size: var(--h4);
  text-decoration: none;
}

.engagement-kpis__block {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: var(--space-m);
  z-index: 2;
}

.engagement-kpis__block:first-of-type {
  margin-top: var(--space-m);
}

.engagement-kpis__number {
  margin-top: 0;
  margin-bottom: 0.06em;
  font-size: 10em;
  min-height: 1em;	
  font-weight: 200;
  line-height: 1;
  text-transform: uppercase;
  flex-wrap: wrap;
  contain: none;

  width: max-content;
  max-width: 100%;
  min-width: 0;
  flex-grow: 0;
  flex-shrink: 0;
}

.engagement-kpis__info-wrapper {
  flex: 0 1 auto;
}

.engagement-kpis__info {
  max-width: 30ch;
  margin-top: var(--space-xs);
  text-wrap: balance;
}

@media screen and (max-width: 991px) {
  .engagement-kpis__block {
    flex-direction: column;
    align-items: flex-start;
  }
  .engagement-kpis__number {
    font-size: 7.5em;
	width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .engagement-kpis__number {
    font-size: 6em;
  }
}

@media screen and (max-width: 478px) {
  .engagement-kpis__number {
    font-size: 3.5em;
  }
}

/* ------------------------- Odometer ------------------------- */

[data-odometer-element] {
  display: inline-flex;
  align-items: center;
  font-variant-numeric: tabular-nums;
}

[data-odometer-part="mask"],
[data-odometer-part="static"] {
  display: inline-block;
  overflow: clip;
  padding: 0.05em;
  margin: -0.05em;
  text-align: center;
}

[data-odometer-part="mask"]
  + [data-odometer-part="static"]:not(:has(+ [data-odometer-part="mask"])) {
  margin-inline-start: 0.075em;
}

[data-odometer-part="mask"]
  + [data-odometer-part="static"]:not(:has(+ [data-odometer-part="static"])) {
  margin-inline-start: 0em;
}

[data-odometer-part="static"] + [data-odometer-part="static"]:last-of-type {
  margin-left: 0.1em;
}

[data-odometer-part="roller"] {
  display: block;
  white-space: pre;
  text-align: center;
  will-change: transform;
}

[data-odometer-part="static"] {
  display: inline-block;
}


/* ------------------------- Quote ------------------------- */

.brxe-container.quote-wrap {
  width: fit-content;
  margin: 12.5em auto;
}

main > section:last-of-type > :last-child.brxe-container.quote-wrap {
  margin-bottom: 2em;
}

.bmh-quote p {
  font-size: 3.9em;
  font-family: var(--font-family-b);
  font-weight: 300;
  line-height: 1;
  max-width: var(--quote-max-width, 30ch);
}

/* Originalinhalt für Screenreader erhalten */
.bmh-quote__sr {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  padding: 0 !important;
  margin: -1px !important;

  overflow: hidden !important;
  clip-path: inset(50%) !important;

  white-space: nowrap !important;

  border: 0 !important;
}

/* Sofortiger visueller Fallback bei geänderter Systemeinstellung */
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  .bmh-quote__char {
    opacity: 1 !important;
  }
}

/* Saubere statische Druckversion */
@media print {
  .bmh-quote__visual {
    display: none !important;
  }

  .bmh-quote__sr {
    position: static !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;

    overflow: visible !important;
    clip-path: none !important;

    white-space: inherit !important;
  }
}

@media screen and (max-width: 991px) {
  .brxe-container.quote-wrap {
    margin: 6.5em auto;
  }
}

@media screen and (max-width: 767px) {
  .bmh-quote p {
    font-size: 2.5em;
  }
}

@media screen and (max-width: 478px) {
  .bmh-quote p {
    font-size: 1.75em;
  }
}

.bmh-quote--small {
  width: auto;
  max-width: 100%;
}

@media screen and (min-width: 768px) and (max-width: 991px) {
	.bmh-quote--small {
		font-size: 0.8em;
	}
}

.svg-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--primary);
  border-radius: var(--radius-circle);
  width: 4.65em;
  height: 4.65em;
}

.svg-circle svg {
  width: 2.25em;
  height: auto;
  display: block;
  fill: var(--primary);
}

.svg-circle.is--stroke svg {
  fill: none;
  stroke: var(--primary);
}

.quote-break {
  padding-bottom: calc(var(--space-3xl) * 1.5);
}

@media screen and (max-width: 991px) {
  .quote-break {
    padding-bottom: var(--space-xl);
  }
}

.mix-quote-wrap {
  display: flex;
  flex-direction: row;
  gap: var(--space-2xl);
  margin-top: var(--space-section);
}

.mix-quote-wrap__image {
  flex: 0 0 40%;
  aspect-ratio: 1/1;
}

.mix-quote-wrap__quote {
  flex: 0 1 auto;
}

@media screen and (max-width: 767px) {
  .mix-quote-wrap {
    gap: var(--space-l);
    margin-top: unset;
  }
  .mix-quote-wrap__image {
    aspect-ratio: 1.5/1;
    order: 2;
    flex: 1;
  }
}

/* ------------------------- Mission/Vision + Mesh Card ------------------------- */

@media screen and (min-width: 992px) {
  .vision__heading-container {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
  }

  .vision__heading-container h2,
  .vision__heading-container h3 {
    margin-right: var(--space-xs);
    max-width: 7ch;
  }

  .vision__heading-container .brxe-text {
    max-width: 45ch;
    margin-bottom: 0.8em;
  }
}

.mesh-card__wrapper {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin-top: var(--space-l);
  perspective: 900px;
  align-items: stretch;
}

.mesh-card__wrapper .mesh-card {
  flex: 1 0 49%;
}

.mesh-card {
  padding: var(--space-m);
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.mesh-card h3 {
  font-size: var(--h4);
  text-decoration: none;
}

.mesh-card .svg-circle {
  margin-top: auto;
  margin-left: auto;
}

/* ------------------------- Image Strip ------------------------- */

.image-strip__container {
  display: grid;
  grid-template-columns: 1fr 1.95fr 1fr;
  gap: var(--space-s);
  margin-top: var(--space-3xl);
  aspect-ratio: 3 / 1;
  height: 100%;
}

.image-strip__col {
  display: grid;
  gap: var(--space-s);
  min-width: 0;
  min-height: 0;
  height: 100%;
}

.image-strip__item {
  overflow: hidden;
  min-width: 0;
  height: 100%;
  width: 100%;
  border-radius: var(--radius-xs);
}

.image-strip__col--right .image-strip__item:last-child {
  border-radius: var(--radius-main);
}

.image-strip__item img {
  width: 100%;
  height: 120%;
  object-fit: cover;
  display: block;
}

.image-strip__col--left {
  grid-template-rows: 1.55fr 1fr;
}

.image-strip__col--right {
  grid-template-rows: 1fr 1.55fr;
}

@media (max-width: 767px) {
  .image-strip__container {
    grid-template-columns: 1fr;
    aspect-ratio: auto;
    gap: var(--space-xs);
  }

  .image-strip__col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    height: auto;
    gap: var(--space-xs);
  }

  .image-strip__item {
    height: auto;
    aspect-ratio: 1 / 1;
  }

  .image-strip__container > .image-strip__item {
    aspect-ratio: 16 / 9;
  }
}

/* ------------------------- Footer ------------------------- */

footer .brxe-code {
  width: auto;
}

.footer-wrap {
  margin: var(--space-s);
  width: auto;
  padding: var(--padding-section);
  padding-bottom: var(--space-l);
}

.footer-main-content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

@media screen and (max-width: 991px) {
  .footer-main-content {
    flex-wrap: wrap;
  }
}

.footer-info-wrap {
  width: fit-content;
  margin-right: var(--space-3xl);
}

@media screen and (max-width: 767px) {
  .footer-wrap {
    padding-top: var(--space-l);
  }
  .footer-info-wrap {
    margin-bottom: var(--space-xl);
    margin-right: unset;
  }
}

footer h2 {
  font-size: var(--h4);
  text-decoration: none;
  margin-bottom: var(--space-2xs);
}

footer .svg-circle {
  width: 1.75em;
  height: 1.75em;
  border: 1px solid var(--primary);
  flex-shrink: 0;
}

footer .svg-circle svg {
  width: 0.9em;
}

.footer-adress {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-l);
}

.footer-adress__info {
  display: flex;
  flex-direction: row;
  gap: var(--space-s);
  align-items: baseline;
}

.footer-adress__info p {
  margin-bottom: 0.1em;
}

.footer-adress__info p a {
  min-height: 24px;
}

@media screen and (max-width: 478px) {
  .footer-adress__info p {
    margin-bottom: 0.75em;
  }
}

.footer-adress__text {
  width: auto;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.footer-adress__text a {
  display: inline-block;
}

.footer-nav {
  display: flex;
  flex-direction: column;
  gap: var(--space-m);
  padding-bottom: var(--space-l);
}

@media screen and (max-width: 478px) {
  .footer-nav {
    padding-bottom: unset;
  }
}

.footer-nav__group-list-item {
  overflow: clip;
  margin-bottom: var(--space-m);
  padding: 0.1em;
}

.footer-nav__group-list-item a {
  margin-bottom: 0;
}

.footer-nav__heading {
  font-size: calc(var(--h6) * 0.85);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: var(--space-xs);
  overflow-x: clip;
}

@media screen and (max-width: 767px) {
  .footer-nav__heading {
    font-size: var(--h5);
  }
}

.footer-nav__list {
  line-height: var(--text-line-height);
}

.footer-nav__list li {
  overflow-x: clip;
}

.footer-nav a {
  --arrow-space: 1.15em;

  display: inline-block;
  padding-inline-start: var(--arrow-space);
  text-decoration: none;
  transform: translateX(calc(-1 * var(--arrow-space)));
  transition: transform 0.4s cubic-bezier(0.38, 0.005, 0.215, 1);
  min-height: 24px;
}

.footer-nav a::before {
  content: "";
  position: absolute;

  inset-inline-start: 0;

  /* Vertikal mittig zur ersten Textzeile */
  top: calc((1lh - 0.95em) / 2);

  width: var(--arrow-space);
  height: 0.8em;

  transform: translateY(0.05em);

  background: var(--primary);
  -webkit-mask: var(--mask-arrow);
  mask: var(--mask-arrow);
}

.footer-nav a:hover,
.footer-nav a:focus-visible {
  transform: translateX(0);
}

.mag-zone {
  width: 7.5em;
  height: 7.5em;
  display: flex;
  align-self: flex-end;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
}

@media screen and (max-width: 767px) {
  .mag-zone {
    margin-left: auto;
  }
}

.back-to-top {
  --size: 5em;
  --icon-size: 1.75em;

  display: inline-flex;
  align-self: center;
  align-items: center;
  justify-content: center;

  inline-size: var(--size);
  block-size: var(--size);

  background: transparent;
  color: var(--primary);
  border: 0.135em solid var(--primary);
  border-radius: 50%;

  text-decoration: none;
  transition:
    color 0.45s ease-in-out,
    background 0.45s ease-in-out;
}

.back-to-top__icon {
  inline-size: var(--icon-size);
  block-size: auto;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background: var(--primary);
  color: black;
  box-shadow: rgba(0, 0, 0, 0.2) 0 20px 30px;
}

.back-to-top:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 0.25rem;
  box-shadow: 0 0 0 4px #000;
}

/* ------------------------- Footer Meta ------------------------- */

.footer-meta {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-s);
  font-size: 0.9em;
}

/* ------------------------- Links ------------------------- */

.footer-meta a {
  position: relative;
  color: inherit;
  text-decoration: none;
  min-height: 24px;
}

/* Animated underline */

.footer-meta a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.25em;

  width: 100%;
  height: 0.05em;

  background-color: var(--primary);

  transform: scaleX(0) rotate(0.001deg);
  transform-origin: right;

  transition: transform 0.735s cubic-bezier(0.625, 0.05, 0, 1);
}

@media (hover: hover) and (pointer: fine) {
  .footer-meta a:hover::before {
    transform: scaleX(1) rotate(0.001deg);
    transform-origin: left;
  }
}

.footer-meta a:focus-visible::before {
  transform: scaleX(1) rotate(0.001deg);
  transform-origin: left;
}

/* ------------------------- Legal Links ------------------------- */

.footer-meta__legal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  column-gap: 0.5em;
  row-gap: 0.5em;

  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-meta__legal > li {
  display: flex;
  align-items: center;
}

.footer-meta__legal > li:not(:last-child)::after {
  content: "";

  width: 1px;
  height: 1em;

  margin-left: 0.5em;

  background-color: currentColor;

  flex: 0 0 auto;
}

@media screen and (max-width: 767px) {
  .footer-meta__legal > li::after {
    display: none;
  }
}

@media screen and (max-width: 478px) {
  .footer-meta {
    flex-direction: column;
    align-items: flex-start;
  }
}

.horizontal .line {
  border-top: 1px solid;
  border-top-color: var(--secondary);
  margin-bottom: var(--space-xs);
}

footer .horizontal .line {
  margin-top: var(--space-s);
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top,
  .footer-nav a,
  .footer-meta a::before {
    transition: none;
  }
}

.bg-mesh *:focus-visible {
  outline: 3px solid #000;
  outline-offset: 3px;
  box-shadow: 0 0 0 4px #fff;
}

.bg-mesh .btn-arrow-shift:focus-visible {
  border-radius: 999px;
}

/* ------------------------- Header / Mega Menu ------------------------- */

#brx-header {
  z-index: 999;
}

[data-menu-wrap] {
  --nav-height: 4em;
  --mega-panel-height: 0px;
}

.mega-nav {
  z-index: 999;
  position: fixed;
  width: 100%;
  top: 0;
  font-family: var(--font-family-b);
}

.mega-nav__bar {
  z-index: 3;
  background-color: var(--white);
  border-bottom: 1px solid var(--grey);
  width: 100%;
  max-width: var(--container-width);
  border-radius: var(--radius-xs);
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

.mega-nav__container {
  height: var(--nav-height);
  justify-content: space-between;
  align-items: center;
  padding: 1em 1.5em;
  display: flex;
}

.mega-nav__bar-start {
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
}

.mega-nav__bar-logo {
  flex: none;
  width: 5.75em;
  display: flex;
  transition: transform 0.3s ease;
}

.mega-nav__bar-logo:hover {
  transform: scale(0.975);
}

.mega-nav__bar-list {
  grid-column-gap: 0;
  grid-row-gap: 0.75em;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
  display: flex;
}

.mega-nav__bar-link {
  color: #201d1d;
  background-color: #0000;
  justify-content: flex-start;
  align-items: center;
  padding: 1em 2em;
  text-decoration: none;
  display: flex;
  font-size: 1.1em;
  font-weight: 400;
  line-height: 1.2;
}

.mega-nav__bar-link-label,
.mega-nav__bar-link.is--contact {
  padding: 0.05em 0.15em;
  transition: background-color 0.3s ease;
}

/* Aktuelle Seite */
.mega-nav__page-link[aria-current="page"] .mega-nav__bar-link-label,
.mega-nav__bar-link[aria-current="page"] .mega-nav__bar-link-label {
  background: var(--primary);
}

@media (hover: hover) and (pointer: fine) /*and (prefers-reduced-motion: no-preference) */ {
  /* Gehoverten Menüpunkt bzw. geöffnetes Dropdown markieren */
  [data-nav-list-item]:hover .mega-nav__bar-link-label,
  .mega-nav__bar-item:has(.mega-nav__submenu-toggle[aria-expanded="true"])
    .mega-nav__bar-link-label {
    background: var(--primary);
  }

  /* Current-Markierung entfernen,
     sobald EIN ANDERER Menüpunkt gehovert wird */
  [data-nav-list]:has([data-nav-list-item]:hover)
    [data-nav-list-item]:not(:hover)
    .mega-nav__page-link[aria-current="page"]
    .mega-nav__bar-link-label,
  [data-nav-list]:has([data-nav-list-item]:hover)
    [data-nav-list-item]:not(:hover)
    .mega-nav__bar-link[aria-current="page"]
    .mega-nav__bar-link-label {
    background: none;
  }

  /* Current-Markierung entfernen,
     wenn EIN ANDERES Dropdown geöffnet ist */
  [data-nav-list]:has(.mega-nav__submenu-toggle[aria-expanded="true"])
    [data-nav-list-item]:not(
      :has(.mega-nav__submenu-toggle[aria-expanded="true"])
    )
    .mega-nav__page-link[aria-current="page"]
    .mega-nav__bar-link-label,
  [data-nav-list]:has(.mega-nav__submenu-toggle[aria-expanded="true"])
    [data-nav-list-item]:not(
      :has(.mega-nav__submenu-toggle[aria-expanded="true"])
    )
    .mega-nav__bar-link[aria-current="page"]
    .mega-nav__bar-link-label {
    background: none;
  }
}

.mega-nav__bar-link-label.is--contact {
  position: relative;
}

.mega-nav__bar-link-label.is--contact::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: black;
}

.mega-nav__bar-link-label.is--contact::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 0.8em;
  margin-left: 0.2em;
  background: currentColor;
  -webkit-mask: var(--mask-arrow);
  mask: var(--mask-arrow);
}

.mega-nav__bar-link-icon {
  width: 1.25em;
  transition: transform 0.25s ease;
}

.mega-nav__submenu-toggle[aria-expanded="true"] .mega-nav__bar-link-icon {
  transform: rotate(-180deg);
}

.mega-nav__bar-end {
  grid-column-gap: 0.75em;
  grid-row-gap: 0.75em;
  justify-content: flex-end;
  align-items: center;
  display: none;
}

.mega-nav__bar-inner {
  grid-column-gap: 0.75em;
  grid-row-gap: 0.75em;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
  display: flex;
}

.mega-nav__burger {
  grid-column-gap: 0.2em;
  grid-row-gap: 0.2em;
  border-radius: var(--radius-xs);
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 2.5em;
  height: 2.5em;
  padding: 0;
  background: none;
}

.mega-nav__burger-line {
  z-index: 1;
  background-color: var(--base);
  border-radius: 0;
  flex: none;
  width: 1.25em;
  height: 0.125em;
  padding: 0;
  display: block;
  position: relative;
}

.mega-nav__back {
  z-index: 2;
  opacity: 0;
  visibility: hidden;
  position: absolute;
  left: -0.625em;
}

.mega-nav__backdrop {
  z-index: 1;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  background-color: #00000040;
  position: fixed;
  inset: 0%;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

@media screen and (max-width: 991px) {
  .mega-nav__backdrop {
    backdrop-filter: none;
  }
}

.mega-nav__dropdown-wrapper {
  z-index: 2;
  pointer-events: none;
  width: 100%;
  /*max-width: 100%;*/
  max-width: var(--container-width);
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
}

.mega-nav__dropdown-container {
  position: relative;
  overflow: hidden;
}

.mega-nav__dropdown-bg {
  will-change: transform;
  background-color: var(--white);
  border-radius: var(--radius-main);
  position: absolute;
  inset: 0;
}

.mega-nav__dropdown-static {
  display: flex;
  align-items: flex-start;
}

.mega-nav__dropdown-panel {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  position: absolute;
  inset: 0 0 auto;
  overflow: hidden;
}

.mega-nav__dropdown-inner {
  display: flex;
}

.mega-nav__panel-col {
  grid-column-gap: 1.25em;
  grid-row-gap: 1.25em;
  border-right: 1px solid var(--grey);
  flex-flow: column;
  flex: 1;
  justify-content: flex-start;
  align-items: flex-start;
  padding: var(--space-xl);
  padding-top: var(--space-l);
  display: flex;
}

.mega-nav__panel-col:last-of-type {
  border: none;
}

.mega-nav__panel-col.has--card {
  padding: var(--space-xl);
  padding-top: var(--space-l);
  align-items: center;
  flex: 0 1 auto;
}

.mega-nav__panel-label {
  text-transform: uppercase;
  font-size: 0.75em;
  line-height: 1;
}

.mega-nav__panel-list {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  flex-flow: column;
  justify-content: flex-start;
  align-items: stretch;
  width: 100%;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

ul.mega-nav__panel-sublist {
  margin-bottom: var(--space-s);
}

ul.mega-nav__panel-sublist a {
  position: relative;
  transition:
    font-weight 0.25s ease,
    transform 0.3s cubic-bezier(0.353, 2, 0.6, 1) 0.1s;
}

ul.mega-nav__panel-sublist a::before {
  content: "";
  transform: translate(0, 0.075em);
  display: inline-block;
  width: 1em;
  height: 0.9em;
  background: currentColor;
  -webkit-mask: var(--mask-arrow);
  mask: var(--mask-arrow);
  transition: transform 0.35s cubic-bezier(0.353, 2, 0.6, 1);
}

@media (hover: hover) and (pointer: fine) {
  ul.mega-nav__panel-sublist a:hover {
    font-weight: 600;
    transform: translateX(0.25em);
  }
  ul.mega-nav__panel-sublist a:hover::before {
    transform: translate(0.1em, 0.075em);
  }
}

ul.mega-nav__panel-sublist a:focus-visible {
  font-weight: 600;
}

.mega-nav__panel-link {
  color: inherit;
  text-decoration: none;
  position: relative;
  width: fit-content;
}

.mega-nav__panel-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.25em;

  width: 100%;
  height: 0.075em;

  background-color: currentColor;

  transform: scaleX(0) rotate(0.001deg);
  transform-origin: right;

  transition: transform 0.735s cubic-bezier(0.625, 0.05, 0, 1);
}

@media (hover: hover) and (pointer: fine) {
  .mega-nav__panel-link:hover::after {
    transform: scaleX(1) rotate(0.001deg);
    transform-origin: left;
  }
}

.mega-nav__panel-link:focus-visible::after {
  transform: scaleX(1) rotate(0.001deg);
  transform-origin: left;
}

.mega-nav__panel-cta-text {
  font-family: var(--font-family-a);
  font-size: 1.15em;
  line-height: 1;
  font-weight: 500;
}

.mega-nav__panel-cta-text span {
  display: block;
}

.mega-nav__panel-link {
  font-size: 1.25em;
  font-weight: 700;
  color: var(--base);
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  margin: var(--space-xs) 0;
  text-decoration: none;
  display: flex;
}

.mega-nav__panel-icon {
  --size: 5em;
  --icon-size: 1.75em;

  display: inline-flex;
  align-self: center;
  align-items: center;
  justify-content: center;

  inline-size: var(--size);
  block-size: var(--size);

  background: transparent;
  color: var(--primary);
  border: 0.135em solid var(--primary);
  border-radius: 50%;

  text-decoration: none;
  transition:
    color 0.45s ease-in-out,
    background 0.45s ease-in-out;
}

.mega-nav__panel-icon__icon {
  inline-size: var(--icon-size);
  block-size: auto;
}

.mega-nav__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-s);
  justify-content: center;
}

.mega-nav__card-text {
  z-index: 1;
}

.mega-nav__card .btn-arrow-shift {
  margin-bottom: var(--space-m);
}

.mega-nav__card-visual {
  aspect-ratio: 7/4;
  width: 30em;
  max-width: 950px;
  height: auto;
  position: relative;
}

.mega-nav__card-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-main);
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .mega-nav__bar-list,
  .mega-nav__dropdown-inner {
    font-size: 1.2em;
  }
}

@media screen and (max-width: 991px) {
  .mega-nav {
    top: 0;
    left: 0;
    right: 0;
  }

  .mega-nav__bar-start {
    justify-content: space-between;
    align-items: center;
  }

  .mega-nav__bar-list {
    grid-column-gap: 0em;
    grid-row-gap: 0em;
    flex-flow: column;
    justify-content: flex-start;
    align-items: stretch;
    width: 100%;
  }

  .mega-nav__bar-list.is--actions {
    grid-column-gap: 1em;
    grid-row-gap: 1em;
    flex-flow: row;
    justify-content: space-between;
    align-items: stretch;
  }

  .mega-nav__bar-link {
    border-bottom: 1px solid var(--grey);
    border-radius: 0;
    width: 100%;
    padding: 0.75em 0;
    font-size: 1.25em;
  }

  .mega-nav__bar-link.is--dropdown {
    justify-content: space-between;
    align-items: center;
  }

  .mega-nav__bar-link.is--back {
    border-bottom-style: none;
    font-size: 1em;
  }

  .mega-nav__bar-link-label {
    font-size: 1.25em;
  }

  .mega-nav__bar-link-icon {
    width: 1.5em;
  }

  .mega-nav__panel-col.has--card {
    order: 2;
    border-bottom: 0;
    padding: calc(var(--space-l) * 0.8);
  }

  .mega-nav__panel-col.has--card {
    position: relative;
  }

  .mega-nav__panel-col.has--card::before {
    content: "";
    position: absolute;
    top: 0;
    left: calc(var(--space-l) * 0.8);
    right: calc(var(--space-l) * 0.8);
    height: 1px;
    background: var(--grey);
  }

  .mega-nav__card {
    width: 100%;
    border-bottom: none;
    border-radius: 0;
  }

  .mega-nav__card-visual {
    max-width: 100%;
  }

  .mega-nav__bar-link-icon.is--dropdown {
    transform: rotate(-90deg);
  }

  .mega-nav__bar-end {
    display: flex;
  }

  .mega-nav__bar-cta {
    padding: 1em 0.75em 1em 1em;
  }

  .mega-nav__bar-inner {
    opacity: 0;
    bottom: 0%;
    left: 0%;
    right: 0%;
    top: var(--nav-height);
    visibility: hidden;
    background-color: var(--white);
    flex-flow: column;
    justify-content: space-between;
    align-items: center;
    padding: 2em 1.5em;
    position: fixed;
    overflow: auto;

    height: calc(100dvh - var(--nav-height));
  }

  .mega-nav__backdrop {
    display: none;
    height: 100vh;
  }

  .mega-nav__dropdown-wrapper {
    z-index: 4;
    bottom: 0;
    top: var(--nav-height);
    position: fixed;
  }

  .mega-nav__dropdown-container {
    height: 100%;
    overflow: auto;
  }

  .mega-nav__dropdown-bg {
    display: none;
  }

  .mega-nav__dropdown-panel {
    background-color: var(--white);
    bottom: 0;
    overflow: auto;
  }

  .mega-nav__dropdown-inner {
    flex-flow: column;
  }

  .mega-nav__panel-col {
    border-right-style: none;
    padding: calc(var(--space-l) * 0.8);
  }

  .mega-nav__panel-label {
    width: 100%;
  }

  .mega-nav__bar-action {
    flex: 1;
  }

  .mega-nav__card-cta-icon.is--dropdown {
    transform: rotate(-90deg);
  }
}

@media screen and (max-width: 478px) {
  .mega-nav__bar-link-label {
    font-size: 1.1em;
  }

  .mega-nav__bar-link-icon {
    width: 1.375em;
  }

  .mega-nav__panel-col.has--card {
    order: 2;
    border-bottom: 0;
    border-top: 0px solid var(--grey);
    padding: calc(var(--space-l) * 0.8);
  }

  .mega-nav__card {
    border-bottom: none;
    border-radius: 0;
  }

  .mega-nav__card-content {
    padding: 1em 1em 1.5em;
  }

  .mega-nav__card-cta-label {
    font-size: 1em;
  }

  .mega-nav__card-cta-icon {
    width: 1.375em;
  }

  ul.mega-nav__panel-sublist {
    margin-bottom: var(--space-s);
  }

  .mega-nav__panel-link {
    width: fit-content;
  }
}

/* Accessibility additions; original animation CSS above is retained. */
.mega-nav__bar-item {
  padding: 0;
}
.mega-nav__page-link,
.mega-nav__submenu-toggle {
  display: inline-flex;
  align-items: center;
  color: inherit;
  font: inherit;
  line-height: inherit;
  background: transparent;
  text-decoration: none;
  border: 0;
  border-radius: 0;
  min-height: 24px;
}
.mega-nav__page-link {
  padding: 1em 0 1em 2em;
}
.mega-nav__submenu-toggle {
  padding: 1em 2em 1em 0;
  cursor: pointer;
  flex: none;
  min-width: 24px;
}
.mega-nav__logo-link {
  display: inline-flex;
  flex: none;
}
.mega-nav__submenu-toggle .mega-nav__bar-link-icon {
  display: block;
  height: auto;
}
.mega-nav__panel-label {
  margin: 0;
  font-weight: 400;
}
.mega-nav__bar-link[aria-current="page"] .mega-nav__bar-link-label,
.mega-nav__bar-link.is-current-section .mega-nav__bar-link-label {
  background: var(--primary);
}
.mega-nav :is(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--base);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

.mega-nav__page-link {
  padding: var(--space-s) 0 var(--space-s) var(--space-m);
}

.mega-nav__submenu-toggle {
  padding: var(--space-s) var(--space-m) var(--space-s) 0;
  cursor: pointer;
  flex: none;
  min-width: 24px;
}

.mega-nav [data-nav-content] :is(a, button, [tabindex]) {
  scroll-margin: 8px;
}
.mega-nav__back button {
  min-height: 24px;
}
.mega-nav__burger {
  min-width: 24px;
  min-height: 24px;
}
.mega-nav__panel-sublist a {
  display: inline-block;
  min-height: 24px;
}
.mega-nav__panel-list a {
  overflow-wrap: anywhere;
}
.mega-nav__card,
.mega-nav__panel-col {
  min-width: 0;
}
@media (min-width: 992px) {
  .mega-nav__dropdown-panel {
    max-height: max(
      0px,
      calc(100dvh - var(--mega-header-bottom, var(--nav-height)) - 8px)
    );
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media (max-width: 991px) {
  .mega-nav__bar-item {
    padding: 0;
  }
  .mega-nav__page-link {
    padding: 0.75em 0;
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .mega-nav__page-link:active .mega-nav__bar-link-label {
    background: var(--primary);
  }
  .mega-nav__submenu-toggle {
    padding: 0.75em 0 0.75em 0.5em;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-width: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mega-nav *,
  .mega-nav *::before,
  .mega-nav *::after {
    transition: none !important;
    animation: none !important;
  }
  .mega-nav__bar-logo:hover,
  .mega-nav__panel-sublist a:hover {
    transform: none;
  }
}
@media (forced-colors: active) {
  .mega-nav :is(a, button, [tabindex]):focus-visible {
    outline-color: Highlight;
    box-shadow: none;
  }
  .mega-nav__burger-line {
    background: ButtonText;
  }
}

/* Nested panels: source order belongs to each li; position stays viewport-wide.
   The decorative background and panel clipping use one animated height. */
.mega-nav__dropdown-panel {
  position: fixed;
  top: var(--mega-header-bottom, var(--nav-height));
  left: 0;
  right: 0;
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
}
@media (min-width: 992px) {
  /* The bar is the positioning ancestor; nested li/list wrappers must not be.
     Desktop top therefore never depends on a cached JavaScript measurement. */
  .mega-nav__container,
  .mega-nav__bar-start,
  .mega-nav__bar-inner,
  .mega-nav__bar-list,
  [data-nav-list-item] {
    position: static;
  }
  .mega-nav__dropdown-panel {
    position: absolute;
    top: calc(100% + 1px); /* existing 1px bottom border on .mega-nav__bar */
  }
  .mega-nav__dropdown-container {
    height: var(--mega-panel-height);
  }
  .mega-nav__dropdown-panel {
    clip-path: inset(0 0 max(0px, calc(100% - var(--mega-panel-height))) 0);
  }
}
@media (max-width: 991px) {
  .mega-nav__bar-inner {
    top: var(--mega-header-bottom, var(--nav-height));
    height: auto;
  }
  .mega-nav__dropdown-panel {
    bottom: 0;
  }
  /* Only the rows move; never transform or hide their li/list ancestors. */
  [data-nav-list-item] > .mega-nav__bar-link {
    transform-origin: center;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  /* Cancel only the inherited 1.2x list size; the panel inner keeps its own 1.2x. */
  .mega-nav__dropdown-panel {
    font-size: calc(1em / 1.2);
  }
}

/* Fokus am sichtbaren Inhalt; die gesamte Klickfläche bleibt erhalten. */
.mega-nav .mega-nav__page-link:has(.mega-nav__bar-link-label):focus-visible,
.mega-nav .mega-nav__bar-link:focus-visible,
.mega-nav .mega-nav__submenu-toggle:focus-visible {
  outline: none;
  box-shadow: none;
}

.mega-nav .mega-nav__page-link:focus-visible > .mega-nav__bar-link-label,
.mega-nav .mega-nav__bar-link:focus-visible > .mega-nav__bar-link-label,
.mega-nav
  .mega-nav__submenu-toggle:focus-visible
  > .mega-nav__toggle-icon-wrap {
  outline: 3px solid var(--base);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

@media (forced-colors: active) {
  .mega-nav .mega-nav__page-link:focus-visible > .mega-nav__bar-link-label,
  .mega-nav .mega-nav__bar-link:focus-visible > .mega-nav__bar-link-label,
  .mega-nav
    .mega-nav__submenu-toggle:focus-visible
    > .mega-nav__toggle-icon-wrap {
    outline-color: Highlight;
    box-shadow: none;
  }
}

/* ------------------------- Home Hero Logo Reveal ------------------------- */

body.bricks-is-frontend[data-bmh-logo-reveal]:not(
    [data-bmh-logo-reveal-init="true"]
  )
  [data-bmh-logo-reveal-media] {
  visibility: hidden;
}

/* Initialzustand vor dem Desktop-Reveal.
   Muss bereits beim ersten Rendern verfügbar sein. */

@media screen and (min-width: 992px)
  and (prefers-reduced-motion: no-preference) {

  body.bricks-is-frontend:not([data-builder-window])
    [data-bmh-logo-reveal]:not(
      [data-bmh-logo-reveal-init="true"],
      [data-bmh-logo-reveal-init="failed"]
    )
    :is(
      [data-bmh-logo-reveal-media],
      .bmh-home-hero__heading
    ) {
    opacity: 0 !important;
  }
}

/* ------------------------------
   SCROLL SCENE
------------------------------ */

.bmh-home-hero-scene {
  --bmh-logo-reveal-scroll: 220svh;

  position: relative;

  width: 100%;

  /*height: calc(
    100svh +
    var(--bmh-logo-reveal-scroll)
  );*/

  min-height: calc(100svh + var(--bmh-logo-reveal-scroll));
  padding: 0;
}

/* ------------------------------
   HERO
------------------------------ */

.bmh-home-hero {
  position: relative;

  width: 100%;

  /*height: 100svh;*/
  min-height: 100svh;

  box-sizing: border-box;

  background: var(--light);

  overflow: hidden;

  z-index: 1;

  padding: 4em 0 0;
}

/* ------------------------------
   STAGE
------------------------------ */

.bmh-home-hero__stage {
  position: relative;

  width: 100%;

  /*height: calc(100svh - 4em);*/
  min-height: calc(100svh - 4em);

  overflow: hidden;

  isolation: isolate;
}

/* ------------------------------
   MEDIA
------------------------------ */

.bmh-home-hero__media {
  position: absolute;

  inset: 0;

  z-index: 0;

  overflow: clip;
}

.bmh-home-hero.is-logo-reveal-active .bmh-home-hero__media {
  -webkit-clip-path: url(#bmh-logo-reveal-clip);

  clip-path: url(#bmh-logo-reveal-clip);
}

.bmh-home-hero__video {
  height: 100%;
}

.bmh-home-hero__video video {
  position: absolute;

  inset: 0;

  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.bmh-home-hero__overlay {
  position: absolute;

  inset: 0;

  z-index: 1;

  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.8) 0%,
    rgba(0, 0, 0, 0.5) 35%,
    rgba(0, 0, 0, 0.08) 50%,
    rgba(0, 0, 0, 0) 70%
  );

  pointer-events: none;
}

/* ------------------------------
   CONTENT
------------------------------ */

.bmh-home-hero__content {
  position: relative;

  z-index: 2;

  width: 100%;
  height: 100%;
  min-height: calc(100svh - 4em);

  display: flex;
  flex-direction: column;

  justify-content: flex-end;
  align-items: flex-start;

  padding: var(--space-m) var(--space-m) var(--space-s);

  box-sizing: border-box;

  color: var(--white);
}

.bmh-home-hero__heading {
  color: var(--white);
}

h1 .hero-heading-wght {
  font-weight: 300;
}

h1 .hero-heading-break {
  display: block;
}

.bmh-home-hero-scene,
.bmh-home-hero,
.bmh-home-hero__stage,
.bmh-home-hero__content {
  height: auto;
}

/* ------------------------------
   VIDEO PLAY / PAUSE
------------------------------ */

.bmh-home-hero__video-toggle-wrap {
  position: absolute;

  right: var(--space-s);
  bottom: var(--space-m);

  z-index: 10;

  pointer-events: auto;
}

.bmh-home-hero__video-toggle {
  box-sizing: border-box;

  display: grid;
  place-items: center;

  width: 2.5em;
  height: 2.5em;

  padding: 0;

  border: 0;
  border-radius: 50%;

  background: var(--primary);
  color: var(--base);

  cursor: pointer;
  pointer-events: auto;

  transition: transform 0.35s ease;
}

@media (hover: hover) {
  .bmh-home-hero__video-toggle:hover {
    transform: scale(1.1);
  }
}

.bmh-home-hero__video-toggle svg {
  width: 1em;
  height: 1em;

  fill: none;
  stroke: currentColor;

  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bmh-home-hero__video-toggle:focus-visible {
  outline: 4px solid #fff !important;
  outline-offset: 0 !important;
  box-shadow: 0 0 0 10px #111;
}

/* ------------------------------
   PLAY / PAUSE STATE
------------------------------ */

.bmh-home-hero__video-play {
  display: none;
}

.bmh-home-hero__video-toggle[data-playing="false"] .bmh-home-hero__video-pause {
  display: none;
}

.bmh-home-hero__video-toggle[data-playing="false"] .bmh-home-hero__video-play {
  display: block;
}

/* ------------------------------
   CLIP DEFINITIONS
------------------------------ */

.bmh-clip-defs {
  position: absolute;

  width: 0;
  height: 0;

  overflow: hidden;

  pointer-events: none;
}

/* ------------------------------
   TABLET
------------------------------ */

@media screen and (max-width: 991px) {
  .bmh-home-hero-scene {
    /*height: 100svh;*/
    min-height: 100svh;
  }
}

/* ------------------------------
   REDUCED MOTION
------------------------------ */

@media (prefers-reduced-motion: reduce) {
  .bmh-home-hero-scene {
    /*height: 100svh;*/
    min-height: 100svh;
  }
  .bmh-home-hero__video-toggle {
    transition: none;
  }
}

/* ------------------------------
   MOBILE
------------------------------ */

@media screen and (max-width: 767px) {
  .bmh-home-hero-scene {
    height: 50svh;
    min-height: 50svh;
  }

  .bmh-home-hero {
    height: 50svh;
    min-height: 50svh;
  }

  .bmh-home-hero__stage {
    height: calc(50svh - 4em);
    min-height: calc(50svh - 4em);
  }

  .bmh-home-hero__overlay {
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, 0.8) 20%,
      rgba(0, 0, 0, 0.5) 40%,
      rgba(0, 0, 0, 0.08) 60%,
      rgba(0, 0, 0, 0) 70%
    );
  }

  .bmh-home-hero__content {
    min-height: calc(50svh - 4em);
    padding: var(--space-s);
    pointer-events: none;
  }

  .bmh-home-hero__heading {
    font-size: 4em;
    pointer-events: auto;
    margin-bottom: -0.175em;
  }

  .bmh-home-hero__heading .hero-heading-break {
    display: block;
  }

  .bmh-home-hero__video-toggle-wrap {
    bottom: var(--space-s);
  }
}

@media screen and (max-width: 478px) {
  .bmh-home-hero__heading {
    font-size: 2.35em;
  }
}

/* FIX ADDON */

/* Scene: natürliche Hero-Höhe + zusätzliche Scrollstrecke */
.bmh-home-hero-scene {
  height: auto;
  min-height: 0;

  padding: 0 0 var(--bmh-logo-reveal-scroll);

  box-sizing: border-box;
}

/* Desktop: mindestens fullscreen, bei Bedarf höher */
.bmh-home-hero {
  height: auto;
  min-height: 100svh;
}

.bmh-home-hero__stage,
.bmh-home-hero__content {
  height: auto;
  min-height: calc(100svh - 4em);
}

/* Ohne Reveal-Pinning wird keine Scrollstrecke benötigt */
@media screen and (max-width: 991px), (prefers-reduced-motion: reduce) {
  .bmh-home-hero-scene {
    padding-bottom: 0;
  }
}

/* Mobile: mindestens halbe Bildschirmhöhe */
@media screen and (max-width: 767px) {
  .bmh-home-hero {
    min-height: 50svh;
  }

  .bmh-home-hero__stage,
  .bmh-home-hero__content {
    min-height: calc(50svh - 4em);
  }
}

@media screen and (max-width: 767px) and (orientation: landscape) {
  .bmh-home-hero__stage,
  .bmh-home-hero__content {
    min-height: calc(100svh - 4em);
  }
}

/* Builder: natürliche Höhe ohne zusätzliche Scrollstrecke */
body[data-builder-window] .bmh-home-hero-scene {
  height: auto;
  min-height: 0;
  padding-bottom: 0;
}
/*
body[data-builder-window] .bmh-home-hero-scene {
  --bmh-logo-reveal-scroll: 100svh;
  height: var(--bmh-logo-reveal-scroll);
  min-height: var(--bmh-logo-reveal-scroll);
}*/

/* Einstieg */

@media screen and (max-width: 991px) {
  #die-bmh .parallax__wrapper {
    margin-top: var(--space-m);
  }
}

/* ------------------------- Investitionsbereiche ------------------------- */

.investment-areas__nav {
  width: var(--container-width-m);
  max-width: 100%;
  margin-top: var(--space-xl);
}

.investment-areas__list {
  counter-reset: investment-card;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-s);
  list-style: none;
  padding: 0;
  margin: 0;
}

.investment-areas__item {
  counter-increment: investment-card;
  min-width: 0;
}

.investment-card {
  position: relative;
  display: flex;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 2 / 1;
  border-radius: var(--radius-main);
  color: var(--white);
  text-decoration: none;
  background: var(--base);
  isolation: isolate;
}

.investment-card > img.investment-card__image {
  position: absolute;
  display: block;
  width: 100%;
  height: 110%;
  object-fit: cover;
  object-position: center 7.5%;
  inset: 0;
  z-index: 0;
}

.investment-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.65) 15%,
    rgba(0, 0, 0, 0.22) 45%,
    rgba(0, 0, 0, 0) 100%
  );
  pointer-events: none;
}

.investment-card__content {
  position: relative;
  align-self: flex-end;
  padding: calc(var(--space-s) * 1.5);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 0.75em;
  color: var(--white);
}

.investment-card__counter {
  position: relative;
}

.investment-card__counter::before {
  content: counter(investment-card);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 2px solid var(--primary);
  border-radius: var(--radius-circle);
  width: 2em;
  height: 2em;
  font-weight: 700;
  color: var(--primary);
  font-size: var(--text-2xl);
  backdrop-filter: blur(5px);
}

.investment-card__title {
  display: block;
  color: inherit;
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

.investment-card:focus-visible {
  outline: 2px solid var(--base);
  outline-offset: 0.25rem;
}

@media (prefers-reduced-motion: reduce) {
  .investment-card > img.investment-card__image {
    transition: none;
  }

  .investment-card:hover > img.investment-card__image,
  .investment-card:focus-visible > img.investment-card__image {
    transform: none;
  }
}

@media (max-width: 991px) {
  .investment-areas__nav {
    width: 100%;
  }

  .investment-card__title {
    font-size: 1.25em;
  }
}

@media (max-width: 767px) {
  .investment-areas__list {
    grid-template-columns: 1fr;
  }

  .investment-card__counter::before {
    flex-basis: 2em;
    flex-grow: 1;
    width: 2em;
    height: 2em;
  }
  .investment-card__title {
    font-size: 1.5em;
  }
}

@media (max-width: 478px) {
  .investment-card__content {
    padding: var(--space-s);
  }
  .investment-card__counter::before {
    flex: 1 0 auto;
    width: 2em;
    height: 2em;
    font-size: var(--text-l);
  }
  .investment-card__title {
    font-size: var(--text-m);
  }
}

/* Hover Cursor */

[data-cursor-area] {
  position: relative;
}

.cursor {
  z-index: 25;
  pointer-events: none;
  position: fixed;
  top: 0;
  left: 0;
  padding: 1em 2em;
}

.cursor-bubble {
  opacity: 0;
  position: relative;
  display: flex;
  align-items: center;
  padding-left: 0.25em;
}

.cursor .content-label {
  line-height: 1;
  padding: 0.1em 0.15em 0.05em 0.15em;
}

.cursor-bubble span {
  line-height: 1;
}

.cursor-bubble__arrow {
  width: 1em;
  stroke: currentColor;
  margin-left: 0.25em;
  transform: translateY(-0.05em);
}

@media (hover: hover) and (pointer: fine) {
  [data-cursor] .cursor-bubble {
    transition:
      transform 0.6s cubic-bezier(0.625, 0.05, 0, 1),
      opacity 0.6s cubic-bezier(0.625, 0.05, 0, 1);
    transform: translateX(0%) scale(0.6) rotate(0.001deg);
  }

  [data-cursor="active"] .cursor-bubble {
    opacity: 1;
    transform: translateX(0%) scale(1) rotate(0.001deg);
  }

  [data-cursor="active-edge"] .cursor-bubble {
    opacity: 1;
    transform: translateX(-100%) scale(1) rotate(0.001deg);
  }
}

@media (hover: none) and (pointer: coarse) {
  .cursor {
    display: none;
  }
}

/* ------------------------- Werte ------------------------- */

#werte {
  scroll-margin-top: -7.5em;
}

.bmh-values__container {
  margin: var(--space-xl) 0 var(--space-m) 0;
}

.bmh-values__heading {
  position: relative;
  font-size: var(--h4);
  text-decoration: none;
  width: 100%;
}

.bmh-values__intro {
  position: relative;
  margin-bottom: var(--space-xl);
}

.bmh-values__intro::after {
  content: "";
  position: absolute;
  width: var(--container-width-m);
  height: 1px;
  bottom: calc(var(--space-m) * -1);
  left: 0;
  background: #0000001a;
}

.bmh-values__list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bmh-values__item {
  width: 100%;
}

.bmh-values__button {
  display: inline-block;
  max-width: 100%;
  padding: 0;
  padding-top: 0.05em;
  border: 0;

  color: var(--base);
  background: transparent;

  font-family: var(--font-family-a);
  font-weight: 300;
  font-size: 7em;
  line-height: 1;
  text-align: left;
  text-transform: uppercase;

  cursor: pointer;

  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

/* Aktiv */
.bmh-values__item.is--active .bmh-values__button {
  color: var(--base);
  background-color: var(--primary);
}

/* Eindeutiger Keyboard-Fokus */
.bmh-values__button:focus-visible {
  outline: 2px solid var(--base);
  outline-offset: 4px;
}

.bmh-values__content {
  overflow: hidden;
}

.bmh-values__content-inner {
  overflow: hidden;
}

.bmh-values__text {
  max-width: 60ch;
  margin: 0;

  padding-top: var(--space-s);
  padding-bottom: var(--space-m);
}

@media screen and (max-width: 991px) {
  .bmh-values__button {
    font-size: 5em;
  }
}

@media screen and (max-width: 767px) {
  .bmh-values__button {
    font-size: 3.5em;
  }
}

@media screen and (max-width: 478px) {
  .bmh-values__button {
    font-size: 2em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bmh-values__button {
    transition: none;
  }
}

/* ------------------------- Historie ------------------------- */

.circle-timeline {
  --timeline-svg-width: 80%;
  --timeline-svg-top: -2rem;
  --timeline-muted: #595959;
  position: relative;
  width: 100%;
  min-width: 0;
  margin-top: var(--space-xl, 4rem);
  color: var(--base, #111);
  background: var(--white, #fff);
}
.circle-timeline *,
.circle-timeline *::before,
.circle-timeline *::after {
  box-sizing: border-box;
}

/* Statische Historie, solange die JS-Initialisierung nicht erfolgreich war. */
.circle-timeline__visual {
  display: none;
}
.circle-timeline__items {
  display: block;
  margin: 0;
  padding-inline-start: 1.5em;
}
.circle-timeline__items > li + li {
  margin-top: var(--space-l, 2rem);
}
.circle-timeline__items time {
  font-weight: 650;
}
.circle-timeline__items h3 {
  margin-block: 0.4em;
}
.circle-timeline__items p {
  margin-block: 0.5em;
}
.circle-timeline[data-circle-timeline-initialized="true"]
  .circle-timeline__items,
.circle-timeline .circle-timeline__items[hidden] {
  display: none;
}

.circle-timeline[data-circle-timeline-initialized="true"]
  .circle-timeline__visual {
  display: grid;
  grid-template-rows: minmax(min-content, 1fr) auto;
  aspect-ratio: 7 / 2.5;
  min-height: 35em;
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid var(--grey, #777);
}
.circle-timeline__stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  overflow: clip;
  contain: paint;
  z-index: 0;
}
.circle-timeline__svg-wrap,
.circle-timeline__label-layer {
  position: absolute;
  left: 50%;
  top: var(--timeline-svg-top);
  width: var(--timeline-svg-width);
  aspect-ratio: 1000 / 700;
}
.circle-timeline__svg-wrap {
  z-index: 0;
}
.circle-timeline__label-layer {
  z-index: 1;
  transform: translateX(-50%);
}
.circle-timeline__svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.circle-timeline__circle {
  fill: none;
}
.circle-timeline__circle,
.circle-timeline__tick {
  stroke: #0000002a;
  stroke-width: 1;
}

.circle-timeline__active-year,
.circle-timeline__year-slot {
  font-variant-numeric: tabular-nums;
}
.circle-timeline__year-slot {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4ch;
  margin: 0;
  padding: 0;
  color: var(--timeline-muted);
  font: inherit;
  font-size: 1.1em;
  line-height: 1;
  white-space: nowrap;
  transform: translate(-50%, -50%) rotate(var(--timeline-year-rotation, 0deg));
  pointer-events: none;
}
.circle-timeline__year-digits {
  display: inline-flex;
}
.circle-timeline__button:focus-visible {
  outline: 2px solid var(--base, #111);
  outline-offset: 4px;
}

/* Nur die Dekoration wird beschnitten. Inhalt und Fokus dürfen mitwachsen. */
.circle-timeline__content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto auto minmax(min-content, 1fr);
  justify-items: center;
  width: min(40ch, calc(100% - 2em));
  max-width: 40ch;
  min-width: 0;
  margin-inline: auto;
  padding-top: 5em;
  text-align: center;
}

.circle-timeline__active-year {
  display: inline-flex;
  justify-content: center;
  min-width: 4ch;
  margin: 0;
  font-size: 2.75em;
  font-weight: 650;
  line-height: 1;
}
.circle-timeline__count {
  min-height: 1.5em;
  margin: 0.35em 0 0;
  color: var(--timeline-muted);
  font-size: 0.9em;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}
.circle-timeline__count:empty {
  visibility: hidden;
}
.circle-timeline__body {
  align-self: center;
  width: 100%;
  min-width: 0;
  padding-block: var(--space-m, 2rem);
}
.circle-timeline__heading {
  margin: 0;
  font-size: 1.65em;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
  text-decoration: none;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.circle-timeline__text {
  max-width: 50ch;
  margin: var(--space-s, 1rem) auto 0;
  font-size: 1em;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.circle-timeline__nav {
  position: relative;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1em calc(var(--space-xs, 0.75rem) * 1.5);
  margin: auto auto 0.5em;
  padding: 6px;
}
.circle-timeline__button {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 auto;
  width: max(2.5em, 24px);
  height: max(2.5em, 24px);
  padding: 0.8em;
  border: 0;
  border-radius: var(--radius-circle, 50%);
  appearance: none;
  background: var(--primary, #c2fe3c);
  color: var(--base, #111);
  font: inherit;
  cursor: pointer;
  transition: transform 0.35s ease;
}
.circle-timeline__button svg {
  display: block;
  width: 0.9em;
  height: 0.9em;
}
.circle-timeline__button:disabled {
  cursor: default;
  opacity: 0.6;
}
@media (hover: hover) and (pointer: fine) {
  .circle-timeline__button:not(:disabled):hover {
    transform: scale(1.1);
  }
}

.circle-timeline .year-digit {
  display: inline-block;
  width: 1ch;
  min-width: 1ch;
  line-height: 1;
  text-align: center;
  flex: 0 0 auto;
}
.circle-timeline .year-digit-mask {
  display: inline-block;
  width: 1ch;
  height: 1em;
  overflow: hidden;
  overflow: clip;
}
.circle-timeline .year-digit-stack {
  display: flex;
  flex-direction: column;
  width: 1ch;
  line-height: 1;
}
.circle-timeline .year-digit-stack span {
  display: block;
  width: 1ch;
  height: 1em;
  line-height: 1;
  text-align: center;
}
.circle-timeline .circle-timeline__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.circle-timeline__stage--mobile {
  display: none;
}
.circle-timeline__stage--desktop {
  display: block;
}

@media (max-width: 767px) {
  .circle-timeline {
    --timeline-mobile-height: 32.5em;
    --timeline-orbit-height: 20em;
    --timeline-svg-width: 100%;
    --timeline-svg-top: -2em;
    --timeline-content-top: 5em;
    margin-top: var(--space-m, 2rem);
  }
  .circle-timeline[data-circle-timeline-initialized="true"]
    .circle-timeline__visual {
    aspect-ratio: auto;
    min-height: var(--timeline-mobile-height);
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    height: auto;
  }
  .circle-timeline__stage--desktop {
    display: none;
  }
  .circle-timeline__stage--mobile {
    display: block;
    inset: 0 0 auto;
    height: var(--timeline-orbit-height);
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 72%,
      transparent 100%
    );
    mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
  }
  .circle-timeline__stage--mobile .circle-timeline__svg-wrap,
  .circle-timeline__stage--mobile .circle-timeline__label-layer {
    aspect-ratio: 600 / 360;
  }
  .circle-timeline__circle,
  .circle-timeline__tick {
    stroke: #0000003a;
  }
  .circle-timeline__content {
    width: min(calc(100% - 2em), 34ch);
    max-width: 34ch;
    padding-top: var(--timeline-content-top);
    grid-template-rows: auto auto minmax(min-content, 1fr);
  }
  .circle-timeline__active-year {
    font-size: 3em;
  }
  .circle-timeline__count {
    font-size: 0.75em;
  }
  .circle-timeline__body {
    align-self: start;
  }
  .circle-timeline__heading {
    font-size: 1.4em;
  }
  .circle-timeline__text {
    max-width: 32ch;
    font-size: 0.95em;
  }
  .circle-timeline__nav {
    margin-block: var(--space-m, 2rem);
  }
  .circle-timeline__button {
    width: max(2.75em, 24px);
    height: max(2.75em, 24px);
  }
}
@media (max-width: 478px) {
  .circle-timeline {
    --timeline-mobile-height: 31em;
    --timeline-orbit-height: 14em;
    --timeline-svg-top: -1.25em;
    --timeline-content-top: 4em;
  }
  .circle-timeline__circle,
  .circle-timeline__tick {
    stroke-width: 1.5;
  }
  .circle-timeline__active-year {
    font-size: 2.8em;
  }
  .circle-timeline__heading {
    font-size: 1.28em;
  }
  .circle-timeline__text {
    font-size: 0.9em;
    max-width: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .circle-timeline__button {
    transition: none;
  }
  .circle-timeline__button:hover {
    transform: none;
  }
}
.circle-timeline[data-timeline-reduced-motion="true"] .circle-timeline__button {
  transition: none;
}
.circle-timeline[data-timeline-reduced-motion="true"]
  .circle-timeline__button:hover {
  transform: none;
}
@media (forced-colors: active) {
  .circle-timeline__button {
    border: 1px solid ButtonText;
  }
  .circle-timeline__button:focus-visible {
    outline-color: Highlight;
  }
  .circle-timeline__year-slot,
  .circle-timeline__count {
    color: CanvasText;
  }
  .circle-timeline__circle,
  .circle-timeline__tick {
    stroke: GrayText;
  }
}

html.js-pending
  .circle-timeline:not([data-circle-timeline-initialized="true"]):not(
    [data-circle-timeline-fallback="true"]
  ) {
  visibility: hidden;
}

html.js-pending
  .circle-timeline:not([data-circle-timeline-initialized="true"]):not(
    [data-circle-timeline-fallback="true"]
  )
  .circle-timeline__items {
  display: none;
}

html.js-pending
  .circle-timeline:not([data-circle-timeline-initialized="true"]):not(
    [data-circle-timeline-fallback="true"]
  )
  .circle-timeline__visual {
  display: grid;
  grid-template-rows: minmax(min-content, 1fr) auto;

  aspect-ratio: 7 / 2.5;
  min-height: 35em;

  position: relative;

  isolation: isolate;
  border-bottom: 1px solid var(--grey, #777);
}

@media (max-width: 767px) {
  html.js-pending
    .circle-timeline:not([data-circle-timeline-initialized="true"]):not(
      [data-circle-timeline-fallback="true"]
    )
    .circle-timeline__visual {
    aspect-ratio: auto;
    min-height: var(--timeline-mobile-height, 32.5em);

    width: 100vw;
    max-width: none;

    margin-inline: calc(50% - 50vw);
  }
}

/* Erfolgreich initialisiert */
.circle-timeline[data-circle-timeline-initialized="true"] {
  visibility: visible;
}

/* JS vorhanden, Initialisierung fehlgeschlagen:
   normalen statischen Fallback zeigen */
.circle-timeline[data-circle-timeline-fallback="true"]:not(
    [data-circle-timeline-initialized="true"]
  ) {
  visibility: visible;
}

.circle-timeline[data-circle-timeline-fallback="true"]:not(
    [data-circle-timeline-initialized="true"]
  )
  .circle-timeline__visual {
  display: none;
}

.circle-timeline[data-circle-timeline-fallback="true"]:not(
    [data-circle-timeline-initialized="true"]
  )
  .circle-timeline__items {
  display: block;
}

/* ------------------------- Erfolgsbeispiel Akkordeon ------------------------- */

.erfolge__container {
  position: relative;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.erfolge__intro {
  max-width: 40ch;
  position: sticky;
  top: calc(var(--space-3xl) * 1.25);
}

@media screen and (max-width: 991px) {
  .erfolge__intro {
    position: relative;
    top: unset;
    margin-bottom: var(--space-l);
  }
}

.case-accordion__wrapper {
  width: 100%;
  max-width: 50em;
  min-width: 0;
}
.case-accordion {
  width: 100%;
  --item-height: 6em;
  --item-height-active: clamp(14rem, 22vw, 20rem);
  --image-size: 6em;
  --image-width-active: min(30%, 14em);
  --gap: 0.35em;
  --border-color: var(--grey, #777);
  --radius: calc(var(--item-height) / 2);
  --radius-image-active: var(--radius-main, 2rem);
  --padding-x: clamp(2rem, 6vw, 5rem);
  --ease: cubic-bezier(0.625, 0.05, 0, 1);
  --transition-timing: 0.6s;
  --case-icon-opacity: 0.55;
}
.case-accordion *,
.case-accordion *::before,
.case-accordion *::after {
  box-sizing: border-box;
}
.case-accordion__list {
  display: flex;
  flex-direction: column;
  gap: 1.25em;
  margin: 0;
  padding: 0;
  list-style: none;
}
.case-accordion__item {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: var(--item-height);
  overflow: visible;
  contain: layout;
}
.case-accordion__item[data-active="true"] {
  min-height: var(--item-height-active);
}
.case-accordion__item.is-animating {
  min-height: 0;
  overflow: clip;
}
.case-accordion__bg {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 0 0 0 calc(var(--image-size) + var(--gap));
  border: 1px solid var(--border-color);
  border-radius: var(--radius);
  transition: inset var(--transition-timing) var(--ease);
}
.case-accordion__item[data-active="true"] .case-accordion__bg {
  inset: 0;
}
.case-accordion__image-wrap {
  position: absolute;
  z-index: 4;
  left: 0;
  top: 0;
  width: var(--image-size);
  height: var(--image-size);
  overflow: hidden;
  border-radius: 50%;
  pointer-events: none;
  transition: border-radius var(--transition-timing) var(--ease);
}
.case-accordion__item[data-active="true"] .case-accordion__image-wrap {
  width: var(--image-width-active);
  height: 100%;
  border-radius: var(--radius-image-active);
}
.case-accordion__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-timing) var(--ease);
}
.case-accordion__heading {
  position: relative;
  z-index: 3;
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  min-width: 0;
  text-decoration: none;
}
.case-accordion__button {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: flex;
  align-items: center;
  --case-button-left: calc(var(--image-size) + var(--gap));
  width: calc(100% - var(--case-button-left));
  min-width: 0;
  min-height: max(44px, var(--item-height));
  height: auto;
  margin: 0 0 0 var(--case-button-left);
  padding: 0.8em calc(var(--padding-x) + max(44px, 1.25em) + 0.5em) 0.8em
    var(--padding-x);
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  scroll-margin-block: var(--case-focus-scroll-margin, 100px);
}
.case-accordion__button-title {
  display: block;
  min-width: 0;
  font-size: var(--text-xl, 2em);
  line-height: 1.1;
  font-weight: 600;
  text-transform: uppercase;
  white-space: normal;
  overflow-wrap: anywhere;
}
/* Der Button bleibt an der Bildkante. Nur EIN Abstand wird animiert;
   die Breite ergibt sich daraus. Kein negativer Abstand über dem Panel. */
@media (min-width: 768px) {
  .case-accordion__item[data-active="true"] .case-accordion__button {
    --case-button-left: var(--image-width-active);
  }
}
.case-accordion__icon {
  position: absolute;
  right: var(--padding-x);
  top: max(0px, calc((var(--item-height) - 1.25em) / 2));
  display: block;
  width: 1.25em;
  height: 1.25em;
  pointer-events: auto;
  opacity: var(--case-icon-opacity);
  border-radius: 50%;
  transition:
    transform var(--transition-timing) var(--ease),
    opacity 0.45s ease;
}
.case-accordion__icon::before,
.case-accordion__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: max(2px, 0.12em);
  background: currentColor;
  transform: translate(-50%, -50%);
}
.case-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.case-accordion__item[data-active="true"] .case-accordion__icon {
  transform: rotate(45deg);
  opacity: 1;
}
.case-accordion__button:hover .case-accordion__icon {
  opacity: 1;
}
.case-accordion__button:focus-visible {
  outline: none !important;
}
.case-accordion__button:focus-visible .case-accordion__icon {
  outline: 3px solid currentColor;
  outline-offset: 3px;
  opacity: 1;
}
.case-accordion__content {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
}
.case-accordion__item[data-active="true"] .case-accordion__content {
  grid-template-rows: 1fr;
  visibility: visible;
}
.case-accordion__mask {
  min-height: 0;
  overflow: hidden;
}
.case-accordion__item[data-active="true"] .case-accordion__mask {
  overflow: visible;
}
.case-accordion__inner {
  min-width: 0;
  padding: 0 calc(var(--padding-x) + max(44px, 1.25em) + 0.5em)
    clamp(2rem, 4vw, 3rem) calc(var(--image-width-active) + var(--padding-x));
  opacity: 0;
  transform: translateX(-2.5em);
  margin-top: -1em;
}
.case-accordion__item[data-active="true"] .case-accordion__inner {
  opacity: 1;
  transform: none;
}
.case-accordion__text {
  max-width: 34em;
  margin: 0 0 1em;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.case-accordion__link {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
  min-height: 24px;
  min-width: 24px;
  max-width: 100%;
  color: inherit;
  font-weight: 600;
  text-decoration: none;
  scroll-margin-block: var(--case-focus-scroll-margin, 100px);
}
.case-accordion__link span.brxe-text-basic {
  position: relative;
  font-weight: 600;
  overflow-wrap: anywhere;
  width: fit-content;
  min-width: 0;
}
.case-accordion__link span.brxe-text-basic::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.1em;
  width: 100%;
  height: 0.05em;
  background-color: currentColor;
}
.case-accordion__link span.brxe-text-basic::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.1em;
  width: 100%;
  height: 0.05em;
  background-color: var(--primary, currentColor);
  transform: scaleX(0) rotate(0.001deg);
  transform-origin: left;
  transition: transform 0.65s cubic-bezier(0.625, 0.05, 0, 1);
}
.case-accordion__link:hover span.brxe-text-basic::after,
.case-accordion__link:focus-visible span.brxe-text-basic::after {
  transform: scaleX(1);
}
.case-accordion__link-arrow {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  stroke: var(--primary, currentColor);
  transform: rotate(45deg);
  transition: transform 0.45s ease;
}
.case-accordion__link:hover .case-accordion__link-arrow,
.case-accordion__link:focus-visible .case-accordion__link-arrow {
  transform: none;
}
.case-accordion__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
.case-accordion__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.case-accordion__item.is-animating .case-accordion__inner {
  will-change: transform, opacity;
}
.case-accordion__item.is-closing .case-accordion__content {
  visibility: visible;
  grid-template-rows: 1fr;
  pointer-events: none;
}
.case-accordion__item.is-closing .case-accordion__mask {
  overflow: visible;
}
@media (max-width: 991px) {
  .erfolge__container {
    flex-wrap: wrap;
  }
  .case-accordion__wrapper {
    flex: 1 0 100%;
    max-width: 100%;
  }
}
@media (max-width: 767px) {
  .case-accordion {
    --item-height: 3.75em;
    --image-size: 3.75em;
    --image-width-active: var(--image-size);
    --gap: 0.5em;
    --padding-x: 1em;
  }
  .case-accordion__list {
    gap: 1rem;
  }
  .case-accordion__item[data-active="true"] {
    min-height: var(--item-height);
  }
  .case-accordion__item.is-animating {
    min-height: 0;
  }
  .case-accordion__bg,
  .case-accordion__item[data-active="true"] .case-accordion__bg {
    inset: 0 0 0 calc(var(--image-size) + var(--gap));
  }
  .case-accordion__image-wrap,
  .case-accordion__item[data-active="true"] .case-accordion__image-wrap {
    width: var(--image-size);
    height: var(--image-size);
    border-radius: 50%;
  }
  .case-accordion__item[data-active="true"] .case-accordion__image-wrap {
    border-radius: 5% 5% 40% 5%;
  }
  .case-accordion__item[data-active="true"] .case-accordion__image {
    transform: scale(1.2);
  }
  .case-accordion__button-title {
    font-size: var(--text-l, 1.4em);
  }
  .case-accordion__content {
    margin-left: calc(var(--image-size) + var(--gap));
  }
  .case-accordion__inner {
    padding: 0 var(--padding-x) 1.25em;
    transform: translateY(0.5em);
    margin-top: 0;
  }
  .case-accordion__text {
    max-width: none;
    margin-top: 0;
  }
}
@media (max-width: 478px) {
  .case-accordion__item {
    padding-top: calc(var(--image-size) + 0.5em);
    margin-bottom: var(--space-s, 0px);
  }
  .case-accordion__bg,
  .case-accordion__item[data-active="true"] .case-accordion__bg {
    inset: calc(var(--image-size) + 0.5em) 0 0;
  }
  .case-accordion__button,
  .case-accordion__item[data-active="true"] .case-accordion__button {
    --case-button-left: 0px;
  }
  .case-accordion__content {
    margin-left: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .case-accordion *,
  .case-accordion *::before,
  .case-accordion *::after,
  .case-accordion__link *,
  .case-accordion__link span.brxe-text-basic::after {
    transition: none !important;
    animation: none !important;
  }
}

@media (forced-colors: active) {
  .case-accordion__bg {
    border-color: CanvasText;
  }
  .case-accordion__icon {
    opacity: 1;
  }
  .case-accordion__link {
    color: LinkText;
  }
  .case-accordion__link:visited {
    color: VisitedText;
  }
  .case-accordion__link > .brxe-text-basic {
    color: inherit;
  }
  .case-accordion__link-arrow {
    stroke: currentColor;
  }
  .case-accordion__link-label {
    text-decoration: underline;
  }
  .case-accordion__icon::before,
  .case-accordion__icon::after {
    background: ButtonText;
  }
  .case-accordion__button:focus-visible .case-accordion__icon,
  .case-accordion__link:focus-visible {
    outline-color: Highlight;
  }
}

/* ------------------------- Hero Section ------------------------- */

.hero__section {
  --hero-padding-top: 4em;
  padding: 0;
  /*padding-bottom: 6em;*/
  max-width: var(--container-width);
}

.hero__section .hero__container {
  position: relative;
  width: calc(100% - var(--space-s) * 2);
  height: auto;
  min-height: calc(100svh - var(--space-s));
  border-radius: var(--radius-main);
  overflow: hidden;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  padding: /*var(--space-xs)*/ var(--hero-padding-top)
    calc(var(--space-s) * 1.75) var(--space-xs);
  background: linear-gradient(to bottom, white 20%, #949494 50%);
}

@media screen and (max-width: 767px) {
  .hero__section .hero__container {
    /*padding: var(--space-xs) var(--space-s);*/
    padding: var(--hero-padding-top) var(--space-s) var(--space-xs);
  }
}

.hero__container::before {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  height: 80%;
  object-fit: cover;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9), transparent 40%);
  z-index: 2;
  pointer-events: none;
}

.hero__image {
  position: absolute;
  inset: 0;
  top: var(--hero-padding-top);
  width: 120%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero__heading {
  position: relative;
  color: var(--white);
  text-shadow:
    0 0 1px rgba(0, 0, 0, 0.9),
    0 1px 2px rgba(0, 0, 0, 0.5);
  z-index: 2;
}

@media screen and (max-width: 478px) {
  .hero__section {
    height: auto;
    min-height: 50svh;
    padding-bottom: 3em;
    box-sizing: border-box;
  }

  .hero__section .hero__container {
    height: auto;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) and (orientation: portrait) {
  .hero__section .hero__container {
    min-height: 52.5svh;
  }
}

/* ------------------------- Logo Marquee Section ------------------------- */

.logo-marquee-section {
  position: relative;
  width: var(--container-width);
  max-width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-l);
  margin-top: var(--space-l);
  padding-bottom: var(--space-3xl);
  overflow: hidden;
  --logo-max-width: 8em;
  --logo-max-height: 1.75em;
  --logo-gap: 3em;
}

/* The fade belongs only to the animated presentation. */
.logo-marquee-section[data-logo-marquee-mode="animated"]::before {
  position: absolute;
  content: "";
  inset: 0;
  background: linear-gradient(
    to right,
    var(--white, #fff) 2%,
    rgba(250, 250, 250, 0) 37.5%,
    rgba(250, 250, 250, 0) 62.5%,
    var(--white, #fff) 98%
  );
  z-index: 1;
  pointer-events: none;
}

.logo-marquee__intro {
  position: relative;
  margin-bottom: var(--space-l);
  z-index: 2;
}

.logo-marquee__intro h3 {
  text-decoration: none;
  font-size: var(--h4);
}

.logo-marquee__toggle {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  min-width: 24px;
  min-height: 24px;
  max-width: 100%;
  margin-top: 1em;
  padding: 0.55em 0.9em;
  border: 1px solid var(--grey);
  border-radius: 0.35em;
  background: #fff;
  color: var(--black);
  font-size: 0.85em;
  font-family: var(--font-family-b);
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: background 0.3s ease;
}

.logo-marquee__toggle:hover:not([aria-disabled="true"]) {
  background: #fafafa;
}

.logo-marquee__toggle:focus-visible {
  outline: 3px solid var(--base);
  outline-offset: 3px;
}

.logo-marquee__toggle[aria-disabled="true"] {
  cursor: default;
}

.logo-marquee__toggle-icon {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

[data-marquee-play-icon],
.logo-marquee__toggle[data-paused="true"] [data-marquee-pause-icon] {
  display: none;
}

.logo-marquee__toggle[data-paused="true"] [data-marquee-play-icon] {
  display: block;
}

.logo-marquee__toggle[aria-disabled="true"] .logo-marquee__toggle-icon {
  visibility: hidden;
  display: none;
}

/* Nur visuell versteckt, weiterhin für Screenreader erreichbar */
.logo-marquee__skip:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Bei Tastaturfokus im Intro anzeigen */
.logo-marquee__skip:focus {
  position: relative;
  z-index: 3;
  display: inline-block;
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
  margin-top: 1em;
  padding: 0.55em 0.9em;
  border: 1px solid currentColor;
  border-radius: 0.35em;
  background: #fff;
  color: #111;
  font-family: var(--font-family-b);
  font-size: 0.85em;
  line-height: 1.4;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  overflow-wrap: anywhere;
  outline: 3px solid #111;
  outline-offset: 3px;
}

#success-stories:focus {
  outline: 3px solid currentColor;
  outline-offset: 5px;
}

.logo-marquee-section [hidden] {
  display: none !important;
}

.logo-marquee {
  position: relative;
  width: 100%;
  min-width: 0;
  height: var(--logo-max-height);
  min-height: var(--logo-max-height);
  overflow: hidden;
}

.logo-marquee__scroll {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  gap: var(--logo-gap);
  width: max-content;
  height: 100%;
  animation-duration: var(--logo-marquee-duration, 30s);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-play-state: paused;
  will-change: auto;
}

.logo-marquee__collection {
  position: relative;
  flex: 0 0 auto !important;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--logo-gap);
  width: max-content !important;
  min-width: max-content;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  animation: none !important;
  transform: none !important;
}

.logo-marquee-source,
.logo-marquee__collection {
  list-style: none;
}

.logo-marquee__item {
  position: relative;
  flex: 0 0 auto !important;
  width: max-content !important;
  min-width: max-content;
  height: var(--logo-max-height);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  overflow: hidden;
  background: transparent;
  isolation: isolate;
  transform: none !important;
}

.logo-marquee__img {
  position: static !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: var(--logo-max-width) !important;
  max-height: var(--logo-max-height) !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain;
  object-position: center;
  flex: 0 0 auto;
  filter: grayscale(1);
  transform: none !important;
}

.logo-marquee-section[data-logo-marquee-mode="animated"][data-logo-marquee-ready="true"]
  .logo-marquee[data-marquee-direction="left"]
  .logo-marquee__scroll {
  animation-name: logo-marquee-left;
}

.logo-marquee-section[data-logo-marquee-mode="animated"][data-logo-marquee-ready="true"]
  .logo-marquee[data-marquee-direction="right"]
  .logo-marquee__scroll {
  animation-name: logo-marquee-right;
}

.logo-marquee-section[data-logo-marquee-mode="animated"][data-logo-marquee-ready="true"][data-logo-marquee-running="true"]
  .logo-marquee[data-marquee-in-view="true"]
  .logo-marquee__scroll {
  animation-play-state: running;
  will-change: transform;
}

@keyframes logo-marquee-left {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(var(--logo-marquee-distance), 0, 0);
  }
}

@keyframes logo-marquee-right {
  from {
    transform: translate3d(var(--logo-marquee-distance), 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}

/* Before JS: keep the source visible as a static grid. */
.logo-marquee-section:not([data-logo-marquee-mode]) [data-logo-marquee-row] {
  display: none;
}

.logo-marquee-source,
.logo-marquee-section[data-logo-marquee-mode="static"]
  .logo-marquee__collection {
  position: relative;
  display: grid;
  grid-template-columns: repeat(
    auto-fill,
    minmax(min(100%, var(--logo-max-width)), 1fr)
  );
  gap: var(--logo-gap);
  align-items: center;
  width: 100% !important;
  min-width: 0;
  height: auto;
  visibility: visible;
  overflow: visible;
  pointer-events: auto;
}

.logo-marquee-source .logo-marquee__item,
.logo-marquee-section[data-logo-marquee-mode="static"] .logo-marquee__item {
  width: 100% !important;
  min-width: 0;
}

.logo-marquee-section[data-logo-marquee-mode="static"] .logo-marquee {
  height: auto;
  min-height: 0;
  overflow: visible;
}

.logo-marquee-section[data-logo-marquee-mode="static"] .logo-marquee__scroll {
  display: block;
  width: 100%;
  height: auto;
  animation: none !important;
  transform: none !important;
  will-change: auto !important;
}

/* Stabile Logo-Flächen für die animierten Reihen */
.logo-marquee-section[data-logo-marquee-mode="animated"] .logo-marquee__item {
  flex: 0 0 var(--logo-max-width) !important;
  width: var(--logo-max-width) !important;
  min-width: 0 !important;
  max-width: var(--logo-max-width);
}

/* Immediate stop, even before the JS change listener runs. */
@media (prefers-reduced-motion: reduce) {
  .logo-marquee-section::before {
    content: none !important;
  }
  .logo-marquee__scroll {
    animation: none !important;
    transform: none !important;
    will-change: auto !important;
  }
  .logo-marquee-section [data-marquee-duplicate] {
    display: none !important;
  }
}

@media (forced-colors: active) {
  .logo-marquee__toggle {
    color: ButtonText;
    background: ButtonFace;
    border-color: ButtonText;
  }
  .logo-marquee__toggle:focus-visible {
    outline-color: Highlight;
  }
}

@media screen and (max-width: 767px) {
  .logo-marquee-section {
    --logo-max-width: 12rem;
    --logo-max-height: 3.25rem;
    --logo-gap: 2.5rem;
  }
  .logo-marquee-section[data-logo-marquee-mode="animated"]::before {
    background: linear-gradient(
      to right,
      var(--white, #fff) 10%,
      rgba(250, 250, 250, 0) 30.5%,
      rgba(250, 250, 250, 0) 69.5%,
      var(--white, #fff) 90%
    );
  }
}

/* ------------------------- Success Stories, Grid + Card ------------------------- */

/* Heading */

.success-stories__heading-container hgroup {
  width: min-content;
  overflow-wrap: normal;
}

.success-stories__heading-container hgroup .content-label {
  white-space: nowrap;
}

.success-stories__heading-container .brxe-text {
  width: 100%;
  max-width: 50ch;
  margin-bottom: 0.8em;
}

@media screen and (min-width: 992px) {
  .success-stories__heading-container {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: var(--space-2xl);
  }
}

/* Grid / Cards */

ul.success-stories__grid {
  margin-top: var(--space-xl);
  gap: var(--space-m) var(--space-s);
}

/* ------------------------- Card ------------------------- */

.success-stories__card {
  position: relative;
  height: 100%;

  border: 1px solid var(--grey);
  border-radius: var(--radius-main);
}

.success-stories__image-wrapper {
  position: relative;
  width: 100%;
  height: auto;

  aspect-ratio: 1 / 0.7;

  overflow: hidden;
}

.success-stories__image {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 120%;

  object-fit: cover;
}

.success-stories__info-content {
  width: 100%;

  padding: var(--space-xs) var(--space-m) var(--space-xl) var(--space-m);
}

.success-stories__heading {
  margin-bottom: var(--space-xs);

  font-size: var(--h5);
  font-weight: 600;

  text-transform: uppercase;
  text-decoration: none;
}

.success-stories__divider .line {
  border-top-color: var(--grey);
}

.success-stories__copy {
  margin-top: var(--space-xs);
  margin-bottom: var(--space-s);
  overflow-wrap: anywhere;
}

.success-stories__card [data-transform-target] {
  width: 100%;
  height: auto;

  overflow: clip;
}

.success-stories__info-content .content-label {
  margin-bottom: 0;

  font-size: 0.8em;
}

.success-stories__info-content .content-label.investment-label {
  display: block;

  margin-bottom: var(--space-s);

  font-size: 0.7em;
}

/* ------------------------- Card Link ------------------------- */

/*
 * Der Link selbst überdeckt die komplette Karte.
 */
.success-stories__link {
  position: absolute;
  inset: 0;
  z-index: 2;

  display: block;

  color: inherit;
  text-decoration: none;

  scroll-margin-block: var(--success-stories-focus-scroll-margin, 100px);
}

/*
 * Der sichtbare Teil des Links:
 * Pfeil + "Mehr lesen".
 */
.success-stories__link-content {
  position: absolute;
  left: var(--space-m);
  bottom: var(--space-m);

  display: inline-flex;
  align-items: center;
  gap: 0.25em;

  min-width: 24px;
  min-height: 24px;

  max-width: calc(100% - (var(--space-m) * 2));

  font-weight: 600;
}

/* ------------------------- Link Text ------------------------- */

.success-stories__link-text {
  position: relative;

  width: fit-content;
  min-width: 0;

  font-weight: 600;

  overflow-wrap: anywhere;
}

/*
 * Grundlinie.
 */
.success-stories__link-text::before {
  content: "";

  position: absolute;

  left: 0;
  bottom: 0.1em;

  width: 100%;
  height: 0.05em;

  background-color: currentColor;
}

/*
 * Animierte farbige Linie.
 */
.success-stories__link-text::after {
  content: "";

  position: absolute;

  left: 0;
  bottom: 0.1em;

  width: 100%;
  height: 0.05em;

  background-color: var(--primary, currentColor);

  transform: scaleX(0) rotate(0.001deg);

  transform-origin: left;

  transition: transform 0.65s cubic-bezier(0.625, 0.05, 0, 1);
}

/*
 * Fokus auf dem Full-Card-Link
 * animiert die sichtbare Linie.
 */
.success-stories__link:focus-visible .success-stories__link-text::after {
  transform: scaleX(1) rotate(0.001deg);
}

/*
 * Hover nur auf Geräten mit echtem Hover.
 */
@media (hover: hover) and (pointer: fine) {
  .success-stories__link:hover .success-stories__link-text::after {
    transform: scaleX(1) rotate(0.001deg);
  }
}

/* ------------------------- Link Arrow ------------------------- */

.success-stories__link-arrow {
  width: 1em;
  height: 1em;

  flex: 0 0 1em;

  stroke: var(--primary, currentColor);

  transform: rotate(45deg);

  transition: transform 0.45s ease;
}

.success-stories__link:focus-visible .success-stories__link-arrow {
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .success-stories__link:hover .success-stories__link-arrow {
    transform: none;
  }
}

/* ------------------------- Focus ------------------------- */

/*
 * Der eigentliche Link umfasst die ganze Karte.
 * Deshalb wird der sichtbare Fokusrahmen
 * auf der Karte dargestellt.
 */
.success-stories__card:focus-within {
  outline: 2px solid var(--base);
  outline-offset: 3px;
}

.success-stories__link:focus-visible {
  border-radius: var(--radius-main);
}

/* ------------------------- Load More ------------------------- */

.success-stories__load-more {
  margin-top: var(--space-l);
}

.success-stories__load-more.is-hidden {
  display: none !important;
}

/* ------------------------- Responsive ------------------------- */

@media screen and (max-width: 991px) {
  .success-stories__heading {
    font-size: 1.4em;
  }

  .success-stories__info-content .content-label {
    font-size: 0.75em;
  }
}

@media screen and (max-width: 767px) {
  #success-stories {
    padding-bottom: var(--space-xl);
  }

  .success-stories__grid {
    margin-top: var(--space-m);
  }

  .success-stories__info-content {
    padding: var(--space-xs) calc(var(--space-m) * 0.8) var(--space-xl)
      calc(var(--space-m) * 0.8);
  }

  .success-stories__link-content {
    left: calc(var(--space-m) * 0.8);

    max-width: calc(100% - (var(--space-m) * 1.6));
  }
}

/* ------------------------- Reduced Motion ------------------------- */

@media (prefers-reduced-motion: reduce) {
  .success-stories__link-text::after,
  .success-stories__link-arrow {
    transition: none;
  }
}

/* ------------------------- Forced Colors ------------------------- */

@media (forced-colors: active) {
  .success-stories__link-arrow {
    stroke: LinkText;
  }

  .success-stories__card:focus-within {
    outline-color: Highlight;
  }
}

/* ------------------------- Referenzen, Grid + Card ------------------------- */

/* ------------------------- Layout-Umschalter ------------------------- */

.referenzen-layout-toggle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5em;
}

.referenzen-layout-toggle__button {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5em;
  padding: var(--space-2xs) var(--space-xs);
  border: 1px solid var(--grey);
  border-radius: var(--radius-xs);
  background-color: var(--white);
  color: var(--base);
  cursor: pointer;
  font-family: var(--font-family-b);
}

.referenzen-layout-toggle__button:hover {
  border-color: var(--primary);
}
.referenzen-layout-toggle__button[aria-pressed="true"] {
  border-color: var(--primary);
  background-color: var(--primary);
}
.referenzen-layout-toggle__button:focus-visible {
  outline: 2px solid var(--base);
  outline-offset: 0.25em;
}
.referenzen-layout-toggle__icon {
  width: 0.75em;
  height: 0.75em;
  flex: 0 0 auto;
}
.referenzen-layout-toggle__label {
  font-size: 0.85em;
  line-height: 1;
}

/* ------------------------- Grid und Grundeinstellungen ------------------------- */

.referenzen__container {
  margin-top: var(--space-xl);
}
.referenzen__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-m);
  width: 100%;
  min-width: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}
.referenzen__grid.grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.referenzen__grid.grid-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.referenzen__list-item {
  min-width: 0;
  overflow: visible;
}
.referenzen__list-item[hidden] {
  display: none !important;
}

.referenzen__card {
  --referenzen-min-height: 27.5em;
  --referenzen-actions-height: 0px;
  --referenzen-padding-x: calc(var(--space-m) * 1.2);
  --referenzen-padding-y: var(--space-l);
  --referenzen-shade: rgba(0, 0, 0, 0.125);
  --referenzen-blur: 10px;

  position: relative;
  width: 100%;
  min-width: 0;
  border: 1px solid var(--grey, #777);
  border-radius: var(--radius-main);
  overflow: hidden;
}

.referenzen__image-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  padding: var(--space-3xl);
  margin: 0;
}
.referenzen__logo {
  width: 100%;
  height: auto;
  object-fit: contain;
  max-height: 50%;
}

/* Ohne Initialisierung bleiben Text und Link im normalen Dokumentfluss. */
.referenzen__content {
  display: block;
  min-width: 0;
  padding: var(--referenzen-padding-y) var(--referenzen-padding-x);
  color: #fff;
  background-color: #023d4c;
  overflow-wrap: anywhere;
}
.referenzen__heading {
  font-size: var(--h5);
  color: inherit;
  text-decoration: none;
  margin: 0 0 var(--space-xs);
  word-break: normal;
  overflow-wrap: anywhere;
}
.referenzen__excerpt {
  margin: 0 0 var(--space-m);
}
.referenzen__content-list {
  margin: var(--space-m) 0;
  padding: 0;
  list-style: none;
}
.referenzen__content-list-item {
  line-height: 1.3;
  margin-bottom: 0.35em;
}
.referenzen__content-list-item .content-label {
  font-size: 0.825em;
  margin-right: 0.4em;
}
.referenzen__content-list-item .content-info {
  font-size: 0.9em;
  display: inline-block;
  margin-left: 0;
}

/* ------------------------- Ladezustand ------------------------- */

/* js-pending wird wie bisher früh im head gesetzt und zentral entfernt. */
html.js-pending #referenzen .referenzen__card:not([data-referenzen-card-ready]),
.referenzen__card[data-referenzen-card-ready] {
  min-height: var(--referenzen-min-height);
}

html.js-pending
  #referenzen
  .referenzen__card:not([data-referenzen-card-ready])
  > .referenzen__image-wrapper,
.referenzen__card[data-referenzen-card-ready] > .referenzen__image-wrapper {
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
  background: white;
}

html.js-pending
  #referenzen
  .referenzen__card:not([data-referenzen-card-ready])
  > .referenzen__content {
  position: absolute;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: none !important;
}

/* ------------------------- Gemeinsame Hintergrundfläche ------------------------- */

.referenzen__backdrop {
  position: absolute;
  z-index: 0;
  isolation: isolate;
  inset: 0;
  overflow: hidden;
  background-color: #023d4c;
  pointer-events: none;
  opacity: 0;
}
.referenzen__shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: var(--referenzen-shade);
  pointer-events: none;
}

.referenzen__card[data-referenzen-card-ready]
  > .referenzen__backdrop
  > .referenzen__content {
  position: absolute;
  inset: 0 0 var(--referenzen-actions-height) 0;
  z-index: 3;
  background: transparent;
  color: #fff;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
  scroll-behavior: auto;
  pointer-events: none;
  opacity: 0;
}
.referenzen__card[data-referenzen-card-ready]:has(.referenzen__actions)
  > .referenzen__backdrop
  > .referenzen__content {
  padding-bottom: 0;
}

.referenzen__actions {
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.5em var(--referenzen-padding-x) 0.75em;
  color: #fff;
  opacity: 0;
  pointer-events: none;
}
.referenzen__actions .case-accordion__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  min-height: 24px;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.referenzen__actions .case-accordion__link-arrow {
  flex-shrink: 0;
}

/* ------------------------- Offen, Fokus und Schließen ------------------------- */

.referenzen__card:is(.is-hovered, .is-open, :focus-within):not(.is-dismissed)
  > .referenzen__image-wrapper {
  opacity: 0;
}
.referenzen__card:is(.is-hovered, .is-open, :focus-within):not(.is-dismissed)
  > .referenzen__backdrop {
  opacity: 1;
}
.referenzen__card:is(.is-hovered, .is-open, :focus-within):not(.is-dismissed)
  > .referenzen__backdrop
  > :is(.referenzen__content, .referenzen__actions) {
  opacity: 1;
  pointer-events: auto;
}

.referenzen__card:focus-visible,
.referenzen__card:has(:focus-visible) {
  outline: 2px solid var(--base, #222);
  outline-offset: 3px;
}
.referenzen__actions a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Tastaturfokus sofort sichtbar; normale Touch-Übergänge bleiben erhalten. */
.referenzen__card:is(:focus-visible, :has(:focus-visible))
  .referenzen__backdrop,
.referenzen__card:is(:focus-visible, :has(:focus-visible))
  .referenzen__backdrop
  > :is(.referenzen__content, .referenzen__actions) {
  transition: none !important;
}

.referenzen__card.is-dismissed > .referenzen__image-wrapper {
  opacity: 1;
  transform: none;
  filter: none;
}

/* Nach Escape darf ein weiterhin fokussierter Link nicht verschwinden. */
.referenzen__card.is-dismissed .referenzen__actions:focus-within {
  opacity: 1;
  pointer-events: auto;
  background: #023d4c;
}
.referenzen__card.is-dismissed
  > .referenzen__backdrop:has(.referenzen__actions:focus-within) {
  opacity: 1;
  background: transparent !important;
  transition: none !important;
}
.referenzen__card.is-dismissed
  > .referenzen__backdrop:has(.referenzen__actions:focus-within)::before,
.referenzen__card.is-dismissed
  > .referenzen__backdrop:has(.referenzen__actions:focus-within)::after,
.referenzen__card.is-dismissed
  > .referenzen__backdrop:has(.referenzen__actions:focus-within)
  > .referenzen__shade {
  display: none;
}

/* ------------------------- Animationen ------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .referenzen-layout-toggle__button {
    transition:
      color 0.2s ease,
      background-color 0.2s ease,
      border-color 0.2s ease;
  }
  .referenzen__card[data-referenzen-card-ready] > .referenzen__image-wrapper {
    transition:
      transform 0.5s ease,
      filter 0.4s ease,
      opacity 0.4s ease;
  }
  .referenzen__backdrop {
    transition: opacity 0.45s ease;
  }
  .referenzen__actions {
    transition: opacity 0.3s ease;
  }
  .referenzen__card[data-referenzen-card-ready]
    > .referenzen__backdrop
    > .referenzen__content {
    transform: scale(1.1);
    filter: blur(var(--referenzen-blur));
    transition:
      opacity 0.45s ease,
      transform 0.6s ease,
      filter 0.5s ease;
  }
  .referenzen__card:is(.is-hovered, .is-open, :focus-within):not(.is-dismissed)
    > .referenzen__image-wrapper {
    transform: scale(0.75);
    filter: blur(var(--referenzen-blur));
  }
  .referenzen__card:is(.is-hovered, .is-open, :focus-within):not(.is-dismissed)
    > .referenzen__backdrop
    > .referenzen__content {
    transform: scale(1);
    filter: blur(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .referenzen-layout-toggle__button,
  .referenzen__card > :is(.referenzen__image-wrapper, .referenzen__backdrop),
  .referenzen__backdrop > :is(.referenzen__content, .referenzen__actions) {
    transition: none !important;
  }
}

/* ------------------------- Filter und Screenreader-Texte ------------------------- */

#referenzen-liste .brx-option-text {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}

#referenzen-liste input[type="radio"]:focus-visible + .brx-option-text {
  outline: 2px solid var(--base, #222);
  outline-offset: 3px;
}

.referenzen__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (forced-colors: active) {
  #referenzen-liste label:has(input:checked) {
    outline: 3px solid currentColor;
    outline-offset: 2px;
    border-radius: var(--radius-pill);
  }

  #referenzen-liste label:has(input:checked) span {
    font-weight: 700;
    text-decoration: underline;
  }
}

/* ------------------------- Breakpoints ------------------------- */

@media screen and (min-width: 768px) {
  .grid-5.referenzen__grid .referenzen__card {
    font-size: 0.7em;
  }

  .grid-5.referenzen__grid .referenzen__image-wrapper {
    padding: var(--space-2xl);
  }

  .grid-5.referenzen__grid .referenzen__heading {
    font-size: 1.35em;
  }

  .grid-5.referenzen__grid
    :is(.referenzen__content-list, .referenzen__excerpt) {
    margin-bottom: var(--space-s);
  }
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .referenzen__grid.grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .referenzen__grid.grid-5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  #referenzen {
    padding-top: var(--space-xl);
  }

  .referenzen-layout-toggle {
    display: none;
  }

  .referenzen__grid.grid-3,
  .referenzen__grid.grid-5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .referenzen__card {
    --referenzen-padding-y: var(--space-m);
    --referenzen-padding-x: calc(var(--space-m) * 0.8);
  }

  .referenzen__image-wrapper {
    padding: var(--space-xl);
  }

  .referenzen__heading {
    font-size: 1.2em;
  }

  /* ------------------------- Filter ------------------------- */

  #referenzen-liste.brxe-filter-radio {
    --filter-edge: calc(1.25rem + 6px);

    width: 100%;
    min-width: 0;

    margin: 0;

    font-size: 0.9em;
  }

  /* Horizontale Filterleiste */

  #referenzen-liste.brxe-filter-radio .brx-filter-options {
    display: flex;
    flex-flow: row nowrap;
    gap: 0.6rem;

    width: 100%;
    min-width: 0;

    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;

    margin: 0;
    padding: 0.5em var(--filter-edge);

    list-style: none;

    scrollbar-width: none;
    scroll-behavior: auto;
    -webkit-overflow-scrolling: touch;

    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );

    mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );
  }

  #referenzen-liste.brxe-filter-radio .brx-filter-options::-webkit-scrollbar {
    display: none;
  }

  /* Einzelne Filteroptionen */

  #referenzen-liste.brxe-filter-radio .brx-filter-options > li {
    flex: 0 0 auto;

    min-width: 0;
    max-width: 100%;
  }

  #referenzen-liste.brxe-filter-radio .brx-filter-options > li > label {
    display: block;

    white-space: normal;
  }

  #referenzen-liste.brxe-filter-radio .brx-option-text {
    max-width: 100%;

    white-space: normal;
    overflow-wrap: anywhere;
  }
}

@media screen and (max-width: 478px) {
  .referenzen__grid.grid-3,
  .referenzen__grid.grid-5 {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ------------------------- Windows-Kontrastmodus ------------------------- */

@media (forced-colors: active) {
  .referenzen__card {
    border-color: CanvasText;
  }

  .referenzen__backdrop {
    background: Canvas !important;
  }

  .referenzen__backdrop::before,
  .referenzen__backdrop::after,
  .referenzen__shade {
    display: none !important;
  }

  .referenzen__card[data-referenzen-card-ready]
    > .referenzen__backdrop
    > .referenzen__content,
  .referenzen__actions {
    color: CanvasText;
  }

  .referenzen__card.is-dismissed .referenzen__actions:focus-within {
    background: Canvas;
  }

  .referenzen__card:focus-visible,
  .referenzen__card:has(:focus-visible),
  .referenzen__actions a:focus-visible,
  .referenzen-layout-toggle__button:focus-visible,
  #referenzen-liste input[type="radio"]:focus-visible + .brx-option-text {
    outline-color: Highlight;
  }

  .referenzen-layout-toggle__button[aria-pressed="true"] {
    border-width: 2px;
  }
}

/* ------------------------- Investment Slider ------------------------- */

.investment-slider__container {
  margin-top: var(--space-xl);
  margin-inline: auto;
  width: 100% !important;
  height: auto;
  max-width: var(--container-width-m);
}

.investment-slider {
  --investment-gap: 0.5em;
  --investment-radius: var(--radius-main, 0.75em);

  width: 100%;
  margin-inline: auto;
  position: relative;
}

.investment-slider *,
.investment-slider *::before,
.investment-slider *::after {
  box-sizing: border-box;
}

.investment-slider__collection {
  width: 100%;
}

/* Ohne Slider-Initialisierung: alle Karten vollständig sichtbar. */
.investment-slider__list {
  display: grid;
  gap: var(--investment-gap);
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  position: relative;
  list-style: none;
}

.investment-slider__item {
  display: flex;
  min-width: 0;
  margin: 0;
  padding: 0;
  position: relative;
  color: var(--white);
  background: #949494;
  border-radius: var(--investment-radius);
  -webkit-user-select: none;
  user-select: none;
}

/* Der Link übernimmt die gesamte Kartenfläche und das Clipping. */
.investment-slider__item-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--investment-radius);
  clip-path: inset(0 round var(--investment-radius));
  color: var(--white);
  text-decoration: none;
  cursor: pointer;
}

/* Mindestformat 4:2.5; größere Inhalte dürfen die Karte erhöhen. */
.investment-slider__item-inner::before {
  content: "";
  grid-area: 1 / 1;
  padding-top: 62.5%;
  pointer-events: none;
}

.investment-slider__item-bg {
  z-index: 0;
  position: absolute;
  inset: 0;
  background: #222;
  pointer-events: none;
}

/* Ursprünglicher Verlauf: unten, über 55 % der Kartenhöhe. */
.investment-slider__item-bg::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  width: 100%;
  height: 55%;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.75) 50%,
    rgba(0, 0, 0, 0)
  );
  z-index: 4;
  pointer-events: none;
}

.investment-slider__img {
  display: block;
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  transform: scale(1) translateZ(0);
  transition: transform 1.2s cubic-bezier(0.645, 0.045, 0.355, 1);
}

/* Gleiche untere Position und Abstände, aber weiterhin im Layout. */
.investment-slider__item-content {
  grid-area: 1 / 1;
  align-self: end;
  min-width: 0;
  z-index: 2;
  /*padding: 0 2em 3em 2.5em;*/
  padding: 0 var(--space-m) calc(var(--space-m) * 1.1);
  position: relative;
  white-space: nowrap;
}

/* Ersetzt den früheren ::before-Counter. */
.investment-slider__number {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--primary);
  border-radius: var(--radius-circle, 50%);
  width: 2em;
  height: 2em;
  margin-bottom: var(--space-xs);
  font-weight: 700;
  color: var(--primary);
  font-size: var(--text-2xl);
  opacity: 1;
  background: rgba(0, 0, 0, 0.2);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    transform 0.45s cubic-bezier(0.645, 0.045, 0.355, 1),
    opacity 0.45s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.investment-slider__h {
  opacity: 1;
  margin-top: 0;
  margin-bottom: var(--space-xs);
  font-size: var(--h4);
  font-weight: 600;
  line-height: 1;
  color: var(--white);
  display: block;
  width: min-content;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: normal;
  hyphens: manual;
  text-decoration: none;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: center left;
  transition:
    transform 0.45s cubic-bezier(0.645, 0.045, 0.355, 1),
    opacity 0.45s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.investment-slider .btn-arrow-shift {
  opacity: 1;
  pointer-events: auto;
  transform-origin: left bottom;
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    transform 0.45s cubic-bezier(0.645, 0.045, 0.355, 1),
    opacity 0.45s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.investment-slider .btn-arrow-shift__icon-wrap {
  color: var(--base);
  max-width: none;
}

.investment-slider .btn-arrow-shift__text-wrap {
  background: rgba(0, 0, 0, 0.2);
}

/* Ursprüngliche Skalierungen und Übergänge im Desktop-Slider. */
@media (min-width: 992px) {
  .investment-slider.is-enhanced .investment-slider__list {
    display: flex;
    align-items: stretch;
  }

  .investment-slider.is-enhanced .investment-slider__item {
    flex: 1 1 0;
  }

  .investment-slider.is-enhanced .investment-slider__item-inner {
    /*min-height: 35em;*/
    min-height: calc(var(--size-font-fluid) * 35);
  }

  .investment-slider.is-enhanced .investment-slider__item-inner::before {
    padding-top: 0;
  }

  .investment-slider.is-enhanced .investment-slider__h {
    max-width: none;
    overflow-wrap: normal;
  }

  .investment-slider.is-enhanced
    [data-status="inactive"]
    .investment-slider__number {
    transform:
      /*translate3d(calc(var(--space-s) * -1.1), 4.5em, 0)
      scale(0.8);*/
	  /*translate3d(calc(var(--space-m) * -1.2), 4.5em, 0)
      scale(0.8);*/
	  /*translate3d(calc(var(--space-m) * -0.9), var(--space-3xl), 0) scale(0.8);	*/ translate3d(
        calc(var(--space-m) * -0.9),
        4em,
        0
      )
      scale(0.8);
  }

  .investment-slider.is-enhanced
    [data-status="inactive"]
    .investment-slider__h {
    transform:
      /*translate3d(calc(var(--space-s) * /*-0.625*//* -1.75), 2.75em, 0)
      scale(0.375);*/
	  /*translate3d(calc(var(--space-s) * -1.25), var(--space-2xl), 0) scale(0.375);*/ translate3d(
        calc(var(--space-s) * -1.25),
        2.5em,
        0
      )
      scale(0.375);
  }

  .investment-slider {
    --investment-number-x: calc(var(--size-font-fluid) * -1.6);
    --investment-number-y: calc(var(--size-font-fluid) * 6.5);

    --investment-heading-x: calc(var(--size-font-fluid) * -1);
    --investment-heading-y: calc(var(--size-font-fluid) * 5);
  }

  .investment-slider.is-enhanced
    [data-status="inactive"]
    .investment-slider__number {
    transform: translate3d(
        var(--investment-number-x),
        var(--investment-number-y),
        0
      )
      scale(0.8);
  }

  .investment-slider.is-enhanced
    [data-status="inactive"]
    .investment-slider__h {
    transform: translate3d(
        var(--investment-heading-x),
        var(--investment-heading-y),
        0
      )
      scale(0.375);
  }

  .investment-slider.is-enhanced [data-status="inactive"] .btn-arrow-shift {
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0, 0, 0) scale(0.35);
  }

  .investment-slider.is-enhanced
    [data-status="inactive"]
    .investment-slider__img {
    transform: scale(1.1) translateZ(0);
  }

  .investment-slider.is-enhanced
    [data-status="active"]
    .investment-slider__number {
    transition-delay: 450ms;
  }

  .investment-slider.is-enhanced [data-status="active"] .investment-slider__h {
    transition-delay: 550ms;
  }

  .investment-slider.is-enhanced [data-status="active"] .btn-arrow-shift {
    transition-delay: 700ms;
  }
}

@media (max-width: 991px) {
  .investment-slider__container {
    max-width: var(--container-width);
  }
  .investment-slider__item-bg::after {
    height: 75%;
  }

  .investment-slider__item-content {
    padding: var(--space-m);
    padding-top: 0;
  }
	
  .investment-slider__h {
	 word-break: break-word;
	 width: auto;
	 max-width: 16ch; 
  }	
	
  .investment-slider__item:first-child .investment-slider__h {
	 max-width: 10ch; 
  }		

  .investment-slider .btn-arrow-shift__text-wrap {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
}

@media (max-width: 478px) {
  .investment-slider__item-inner::before {
    padding-top: 100%;
  }

  .investment-slider__item-content {
    padding: 0 var(--space-s) var(--space-m) calc(var(--space-s) * 1.1);
  }
}

/* Fokus innerhalb des Clippings, auch bei mehrteiligen Radius-Variablen. */
.investment-slider__item-inner:focus-visible {
  outline: none;
}

.investment-slider__item-inner:focus-visible::after {
  content: "";
  position: absolute;
  inset: 6px;
  z-index: 5;
  border: 3px solid #fff;
  border-radius: inherit;
  box-shadow:
    0 0 0 2px #000,
    inset 0 0 0 2px #000;
  pointer-events: none;
}

/* Tastaturfokus: sofort sichtbar, ohne die Maus-Verzögerungen. */
/*
.investment-slider.is-instant *,
.investment-slider.is-instant *::before,
.investment-slider.is-instant *::after {
  transition: none !important;
}*/

@media (prefers-reduced-motion: reduce) {
  .investment-slider *,
  .investment-slider *::before,
  .investment-slider *::after {
    animation: none !important;
    transition: none !important;
  }

  .investment-slider .investment-slider__img {
    transform: none !important;
  }
}

@media (forced-colors: active) {
  .investment-slider__item:focus-within {
    outline: 3px solid CanvasText;
    outline-offset: 3px;
  }
  .investment-slider__item-inner {
    border: 1px solid CanvasText;
    background: Canvas;
    color: LinkText !important;
  }

  .investment-slider__item-inner:visited {
    color: VisitedText !important;
  }

  .investment-slider__h,
  .investment-slider__number {
    color: inherit !important;
  }

  .investment-slider__item-inner:focus-visible::after {
    border-color: none;
    box-shadow: none;
  }
}

/* ------------------------- Vorteile ------------------------- */

#vorteile {
  scroll-margin-top: 4em;
}

.benefits-container {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr);
  gap: var(--space-2xl);
  align-items: start;

  min-width: 0;
}

#vorteile hgroup {
  margin-bottom: var(--space-m);
}

.bmh-benefits__image-wrapper {
  position: sticky;
  top: 7.5em;

  width: auto;
  height: auto;

  min-width: 0;
  max-width: 100%;
}

[sticky-image-wrapper] {
  position: relative;

  width: 100%;
  max-width: 32.5em;
  aspect-ratio: 1 / 1.3;

  overflow: hidden;

  border-radius: var(--radius-xs);
  border-bottom-right-radius: var(--radius-2xl);

  -webkit-mask-image: linear-gradient(#fff, #fff);
  mask-image: linear-gradient(#fff, #fff);
}

.bmh-benefits__image {
  position: absolute;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.bmh-benefits__content-wrapper {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.bmh-benefits {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.bmh-benefits__wrapper {
  position: relative;

  width: 100%;
  min-width: 0;
  max-width: 100%;
}

#benefits-heading {
  max-width: 13ch;
  margin-bottom: var(--space-s);
}

.bmh-benefits__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xl);

  width: 100%;
  min-width: 0;
  max-width: 100%;

  margin: 0;
  padding: 0;

  list-style: none;
}

.bmh-benefits__item {
  position: relative;

  display: flex;
  align-items: flex-start;
  gap: var(--space-l);

  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.bmh-benefits__item:last-child {
  margin-bottom: 17.5em;
}

.bmh-benefits__line {
  position: absolute;
  left: 1.5em;

  width: 2px;

  background-color: rgba(0, 0, 0, 0.15);

  pointer-events: none;
}

.bmh-benefits__fill {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  background-color: var(--primary) !important;

  transform-origin: 50% 0;
}

.bmh-benefits__marker {
  position: relative;
  z-index: 1;

  flex: none;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 3em;
  height: 3em;

  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 50%;

  background-color: white !important;
  color: var(--base) !important;

  transition:
    background-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1),
    color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1),
    border-color 0.4s cubic-bezier(0.645, 0.045, 0.355, 1);
}

/* Decorative plus */
.bmh-benefits__marker::before,
.bmh-benefits__marker::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;

  background-color: currentColor;

  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
  transform-origin: center;

  transition:
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.bmh-benefits__marker::before {
  width: 1em;
  height: 3px;
}

.bmh-benefits__marker::after {
  width: 3px;
  height: 1em;
}

/* Plus pops in once the benefit becomes active */
.bmh-benefits__item[data-status="active"] > .bmh-benefits__marker::before,
.bmh-benefits__item[data-status="active"] > .bmh-benefits__marker::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.bmh-benefits__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--space-xs);

  width: auto;
  min-width: 0;
  max-width: 100%;

  padding-top: 0.4em;

  transition: opacity 0.25s ease;
}

.bmh-benefits__title {
  margin: 0;

  max-width: 100%;

  font-size: 2em;
  text-decoration: none;

  overflow-wrap: anywhere;
}

.bmh-benefits__text {
  margin: 0;

  max-width: 55ch;
  overflow-wrap: anywhere;
}

/* =========================
   BENEFIT STATES
   ========================= */

/* Noch nicht erreicht */
.bmh-benefits__item > .bmh-benefits__content {
  opacity: 0.55 !important;
}

/* Bereits erreicht */
.bmh-benefits__item[data-status="active"] > .bmh-benefits__content {
  opacity: 1 !important;
}

/* Aktuell führender Benefit */
.bmh-benefits__item[data-current] > .bmh-benefits__content {
  opacity: 1 !important;
}

/* Standard Marker */
.bmh-benefits__item > .bmh-benefits__marker {
  background-color: white !important;
  color: var(--base) !important;
  border-color: rgba(0, 0, 0, 0.2) !important;
}

/* Bereits erreichter Marker */
.bmh-benefits__item[data-status="active"] > .bmh-benefits__marker {
  background-color: var(--primary) !important;
  color: var(--base) !important;
  border-color: var(--primary) !important;
}

@media (max-width: 991px) {
  .bmh-benefits__image-wrapper {
    position: relative;
    top: 0;
    display: none;
  }

  .benefits-container {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-xl);
  }

  .bmh-benefits__item:last-child {
    margin-bottom: 5em;
  }
}

@media screen and (max-width: 767px) {
  .bmh-benefits__list {
    gap: var(--space-2xl);
  }

  .bmh-benefits__item {
    gap: var(--space-m);
  }
}

@media screen and (max-width: 478px) {
  .bmh-benefits__title {
    font-size: 1.65em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bmh-benefits__marker,
  .bmh-benefits__marker::before,
  .bmh-benefits__marker::after,
  .bmh-benefits__content {
    transition: none;
  }
}

/* ------------------------- Fonds ------------------------- */

#unsere-fonds .image-strip__container {
	margin-top: var(--space-m);
}

/* Platz für einen geöffneten Fonds-Eintrag reservieren */
.fonds-accordion__container > .content-accordion, #presse-kit > .content-accordion {
  box-sizing: border-box;
  min-height: var(--content-accordion-min-height, 0px);
  justify-content: flex-start;
}

/* Zusätzlichen Platz unterhalb der Einträge lassen */
.fonds-accordion__container
  > .content-accordion
  > .content-accordion__item,
#presse-kit
  > .content-accordion
  > .content-accordion__item {
  flex: 0 0 auto;
}

.fonds-accordion__container {
  margin-top: var(--space-3xl);
  max-width: 70ch;
}

@media screen and (max-width: 478px) {
  .fonds-accordion__container {
    margin-top: var(--space-l);
  }
}

/* ------------------------- Prozess ------------------------- */

.cycle-section {
  padding-block: var(--space-xl, 6rem);
  margin-top: var(--space-l);
}

/* Main wrapper */
.cycle {
  --cycle-size: 40em;
  --cycle-step-size: 5.5em;
  --cycle-nav-size: 2.5em;

  --cycle-color: var(--base);
  --cycle-bg: var(--white);
  --cycle-muted: #0000001a;

  position: relative;
  width: min(var(--cycle-size), 86vw);
  height: min(var(--cycle-size), 86vw);
  margin-inline: auto;
  color: var(--cycle-color);
}

/* Circle */
.cycle__circle {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--cycle-muted);
  pointer-events: none;
}

.cycle__progress {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.cycle__progress-track,
.cycle__progress-bar {
  fill: none;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.cycle__progress-track {
  stroke: transparent;
}

.cycle__progress-bar {
  stroke: var(--cycle-color);
  stroke-linecap: butt;
}

/* ------------------------- Prozess: Schrittliste ------------------------- */

.cycle__steps {
  position: absolute;
  inset: 0;
  z-index: 2;

  display: block;
  width: 100%;
  height: 100%;
  box-sizing: border-box;

  margin: 0;
  padding: 0;
  list-style: none;

  pointer-events: none;
}

.cycle__steps > .cycle__step {
  margin: 0;
  padding: 0;
  pointer-events: auto;
}

/* Ohne Initialisierung werden nur die Prozessinhalte angezeigt */
.cycle:not([data-cycle-init="true"]) .cycle__steps {
  display: none;
}

@media screen and (max-width: 767px) {
  .cycle__steps {
    position: static;
    inset: auto;
    order: 1;

    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;

    width: 100%;
    height: auto;

    column-gap: var(--space-xs);
    row-gap: var(--space-xs);

    pointer-events: auto;
  }
}

/* Steps */
.cycle__step {
  position: absolute;
  z-index: 2;
  width: var(--cycle-step-size);
  height: var(--cycle-step-size);
  top: var(--cycle-step-y, 0%);
  left: var(--cycle-step-x, 50%);
  transform: translate(-50%, -50%);
}

.cycle__step-button {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 0;
  border-radius: 50%;
  border: 1px solid var(--grey);
  background-color: var(--white);
  color: #949494;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  line-height: 1;
  appearance: none;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}

.cycle__step-button span {
  display: block;
  font-size: calc(var(--h4) * 1.3);
  font-weight: 600;
  line-height: 0.8;
}

.cycle__step-button:hover {
  transform: scale(1.06);
}

.cycle__step-button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 0.35em;
}

.cycle__step.is-opened .cycle__step-button,
.cycle__step.is-active .cycle__step-button {
  border-color: var(--primary);
  background-color: var(--primary);
  color: var(--base);
}

/* Center content */
.cycle__content {
  position: absolute;
  inset: 18%;
  z-index: 1;
  display: grid;
  place-items: center;
  text-align: center;
}

.cycle__content-item {
  grid-area: 1 / 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(1em) scale(0.96);
}

.cycle__content-item.is-active {
  visibility: visible;
}

.cycle__eyebrow {
  margin: 0 0 0.5em;
  font-family: var(--font-family-b);
  font-size: 0.75em;
  line-height: 1;
  text-transform: uppercase;
}

.cycle__title {
  margin: 0;
  font-size: var(--h5);
  text-decoration: none;
}

.cycle__text {
  margin: 0.75em 0 0;
}

/* Inner nav */
.cycle__nav {
  position: absolute;
  left: 50%;
  bottom: var(--space-l);
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--space-xs) * 1.5);
  transform: translateX(-50%) translateY(100%);
  pointer-events: auto;
}

.cycle__nav-button {
  width: var(--cycle-nav-size);
  height: var(--cycle-nav-size);
  padding: 0.8em;
  border: none;
  border-radius: 50%;
  background-color: var(--primary);
  color: var(--base);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  appearance: none;
  transition: transform 0.35s ease;
}

.cycle__nav-button svg {
  width: 100%;
  height: 100%;
  display: block;
}

.cycle__nav-button:hover {
  transform: scale(1.1);
}

.cycle__nav-button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 0.25em;
}

.cycle__nav-button[aria-disabled="true"] {
  opacity: 0.35 !important;
  cursor: default;
}

.cycle__nav-button[aria-disabled="true"]:hover {
  transform: none;
}

@media screen and (max-width: 767px) {
  .cycle {
    --cycle-step-size: 3.25em;
    --cycle-nav-size: 2.75em;

    width: 100%;
    height: auto;
    max-width: 36em;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    column-gap: var(--space-xs);
    row-gap: var(--space-m);
  }

  .cycle__circle,
  .cycle__progress {
    display: none;
  }

  .cycle__step {
    position: static;
    order: 1;
    flex: 0 0 var(--cycle-step-size);
    width: var(--cycle-step-size);
    height: var(--cycle-step-size);
    transform: none;
  }

  .cycle__step-button {
    color: #767676;
  }

  .cycle__step-button span {
    font-size: var(--h4);
  }

  .cycle__step-button:hover {
    transform: none;
  }

  .cycle__content {
    position: relative;
    inset: auto;
    order: 2;
    width: 100%;
    min-width: 0;
    min-height: 20em;
    box-sizing: border-box;

    display: grid;
    grid-template-rows: 1fr auto;
    place-items: center;

    text-align: center;
    padding: var(--space-l) var(--space-m);
    border: 1px solid var(--cycle-muted);
    border-radius: var(--radius-main, 2rem);
  }

  .cycle__content-item {
    grid-area: 1 / 1;
    width: min(100%, 28em);
    max-width: 100%;
    min-width: 0;
    place-self: center;
  }

  .cycle__eyebrow {
    font-size: 0.75em;
  }

  .cycle__title {
    font-size: var(--h5, 1.25em);
    word-break: break-word;
  }

  .cycle__text {
    max-width: 27em;
    margin-inline: auto;
  }

  .cycle__nav {
    position: static;
    grid-area: 2 / 1;
    margin-top: var(--space-m);
    transform: none;
  }

  .cycle__nav-button:hover {
    transform: none;
  }
}

@media screen and (max-width: 478px) {
  .cycle-section {
    padding-top: 0;
  }

  .cycle {
    --cycle-step-size: 2.75em;
    max-width: none;
    row-gap: var(--space-m);
  }

  .cycle__content {
    min-height: 21em;
    padding: var(--space-m);
  }

  .cycle__text {
    font-size: 0.95em;
  }
}

/* ------------------------- Prozess: A11y-Ergänzungen ------------------------- */

/* Bedienflächen */
.cycle__step-button,
.cycle__nav-button {
  box-sizing: border-box;
  min-width: 24px;
  min-height: 24px;
}

/* Klarer Tastaturfokus */
.cycle__step-button:focus-visible,
.cycle__nav-button:focus-visible {
  outline: 3px solid var(--base);
  outline-offset: 3px;
}

/* Unsichtbare Screenreader-Rückmeldung */
.cycle__status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Ohne Initialisierung bleiben alle Inhalte lesbar */
.cycle:not([data-cycle-init="true"]) {
  display: block;
  width: min(100%, var(--cycle-size));
  height: auto;
}

.cycle:not([data-cycle-init="true"]) .cycle__circle,
.cycle:not([data-cycle-init="true"]) .cycle__step,
.cycle:not([data-cycle-init="true"]) .cycle__nav {
  display: none;
}

.cycle:not([data-cycle-init="true"]) .cycle__content {
  position: static;
  display: block;
}

.cycle:not([data-cycle-init="true"]) .cycle__content-item {
  width: 100%;
  margin-bottom: 1.5em;
  opacity: 1;
  visibility: visible;
  transform: none;
}

.cycle:not([data-cycle-init="true"]) .cycle__content-item:last-of-type {
  margin-bottom: 0;
}

/* Reduced Motion: auch Hover-Vergrößerungen ausschalten */
@media (prefers-reduced-motion: reduce) {
  .cycle__step-button,
  .cycle__nav-button {
    transition: none;
  }

  .cycle__step-button:hover,
  .cycle__nav-button:hover {
    transform: none;
  }
}

/* Windows-Kontrastmodus und vergleichbare Einstellungen */
@media (forced-colors: active) {
  .cycle__step-button,
  .cycle__nav-button {
    border: 1px solid ButtonText;
    background: ButtonFace;
    color: ButtonText;
  }

  .cycle__step.is-opened .cycle__step-button,
  .cycle__step.is-active .cycle__step-button {
    border-color: ButtonText;
    background: ButtonFace;
    color: ButtonText;
  }

  .cycle__step.is-active .cycle__step-button {
    border: 3px solid Highlight;
    box-shadow: none;
  }

  .cycle__step-button:focus-visible,
  .cycle__nav-button:focus-visible {
    outline-color: Highlight;
  }
}

/* ------------------------- Team Grid + Cards ------------------------- */

.team__grid [data-transform-target] {
  width: 100%;
  height: auto;
  overflow: clip;
  border-radius: var(--radius-main);
}

.team__grid {
  column-gap: var(--space-m);
  row-gap: var(--space-xl);
}

.team__grid .team__list-item {
  height: 100%;
}

.team__container {
  margin-top: var(--space-l);
}

.team-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow-wrap: anywhere;
}

.team-card__image-wrapper {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1.15;
  overflow: hidden;
  border-radius: var(--radius-main);
}

.team-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  object-fit: cover;
}

.team-card__heading {
  font-size: 1.2em;
  margin: var(--space-s) 0 var(--space-2xs) 0;
  hyphens: auto;
  text-decoration: none;
}

.team-card__label-wrapper {
  margin-bottom: var(--space-s);
  line-height: 1.3;
}

.team-card .content-label {
  display: inline;
  font-size: 0.7em;
  margin-bottom: 0.05em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

ul.team-card__link-list {
  margin: 0 0 auto 0;
  grid-auto-rows: 1fr;
}

ul.team-card__link-list li .team-card__link {
  font-family: var(--font-family-b);
  line-height: 1.2;
  color: inherit;
  text-decoration: none;
  position: relative;
  transition: font-weight 0.35s ease-in-out;
}

/*
ul.team-card__link-list li .team-card__link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.25em;

  width: 100%;
  height: 0.05em;

  background-color: var(--primary);

  transform: scaleX(0) rotate(0.001deg);
  transform-origin: right;

  transition: transform 0.635s cubic-bezier(0.625, 0.05, 0, 1);
}*/

@media (hover: hover) and (pointer: fine) {
  ul.team-card__link-list li .team-card__link:hover {
    font-weight: 500;
  } /*
  ul.team-card__link-list li .team-card__link:hover::before {
    transform: scaleX(1) rotate(0.001deg);
    transform-origin: left;
  }*/
}

ul.team-card__link-list li .team-card__link:focus-visible {
  font-weight: 500;
} /*
ul.team-card__link-list li .team-card__link:focus-visible::before {
  transform: scaleX(1) rotate(0.001deg);
  transform-origin: left;
}*/

#ansprechpartner {
  scroll-margin-top: 3em;
}

.team-card__linkedin {
  margin-top: var(--space-s);
}

#ansprechpartner li {
  display: flex;
  align-items: center;
  margin-bottom: var(--space-xs);
}

#ansprechpartner li .svg-circle {
  height: 1.75em;
  width: 1.75em;
  border-width: 1.25px;
  border-color: #bbb;
  margin-right: var(--space-xs);
  flex-shrink: 0;
  transform: translateY(-0.075em);
}

#ansprechpartner li .svg-circle svg {
  height: 1em;
  width: 1em;
  stroke-width: 2px;
  stroke: #bbb;
}

@media (prefers-reduced-motion: reduce) {
  ul.team-card__link-list li .team-card__link,
  ul.team-card__link-list li .team-card__link::before {
    transition: none;
  }
}

/* ------------------------- Team Filter ------------------------- */

#ansprechpartner .team__container {
  margin-top: var(--space-l);
  gap: var(--space-m);
}

.team-filters {
  position: relative;
}

fieldset.team-filters__group {
  padding: 0;
  border: none;
}

.team-filters__group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--brx-btn-options-gap, 10px);
}

.team-filters__group--investment {
  margin-top: var(--space-s);
}

.team-filters__group--investment.is-hidden {
  visibility: hidden;
  pointer-events: none;
}

.team-filters__label {
  align-items: center;
  color: inherit;
  cursor: pointer;
  display: flex;
  font: inherit;
  gap: var(--brx-indicator-gap, 0.5em);
  margin: inherit;
  position: relative;
}

.team-filters__group--investment .team-filters__label {
  margin-top: 0;
  transform-origin: bottom left;
  will-change: opacity, transform;
}

.team-filters__input {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;

  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;

  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.team-filters__text {
  border: 1px solid #0000001a;
  border-radius: var(--radius-pill);
  font-family: var(--font-family-b);
  align-items: center;
  display: inline-flex;
  justify-content: center;
  padding: 0.5em 1em;
  margin-bottom: 1px;
  text-align: center;
  transition:
    border 0.4s ease,
    background 0.4s ease;
}

.team-filters .team-filters__input:checked + .team-filters__text {
  background: var(--primary);
}

.team-filters__label:hover .team-filters__text {
  border: 1px solid var(--primary);
}

.team-filters__group--investment .team-filters__text {
  border-radius: var(--radius-xs);
  font-size: 0.85em;
  padding: 0.35em 1em;
}

.team-filters__input:focus-visible + .team-filters__text {
  outline: 2px solid var(--base);
  outline-offset: 3px;
}

@media screen and (max-width: 767px) {
  .team-filters {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  fieldset.team-filters__group {
    display: flex;
    flex-wrap: nowrap !important;

    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-inline-size: 0;

    gap: 0.6rem;

    overflow-x: auto;
    overflow-y: hidden;

    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;

    scrollbar-width: none;

    padding-inline: 0.65em;
    padding-bottom: 0.25rem;
    padding-block: 6px;

    box-sizing: border-box;

    -webkit-mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );

    mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );
  }

  fieldset.team-filters__group::-webkit-scrollbar {
    display: none;
  }

  .team-filters__label {
    flex: 0 0 auto;
  }

  .team-filters__text {
    white-space: nowrap;
  }

  .team-filters__group {
    font-size: 0.9em;
  }
}

@media (forced-colors: active) {
  .team-filters__label:has(input:checked) {
    outline: 3px solid currentColor;
    outline-offset: 2px;
    border-radius: var(--radius-pill);
  }

  .team-filters__label:has(input:checked) .team-filters__text {
    font-weight: 700;
    text-decoration: underline;
  }
}

/* ------------------------- Team Crossfade ------------------------- */

.team-crossfade {
  position: relative;
}

.team-crossfade__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 20 / 9;
  order: 2;
}

.team-crossfade__slides {
  position: relative;
  width: 100%;
  height: 100%;
}

.team-crossfade__slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.team-crossfade__slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.team-crossfade__slide img {
  display: block;
  width: 100%;
  height: 120%;
  object-fit: cover;
}

.team-crossfade__slide::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.6) 12.5%,
    rgba(0, 0, 0, 0) 25%
  );
}

.team-crossfade__caption {
  position: absolute;
  color: var(--white);
  font-family: var(--font-family-a);
  font-size: var(--text-2xl);
  font-weight: 600;
  text-transform: uppercase;
  text-shadow:
    0 0 1px rgba(0, 0, 0, 0.9),
    0 1px 2px rgba(0, 0, 0, 0.5);
  text-align: left;
  left: var(--space-s);
  bottom: var(--space-s);
  margin: 0;
  z-index: 1;
}

/* Controls */

.team-crossfade__controls {
  position: relative;
  margin-top: var(--space-s);
  margin-right: auto;
  order: 1;
}

.crossfade-slider__nav {
  display: flex;
  gap: max(8px, 0.8rem);
}

.crossfade-slider__button {
  box-sizing: border-box;

  display: grid;
  place-items: center;

  flex: 0 0 auto;

  width: 2.5em;
  height: 2.5em;

  padding: 0;

  border-radius: 50%;

  background: var(--primary);
  color: var(--base);

  cursor: pointer;

  transition: transform 0.35s ease;
}

.crossfade-slider__button svg {
  width: 0.9em;
  height: 0.9em;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

@media (hover: hover) {
  .crossfade-slider__button:hover {
    transform: scale(1.1);
  }
}

.crossfade-slider__button:focus-visible {
  outline: 3px solid var(--base);
  outline-offset: 3px;
}

@media screen and (max-width: 767px) {
  .team-crossfade__caption {
    font-size: 1.25em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .crossfade-slider__button {
    transition: none;
  }

  .crossfade-slider__button:hover {
    transform: none;
  }
}

/* Play / Pause */

[data-team-crossfade-toggle] [data-icon="play"] {
  display: none;
}

[data-team-crossfade-toggle][data-state="paused"] [data-icon="pause"] {
  display: none;
}

[data-team-crossfade-toggle][data-state="paused"] [data-icon="play"] {
  display: block;
}

/* ------------------------- Aktuelles Artikel ------------------------- */

#news .grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-m) var(--space-s);
}

/* Erste Reihe: 2 Spalten */
#news .grid > :nth-child(1),
#news .grid > :nth-child(2) {
  grid-column: span 3;
}

/* Danach: 3 Spalten */
#news .grid > :nth-child(n + 3) {
  grid-column: span 2;
}

/* ------------------------- Filters ------------------------- */

.articles__filters {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.articles__filter-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--brx-btn-options-gap, 10px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.articles__filter-label {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--brx-indicator-gap, 0.5em);
  margin: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.articles__filter-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5em 1em;
  border: 1px solid var(--grey);
  border-radius: var(--radius-pill);
  font-family: var(--font-family-b);
  text-align: center;
  transition:
    border-color 0.4s ease,
    background-color 0.4s ease;
}

.articles__filter-input:checked + .articles__filter-text {
  background-color: var(--primary);
}

.articles__filter-input:focus-visible + .articles__filter-text {
  outline: 2px solid var(--base);
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .articles__filter-item:hover .articles__filter-text {
    border-color: var(--primary);
  }
}

@media screen and (max-width: 767px) {
  .articles__filter-list {
    flex-wrap: nowrap;
    gap: 0.6rem;

    width: 100%;
    max-width: 100%;
    min-width: 0;

    padding: 0.5em 0.65em;

    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;

    font-size: 0.9em;

    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;

    /*-webkit-mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );

    mask-image: linear-gradient(
      to right,
      transparent 0,
      #000 1.25rem,
      #000 calc(100% - 1.25rem),
      transparent 100%
    );*/
  }

  .articles__filter-list::-webkit-scrollbar {
    display: none;
  }

  .articles__filter-item {
    flex: 0 0 auto;
  }

  .articles__filter-text {
    white-space: nowrap;
  }
}

@media (forced-colors: active) {
  .articles__filter-label:has(input:checked) {
    outline: 3px solid currentColor;
    outline-offset: 2px;
    border-radius: var(--radius-pill);
  }

  .articles__filter-label:has(input:checked) .articles__filter-text {
    font-weight: 700;
    text-decoration: underline;
  }
}

/* ------------------------- Grid / Cards ------------------------- */

.articles__grid {
  margin-top: var(--space-m);
  margin-bottom: 0;
  padding: 0;
  list-style: none;
  gap: var(--space-m) var(--space-s);
}

.articles__item {
  min-width: 0;
  height: 100%;
  scroll-margin-block: var(--articles-focus-scroll-margin, 100px);
}

.articles__item:focus {
  outline: 2px solid var(--base);
  outline-offset: 3px;
  border-radius: var(--radius-main);
}

@media (forced-colors: active) {
  .articles__item:focus {
    outline-color: Highlight;
  }
}

.articles__card {
  position: relative;
  height: 100%;
  border: 1px solid var(--grey);
  border-radius: var(--radius-main);
}

.articles__image-wrapper {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 0.625;
  overflow: hidden;
}

.articles__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 115%;
  object-fit: cover;
}

.articles__info-content {
  width: 100%;
  padding: var(--space-m) var(--space-m) var(--space-xl) var(--space-m);
}

.articles__heading {
  margin-bottom: var(--space-xs);
  font-size: 1.1em;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
}

#news .grid > :nth-child(1) .articles__heading,
#news .grid > :nth-child(2) .articles__heading {
  font-size: 1.5em;
}

.articles__divider .line {
  border-top-color: var(--grey);
}

.articles__copy {
  margin-top: var(--space-xs);
  margin-bottom: var(--space-s);
}

.articles__card [data-transform-target] {
  width: 100%;
  height: auto;
  overflow: clip;
  border-radius: 0;
}

.articles__info-content .content-label {
  margin-bottom: 0;
  font-size: 0.8em;
}

.articles__info-content .content-label.investment-label {
  display: block;
  margin-bottom: var(--space-s);
  font-size: 0.7em;
}

/* ------------------------- Card Link ------------------------- */

.articles__link {
  position: absolute;
  inset: 0;
  z-index: 2;

  display: block;

  color: inherit;
  text-decoration: none;

  border-radius: var(--radius-main);

  scroll-margin-block: var(--articles-focus-scroll-margin, 100px);
}

.articles__link-content {
  position: absolute;
  left: var(--space-m);
  bottom: var(--space-m);

  display: inline-flex;
  align-items: center;
  gap: 0.25em;

  min-width: 24px;
  min-height: 24px;
  /*max-width: calc(100% - (var(--space-m) * 2));*/

  font-weight: 600;
}

/* ------------------------- Link Text ------------------------- */

.articles__link-text {
  position: relative;

  width: fit-content;
  min-width: 0;

  font-weight: 600;
  overflow-wrap: anywhere;
}

.articles__link-text::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.1em;

  width: 100%;
  height: 0.05em;

  background-color: currentColor;
}

.articles__link-text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.1em;

  width: 100%;
  height: 0.05em;

  background-color: var(--primary, currentColor);

  transform: scaleX(0) rotate(0.001deg);
  transform-origin: left;

  transition: transform 0.65s cubic-bezier(0.625, 0.05, 0, 1);
}

.articles__link:focus-visible .articles__link-text::after {
  transform: scaleX(1);
}

@media (hover: hover) and (pointer: fine) {
  .articles__link:hover .articles__link-text::after {
    transform: scaleX(1);
  }
}

/* ------------------------- Link Arrow ------------------------- */

.articles__link-arrow {
  width: 1em;
  height: 1em;
  flex: 0 0 1em;

  stroke: var(--primary, currentColor);

  transform: rotate(45deg);
  transition: transform 0.45s ease;
}

.articles__link:focus-visible .articles__link-arrow {
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .articles__link:hover .articles__link-arrow {
    transform: none;
  }
}

/* ------------------------- Focus ------------------------- */

.articles__card:focus-within {
  outline: 2px solid var(--base);
  outline-offset: 3px;
}

.articles__link:focus-visible {
  outline: none;
}

/* ------------------------- Article Extras ------------------------- */

.articles__label-wrapper {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.25em;
}

.articles__fallback-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 120%;
  border-radius: var(--radius-2xs);
}

/* ------------------------- Load More ------------------------- */

.articles__load-more {
  margin-top: var(--space-l);
}

.articles__load-more.is-hidden {
  display: none !important;
}

[data-articles-load-more][hidden],
[data-articles-empty][hidden] {
  display: none !important;
}

.articles__load-more[aria-disabled="true"] {
  cursor: default;
}

.articles__load-more.is-loading {
  cursor: progress;
}

/* ------------------------- Responsive ------------------------- */

@media screen and (max-width: 991px) {
  #news .grid > :nth-child(n + 3) {
    grid-column: span 3;
  }

  #news .grid > :nth-child(1) .articles__heading,
  #news .grid > :nth-child(2) .articles__heading,
  .articles__heading {
    font-size: 1.2em;
  }

  .articles__info-content .content-label {
    font-size: 0.75em;
  }
}

@media screen and (min-width: 768px) and (max-width: 991px) {
  .articles__label-wrapper {
    flex-direction: row;
  }

  #news .grid > :nth-child(1) .articles__label-wrapper,
  #news .grid > :nth-child(2) .articles__label-wrapper {
    flex-direction: row;
  }
}

@media screen and (min-width: 479px) and (max-width: 767px) {
  .articles__label-wrapper {
    flex-direction: column;
  }

  #news .grid > :nth-child(1) .articles__label-wrapper {
    flex-direction: row;
  }
}

@media screen and (max-width: 767px) {
  #news {
    padding-bottom: var(--space-xl);
  }
  .articles__grid {
    margin-top: var(--space-m);
  }

  #news .grid > :nth-child(1) .articles__heading,
  #news .grid > :nth-child(2) .articles__heading,
  .articles__heading {
    font-size: 1em;
  }

  .articles__info-content {
    padding: calc(var(--space-m) * 0.8) calc(var(--space-m) * 0.8)
      var(--space-xl) calc(var(--space-m) * 0.8);
  }
}

@media screen and (max-width: 767px) {
  #news .grid > :nth-child(1) {
    grid-column: span 6;
  }

  #news .grid > :nth-child(n + 2) {
    grid-column: span 3;
  }
  .articles__link-content {
    left: calc(var(--space-m) * 0.8);
  }
}

@media screen and (max-width: 478px) {
  #news .grid {
    grid-template-columns: 1fr;
  }

  #news .grid > *,
  #news .grid > :nth-child(1),
  #news .grid > :nth-child(n + 2),
  #news .grid > :nth-child(n + 3) {
    grid-column: 1 / -1;
  }
}

/* ------------------------- Reduced Motion ------------------------- */

@media (prefers-reduced-motion: reduce) {
  .articles__filter-text,
  .articles__link span.brxe-text-basic::after,
  .articles__link-arrow {
    transition: none;
  }
}

/* ------------------------- Forced Colors ------------------------- */

@media (forced-colors: active) {
  .articles__filter-input:checked + .articles__filter-text {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }

  .articles__link-arrow {
    stroke: LinkText;
  }

  .articles__card:focus-within {
    outline-color: Highlight;
  }
}

/* ------------------------- Content Accordion ------------------------- */

.content-accordion {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  width: 100%;
}

.content-accordion__item {
  position: relative;
  border: 1px solid var(--grey);
  border-radius: 3.5em;
  overflow: hidden;
}

.content-accordion__heading {
  margin: 0;
  padding: 0;
  font: inherit;
  text-decoration: none;
}

.content-accordion__trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m);
  width: 100%;
  padding: var(--space-m);
  padding-inline-end: calc(var(--space-m) + 1em);
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.content-accordion__trigger:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.content-accordion__trigger:focus-visible .content-accordion__icon {
  outline: 3px solid var(--base);
  outline-offset: 3px;
}

.content-accordion__title {
  font-size: var(--h6);
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
}

/* ------------------------- Collapse-title variant ------------------------- */

/*
.content-accordion--collapse-title .content-accordion__title {
  transform-origin: top left;
  transition:
    transform 0.375s ease-in-out,
    opacity 0.375s ease-in-out;
}


.content-accordion--collapse-title
  .content-accordion__item[data-content-accordion-status="active"]
  .content-accordion__title {
  opacity: 0;
  transform: translateY(-60%) scale(0.9);
}

.content-accordion--collapse-title
  .content-accordion__item[data-content-accordion-status="active"]
  .content-accordion__title.is--mikromezzanin {
  opacity: 1;
  transform: translateY(0);
}*/

/* ------------------------- Icon ------------------------- */

.content-accordion__icon {
  position: absolute;
  flex: 0 0 auto;

  width: 1.25em;
  height: 1.25em;

  right: var(--space-m);
  top: 50%;
  transform: translateY(-50%);

  opacity: 0.55;

  transition:
    opacity 0.45s ease,
    transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);

  pointer-events: none;
}

.content-accordion__item:hover .content-accordion__icon,
.content-accordion__item:focus-within .content-accordion__icon {
  opacity: 1;
}

.content-accordion__icon::before,
.content-accordion__icon::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;

  width: 100%;
  height: 0.12em;

  background: currentColor;
  transform: translate(-50%, -50%);
}

.content-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.content-accordion__item[data-content-accordion-status="active"]
  .content-accordion__icon {
  transform: translateY(-50%) rotate(45deg);
  opacity: 1;
}
/*
.content-accordion--collapse-title .content-accordion__icon {
  top: var(--space-m);
  transform: none;
}

.content-accordion--collapse-title
  .content-accordion__item[data-content-accordion-status="active"]
  .content-accordion__icon {
  transform: rotate(45deg);
}*/

/* ------------------------- Panel ------------------------- */

.content-accordion__panel {
  height: 0;
  overflow: hidden;
}

/*
.content-accordion--collapse-title .content-accordion__panel {
  transform: translateY(-2.5em);
}*/

.content-accordion__panel-inner {
  padding: var(--space-xs) var(--space-m) var(--space-l) var(--space-m);
}

.content-accordion__panel-inner > :first-child {
  margin-top: 0;
}

.content-accordion__panel-text {
  margin: var(--space-m) 0 var(--space-l) 0;
}

.content-accordion__panel-inner > :last-child {
  margin-bottom: 0;
}

.content-accordion__panel[inert] {
  pointer-events: none;
}

/* ------------------------- Reduced motion ------------------------- */

@media (prefers-reduced-motion: reduce) {
  .content-accordion__icon,
  .content-accordion--collapse-title .content-accordion__title {
    transition: none;
  }
}

/* ------------------------- Erfolgsbeispiel Template ------------------------- */

.erfolgsbeispiel__section {
  padding-top: calc(var(--space-3xl) * 1.25);
}

.erfolgsbeispiel__container {
  flex-direction: row;
  position: relative;
}

.erfolgsbeispiel__content {
  width: fit-content;
  max-width: 60ch;
  margin: auto;
}

.erfolgsbeispiel__title {
  font-size: 2.15em;
  text-decoration: underline;
}

.erfolgsbeispiel__section .content-label {
  margin-right: 0.25em;
  margin-bottom: 0;
  margin-top: 0.8em;
}

.investment-label {
  background: transparent;
  line-height: 1.2;
}

.erfolgsbeispiel__excerpt {
  font-family: var(--font-family-b);
  margin-top: var(--space-s);
}

.erfolgsbeispiel__excerpt p {
  max-width: none;
}

.erfolgsbeispiel__image-wrapper {
  position: relative;
  width: 100%;
  max-width: 60ch;
  aspect-ratio: 5 / 3.5;
  border-radius: var(--radius-main);
  overflow: hidden;
  margin-bottom: var(--space-xs);
}

.erfolgsbeispiel__image {
  position: absolute;
  width: 100%;
  height: 110%;
  object-fit: cover;
  object-position: center 40%;
}

.erfolgsbeispiel__content {
  margin-bottom: var(--space-m);
}

.erfolgsbeispiel__content h2,
.erfolgsbeispiel__content h3,
.erfolgsbeispiel__content h4,
.erfolgsbeispiel__content h5,
.erfolgsbeispiel__content h6 {
  text-decoration: none;
  margin-top: 1.2em;
  margin-bottom: 0.2em;
}

.erfolgsbeispiel__content h2 {
  font-size: 1.35em;
}

.erfolgsbeispiel__content h3 {
  font-size: 1.25em;
}

.erfolgsbeispiel__content h4 {
  font-size: 1.1em;
}

.erfolgsbeispiel__content h5,
.erfolgsbeispiel__content h6 {
  font-size: 1em;
}

.erfolgsbeispiel__nav {
  position: sticky;
  top: var(--space-3xl);
  width: fit-content;
  max-width: 30ch;
  margin-top: 0.4em;
  margin-left: 1.5em;
  gap: var(--space-xs);
}

#more-success-stories-title {
  font-weight: 600;
  text-decoration: underline;
}

.erfolgsbeispiel__nav-list-item {
  font-family: var(--font-family-b);
  overflow-x: clip;

  margin-top: 0.65em;
  font-size: 0.85em;
}

.erfolgsbeispiel__nav-list-item a {
  --arrow-space: 1em;

  display: flex;
  align-items: baseline;
  gap: 0.15em;
  line-height: 1.15;
  min-height: 24px;
  text-decoration: none;
  transform: translateX(calc(-1 * var(--arrow-space)));
  transition: transform 0.4s cubic-bezier(0.38, 0.005, 0.215, 1);
}

.erfolgsbeispiel__nav-list-item a::before {
  content: "";
  display: inline-block;
  width: var(--arrow-space);
  height: 0.8em;
  flex: 0 0 auto;
  transform: translateY(0.05em);
  background: currentColor;
  -webkit-mask: var(--mask-arrow);
  mask: var(--mask-arrow);
}

.erfolgsbeispiel__nav-list-item a:hover,
.erfolgsbeispiel__nav-list-item a:focus-visible {
  transform: translateX(0);
}

@media screen and (max-width: 767px) {
  .erfolgsbeispiel__title {
    font-size: 1.35em;
    text-decoration: underline;
  }
  .erfolgsbeispiel__nav {
    margin-left: 0;
  }
  .erfolgsbeispiel__nav-list-item {
    font-size: 1em;
  }
}

@media screen and (max-width: 478px) {
  .erfolgsbeispiel__nav {
    font-size: 1.1em;
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .erfolgsbeispiel__nav-list-item a {
    transition: none;
  }
}

/* ------------------------- Presse ------------------------- */

.file-download-wrap {
  --download-line-height: 1.4em;
  --download-icon-size: 0.9em;
  --download-padding: var(--space-2xs);

  display: flex;
  align-items: flex-start;
}

.file-download-wrap svg {
  flex: 0 0 auto;
  height: var(--download-icon-size);
  width: auto;
  transform: translateY(0.35em);

/*  margin-top: calc(
    var(--download-padding) +
      (var(--download-line-height) - var(--download-icon-size)) / 2
  );*/
}

.file-download-wrap .file-wrapper {
  min-width: 0;
}

.file-download.bricks-button {
  font-family: var(--font-family-b);
  font-size: inherit;
  line-height: var(--download-line-height);
  text-align: left;
  padding: var(--download-padding);
  min-height: 24px;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: font-weight 0.2s ease;
}

.file-download.bricks-button:hover,
.file-download.bricks-button:focus {
  text-decoration: underline;
}

ul.team-card__link-list {
  margin: 0 0 auto 0;
  grid-auto-rows: 1fr;
}

ul.team-card__link-list li .team-card__link {
  font-family: var(--font-family-b);
  color: inherit;
  text-decoration: none;
  position: relative;
  min-height: 24px;
  display: inline-flex;
  transition: font-weight 0.35s ease-in-out;
}
/*
ul.team-card__link-list li .team-card__link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.25em;

  width: 100%;
  height: 0.05em;

  background-color: var(--primary);

  transform: scaleX(0) rotate(0.001deg);
  transform-origin: right;

  transition: transform 0.635s cubic-bezier(0.625, 0.05, 0, 1);
}*/

@media (hover: hover) and (pointer: fine) {
  ul.team-card__link-list li .team-card__link:hover {
    font-weight: 500;
  } /*
  ul.team-card__link-list li .team-card__link:hover::before {
    transform: scaleX(1) rotate(0.001deg);
    transform-origin: left;
  }*/
}

ul.team-card__link-list li .team-card__link:focus-visible {
  font-weight: 500;
}
/*
ul.team-card__link-list li .team-card__link:focus-visible::before {
  transform: scaleX(1) rotate(0.001deg);
  transform-origin: left;
}*/

ul.team-card__link-list li {
  display: flex;
  margin-bottom: var(--space-xs);
}

ul.team-card__link-list li .svg-circle {
  height: 1.75em;
  width: 1.75em;
  border-width: 1.25px;
  border-color: #bbb;
  margin-right: var(--space-xs);
}

ul.team-card__link-list li .svg-circle svg {
  height: 1em;
  width: 1em;
  stroke-width: 1.5px;
  stroke: #bbb;
}

.press-contact {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-l);
  margin-top: var(--space-m);
}

.press-contact__image-wrapper {
  position: relative;
  border-radius: var(--radius-circle);
  overflow: hidden;
  aspect-ratio: 1;
  flex-grow: 1;
  height: 100%;
  width: 100%;
  align-self: stretch;
}

@media screen and (max-width: 767px) {
  .press-contact__image-wrapper {
    max-width: 50%;
  }
}

.press-contact__image-wrapper img {
  position: absolute;
  inset: 0;
  height: 110%;
  width: 100%;
  object-fit: cover;
}

.press-contact__heading {
  font-size: var(--h4);
  text-decoration: none;
  border-bottom: 1px solid var(--grey);
  padding-bottom: var(--space-2xs);
  margin-bottom: var(--space-xs);
}

.press-contact__name {
  font-size: calc(var(--h6) * 0.95);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 0.2em;
}

ul.press-contact__list {
  margin-top: var(--space-s);
}

@media (prefers-reduced-motion: reduce) {
  ul.team-card__link-list li .team-card__link,
  ul.team-card__link-list li .team-card__link::before {
    transition: none;
  }
}

/* Kontakt Seite */

.contact-info {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: baseline;
  padding: var(--space-m) var(--space-xl);
  margin-top: var(--space-l);
}

.contact-info__content-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
}

@media screen and (min-width: 992px) {
  .contact-info__content-wrapper {
    flex: 1 0;
  }
}

@media screen and (min-width: 768px) {
  .contact-info__content-wrapper {
    padding-right: var(--space-3xl);
  }
}

.contact-info__heading {
  text-decoration: none;
  hyphens: auto;
  font-size: var(--h4);
}

.contact-info__button-wrapper {
  margin-top: var(--space-m);
}

.contact-info__address-wrapper {
  position: relative;
  flex: 0 1 auto;
}

.contact-info__address-wrapper::before {
  content: "";
  position: absolute;
  left: calc(var(--space-xl) * -1.1);
  top: 0;
  width: 1px;
  height: 100%;
  background: #ffffff4a;
}

.contact-info__address {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-l);
}

.contact-info__name {
  font-size: calc(var(--h6) * 0.9);
  max-width: 30ch;
}

.contact-info .svg-circle {
  width: 1.75em;
  height: 1.75em;
  border: 1px solid var(--primary);
  flex-shrink: 0;
}

.contact-info .svg-circle svg {
  width: 0.9em;
}

#contact {
  word-break: break-word;
}

#contact .image-strip__container {
  margin-top: var(--space-s);
}

@media screen and (max-width: 991px) {
  .contact-info {
    flex-wrap: wrap;
    padding: var(--space-m);
  }
  .contact-info__content-wrapper {
    flex: 1 0 100%;
  }
}

@media screen and (max-width: 767px) {
  .contact-info {
    padding: var(--space-l) var(--space-m);
  }
  .contact-info__adress-wrapper {
    flex: 1 0 100%;
  }
  .contact-info__name {
    font-size: 1.15em;
  }
  .contact-info .footer-adress__info {
    font-size: 0.9em;
  }
}

#directions {
  max-width: 80ch;
}

.directions__heading {
  font-size: var(--h4);
  text-decoration: none;
}

.directions__map {
  height: auto;
  width: 100%;
  margin-top: var(--space-xl);
}

.directions__list-heading {
  font-size: var(--h6);
  text-transform: none;
  text-decoration: none;
  margin-top: var(--space-m);
}

.directions__list-item {
  line-height: 1.2;
  margin-bottom: 0.65em;
}

.directions__list-item span {
  display: block;
  margin-bottom: var(--space-s);
}

.directions__list-item .content-label {
  margin-right: var(--space-xs);
}

/* Investitionsbereiche Unterseiten */

.investition__hero {
  padding-top: calc(var(--space-3xl) * 1.2);
}

.investition__heading {
  width: min-content;
}

.investition__intro {
  margin-top: var(--space-l);
}

.investition__intro ul {
  margin-top: 0.2em;
  padding-left: 1em;
}

.investition__ticket-container {
  gap: var(--space-s);
  margin-top: var(--space-xl);
}

.investition__ticket-container .parallax__wrapper {
  height: 100%;
  min-height: 27.5em;
  border-radius: var(--radius-xs);
}

.investition__ticket {
  padding: var(--space-l) var(--space-xl);
  display: flex;
  flex-direction: column;
  min-height: 27.5em;
  gap: var(--space-l);
}

.investition__ticket h3 {
  font-size: var(--h5);
  text-decoration: none;
  margin-bottom: var(--space-xs);
}

.investition__ticket-info {
  display: flex;
  flex-direction: row;
  gap: var(--space-s);
  align-items: center;
  margin-top: 1em;
}

.investition__ticket .svg-circle {
  width: 2.75em;
  height: 2.75em;
  border: 1.5px solid var(--primary);
  flex-shrink: 0;
  transform: translateY(-0.2em);
}

.investition__ticket .svg-circle svg {
  width: 1.5em;
}

.investition__ticket-text {
  font-weight: 500;
  font-size: 1.25em;
}

.investition__ticket-list ul {
  padding-left: 1em;
  margin-top: 0;
}

.investition__additional {
  margin-top: 0;
}

.investition__intro hgroup,
.investition__additional hgroup {
  max-width: 77.5ch;
}

.investition__quote-wrapper .quote-wrap {
  align-items: center;
  text-align: center;
}

.investition__quote-wrapper .bmh-quote p {
  width: fit-content;
  text-wrap: balance;
}

.investition__pitch {
  text-align: center;
  display: flex;
  align-items: center;
  max-width: 70ch;
}

.investition__pitch h2,
.investition__pitch h3 {
  text-decoration: none;
  font-size: var(--h4);
}

.investition__pitch p {
  max-width: 40ch;
}

section:has(.investition__quote-wrapper) {
  padding-top: 0.2em;
}

@media (min-width: 992px) and (min-aspect-ratio: 2/1.25) {
  .investition__hero-container {
    min-height: calc(110svh - (var(--space-3xl) * 2));
  }
}

@media screen and (max-width: 991px) {
  .investition__heading {
    font-size: 5em;
  }
  .investition__ticket {
    border-radius: var(--radius-xs);
  }
  .investition__ticket-container .parallax__wrapper {
    order: 2;
    border-radius: var(--radius-main);
  }
  .investition__pitch {
    margin-top: var(--space-xl);
  }
}

@media screen and (max-width: 767px) {
  .investition__heading {
    font-size: 3.75em;
  }
  .investition__ticket {
    padding: var(--space-m);
  }
}

@media screen and (max-width: 478px) {
  .investition__heading {
    font-size: 2.25em;
  }
}

/* Datenschutz & Disclaimer */

.datenschutz__section h1 {
  font-size: calc(var(--h1) * 0.85);
  text-align: center;
}

.datenschutz__hero-container {
  padding: var(--space-3xl) 0 var(--space-2xl) 0;
  justify-content: center;
}

.datenschutz__text {
  --list-indent: 2em;
  --ordered-list-indent: 0.75em;
  --marker-gap: 0.5em;
  --list-item-gap: 0.35em;
  width: 100%;
  max-width: 65ch;
  align-self: center;
  margin-bottom: var(--space-xl);
}

.datenschutz__text p,
.datenschutz__text li {
  line-height: 1.5;
}

.datenschutz__text p,
.datenschutz__text h2,
.datenschutz__text h3,
.datenschutz__text h4 {
  max-width: 100%;
}

.datenschutz__text h2,
.datenschutz__text h3,
.datenschutz__text h4 {
  text-transform: uppercase;
  text-decoration: none;
  margin-bottom: var(--space-s);
  margin-top: var(--space-m);
  overflow-wrap: break-word;
}

.datenschutz__text h2 {
  font-size: var(--text-2xl);
  text-decoration: underline;
}

.datenschutz__text h3 {
  font-size: calc(var(--text-xl) * 0.85);
}

.datenschutz__text :where(ol, ul) {
  margin-block: 1.5em 0.75em;
  padding-inline-start: var(--list-indent);
}

.datenschutz__text :where(ol) {
  padding-inline-start: var(--ordered-list-indent);
}

.datenschutz__text :where(ol ol) {
  margin-block: 1em 1.5em;
}

.datenschutz__text :where(ol ol ol) {
  margin-block-start: 0.5em;
}

.datenschutz__text :where(li) {
  margin-block: var(--list-item-gap);
  padding-inline-start: var(--marker-gap);
}

@media (max-width: 767px) {
  .datenschutz__section h1 {
    text-align: unset;
  }
  .datenschutz__hero-container {
    padding-bottom: var(--space-l);
  }
}

@media (max-width: 478px) {
  .datenschutz__text h2 {
    font-size: var(--text-l);
  }
  .datenschutz__text h3 {
    font-size: calc(var(--text-l) * 0.8);
  }
}

/* Impressum */

.impressum__section h1 {
  font-size: calc(var(--h1) * 0.85);
  text-align: center;
}

.impressum__section h2 {
  text-decoration: none;
  font-size: var(--h5);
  margin-bottom: var(--space-xs);
}

.impressum__hero-container {
  padding: var(--space-3xl) 0 var(--space-2xl) 0;
  justify-content: center;
}

.impressum__info-container {
  margin: var(--space-2xl) 0;
}

.impressum__adress {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  margin-bottom: var(--space-s);
}

.impressum__adress-info {
  display: flex;
  flex-direction: row;
  gap: var(--space-s);
  align-items: baseline;
}

.impressum__adress-info a {
  min-height: 24px;
}

.impressum__section .svg-circle {
  width: 1.75em;
  height: 1.75em;
  border: 1px solid var(--primary);
  flex-shrink: 0;
}

.impressum__section .svg-circle svg {
  width: 0.9em;
}

.impressum__adress-info p {
  margin-bottom: 0.1em;
}

@media screen and (max-width: 767px) {
  .impressum__hero-container {
    padding-bottom: var(--space-l);
  }
  .impressum__info-container {
    margin-top: var(--space-l);
  }
}

@media screen and (max-width: 478px) {
  .impressum__adress-info p {
    margin-bottom: 0.75em;
  }
}

.impressum__adress-text {
  width: auto;
}

.impressum__adress-text a {
  display: inline-block;
}

.impressum__info {
  margin-bottom: var(--space-l);
}

.impressum__info p a {
  min-height: 24px;
}

.impressum__section .parallax__wrapper {
  aspect-ratio: 2/1.2;
}

/* ------------------------- Sitemap ------------------------- */

.sitemap__section {
  max-width: 1200px;
}

.sitemap__section h1 {
  font-size: calc(var(--h1) * 0.85);
  text-align: center;
}

.sitemap__section h2 {
  text-decoration: none;
  font-size: var(--h4);
  margin-bottom: var(--space-xs);
}

.sitemap__hero-container {
  padding: var(--space-3xl) 0 var(--space-2xl) 0;
  justify-content: center;
}

.sitemap__info-container {
  margin: var(--space-2xl) 0;
  font-size: 0.75em;
}

@media screen and (max-width: 767px) {
  .sitemap__hero-container {
    padding-bottom: var(--space-l);
  }
  .sitemap__info-container {
    margin-top: var(--space-l);
  }
}

.sitemap-list {
  font-family: var(--font-family-b);
}

.sitemap-list__page {
  font-weight: 450;
  margin-bottom: var(--space-m);
}

.sitemap-list__page-link--main {
  font-size: 2.125em;
  font-weight: 600;
  text-decoration: none;
}

.sitemap-list__page-link {
  font-size: 1.5em;
}

.sitemap-list__page-link a {
  text-decoration: none;
  font-weight: 500;
}

.sitemap-list__sublist li {
  font-size: 0.9em;
  position: relative;
}

.sitemap-list__sublist li::before {
  content: "";
  transform: translate(0, 0.075em);
  display: inline-block;
  width: 1em;
  height: 0.9em;
  margin-right: 0.2em;
  background: currentColor;
  -webkit-mask: var(--mask-arrow);
  mask: var(--mask-arrow);
  transition: transform 0.35s cubic-bezier(0.353, 2, 0.6, 1);
}

.sitemap-list__sublist li a {
  font-weight: 400;
}

.sitemap-list a {
  position: relative;
}

.sitemap-list a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.15em;
  width: 100%;
  height: 0.085em;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.sitemap-list a:hover::after,
.sitemap-list a:focus-visible::after {
  transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
  .sitemap-list a,
  .sitemap-list a::after {
    transition: none;
  }

  .sitemap-list a:hover,
  .sitemap-list a:focus-visible {
    transform: none;
  }
}

/* ------------------------- Floating CTA ------------------------- */

.floating-cta__wrap {
  z-index: 100;
  pointer-events: none;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
  height: auto;
  padding: var(--space-m) var(--space-s);
  position: fixed;
  inset: 0;
}

.floating-cta {
  position: relative;
  pointer-events: auto;

  display: block;
  width: max-content;

  color: var(--base);
  font-family: var(--font-family-b);
  font-size: var(--text-m);
  line-height: 1;
  text-decoration: none;
}

.floating-cta__bubble {
  display: flex;
  justify-content: center;
  align-items: center;

  padding: 0.6em 1em;

  background: var(--primary);
  border-radius: var(--radius-pill);

  transform-origin: 50% 100%;
}

/* kleine Spitze unten */
.floating-cta::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100% - 1px);

  width: 0;
  height: 0;

  border-left: 0.55em solid transparent;
  border-right: 0.55em solid transparent;
  border-top: 0.55em solid var(--primary);

  transform: translateX(-50%);
}

/* Prevent flash on page load */
[data-floating-cta="wrap"] {
  opacity: 0;
  visibility: hidden;
}

/* Keyboard focus */
.floating-cta:focus-visible {
  outline: 2px solid var(--base);
  outline-offset: 4px;
  border-radius: var(--radius-pill);
}

@media screen and (max-width: 991px) {
  .floating-cta__wrap {
    padding: var(--space-m);
  }
}

/* Hide on mobile */
@media screen and (max-width: 767px) {
  .floating-cta__wrap {
    display: none;
  }
}

/* 404 */

.error-page__content {
  padding-top: calc(var(--space-3xl) * 1.25);
}

.error-page__content .svg-circle svg {
  height: 60%;
}

.error-page__label {
  font-size: var(--h4);
  font-family: var(--font-family-b);
  text-transform: uppercase;
  font-weight: 600;
}

.error-page__error-wrapper {
  display: flex;
  gap: 1.5em;
  align-items: center;
  margin-bottom: var(--space-m);
}

.error-page__error-wrapper p {
  padding-top: 0.15em;
}

.error-page__info {
  margin-top: var(--space-s);
}

/* Bricks Builder mega menu editing helpers */
.bricks_template-template-default header {
  min-height: 100vh;
}

.single-bricks_template header {
  min-height: 0;
}

.bricks_template-template-default
  [data-menu-wrap]:has([data-nav-content][data-panel-state="active"])
  [data-dropdown-wrapper] {
  pointer-events: auto;
}

.bricks_template-template-default
  [data-menu-wrap]:has([data-nav-content][data-panel-state="active"])
  [data-dropdown-container] {
  height: auto !important;
  overflow: visible;
}

.bricks_template-template-default
  [data-nav-content][data-panel-state="active"] {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  position: relative !important;
}

.bricks_template-template-default
  [data-nav-content][data-panel-state="active"]
  [data-menu-fade] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.bricks_template-template-default
  [data-menu-open]:has([data-nav-content][data-panel-state="active"])
  [data-dropdown-bg] {
  opacity: 1;
  inset: 0;
}

.bricks_template-template-default [data-mobile-nav="active"] {
  opacity: 1 !important;
  visibility: visible !important;
}

body[data-builder-window] .brxe-code {
  width: auto;
}

/* Bricks Builder background zoom editing helpers */
body[data-builder-window] .background-zoom__end {
  height: 0;
}

body[data-builder-window] .background-zoom__text h1 {
  color: var(--base);
}

@supports (view-transition-name: root) {
  @view-transition {
    navigation: auto;
  }

  ::view-transition {
    background: var(--white);
  }

  /* Needed so old/new can overlap properly */
  ::view-transition-group(root) {
    animation-duration: 1.2s;
    animation-timing-function: cubic-bezier(0.7, 0.05, 0.13, 1);
  }

  /* outgoing page */
  ::view-transition-old(root) {
    animation: old-page-parallax-out 1.2s cubic-bezier(0.7, 0.05, 0.13, 1) both;
    z-index: 1;
    transform-origin: center bottom;
  }

  /* incoming page */
  ::view-transition-new(root) {
    animation: new-page-slide-in 1.2s cubic-bezier(0.7, 0.05, 0.13, 1) both;
    z-index: 2;
  }

  /* old page moves only slightly */
  @keyframes old-page-parallax-out {
    from {
      transform: translateY(0);
      transform: translateX(0);
      filter: brightness(1);
    }

    to {
      transform: translateY(-18vh);
      transform: translateX(-10vw);
      filter: brightness(0.2);
    }
  }

  /* new page comes from bottom and overlaps */
  @keyframes new-page-slide-in {
    from {
      transform: translateY(100vh);
      transform: translateX(100vw);
    }

    to {
      transform: translateY(0);
      transform: translateX(0);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root),
    ::view-transition-group(root) {
      animation-duration: 0.01ms;
    }
  }

  header .mega-nav {
    view-transition-name: nav;
  }
} /* supports Ende */

/* Forced Colors Add */

@media (forced-colors: active) {
  a[href],
  a.btn-arrow-shift {
    color: LinkText !important;
  }

  a[href]:visited,
  a.btn-arrow-shift:visited {
    color: VisitedText !important;
  }

  a[href] :where(span, div, p, strong, em) {
    color: inherit !important;
  }
  .btn-arrow-shift:is(:focus-visible)::after {
    box-shadow: 0 0 0 2px CanvasText;
    outline: 3px solid CanvasText;
  }
  .svg-circle.is--stroke svg,
  .svg-circle.is--stroke svg path {
    stroke: currentColor;
    fill: none;
  }
  .svg-circle:not(.is--stroke) svg {
    fill: currentColor;
  }
  .back-to-top,
  .articles__load-more .btn-arrow-shift__text-wrap {
    color: ButtonText !important;
    background: ButtonFace !important;
  }
  :focus-visible,
  .case-accordion__button:focus-visible .case-accordion__icon,
  .investment-slider__item:focus-visible .investment-slider__item-inner {
    outline: 3px solid CanvasText !important;
    outline-offset: 4px !important;
  }
  .mega-nav__page-link:focus-visible,
  .mega-nav__submenu-toggle:focus-visible,
  .mega-nav__bar-link:focus-visible {
    outline: none !important;
  }
  .mega-nav__page-link:focus-visible span,
  .mega-nav__submenu-toggle:focus-visible span,
  .mega-nav__bar-link:focus-visible span {
    outline: 3px solid CanvasText !important;
    outline-offset: 4px !important;
  }
}

[data-hash-focus-target]:focus,
[data-hash-focus-target]:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Remove Bricks' mouse/click focus outline */
body.bricks-is-frontend
  .brxe-filter-radio[data-mode="button"]
  label:focus-within
  .bricks-button {
  outline: none !important;
  box-shadow: none !important;
}

/* Restore visible outline only for keyboard focus */
body.bricks-is-frontend
  .brxe-filter-radio[data-mode="button"]
  input[type="radio"]:focus-visible
  + .bricks-button {
  outline: 2px solid var(--base) !important;
  outline-offset: 3px;
}
