/* Schriften */
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: local(''), url('/shared/font/open-sans-v18-latin-300.woff2') format('woff2'), url('/shared/font/open-sans-v18-latin-300.woff') format('woff');
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local(''), url('/shared/font/open-sans-v18-latin-regular.woff2') format('woff2'), url('/shared/font/open-sans-v18-latin-regular.woff') format('woff');
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: local(''), url('/shared/font/open-sans-v18-latin-600.woff2') format('woff2'), url('/shared/font/open-sans-v18-latin-600.woff') format('woff');
}
@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: local(''), url('/shared/font/open-sans-v18-latin-700.woff2') format('woff2'), url('/shared/font/open-sans-v18-latin-700.woff') format('woff');
}

/* Allgemein */
:root {
	--color-blue: #006cb3;
	--color-darkgrey: #3a3a3a;
	--color-midgrey: #6f6f6f;
	--color-lightgrey: #dedede;
}
body {
	color: var(--color-midgrey);
	font-family: 'Open Sans', var(--bs-font-sans-serif);
	font-size: .875rem;
}
::selection {
	background: var(--color-blue);
	color: #fff;
}
.text-muted {
	color: var(--color-midgrey) !important;
}
.border-bottom {
	border-color: var(--color-lightgrey) !important;
}
a {
	color: var(--color-blue);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .2s, border .2s;
}
a:hover, a:focus, a:active {
	color: var(--color-blue);
	border-color: var(--color-blue);
}
.text-white {
	var(--color-lightgrey);
}
.lead {
	font-weight: inherit;
	font-size: 1.125rem;
}
h1, h2, h3 {
	font-weight: 700;
	color: var(--color-blue);
}
h1 {
	margin-bottom: 1.5rem;
	padding-top: 3rem;
	font-size: 2rem;
}
h2 {
	font-size: 1.75rem;
}
h3 {
	font-size: 1.337rem;
}
h2 + h3 {
	padding-top: 2rem;
}
h6 {
	line-height: 1.5;
	font-size: .875rem;
}
p + h3, ul + h3 {
	padding-top: .5rem;
}
hr {
	background-color: var(--color-lightgrey);
	opacity: 1;
}
#noscript {
	background: var(--color-blue);
	padding: 1rem 2rem;
	left: 0;
	bottom: 0;
	z-index: 1103;
}
.white-popup {
	max-width: 1080px;
}
.white-popup > button {
	width: calc(1rem + 2vw);
	top: calc(.25rem + .5vw);
}

/* Ladekreis */
#loader {
	height: 100vh;
	position: fixed;
	z-index: 1101;
	left: 0;
	top: 0;
	display: flex;
}
.no-js #loader {
	display: none;
}
#loader::after {
	border: .5rem solid #fff;
	border-top: .5rem solid var(--color-blue);
	border-radius: 50%;
	width: 4rem;
	height: 4rem;
	animation: spin 1s infinite;
	display: block;
	content: "";
	z-index: 1102;
}
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Buttons */
.btn:focus {
	box-shadow: none !important;
}
.btn svg {
	transition: transform .2s;
	transform: translateY(-.075rem) translateX(-.25rem);
}
.btn:hover svg, .btn:focus svg, .btn:active svg {
	transform: translateY(-.075rem) translateX(0);
}
.btn-primary {
	background: var(--color-blue);
	border-color: var(--color-blue);
	font-size: .875rem;
	font-weight: 700;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
	background: var(--color-blue);
	border-color: var(--color-blue);
}

/* Navigation */
#menu img {
	width: 150px;
}
#menu button {
	box-shadow: none;
}
#menu a {
	color: var(--color-midgrey);
}
#menu a:hover, #menu a:focus, #menu a:active, #menu a.active {
	color: var(--color-blue) !important;
}
#menu li {
	text-align: center;
}
#menu .main-nav a {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-midgrey);
}
#menu .main-nav .dropdown-menu {
	border-color: transparent;
	top: 150%;
	min-width: 15rem;
}
#menu .main-nav .dropdown-item {
	font-size: .875rem;
	background: none;
	font-weight: 400;
}
#menu .main-nav .dropdown-toggle::after {
	margin-left: 0;
	border-width: .25rem;
}
#menu a.tele {
	color: #fff !important;
	top: 0;
	right: 0;
	background: var(--color-blue);
	font-size: .75rem;
}

