/*
Theme Name: VBB
Theme URI: 
Author: Dennis Helbig
Author URI: https://dennishelbig.com/
Description: Vielfalt Braucht Bewirtschaftung
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: custom theme by Dennis Helbig
*/
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  border: none;
  margin: 0;
  padding: 0;
  width: auto;
  overflow: visible;
  background: transparent;
  /* inherit font & color from ancestor */
  color: inherit;
  font: inherit;
  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
  line-height: normal;
  /* Corrects font smoothing for webkit */
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;
  /* Corrects inability to style clickable `input` types in iOS */
  -webkit-appearance: none;
  outline: none;
}

/* Remove excess padding and border in Firefox 4+ */
button::-moz-focus-inner {
  border: 0;
  padding: 0;
}

:root {
  --background: #ffffeb;
  --white: #ffffeb;
  --primary: #EFFE8B;
  --black: #1a1a1a;
  --black: #1C1C1E;
  --0-25fr: calc( var(--1fr) * 0.25 );
  --0-5fr: calc( var(--1fr) * 0.5 );
  --0-75fr: calc( var(--1fr) * 0.75 );
  --1fr: 30px;
  --1-25fr: calc( var(--1fr) * 1.25 );
  --1-5fr: calc( var(--1fr) * 1.5 );
  --2fr: calc( var(--1fr) * 2 );
  --2-5fr: calc( var(--1fr) * 2.5 );
  --3fr: calc( var(--1fr) * 3 );
  --4fr: calc( var(--1fr) * 4 );
  --5fr: calc( var(--1fr) * 5 );
  --6fr: calc( var(--1fr) * 6 );
  --max-width: 1320px;
  --side-padding: var(--2fr);
  --top-padding: var(--side-padding);
  --side-padding-hero: var(--1fr);
  --font-size-nav-menu: 15px;
  --font-size-title: 26px;
  --font-size-intro: 25px;
  --font-size-headline: 50px;
  --font-size-badge: 15px;
  --font-size-coop-badge: 43px;
}
@media (max-width: 1200px) {
  :root {
    --font-size-title: 24px;
    --side-padding: var(--1-5fr);
    --side-padding-hero: var(--0-75fr);
  }
}
@media (max-width: 1300px) {
  :root {
    --font-size-nav-menu: 30px;
  }
}
@media (max-width: 992px) {
  :root {
    --top-padding: var(--1-5fr);
    --side-padding: var(--1fr);
    --side-padding-hero: var(--0-5fr);
  }
}
@media (max-width: 560px) {
  :root {
    --side-padding: var(--0-5fr);
    --side-padding-hero: var(--0-25fr);
    --font-size-title: 22px;
  }
}
@media (max-width: 360px) {
  :root {
    --font-size-nav-menu: 24px;
  }
}
:root {
  --factor: 1;
  --font-size-reg: calc(18px * var(--factor));
  --font-size-sml: calc(13px * var(--factor));
  --font-size-xs: calc(12px * var(--factor));
  --duration-menu: 0.25s;
  --duration-burger: 0.075s;
  --sine-in: cubic-bezier(0.12, 0, 0.39, 0);
  --sine-out: cubic-bezier(0.61, 1, 0.88, 1);
  --sine-in-out: cubic-bezier(0.37, 0, 0.63, 1);
}

html, body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--background);
  font-family: "Sans", Arial, Helvetica, sans-serif;
  letter-spacing: 0.015em;
  font-size: var(--font-size-reg);
  color: var(--black);
}

body {
  box-sizing: border-box;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  width: 100%;
}
body:has(input.burger.is-active) {
  overflow: hidden !important;
}

.font-sml {
  font-size: var(--font-size-sml);
}

.font-sx {
  font-size: var(--font-size-sx);
}

.font-reg {
  font-size: var(--font-size-reg);
  line-height: 1.33;
  letter-spacing: 0.015em;
}

.font-headline {
  font-size: var(--font-size-headline);
  line-height: 1.15;
  font-family: "Serif";
  letter-spacing: 0.01em;
  margin-bottom: var(--1fr);
  hyphens: auto;
}

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

section,
footer {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: var(--top-padding) var(--side-padding);
  box-sizing: border-box;
}

section.section-layout {
  position: relative;
  display: flex;
  line-height: 1.33;
  gap: var(--2fr);
}
section.section-layout .section-title h2 {
  max-width: calc(var(--1fr) * 12);
  position: relative;
}
section.section-layout .section-title p {
  max-width: calc(var(--1fr) * 12);
  hyphens: auto;
}
section.section-layout .section-content {
  flex: 1;
  position: relative;
}
@media (min-width: 1201px) {
  section.section-layout .section-content .section-content-inner {
    max-width: calc(var(--1fr) * 19);
    margin-left: auto;
  }
}
section.section-layout .section-info {
  position: relative;
  width: calc(var(--1fr) * 7);
}
@media (min-width: 769px) and (max-width: 1200px) {
  section.section-layout {
    flex-wrap: wrap;
  }
  section.section-layout .section-title {
    width: 100%;
  }
  section.section-layout .section-content {
    max-width: calc(var(--1fr) * 19);
  }
  section.section-layout .section-info {
    margin-left: auto;
  }
}
@media (max-width: 768px) {
  section.section-layout {
    flex-direction: column;
  }
  section.section-layout .section-info {
    margin-left: var(--1fr);
  }
}

