@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital@1&display=swap');

* {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}

blockquote, input, textarea, button, select, ul, ol, li, h1, h2, h3, a, p, q {
	background-color: transparent;
	color: inherit;
	margin: 0;
	outline: none;
	padding: 0;
	text-decoration: none;
}

:root {
	--font-family: 'Ubuntu', sans-serif;
	--font-family--quote: 'Playfair Display', serif;
	--font-size: max(calc(1rem + 0.125vw), 19px);
	--font-size--h1: calc( var(--font-size) * 2 );
	--font-size--h2: calc( var(--font-size) * 1.75 );
	--font-size--h3: calc( var(--font-size) * 1.5 );
	--font-size--lead: calc( var(--font-size) * 1.2 );
	--font-size--quote: calc( var(--font-size) * 2 );
	--font-size--footer: calc( var(--font-size) * 0.9 );
	--font-line-height: calc( var(--font-size) * 1.4 );
	--content-width: max(1100px, 45vw);
	--padding--vertical: 25px;
	--padding--horizontal: 25px;
	--gap--layout: 50px;
	--gap--gallery: 10px;
	--color-href: var(--color-brown-dark);
	--color-href--hover: var(--color-orange);
	--color-submenu: #b3a196;
	--color-red: #9c5361;
	--color-brown-dark: #381c0f;
	--color-brown-clear: #e4deda;
	--color-orange: #eba14b;
	--color-blue: #377882;
	--color-silver: silver;
}


html, body {
	font-family: var(--font-family);
	font-size: var(--font-size);
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
	width: 100%;
}

body {
	display: flex;
	flex-direction: column;
	font-weight: 300;
	overflow-anchor: none;
	min-height: 100vh;
	height: 100%;
	align-items: start;
}

a {
	cursor: pointer;
}

img {
	display: block;
	max-width: 100%;
	max-height: 100%;
}

picture {
	display: block;
}

strong {
	font-weight: 600;
}

p {
	line-height: var(--font-line-height);
}

.color-red {
	color: var(--color-red);
}

.align-center {
	align-items: center;
	justify-items: center;
	display: flex;
	flex-direction: column;
	width: 100%;
}

q::before, q::after {
	content: '';
}

/* --- Header --- */

.header--image {
	align-items: end;
	background-attachment: fixed;
	background-image: url('/src/img/header.webp');
	background-position: bottom left;
	background-repeat: no-repeat;
	background-size: cover;
	border-bottom: 10px solid var(--color-brown-dark);
	display: flex;
	height: 100vh;
	justify-content: center;
	padding-bottom: var(--padding--vertical);
	width: 100%;
}

.header--image img {
	position: absolute;
	width: max(3vw, 60px);
}

.header--bar {
	align-items: center;
	background-color: var(--color-brown-dark);
	display: flex;
	flex-direction: column;
	justify-items: center;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 200;
}

.header--logo {
	align-items: center;
	display: flex;
	justify-content: center;
	padding-top: var(--padding--horizontal);
	width: 100%;
}

.header--logo img {
	width: max(30vw, 500px);
}

/* --- Menu --- */

.menu--wrapper {
	width: 100%;
}

.menu--main {
	align-items: center;
	background-color: var(--color-brown-dark);
	color: white;
	display: flex;
	font-weight: 500;
	flex-direction: row;
	gap: var(--gap--layout);
	justify-content: space-between;
	padding: var(--padding--vertical) var(--padding--horizontal);
	transition: all 0.5s;
	width: 100%;
}

.menu--main li:hover,
.menu--main li.selected {
	color: var(--color-orange);
}

.menu--main img {
	opacity: 0;
	height: max(2.5vw, 40px);
	transition: all 0.5s;
	cursor: pointer;
}

.menu--icon-bars {
	width: max(2.5vw, 40px);
}

.menu--logo-mobile {
	display: none;
}

.menu--fixed {
	position: fixed;
	top: 0;
}

.menu--sticky {
	position: sticky;
	top: 0;
}

.menu--fixed img,
.menu--sticky img {
	opacity: 1;
}

.menu--sub {
	background-color: var(--color-submenu);
	color: white;
	font-weight: 500;
	place-items: center;
	place-content: center;
	display: flex;
	padding: var(--padding--vertical) var(--padding--horizontal);
	width: 100%;
}

