/* Fonts importieren */
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;600;700&display=swap');


/* --------------------------------------------- */
/**
 * CSS-Variablen
 */
:root {
	/* Abstände */
	--randabstand: 1.5rem;
	--gap: 0.5rem;
	--balkenhoehe: 3.5rem;
	--abschnittabstand: 2rem;
	
	/* Farben */
	--farbe-schwarz-opak: rgba( 0, 0, 0, 1);
	--farbe-schwarz-transparent: rgba( 75, 75, 75, 0.99 );
	--farbe-dunkelgrau-transparent: rgba( 155, 155, 155, 0.2 );
	--farbe-mittelgrau-transparent: rgba( 95, 95, 95, 0.9 );
	--farbe-hellgrau-transparent: rgba( 240, 240, 240, 0.9 );
	--farbe-weiss-opak: rgba( 255, 255, 255, 1);
	--farbe-weiss-transparent: rgba( 255, 255, 255, 0.98 );

	/* Schatten */
	--schatten-01: 0rem 0.125rem 0.25rem rgba(100,100,100, 0.1);	/* Leichter, weicher Schatten, z.B. hinter Formularfeld */
	--schatten-02: 0rem 0.125rem 0.5rem rgba(0,0,0, 0.15);	/* Mittlerer, weicher Schatten hinter Button */
	--schatten-03: 0rem 0.125rem 2.25rem rgba(0,0,0, 0.06); /* Grosser, weicher Schatten, z.B. hinter Header */
	--schatten-04: 0rem 0.5rem 1.5rem rgba(0, 0, 0, 0.3);	/* Stark streuender Schatten, z.B. hinter Button:hover */
	--schatten-plakativ: 0rem 0.5rem 2.5rem rgba(0, 0, 0, 0.5);	/* Stark streuender Schatten, hinter plakativem Text */
	
	/* Schrift */
	--schriftgroesse-h1: 2rem;
	--schriftgroesse-h2: 1.5rem;
	--schriftgroesse-h3: 1rem;
	--schriftgroesse-h4: 1rem;
	--schriftgroesse-p: 1rem;
	--schriftgroesse-plakativ: 3.5rem; /* Für Schrift im 1-spaltigen Inhaltsbereich */
	
	/* Transition/Übergang */
	--transition-01: all 0.3s;
	--transition-02: all 0.6s;
	
	/* Border-Radius */
	--border-radius-01: 0.25rem;
	--border-radius-02: 0.5rem;
}


/* Bis Smartphones Querformat oder breiter (<600px) */
@media screen and ( max-width: 35.5rem ) {

}
/* Ab Smartphones Querformat oder breiter (600px<) */
@media screen and ( min-width: 35.5rem ) {
	:root {
		/* Abstände */
		--gap: 1rem;
		--balkenhoehe: 3.5rem;
		--abschnittabstand: 5rem;
	}	
}
/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
}
/* Ab Tablets Querformat oder breiter (960px<) */
@media screen and ( min-width: 60rem ) {
}
/* Ab Laptop oder kleiner Desktop (1200px<) */
@media screen and ( min-width: 75rem ) {
    :root {
		/* Schatten */
		--schatten-plakativ: 0rem 0.5rem 5rem rgba(0, 0, 0, 0.35);	/* Stark streuender Schatten, hinter plakativem Text */
        
		/* Schrift */
		--schriftgroesse-plakativ: 8rem;
		--schriftgroesse-h1: 2rem;
		--schriftgroesse-h2: 1.5rem;
		--schriftgroesse-h3: 1rem;
		--schriftgroesse-h4: 1rem;
		--schriftgroesse-p: 1rem;
    }
}

/* Ab Grossem Desktop oder TV (1936<) */
@media screen and ( min-width: 121rem ) {
    :root {
		--schatten-plakativ: 0rem 0.5rem 6rem rgba(0, 0, 0, 0.3);	/* Stark streuender Schatten, hinter plakativem Text */
		--schriftgroesse-plakativ: 10rem;
    }
}



/* --------------------------------------------- */
/**
 * CSS-Reset
 */
/* Browser, halt dich da raus */
:focus {
	outline: none;
}
::-moz-focus-inner {
	border: 0;
}
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
  color: #bbb;
  opacity: 1; /* Firefox */
}


/* Bei allen Elementen */
* {
    margin: 0;
    padding: 0;
    color: var(--farbe-schwarz-opak);
    background-color: transparent;
	font-family: "Barlow", sans-serif;
    font: 1rem "Barlow", "Lucida Grande", "Lucida Sans Unicode", sans-serif;
    box-sizing: border-box;
}


/* Allgemein */
html {
    font-size: 100%; 
}
body {
	/* background-attachment: fixed; */
	background-color: var(--farbe-weiss-opak);
	overflow-x: hidden;
}
main {
	position: relative;
}


/* --------------------------------------------- */
/**
 * Owl-Carousel
 */