.wrapper {
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
}

.spacer {
  flex-grow: 1;
}

img, picture {
  display: block;
  width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.opacity-null {
  opacity: 0;
}

.display-none {
  display: none;
}

.overflow-hidden {
  overflow: hidden;
}

.underline {
  text-decoration: underline;
}

.uppercase {
  text-transform: uppercase;
}

b,
strong,
.bold {
  font-weight: bold;
}

b {
  text-transform: uppercase;
}

.badge {
  display: table;
  background: var(--primary);
  margin-bottom: var(--1fr);
  padding: 0.75em 0.75em 0.65em;
  border-radius: 0.75em;
  font-family: "Mono";
  font-size: var(--font-size-badge);
  line-height: 1;
}

.flickity-button.flickity-prev-next-button {
  background: var(--primary);
  width: var(--1fr);
  height: var(--1fr);
}
.flickity-button.flickity-prev-next-button .flickity-button-icon {
  fill: var(--black);
}
.flickity-button.flickity-prev-next-button:hover {
  background: var(--black);
}
.flickity-button.flickity-prev-next-button:hover .flickity-button-icon {
  fill: var(--primary);
}

.link {
  font-size: var(--font-size-sml);
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.055em;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: var(--primary);
  text-decoration-thickness: 0.5em;
  text-underline-offset: 0em;
  text-decoration-skip-ink: none;
  transition: 0.1s ease-in-out 0.25s;
}
.link:hover {
  text-underline-offset: 0.3em;
  transition: 0.1s ease-in-out;
}
.link.white-line {
  text-decoration-color: white;
}

@font-face {
  font-family: "Mono";
  src: url("fonts/MaisonMono-Regular.woff2") format("woff2"), url("fonts/MaisonMono-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Sans";
  src: url("fonts/MaisonNeue-Bold.woff2") format("woff2"), url("fonts/MaisonNeue-Bold.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Sans";
  src: url("fonts/MaisonNeue-Medium.woff2") format("woff2"), url("fonts/MaisonNeue-Medium.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Serif";
  src: url("fonts/AprisMedium.woff2") format("woff2"), url("fonts/AprisMedium.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.hero {
  width: 100%;
  height: 100svh;
  position: relative;
  padding: var(--side-padding-hero);
  display: flex;
  flex-direction: column;
}
.hero:before {
  content: "";
  position: absolute;
  width: 320px;
  height: 320px;
  max-width: 50%;
  max-height: 52vw;
  background: url("img/icon.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 21;
  bottom: 50%;
  right: 50%;
  translate: 50% 50%;
  pointer-events: none;
  z-index: 4;
}
.hero.is-video-ready:before {
  content: "";
  transition: 1s var(--sine-in-out);
  width: 80px;
  height: 80px;
  right: calc(var(--side-padding-hero) * 0.9);
  bottom: calc(var(--side-padding-hero) * 1);
  translate: 0% 0%;
}
@media (max-width: 560px) {
  .hero.is-video-ready:before {
    bottom: var(--side-padding);
  }
}
.hero .shadow {
  position: absolute;
  inset: 0;
  z-index: 2;
  box-shadow: inset 0 50px 100px 0px rgba(0, 0, 0, 0.5);
}
.hero .video-container {
  z-index: 3;
}
.hero .image-container,
.hero .video-container {
  position: absolute;
  inset: 0;
  background: var(--black);
}
.hero .image-container video,
.hero .video-container video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none !important;
}
.hero .image-container picture,
.hero .image-container img,
.hero .video-container picture,
.hero .video-container img {
  height: 100%;
  width: 100%;
  position: absolute;
  object-fit: cover;
}
.hero .socials {
  transition: var(--duration-menu) linear var(--duration-burger);
}
.hero:has(+ nav #burger.is-active) .socials {
  opacity: 0;
  pointer-events: none;
  transition: var(--duration-burger) linear;
}
.hero:has(+ nav #burger.is-active) + nav .socials {
  opacity: 1;
  transition: var(--duration-menu) var(--sine-out) 0.1s;
}

nav .socials {
  transition: var(--duration-burger) linear;
  opacity: 0;
}

.hero .socials,
nav .socials {
  position: absolute;
  left: var(--side-padding-hero);
  bottom: var(--side-padding-hero);
  z-index: 10;
}
@media (max-width: 560px) {
  .hero .socials,
  nav .socials {
    bottom: var(--side-padding);
  }
}

nav {
  position: absolute;
  width: 100%;
  z-index: 5;
  padding: var(--side-padding-hero);
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  top: 0;
  right: 0;
}
@media (min-width: 1301px) {
  nav {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 95%);
  }
}
@media (max-width: 1300px) {
  nav {
    position: fixed;
  }
}
nav .menu {
  margin-left: auto;
  color: var(--primary);
  font-weight: bold;
  display: flex;
  gap: 1em;
  font-size: var(--nav-menu);
  align-items: flex-start;
  margin-top: -0.5em;
  margin-right: -0.5em;
  top: 0;
  left: 0;
  right: 0;
}
nav .menu a.menu-item {
  padding: 0.5em;
  text-transform: uppercase;
  border-radius: 0.5em;
  text-decoration: none;
  letter-spacing: 0.055em;
  transition: 0.2s;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 0.25em;
  text-decoration-skip-ink: none;
  text-underline-offset: 0.3em;
}
nav .menu a.menu-item.is-active, nav .menu a.menu-item:hover {
  text-decoration-color: white;
  text-underline-offset: 0em;
}
@media (max-width: 1300px) {
  nav .menu a.menu-item.is-active, nav .menu a.menu-item:hover {
    text-decoration-color: var(--black);
  }
}
@media (max-width: 1300px) {
  nav .menu {
    flex-direction: column;
    align-items: flex-end;
    position: fixed;
    bottom: 0;
    translate: 101% 0;
    background: var(--primary);
    color: var(--black);
    justify-content: center;
    align-items: center;
    transition: translate var(--duration-menu) var(--sine-in), background-color 0s 1s;
  }
  nav .menu:has(+ #burger.is-active) {
    translate: 0 0;
    transition: translate var(--duration-menu) var(--sine-out);
  }
  nav .menu a.menu-item {
    font-size: var(--font-size-nav-menu);
    text-align: center;
  }
}
nav #burger {
  position: absolute;
  top: 5px;
  right: 5px;
  z-index: 10;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color var(--duration-burger) linear var(--duration-menu);
}
nav #burger:before, nav #burger:after {
  content: "";
  position: absolute;
  height: 4px;
  width: 60%;
  background-color: var(--primary);
  left: 50%;
  top: 50%;
  transition: translate var(--duration-burger) ease-in-out, rotate var(--duration-burger) ease-in-out, background-color 0s linear var(--duration-menu);
}
nav #burger:before {
  translate: -50% calc(-50% - 5px);
}
nav #burger:after {
  translate: -50% calc(-50% + 5px);
}
nav #burger.is-black:before, nav #burger.is-black:after {
  background-color: var(--black);
  transition: 0s;
}
nav #burger.is-not-black:before, nav #burger.is-not-black:after {
  transition: 0s;
}
nav #burger.is-active {
  background-color: transparent;
  transition: background-color var(--duration-burger) linear;
}
nav #burger.is-active:before, nav #burger.is-active:after {
  background-color: var(--black);
  transition: translate var(--duration-burger) ease-in-out, rotate var(--duration-burger) ease-in-out, background-color 0s linear;
}
nav #burger.is-active:before {
  translate: -50% -50%;
  rotate: -45deg;
}
nav #burger.is-active:after {
  translate: -50% -50%;
  rotate: 45deg;
}

