@font-face {
  font-family: 'Chillax-Variable';
  src: url('fonts/Chillax-Variable.woff2') format('woff2'),
       url('fonts/Chillax-Variable.woff') format('woff'),
       url('fonts/Chillax-Variable.ttf') format('truetype'),
       url('fonts/Chillax-Variable.eot') format('eot');
  font-weight: 200 700;
  font-display: swap;
  font-style: normal;
}

body.redaktion {
  overflow: visible;
}

html, body {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust:100%
}
html, body {
  font-family: "Chillax-Variable"!important;
  font-weight: 300;
  font-style: normal;
  font-size: .9rem;
  height: 100%;
}


.lh-1 {
  line-height: 1;
}

.no--shadow {
  box-shadow: none!important
}

button, button:focus, button:active {
  box-shadow:none !important;
  outline:0px !important;
  border: none!important;
}
.Chillax-Variable, h1.page___title, .page___title h1  {
  font-family: 'Chillax-Variable';
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}

.f_r {
  font-family: 'Chillax-Variable';
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}

.f_200 {
  font-family: 'Chillax-Variable';
  font-weight: 200;
  font-display: swap;
  font-style: normal;
}

.f_300 {
  font-family: 'Chillax-Variable';
  font-weight: 300;
  font-display: swap;
  font-style: normal;
}

em, .f_r_i {
  font-family: 'Chillax-Variable';
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}

strong, h1, h2, h3, h4, h5, h6, .intro p, .f_b {
  font-family: 'Chillax-Variable';
  font-weight: 600;
  font-display: swap;
  font-style: normal;
}

strong em, .f_b_i {
  font-family: 'Chillax-Variable';
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}

.text a {
  text-decoration: underline;
}

.text p + h1, .text p + h2, .text p + h3, .text p + h4, .text p + h5, .text p + h6  {
  margin-top: 1.5rem;
}

.f_500, .f_md, .text a  {
  font-family: 'Chillax-Variable';
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}

.f_600 {
  font-family: 'Chillax-Variable';
  font-weight: 600;
  font-display: swap;
  font-style: normal;
}

.f_700 {
  font-family: 'Chillax-Variable';
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}
.uppercase {
  text-transform: uppercase;
}

img {
  width: 100%;
  height: auto;
}

span.img, figure.img, figure.img.article_img {
  position: relative;
  display: block;
  --w: 1;
  --h: 1;
  padding-bottom: calc(100% / var(--w) * var(--h));
  background-repeat: no-repeat!important;
  background-size: 35px auto!important;
  background-position: center!important;
}
span.img img, figure.img img, figure.img.article_img img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  border: 0;
}
span.img[data-contain] img,
figure.img[data-contain] img,
figure.img.article_img img {
  object-fit:cover;
}

figure.img.article_img {--w: 4;--h: 5;}

.page___title, .___title {
  text-transform: uppercase;
}
.page___title {
  margin-bottom: 3.333rem;
}

body main.main,
body.article main.main {
  padding-top: 56px;
}
body.home main.main {
  padding-top: 56px;
}

.container-fluid {
  max-width: 1600px;
}

a, a > h2, a > time, a > p {
  text-decoration: none;
}

a {
  cursor: pointer!important;
}
figure {
  margin-bottom: 0;
}

.intro, .text_lg {
  font-size: 1.5rem;
}

.text p {
  line-height: 1.5;
}
.intro p {
  font-family: 'Chillax-Variable';
  font-weight: 600;
  font-style: normal;
  text-transform: uppercase;
  line-height: 1.3;
}

.text_sm, .programm___menu ul li a {
  font-size: .8rem;
}


hr {
  opacity: 1;
  border-style: dotted;
}

.btn, .btn:focus, .btn:active, .btn:hover {
  outline: none;
  border-color: rgba(255, 0, 0, 0)!important;
  box-shadow: none;
  font-family: 'Chillax-Variable';
  font-weight: 500;
  font-style: normal;
}



.btn-sm {padding: .1rem .3rem;}

/* ####################################################### maintenance mode ####################################################### */

main.maintenance {
  min-height: 100vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

main.maintenance #cntdwn p {
  font-weight: 700;
}

main.maintenance #cntdwn p > span {
  font-weight: 500;
}


/* ####################################################### home ####################################################### */


section.orte .carousel {
  margin-bottom: 3rem;
}

section.orte .carousel .ort .inner {
  height: 250px;
  display: flex;
  align-items: center;
}

section.orte .carousel .carousel-indicators {
  bottom: -3rem;
}