/* Navigation */
.owl-prev,
.owl-next {
	border: none;
	cursor: pointer;
	height: 100%;
	margin: 0;
	outline: inherit;
    position: absolute;
	top: 0%;
	width: 146px; /* Weil im JS nur px angegeben werden können */
	z-index: 2;
}
.owl-prev {
	left: 0;
}
.owl-next {
	right: 0;
}
.owl-prev:hover,
.owl-next:hover {
	background-color: rgba(95,95,95,0.4);
}
/* Icon */
.owl-prev i, 
.owl-next i {
    color: var(--farbe-weiss-opak);
	font-size: 1.75rem;
	transition: all 0.3s;
}

/* Position der Punkte */
.owl-dots {
	align-items: center;
	display: flex;
	height: 4rem;
	justify-content: center;
	z-index: 1;
}
.breite-voll.carousel-1 .owl-dots {
	bottom: var(--gap);
	position: absolute;
	width: 100%;	
}
/* Punkt */
.owl-theme .owl-dot span,
.owl-theme .owl-dot.active span,
.owl-theme .owl-dot.active span:hover {
	background-color: transparent;
	border: 0.175rem solid black;
	border-radius: 50%;
	height: 0.35rem;
	margin: 0.5rem;
	transition: all 0.3s;
	width: 0.35rem;
}
/* Punkt aktiv */
.owl-theme .owl-dot span:hover,
.owl-theme .owl-dot.active span,
.owl-theme .owl-dot.active span:hover {
	background-color: transparent;
	height: 1rem;
	transition: all 0.3s;
	width: 1rem;
}
/* Punkt weiss */
.breite-voll.carousel-1.owl-theme .owl-dot span,
.breite-voll.carousel-1.owl-theme .owl-dot.active span,
.breite-voll.carousel-1.owl-theme .owl-dot.active span:hover {
	background-color: transparent;
	border: 0.175rem solid white;
}



/* --------------------------------------------- */
/**
 * TwentyTwenty-Bildslider
 */
.twentytwenty-container > article {
	background-color: transparent;
}
.twentytwenty-container > article:nth-child(2) {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}




/* --------------------------------------------- */
/**
 * Headings
 */
h1, h2, p {
	padding: 0rem;
}
h1, h2, h3, h4 {
	font-weight: 700;
}
h1, .haupttitel {
	font-size: var(--schriftgroesse-h1);
	margin-top: var(--gap);
	margin-bottom: var(--gap);
}
h2, .haupttitel {
	font-size: var(--schriftgroesse-h2);
	margin-bottom: calc( var(--gap) * 0.5 );
}
h3 {
	font-size: var(--schriftgroesse-h3);
	text-transform: uppercase;
	margin-bottom: calc( var(--gap) * 2 );
}
/* Nach jedem h3 eine Linie einfügen */
/*
h3::before {
	content: ' ';
	display: block;
	border-bottom: 2px solid var(--farbe-weiss-opak);
	position: relative;
	bottom: calc( 0rem - ( var(--gap) * 2 ) );
	left: calc( 0rem - var(--gap) );
	max-width: 25%;
	min-width: 6rem;
}
*/
h4 {
	font-size: var(--schriftgroesse-h4);
}
p, a, ul, li {
	line-height: 1.5rem;
}
p {
	font-size: var(--schriftgroesse-p);
}
a {
	text-decoration: none;
}


/* --------------------------------------------- */
/**
 * Tabelle
 */
/* Allgemein */
table {
	border-collapse: collapse;
	position: relative;
	table-layout: fixed;
	width: 100%;
	z-index: 110;
}
tr {
	align-items: center;
	border-bottom: 0.1rem solid var(--farbe-dunkelgrau-transparent);
	display: flex;
	flex-direction: row;
	padding-bottom: 0.5rem;
	padding-top: 0.5rem;
}
th {
	color: var(--farbe-mittelgrau-transparent);
	display: none;
}
th, td {
	align-items: flex-start;
	display: flex;
	flex-basis: 1;
	flex-grow: 2;
	padding-left: 1rem;
	text-align: left;
	width: 100%;
}
/* Vorschaubild */
.spalte-bild {
	display: flex;
	flex-grow: initial;
	overflow: hidden;
	padding-left: 0;
	position: relative;
}
.spalte-bild.klein {
	max-width: 2rem;
	min-width: 2rem;
	width: 2rem;
}
.spalte-bild.mittel {
	max-width: 7rem;
	min-width: 7rem;
	width: 7rem;
}
.eintrag-bild.klein {
	height: 2rem;
}
.eintrag-bild.mittel {
	height: 7rem;
}
.eintrag-titel {
	font-size: 1.25rem;
	font-weight: bold;
}
.eintrag-aktionen {
	display: flex;
	grid-gap: 0.5rem;
	width: 8rem;
	max-width: 8rem;
}
/* Aktionen */
.eintrag-aktionen .button,
.eintrag-aktionen button {
	flex-grow: 1;
	width: 100%;
	justify-content: center;
}

