@charset 'utf-8';

/* ¡Renormasaniset */
*, ::before, ::after {background-repeat: no-repeat; box-sizing: border-box;} html {-webkit-text-size-adjust: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-hyphenate-limit-before: 4; -webkit-hyphenate-limit-after: 4; -ms-hyphenate-limit-chars: 8 4 4; hyphenate-limit-chars: 8 4 4; -webkit-hyphenate-limit-lines: 3; -ms-hyphenate-limit-lines: 4; hyphenate-limit-lines: 4; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; overflow-y: scroll;} body {background-color: transparent;} a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,button,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,input,kbd,label,legend,li,main,mark,menu,nav,object,ol,option,output,p,pre,q,ruby,s,samp,section,select,small,span,strike,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,tt,u,ul,var,video {margin:0;padding:0;border:0;font:inherit;vertical-align:baseline;} article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;} input {overflow: visible;} button, [type="button"], [type="reset"], [type="submit"] {-webkit-appearance: button;} [type="checkbox"], [type="radio"] {padding: 0;} [type="search"] {-webkit-appearance: textfield; outline-offset: -2px;} textarea {overflow: auto; resize: vertical;} ::placeholder {color: inherit; opacity: 0.5;} :-webkit-search-decoration {-webkit-appearance: none;} [hidden] {display: none;} audio, video {display: inline-block;} a {background-color: transparent; text-decoration:none } a, area, button, input, label, select, summary, textarea, [tabindex] {-ms-touch-action: manipulation; touch-action: manipulation;} ol,ul{list-style:none} blockquote,q{quotes:none} blockquote:after,blockquote:before,q:after,q:before{content:'';content:none} table{border-collapse:collapse;border-spacing:0} b,strong{font-weight:bold} em,i{font-style:italic} h1,h2,h3,h4,h5,h6{font-weight:400} button, input, select, textarea {font-family: inherit; font-size: inherit; line-height: inherit;} abbr[title]{text-decoration: underline; text-decoration: underline dotted; cursor:help;} img {border-style: none; -moz-user-select: text; -webkit-user-select: text; user-select: text; -moz-user-drag: none; -webkit-user-drag: none; user-drag: none;} svg {fill: currentColor;} svg:not(:root) {overflow: hidden;}
/* Renormasaniset! */