section.orte .carousel .carousel-control-next {
  width: 10%;
  justify-content: flex-end;
}
section.orte .carousel .carousel-control-prev {
  width: 10%;
  justify-content: flex-start;

}
.carousel-indicators [data-bs-target] {
  height: 5px;
  border-radius: 4px;
}
section.orte .carousel .inner {
  width: 100%;
  }

section.orte .carousel .holder {
  overflow: hidden;
  width: 100%;
}

section.home_grid .item {
  position: relative;
  display: block;
  padding-bottom: calc(100% / var(--w) * var(--h));
}

section.home_grid .item .inner___holder,
section.home_grid .item .inner___holder2,
section.home_grid .item .inner___holder3,
section.home_grid .item .inner___holder4,
section.home_grid .item .inner___holder___poolproduction {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-position: center center;
  overflow: hidden;
  border-radius: 4px;
}






section.home_grid .ad figure.img {
  --w: 1;
  --h: 1;
}


section.home_grid .ort___add,
section.home_grid .ort___add figure.img,
section.home_grid .ort___add figure.img img {
  border-radius: 4px;
}

section.home_grid .plxCenterMe .inner___holder,
section.home_grid .plxCenterMe .inner___holder2,
section.home_grid .plxCenterMe .inner___holder3,
section.home_grid .plxCenterMe .inner___holder4,
section.home_grid .plxCenterMe .inner___holder___poolproduction
{
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

section.home_grid .inner___holder .inner___img___holder___overlay,
section.home_grid a .inner___holder .inner___img___holder___overlay3 {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

a.nono .item {
  border-radius: 4px;
  -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
  transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
}


a.nono .inner___img___holder___overlay3 .yolo {
  opacity: 1;
  -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
  transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
}

@media (hover: hover) {
  a.nono .inner___img___holder___overlay3 .yolo {
    opacity: 0;
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
    transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
  }

  a.nono:hover .inner___img___holder___overlay3 .yolo {
    opacity: 1;
  }
}

a.nono .inner___img___holder___overlay3.overlay___static .yolo {
  opacity: 1;
}
section.home_grid p.counterX {
  font-size: 2.5rem!important;
}


section.home_grid .inner___img___holder {
  background-size: cover!important;
  background-repeat: no-repeat!important;
  background-position: center center!important;
}

section.home_grid #cntdwn > div {
  flex: 0 0 auto!important;
  width: auto!important;
}

section.home_grid #cntdwn p {
font-weight: 700;
margin-bottom: 0;
}

section.home_grid #cntdwn p > span {
font-weight: 500;
}

.inner___holder___poolproduction img {
  display: block;
  width: 50%;
  height: auto;
  text-align: center;
  margin: auto;
}


a.nono .item {
  background-position: center!important;
  background-repeat: no-repeat!important;
  background-size: 35px auto!important;

}


/* ####################################################### lightbox ####################################################### */

.lightboxOverlay {
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

.lb-outerContainer {
  background: url('assets/images/loading.gif') var(black)!important;
  background-position: center!important;
  background-repeat: no-repeat!important;
  background-size: 35px auto!important;
  border-radius: 4px;
}



.lightbox .lb-image {
border-radius: 4px;
border: none;
}

.lb-dataContainer a.lb-close,
.lb-dataContainer span.lb-number {
  display: none!important;
}

.lb-dataContainer span.lb-caption {
    font-size: 1rem;
    font-weight: 500;
}

/* ####################################################### transition & effects ####################################################### */

svg.logo,
a.nav-link,
.navbar-brand .logo,
nav.navbar,
button.navbar-toggler i,
.btn,
.press_downloads .item,
.programm_nav,
article.ort .inner,
article.route .inner2,
body.home article .inner,
body.article section.read___more article .inner,
.niceOne,
.home_grid .inner___holder,
.home_grid .inner___holder2,
.home_grid .inner___holder3,
.home_grid .inner___holder4,
.home_grid .inner___holder___poolproduction,
section.home_grid a .inner___holder .inner___img___holder___overlay,
section.home_grid a .inner___holder .inner___img___holder___overlay3,
body.arch .item .inner  {
  -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
  transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1)!important;
}

article.news___article .inner,
article.ort .inner,
article.route .inner2,
.page___header figure.img,
figure.co___crop,
figure.co___crop,
.impressionen figure,
.lb-outerContainer,
.press_downloads .item,
.accordion-item,
.programm_nav,
.ort___add figure img,
.niceOne,
section.home_grid .item .inner___holder,
section.home_grid .item .inner___holder2,
section.home_grid .item .inner___holder3,
section.home_grid .item .inner___holder4,
section.home_grid .item .inner___holder___poolproduction,
body.arch .item .inner {
  box-shadow: rgba(0, 0, 0, 0.666) 0px 25px 20px -20px;
}