/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
	/* Tabelle */
	.eintrag-aktionen {
		min-width: 25rem;
	}
}
/* Ab Tablets Querformat oder breiter (960px<) */
@media screen and ( min-width: 60rem ) {
	/* Auf normale Tabelle umbauen */
	.eintrag-aktionen {
		min-width: 25rem;		
	}
}






/* --------------------------------------------- */
/**
 * Formular
 */
form {
	position: relative;
	display: grid;
	z-index: 100;
	background-color: var(--farbe-hellgrau-transparent);
	border-radius: 0.5rem;
	overflow: hidden;
}
form fieldset {
	border: none;
}
form fieldset li {
	list-style-type: none;
}
label {
	padding: calc( var(--gap) / 2 ) 0rem;
}
.form-inhalt {
	display: grid;
	grid-gap: var(--gap);
    border: none;
	padding: var(--randabstand);
	box-shadow: var(--schatten-03);
}
.form-inhalt h2 {
	color: var(--farbe-mittelgrau-transparent);
}
.form-aktionen {
	display: flex;
	flex-direction: row;
	grid-gap: calc( var(--gap) / 2 );
	justify-content: center;
	padding: var(--gap);
}

/* Formular-Elemente */
label {
	text-align: left;
}
input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid #aaa;
    -webkit-appearance: none;
    -moz-appearance: none;
    -o-appearance:none;
    appearance: none;
    display: inline-block;
    margin: 0 0.5rem 0 0;
    vertical-align: -20%;
    border-radius: 50%;
}
input[type="checkbox"]:checked {
    background-color: var(--farbe-mittelgrau-transparent);
}
select {
}
textarea {
	resize: vertical;
	min-height: 8rem;
}
.formularabschnitt textarea {
	min-height: 10.25rem;
}
.inputfile {
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	overflow: hidden;
	opacity: 0;
	z-index: 10;
	position: absolute;
	cursor: pointer;
}
input[type="number"],
input[type="text"],
input[type="plz"],
input[type="email"],
input[type="date"],
select,
textarea, 
article a.button,
article button {
	padding: calc( 0.75rem * 0.5 ) calc( 0.75rem * 0.75 ) calc( ( 0.75rem * 0.5 ) + 0.1rem ) calc( 0.75rem * 0.75 );
}
input[type="number"],
input[type="text"],
input[type="plz"],
input[type="email"],
input[type="date"],
input[type="checkbox"],
select,
textarea,
.inputcontainer {
	background-color: var(--farbe-weiss-opak);
	border: 2px solid transparent; /* Damit sich beim :focus nichts verschiebt */
}
input[type="number"]:hover,
input[type="text"]:hover,
input[type="plz"]:hover,
input[type="email"]:hover,
input[type="date"]:hover,
input[type="checkbox"]:hover,
select:hover,
textarea:hover,
.inputcontainer:hover,
input[type="number"]:focus,
input[type="text"]:focus,
input[type="plz"]:focus,
input[type="email"]:focus,
input[type="date"]:focus,
input[type="checkbox"]:focus,
select:focus,
textarea:focus,
.inputcontainer:focus {
	border: 2px solid var(--farbe-mittelgrau-transparent);
}
input[type="radio"]:hover+figure,
input[type="radio"]:checked+figure {
	border: 3.5px solid var(--farbe-mittelgrau-transparent);
}  
article a.button,
article button {
	display: flex;
    background-color: var(--farbe-schwarz-transparent);
    color: var(--farbe-weiss-opak);
	min-width: 100px;
	max-width: auto;
	width: max-content;
	font-size: var(--schriftgroesse-p);
	cursor: pointer;
	border: none;
	min-height: 2.15rem;
	justify-content: center;
	align-items: center;
}
.text-inner a.button,
.text-inner button {
	margin-top: var(--gap);
	margin-bottom: var(--gap);
	display: inline-block;
}
article a.button:hover,
article button:hover {
	background-color: var(--farbe-mittelgrau-transparent);
}

/* Medien-Upload */
.inputcontainer.bild {
	width: 10rem;
	height: 10rem;
	object-fit: cover;
	position: relative;
}
.inputcontainer.bild img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 5;
}

/* Bild auswählen */
.bild-radiobutton {
	display: none;
}
.bild-option {
	position: relative;
	height: 100%;
	cursor: pointer;
	border: 3.5px solid var(--farbe-weiss-opak);
}

.bild-option::before {
    display: block;
    content: '';
    padding-top: 100%;
}
.bild-option img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Icons auswählen */
.icon-option {
	position: relative;
	cursor: pointer;
	border: 3.5px solid var(--farbe-weiss-opak);
	padding: calc( var(--gap) * 0.5 );
	background-color: var(--farbe-weiss-opak);
	align-items: center;
	justify-content: center;
	display: flex;
	height: 4rem;
}
.icon-option span {
	font-size: 2rem;
}

/* Position-Slider */
.slider {
	-webkit-appearance: none;
	width: 100%;
	height: calc( 1rem + 2px + 2px );
	outline: none;
	background-color: var(--farbe-weiss-opak);
	/* overflow: inherit; */
	border-radius: 1rem;
	margin-top: 0.5rem;
}
.slider::-webkit-slider-thumb,
.slider::-moz-range-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 1rem;
	height: 1rem;
	cursor: pointer;
	border-radius: 50%;
	background-color: var(--farbe-schwarz-transparent);
	border: none;
}
.slider:hover::-webkit-slider-thumb,
.slider:hover::-moz-range-thumb {
	background-color: var(--farbe-mittelgrau-transparent);
}

/* Button */
.button {
	padding: 0.4rem 0.8rem 0.5rem 0.8rem;
	display: flex;
	align-items: center;
	justify-content: center;
	/* min-width: 8rem; */
	border-radius: 0.25rem;
	min-height: 2rem;
	border: none;
	cursor: pointer;
	background-color: var(--farbe-weiss-opak);
	box-shadow: var(--schatten-01);
	transition: var(--transition-01);
}
.button:hover {
	box-shadow: var(--schatten-02);
	z-index: 2;
	transition: var(--transition-01);
}
.button span[class^='icon-'], 
.button span[class*=' icon-'] {
	margin-right: calc( var(--gap) * 0.5 );
}

/* Mach einfach runde Ecken drauf */
.eintrag-bild,
.formbox,
.formular,
.inputcontainer,
article .button,
article button,
input, 
select,
textarea,
.icon-option,
.bild-option,
.hauptmenu-element a {
	border-radius: var(--border-radius-01);
	overflow: hidden;
}
article .button,
article button {
	box-shadow: var(--schatten-02);
}
input,
select,
textarea,
.inputcontainer {
	box-shadow: var(--schatten-01);
}


/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
	label {
		text-align: right;
	}
	.formularabschnitt {
		justify-content: flex-start;
		align-items: flex-start;
		
	}
	.formularabschnitt.hinweis {
		padding: var(--gap);
		border-radius: 0.5rem;
	}
	.plz-ort {
		display: grid;
		grid-template-columns: 4fr 1fr 10fr;
		grid-column-end: span 3;
		grid-gap: var(--gap);
	}
}



/* --------------------------------------------- */
/**
 * Navigation
 */
/* DRY */
.header,
.header-inner,
.hauptmenu-element,
.logo-hamburger {
	height: var(--balkenhoehe);
}

/* Main */
.inhaltsbereich.navigation-offen {
	height: calc( 100vh - var(--balkenhoehe) );
	overflow: hidden;
}

/* Header-Balken */
.header {
	box-shadow: var(--schatten-03);
	left: 0;
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 1000;
}
.header,
.header-inner {
	background-color: var(--farbe-weiss-transparent);
	display: grid;
	grid-template-columns: 1fr;
	justify-content: space-between;
}

/* Logo-Hamburger-Bereich */
.logo-hamburger,
.hauptnavigation {
	padding: 0 var(--randabstand);
}
.logo-hamburger {
	align-items: center; /* Vertikal auf Mitte ausrichten */
	display: grid;
	grid-template-columns: auto auto;
	justify-content: space-between;
	z-index: 13;
}

/* Logo */
.logo-bild {
	height: 1.6rem;
	object-fit: contain;
	position: relative;
	width: auto;
}

/* Hamburger */
.hamburger {
    display: block;
    height: 1.5rem;
    position: relative;
	width: 1.5rem;
}
.balken {
    background-color: var(--farbe-schwarz-opak);
    display: block;
    height: 0.25rem;
    left: 50%;
    position: absolute;
    top: 50%;
    transition: 0.25s;
    transform: translate( -50%, -0.375rem ); /* Um die Hälfte des Balkens nach links schieben, etwas mehr nach oben */
	width: 100%;
}
.unterer-balken {
    transform: translate( -50%, 0.375rem );
}
.navigation-offen .oberer-balken {
    transform: translate( -50%, -50% ) rotate( 45deg );
}
.navigation-offen .unterer-balken {
    transform: translate( -50%, -50% ) rotate( -45deg );
}

/* Hauptmenu */
.hauptnavigation {
	background-color: var(--farbe-weiss-transparent);
	height: calc( 100vh - var(--balkenhoehe) );
	opacity: 0;
	overflow-y: scroll;
	visibility: hidden;
}
.hauptmenu-element {
	align-items: center;
	border-bottom: 0.1rem solid var(--farbe-dunkelgrau-transparent);
	display: flex;
	list-style-type: none;
}
.hauptmenu-element a {
	display: flex;
	padding: var(--gap) 0;
	width: 100%;
}
.trennlinie {
	border-bottom: 1px solid var(--farbe-weiss-opak);
	color: transparent;
	display: list-item;
	height: 0px;
	list-style-type: none;
	margin: 0rem calc( 0.75rem * 0.25 );
}