.menu--sub li:hover,
.menu--sub li.selected {
	color: var(--color-brown-dark);
}

nav ul {
	display: flex;
	flex-direction: row;
	align-content: center;
	gap: calc( var(--gap--layout) / 2 );
	list-style: none;
}

/* --- Menu Overlay --- */

	/* - - - M E N U  O V E R L A Y - - - */

.freeze-scroll {
	/* .freeze-scroll ist notwendig, damit der Scroll-Effekt auf dem Inhalt blockiert wird, sobald das Overlay Menu offen ist.
	Diese Class wird via jQuery auf den body-Tag vergeben und wieder entfernt. */
	overflow: hidden;
}

.menu-overlay {
	background-color:	var(--color-brown-dark);
	color: white;
	display: none;
	height: 100%;
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 600;
	overflow-y: scroll;
}

.menu-overlay--inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	width: 100%;
}

.menu-overlay--header {
	align-items: center;
	color: white;
	display: flex;
	font-weight: 500;
	flex-direction: row;
	gap: var(--gap--layout);
	justify-content: space-between;
	padding: var(--padding--horizontal) var(--padding--vertical);
	transition: all 0.5s;
	width: 100%;
}

.menu-overlay--logo {
	cursor: pointer;
	display: flex;
	justify-content: left;
	height: max(2.5vw, 40px);
}

.menu-overlay--icon-close {
	display: flex;
	justify-content: right;
	cursor: pointer;
	width: max(2.5vw, 40px);
}

.menu-overlay--content {
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	flex-grow: 1;
	flex-shrink: 0;
	margin: 0 auto;
	max-width: var(--content-width);
	padding: 0px 20px;
}

.menu-overlay--content-inner {
	column-count: 2;
	column-gap: 200px;
	padding: 50px 0;
	width: 100%;
}

.menu-overlay--main {
	margin-bottom: 50px;
	break-inside: avoid-column;
}

.menu-overlay--main:last-child {
	margin-bottom: 0px;
}

.menu-overlay--maintitle {
	font-size: var(--font-size--h2);
	font-weight: 800;
	margin-bottom: 15px;
}

.menu-overlay--subtitle {
	font-size: 	var(--font-size--h3);
	margin-bottom: 15px;
}

.menu-overlay--footer {
	place-items: end;
	display: grid;
	grid-gap: 20px;
	grid-template-columns: auto 1fr;
	flex-shrink: 0;
	padding: 20px;
	width: 100%;
}

.menu-overlay--copyright {
	font-size: calc( var(--font-size) * 0.8 );
}

.menu-overlay--links {
	display: flex;
	flex-direction: row;
	font-weight: 500;
	grid-gap: 40px;
	justify-content: right;
}

/* --- Content --- */

.content--wrapper {
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	min-height: 1000px;
	width: 100%;
	padding: calc(var(--padding--vertical)*3) var(--padding--horizontal) 0 var(--padding--horizontal);
}

.content--main {
	align-self: stretch;
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	gap: var(--gap--layout);
	margin: 0 auto;
	padding-bottom: calc(var(--padding--vertical)*3);
	width: 100%;
	max-width: var(--content-width);
}

.content--disturber {
	align-self: flex-end;
	bottom: 0;
	display: flex;
	gap: calc( var(--gap--layout)/2 );
	justify-content: right;
	padding: calc(var(--padding--vertical)/2) 0; /* identisch zu .content--disturber span */
	position: sticky;
	width: 100%;
}

.content--disturber span {
	color: white;	
	padding: calc(var(--padding--vertical)/2) var(--padding--horizontal); /* identisch zu .content--disturber */
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}

.disturber--red {
	background-color: var(--color-red);
}

.disturber--orange {
	background-color: var(--color-orange);
}

/* --- News --- */

.news--grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap--gallery);
}

.news--element {
	background-color: var(--color-brown-clear);
	height: 100%;
}

.news--content {
	padding: var(--padding--horizontal);
	display: flex;
	flex-direction: column;
	gap: calc( var(--gap--layout) / 2 );
}

.news--date {
	font-size: calc( var(--font-size) * 0.9 );
	font-weight: 500;
}

.news--title {
	font-size: calc( var(--font-size) * 1.1 );
	font-weight: 500;
	line-height: var(--font-line-height);
}