.impressionen figure,
.impressionen figure img,
.press_downloads .item,
.ort___add figure,
.ort___add figure img,
.niceOne,
section.home_grid .item .inner___holder,
section.home_grid a .item .inner___holder
section.home_grid .item .inner___holder2,
section.home_grid a .item .inner___holder2,
section.home_grid .item .inner___holder3,
section.home_grid a .item .inner___holder3,
section.home_grid .item .inner___holder4,
section.home_grid a .item .inner___holder4,
section.home_grid .item .inner___holder___poolproduction,
section.home_grid a .item .inner___holder___poolproduction,
body.arch .item .inner {
    border-radius: 4px!important;
}

@media (hover: hover) {
   body.news article,
   body.news article .inner,
   body.home article,
   body.home article .inner,
   article.ort .inner,
   article.route .inner2,
.impressionen figure.impression___item,
   body.article section.read___more article,
   body.partner section a.partner_logo figure,
   .press_downloads .item,
   .accordion-button::before,
   .ort___add a figure,
  section.home_grid a .item .inner___holder,
  section.home_grid a .item .inner___holder2,
  section.home_grid a .item .inner___holder3,
  section.home_grid a .item .inner___holder4,
  section.home_grid a .item .inner___holder___poolproduction,
  body.arch .item .inner {
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
      transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
  }
  body.news article:hover,
  body.home article:hover,
  article.ort .inner:hover,
  article.route .inner2:hover,
.impressionen figure.impression___item:hover,
  body.article section.read___more article:hover,
  body.partner section a.partner_logo:hover figure,
  .press_downloads .item:hover,
  .ort___add a figure:hover,
  .niceOne:hover,
  .home_grid a .inner___holder:hover,
  .home_grid a .inner___holder2:hover,
  .home_grid a .inner___holder3:hover,
  .home_grid a .inner___holder4:hover,
  .home_grid a .inner___holder___poolproduction:hover,
  body.arch .item .inner:hover {
    transform: scale(.975);
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
      transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
  }
  article.ort.ort___entfaellt .inner:hover,
  body.home article.ort___entfaellt:hover {
    transform: none !important;
  }
  .accordion-button::before,
  .accordion-button::before,
  body.news article .inner::before,
  body.home article .inner::before,
  body.article section.read___more article .inner::before,
  article.ort .inner::before,
  article.route .inner2::before,
  section.orte article .inner::before,
  .press_downloads .item::before,
  .home_grid a .inner___holder::before,
  .home_grid a .inner___holder2::before,
  .home_grid a .inner___holder3::before,
  .home_grid a .inner___holder4::before,
  .home_grid a .inner___holder___poolproduction::before,
  body.arch .item .inner::before {
    -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
    transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
  }

  .ort___add a figure {
  -webkit-filter:saturate(100%) brightness(1);
  filter:saturate(100%) brightness(1);
  }

  .ort___add a figure:hover,
  .impressionen .impression a figure:hover {
  -webkit-filter:saturate(133%) brightness(1.1);
  filter:saturate(133%) brightness(1.1);
  }

}

.accordion-button:hover::before,
body.news article .inner:hover::before,
body.home article .inner:hover::before,
body.article section.read___more article .inner:hover::before,
article.ort .inner:hover::before,
article.route .inner2:hover::before,
section.orte article .inner:hover::before,
.press_downloads .item:hover::before {
  border-radius: 4px;
}


.carousel-item {
  -webkit-transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.gradient_anim {
    animation-name: FadeIn3;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
  }

  @keyframes FadeIn3 {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}
  }


  @-moz-keyframes FadeIn3 {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}
}

  @-webkit-keyframes FadeIn3 {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}
    }


  @-o-keyframes FadeIn3 {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}
}

  @-ms-keyframes FadeIn3 {
    0% {opacity: 1;}
    50% {opacity: 0;}
    100% {opacity: 1;}

  }




/* ####################################################### menu ####################################################### */


button.navbar-toggler i {
  font-size: 2.25rem;
}

nav.nav-up {
    top: -63px;
}

nav.navbar {
  padding: .5rem 0;
  box-shadow: rgba(0, 0, 0, 0.5) 0px 15px 10px -10px;
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
}