/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
	
	/* Auf horizontale Navigation umbauen */
	.header, 
	.hauptnavigation {
		overflow: hidden;
	}
	.header {
		background-color: var(--farbe-weiss-opak);
	}
	.admin.header {
		background-color: var(--farbe-schwarz-transparent);
	}
	.header-inner {
		background-color: transparent;
		display: flex;
		flex-direction: row;
		padding: 0 var(--randabstand);
	}
	.logo-hamburger {
		padding: 0;
	}
    .hamburger {
        display: none;
    }
    .hauptnavigation {
		background-color: transparent;
		height: inherit;
		margin-right: -0.8rem;
        opacity: 1;
		padding: 0;
        visibility: visible;
    }
	.hauptnavigation li {
		border-bottom: none;
	}
    .hauptmenu {
		align-items: center;
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-end;
    }
	.hauptmenu-element a:hover {
		background-color: var(--farbe-hellgrau-transparent);
	}
	.hauptmenu-element a {
		min-height: 2rem;
		padding: 0.4rem 0.8rem 0.5rem 0.8rem;
	}
	.trennlinie {
		border-bottom: none;
		border-right: 1px solid var(--farbe-mittelgrau-transparent);
		height: 2rem;
		padding: calc( var(--gap) * 0.5 ) 0rem;
	}
	
}

/* --------------------------------------------- */
/**
 * Layout
 */
/* Inhaltsbreite */
.breite-voll {
	width: 100%;
}
.breite-weit,
.breite-begrenzt {
    margin: 0 auto; /* links/rechts auto zentriert das Element horizontal */
    width: calc(100%);
}


/* Abschnitte/Artikel */
section,
section div,
article {
	border-radius: 0.5rem;
}
section {
	padding-bottom: var(--abschnittabstand);
}

/* Raster/Columns */
[class^='col-'], 
[class*=' col-'] {
	display: grid;
	grid-gap: var(--gap);
}

/* Seitenverhältnis */
.mit-medien[class^='verhaeltnis-'], 
.mit-medien[class*=' verhaeltnis-'] {
	overflow: hidden;
	position: relative;
}
.mit-medien[class^='verhaeltnis-']::before, 
.mit-medien[class*=' verhaeltnis-']::before {
	content: ' ';
	display: block;
	height: 100%;
	left: 0;
	position: relative;
	top: 0;
	width: 100%;
}

/* Ausdehnen */
[class^='ausdehnen-'], 
[class*=' ausdehnen-'] {
	overflow: hidden;
	position: relative;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
}