@media (min-width: 1301px) {
  nav .socials,
  #burger {
    display: none;
  }
}

.title-logo .title {
  transition: 0.1s linear 0.01s;
}

.title-logo {
  position: sticky;
  top: var(--side-padding-hero);
  z-index: 100;
  width: fit-content;
  margin-bottom: var(--4fr);
}
@media (max-width: 560px) {
  .title-logo {
    top: var(--side-padding);
  }
}
.title-logo .title {
  font-weight: bold;
  letter-spacing: 0.025em;
  color: var(--primary);
  font-size: var(--font-size-title);
  text-transform: uppercase;
}

.hero:has(+ nav #burger.is-active) .title-logo h1 {
  color: var(--black);
  transition: 0.075s linear 0.1s;
}

section.intro p {
  font-size: var(--font-size-intro);
  max-width: 32em;
  margin: 0 auto;
  line-height: 1.25;
}

.content-items {
  padding-top: 0;
}

.content-item {
  display: flex;
  align-items: flex-start;
  gap: var(--1fr);
}
@media (min-width: 993px) {
  .content-item:nth-child(even) {
    flex-direction: row-reverse;
  }
  .content-item:nth-child(even) .text {
    padding-left: var(--1fr);
    padding-right: var(--1fr);
  }
  .content-item:not(:last-child) .text > :last-child {
    margin-bottom: var(--2fr);
  }
}
.content-item .text,
.content-item .images {
  width: 50%;
}
.content-item .text {
  padding-right: var(--2fr);
  box-sizing: border-box;
  padding-top: var(--2fr);
}
.content-item .links {
  display: flex;
  align-items: center;
  gap: var(--1fr);
  flex-wrap: wrap;
}
.content-item .text-content:has(+ .links) p,
.content-item .text p:not(:last-child) {
  margin-bottom: var(--1fr);
}
.content-item .images {
  aspect-ratio: 65/80;
  overflow: hidden;
  border-radius: 1.25em;
}
.content-item .images .image {
  height: 100%;
}
.content-item .images .image picture, .content-item .images .image img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.content-item .flickity-viewport {
  height: 100%;
}
.content-item .flickity-viewport .image {
  width: 100%;
}
@media (max-width: 992px) {
  .content-item {
    flex-direction: column;
  }
  .content-item:nth-child(even) {
    flex-direction: column;
  }
  .content-item {
    gap: var(--2fr);
  }
  .content-item:not(:last-child) {
    margin-bottom: var(--2fr);
  }
  .content-item .text,
  .content-item .images {
    width: 100%;
  }
  .content-item .text h2 {
    max-width: 12em;
  }
  .content-item .images {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 560px) {
  .content-item .text {
    padding-right: 0;
  }
}

.socials {
  z-index: 2;
}
.socials p {
  font-family: "Mono";
  color: var(--primary);
  font-size: 13px;
  margin-bottom: 0.75em;
  line-height: 1.4;
}
.socials.is-black p {
  color: var(--black);
}
.socials .button-group {
  display: flex;
  gap: 12px;
}
.socials .button-group img {
  width: 38px;
  height: auto;
}
@media (max-width: 560px) {
  .socials .button-group img {
    width: 32px;
  }
}
.socials .button-group img:hover {
  opacity: 0.75;
}
.socials.is-mini .button-group {
  gap: 12px;
}
.socials.is-mini .button-group img {
  width: 24px;
}

.flickity-content-images .flickity-page-dots {
  bottom: 15px;
}
.flickity-content-images .flickity-page-dots .dot {
  background-color: var(--white);
  opacity: 0.66;
  margin: 0 6px;
}
.flickity-content-images .flickity-page-dots .dot:not(.is-selected) {
  opacity: 1;
  outline: 1px solid var(--primary);
  box-sizing: border-box;
  background-color: black;
}
.flickity-content-images .flickity-page-dots .dot.is-selected {
  outline: 1px solid black;
  background: var(--primary);
  box-sizing: border-box;
}

section.good-to-know .points {
  width: 100%;
}
section.good-to-know .flickity-points {
  margin-left: calc(var(--side-padding) * -1);
  margin-right: calc(var(--side-padding) * -1);
  padding-top: var(--0-5fr);
  padding-bottom: calc(var(--0-5fr) + 60px);
  padding-left: var(--side-padding);
  padding-right: var(--side-padding);
  display: flex;
  overflow: hidden;
  height: 350px;
  align-items: flex-start;
  padding-left: 80px;
  padding-right: 120px;
}
section.good-to-know .flickity-points .flickity-viewport {
  width: 100%;
  height: 350px;
  overflow: unset !important;
  cursor: unset;
  transition: height 0.2s var(--sine-in-out);
}
section.good-to-know .point:nth-child(1) {
  z-index: 99;
}
section.good-to-know .point:nth-child(2) {
  z-index: 98;
}
section.good-to-know .point:nth-child(3) {
  z-index: 97;
}
section.good-to-know .point:nth-child(4) {
  z-index: 96;
}
section.good-to-know .point:nth-child(5) {
  z-index: 95;
}
section.good-to-know .point:nth-child(6) {
  z-index: 94;
}
section.good-to-know .point:nth-child(7) {
  z-index: 93;
}
section.good-to-know .point:nth-child(8) {
  z-index: 92;
}
section.good-to-know .point:nth-child(9) {
  z-index: 91;
}
section.good-to-know .point:nth-child(10) {
  z-index: 90;
}
section.good-to-know .point:nth-child(11) {
  z-index: 89;
}
section.good-to-know .point:nth-child(12) {
  z-index: 88;
}
section.good-to-know .point:nth-child(13) {
  z-index: 87;
}
section.good-to-know .point:nth-child(14) {
  z-index: 86;
}
section.good-to-know .point:nth-child(15) {
  z-index: 85;
}
section.good-to-know .point:nth-child(16) {
  z-index: 84;
}
section.good-to-know .point:nth-child(17) {
  z-index: 83;
}
section.good-to-know .point:nth-child(18) {
  z-index: 82;
}
section.good-to-know .point:nth-child(19) {
  z-index: 81;
}
section.good-to-know .point:nth-child(20) {
  z-index: 80;
}
section.good-to-know .point:has(~ .is-selected) .circle {
  translate: -30px 0;
}
section.good-to-know .point.is-selected ~ .point .circle {
  translate: 70px 0;
}
section.good-to-know .point {
  position: relative;
  width: 200px;
  height: 200px;
  display: flex;
  top: 0;
  height: 100%;
  box-sizing: border-box;
}
section.good-to-know .point .circle,
section.good-to-know .point .front,
section.good-to-know .point .back,
section.good-to-know .point .back-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition: all 0.2s linear, opacity 0.1s;
  border-radius: 50%;
}
section.good-to-know .point .circle {
  width: 200px;
  height: 200px;
  background-color: var(--primary);
  position: relative;
}
section.good-to-know .point .front {
  line-height: 1.33;
  z-index: 2;
  padding: 10px;
  box-sizing: border-box;
  width: 200px;
  height: 200px;
  position: absolute;
  cursor: pointer;
}
section.good-to-know .point .back {
  position: relative;
  width: 290px;
  height: 290px;
  max-width: 100%;
  background: var(--primary);
  pointer-events: none;
  aspect-ratio: 1;
}
section.good-to-know .point .back .headline {
  margin-bottom: 1em;
  line-height: 1.33;
  width: 90%;
}
section.good-to-know .point .back .back-inner {
  opacity: 0;
  width: 290px;
  height: 290px;
  flex: 1 0;
  padding: 0 30px;
  box-sizing: border-box;
  transition: all 0.15s linear;
  line-height: 1.31;
}
section.good-to-know .point .back .back-inner .social-links:not(.instagram) .instagram {
  display: none;
}
section.good-to-know .point .back .back-inner .social-links:not(.facebook) .facebook {
  display: none;
}
section.good-to-know .point .back .back-inner .social-links:not(.linkedin) .linkedin {
  display: none;
}
section.good-to-know .point .back .back-inner .social-links:not(.youtube) .youtube {
  display: none;
}
section.good-to-know .point .back .content {
  font-size: var(--font-size-sml);
  hyphens: auto;
  margin-bottom: 1em;
}
section.good-to-know .point:nth-child(even) .circle {
  align-self: flex-end;
}
section.good-to-know .point.is-selected .front {
  opacity: 0;
  pointer-events: none;
}
section.good-to-know .point.is-selected .back {
  pointer-events: all;
}
section.good-to-know .point.is-selected .back .back-inner {
  opacity: 1;
  transition: all 0.3s linear;
}
section.good-to-know .point.is-selected .circle {
  margin-left: -25px;
  width: 290px;
  height: 290px;
}
section.good-to-know .flickity-button.flickity-prev-next-button.previous, section.good-to-know .flickity-button.flickity-prev-next-button.next {
  top: auto;
  bottom: 0;
  left: auto;
  right: calc(var(--2fr) + 50px);
}
section.good-to-know .flickity-button.flickity-prev-next-button.next {
  right: var(--2fr);
}
@media (max-width: 768px) {
  section.good-to-know .flickity-button.flickity-prev-next-button.previous {
    right: var(--2-5fr);
  }
  section.good-to-know .flickity-button.flickity-prev-next-button.next {
    right: var(--1fr);
  }
}