nav.navbar.magic {
  padding: .5rem 0;
}

.menu___button {
  background: none;
  font-size: 2rem;
}

.navbar-brand .logo {
  width: 125px;
  height: auto;
}

.nav-item {
  font-family: 'Chillax-Variable', sans-serif;
  font-weight: 700;
  font-style:normal;
  text-transform: uppercase;
}

ul.socials {
  list-style: none;
  margin: 0;
  padding: 0;
}

nav.navbar .container {
  position: relative;
}
.socials_holder {
  position: absolute;
  right: 4.5rem;
  top: .375rem;
}

ul.socials li {
  display: inline-block;
}

nav.navbar a.social i {
  font-size: 1.5rem;
}

/* ####################################################### Page Header ####################################################### */

.page___header figure.img,
.page___header figure.img img,
figure.co___crop,
figure.co___crop img {border-bottom-right-radius: 4px; border-bottom-left-radius: 4px;}

.page___header figure.img {
  --w: 4;
  --h: 5;
}

.page___header {
  margin-bottom: 3rem;
}
.no___page___header {
  margin-bottom: calc(1rem + 56px);
}

body.home .no___page___header {
  margin-bottom: 0;
}

.page___title span {
  font-family: 'Chillax-Variable';
  font-weight: 200;
  font-style: normal;
  text-transform: uppercase;
}

.page___header figure  {
  position: relative;
}

.page___header figure footer {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  text-shadow: 0px 0px 5px rgba(0,0,0,0.5);
}


/* ####################################################### footer ####################################################### */

footer.footer .inner {
  padding: 4rem 0;
}

footer .legals {
  padding: 1rem 0;
  font-weight: 500;
}

footer ul.ul___legals {
  padding: 0;
  line-height: 1.5;
}
footer .legals {
  padding: 2rem 0;
}

footer .legals hr {
  margin: 2rem 0;
}

footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

footer .inner ul {
  font-weight: 500;
}
footer .legals ul li, footer .legals p, footer .legals li button {
  display: inline-block;
}

footer ul.ul___legals li a, footer ul.ul___legals li button, footer .legals p a {
  text-decoration: underline;
  font-weight: 600;
}


footer ul.ul___legals li:before
{
  content: ' • ';
}

footer ul.ul___legals li:first-child:before
{
  content: '';
}

.footer___artwork___wrapper {
  height: 300px;
  overflow: hidden;
}


.footer___artwork {
  height: 300px;
  margin-top: 2rem;
  background-size: contain!important;
  background-position: bottom center!important;
  background-repeat: no-repeat!important;
  z-index: 99!important;
}

.reveal {
  position: relative;
  transform: scale(1) translateY(50px);
  opacity: 0;
  -webkit-transition: all 2s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: all 2s cubic-bezier(0.25, 0.1, 0.25, 1);

}

.reveal.active {
  transform: scale(.9) translateY(-15px);
  opacity: 1;
}

footer.footer {
  z-index: 100!important;
}

button.no___btn {
  border: none!important;
  background-color: rgba(0,0,0,0)!important;
  padding: 0;
  margin: 0;
}

/* ####################################################### impressionen ####################################################### */




.impressionen .impression figure {
  position: relative;
  display: block;
  --w: 1;
  --h: 1;
  padding-bottom: calc(100% / var(--w) * var(--h));
  background-repeat: no-repeat!important;
  background-size: 35px auto!important;
  background-position: center!important;
}

.impressionen .impression figure img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  border: 0;
}

.impressionen .impression figure[data-contain] img {
  object-fit:cover;
}

.impressionen .impression:nth-child(5n+1) figure {
  --w: 5;
  --h: 4;
}

.impressionen .impression:nth-child(5n+2) figure {
  --w: 4;
  --h: 5;
}

.impressionen .impression:nth-child(5n+3) figure {
  --w: 2;
  --h: 1;
}

.impressionen .impression:nth-child(5n+4) figure {
  --w: 3;
  --h: 2;
}

/* ####################################################### article ####################################################### */

body.news article figure, body.home article figure {
  --w: 5;
  --h: 4;
}

article.news___article .inner {
  border-radius: 4px;
}

article.news___article figure.img,
article.news___article figure.img img {
  border-top-left-radius: 4px;border-top-right-radius: 4px;
}

body.article article .article___header time {
  font-weight: 600;
}

/* ####################################################### section read more ####################################################### */

section.read___more {
  margin-top: 2rem;
}

section.read___more article figure {
  --w: 5;
  --h: 4;
}

section.read___more hr {
  margin: 4rem 0;
}
/* ####################################################### Orte ####################################################### */

article.ort .inner {
  border-radius: 4px;
  position: relative;
}

article.ort p.bus {
  line-height: 1;
  vertical-align: middle;
}
article.solo___ort p.bus {
  line-height: normal!important;
}

article.ort .bus .busline {
  padding-left: .05rem;
}

article.solo___ort p.bus svg {
  height: 15px;
  width: auto;
}



article.solo___ort p.busstop svg, article.solo___ort p.busstopshort svg {
  height: 15px;
  width: auto;
}

article.solo___ort p.busstop .busstopshort svg {
  padding-left: .5rem;
}

article.ort .bus svg, article.ort .bus .busstop svg, article.ort .bus .busstopshort svg, .busstopshort svg,
.accordion-button .busstopshort svg.busstopshort {
  width: auto;
  height: 17px;
}

article.ort .bus svg.grün {fill: green;}
article.ort .bus svg.gelb {fill: yellow;}
article.ort .bus svg.lila {fill: purple;}
article.ort .bus svg.rot {fill: red;}
article.ort .bus svg.blau {fill: blue;}



body.ort section.events {
  padding-top: 2.5rem;
}


body.routen .ort___add figure.img {
  --w: 2;
  --h: 1;
}

.ort___add figure.img {
  --w: 1;
  --h: 1;
}

.ort___add .overlay {
  position: absolute;
  background-color: #fff;
  opacity: .8;
}

.ort___add .overlay.tl {
  top: 0;
  left: 0;
  border-top-left-radius: 4px;
}

.ort___add .overlay.tr {
  top: 0;
  right: 0;
  border-top-right-radius: 4px;
}

.ort___add .overlay.bl {
  bottom: 0;
  left: 0;
  border-bottom-left-radius: 4px;
}

.ort___add .overlay.br {
  bottom: 0;
  right: 0;
  border-bottom-right-radius: 4px;
}

.ort___add .overlay p {
  padding: .125rem;
  padding-top: .2rem;
  line-height: 1;
  font-size: 9px;
  text-transform: uppercase;
}


/* ####################################################### themenrouten ####################################################### */

article.route .inner2 {
  border-radius: 4px;
  position: relative;
}

article.route .inner2 footer p.getvar span:not(:last-child)::after,
body.route p.getvar span.item:not(:last-child)::after {
  content: ", ";
}

body.route p.getvar span.item, body.route p.getvar span.divide {
  font-weight: 400!important;
}
/* ####################################################### Partner ####################################################### */

 body.partner section {
  margin-top: 3rem;
}

body.partner section hr {
  margin: 3rem 0;
}






/* ####################################################### intern login ####################################################### */


body.intern .login {
  margin-top: 3rem;
}

.alert.alert-danger p {
  font-weight: 500;
  margin-bottom: 0;
}


/* ####################################################### presse ####################################################### */

.press_downloads ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ####################################################### events Programmpunkte ####################################################### */

section.events ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
section.events ul li {
  display: inline-block;
}

.accordion-button {
-webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.accordion-flush > .accordion-item > .accordion-header .accordion-button {
border-top-left-radius: 4px!important;
border-top-right-radius: 4px!important;
border-bottom-left-radius: 0!important;
border-bottom-right-radius: 0!important;
}

.accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed {
  border-top-left-radius: 4px!important;
  border-top-right-radius: 4px!important;
  border-bottom-left-radius: 4px!important;
  border-bottom-right-radius: 4px!important;
}


.accordion .inner___button {
  width: 100%;
}

.accordion-item, .accordion-header {
  border-radius: 4px!important;
  border-color: rgba(255, 255, 255, 0)!important;
}

.accordion-body {
  border-bottom-right-radius: 4px!important;
  border-bottom-left-radius:  4px!important;
}

.event___title p {

}

section.events ul li.active a.active {
}
.programm_nav {top: 144px;}
.programm_nav.magic2 {top: 58px;}
.programm_nav.nav-up2 {top: 0;}


.programm_nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: block!important;
}
.programm_nav ul li {
   display: inline-block;
}
.programm___menu hr {
  margin: .5rem 0;
}

.programm___menu ul li:first-child {
  margin-left: .5rem;
}

.accordion-body a.ort {
  text-decoration: underline;
}


p.bus svg {
  padding-left: .125rem;
  padding-right: .125rem;
  height: 17px;
  width: auto;
}


body.home p.bus svg {
  height: 13px;
  width: auto;
  padding-left: .025rem;
  padding-right: 0;
}

body.home .carousel header h2 {
  padding: 0!important;
}

.bus svg.grün {fill: green;}
.bus svg.gelb {fill: yellow;}
.bus svg.lila {fill: purple;}
.bus svg.rot {fill: red;}
.bus svg.blau {fill: blue;}


span.number {
    border-radius: 0.8rem;
    -moz-border-radius: 0.8rem;
    -webkit-border-radius: 0.8rem;
    display: inline-block;
    line-height: 1.6rem;
    text-align: center;
    width: 1.6rem;
    font-weight: 600
}


.events .location___title {
  font-weight: 600;
  text-transform: uppercase;
}


.events .location___title:not(:first-child) {
  margin-top: 3rem;
}
.programm___menu___main ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-weight: 500;
}

.programm___menu___main ul li {
  display: inline-block;
}

.programm___menu___main ul li:not(:first-child) {
  padding-left: 1rem;
}

.programm___menu___main ul li a {
  text-decoration: none;
}

.programm___menu___main ul li.active {
  opacity: 0.5;
}



body.programm .page___title,
body.programm_locations .page___title,
body.programm_timetable .page___title {
  margin-bottom: 0;
}

.overline,
.overline p,
.overline p span,
.underline,
.underline p,
.underline p span {
  line-height: 1;
}

.overline {
  margin-bottom: .2rem;
}
.overline p.p_overline:not(:last-child)::after,
.underline p.p_underline:not(:last-child)::after
 {
  content: " |";
  font-weight: 200!important;
}

.overline p.p_overline:first-child::after
 {
  content: "";
}

/*
body.ort .overline p.p_overline:first-child::after
 {
  content: " |";
}
*/

p.p_overline span.time:not(:last-child)::after,
p.partner span.partner:not(:last-child)::after {
  content: ", ";
}



.events .ort___add figure.img {
  --w: 2;
  --h: 1;
}

.events a.location___title___link h2.location___title {
  -webkit-transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
  transition: all 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.events a.location___title___link h2.location___title::after {
  position: relative;
  content: " \F1C5";
  font-family: "bootstrap-icons";
  font-size: .85rem;
  vertical-align:top;
}


/* ####################################################### Redaktion ####################################################### */


body.redaktion {
  background: #fff;
  color: #000;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

body.redaktion h1, body.redaktion h2, body.redaktion h3, body.redaktion h4 {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-weight: bold;
}

body.redaktion section.location {
  padding: 3rem 0;
}

body.redaktion section.location article.event {
  padding: 1.5rem 0;
}

body.redaktion section.location article.event:not(:last-child) {
  border-bottom: 1px solid #ddd;
}
@media print {
  html, body {font-size: 9px;}
  .row > .col {
    width: 100%;
  }
}


/* ####################################################### tickets ####################################################### */



.ticket_anim_wrapper {
  position: relative;
  display: block;
  --w: 1;
  --h: 1;
  padding-bottom: calc(100% / var(--w) * var(--h));
}

.ticket_anim_image {
  position: absolute;
  top: -10%;
  left: 0;
  right: 0;
  bottom: 0;
  width: 80%;
  animation-iteration-count: 1;
  animation-duration: 2.5s;
  animation-fill-mode: forwards;
  transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
}

.ticket_anim_image1 {
  left: -10%;
  top: -7.5%;
  z-index: 103;
  animation-name: ticket_anim_image1;
}

.ticket_anim_image2 {
  left: 15%;
  z-index: 102;
  animation-name: ticket_anim_image2;
}

.ticket_anim_image3 {
  left: 30%;
  top: -5%;
  z-index: 101;
  animation-name: ticket_anim_image3;
}

figure.anim_img {
  position: relative;
  display: block;
  --w: 1;
  --h: 1.414;
  padding-bottom: calc(100% / var(--w) * var(--h));
  background-repeat: no-repeat!important;
  background-size: 35px auto!important;
  background-position: center!important;
  border-radius: 4px;
}
figure.anim_img img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  border: 0;
  border-radius: 4px;
  -webkit-box-shadow: 5px 5px 15px 5px rgba(0,0,0,.666);
  box-shadow: 5px 5px 15px 5px rgba(0,0,0,.666);
}
figure.anim_img[data-contain] img {
  object-fit:cover;
}



@keyframes ticket_anim_image3 {
  0% {
    opacity: 0;
    transform: scale(1) rotate(12deg);
  }
  29% {
    opacity: 0;
    transform: scale(1) rotate(12deg);
}
  30% {
    opacity: 1;
    transform: scale(1) rotate(12deg);
  }

  100% {
    opacity: 1;
    transform: scale(.666) rotate(6deg);
}
}

@keyframes ticket_anim_image2 {
  0% {
    opacity: 0;
    transform: scale(1) rotate(-3deg);
  }
  45% {
    opacity: 0;
    transform: scale(1) rotate(-3deg);
  }

  46% {
    opacity: 1;
    transform: scale(1) rotate(-3deg);
  }

  100% {
    opacity: 1;
    transform: scale(.666) translateY(0) rotate(3deg);
}
}

@keyframes ticket_anim_image1 {
  0% {
    opacity: 0;
    transform: scale(1) rotate(-12deg);
  }
  60% {
    opacity: 0;
    transform: scale(1) rotate(-12deg);
  }
  61% {
    opacity: 1;
    transform: scale(1) rotate(-12deg);
  }

  100% {
    opacity: 1;
    transform: scale(.666) rotate(-4deg);
}
}

.ticket___item {
  border-radius: 4px;
  box-shadow: rgba(0, 0, 0, 0.333) 0px 25px 20px -20px;
}

.ticket___item figure, .ticket___item figure img {
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
/* ####################################################### arcchiv ####################################################### */



body.arch section.year:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.9);
}