@font-face {
font-family: 'Playwrite';
src: url("../fonts/PlaywriteDESAS-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Nunito';
src: url("../fonts/Nunito-Bold.woff2") format("woff2");
font-weight: bold;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Nunito';
src: url("../fonts/Nunito-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Nunito';
src: url("../fonts/Nunito-Italic.woff2") format("woff2");
font-weight: normal;
font-style: italic;
font-display: swap;
}


:root {
--l: 120,0,160;      /* Lila */
--ml: 220,190,260;  /* Mittleres Lila */
--hl: 220,200,260;  /* Helles Lila */
--pad: 2em;         /* Global Padding */
--bpad: .325em .45em .15em .45em; /* Button Padding */
scroll-behavior: smooth;
}

body {
position: relative;
font-family: 'Nunito', 'SF Pro Rounded', 'Arial Rounded', -apple-system, sans-serif;
font-size: 18px;
line-height: 1.4em;
min-height: 100vh;
display: flex;
flex-flow: column nowrap;
}

a,
a svg *,
a img {
transition: all 250ms ease-in;
}

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

.incognito {
display: none !important;
}

article p,
div.text > ul:not(.obj),
div.text > ol:not(.obj) {
margin: 0 0 .5em 0;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}

div.text > *:not(.obj) > li {
position: relative;
margin: 0 0 .35em 1em;
}

div.text > *:not(.obj) > li:before {
position: absolute;
left: -1em;
display: block;
width: 1em;
color: rgb(var(--l));
}

div.text > ul:not(.obj) > li:before {
content: '»';
}

div.text > ol:not(.obj) {
counter-reset: liste;
list-style-type: none;
}

div.text > ol:not(.obj) > li:before {
counter-increment: liste;
content: counter(liste) ".";
}

header > div,
main > div,
footer > div {
max-width: 1280px;
margin: 0 auto;
}

.full header > div,
.full main > div,
.full footer > div {
max-width: calc(100% - 18em);
}

header {
background: rgb(var(--ml));
padding: var(--pad) var(--pad) 0 var(--pad);
}

header > div {
position: relative;
display: flex;
flex-flow: row wrap;
gap: 1em;
}

header h1 {
flex: 1;
font-family: 'Playwrite';
font-size: 2em;
line-height: 1.2em;
font-weight: normal;
}

header h1 a {
color: rgb(var(--l));
}

header h1 a:hover {
color: rgba(var(--l),.5);
}

header a.menu {
flex: 0 1 3em;
margin: auto 0 auto auto;
height: 3em;
fill: rgba(var(--l),.5);
background: transparent;
}

header a.menu:hover {
fill: white;
background: rgba(var(--l),.25);
}

header a.menu svg {
fill: inherit;
}

header a.menu span {
display: none;
}

header nav {
flex: 1 0 100%;
padding: .5em 0 0 0;
}

main nav {
margin: 0 0 var(--pad) 0;
}

header nav a {
font-weight: bold;
text-transform: uppercase;
letter-spacing: .075em;
color: rgb(var(--l));
}

header nav ul ul a {
font-size: .875em;
line-height: 1.1em;
}

header nav ul,
main nav ul {
display: flex;
flex-flow: row wrap;
gap: 1em;
}

header nav ul.main > li:last-child {
margin-left: auto;
}

header nav ul li a {
display: block;
padding-bottom: .35em;
border-bottom: .25em solid transparent;
}

header nav ul li a:hover {
border-bottom-color: rgba(var(--l),.5);
}

header nav ul li.aktiv a {
border-bottom-color: rgb(var(--l));
}

header nav ul.main ul,
header nav > svg,
header nav > a {
display: none;
}

/* Burgermenü */
header nav:target {
display: flex;
flex-flow: row wrap;
gap: .5em;
align-content: flex-start;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100vw;
height: 100vh;
padding: var(--pad);
fill: white;
background: rgba(var(--l),.98);
overflow-y: scroll;
z-index: 1000;
}

header nav:target > svg {
flex: 0 1 384px;
max-width: calc(100% - 72px);
display: block;
fill: white;
}

header nav:target > svg .icon polygon:last-child {
fill: rgba(255,255,255,.5);
}

header nav:target ul.main {
flex-flow: column wrap;
width: 100%;
margin-top: var(--pad);
}

header nav:target ul.main ul {
display: flex;
flex-flow: column wrap;
}

header nav:target > a.menu {
display: block;
fill: white;
}

header nav:target > a.menu:hover {
fill: rgb(var(--l));
background: rgba(255,255,255,.8);
}

header nav:target li a {
display: flex;
color: white;
border-bottom: none;
padding: .25em 0 .15em 0;
}

header nav:target > ul.main > li:not(:last-child) {
padding: 0 0 .5em 0;
border-bottom: .1em solid white;
}

header nav:target ul.main ul {
display: flex;
flex-flow: row wrap;
}

header nav:target ul.main > li:last-child {
margin-left: 0;
}

header nav:target ul.main ul a {
color: rgba(var(--hl),.8);
}

header nav:target ul.main ul a:hover {
color: white;
}

header nav:target ul.main ul li.aktiv a {
color: rgb(var(--l));
background: white;
padding: var(--bpad);
}

header div.banner {
display: flex;
flex-flow: row wrap;
gap: .5em var(--pad);
color: white;
background: rgb(var(--ml));
padding: .75em;
width: 100%;
margin: 1em 0 2em 0;
}

header div.banner h2 {
font-weight: bold;
margin: 0;
width: 100%;
}

header div.banner img {
display: block;
width: calc(100% / 3);
height: auto;
margin: .25em 0 auto 0;
}

header div.banner div.text {
flex: 1 1 0;
columns: auto 20em;
column-gap: 1em;
}

header div.banner a {
color: white;
border-bottom-color: rgba(255,255,255,.4);
}

header div.banner a:hover {
color: rgba(255,255,255,.8);
border-bottom-color: white;
}

main {
padding: var(--pad);
}

main nav a {
font-weight: bold;
color: rgb(var(--l));
border-bottom: .1em solid transparent;
}

main nav li.aktiv a {
border-bottom-color: rgb(var(--l));
}

main nav a:hover {
border-bottom-color: rgb(var(--ml));
}

main hr {
border: 0;
height: 1px;
background: rgb(var(--l));
margin: .5em 0;
}

main h2 {
font-family: 'Playwrite';
font-size: 1.6em;
line-height: 1.2em;
font-weight: normal;
color: rgba(var(--l),.6);
margin: 0 0 .5em -.05em;
-webkit-text-stroke: .015em;
}

main * + h2 {
margin-top: 2em;
}

main h3 {
position: relative;
font-size: 1.2em;
line-height: 1.2em;
font-weight: bold;
color: rgb(var(--l));
padding: 0 0 .35em 0;
margin: 1.5em 0 .35em 0;
border-bottom: .1em solid rgb(var(--ml));
}

main h3:target::before {
content: '→';
position: absolute;
left: -1em;
}

main .downloads h3 {
border-bottom: .1em solid rgba(var(--ml),.5);
margin-bottom: .5em;
}

main ul + h3 {
margin-top: 2em;
}

main h4 {
font-style: italic;
font-weight: normal;
color: rgb(var(--l));
margin: 1em 0 .25em 0;
}

main h5 {
font-style: italic;
font-weight: normal;
margin: 1em 0 0 0;
}

div.text a {
color: black;
border-bottom: .1em solid rgb(var(--ml));
}

div.text a:hover {
color: rgb(var(--l));
border-bottom-color: transparent;
}

code {
color: white;
background: magenta;
padding: .2em .2em .1em .2em;
box-decoration-break: clone;
}

a.knopf {
display: inline-block;
vertical-align: top;
color: rgb(var(--l));
background: rgb(var(--hl));
padding: var(--bpad);
}

a.knopf:hover {
color: white;
background: rgb(var(--ml));
}

article.default {
display: flex;
flex-flow: row wrap;
gap: var(--pad);
}

article.default div.text {
flex: 1;
max-width: 36em;
margin: 0 0 auto 0;
}

article.default aside {
flex: 1;
margin: .9em 0 auto 0;
}

ul.downloads li {
margin: 0 0 .25em 0;
}

ul.downloads li a {
display: flex;
flex-flow: row wrap;
gap: 0 .5em;
color: rgb(var(--l));
background: rgb(var(--hl));
padding: .35em .25em .25em .25em;
border-radius: 5em;
}

ul.downloads li a:hover {
color: white;
background: rgb(var(--ml));
}

ul.downloads li a svg {
flex: 0 0 3em;
transform: translate(.5em,-.1em);
margin: auto 1em auto 0;
fill: white;
}

ul.downloads li a > span {
flex: 1;
display: flex;
flex-flow: row wrap;
gap: 0 .5em;
margin: auto;
}

span.ext {
font-weight: bold;
text-transform: uppercase;
letter-spacing: .05em;
break-after: avoid;
}

ul.grid {
display: grid;
gap: 2em 1em;
grid-template-columns: repeat(auto-fit, minmax(16em, 1fr));
}

ul.grid.quad {
grid-template-columns: repeat(auto-fit, minmax(12em, 1fr));
}

ul.grid li {
scroll-margin-top: var(--pad);
}

ul.grid li a {
display: block;
}

ul.grid li img {
display: block;
max-width: 100%;
box-shadow: none;
}

ul.grid li a:hover img {
filter: saturate(1.5);
box-shadow: 0 0 .5em rgba(0,0,0,.4);
}

ul.grid li h3,
ul.grid li h4,
figcaption {
font-size: .875em;
line-height: 1.4em;
color: black;
font-weight: normal;
font-style: normal;
margin: .75em 0 0 0;
}

ul.grid li a:hover h3 {
color: rgb(var(--l));
}

.aus {
opacity: .333;
}

ul.galerie {
margin: 0 0 var(--pad) 0;
}

ul.galerie img {
border-radius: .5em;
}

p.ort {
color: rgb(var(--l));
padding: 0 0 .25em 0;
border-bottom: .1em solid rgb(var(--l));
margin: 0 0 .75em 0;
}

p.ort svg {
display: inline-block;
height: 1em;
margin: 0 .2em 0 0;
overflow: visible;
transform: translateY(.15em);
}

figure {
width: 100%;
}

figure img {
display: block;
width: 100%;
max-width: 100%;
height: auto;
max-height: 80vh;
object-fit: contain;
background: rgb(var(--hl));
}

footer {
background: rgb(var(--ml));
padding: var(--pad);
margin-top: auto;
}

footer nav ul {
display: flex;
flex-flow: row wrap;
gap: .5em 1em;
justify-content: flex-end;
}

footer nav ul a {
color: rgb(var(--l));
border-bottom: .1em solid transparent;
}

footer nav ul a:hover {
border-bottom-color: rgb(var(--l));
}

footer ul.logos {
display: flex;
flex-flow: row wrap;
gap: 2em;
margin: 2em 0 0 0;
}

footer ul.logos li img {
height: 48px;
}









/*! Flickity v3.0.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%;touch-action:pan-y}.flickity-slider{position:absolute;width:100%;height:100%;left:0}.flickity-rtl .flickity-slider{left:unset;right:0}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-cell{position:absolute;left:0}.flickity-rtl .flickity-cell{left:unset;right:0}.flickity-button{position:absolute;background:hsl(0 0% 100% / 75%);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;text-align:center;display:flex;justify-content:center;flex-wrap:wrap}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dot{display:block;width:10px;height:10px;padding:0;margin:0 8px;background:hsl(0 0% 20% / 25%);border-radius:50%;cursor:pointer;appearance:none;border:none;text-indent:-9999px;overflow:hidden}.flickity-rtl .flickity-page-dot{text-indent:9999px}.flickity-page-dot:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-page-dot.is-selected{background:hsl(0 0% 20% / 100%)}

/* Flickity fullscreen v1.0.1
------------------------- */

.flickity-enabled.is-fullscreen{position:fixed;left:0;top:0;width:100%;height:100%;background:hsl(0 0% 0% / 90%);padding-bottom:35px;z-index:1}.flickity-enabled.is-fullscreen .flickity-page-dots{bottom:10px}.flickity-enabled.is-fullscreen .flickity-page-dots .dot{background:#fff}html.is-flickity-fullscreen{overflow:hidden}.flickity-fullscreen-button{display:block;right:10px;top:10px;width:24px;height:24px;border-radius:4px}.flickity-rtl .flickity-fullscreen-button{right:auto;left:10px}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view,.flickity-fullscreen-button-exit{display:none}.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit{display:block}.flickity-fullscreen-button .flickity-button-icon{position:absolute;width:16px;height:16px;left:4px;top:4px}





ul.galerie.flickity-enabled.is-fullscreen {
margin: 0;
background: rgba(var(--l),.95);
}

body .flickity-viewport {
height: 100vh;
}

ul.galerie.flickity-enabled.is-fullscreen li {
height: 100vh;
max-height: 100vh;
}

/* Safari-Häck, damit er korrekt zu lange Bilder verkleinert! */
ul.galerie.flickity-enabled.is-fullscreen li:last-of-type::after {
content: '';
display: flex;
height: 200vh;
}

ul.galerie.flickity-enabled li {
width: 100%;
opacity: .2;
transition: opacity 333ms ease-out;
}

ul.galerie.flickity-enabled li.is-selected {
opacity: 1;
}

ul.galerie.flickity-enabled.is-fullscreen figure {
display: flex;
flex-flow: column nowrap;
width: 100%;
height: 100vh;
max-height: 100vh;
overflow: hidden;
}

ul.galerie.flickity-enabled.is-fullscreen figure img {
flex: 1 1 auto;
height: 100%;
object-fit: contain;
object-position: center;
max-height: calc(100vh - 2.6em);
background: transparent;
}

ul.galerie.flickity-enabled.is-fullscreen figure figcaption {
flex: 0 0 auto;
color: white;
text-align: left;
padding: .75em 1em;
margin: 0;
}

body .flickity-button-icon {
fill: rgb(var(--l));
}

body .flickity-fullscreen-button {
padding: .5em;
}

body .flickity-fullscreen-button .flickity-button-icon {
position: static;
width: 100%;
height: 100%;
}

body .flickity-prev-next-button {
top: calc(48% - 22px);
}

body .flickity-fullscreen-button {
right: 12px;
top: 12px;
width: 36px;
height: 36px;
}

body .flickity-page-dots {
width: auto;
right: 0;
bottom: .35em;
}

body .flickity-enabled.is-fullscreen .flickity-page-dots {
right: 1em;
bottom: 1em;
}

body .flickity-page-dot {
background: rgba(var(--l),.25);
margin: 0 0 0 .25em;
}

body .flickity-page-dot.is-selected {
background: rgb(var(--l));
}

body .is-fullscreen .flickity-page-dot {
background: rgba(255,255,255,.25);
}

body .is-fullscreen .flickity-page-dot.is-selected {
background: white;
}

body .flickity-prev-next-button {
transform: translateY(calc(-50% + 18px));
}











/* ############# Screens unter 1600px ############# */
@media only screen and (max-width: 1600px) {

  header h1 {
  margin-left: 0;
  }

  .full header > div,
  .full main > div,
  .full footer > div {
  max-width: 100%;
  }

}







/* ############# Screens unter 800px ############# */
@media only screen and (max-width: 800px) {

  header {
  padding: var(--pad);
  }

  /* Nur noch Burger-Nav */
  header nav,
  main nav:not(.kats) {
  display: none;
  }

  article.default aside {
  flex: 1 0 100%;
  }
  
  ul.galerie {
  margin-bottom: var(--pad);
  }

}





/* ############# Screens unter 640px ############# */
@media only screen and (max-width: 640px) {

  :root {
  --pad: 1em;
  }

  header nav:target ul.main ul {
  display: block;
  }

  header nav:target ul.main ul li {
  margin: 0 0 .25em 0;
  }

  header nav:target ul.main ul li a {
  display: inline-block;
  }

}






/* ############# Screens unter 480px ############# */
@media only screen and (max-width: 480px) {
  
  header h1 {
  font-size: 1.6em;
  -webkit-text-stroke: .015em;
  }
  
  header div.banner img {
	width: 100%;
	}

}




