
/* ----------------------------------------------------------------
	Basic
-----------------------------------------------------------------*/

* {
	margin: 0;
	padding:0;
	border: 0;
}

@-webkit-viewport{width:device-width}
@-moz-viewport{width:device-width}
@-ms-viewport{width:device-width}
@-o-viewport{width:device-width}
@viewport{width:device-width}

html 
{
	font-size:1.0rem;
	direction:ltr;
	overflow-x:hidden;
}

body 
{
	position:relative;
	padding-top:0px;
	background:#FFFFFF;
	color:#333333;
	font-family: 'Open Sans', sans-serif;
	font-size:1.1rem;
	font-weight:300;
	line-height:1.6rem;
	-webkit-font-smoothing:antialiased;
}


/* ----------------------------------------------------------------
	main layout
-----------------------------------------------------------------*/

#header.position-fixed 
{
	position: fixed;
	top: 0px;
	right: 0;
	left: 0;
	z-index: 1030;
	height: 96px;
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
	background-color: #FFFFFF;
	color: #333333;
	border-bottom:1px solid #96B70E;
}

#header > .container,
#header > .container > .header-row
{
	position:relative;
}

#main-content
{
	padding: 0;
	margin-top: 96px;
}

#main-content > .container
{
	overflow-x:hidden;
}

#inhalt
{
	padding: 3rem 3rem 2rem 0;
}

#aside
{
	padding: 3rem 0 2rem 0;
}

#footer
{
	border-top: 1px solid #96B70E;
	background-color: #F1F6F0;
	font-size:1.0rem;
	/* max-width: 1920px; */
	margin: 0 auto;
}

#footer > .container
{
	padding: 1.5rem 0 0.5rem 0;
}

#footer > .container > .row > .mob-order-1
{
	text-align: left;
}

#footer > .container > .row > .mob-order-2
{
	text-align: right;
}

#footer a,
#footer a.link-footer
{
	display:inline-block;
	color:#333333;
	text-decoration:none;
	margin: 0 1rem;
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
}

#footer a:hover,
#footer a.link-footer:hover
{
	color:#000000;
	text-decoration:none;
}


@media (min-width: 1200px) {

	#main
	{
		min-height: calc(100vh - 155px);
		max-width: 1920px;
		margin: 0 auto;
	}

	#footer a.link-footer
	{
		position: relative;
		margin: 0 0.5rem;
		padding: 0 0.5rem;
	}

	#footer a.link-footer,
	#footer a.link-footer:after,
	#footer a.link-footer:before
	{
		-webkit-transition: all .5s;
		transition: all .5s;
	}

	#footer a.link-footer:after
	{
		position: absolute;
		bottom: -5px;
		left: 0;
		right: 0;
		margin: auto;
		width: 0%;
		content: '.';
		color: transparent;
		background: #96B70E;
		height: 4px;
	}

	#footer a.link-footer:hover:after 
	{
		width: 90%;
	}

}

@media (max-width: 767.98px) {

	#inhalt 
	{
		padding: 3rem 0 2rem 0;
	}

}

@media (max-width: 575.98px) {

	#inhalt
	{
		padding: 2rem 1rem 1rem 1rem;
	}
	
	#aside
	{
		padding: 1rem 1rem 2rem 1rem;
	}

	#footer > .container
	{
		padding: 1.5rem 1rem 0.5rem 1rem;
	}

}

@media (max-width: 529.98px) {

	#header.position-fixed 
	{
		height: 86px;
	}

	#main-content
	{
		margin-top: 86px;
	}

}



/* ----------------------------------------------------------------
	logo header
-----------------------------------------------------------------*/

a#logo.navbar-brand, 
a#logo.navbar-brand > img
{
	padding:0;
	text-decoration: none;
	outline: none;
	box-shadow: none;
	border: none;
}

a#logo.navbar-brand
{
	position: fixed;
	top:8px;
	z-index: 1039;
}