/* ####################################################### Guide ####################################################### */

body.guide .text figure {
  margin-bottom: 2rem;
}

body.guide .text hr {
  margin: 4rem 0;
}

body.guide .video {
  position: relative;
  display: block;
  --w: 1.784;
  --h: 1;
  padding-bottom: calc(100% / var(--w) * var(--h));
  box-shadow: rgba(0, 0, 0, 0.666) 0px 25px 20px -20px;
}
body.guide .video video {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

/* ####################################################### uniform ####################################################### */

.uniform__potty {
    position: absolute;
    left: -9999px;
}

/* ####################################################### responsive ####################################################### */





@media (min-width: 576px) {
  .page___header figure.img {--w: 1;--h: 1;}
  .page___header figure.img,
  .page___header figure.img img,
  .page___header figure.img,
  figure.co___crop,
  figure.co___crop img {border-bottom-right-radius: 6px; border-bottom-left-radius: 6px;}
  .lb-outerContainer,
  .lightbox .lb-image {border-radius: 6px;}

  figure.img.article_img {--w: 4;--h: 5;}

  .footer___artwork {background-size: auto 100%!important;}
  section.home_grid p.counterX {font-size: 2.5rem!important;}




  .ticket_anim_wrapper {--w: 1;--h: 1;padding-bottom: calc(100% / var(--w) * var(--h));}
  .ticket_anim_image {width: 70%;}
  .ticket_anim_image1 {left: 0;}
  .ticket_anim_image2 {left: 15%;}
  .ticket_anim_image3 {left: 30%;}
html, body {font-size: .9333rem;}

.inner___holder___poolproduction img {width: 80%;}

}


@media (min-width: 768px) {
.page___header figure.img {--w: 5;--h: 4;}
.page___header figure.img img,
.page___header figure.img,
figure.co___crop,
figure.co___crop img {border-bottom-right-radius: 8px; border-bottom-left-radius: 8px;}
.lb-outerContainer,
.lightbox .lb-image {border-radius: 8px;}
  section.home_grid p.counterX {font-size: 2.75rem!important;}



figure.img.article_img {--w: 4;--h: 5;}

  .ticket_anim_wrapper {--w: 1.6;--h: 1;padding-bottom: calc(100% / var(--w) * var(--h));}
  .ticket_anim_image {width: 55%;}
  .ticket_anim_image1 {left: 10;}
  .ticket_anim_image2 {left: 25%;}
  .ticket_anim_image3 {left: 45%;}
html, body {font-size: .9666rem;}

.overline p.p_overline:not(:last-child)::after,
.underline p.p_underline:not(:last-child)::after
 {
  content: " |"!important;
  font-weight: 200!important;
}

}


@media (min-width: 992px) {
  .page___header figure.img {--w: 3;--h: 2;}
  .page___header figure.img img,
  .page___header figure.img,
  figure.co___crop,
  figure.co___crop img {border-bottom-right-radius: 10px; border-bottom-left-radius: 10px;}
  body.article main.main {padding-top: 144px;}
  nav.navbar {padding: 3rem 0;}
  nav.navbar .navbar-brand .logo {width: 175px;}
  nav.navbar.magic .navbar-brand .logo {width: 125px;}
  body main.main {padding-top: 144px;}
  body.home main.main {padding-top: 0}
  a.nav-link {padding: 0 8px;}
.page___title {font-size: 44px;}
.navbar-nav {align-items: center;}
.footer___artwork___wrapper, .footer___artwork {height: 350px;}

figure.img.article_img {--w: 4;--h: 5;}
section.home_grid p.counterX {font-size: 3rem!important;}

.ticket_anim_wrapper {--w: 2;--h: 1;padding-bottom: calc(100% / var(--w) * var(--h));}
.ticket_anim_image {width: 44%;}
.ticket_anim_image1 {left: 15%;}
.ticket_anim_image2 {left: 30%;}
.ticket_anim_image3 {left: 45%;}
html, body {font-size: 1rem;}
body.home .no___page___header {margin-bottom: 5rem;}
.no___page___header {
  margin-bottom: calc(3rem + 56px);
}
}


@media (min-width: 1200px) {
  .page___header figure.img {--w: 7;--h: 4;}
  .page___title {font-size: 55px;}
  body.ort .page___title {font-size: 44px;}
  section.orte .carousel .carousel-control-next {
    width: 15%;
    justify-content: center;
  }
  section.orte .carousel .carousel-control-prev {
    width: 15%;
    justify-content: center;
  }

    section.home_grid p.counterX {font-size: 3.5rem!important;}
figure.img.article_img {--w: 4;--h: 5;}
    .ticket_anim_wrapper {--w: 1;--h: 1.414;padding-bottom: calc(100% / var(--w) * var(--h) / 3.8);}
    .ticket_anim_image {width: 33%;}

html, body {font-size: 1.05rem;}
}

@media (min-width: 1400px) {
    .page___header figure.img {--w: 9;--h: 4;}
    .page___title {font-size: 66px;}
    body.ort .page___title {font-size: 44px;}
figure.img.article_img {--w: 4;--h: 5;}
section.home_grid p.counterX {font-size: 4rem!important;}
}

@media (min-width: 1600px) {
section.home_grid p.counterX {font-size: 5rem!important;}
}

.ort___entfaellt {
  opacity: .5;
}

article.ort.ort___entfaellt h2 span {
  color: red;
}

section.home_grid {
  container-type: inline-size;
}

section.home_grid #homegrid {
  --hg-cols: 1;
  --hg-gap: 1rem;
  --hg-unit: calc((100cqw - (var(--hg-cols) - 1) * var(--hg-gap)) / var(--hg-cols));
  display: grid;
  grid-template-columns: repeat(var(--hg-cols), minmax(0, 1fr));
  grid-auto-rows: var(--hg-unit);
  grid-auto-flow: dense;
  gap: var(--hg-gap);
}