/* Inhalte */
h1.text-white {
	background: var(--color-blue);
}
main a {
	border-bottom: 1px solid var(--color-blue);
}
main a:hover, main a:focus, main a:active {
	border-color: transparent;
}
.stellenangebote svg, .filter svg {
	transform: translateY(-1px);
}
.form-select:hover, .form-check-input:hover {
	cursor: pointer;
}
.form-control, .form-select, .form-check-input {
	border-color: var(--color-lightgrey);
	transition: border .2s;
	font-size: .875rem;
}
.form-control:hover, .form-select:hover {
	border-color: var(--color-midgrey);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
	box-shadow: none;
	border-color: var(--color-blue);
}
.form-check-input:checked {
	background: var(--color-midgrey);
	border-color: var(--color-midgrey);
	box-shadow: none;
}

.floating-button {
  position: fixed;
  top: 178px;
  right: 6px;
  font-size: 1.3rem;
  background-color: var(--color-blue);
  color: #ffffff;
  border: none;
  cursor: pointer;
  text-align: center;
  line-height: 60px;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.3s, box-shadow 0.3s;
}

/* Footer */
footer {
	background: var(--color-darkgrey);
	margin-top: 6rem;
}
footer h3 {
	color: #fff;
}
#copyright {
	background: var(--color-lightgrey);
}
#copyright a.active {
	border-color: var(--color-blue);
}

/* Media Queries */
@media (min-width: 576px) {
	#menu img {
		width: 200px;
	}
}
@media (min-width: 992px) {
	h1 {
		font-size: 3rem;
	}
	h2 {
		font-size: 2rem;
	}
	main figure.float-lg-start {
		max-width: calc(50% - 30px);
		margin: .25rem 30px 2rem 0;
	}
	main figure.float-lg-end {
		max-width: calc(50% - 30px);
		margin: .25rem 0 2rem 30px;
	}
	main figure.float-lg-start + figure.float-lg-end {
		margin-left: 0;
	}
	main .clear {
		clear: both;
	}
	.mt-n4 {
		margin-top: -4rem;
	}
}
@media (min-width: 1200px) {
	#menu img {
		width: 300px;
	}
	#menu a {
		line-height: 1;
		padding: 0;
	}
	#menu li {
		text-align: left;
	}
	#menu .meta-nav li:last-child svg {
		transform: translateY(-.375rem);
	}
	#menu .meta-nav li:not(:last-child) {
		margin-right: 1rem;
	}
	#menu .main-nav li:not(:last-child) {
		margin-right: 1.5rem;
	}
	#menu .main-nav .dropdown-menu {
		border-color: var(--color-lightgrey);
	}
	#menu .main-nav .dropdown-item {
		line-height: 2;
	}
	#menu a.tele {
		top: .5rem;
		font-size: .875rem;
		border-radius: .25rem;
	}
	#menu a.tele svg {
		width: 14px;
		height: 14px;
	}
}
@media print {
	#menu {
		position: static !important;
	}
}

/* Hamburger-Icon */
.hamburger {
	padding: 35px 0 0 15px;
	display: inline-block;
	cursor: pointer;
	transition-property: opacity, filter;
	transition-duration: 0.15s;
	transition-timing-function: linear;
	font: inherit;
	color: inherit;
	text-transform: none;
	background-color: transparent;
	border: 0;
	margin: 0;
	overflow: visible; }
.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
	background-color: var(--color-darkgrey); }
.hamburger-box {
	width: 40px;
	height: 24px;
	display: inline-block;
	position: relative; }
.hamburger-inner {
	display: block;
	top: 50%;
	margin-top: -2px; }
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
	width: 40px;
	height: 4px;
	background-color: #000;
	border-radius: 4px;
	position: absolute;
	transition-property: transform;
	transition-duration: 0.15s;
	transition-timing-function: ease; }
.hamburger-inner::before, .hamburger-inner::after {
	content: "";
	display: block; }
.hamburger-inner::before {
	top: -10px; }
.hamburger-inner::after {
	bottom: -10px; }
.hamburger--spin .hamburger-inner {
	transition-duration: 0.22s;
	transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
.hamburger--spin .hamburger-inner::before {
	transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
.hamburger--spin .hamburger-inner::after {
	transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }
.hamburger--spin.is-active .hamburger-inner {
	transform: rotate(225deg);
	transition-delay: 0.12s;
	transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
.hamburger--spin.is-active .hamburger-inner::before {
	top: 0;
	opacity: 0;
	transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
.hamburger--spin.is-active .hamburger-inner::after {
	bottom: 0;
	transform: rotate(-90deg);
	transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }