@charset "UTF-8";
.card-img-top {
	height: auto;
}
a {
	color: var(--first-color);
	&:hover {
		color: var(--first-color--hover);
	}
}
.btn {
	&.btn-primary {
		border-color: var(--first-color);
		background-color: var(--first-color);
		&:hover {
			border-color: var(--first-color--hover);
			background-color: var(--first-color--hover);
		}
	}
	&.btn-outline-primary {
		color: var(--first-color);
		border-color: var(--first-color);
		&:hover {
			border-color: var(--first-color--hover);
			background-color: var(--first-color--hover);
			color: #FFF;
		}
	}
	&.btn-secondary {
		border-color: var(--second-color);
		background-color: var(--second-color);
		&:hover {
			border-color: var(--second-color--hover);
			background-color: var(--second-color--hover);
		}
	}
	&.btn-outline-secondary {
		color: var(--second-color);
		border-color: var(--second-color);
		&:hover {
			border-color: var(--second-color--hover);
			background-color: var(--second-color--hover);
			color: #FFF;
		}
	}
}

/* Site Config */
* {
  box-sizing: border-box;
}

html {
	height: 100%;
}

body {
	height: 100%;
	display: flex;
	flex-direction: column;
	font-weight: var(--body-font-weight);
	font-size: var(--body-font-size);
}
::selection {
	background: var(--first-color);
	color: var(--brightest);
}
h1, .h1 {
	font-size: var(--h1-font-size);
	font-weight: var(--h-font-weight);
}
h2, .h2 {
	font-size: var(--h2-font-size);
	font-weight: var(--h-font-weight);
}
h3, .h3 {
	font-size: var(--h3-font-size);
	font-weight: var(--h-font-weight);
}
h4, .h4 {
	font-size: var(--h4-font-size);
	font-weight: var(--h-font-weight);
}
h5, .h5 {
	font-size: var(--h5-font-size);
	font-weight: var(--h-font-weight);
}
h6, .h6 {
	font-size: var(--h6-font-size);
	font-weight: var(--h-font-weight);
}
main {
	& ul {
		list-style: none;
		padding-left: 0;
		
		& li {
			position: relative;
			padding-left: 25px;
			
			&:before {
				content: "\f111";
				font-family: 'Font Awesome 5 Free';
				font-weight: 900;
				position: absolute;
				top: 7px;
				left: 4px;
				font-size: 8px;
			}
		}
	}
	& .rh-checklist {
		& li {
			&:before {
				content: "\f00c";
				font-size: 16px;
				top: 1px;
				left: 0;
			}
		}
	}
}
/* delete this afterwards */
.extbase-debugger {
  overflow: visible;
}
/* grids */
.row__grid--2, .ce__grid--2 {
  display: grid;
  gap: var(--grid-gap-size);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.row__grid--3, .ce__grid--3 {
  display: grid;
  gap: var(--grid-gap-size);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.row__grid--4, .ce__grid--4 {
  display: grid;
  gap: var(--grid-gap-size);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.row__grid--5, .ce__grid--5 {
  display: grid;
  gap: var(--grid-gap-size);
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.frame-type-hm-1-cols-container .inner,
.hm-col {
	> * + * {
		margin-top: var(--header-margin);
	}
	& .row__grid-border-container-content {
		> * + * {
			margin-top: var(--header-margin);
		}
	}
	& .container {
		padding: 0;
	}
}
@media (max-width: 991px) {
  .row__grid--5, .ce__grid--5 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .row__grid--4, .ce__grid--4 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .row__grid--5, .ce__grid--5 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .row__grid--4, .ce__grid--4 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .row__grid--3, .ce__grid--3 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .row__grid--2, .ce__grid--2 {
	grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

/* Navigation */
.nav-link {
	color: var(--first-color);
}
.nav-link:focus, .nav-link:hover {
	color: var(--first-color--hover);
}
.nav-pills .nav-link.active, 
.nav-pills .show>.nav-link {
	background-color: var(--first-color);
}
nav {
	&.navbar {
		/* Navlinks full height #NFH */
		/* padding: 0; */
	}
	@media (max-width: 991px) {
		&.navbar.navbar-expand-lg {
			padding: 10px 0;
		}
	}
}
.navbar__logo-link {
	text-decoration: none;
	color: var(--font-color);
	display: flex;
	align-items: center;
	padding-left: 15px;
}
.navbar__logo {
	width: auto;
	height: 20px;;
}
.navbar__logotext {
	font-size: 1.5rem;
	margin-left: 10px;;
}
#mainnav {
	justify-content: end;

	@media (max-width: 991px) {
		& ul.nav {
			padding-top: 25px;
			flex-direction: column;

			& li {
				+ li {
					border-top: 1px solid #00000022;
				}
			}
		}
	}
}
.nav-item {
	position: relative;
}
.nav-link {
	& i {
		transition: transform .4s ease;
	}
	&[aria-expanded="true"] {
		i {
			transform: rotate(180deg);
		}
	}
}
.navbar__dropdown:not(.navbar__megamenu) {
	& .nav-link {
		border-radius: 0px;
	}
}
.dropdown-menu[data-bs-popper] {
	/* Navlinks full height #NFH */
	/* margin-top: 0px; */
	margin-top: var(--bs-navbar-padding-y);
}
.hamburger {
	padding: 0;
	padding-top: 3px;
	scale: .75;
}
.navbar-toggler {
	padding: 6px 8px;
	border-color: transparent;
	
	&:focus {
		box-shadow: none;
	}
}
/* min widths */
@media (min-width: 992px) {
	.navbar__dropdown {
		border-top-right-radius: 0;
		border-top-left-radius: 0;
		
		& .navbar__dropdown {
			position: static;
			& a {
				padding-left: 30px;
			}
		}
	}
}
/* max-widths */
@media (max-width: 991px) {
	.navbar__dropdown {
		position: static;
		padding: 0 0 0 20px;
		border: none;
	}
}

/* Navigation end */
/* Randlastige Elemente Start */
.frame-layout-220,
.frame-layout-221 {
	/* 1.5rem * .5 ergibt sich aus BS und ist eigentlich die locale x-gutter, kann bei bedarf und einhaltung des standard container bs paddings geändert werden */
	--container-padding: calc(1.5rem * .5 + var(--grid-gap-size)/2);
	
	& .ce-left .ce-bodytext__border-container {
		padding-right: var(--container-padding);
	}
	& .ce-right {
		& .ce-bodytext__border-container {
			padding-left: var(--container-padding);
		}
		& .ce-bodytext {
			display: flex;
			justify-content: center;
			align-items: end;
			flex-direction: column;
		}
	}
	@media (max-width: 767px) {
		& .ce-right.ce__grid--2 {
			display: flex;
			flex-direction: column-reverse;
		}
	}
}
.frame-layout-221 {
	& .ce__grid--2 {
		@media (min-width: 768px) {
			gap: 0;
		}
	}
	& .ce-left {
		& .ce-bodytext {
			@media (min-width: 768px) {
				padding-left: var(--grid-gap-size);
			}
			@media (max-width: 767px) {
				padding-top: var(--grid-gap-size);
			}
		}
	}
	& .ce-right {
		& .ce-bodytext {
			@media (min-width: 768px) {
				padding-right: var(--grid-gap-size);
			}
			@media (max-width: 767px) {
				padding-top: var(--grid-gap-size);
			}
		}
	}
}
.frame-layout-460,
.frame-layout-462 {
	/* 1.5rem * .5 ergibt sich aus BS und ist eigentlich die locale x-gutter, kann bei bedarf und einhaltung des standard container bs paddings geändert werden */
	--container-padding: calc(1.5rem * .5 + var(--grid-gap-size)/2);
	
	& .row__grid-border-container {
		padding-left: var(--container-padding);
	}
	& .hm-col:first-child {
		display: flex;
		justify-content: end;
	}
	@media (max-width: 767px) {
		& .row__grid--2 {
			display: flex;
			flex-direction: column-reverse;
		}
	}
}
.frame-layout-461,
.frame-layout-463 {
	/* 1.5rem * .5 ergibt sich aus BS und ist eigentlich die locale x-gutter, kann bei bedarf und einhaltung des standard container bs paddings geändert werden */
	--container-padding: calc(1.5rem * .5 + var(--grid-gap-size)/2);
	
	& .row__grid-border-container {
		padding-right: var(--container-padding);
	}
}
.frame-layout-462,
.frame-layout-463 {
	& .row__grid--2 {
		@media (min-width: 768px) {
			gap: 0;
		}
	}
}
.frame-layout-462 {
	& .ce-bodytext {
		@media (min-width: 768px) {
			padding-right: var(--grid-gap-size);
		}
	}
}
.frame-layout-463 {
	& .ce-bodytext {
		@media (min-width: 768px) {
			padding-left: var(--grid-gap-size);
		}
	}
}

@media (max-width: 767px) {
	.frame-layout-220,
	.frame-layout-221,
	.frame-layout-460,
	.frame-layout-461,
	.frame-layout-462,
	.frame-layout-463 {
		&.frame-space-before-m0 {
			margin-top: var(--margin) !important;
		}
		&.frame-space-after-m0 {
			margin-bottom: var(--margin) !important;
		}
	}
}
.row__grid-border-container, 
.ce-bodytext__border-container {
	width: 100%;
	height: 100%;
	
	@media (min-width: 576px) {
		/* hier realen bs wert verwenden da wir hier 1 spaltig sind  */
		max-width: 540px;
	}
	@media (min-width: 768px) {
		max-width: 360px;
	}
	@media (min-width: 992px) {
		max-width: 480px;
	}
	@media (min-width: 1200px) {
		max-width: 570px;
	}
	@media (min-width: 1400px) {
		max-width: 660px;
	}
}	
@media (max-width: 767px) {
	.row__grid-border-container,
	.ce-bodytext__border-container {
		margin: 0 auto;
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
}
/* Randlastige Elemente END */
.vertical-position-1 {
	& .frame-layout-0:not(.frame-type-list) {
		display: flex;
		height: 100%;
		& .inner {
			display: flex;
			& .ce__textmedia {
				display: flex;
			}
		}
	}
	& .ce-bodytext {
		display: flex;
		justify-content: center;
		flex-direction: column;
	}
	/* Randlastige Elemente additional styles */
	&.frame-type-hm-2cols {
		& .row__grid-border-container {
			display: flex;
			justify-content: center;
			flex-direction: column;
			
			& .ce-bodytext {
				display: block;
			}
		}
	}
}
/* 3xx menus */
.frame-layout-300 {
	& ul {
		list-style: none;
		display: flex;
		justify-content: end;
		gap: 1rem;
	}
}
/* 3xx menus end */ 
/* footer */
footer {
	border-top: 1px solid var(--light-color);
	padding: 40px 0;
	margin-top: auto;
	
	&.has-breadcrumb {
		padding-top: 0px;
		
		& .breadcrumb__wrapper {
			margin-bottom: 40px;
		}
	}
	
	& a {
		text-decoration: none;
	}
	& .inner {
		display: flex;
		justify-content: space-between;
		
		@media (max-width: 767px) {
			flex-direction: column;
			gap: 10px;
		}
		
		&.container {
			align-items: center;
			
			& .container {
				padding: 0;
			}
		}
		
		> * {
			width: auto;
			margin: 0;
		}
		& .frame-layout-300 {
			@media (max-width: 767px) {
				& ul {
					padding-left: 0;
					flex-direction: column;
					gap: 0;
					
					& li + li {
						border-top: 1px solid var(--light-color);
					}
					& a {
						padding: 5px 0;
						display: block;
					}
				}
			}
		}
	}
}
.footer__cookie-btn {
	background-color: var(--first-color);
	color: var(--brightest);
	padding: 10px 15px;
	border: none;
	
	&:hover {
		background-color: var(--first-color--hover);
		color: var(--brightest);
	}
}
/* footer end */
.siteheader {
	border-bottom: 1px solid var(--light-color);
}
/* fixed header */
.body__fixed-header {
	padding-top: 56px;
	
	&.be-pagets__rh_mhcf {
		padding-top: 100px;
	}
	
	& .siteheader {
		position: fixed;
		width: 100%;
		top: 0;
		background-color: var(--brightest);
		z-index: 1000;
	}
}
html {
	scroll-padding-top: 60px;
}
/* fixed header end */
/* cards */
.card.background-color-grey {
	background-color: var(--light-color);
}
/* cards end */
.blingbutton {
	position: relative;
	overflow: hidden;
	&:after {
		content: "";
		position: absolute;
		left: -50px;
		top: -75%;
		width: 30px;
		height: 250%;
		background-color: rgba(255, 255, 255, 0.15);
		animation-duration: 3s;
		animation-name: blingbling;
		animation-iteration-count: infinite;
		animation-timing-function: ease-in-out;
		transform: rotate(45deg);
		transition: opacity 0.4s ease;
	}
}
.blingbutton:hover:after {
	animation-play-state: paused;
	opacity: 0;
}

@keyframes blingbling {
  0% {
	left: -50px;
  }
  75% {
	left: -50px;
  }
  100% {
	left: calc(200% + 50px);
  }
}
/* blingbutton end */


.nav__respo-fixed {
	@media (max-width: 991px) {
		& #mainnav {
			position: fixed;
			background-color: #FFF;
			inset: 0;
			z-index: 1000;
			top: 55px;
			overflow-y: scroll;
			padding: 0 15px;

			&.collapsing {
				height: 100% !important;
				transition: none;
			}

			& ul.nav {
				max-width: 720px;
				margin: 0 auto;
			}
		}
		& .collapsed + #mainnav.collapsing {
			height: 0 !important;
		}
	}
	@media (max-width: 767px) {
		& #mainnav ul.nav {
			max-width: 540px;
			margin: 0 auto;
		}
	}
}

/* respo fixed nav end */

/* megamenu */
.nav__megamenu {
	position: static;
	
	& .nav-item__megamenu {
		position: static;
	}
	& .navbar__megamenu {
		width: 100%;
		border-radius: 0;
		padding: var(--marginSmall) 0;
		margin-top: 0;
		border-right: none;
		border-left: none;
		
		@media(max-width: 991px) {
			padding: 0;
			padding-left: 20px;
		}
		
		/* wegen flucht wiederherstellung der BS werte da sonst .container .container padding 0 greift */
		& .container {
			padding-right: calc(var(--bs-gutter-x)* .5);
			padding-left: calc(var(--bs-gutter-x)* .5);
			
			@media(max-width: 991px) {
				padding-right: 0;
				padding-left: 0;
			}
		}
		
		& ul[data-child-amount] {
			display: grid;
			gap: var(--grid-gap-size);
			
			&[data-child-amount="1"] {
				grid-template-columns: minmax(0, 1fr);
			}
			&[data-child-amount="2"] {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}
			&[data-child-amount="3"],
			&[data-child-amount="5"],
			&[data-child-amount="6"],
			&[data-child-amount="9"]  {
				grid-template-columns: repeat(3, minmax(0, 1fr));
			}
			&[data-child-amount="4"],
			&[data-child-amount="7"],
			&[data-child-amount="8"],
			&[data-child-amount="10"] {
				grid-template-columns: repeat(4, minmax(0, 1fr));
			}
			@media(max-width: 991px) {
				grid-template-columns: minmax(0, 1fr) !important;
				gap: 0;
			}
		}
		& .nav-link {
			padding: 5px 0;
			
			@media(max-width: 991px) {
				padding: var(--bs-nav-link-padding-y) 0;
			}
			
			&.active {
				padding-left: 10px;
				padding-right: 10px;
			}
		}
	}
	& .meganav__headlinelink {
		@media(min-width: 992px) {
			&:after {
				content: "";
				height: 1px;
				background-color: var(--first-color);
				width: 50%;
				display: block;
			}
		}
	}
	& .megamenu__submenu {
		@media(max-width: 991px) {
			border-top: 1px solid var(--light-color);
			padding-left: 20px;
		}
	}
}
/* megamenu end */

.image-embed-item {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Allgemeine Abstände */
main {
	line-height: var(--main-line-height);
	
	> * {
		+ * {
			margin-top: var(--margin);
		}
		&:last-child {
			margin-bottom: var(--margin);
		}
	}
}
.hm-containers {
	& .bg-container__content-wrapper {
		> * {
			+ * {
				margin-top: var(--margin-within-container);
			}
		}
	}
}

/* Background-color */
.bg-color-grey {
  background-color: var(--light-color);
}
.bg-color-first {
	background-color: var(--first-color);
}
.bg-color-second {
	background-color: var(--second-color);
}
.bg-color-black {
	background-color: var(--darkest);
	
	* {
		color: var(--brightest);
	}
}

/* Padding Text/Media */
.wb-p-big {
  padding: var(--margin);
}

.wb-py-big {
  padding-top: var(--margin);
  padding-bottom: var(--margin);
}

.wb-px-big {
  padding-left: var(--margin);
  padding-right: var(--margin);
}

.wb-p-small {
  padding: calc(var(--margin) / 2);
}

.wb-py-small {
  padding-top: calc(var(--margin) / 2);
  padding-bottom: calc(var(--margin) / 2);
}

.wb-px-small {
  padding-left: calc(var(--margin) / 2);
  padding-right: calc(var(--margin) / 2);
}
p {
	margin-bottom: var(--paragraph-margin);
}
.ce-bodytext p:last-child {
  margin-bottom: 0px;
}
/* headline stuff */
.ce-headline-center {
	text-align: center;
	text-wrap: balance;
}
.ce-headline-right {
  text-align: right;
}
.ce__subheadline {
	font-weight: 300;
	margin-bottom: 0px;
}
.ce__headline {
	+ .ce__subheadline  {
		margin-top: 3px;
	}
}
.rh-header__siteheader-stack-inner {
	& .ce__headline {
		margin-bottom: 0px;
	}
}
/* headline stuff end */
.ce__textmedia-header {
	margin-bottom: var(--header-margin);
}
.ce__textmedia-header * {
	margin: 0px;
}
.ce__textmedia {
	&.ce-center {
		picture {
			display: flex;
			justify-content: center;
		}
	}
}
.be-pagets__rh_hcf_nonav {
	&.body__fixed-header {
		padding-top: 0px;
	}
}
figcaption.image-caption {
	font-size: .75rem;
	font-style: italic;
}
.tx_rhcarousel img {
	height: auto;
}
.meta-nav {
	display: grid;
	grid-template-rows: 1fr;
	border-bottom: 1px solid var(--light-color);
	transition: grid-template-rows .4s ease;

	> div {
		overflow: hidden;
		
		> * {
			padding: 10px 0;
		}
	}
	
	& .container {
		display: flex;
		justify-content: space-between;
	}
	& .rhaddress__wrapper {
		flex-shrink: 0;
	}
	
	@media (max-width: 767px) {
		& .rhaddress__phonenumber {
			display: none;
		}
		& .rhaddress__mail {
			display: none;
		}
	}
}

.shrink {
	& .meta-nav {
		grid-template-rows: 0fr;
	}
}
.container {
	& .container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Videos */
video {
	max-width: 100%;
}

/* Breadcrumb */
.breadcrumb__wrapper {
	margin-top: 0px;
	border-bottom: 1px solid var(--light-color);
	padding: 10px 0;
}
.breadcrumb__muted {
	opacity: .5;
}
.breadcrumb__link {
	text-decoration: none;
}
/* Breadcrumb END */

/* accordion color overwrite */
.accordion-button:not(.collapsed) {
	color: var(--brightest);
	background-color: var(--first-color);
	box-shadow: none;
}
.accordion-button:focus {
	border-color: transparent;
	box-shadow: none;
}
.accordion-button:after {
	background: none;
	content: '\f107';
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	display: flex;
	justify-content: center;
	align-items: center;
}
.accordion-button:not(.collapsed):after {
	background: none;
}
/* accordion color overwrite end */

.ce__fa-icon {
	display: grid;
	gap: var(--grid-gap-size);
	
	&.ce-left {
		grid-template-columns: 35px minmax(0, 1fr);
		
		& i {
			margin-top: 5px;
		}
	}
	&.ce-right {
		grid-template-columns: minmax(0, 1fr) 35px;
		
		& i {
			margin-top: 5px;
		}
	}
}
.ce__fa-icon-wrapper {
	& i {
		font-size: 2rem;
	}
}
.ce-above,
.ce-below,
.ce-within {
	& .ce__fa-icon-wrapper {
		&.ce__fa-icon-header-position-center {
			text-align: center;
		}
		&.ce__fa-icon-header-position-right {
			text-align: right;
		}
	}
}

.ce-within {
	& .ce-bodytext {
		margin-top: var(--paragraph-margin);
	}
}
.ce-below {
	& .ce-bodytext + .ce-gallery {
		margin-top: var(--paragraph-margin);
	}
}

.alert p:last-child {
	margin-bottom: 0px;
}
.col-count-2 {
	column-count: 2;
}
.col-count-3 {
	column-count: 3;
}
.frame-layout-430,
.frame-layout-431,
.frame-layout-432 {
	& .ce-gallery {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: calc(var(--grid-gap-size) * 3);
		
		@media (max-width: 991px) {
			gap: calc(var(--grid-gap-size) * 2.5);
		}
		
		@media (max-width: 767px) {
			gap: calc(var(--grid-gap-size) * 2);
		}
		
		@media (max-width: 575px) {
			grid-template-columns: repeat(4, minmax(0, 1fr));
		}
	}
	& .ce-gallery__item {
		display: flex;
		justify-content: center;
		align-items: center;
	}
	& img {
		max-height: 150px;
	}
}
.frame-layout-431 .ce-gallery {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	
	@media (max-width: 575px) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
.frame-layout-432 .ce-gallery {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	
	@media (max-width: 575px) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
.frame-layout-433 {
	/*
	 *	ggf. noch im fluid eine data-size vergeben um respo/desktop speed/distribution optimal einzustellen
	 */
	
	--icon-wrapper-height: 100px;	/* fixed value definitively absolute */
	--icon-wrapper-width: 150px;	/* relative value will be tried to resolved, depending on the true length of the wrapper */
	--marquee-width: 1.3;			/* a factor of the length of the element, depending on how many logos will be displayed and how many space shall be between */
	--respo-fac: 1;
	
	@media (max-width: 991px) {
		--respo-fac: 2;
	}
	
	@media (max-width: 575px) {
		--respo-fac: 2;
	}
	
	& .inner {
		width: 100%;
		height: var(--icon-wrapper-height);
		overflow: hidden;
		position: relative;
	}
	& .layout-marquee {
		position: absolute;
		overflow: hidden;
		animation: marquee calc(10s * var(--marquee-width) * var(--respo-fac)) linear infinite;
		width: calc(200% * var(--marquee-width) * var(--respo-fac));
		display: flex;
	}
	& .ce-gallery {
		display: flex;
		align-items: center;
		width: 100%;
		justify-content: space-around;
	}
	& .ce-gallery__item {
		width: var(--icon-wrapper-width);
		height: var(--icon-wrapper-height);
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 0 10px;
		
		& picture {
			height: 100%;
			width: 100%;
		}
		
		& img {
			width: 100%;
			height: 100%;
			object-fit: contain;
		}
	}
	&:hover {
		& .layout-marquee {
			animation-play-state: paused;
		}
	}
	@media (prefers-reduced-motion: reduce) {
		& .layout-marquee {
			animation-play-state: paused !important;
		}
	}
}
@keyframes marquee {
	0% { 
		left: 0;
	}
	100% {
		left: calc(-100% * var(--marquee-width) * var(--respo-fac));
	}
}

.ce__reverse-font-color {
	& .ce-bodytext {
		
	}
}

/*
 *	Frame Spaces Before and After
 *	!important is hier wichtig, gute usability
 */
.frame-space-before-m0 {
	margin-top: 0px !important;
}
.frame-space-after-m0 {
	margin-bottom: 0px !important;
}
.frame-space-before-mDefault {
	margin-top: var(--margin) !important;
}
.frame-space-after-mDefault {
	margin-bottom: var(--margin) !important;
}
.frame-space-before-mSmall {
	margin-top: var(--marginSmall) !important;
}
.frame-space-after-mSmall {
	margin-bottom: var(--marginSmall) !important;
}
.frame-space-before-mBig {
	margin-top: var(--marginBig) !important;
}
.frame-space-after-mBig {
	margin-bottom: var(--marginBig) !important;
}

/* fa icon - universal usage between mixed media and cards usw. */
.ce__fa-icon {
	display: grid;
	gap: var(--grid-gap-size);
	
	&.ce-left {
		grid-template-columns: 100px minmax(0, 1fr);
		
		& i {
			margin-top: 5px;
		}
	}
	&.ce-right {
		grid-template-columns: minmax(0, 1fr) 100px;
		
		& i {
			margin-top: 5px;
		}
	}
}
.ce__fa-icon-wrapper {
	display: flex;
	align-items: center;
	& i {
		font-size: 2rem;
	}
}
.ce-left,
.ce-right {
	& .ce__fa-icon-wrapper {
		align-items: start;
	}
}

.ce-above,
.ce-below,
.ce-within {
	& .ce__fa-icon-wrapper {
		&.ce__fa-icon-header-position-center {
			justify-content: center;
		}
		&.ce__fa-icon-header-position-right {
			justify-content: end;
		}
	}
}

.ce__fa-as-icon_wrapper, 
.ce__img-as-icon_wrapper {
	width: 100px;
	height: 100px;
	display: flex;
	justify-content: center;
	align-items: center;
	
	& img {
		width: 100%;
		height: 100%;
		object-fit: contain;
	}
}
.ce-left,
.ce-right {
	& .ce__fa-as-icon_wrapper, 
	& .ce__img-as-icon_wrapper {
		align-items: start;
	}
}
/* fa - end */
.rh-gallery__wrapper {
	display: grid;
	gap: var(--grid-gap-size);
	
	& a {
		& img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
}
.ce-bodytext + .rh-gallery__wrapper {
	margin-top: var(--marginSmall);
}
.frame-layout-160 .rh-gallery__wrapper {
		grid-template-columns: repeat(4, minmax(0, 1fr));
}
.frame-layout-162 .rh-gallery__wrapper {
		grid-template-columns: repeat(3, minmax(0, 1fr));
}
.frame-layout-164 .rh-gallery__wrapper {
		grid-template-columns: repeat(5, minmax(0, 1fr));
}
a[data-fslightbox] {
	position: relative;
	
	&:hover {
		&:before {
			content: "\f00e";
			font-family: 'Font Awesome 5 Free';
			font-weight: 900;
			position: absolute;
			inset: 0;
			display: flex;
			justify-content: center;
			align-items: center;
			background-color: var(--overlay-color);
			color: var(--brightest);
			font-size: 3rem;
		}
	}
}