section.home_grid #homegrid > * {
  grid-column: span 1;
  grid-row: span 1;
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  flex: none;
}

section.home_grid #homegrid > * > a {
  display: block;
  height: 100%;
}

section.home_grid #homegrid .item {
  height: 100%;
  padding-bottom: 0;
}

section.home_grid #homegrid .ort___add figure.img {
  height: 100%;
  padding-bottom: 0;
}

@media (min-width: 576px) {
  section.home_grid #homegrid {
    --hg-cols: 2;
    --hg-gap: 1.5rem;
  }
  section.home_grid #homegrid > .col-sm-12 {
    grid-column: span 2;
  }
}

@media (min-width: 992px) {
  section.home_grid #homegrid {
    --hg-cols: 3;
  }
  section.home_grid #homegrid > .col-lg-4 {
    grid-column: span 1;
  }
  section.home_grid #homegrid > .col-lg-8 {
    grid-column: span 2;
  }
  section.home_grid #homegrid > .hg-tall {
    grid-row: span 2;
  }
}

@media (min-width: 1200px) {
  section.home_grid #homegrid {
    --hg-cols: 4;
  }
  section.home_grid #homegrid > .col-xl-3 {
    grid-column: span 1;
  }
  section.home_grid #homegrid > .col-xl-6 {
    grid-column: span 2;
  }
}

@media (min-width: 1400px) {
  section.home_grid #homegrid {
    --hg-gap: 3rem;
  }
}

section.home_grid #homegrid .hg-tall .inner {
  display: flex;
  flex-direction: column;
  height: 100%;
}

section.home_grid #homegrid .hg-tall .inner > p[data-nosnippet] {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.5rem), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 1.5rem), transparent);
}

section.home_grid #homegrid .hg-tall .inner > .btn {
  flex: none;
  align-self: flex-start;
}