.news--text {
	line-height: var(--font-line-height);
}

/* --- Offers --- */

.offers--grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap--gallery);
}

.offers--title {
	background-color: var(--color-brown-clear);
	padding: var(--padding--horizontal);
	font-weight: 500;
	overflow-wrap: break-word;
	hyphens: auto;
}

/* --- Agenda --- */

.agenda--tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.agenda--tag {
	border: 1px solid var(--color-brown-dark);
	color: var(--color-brown-dark);
	padding: 5px 10px;
}

.agenda--tag:hover,
.agenda--tag-selected {
	background-color: var(--color-brown-dark);
	color: white;
	cursor: pointer;
}

.agenda {
	border-top: 1px solid var(--color-brown-clear);
}

.agenda--grid {
	border-bottom: 1px solid var(--color-brown-clear);
	display: grid;
	grid-template-columns: 1fr 3fr;
	padding: var(--padding--vertical) 0;
	width: 100%;
}

.agenda--right {
	display: flex;
	flex-direction: column;
	gap: calc( var(--gap--layout) / 2 );
}

.agenda--date {
	padding-top: 10px;
	font-size: calc( var(--font-size) * 2 );
	line-height: calc( var(--font-size) * 2 );
	font-weight: 500;
}

.agenda--title {
	font-size: calc( var(--font-size) * 1.1 );
	font-weight: 500;
}

.agenda--text {
	line-height: var(--font-line-height);
}

/* --- Footer --- */

.footer {
	background-color: var(--color-blue);
	color: white;
	flex-shrink: 0;
	font-size: var(--font-size--footer);
	line-height: calc( var(--font-size--footer) * 1.4 );
	width: 100%;
	min-height: 200px;
	padding: 0 var(--padding--horizontal);
}

.footer--grid {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--padding--vertical);
	margin: 0 auto;
	max-width: var(--content-width);
	padding: calc( var(--padding--vertical) * 2 ) 0;
}

.footer--right {
	display: flex;
	flex-direction: column;
}

.footer--support {
	display: flex;
	flex-direction: column;
	text-align: right;
	flex: 1;
}

.footer--links {
	align-items: flex-end;
	justify-content: right;
	display: flex;
	padding-top: var(--padding--vertical);
	gap: calc( var(--padding--horizontal) / 1.5 );
}

/* --- Responsive --- */

@media screen and (orientation:portrait) {

}

@media (pointer: coarse) {

	.header--image { background-attachment: unset; }

}

@media only screen and (max-width: 1225px) {

	:root {
		--gap--layout: 25px;
	}

	.header--bar {
		position: fixed;
	}

	.header--logo {
		display: none;
	}

	.menu--main nav {
		display: none;
	}

	.menu--main img {
		opacity: 1;
	}

	.menu--sub {
		display: none;
	}

	.menu--logo-small {
		display: none;
	}
	
	.menu--logo-mobile {
		display: block;
	}

	.header--image + .content--wrapper {
		padding: calc(var(--padding--vertical)*3) var(--padding--horizontal) 0 var(--padding--horizontal);	
	}

	.content--wrapper {
		padding: calc(var(--padding--vertical)*6) var(--padding--horizontal) 0 var(--padding--horizontal);
	}

}

@media only screen and (max-width: 900px) {

	.menu-overlay--content-inner {
		text-align: center;
		column-count: 1;
	}

	.menu-overlay--footer {
		grid-template-columns: 1fr;
		place-items: center;
	}

	.menu-overlay--links {
		display: none;
	}

	.news--grid,
	.offers--grid {
		grid-template-columns: 1fr 1fr;
	}

	.cms-grid-1-1,
	.cms-grid-1-2,
	.cms-grid-2-1,
	.cms-grid-1-1-1 {
		grid-template-columns: 1fr;
	}

}

@media only screen and (max-width: 750px) {

	:root {
		--padding--horizontal: 20px;
	}

	.news--grid,
	.offers--grid,
	.footer--grid,
	.form-grid-1-1,
	.form-grid-1-2,
	.form-grid-2-1 {
		grid-template-columns: 1fr;
	}

	.footer--support,
	.footer--links {
		justify-content: left;
		text-align: left;
	}

}

@media only screen and (max-width: 467px) {

	.content--disturber {
		display: none;
	}

}