@media (max-width: 529.98px) {

	a#logo.navbar-brand, 
	a#logo.navbar-brand > img
	{
		margin:0;
	}

	a#logo.navbar-brand > img
	{
		width:220px;
		height:auto;
	}

}

@media (max-width: 369.98px) {

	a#logo.navbar-brand > img
	{
		width:170px;
		height:auto;
	}

}



/* ----------------------------------------------------------------
	telefon header
-----------------------------------------------------------------*/

a#phone-link.tel
{
	position:absolute;
	top:10px;
	right:10px;
	padding:0;
	text-decoration: none;
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
}

a#phone-link.tel > span
{
	display: flex;
	font-size:1.4rem;
	font-weight:700;
	color: #454545;
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
}

a#phone-link.tel > span:before
{
	display:inline-block;
	background-image:url('../images/phone.png');
	background-repeat:no-repeat;
	background-position:center;
	content:'';
	width:25px;
	height:32px;
	margin-right: 10px;
}

a#phone-link.tel:hover > span
{
	color: #000000;
}


@media (max-width: 529.98px) {

	a#phone-link.tel
	{
		top:18px;
		right:100px;
		background-image:url('../images/phone.png');
		background-repeat:no-repeat;
		background-position:center;
		padding: .25rem .5rem;
		font-size: 1.25rem;
		border-radius: 0px;
		border:1px solid #96B70E;
		display:block;
		width:48px;
		height:40px;
		text-indent:-9999px;
		overflow:hidden;
	}

	a#phone-link.tel > span:before
	{
		display:none;
	}

}

@media (max-width: 479.98px) {

	a#phone-link.tel
	{
		right:90px;
	}

}

@media (max-width: 399.98px) {

	a#phone-link.tel
	{
		right:65px;
	}

}




/* ----------------------------------------------------------------
	main navigation
-----------------------------------------------------------------*/

#main-nav
{
	width:100%;
}

#mainnav 
{
	position: relative;
	top: 0px;
	right: -12px;
	width: 100%;
	margin-top: 0px;
}

#mainnav > ul.level_1
{
	position: absolute;
	top:86px;
	right:0;
	display: block;
	width: 280px;
	padding: 0;
	margin: 0;
	border-left: 1px solid #96B70E;
	list-style: none;
	background-color:#FFFFFF;
}

#mainnav > ul.level_1 > li
{
	position: relative;
	margin: 0;
	padding: 0;
	white-space: nowrap;
	list-style: none;
	background-color: transparent;
	border-bottom: 1px solid #96B70E;
}

#mainnav > ul.level_1 > li > a, 
#mainnav > ul.level_1 > li > .active
{
	display: block;
	margin: 0.5rem 0.5rem;
	padding: 0.25rem 0.5rem;
	font-size:1.3rem;
	font-weight:300;
	color: #333333;
	text-transform: uppercase;
	text-decoration: none;
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
	border:0;
}
#mainnav > ul.level_1 > li > a:hover
{
	color: #000000;
	text-decoration: none;
}
#mainnav > ul.level_1 > li > .active
{
	font-weight:700;
	color: #96B70E;
}



#header .navbar-toggler
{
	background-color: #FFFFFF;
	color: #96B70E;
	position: absolute;
	padding: .25rem .5rem;
	font-size: 1.25rem;
	top: 45px;
	right: 10px;
	border-radius:0px;
	border-color: #96B70E;
}

#header .navbar-toggler-icon 
{
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(150,183,14, 1.0)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

@media (min-width: 1200px) {

	#mainnav 
	{
		position: relative;
		margin-top: 22px;
		right:0px;
	}

	#mainnav > ul.level_1
	{
		position: relative;
		display: flex;
		-ms-flex-direction: row;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-end !important;
		width: 100% !important;
		max-width: unset;
		top:12px;
		margin: 0;
		padding: 0;
		border:0;
		background-color: transparent;
	}

	#mainnav > ul.level_1 > li
	{
		border: 0;
	}

	#mainnav > ul.level_1 > li > a, 
	#mainnav > ul.level_1 > li > .active
	{
		position: relative;
		margin: 0 0.5rem;
		padding: 0 0.5rem;
	}

	#mainnav > ul.level_1 > li > a,
	#mainnav > ul.level_1 > li > a:after,
	#mainnav > ul.level_1 > li > a:before,
	#mainnav > ul.level_1 > li > .active,
	#mainnav > ul.level_1 > li > .active:after,
	#mainnav > ul.level_1 > li > .active:before 
	{
		-webkit-transition: all .5s;
		transition: all .5s;
	}

	#mainnav > ul.level_1 > li > a:after
	{
		position: absolute;
		bottom: -5px;
		left: 0;
		right: 0;
		margin: auto;
		width: 0%;
		content: '.';
		color: transparent;
		background: #96B70E;
		height: 4px;
	}

	#mainnav > ul.level_1 > li > a:hover:after 
	{
		width: 98%;
	}

}

@media (max-width: 529.98px) {

	#mainnav > ul.level_1
	{
		top:76px;
	}

	#header .navbar-toggler
	{
		top:18px;
		right:10px;
	}

}

@media (max-width: 399.98px) {

	#header .navbar-toggler
	{
		right:0px;
	}

}



/* ----------------------------------------------------------------
	top header image
-----------------------------------------------------------------*/

#top > .container-fluid
{
	padding: 0;
}

#top .content-image
{
	position:relative;
	overflow:hidden;
	margin: 0 auto;
}

#top .content-image figure
{
	position:relative;
	overflow:hidden;
	margin-bottom: 0;
}


#top .content-image figure img
{
	width: auto;
	max-width: none;
	height: 250px;
	margin: 0 auto 0 -90px;
}

@media (min-width: 480px) {

	#top .content-image figure img
	{
		width: auto;
		max-width: none;
		height: 340px;
		margin: 0 auto;
	}

}

@media (min-width: 992px) {

	#top .content-image figure img
	{
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 380px;
		margin: 0 auto;
	}

}





/*


#top .content-image figure img
{
	width: auto;
	max-width: none;
	height: 320px;
	margin: 0 auto;
}


@media (min-width: 576px) {

	#top .content-image figure img
	{
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 280px;
		margin: 0 auto;
	}

}

@media (min-width: 800px) {

	#top .content-image figure img
	{
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 320px;
		margin: 0 auto;
	}

}
*/




/* ----------------------------------------------------------------
	content elements
-----------------------------------------------------------------*/

#aside #box-content.content-text
{
	margin-bottom:2rem;
}

#aside #box-content.content-text > h1, 
#aside #box-content.content-text > h2, 
#aside #box-content.content-text > h3, 
#aside #box-content.content-text > h4,

#aside #sprechstunden.content-table > h1, 
#aside #sprechstunden.content-table > h2, 
#aside #sprechstunden.content-table > h3, 
#aside #sprechstunden.content-table > h4
{
	border-bottom: 4px solid #96B70E;
	margin-bottom: 0.5rem;
}

#aside #sprechstunden.content-table > table
{
	width: 100%;
	vertical-align: top;
	border:0;
}

#aside #sprechstunden.content-table > table > :not(caption) > * > *, 
#aside #sprechstunden.content-table table tbody tr
{
	border-bottom: none !important;
}

#aside #sprechstunden.content-table > table > :not(caption) > * > * 
{
	color: #333333;
	padding: 0.5rem 0.5rem;
	border-bottom: none;
}

#aside #sprechstunden.content-table > table > tbody > tr:nth-of-type(odd) > * 
{
	background-color: #F1F6F0;
}


.box-aktuelles
{
	display:block;
	padding: 1.5rem  1.5rem  0.5rem 1.5rem;
	margin-bottom: 1rem;
	margin-top: 1rem;
	border-left: 6px solid #96B70E;
	background-color: #F1F6F0;
	color: #333333 !important;
}


#inhalt .content-image figure
{
	margin-bottom: 1rem;
}

#inhalt .content-image figure img,
figure img
{
	max-width: 100%;
	height: auto;
	min-height: auto;
	margin: 0 auto;
}


@media (min-width: 992px) {

	#inhalt .mod_article.block .col-md-6.content-text
	{
		flex: 0 0 auto;
		width: 50%;
	}

}




/* ----------------------------------------------------------------
	typography
-----------------------------------------------------------------*/

h1, h2, h3, h4, h5, h6 
{
	font-family: 'Open Sans', sans-serif;
	/* color: #96B70E; */
	color: #333333;
	font-weight: 300;
	line-height: 1.5;
	margin: 0 0 1rem 0;
}

h1 
{
	color: #333333;
	font-size: 2.25rem;
}

h2 
{
	color: #333333;
	font-size: 1.625rem;
}

h3 
{
	font-size: 1.4rem;
}

h4 
{
	font-size: 1.25rem; 
}

h5 
{
	font-size: 1.1rem;
}

h6 
{
	font-size: 0.875;
}



@media (max-width: 767.98px) {

	h1 
	{
		font-size: 1.75rem;
	}

	h2 
	{
		font-size: 1.5rem;
	}

	h3 
	{
		font-size: 1.25rem;
	}

	h4 
	{
		font-size: 1rem;
	}

}


p,
pre,
ul,
ol,
dl,
dd,
blockquote,
address,
table,
fieldset,
form 
{
	margin-bottom: 1.0rem;
}

small 
{
	font-family: 'Open Sans', sans-serif;
}

ul.list, 
ul.checklist 
{
	background-image:none;
	list-style-type:none;
	margin: 0px 0px 0px 0px;
	padding: 0px 0px 5px 30px;
}

ul.list li, 
ul.checklist li 
{
	list-style-type:none;
	padding:0px 0px 0px 0px;
	margin: 0px 0px 4px 0px;
	text-align:left;
}

ul.list li:before 
{
	content: "■";
	padding-right: 20px;
	color: #96B70E;
	margin-left: -30px;
}

ul.list > li > ul,
ul.checklist > li > ul 
{
	margin-left: 20px;
}


a img 
{
	border: none;
}

img 
{ 
	max-width: 100%;
}

#inhalt .rte p a
{
	color: #333333;
	text-decoration:none;
	border-bottom:2px solid #96B70E;
}


/* ----------------------------------------------------------------
	mobile column order
-----------------------------------------------------------------*/

@media (max-width: 991.98px) {

	.mobile-order-1 
	{
		-ms-flex-order: 1;
		order: 1;
	}

	.mobile-order-2 
	{
		-ms-flex-order: 2;
		order: 2;
	}

	.mobile-order-3 
	{
		-ms-flex-order: 3;
		order: 3;
	}

	.mobile-order-4 
	{
		-ms-flex-order: 4;
		order: 4;
	}

}



/* ----------------------------------------------------------------
	image gallery
-----------------------------------------------------------------*/


.content-gallery.content-gallery--cols-2 ul
{
	display: flex;
	flex-wrap: wrap;
	list-style-type:none;
	margin: 0 -0.65rem;
	padding-left: 0;
}
.content-gallery.content-gallery--cols-2 ul > * 
{
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--bs-gutter-x) * 0.5);
  padding-left: calc(var(--bs-gutter-x) * 0.5);
	margin-top: var(--bs-gutter-y);
}

.content-gallery.content-gallery--cols-2 ul > li
{
	flex: 0 0 auto;
	width: 50%;
}

.content-gallery.content-gallery--cols-3 ul > li
{	
	flex: 0 0 auto;
	width: 33.33333333%;
}

.content-gallery.content-gallery--cols-2 ul li figure img
{
	max-width: 100%;
	height: auto;
}


@media (max-width: 575.98px) {

	.content-gallery.content-gallery--cols-2 ul > li,
	.content-gallery.content-gallery--cols-3 ul > li
	{	
		flex: 0 0 auto;
		width: 100%;
	}

}