/* Bis Smartphones Querformat oder breiter (<600px) */
@media screen and ( max-width: 35.5rem ) {
	
	/* Raster/Columns */
	.col-1,
	.col-1-1,
	.col-2-1-1,
	.col-1-1-1,
	.col-1-1-1-1,
	.col-1-2,
	.col-1-3 {
		grid-template-columns: 1fr;
	}
	.col-1-1-1-1-1,
	.col-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.col-1-1-1-1-1-1-1-1,
	.col-1-1-1-1-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
	
	/* Verhältnis */
	.mit-medien.verhaeltnis-4-1::before,
	.mit-medien.verhaeltnis-3-1::before,
	.mit-medien.verhaeltnis-2-1::before,
	.mit-medien.verhaeltnis-1-1::before,
	.mit-medien.verhaeltnis-3-2::before,
	.mit-medien.verhaeltnis-16-9::before,
	.mit-medien.verhaeltnis-4-3::before,
	.mit-medien.verhaeltnis-3-4::before,
	.mit-medien.verhaeltnis-9-16::before,
	.mit-medien.verhaeltnis-1-2::before,
	.mit-medien.verhaeltnis-1-3::before {
		padding-top: 75%;
	}
	.mit-medien.verhaeltnis-25vh::before,
	.mit-medien.verhaeltnis-50vh::before,
	.mit-medien.verhaeltnis-75vh::before,
	.mit-medien.verhaeltnis-100vh::before {
		padding-top: calc( 100vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
}
/* Ab Smartphones Querformat oder breiter (600px<) */
@media screen and ( min-width: 35.5rem ) {
	.breite-begrenzt {
		width: calc(100% - var(--randabstand) * 2);
	}
	
	/* Raster/Columns */
	.col-1 {
		grid-template-columns: 1fr;
	}
	.col-1-1,
	.col-2-1-1,
	.col-1-1-1 {
		grid-template-columns: 1fr 1fr;
	}
	.col-1-1-1-1,
	.col-1-1-1-1-1,
	.col-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.col-1-1-1-1-1-1-1-1,
	.col-1-1-1-1-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
	.col-1-2,
	.col-1-3 {
		grid-template-columns: 1fr 2fr;
	}
	
	/* Verhältnis */
	.mit-medien.verhaeltnis-4-1::before,
	.mit-medien.verhaeltnis-3-1::before,
	.mit-medien.verhaeltnis-2-1::before {
		padding-top: 50%;
	}
	.mit-medien.verhaeltnis-1-1::before,
	.mit-medien.verhaeltnis-3-2::before,
	.mit-medien.verhaeltnis-16-9::before,
	.mit-medien.verhaeltnis-4-3::before,
	.mit-medien.verhaeltnis-3-4::before,
	.mit-medien.verhaeltnis-9-16::before,
	.mit-medien.verhaeltnis-1-2::before,
	.mit-medien.verhaeltnis-1-3::before {
		padding-top: 100%;
	}
	.mit-medien.verhaeltnis-25vh::before,
	.mit-medien.verhaeltnis-50vh::before,
	.mit-medien.verhaeltnis-75vh::before,
	.mit-medien.verhaeltnis-100vh::before {
		padding-top: calc( 100vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
}
/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
	
	/* Raster/Columns */
	.col-1 {
		grid-template-columns: 1fr;
	}
	.col-1-1 {
		grid-template-columns: 1fr 1fr;
	}
	.col-1-1-1,
	.col-1-1-1-1,
	.col-1-1-1-1-1,
	.col-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.col-1-1-1-1-1-1-1-1,
	.col-1-1-1-1-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	}
	.col-2-1-1 {
		grid-template-columns: 2fr 1fr 1fr;
	}
	.col-1-2 {
		grid-template-columns: 1fr 2fr;
	}
	.col-1-3 {
		grid-template-columns: 1fr 3fr;
	}
	
	/* Ausdehnen */
	.ausdehnen-4-4 {
		grid-column-end: span 3;
		grid-row-end: span 3;
	}
	.ausdehnen-4-3 {
		grid-column-end: span 3;
		grid-row-end: span 2;
	}
	.ausdehnen-4-2 {
		grid-column-end: span 3;
		grid-row-end: span 2;
	}
	.ausdehnen-4-1 {
		grid-column-end: span 3;
		grid-row-end: span auto;
	}
	.ausdehnen-3-4 {
		grid-column-end: span 3;
		grid-row-end: span 3;
	}
	.ausdehnen-3-3 {
		grid-column-end: span 3;
		grid-row-end: span 3;
	}
	.ausdehnen-3-2 {
		grid-column-end: span 3;
		grid-row-end: span 2;
	}
	.ausdehnen-3-1 {
		grid-column-end: span 3;
		grid-row-end: span auto;
	}
	.ausdehnen-2-4 {
		grid-column-end: span 1;
		grid-row-end: span 2;
	}
	.ausdehnen-2-3 {
		grid-column-end: span 1;
		grid-row-end: span 2;
	}
	.ausdehnen-2-2 {
		grid-column-end: span 2;
		grid-row-end: span 2;
	}
	.ausdehnen-2-1 {
		grid-column-end: span 1;
		grid-row-end: span auto;
	}
	.ausdehnen-1-4 {
		grid-column-end: span auto;
		grid-row-end: span 2;
	}
	.ausdehnen-1-3 {
		grid-column-end: span auto;
		grid-row-end: span 2;
	}
	.ausdehnen-1-2 {
		grid-column-end: span auto;
		grid-row-end: span 2;
	}
	.ausdehnen-1-1 {
		grid-column-end: span 1;
		grid-row-end: span 1;
	}
	
	/* Verhältnis */
	.mit-medien.verhaeltnis-4-1::before,
	.mit-medien.verhaeltnis-3-1::before,
	.mit-medien.verhaeltnis-2-1::before {
		padding-top: 50%;
	}
	.mit-medien.verhaeltnis-1-1::before,
	.mit-medien.verhaeltnis-3-2::before,
	.mit-medien.verhaeltnis-16-9::before,
	.mit-medien.verhaeltnis-4-3::before {
		padding-top: 100%;
	}
	.mit-medien.verhaeltnis-3-4::before,
	.mit-medien.verhaeltnis-9-16::before {
		padding-top: 150%;
	}
	.mit-medien.verhaeltnis-1-2::before,
	.mit-medien.verhaeltnis-1-3::before {
		padding-top: 250%;
	}
	.mit-medien.verhaeltnis-25vh::before,
	.mit-medien.verhaeltnis-50vh::before {
		padding-top: calc( 50vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
	.mit-medien.verhaeltnis-75vh::before,
	.mit-medien.verhaeltnis-100vh::before {
		padding-top: calc( 100vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
}
/* Ab Tablets Querformat oder breiter (960px<) */
@media screen and ( min-width: 60rem ) {
	
	/* Raster/Columns */
	.col-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.col-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
	.col-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	}
	.col-1-1-1-1-1-1 {
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	}
	
	/* Ausdehnen */
	.ausdehnen-4-4 {
		grid-column-end: span 4;
		grid-row-end: span 4;
	}
	.ausdehnen-4-3 {
		grid-column-end: span 4;
		grid-row-end: span 3;
	}
	.ausdehnen-4-2 {
		grid-column-end: span 4;
		grid-row-end: span 2;
	}
	.ausdehnen-4-1 {
		grid-column-end: span 4;
		grid-row-end: span auto;
	}
	.ausdehnen-3-4 {
		grid-column-end: span 3;
		grid-row-end: span 3;
	}
	.ausdehnen-2-4 {
		grid-column-end: span 2;
		grid-row-end: span 4;
	}
	.ausdehnen-2-3 {
		grid-column-end: span 2;
		grid-row-end: span 3;
	}
	.ausdehnen-2-1 {
		grid-column-end: span 2;
		grid-row-end: span auto;
	}
	.ausdehnen-1-4 {
		grid-column-end: span auto;
		grid-row-end: span 4;
	}
	.ausdehnen-1-3 {
		grid-column-end: span auto;
		grid-row-end: span 3;
	}
	.ausdehnen-1-2 {
		grid-column-end: span auto;
		grid-row-end: span 2;
	}
	.ausdehnen-1-1 {
		grid-column-end: span 1;
		grid-row-end: span 1;
	}
	
	/* Verhältnis */
	.mit-medien.verhaeltnis-1-1::before {
		padding-top: 100%;
	}
	.mit-medien.verhaeltnis-4-1::before {
		padding-top: 25%;
	}
	.mit-medien.verhaeltnis-3-1::before {
		padding-top: 33.333%;
	}
	.mit-medien.verhaeltnis-2-1::before {
		padding-top: 50%;
	}
	.mit-medien.verhaeltnis-3-2::before {
		padding-top: 66.666666666%;
	}
	.mit-medien.verhaeltnis-16-9::before {
		padding-top: 56.25%;
	}
	.mit-medien.verhaeltnis-4-3::before {
		padding-top: 75%;
	}
	.mit-medien.verhaeltnis-3-4::before {
		padding-top: 133.333%;
	}
	.mit-medien.verhaeltnis-9-16::before {
		padding-top: 177.777%;
	}
	.mit-medien.verhaeltnis-1-2::before {
		padding-top: 200%;
	}
	.mit-medien.verhaeltnis-1-3::before {
		padding-top: 300%;
	}
	.mit-medien.verhaeltnis-25vh::before {
		padding-top: calc( 50vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
	.mit-medien.verhaeltnis-50vh::before {
		padding-top: calc( 50vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
	.mit-medien.verhaeltnis-75vh::before {
		padding-top: calc( 75vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
	.mit-medien.verhaeltnis-100vh::before {
		padding-top: calc( 100vh - var(--balkenhoehe) - ( var(--gap) * 2 ) );
	}
	
}

/* Ab Laptop oder kleiner Desktop (1200px<) */
@media screen and ( min-width: 75rem ) {
	/* Die Content-Breite fixieren */
	.header-inner,
	.breite-begrenzt {
        width: calc(75rem - ( var( --randabstand ) * 2 ) );
		margin-left: auto;
		margin-right: auto;
    }

}
/* Ab Grossem Desktop oder TV (1936<) */
@media screen and ( min-width: 121rem ) {
	/* Die Erweiterte Breite fixieren */
	.breite-erweitert {
        width: calc(121rem - ( var( --randabstand ) * 2 ) );
		margin-left: auto;
		margin-right: auto;
    }
}


/* --------------------------------------------- */
/**
 * Textinhalt
 */
article {
	padding: var(--gap); /* in erster Linie für Text */
	position: relative;
	overflow: hidden;
	z-index: 10;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Icon/Piktogramm */
article [class^='icon-'], 
article [class*=' icon-'] {
	display: block;
	font-size: 3rem;
	margin-bottom: calc( var(--gap) * 0.5 );
	margin-right: calc( var(--gap) * 0.5 );
}
.textinhalt {
	border-radius: 0.25rem;	left: 0;
	height: 100%;
	overflow: hidden;
	padding: var(--randabstand);
	top: 0;
	width: 100%;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
.textinhalt p {
	max-width: 25rem;
}

/* Inhaltsabhängige Textdarstellung */
.mit-beschrieb.ohne-medien {
	background-color: var(--farbe-hellgrau-transparent);
	position: relative;
}
.mit-beschrieb.mit-medien .textinhalt {
	justify-content: end;
	position: absolute;
}
.mit-spitzmarke.mit-medien h2,
.mit-spitzmarke.mit-medien p,
.mit-titel.mit-medien h2,
.mit-titel.mit-medien p,
.mit-beschrieb.mit-medien h2,
.mit-beschrieb.mit-medien p {
	color: var(--farbe-weiss-opak);
}
.breite-voll.carousel-1 .mit-spitzmarke.mit-medien .textinhalt,
.breite-voll.carousel-1 .mit-titel.mit-medien  .textinhalt,
.breite-voll.carousel-1 .mit-beschrieb.mit-medien  .textinhalt,
.breite-voll.col-1 .mit-spitzmarke.mit-medien .textinhalt,
.breite-voll.col-1 .mit-titel.mit-medien  .textinhalt,
.breite-voll.col-1 .mit-beschrieb.mit-medien  .textinhalt {
	justify-content: center;
	align-items: center;
	padding-bottom: var(--abschnittsabstand);
}
.breite-voll.carousel-1 .mit-spitzmarke.mit-medien h2,
.breite-voll.carousel-1 .mit-titel.mit-medien h2,
.breite-voll.carousel-1 .mit-beschrieb.mit-medien h2,
.breite-voll.col-1 .mit-spitzmarke.mit-medien h2,
.breite-voll.col-1 .mit-titel.mit-medien h2,
.breite-voll.col-1 .mit-beschrieb.mit-medien h2 {
	font-size: var(--schriftgroesse-plakativ);
}
.breite-voll.carousel-1 .mit-spitzmarke.mit-medien p,
.breite-voll.carousel-1 .mit-titel.mit-medien p,
.breite-voll.carousel-1 .mit-beschrieb.mit-medien p,
.breite-voll.col-1 .mit-spitzmarke.mit-medien p,
.breite-voll.col-1 .mit-titel.mit-medien p,
.breite-voll.col-1 .mit-beschrieb.mit-medien p {
	font-size: var(--schriftgroesse-h2);
}
.mit-titel.ohne-beschrieb.mit-medien h2 {
	background-color: var(--farbe-weiss-opak);
	border-radius: var(--border-radius-01);
	color: var(--farbe-schwarz-opak);
	margin-bottom: 0.2rem;
	padding: calc( var(--gap) * 0.5 );
	width: max-content;
}
.mit-titel.ohne-beschrieb.ohne-medien h3,
.mit-titel.ohne-beschrieb.ohne-medien h2 {
	background-color: var(--farbe-schwarz-opak);
	border-radius: var(--border-radius-01);
	color: var(--farbe-weiss-opak);
	margin-bottom: 0.2rem;
	padding: calc( var(--gap) * 0.5 );
	width: max-content;
}



/* --------------------------------------------- */
/**
 * Medien/Bild/Video
 */
	
/* Medien */
img,
picture,
video {		
	height: 100%;
	left: 0;
	object-fit: cover;
	/* object-position: 50% 50%; */
	position: absolute;
	top: 0;
	width: 100%;
}
a picture,
a video {
	transition: var(--transition-01);
}
a:hover picture,
a:hover video {
	transition: var(--transition-02);
	/* transform: scale(1.05); */
}



/* --------------------------------------------- */
/**
 * Fussbereich
 */
footer li {
	list-style-type: none;
}
footer .formularbereich {
	background-color: var(--farbe-hellgrau-transparent);
}
footer .fussbereich {
	background-color: var(--farbe-schwarz-opak);
	padding-top: var(--balkenhoehe);
}
footer .fussbereich a,
footer .fussbereich p,
footer .fussbereich address {
	color: var(--farbe-weiss-opak);
}
footer .fussbereich [class^="icon-"], 
footer .fussbereich [class*=" icon-"] {
	color: white;
	font-size: 1.5rem;
	line-height: 2.5rem;
}



/* --------------------------------------------- */
/**
 * Admin
 */
.admin .header-inner,
.admin .hauptnavigation.sichtbar {
	background-color: var(--farbe-schwarz-transparent);
}
.admin.header a {
	color: var(--farbe-weiss-opak);
}
.admin .balken {
	background-color: var(--farbe-weiss-opak);
}
.admin .hauptmenu a:hover {
	background-color: var(--farbe-mittelgrau-transparent);
	color: var(--farbe-weiss-opak);
}
.admin tbody tr.zeile-aktionen {
	border-bottom: none;
}



/* --------------------------------------------- */
/**
 * Streuklassen
 */
.ausblenden,
.anzeigen-tablet-hoch,
.anzeigen-tablet-quer {
	display: none;
}
.sichtbar {
    opacity: 1;
    visibility: visible;
}
.linie-oben {
	border-top: 2px solid var(--farbe-schwarz-opak);
}
.zentriert {
	display: grid;
	justify-content: center;
}
/*
.abstand-danach {
	margin-bottom: var(--gap);
}
*/
/* Ab Tablets Hochformat oder breiter (720px<) */
@media screen and ( min-width: 45rem ) {
	.anzeigen-tablet-hoch {
		display: inherit;
	}
}
/* Ab Tablets Querformat oder breiter (960px<) */
@media screen and ( min-width: 60rem ) {
	.anzeigen-tablet-quer {
		display: inherit;
	}
}