section.stakeholderdialoge {
  background-color: var(--primary);
}
section.stakeholderdialoge .badge {
  background: var(--background);
}
section.stakeholderdialoge p:not(:last-child) {
  margin-bottom: 1.5em;
}
section.stakeholderdialoge .section-info span {
  font-size: var(--font-size-sml);
}
section.stakeholderdialoge .section-info .date {
  font-size: 34px;
  line-height: 1.2;
  font-weight: bold;
  background-color: var(--background);
  border-radius: 0.5em;
  padding: 0.25em;
  margin: 0.175em -0.25em 0.75em;
  text-transform: uppercase;
}
section.stakeholderdialoge .section-info a {
  display: table;
  margin-bottom: var(--2fr);
}
section.stakeholderdialoge .section-info .description {
  font-size: var(--font-size-sml);
}

section.statements {
  overflow: hidden;
}
section.statements blockquote {
  margin-bottom: var(--1fr);
}
section.statements .is-transition .flickity-viewport {
  overflow: unset;
}
section.statements .flickity-button.flickity-prev-next-button {
  right: calc(var(--1fr) * -3);
  left: auto;
  transform: none;
}
section.statements .flickity-button.flickity-prev-next-button.next {
  top: 0;
}
section.statements .flickity-button.flickity-prev-next-button.previous {
  top: var(--1-5fr);
}
@media (max-width: 768px) {
  section.statements .flickity-statements {
    margin-bottom: var(--0-5fr);
  }
  section.statements .flickity-button.flickity-prev-next-button.next, section.statements .flickity-button.flickity-prev-next-button.previous {
    top: auto;
    bottom: calc(var(--1fr) * -2);
  }
  section.statements .flickity-button.flickity-prev-next-button.next {
    right: 0;
  }
  section.statements .flickity-button.flickity-prev-next-button.previous {
    right: var(--1-5fr);
  }
  section.statements .flickity-button.flickity-prev-next-button:hover .arrow {
    fill: var(--black);
  }
  section.statements .flickity-button.flickity-prev-next-button:hover {
    background: var(--primary);
  }
}
section.statements .section-content {
  z-index: 2;
}
section.statements figure {
  transition: opacity 0.45s var(--sine-in);
}
section.statements figure:not(.is-selected) {
  transition: opacity 0.3s var(--sine-out);
  opacity: 0;
  pointer-events: none;
}
section.statements .description {
  display: flex;
  gap: var(--1fr);
}
section.statements .description picture,
section.statements .description img {
  width: 110px;
  height: 110px;
  background-size: cover;
  border-radius: 50%;
}
section.statements .description cite {
  padding-top: 0.35em;
  font-size: var(--font-size-sml);
  display: block;
}

section.partnerschaften {
  background: #404040;
  color: var(--white);
  overflow: hidden;
  flex-wrap: wrap;
}
section.partnerschaften .badge {
  background-color: var(--primary);
  color: var(--black);
}
section.partnerschaften .section-content {
  margin-left: var(--2fr);
  max-width: none;
}
section.partnerschaften .section-content .section-content-inner {
  max-width: none;
}
section.partnerschaften .partner-logos {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 820px;
  gap: var(--1fr);
}
section.partnerschaften .partner-logos.is-debugging .logo-item {
  background-color: rgba(255, 255, 255, 0.25);
}
section.partnerschaften .logo-item {
  width: calc(var(--1fr) * var(--logo-width));
  height: calc(var(--1fr) * var(--logo-height));
}
section.partnerschaften .logo-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
@media (max-width: 768px) {
  section.partnerschaften .logo-item {
    width: calc(var(--1fr) * 0.75 * var(--logo-width));
    height: calc(var(--1fr) * 0.75 * var(--logo-height));
  }
}
section.partnerschaften .slider-container {
  padding-top: var(--1fr);
  padding-right: var(--1fr);
  box-sizing: border-box;
  border-top: 1px solid var(--background);
  margin-top: var(--2fr);
  width: 100%;
}
section.partnerschaften .flickity-partner {
  container-type: inline-size;
  container-name: partner-slider;
}
section.partnerschaften .flickity-partner:not(.flickity-enabled) {
  display: flex;
  flex-wrap: wrap;
}
section.partnerschaften .flickity-partner .flickity-viewport {
  transition: height 0.35s var(--sine-out);
}
section.partnerschaften .flickity-partner.is-transition .flickity-viewport {
  overflow: unset;
}
section.partnerschaften .flickity-partner:not(.flickity-enabled) .partner-item {
  margin-bottom: var(--2fr);
}
section.partnerschaften .partner-item {
  width: 33.33%;
  padding-right: var(--1fr);
  box-sizing: border-box;
  transition: opacity 0.45s var(--sine-in);
}
section.partnerschaften .partner-item:not(.is-selected) {
  transition: opacity 0.3s var(--sine-out);
  opacity: 0;
  pointer-events: none;
}
@container partner-slider (max-width: 768px) {
  section.partnerschaften .partner-item {
    width: 50%;
  }
}
@container partner-slider (max-width: 540px) {
  section.partnerschaften .partner-item {
    width: 100%;
  }
}
section.partnerschaften .partner-item .logo-container {
  margin-bottom: var(--0-5fr);
  height: var(--2fr);
  width: 90%;
}
section.partnerschaften .partner-item img {
  width: auto;
  max-width: calc(var(--1fr) * var(--logo-width));
  height: calc(var(--1fr) * var(--logo-height));
  max-height: 100%;
}
section.partnerschaften .partner-item figcaption {
  hyphens: auto;
  font-size: var(--font-size-sml);
}
section.partnerschaften .flickity-button.flickity-prev-next-button {
  right: calc(var(--1fr) * -1);
  left: auto;
  top: var(--0-5fr);
  background: var(--white);
}
section.partnerschaften .flickity-button.flickity-prev-next-button.previous {
  top: var(--2fr);
}
section.partnerschaften .flickity-button.flickity-prev-next-button:hover .arrow {
  fill: var(--black);
}
@media (max-width: 1200px) {
  section.partnerschaften .section-content {
    width: 100%;
    margin-left: 0;
  }
}

section.coop {
  background: #404040;
  color: var(--white);
  overflow: hidden;
  flex-wrap: wrap;
  gap: var(--1-5fr);
  align-items: center;
}
section.coop .coop-badge {
  width: calc(var(--1fr) * 9.5);
  height: calc(var(--1fr) * 9.5);
  font-size: var(--font-size-coop-badge);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  line-height: 1.28;
  background-color: var(--primary);
  color: var(--black);
  rotate: -15deg;
}
section.coop .coop-text {
  max-width: 520px;
  flex: 1;
  margin-right: auto;
}
section.coop p:not(.small) {
  margin-bottom: 2em;
  font-size: var(--font-size-intro);
  color: var(--primary);
  line-height: 1.25;
}
section.coop p.small {
  color: var(--white);
}
@media (max-width: 992px) {
  section.coop .coop-badge {
    width: calc(var(--1fr) * 8);
    height: calc(var(--1fr) * 8);
    font-size: calc(var(--font-size-coop-badge) * 0.85);
  }
}

html:has(.hackathon),
body:has(.hackathon) {
  background-color: var(--primary);
}

section.hackathon.first {
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 50%);
  padding-bottom: 0;
}
section.hackathon .title-logo {
  position: absolute;
}
section.hackathon .title-logo a {
  text-decoration: none;
}
section.hackathon .title-logo h1 {
  color: var(--black);
}
section.hackathon nav {
  background: transparent;
}
section.hackathon nav .menu {
  color: var(--black);
}
section.hackathon nav .menu a[href="/hackathon/"] {
  text-decoration-color: var(--black);
  text-underline-offset: 0;
}
section.hackathon nav .menu a.menu-item:hover,
section.hackathon nav .menu a.menu-item.is-active {
  text-decoration-color: var(--black);
}
section.hackathon h1.intro-headline {
  text-transform: uppercase;
  color: var(--white);
  font-weight: bold;
  letter-spacing: 0.015em;
  font-size: calc((100vw - var(--side-padding) * 2) * 0.17);
  line-height: 0.92;
  text-align: center;
}
section.hackathon h1.intro-headline span {
  letter-spacing: 0.035em;
}
@keyframes ticker-animation {
  0% {
    translate: 0 0;
  }
  100% {
    translate: -50% 0;
  }
}
section.hackathon .ticker {
  font-size: calc((100vw - var(--side-padding) * 2) * 0.17);
  font-weight: bold;
  text-transform: uppercase;
  display: flex;
  overflow: hidden;
  margin: 0 calc(var(--side-padding) * -1);
  margin-bottom: var(--2fr);
}
section.hackathon .ticker .ticker-inner {
  display: flex;
  flex: 1;
  width: auto;
  animation: ticker-animation 8s linear infinite;
}
section.hackathon .ticker .ticker-item {
  width: fit-content;
  flex: 1;
  white-space: nowrap;
  padding-right: 1.4em;
  position: relative;
}
section.hackathon .ticker .ticker-item::after {
  content: "";
  width: 1.4em;
  height: 1em;
  position: absolute;
  scale: 0.8;
  background: url("./img/ticker-icon.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
section.hackathon .intro-content {
  font-size: var(--font-size-intro);
  max-width: 840px;
  margin: 0 auto;
  line-height: 1.25;
}

section.hackathon .description {
  max-width: 570px;
  margin: 0 auto;
  line-height: 1.33;
}
section.hackathon .description p:not(:last-child) {
  margin-bottom: 1.5em;
}
section.hackathon .categories {
  line-height: 1.4;
}
section.hackathon .categories h3 {
  font-weight: bold;
  text-transform: uppercase;
}
section.hackathon .categories .category {
  padding-left: 32px;
  position: relative;
}
section.hackathon .categories .category:before {
  content: "";
  position: absolute;
  display: block;
  width: 26px;
  height: 12px;
  border-radius: 6px;
  left: 0;
  top: 50%;
  translate: 0 -50%;
  background-color: black;
}
section.hackathon .socials {
  text-align: center;
  width: fit-content;
  margin: var(--2fr) auto var(--0-75fr);
}
section.hackathon .socials p {
  display: none;
}
section.hackathon .after-socials {
  font-size: var(--font-size-intro);
  line-height: 1.28;
}

section.hackathon.apply .apply-container {
  max-width: 1200px;
  margin: 0 auto;
  gap: var(--0-75fr);
  display: flex;
  justify-content: space-between;
}
section.hackathon.apply .apply-item {
  max-width: 200px;
  flex: 1 1;
}
section.hackathon.apply .apply-item .badge {
  position: relative;
  background-color: var(--white);
  border-radius: 50%;
  aspect-ratio: 1;
  box-sizing: border-box;
  font-weight: bold;
  text-transform: uppercase;
  text-align: center;
  font-size: var(--font-size-intro);
  font-family: "Sans";
  line-height: 1.28;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (min-width: 993px) and (max-width: 1200px) {
  section.hackathon.apply .apply-item .badge {
    font-size: calc(var(--font-size-intro) * 0.8);
    max-width: 150px;
    margin-left: auto;
    margin-right: auto;
  }
}
section.hackathon.apply .apply-item .text {
  font-family: "Mono";
  font-size: var(--font-size-sml);
  max-width: 188px;
  margin: 0 auto;
}
section.hackathon.apply .apply-item .text p {
  line-height: 1.38;
}
section.hackathon.apply .apply-item .text a[target=_blank] {
  text-decoration: underline;
  text-decoration-color: white;
  text-decoration-thickness: 0.5em;
  text-underline-offset: 0em;
  text-decoration-skip-ink: none;
  transition: 0.1s ease-in-out 0.25s;
  text-transform: uppercase;
}
section.hackathon.apply .apply-item .text a[target=_blank]:hover {
  text-underline-offset: 0.3em;
}
section.hackathon.apply .apply-item .text span {
  text-underline-offset: 0.1em;
  text-decoration-thickness: 0.15em !important;
}
section.hackathon.apply .apply-item .text p:not(:last-child) {
  margin-bottom: 1em;
}
@media (min-width: 993px) {
  section.hackathon.apply .apply-item:not(:last-child) .badge:before {
    content: "";
    height: 2px;
    width: 90%;
    position: absolute;
    background-color: black;
    left: 100%;
    top: 50%;
    z-index: 0;
  }
}
@media (max-width: 992px) {
  section.hackathon.apply .apply-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  section.hackathon.apply .apply-item {
    display: flex;
    width: 100%;
    max-width: none;
    align-items: center;
    margin-bottom: var(--1-5fr);
    justify-content: center;
    gap: var(--1fr);
  }
  section.hackathon.apply .apply-item .badge {
    position: relative;
    flex: 1 0;
    max-width: 170px;
    margin-bottom: 0;
  }
  section.hackathon.apply .apply-item .badge:after {
    content: "";
    position: absolute;
    width: 2px;
    height: 200%;
    background: black;
    top: 100%;
    left: 50%;
  }
  section.hackathon.apply .apply-item:last-child .badge:after {
    width: 3px;
    background: var(--primary);
  }
  section.hackathon.apply .apply-item .text {
    flex: 1 0;
    text-align: left;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    height: fit-content;
    max-width: 250px;
  }
  section.hackathon.apply .apply-item .text p {
    text-align: left !important;
    text-align: center;
  }
}
@media (max-width: 480px) {
  section.hackathon.apply .apply-item {
    gap: var(--0-75fr);
  }
  section.hackathon.apply .apply-item .badge {
    font-size: 1em;
    max-width: 130px;
  }
}
@media (max-width: 360px) {
  section.hackathon.apply .apply-item {
    gap: var(--0-75fr);
  }
  section.hackathon.apply .apply-item .badge {
    font-size: 0.85em;
    max-width: 110px;
  }
}

section.hackathon:first-child,
section.text-page:first-child {
  padding-top: var(--6fr);
}
@media (max-width: 992px) {
  section.hackathon:first-child,
  section.text-page:first-child {
    padding-top: var(--3fr);
  }
}
section.hackathon #burger:before, section.hackathon #burger:after,
section.text-page #burger:before,
section.text-page #burger:after {
  background: var(--black);
}
section.hackathon .title-logo,
section.text-page .title-logo {
  position: absolute;
}
section.hackathon .title-logo a,
section.text-page .title-logo a {
  text-decoration: none;
}
section.hackathon .title-logo .title,
section.text-page .title-logo .title {
  color: var(--black);
}
section.hackathon nav,
section.text-page nav {
  background: transparent;
}
section.hackathon nav .menu,
section.text-page nav .menu {
  color: var(--black);
}
section.hackathon nav .menu a.menu-item:hover,
section.hackathon nav .menu a.menu-item.is-active,
section.text-page nav .menu a.menu-item:hover,
section.text-page nav .menu a.menu-item.is-active {
  text-decoration-color: var(--black);
}
section.hackathon h1.headline,
section.text-page h1.headline {
  font-family: "Serif";
  font-size: var(--font-size-headline);
  margin-bottom: var(--1-5fr);
}
section.hackathon .text-page-content,
section.text-page .text-page-content {
  max-width: 820px;
  margin: 0 auto;
  line-height: 1.33;
}
section.hackathon .text-page-content h2,
section.text-page .text-page-content h2 {
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 0.2em;
}
section.hackathon .text-page-content p,
section.text-page .text-page-content p {
  margin-bottom: 1em;
}

section.page-404 {
  flex-grow: 1;
}
section.page-404 .text {
  margin-top: var(--2fr);
}
section.page-404 .text p {
  font-size: var(--font-size-intro);
  max-width: 32em;
  margin: 0 auto;
  line-height: 1.25;
  text-align: center;
}

footer {
  position: relative;
  background-color: #d3d0c4;
  padding-bottom: var(--1fr);
}
footer .wrapper {
  position: relative;
  display: flex;
  gap: var(--2fr);
  justify-content: space-between;
}
footer .footer-content {
  display: flex;
  gap: var(--2fr);
}
footer .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
footer .left h3 {
  font-size: var(--font-size-sml);
  font-weight: bold;
  text-transform: uppercase;
  line-height: 1.25;
  margin-bottom: calc(var(--1fr) * 1.5);
}
footer .left p {
  font-size: var(--font-size-xs);
  font-weight: bold;
}
footer .left .logo-container img {
  max-width: 620px;
}
footer .right {
  display: flex;
  gap: var(--3fr);
}
footer .right p {
  font-size: var(--font-size-sml);
  font-family: "Mono";
  line-height: 1.4;
  text-wrap: balance;
}
footer .right .one {
  width: 11em;
}
footer .right .one,
footer .right .two {
  gap: var(--1fr);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
footer .links {
  display: flex;
  gap: var(--2fr);
}
footer .icon {
  bottom: 0;
  right: 0;
  align-self: flex-end;
  width: 82px;
  height: 82px;
  flex-shrink: 0;
}
@media (max-width: 1300px) {
  footer .footer-content {
    flex-direction: column;
    gap: var(--3fr);
  }
}
@media (max-width: 1200px) {
  footer {
    padding-bottom: 48px;
  }
  footer .icon {
    bottom: 48px;
    width: 64px;
    height: 64px;
  }
  footer .footer-content {
    gap: var(--3fr);
  }
  footer .right {
    flex-wrap: wrap;
  }
}
@media (max-width: 768px) {
  footer .wrapper {
    flex-direction: column;
  }
  footer .icon {
    position: relative;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
    margin-top: var(--3fr);
    width: calc(var(--1fr) * 8);
    height: calc(var(--1fr) * 8);
  }
}
@media (max-width: 640px) {
  footer {
    padding-bottom: var(--1fr);
  }
  footer .left .logos {
    flex-wrap: wrap;
    margin-top: 1em;
    column-gap: var(--2fr);
    row-gap: var(--1fr);
  }
  footer .left .logos .logo:nth-child(1), footer .left .logos .logo:nth-child(2) {
    max-width: calc(50% - var(--1fr));
  }
  footer .left .logos .logo:nth-child(4), footer .left .logos .logo:nth-child(5) {
    max-width: calc(26% - var(--1fr));
  }
  footer .left .logos .spacer {
    width: 100%;
    display: flex;
  }
  footer .footer-content {
    gap: var(--2fr);
  }
  footer .right {
    flex-direction: column;
    gap: var(--2fr);
  }
  footer .right .one,
  footer .right .two {
    gap: var(--0-75fr);
  }
}

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