/*!
************************************************************************
** Theme Schellfisch Stylesheet
** 19-08-2026
** 
***********************************************************************/


/* ------------------------------------------------------------------ */
/* Webfonts
/* ------------------------------------------------------------------ */

/* Fira Sans loaded weights: Regular 400, Medium 500, SemiBold 600, 
   Bold 700, ExtraBold 800 */
@import url("../css/fonts.css");


/* ------------------------------------------------------------------ */
/* Global variables
/* ------------------------------------------------------------------ */

:root {
	/* Fonts */
	--base-font-family: 'Fira Sans','Segoe UI',Arial,Helvetica,sans-serif;
	--base-font-weight-normal: 400;
	--base-font-weight-semibold: 600;
	--base-font-weight-bold: 700;
	--base-font-style: normal;
	--heading-font-family: 'Fira Sans','Segoe UI',Arial,Helvetica,sans-serif;
	--heading-font-weight-normal: 400; /* 400 */
	--heading-font-weight-bold: 600; /* 600 */
	--heading-font-style: italic;
	--heading-color: #222; /* #222 */
	--mono-font-family: monospace;
	--icon-font-family: 'Font Awesome 7 Free';

	/* Font sizes */
	--html-font-size: 16px; /* 16px */
	--html-line-height: 1.4rem; /* 1.4rem */
	--header-line-height: 1.4rem; /* 1.4rem */
	--line-height: 1.4rem; /* ersetzen durch --line-height-base */
	--line-height-relative: 1.2em;

	--line-height-base: 1.4rem;
	--line-height-sm: 1.2;
	/* --line-height-md: 1.75; */
	/* --line-height-lg: 2; */

	/* General sizes */
	--container-padding-top: 2rem;
	--container-padding-bottom: 2rem;
	/* --container-padding-x: 0.5rem; */
	--container-padding: 2rem 0.5rem 2rem;
	--container-mobile-padding: 2rem 2rem 2rem; /* NEU */

	--lead-font-size: var(--html-font-size) * 1.25;
	--lead-font-weight: 300;
	--small-font-size: .875em;

	--border-radius: 3px;
	--column-padding: 0.4rem;
	--column-gap: 1rem;
	--paragraph-margin-bottom: 1.2rem;
	--header-approx-height: 63px;
	--icon-play-size: 45px;

	/* Header */
	/* --topnav-item-width: 150px; */
	/* --topnav-item-padding: 7px 10px; */
	/* --topnav-bgcolor: rgb(34, 34, 34); #222 */
	/* --topnav-inner-bgcolor: rgb(68, 68, 68); #444 */

	--header-bg-color: #efefef; /* #13171B */
	--header-color: #222; /* #666 */
	--header-link-color: #555;
	--header-hover-color: #222;
	--header-active-color: #222;

	/* General colors */
	--primary-bg-color: rgb(34, 175, 198);
	--primary-color: #fff;
	--secondary-bgcolor: #2f6698;
	--secondary-color: #222;
	--light-color: #fff;
	--dark-color: #000;

	--body-bgcolor: #fafafa; /* #fff */
	/* --color: midnightblue; */
	--body-color: #333; /* #666 #333 */
	--body-color-muted: #888; /* #777 */

	--main-bg-color: #fff; /* #fff */
	--main-linkcolor: #267aba; /* #11ABB0 */
	--main-linkhover: #de9a8a; /* #14D0D6 #ce6a06  */
	--main-linkvisited: #267aba;
	--main-linkactive: #de9a8a; /* #14D0D6 #ce6a06  */
	/* --main-linkactive: darkorange; */
	/* --highlight-color: #ffe9b3; */
	--mobile-logo-svg-fill: #000;
	--divider-color: #333;
	--features-bg-color: #eee;

	--footer-linkcolor: rgb(102, 102, 102); /* #666 */
	--border-color: #ccc; /* #E6E6E6 #ccc */
	--header-footer-border: 1px solid rgba(172, 179, 194, 0.3);

	/* Buttons */
	--button-bg-color: var(--main-linkcolor);
	--button-color: var(--light-color);
	--button-border-color: #227ded;
	/* --button-hover-color: #1877ec; */
	--button-hover-color: var(--main-linkhover);

	/* Footer */
	--footer-color: #222;
	--footer-bg-color: #efefef;

	/* Sections */
	--section-one-bg-color: #F7F7F7; /*  */
	--section-one-headcolor: #333;
	--section-one-txtcolor: var(--body-color); /*  */
	--section-two-bg-color: #23292f; /*  */
	--section-two-headcolor: #333; /*  */
	--section-two-txtcolor: #aaa; /* #7A7A7A */

	--section-screenshots-bgcolor-rgb: 255, 199, 18;
	--section-gallery-bgcolor-rgb: 187, 187, 187; /* #bbb */

	--cards-text-align: left; /* left|center|right */

	--features-feature-icon-size: inherit; /* Gültiger Wert oder inherit */

	--socialmedia-social-pages-icon-size: 24px; /* Gültiger Wert oder inherit */

	/* Forms */
	--form-section-bgcolor: #23292f;
	--form-section-color: #aaa;
	--form-bgcolor: transparent; /*  */
	--form-color: var(--body-color);
	--form-input-bgcolor: #eee;
	--form-input-color: #111;
	--form-input-focus-bgcolor: #dedede;
	--form-input-focus-color: #000;
	--form-input-focus-box-shadow: 0 0 0 1.2px #aaa;
	--form-label-bgcolor: transparent;
	--form-label-color: var(--form-color);
	--form-required-color: orange;
	--form-error-bgcolor: transparent;
	--form-error-color: #db7093;
	--form-placeholder-color: #aaa;
	--form-readonly-color: #2f6698;

	/* Transitions */
	--gallery-item-overlay-transition: opacity 0.4s ease-in-out;

	/* Go-Top */
	--gotop-width: 54px;
}


/* ------------------------------------------------------------------ */
/* General and Common Styles
/* ------------------------------------------------------------------ */

html {
	width: 100%;
	max-width: 100%;
	height: 100%;
	font-size: var(--html-font-size);
	line-height: var(--html-line-height);
	/* 'y' legt fest, dass der Scroll-Container in y-Richtung, also nach 
	  unten gescrollt wird. 'mandatory' legt fest, dass am nächsten 
	  Fangpunkt eingerastet wird. */
	/* scroll-snap-type: y mandatory; */
	scroll-behavior: smooth; /* enable smooth scrolling for the whole page */
}

body {
	width: 100%;
	max-width: 100%;
	background: var(--body-bgcolor);
	color: var(--body-color);
	font-family: var(--base-font-family);
	font-size: 1rem;
	font-style: var(--base-font-style);
	line-height: var(--line-height-base);
	letter-spacing: normal;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin-top: 2rem;
	color: var(--heading-color);
	font-family: var(--heading-font-family);
	font-weight: var(--heading-font-weight-bold);
	font-style: var(--heading-font-style);
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	margin-top: 2rem;
	font-weight: inherit;
}
h1, .h1 {
	font-size: 3rem;
}
#body-wrapper h1,
#body-wrapper .h1 {
	margin-top: .3em;
	margin-bottom: .3em;
}
h2, .h2 {
	/* margin-top: 1rem; */
	margin-top: 0.5em;
	margin-bottom: .5em;
	font-size: 1.8rem;
}
h3, .h3 {
	margin-top: 2rem;
	margin-bottom: 0.5em;
	font-size: 1.5rem;
}
h4, .h4 {
	/* Faktor x0.8 zu h3 */
	margin-top: 1.6rem;
	margin-bottom: .4em;
	font-size: 1.2rem;
}
h5, .h5 {
	margin-top: 2rem;
	font-size: 1rem;
}
h6, .h6 {
	margin-top: 2rem;
	font-size: 0.9rem;
	font-weight: var(--heading-font-weight-bold);
}

h1 + h2,
h2 + h3,
h3 + h4,
h4 + h5 {
	margin-top: 3px;
	/* background-color: yellow; */
}


h3:has(span.text-center),
h4:has(span.text-center) {
	display: inline-block;
	width: 100%;
	text-align: center;
}

h2 + h3 .text-small {
	font-size: 1.2rem;
	line-height: var(--line-height-sm);
}


.title-center h1,
.title-center h2 {
	text-align: center;
}
.title-h1h2 h1 {
	font-weight: var(--heading-font-weight-bold);
	margin-bottom: 0;
	line-height: 1.1;
}
.title-h1h2 h1 strong,
.title-h1h2 h1 bold {
	font-weight: var(--heading-font-weight-bold);
}
.title-h1h2 h1 + h2 {
	line-height: 1.1;
	margin-top: 0;
}
.title-h1h2 h1 + h2,
.title-center h1 + h2 {
	margin-bottom: 40px;
	font-weight: var(--heading-font-weight-bold);
}
.title-h2h3 h2 {
	font-weight: var(--heading-font-weight-bold);
	margin-bottom: 0;
	line-height: 1.1;
}
.title-h2h3 h2 + h3 {
	line-height: 1.1;
	margin-top: 0;
}

p {
	margin: 0 0 var(--paragraph-margin-bottom);
}
/* Kein unterer Rand beim letzten Absatz („Kind“-Element) */
p:last-child {
	margin-bottom: 0;
	/* background-color: #ff0; */
}
/* Normaler unterer Rand bei letzten Absatz direkt nach einem H2 */
h2.foo + p:last-child {
	margin: 0 0 var(--paragraph-margin-bottom);
	/* background-color: orange; */
}


/* Line Height (taken from Bootstrap */
/* Change the line height using the .lh-* utilities. */
.lh-1 {
	line-height: 1 !important;
}
.lh-sm {
	line-height: 1.25 !important;
}
.lh-base {
	line-height: 1.5 !important;
}
.lh-md {
	line-height: 1.75 !important;
}
.lh-lg {
	line-height: 2 !important;
}


img {
	max-width: 100%;
}

ul,
ol {
	margin-left: 1.6rem;
}
ul ul,
ul ol,
ol ul,
ol ol {
	margin-left: 1.6rem;
}
ul {
	list-style: disc outside;
}
ol {
	list-style: decimal outside;
}
ul li,
ol li {
	margin-top: .3rem;
}
ul li:last-child,
ol li:last-child {
	margin-bottom: var(--paragraph-margin-bottom);
}

b, strong {
  font-weight: var(--base-font-weight-semibold);
}

hr {
	height: 1px;
	width: 100%;
	margin: 1.3rem auto 1rem;
	background-color: var(--body-color);
	color: inherit;
	border: 0;
	opacity: .6;
}

table,
.table table {
	/* width: 100%; */
	width: auto;
	border-spacing: 0;
	border-collapse: collapse;
	margin: 20px 0;
}
table th,
table td,
.table th,
.table td {
	padding: 6px 8px 6px 0;
}
.table th,
.table td {
	border-bottom: none;
}
.table th {
	border-bottom-width: 2px;
}
table td {
	vertical-align: top;
}
.table.table-striped th,
.table.table-striped td,
.table.table-hover th,
.table.table-hover td,
.table.table-scroll th,
.table.table-scroll td,
.table.table-bordered th,
.table.table-bordered td {
	padding: 6px 8px;
}
/* WENN leere th-Elemente vorhanden sind UND keine th-Elemente mit Inhalt, DANN display: none; */
table > thead:has(> tr > th:empty):not(:has(> tr > th:not(:empty))) {
  display: none;
}
/* Striped tables/Streifige Tabellen */
.table.table-striped tbody tr:nth-of-type(odd) {
	background: #f7f8f9;
}
/* Use the active class to make <tr> element highlighted */
.table tbody tr.active,
.table.table-striped tbody tr.active {
	background: #eef0f3;
}
/* Hoverable table rows */
.table.table-hover tbody tr:hover {
	background: #eef0f3;
}
/* Scrollable tables */
.table.table-scroll {
	display: block;
	overflow-x: auto;
	padding-bottom: .75rem;
	white-space: nowrap;
}
/* Bordered tables */
.table.table-bordered th,
.table.table-bordered td {
	/* border: 1px solid #444; */
	border: 1px solid #dee2e6;
}
/* thead light background */
.table.thead-light th {
	background-color: #eee;
	color: var(--body-color);
}
.table code {
	color: var(--body-color);
	background: transparent;
}


pre code,
pre.xdebug-var-dump {
	/* display: block; */
	display: inline-block;
	padding: .5rem !important;
	background: #fafafa;
	color: inherit;
	border-radius: 2px;
	line-height: 1;
	overflow-x: auto;
}
pre {
	white-space: pre-wrap;
}
pre[class*="language-"] code {
	padding: 0 !important;
	border-radius: inherit;
	overflow-x: initial;
}
pre code:not(.hljs):not([class*="language-"]) {
	background: #f8f8f8;
}

code,
.code {
	/* background-color: #fcf2f2; */
	background-color: #fff2f2;
	/* color: #d73e48; */
	color: #e60000;
	/* color: #cc0000; */
	font-family: "SF Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Courier, monospace;
	font-size: 96%;
	/* line-height: 1.25; */
	padding: 1px 1px;
}

mark {
	padding: 0;
	background: transparent;
	color: inherit;
	border-bottom: none;
	border-radius: 0;
	/* font-size: inherit; */
}
mark {
	padding: .05rem .1rem 0;
	/* background: #ffe9b3; */
	background: #fff2d6;
	color: #3b4351;
	border-bottom: .05rem solid #ffd367;
	border-radius: .1rem;
}
mark.mark-class-green {
	background: lightgreen;
	color: #333;
	border-bottom: .05rem solid green;
}

iframe {
	margin: 0;
	padding: 0;
	border: 1px solid #aaa;
	border-style: inset;
}
/* Diese Deklaration verhindert saemtliche Klick-, */
/* Scroll- und Hover-Events auf den iframes */
iframe[id^="iframe_osm"] {
	pointer-events: none;
	width: 100%;
}

.heavy {
	font-weight: var(--base-font-weight-bold);
}
.light {
	/* ist ungültig weil weight 200 wird nicht geladen! */
	font-weight: 200;
}
.text-light {
	color: rgba(255, 255, 255, 0.8);
}
.text-light h1,
.text-light h2,
.text-light h3,
.text-light h4,
.text-light h5,
.text-light h6 {
	color: rgba(255, 255, 255, 0.9);
}

img.float-left {
	margin: 3px 1rem 3px 0;
}
img.float-right {
	margin: 3px 0 3px 1rem;
}

#messages {
	margin-bottom: 1rem;
}
#messages .icon {
	font-size: 1rem;
}


/** Links **/
a,
a:visited {
	text-decoration: none;
	outline: 0;
	color: var(--main-linkcolor);
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
}
a:hover,
a:focus {
	color: var(--main-linkhover);
	text-decoration: none;
}
a:focus {
	outline: none !important;
	box-shadow: none !important;
}
p a,
p a:visited {
	line-height: inherit;
}


/** von Bootstrap uebernommen **/
.text-muted {
	color: var(--body-color-muted);
}
/* TODO: nicht fertig, nicht sicher ob sinnvoll */
.lead {
	font-size: 1.25rem;
	font-weight: 300; /* FIXIT: font-weight noch ungültig! */
}


/** Deckkraft von Elementen **/
.opacity-100 {
	opacity: 1 !important;
}
.opacity-75 {
	opacity: .75 !important;
}
.opacity-50 {
	opacity: .5 !important;
}
.opacity-25 {
	opacity: .25 !important;
}


/** Diese hauptsächlich zur Verwendung mit Plugin Grav Shortcode Core **/
/* Beispiel: [span class="text-big"]some text[/span] */
.text-huge, .text-big {
	font-size: 1.4em;
}


/** Farben und Boxen **/
.white {
	color: white;
}
.red:not(.toast) {
	color: red;
}
.yellow:not(.toast) {
	color: yellow;
}
.green:not(.toast) {
	color: green;
}
.blue {
	color: blue;
}

/** Hintergrund **/
.bg-black {
	background-color: black;
}
.bg-red {
	background-color: red;
}
.bg-yellow {
	background-color: yellow;
}
.xxbg-lightyellow,
.section.bg-lightyellow > .container,
#body-wrapper.bg-lightyellow > .container {
	background-color: lightyellow;
}
.bg-green {
	background-color: green;
}
.bg-blue {
	background-color: blue;
}
.bg-body {
  background-color: var(--body-bgcolor) !important
}
.bg-white {
  background-color: #fff !important
}
.bg-transparent {
  background-color: transparent !important
}

.bg-primary {
  background-color: #0d6efd !important
}
.bg-secondary {
  background-color: #6c757d !important
}
.bg-success {
  background-color: #198754 !important
}
.bg-info {
  background-color: #0dcaf0 !important
}
.bg-warning {
  background-color: #ffc107 !important
}
.bg-danger {
  background-color: #dc3545 !important
}
.bg-light {
  background-color: #f8f9fa !important
}
.bg-dark {
  background-color: #212529 !important
}

/* Beispiel: [div class="box green"]**Mein Text**[/div] */
div.box {
	/* width: 100%; */
	/* margin: 15px 0 25px; */
	margin: 0 0 10px;
	padding: 15px;
	border-radius: var(--border-radius);
}
div.box.green {
	background-color: green;
	border: 1px solid var(--body-color);
	color: var(--light-color);
}
div.box h3 {
	margin: 17px 0 12px;
	font-style: italic;
}
div.box.green h3 {
	color: var(--light-color);
	font-size: 1.705rem;
	font-style: italic;
}
div.box.float-left {
	margin-right: 12px;
}
div.box.float-right {
	margin-left: 8px;
}


/* ------------------------------------------------------------------ */
/* Spectre overrides ... (oder Flex-grid)
/* ------------------------------------------------------------------ */

audio, video {
	max-width: 100%;
}

section.section {
	padding-left: 0; /* 1rem */
	padding-right: 0; /* 1rem */
	position: relative;

	/* scroll-margin: 67px; */
	/* scroll-snap-align: start; */

	/* border: 1px solid red; */
}
.section:not(.modular-hero) {
	padding: 0; /* padding erfolgt in .container */
	/* border: 1px solid red; */
}
.section.clients {
	padding-bottom: 0 !important;
}

#body-wrapper .container {
	padding-top: var(--container-padding-top);
	padding-left: 0;
	padding-right: 0;
	padding-bottom: var(--container-padding-bottom);
	background: var(--main-bg-color);
}

/* padding-top verschiebt den Inhalt aus dem von #header verdeckten Bereich */
/* ...modulare Seiten */
#start > #body-wrapper > .container,
#start .section:first-of-type:not(#body-wrapper),
/* #main > #body-wrapper > .container, */
#main .section:first-of-type:not(#body-wrapper) {
	padding-top: var(--header-approx-height);
	/* border: 2px dotted blueviolet; */
}
/* ...normale Seiten ohne Hero -> .container mit verschobenem Inhalt */
#main > #body-wrapper > .container {
	padding-top: calc(var(--header-approx-height) + var(--container-padding-top));
}
/* ...normale Seiten mit Hero -> .container mit verkleinertem padding */
/* NOTE: #hero-image ist nur bei Hero als Seite vorhanden */
#main:has(#hero-image) > #body-wrapper > .container {
	padding-top: var(--container-padding-top);
}

/** Container mit Klasse .expand auf voller Seitenbreite **/
/* Klaase .expand erweitert eine .section auf die volle Fensterbreite */
.section.expand .container[class*=" grid-"] {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
	/* border: 1px solid red; */
}
.section.expand .container[class*=" grid-"] .cols,
.section.expand .container[class*=" grid-"] .columns {
	margin-left: 0;
	margin-right: 0;
	/* border: 1px solid green; */
}

#xxfooter.expand.bg-inverse {
	background: var(--footer-color);
}

#header.expand .container,
#footer.expand .container {
	padding-left: 1rem;
	padding-right: 1rem;
	/* border: 1px solid orange; */
}

/* Jeder .container ohne Klasse .container-padding-remove */
.container:not(.container-padding-remove) {
	position: relative;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding: var(--container-padding);
	background: var(--main-bg-color);
}
/* Verschiebung des Blockes hierhin ohne Probleme???  */
.container-padding-remove-bottom > .container {
	padding-bottom: 0;
	/* border: 1px solid blue; */
}

.cols,
.columns {
	/* margin-left: -0.4rem; */
	/* margin-right: -0.4rem; */
	/* margin-left: calc(-1 * 0.4rem); */
	/* margin-right: calc(-1 * 0.4rem); */
	margin-left: 0;
	margin-right: 0;
}
/* #body-wrapper gibt es nur auf Seiten, nicht bei Modulen?? */
#body-wrapper .cols,
#body-wrapper .columns {
	margin-left: 1rem;
	margin-right: 1rem;
}


/** Buttons **/
.btn,
.button {
	height: auto;
	padding: 9px 8px 8px;
	background: var(--light-color);
	border: 1.7px solid var(--button-bg-color);
	/* border: none; */
	border-radius: var(--border-radius);
	color: var(--button-bg-color);
	font-size: 0.9rem;
	font-weight: var(--base-font-weight-semibold);
	line-height: 1;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	/* letter-spacing: 1px; */
	/* font-variant-ligatures: none; */
	-webkit-transition: background .2s, border .2s, color .2s;
	transition: background .2s, border .2s, color .2s;
}
.btn:focus,
.button:focus,
.btn:hover,
.button:hover {
	background: #e1edfd;
	border-color: var(--button-border-color);
	text-decoration: none;
}
.hero .hero-body .btn.btn-primary,
.hero .hero-body .btn-primary.button,
.btn.btn-primary,
.btn-primary.button {
	background: var(--button-bg-color);
  border-color: var(--button-border-color);
	color: var(--light-color);
}
.btn.btn-lg,
.btn-lg.button {
	height: auto;
	font-size: 1rem;
	padding: 12px 20px 10px;
}
.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn-primary.button:hover,
.btn-primary.button:focus {
	background: var(--button-hover-color);
	border-color: #1370e3;
	color: var(--light-color);
}


/** Figures (plus Shortcode Core Shortcode 'lightbox') **/
figure {
	display: inline-block;
	margin: .125rem 0 .5rem;
	/* border: 1px solid #eee; */
}
figure.xxfloat-left {
	float: left;
}
figure.float-left,
a.glightbox.float-left {
	margin-right: 1rem;
}
figure.xxfloat-right {
	float: right;
}
figure.float-right,
a.glightbox.float-right {
	margin-left: 1rem;
}

figure p {
	margin-bottom: 0;
	line-height: 0;
}
figure img,
a.glightbox.float-left img,
a.glightbox.float-right img {
	display: block;
	/* border: 1px solid #eee; */
}

/* Figure caption */
figure figcaption,
figure figcaption.figure-caption-top,
figure figcaption.figure-caption-bottom,
figure figcaption.figure-caption-below,
.hero .hero-image .figure-caption-top,
.hero .hero-image .figure-caption-bottom,
.blog-listing .bricklayer-column .card-image .figure-caption-top,
.blog-listing .bricklayer-column .card-image .figure-caption-bottom {
	display: block;
	width: 100%;
	margin: 0;
	color: var(--body-color-muted);
	font-size: 0.75rem;
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
	/* border: 1px solid green; */
}
/* Figure Shortcode using Plugin Shortcode Core */
figure.figure-caption-top,
figure.figure-caption-bottom {
	position: relative;
}

/* Figure caption at top/bottom of the image */
figure figcaption.figure-caption-top,
figure.figure-caption-top figcaption,
figure figcaption.figure-caption-bottom,
figure.figure-caption-bottom figcaption,
.hero .hero-image .figure-caption-top,
.hero .hero-image .figure-caption-bottom,
.blog-listing .bricklayer-column .card-image .figure-caption-top,
.blog-listing .bricklayer-column .card-image .figure-caption-bottom {
	position: absolute;
	padding: 1px 6px;
	color: var(--light-color);
	text-shadow: -1px -1px 0px #333, 1px -1px 0px #333, -1px 1px 0px #333, 1px 1px 0px #333;
	line-height: var(--line-height-sm);
}
figure figcaption.figure-caption-top,
figure.figure-caption-top figcaption,
.hero .hero-image .figure-caption-top,
.blog-listing .bricklayer-column .card-image .figure-caption-top {
	left: 0;
	top: 2px;
}
figure figcaption.figure-caption-bottom,
figure.figure-caption-bottom figcaption,
.hero .hero-image .figure-caption-bottom,
.blog-listing .bricklayer-column .card-image .figure-caption-bottom {
	left: 0;
	bottom: 2px;
}

/* Figure caption below the image */
figure figcaption.figure-caption-below {
	padding: 0 8px;
	/* background-color: #f9f9f9; */
	color: var(--body-color-muted);
}

/* -VERALTET- */
figure.xxcaption figcaption,
figure.image figcaption {
	background-color: #f9f9f9;
	/* border: 1px solid blue; */
}

/* dies teilweise für Plugin Image Caption CSS */
figure.xximage-caption {
	text-align: center;
	margin: 0 1rem;
}
figure.xximage-caption img {
	display: block;
}

/* Figure caption Text-Ausrichtung in SECTION oder FIGURE */
/* .caption-... kann in section oder figure verwendet werden */
.caption-left figure figcaption,
figure.caption-left figcaption {
	text-align: left;
}
.caption-right figure figcaption,
figure.caption-right figcaption {
	text-align: right;
}
.caption-center figure figcaption,
figure.caption-center figcaption {
	text-align: center;
}

/* Figure caption mit Transparenz */
/* Beispiel: section.caption-opacity-75 */
.caption-opacity-75 figcaption.caption-block {
	opacity: .75 !important;
}
.caption-opacity-50 figcaption.caption-block {
	opacity: .5 !important;
}
.caption-opacity-25 figcaption.caption-block {
	opacity: .25 !important;
}


/* Figcaption auf dem Bild -VERALTET- */
figure figcaption.xxbottom-left,
figure figcaption.xxbottom-right,
figure figcaption.xxbottom-center {
	position: absolute;
	left: 0;
	bottom: 0;
	color: var(--light-color);
	text-shadow: -1px -1px 0px #333, 1px -1px 0px #333, -1px 1px 0px #333, 1px 1px 0px #333;
	/* border: 1px solid green; */
}
figure figcaption.xxbottom-left {
	text-align: left;
}
figure figcaption.xxbottom-right {
	text-align: right;
}
figure figcaption.xxbottom-center {
	/* left: 50%; transform: translateX(-50%); */
	text-align: center;
}

/* Figcaption als Block. Transparenz möglich */
.xxcaption-block figcaption,
figure figcaption.xxcaption-block {
	position: absolute;
	left: 0;
	/* right: 0; */
	/* bottom: 0; */
	margin: 0;
	background-color: var(--dark-color);
	color: var(--light-color);
	text-shadow: none;
}


/* ??? Begrenzt nur bei echten Seiten */
#body-wrapper figure.image-caption {
	margin-left: 0;
	margin-right: 0;
}
#xxbody-wrapper figure img {
	width: 100%;
}


/* Accordion */
.accordion {
	overflow: hidden;
}

summary {
	margin: 0;
	padding: 0;
	padding: 10px 0 4px;
	background: transparent;
	color: #333;
	border: none;
	/* box-shadow: 0 -1px 1px 1px rgba(0,0,0,0.5); */
	font-size: 1.2rem;
	font-weight: var(--tmpl-textfont-semibold);
	line-height: 1.4em;
	cursor: pointer;
}
summary::marker {
	color: orangered;
}

/* Dreieck als Statusanzeiger ersetzen wenn Klasse accordion-icon-chevron */
details.accordion-icon-chevron summary {
	list-style: none; /* Triangle not shown */
}
/* Triangle not shown - Style for Webkit-Browser */
details.accordion-icon-chevron summary::-webkit-details-marker,
details.accordion-icon-chevron summary::marker {
	display: none;
	content: "";
}
details.accordion-icon-chevron summary::before {
	width: 24px;
	display: inline-block; /* erforderlich für transform*/
	padding: 0;
	content: "\f054"; /* Instead of Triangle closed */
	font-family: var(--icon-font-family);
	font-style: normal;
	font-weight: 900;
	font-size: 1em;
	line-height: 1;
	text-align: center;
	transition: all 0.35s;
	/* background: orange; */
}
details.accordion-icon-chevron[open] summary::before {
	transform: rotate(90deg);
	transition: all 0.35s;
	/* background: yellow; */
}

details {
	padding: 0;
	font-size: 1.2rem;
	font-weight: var(--tmpl-textfont-semibold);
	line-height: 1.4em;
	cursor: pointer;
}
details ul,
details ol {
	/* margin: .4rem 0 .4rem 1.2rem; */
	margin-top: 0;
	margin-bottom: var(--paragraph-margin-bottom);
	/* padding: 0; */
}
/* Styling the summary in case of open 'details' */
#foo details[open] summary {
	font-style: italic;
}
details summary > * {
	display: inline;
}
details:not(:has(li)) p.foo {
	background: yellow;
}

details p {
	margin: 0;
	/* padding: 0; */
	/* padding: 10px 0; */
	padding: .3rem 16px var(--paragraph-margin-bottom);
	transition: all 0.5s ease-in-out;
	font-size: 1rem;
	line-height: var(--line-height-base);
	/* background-color: #eee; */
}
/* No padding for paragraphs inside a list item */
details:has(li) p {
	padding: 0;
	/* background: yellow; */
}

details[open] p {
	animation: animateDown 0.2s linear forwards;
	/* background: yellow; */
}
@keyframes animateDown {
  0% {
    opacity: 0;
    transform: translatey(-35px);
  }
  100% {
    opacity: 1;
    transform: translatey(0);
  }
}


/** Toasts **/
.toast {
	margin-left: auto;
	margin-right: auto;
	padding: .45rem .4rem .4rem;
	/* width: 90%; */
  width: 100%;
	border-radius: var(--border-radius);
  border: 1px solid #ccc;
	border-color: #ccc;
}

.toast a {
  color: #fff;
  text-decoration: underline;
}

.toast a:focus,
.toast a:hover,
.toast a:active,
.toast a.active {
  opacity: .75;
}

.toast .btn-clear {
  margin: .1rem;
}

.toast p:last-child {
  margin-bottom: 0;
}


/** YouTube video iframes (in Sbs-list) **/
.grav-youtube {
	position: relative;
	height: 0;
	max-width: 1920px;
	max-height: 1080px;
	margin-bottom: 10px;
	padding-bottom: 56.25%;
	overflow: hidden;
}

.grav-youtube iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}

.grav-youtube--lazyloaded img {
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
	height: 100%;
	width: 100%;
}
.grav-youtube--lazyloaded button {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 68px;
	height: 48px;
	margin-left: -34px;
	margin-top: -24px;
	border: none;
	background-color: transparent;
	padding: 0;
	outline: 0;
	cursor: pointer;
}
.grav-youtube--lazyloaded iframe:not([src]) {
	display: none;
}
.grav-youtube--lazyloaded iframe[src] + button {
	display: none;
}

.grav-youtube--lazyloaded path:first-of-type {
	-webkit-transition: fill .1s cubic-bezier(0.0,0.0,0.2,1), fill-opacity .1s cubic-bezier(0.0,0.0,0.2,1);
	-o-transition: fill .1s cubic-bezier(0.0,0.0,0.2,1), fill-opacity .1s cubic-bezier(0.0,0.0,0.2,1);
	transition: fill .1s cubic-bezier(0.0,0.0,0.2,1), fill-opacity .1s cubic-bezier(0.0,0.0,0.2,1)
}

.grav-youtube--lazyloaded:hover path:first-of-type,
.grav-youtube--lazyloaded button:focus path:first-of-type {
	fill: #f00;
	fill-opacity: 1;
}


/** Diverses **/

/* Ergänzungen für Inhaltsbereich in voller Höhe */
body.header-fixed #start,
body.header-fixed #main,
body.header-fixed #body-wrapper {
	height: 100%;
	/* border: 1px solid red */
}
body.header-fixed #body-wrapper .container {
	height: 100%;
}
body.header-fixed #xxheader { /* Debugger */
	-moz-opacity: .5;
	filter: alpha(opacity=50);
	opacity: .5;
}

/* Notices */
.notices {
	margin: 1.5rem 0;
}
.notices p {
	margin: 1rem 0;
}

/* verwendet im Original Footer */
i.fa.fa-heart.pulse,
i.fa.fa-heart-o.pulse {
	color: #920;
}

/* Steuert Bildlaufabstand zwischen Einrastposition und Container. */
/* Stellt sicher, dass ein Anker nicht hinter dem feststehenden Header verborgen wird */
.scroll-anchor {
	scroll-margin-top: var(--header-approx-height);
	scroll-snap-align: start;
	/* border: 1px solid blue; */
}


/* ------------------------------------------------------------------ */
/* Mobile Menu
/* ------------------------------------------------------------------ */

.mobile-nav-open .overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0px;
	bottom: 0px;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: 2;
	/* overscroll-behavior: contain; */
}
body.foomobile-nav-open {
	overflow-y: hidden;
}

.xxxmobile-container {
	position: absolute;
	top: 40%;
	left: 0;
	margin: 0 auto;
	z-index: 2;
}

.mobile-logo {
	display: block;
	padding-right: 1rem;
	background: yellowgreen;
	/* height: 64px; */
	width: fit-content;
}
.mobile-logo a {
	position: relative;
	/* top: 50%; */
	/* transform: translateY(-50%); */
	display: block;
}
.xxmobile-logo svg,
.xxmobile-logo img {
	height: 42px;
	margin-top: 11px;
	margin-left: 1.4rem; /* Summe von padding .section plus .container */
	padding: 6px 0;
}
.mobile-logo svg path,
.mobile-logo img path {
	fill: var(--mobile-logo-svg-fill);
}

/* Mobile-Menu Toggler */
.navbar .button-wrapper {
	display: none;
	top: 0;
	right: 0;
	z-index: 3;
}
/* Hält das Menu geöffnet auch wenn die Fenstergröße */
/* während des geöffneten Menu verändert wird. */
.mobile-nav-open .button-wrapper {
	display: block;
	/* border: 1px solid red; */
}
.header-fixed .button-wrapper {
	/* position: fixed; */
	position: relative;
}

.xxxmobile-menu .button_container {
	position: absolute;
	top: 20px;
	right: 32.4px; /* Wert soll eine Berechnung werden! */
	height: 24px;
	width: 28px;
	cursor: pointer;
	z-index: 100;
	-webkit-transition: opacity 0.25s ease, top 0.5s ease;
	transition: opacity 0.25s ease, top 0.5s ease;
}
.button-wrapper .button_container {
	position: relative;
	top: 50%;
	transform: translateY(-50%);
	right: 0;
	height: 24px;
	width: 28px;
	cursor: pointer;
	z-index: 100;
	-webkit-transition: opacity 0.25s ease, top 0.5s ease;
	transition: opacity 0.25s ease, top 0.5s ease;
}
.button-wrapper .button_container:hover {
	-moz-opacity: .7;
	filter: alpha(opacity=70);
	opacity: .7;
}
.button-wrapper .button_container.active {
	/* position: fixed; */
	position: relative;
}
.button-wrapper .button_container.active .top,
.button-wrapper .button_container.active .middle,
.button-wrapper .button_container.active .bottom {
	background: var(--header-color);
}
.button-wrapper .button_container.active .top {
	transform: translateY(8px) translateX(0) rotate(45deg);
}
.button-wrapper .button_container.active .middle {
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
}
.button-wrapper .button_container.active .bottom {
	transform: translateY(-8px) translateX(0) rotate(-45deg);
}

.button-wrapper .button_container span {
	background: var(--header-color);
	border: none;
	height: 4px;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	-webkit-transition: all 0.35s ease;
	transition: all 0.35s ease;
	cursor: pointer;
}
.button-wrapper .button_container span:nth-of-type(2) {
	top: 8px;
}
.button-wrapper .button_container span:nth-of-type(3) {
	top: 16px;
}

.xxxoverlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 0%;
	/* background: transparent nur sinnvoll wenn Kopfbereich nicht Animiert! */
	background: var(--header-bg-color);
	background: transparent;
	/* background: yellow; */
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
	visibility: hidden;
	-webkit-transition: opacity 0.35s, visibility 0.35s, height 0.35s;
	transition: opacity 0.35s, visibility 0.35s, height 0.35s;
}
.xxxoverlay.open {
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
	visibility: visible;
	height: auto;
}
.xxxoverlay nav {
	position: relative;
	margin: 0 auto;
	text-align: center;
}

.xxxmobile-menu {
	height: 100%;
	/* overflow-y: scroll; */
	overflow: hidden;
	background: var(--header-bg-color);
	background: #ccc;
	border-top: 1px solid #ccc;
}
.mobile-menu {
	position: relative;
	height: 0;
	max-height: 0;
	overflow: hidden;
	/* margin: 0 -1rem; */
	margin: 0;
	background: var(--header-bg-color);
	/* background: #ccc; */
	-webkit-transition: max-height 0.5s ease;
	transition: max-height 0.5s ease;
}
.mobile-menu.open {
	/* height: 100%; */
	height: auto;
	max-height: 800px;
	/* border-top: 1px solid #ccc; */
	-webkit-transition: max-height 0.5s ease;
	transition: max-height 0.5s ease;
	z-index: 10;
}

.mobile-menu > .tree {
	text-align: left;
}

/* Diese Klasse wird per JS in body eingefuegt */
.mobile-nav-open {
	/* overflow-y: hidden; */
	overflow-y: auto;
}


/* ------------------------------------------------------------------ */
/* Tree (in Quark Treemenu)
/* ------------------------------------------------------------------ */

.treemenu.treemenu-root {
	margin: 1rem;
}
.treemenu ul {
	margin: 0 0 0 1rem;
}
.treemenu li {
	list-style: none;
	margin: 0 0 1px;
	padding: 5px 0;
	line-height: 1.2rem;
	background: rgba(102, 113, 137, 0.1);
}
.treemenu li a {
	display: block;
	margin-left: 1.2rem;
	font-size: 1rem;
}
.treemenu li a:hover,
.treemenu li a:focus,
.treemenu li a.active {
	color: #3e8def !important;
	text-decoration: none;
}

.treemenu .toggler {
	cursor: pointer;
	vertical-align: top;
	font-size: 1.1rem;
	line-height: 1rem;
	padding-left: 5px;
	float: left;
}
.treemenu .toggler:before {
	display: inline-block;
	margin-right: 2pt;
}
.treemenu li.tree-empty > .toggler {
	-moz-opacity: .3;
	filter: alpha(opacity=30);
	opacity: .3;
	cursor: default;
}
.treemenu li.tree-empty > .toggler:before {
	content: "\2022";
}
.treemenu li.tree-closed > .toggler:before {
	content: "+";
}
.treemenu li.tree-opened > .toggler:before {
	content: "\2212";
}

/* Neuer Selektoren ohne treemenu.js */

ul.tree {
	margin: 1rem 4rem 2rem 1rem;
	width: initial;
	float: right;
	list-style: none;
	font-size: 1.125rem;
}
ul.tree ul.treemenu {
	padding-top: 6px;
	/* background: #ccc; */
}
ul.tree ul {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 6px;
	list-style: none;
	/* background: #bbb; */
	/* border: 1px solid red; */
}
.treemenu li,
.tree li {
	margin: 0;
	padding: 8px 0;
	/* line-height: var(--line-height-base); */
	/* line-height: 1.6rem; */
	/* line-height: calc(var(--line-height-base) * 0.8571); */
	line-height: calc(var(--line-height-base) * 1.1429);
	background: transparent;
	list-style: none;
}
.treemenu li a,
.treemenu li a:visited,
.tree li a,
.tree li a:visited {
	display: block;
	margin-left: 0;
	/* padding: 0; */
	color: var(--header-color);
	font-size: 1rem;
	font-style: italic;
	white-space: nowrap;
	/* text-decoration: none; */
	/* color: greenyellow; */
}
.treemenu > li > a.active,
.tree > li > a.active {
	font-weight: var(--heading-font-weight-normal);
	/* color: red; */
}
.treemenu > li:has(ul) > a.active,
.tree > li:has(ul) > a.active {
	/* font-weight: var(--heading-font-weight-normal); */
	text-decoration: none;
	/* color: red; */
}
.treemenu > li > ul > li > a.active,
.tree > li > ul > li > a.active {
	font-weight: var(--heading-font-weight-normal);
	/* color: green; */
}
.treemenu > li .toggler {
	/* display: none; */
	padding-left: 8px;
	padding-right: 8px;
	/* padding: 0 8px; */
	font-size: inherit;
	line-height: inherit;
}


li.tree-contact-row {
	padding-top: 40px;
	text-align: center;
	/* background: blueviolet; */
}
li.tree-contact-row a {
	display: inline-block;
	margin: 0 .75em;
}
li.tree-contact-row a > i {
	width: 100%;
	padding: 0;
	font-size: 32px;
}


/* Animation -------------------------------------------------------- */

.default-animation,
#header,
#header .container,
#header .navbar-section,
#header .logo svg,
#header .logo img,
/* folgende 2 Zeilen können gelöscht werden */
.features[class*=" layout-"] .feature-icon i,
.features .feature-icon {
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

@keyframes pulse_animation {
	0% {
		transform: scale(1);
	}
	30% {
		transform: scale(1);
	}
	40% {
		transform: scale(1.08);
	}
	50% {
		transform: scale(1);
	}
	60% {
		transform: scale(1);
	}
	70% {
		transform: scale(1.05);
	}
	80% {
		transform: scale(1);
	}
	100% {
		transform: scale(1);
	}
}

.pulse {
	animation-name: pulse_animation;
	animation-duration: 2000ms;
	transform-origin: 70% 70%;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}


/* ------------------------------------------------------------------ */
/* Header
/* ------------------------------------------------------------------ */

#header {
	width: 100%;
	max-width: 100%;
	height: auto;
	background: var(--header-bg-color);
	color: var(--header-color);
	border-bottom: var(--header-footer-border);

	background: transparent;
	border-bottom: none;

	font-family: var(--base-font-family);
	font-size: 1rem;
	font-weight: var(--heading-font-weight-normal);
	font-style: var(--heading-font-style);
	/* overflow-x: auto; */
}
.header-fixed #header {
	position: fixed;
	top: 0;
	z-index: 2;
}

#header a {
	/* color: #454d5d; */
	color: var(--header-link-color);
}
#header .logo svg path {
	fill: var(--header-color);
}

/* .header-dark #header:not(.scrolled), */
.header-dark #header:not(.scrolled) .container {
	background: var(--header-color);
	color: var(--header-bg-color);
}
.header-dark #header:not(.scrolled) a {
	color: rgba(255, 255, 255, 0.7) !important;
}
.header-dark #header:not(.scrolled) a.active {
	color: #fff !important;
}
.header-dark #header:not(.scrolled) .dropmenu ul ul a {
	color: #454d5d !important;
}
.header-dark #header:not(.scrolled) .logo svg path {
	fill: #fff;
}
/* .header-dark.header-transparent #header:not(.scrolled), */
.header-dark.header-transparent #header:not(.scrolled) .container {
	background: rgba(0, 0, 0, 0.05);
}

/* .header-transparent #header:not(.scrolled), */
.header-transparent #header:not(.scrolled) .container {
	background: rgba(255, 255, 255, 0.05);
}


body.header-fixed.header-animated #header.scrolled {
	height: 38px;
}
body.header-fixed.header-animated #header.scrolled .navbar-section {
	height: 38px;
}
body.header-fixed.header-animated #header.scrolled .FOOlogo svg,
body.header-fixed.header-animated #header.scrolled .FOOlogo img {
	height: 32px;
	padding: 3px 0;
}
body.header-fixed.header-animated #header.scrolled .logo svg,
body.header-fixed.header-animated #header.scrolled .logo img {
	height: 16px;
	padding: 0;
}
body.header-fixed.header-animated #header.scrolled ~ .button-wrapper .button_container {
	top: .5rem;
}


#header.section {
	padding-left: 0;
	padding-right: 0;
	/* border: 1px solid orange; */
}
/* Container nicht .section enthält die Farben! */
#header .container {
	background: var(--header-bg-color);
	color: var(--header-color);
	border-bottom: var(--header-footer-border);
	border-left: var(--header-footer-border);
	border-right: var(--header-footer-border);
	padding: 0 .5rem;
}

#header .navbar {
	/* margin: 0 10px; */
	margin: 0;
}

#header .navbar-section {
	/* height: 4rem; */
	height: 64px;
	/* min-height: 54px; */
	padding-left: .4rem;
	padding-right: .4rem;
}
.navbar .navbar-section {
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
}
#header .xxnavbar-section.desktop-menu {
	justify-content: end;
}


/* Brand Logo Header and Footer ------------------------------------- */

.navbar-brand,
.navbar .navbar-brand {
	/* display: inline-block; */
	display: block;
	font-size: .9rem;
	text-decoration: none;
}

/* Logo Grav */
#header .foologo svg,
#header .foologo img {
	display: inherit;
	height: 42px;
	padding: 6px 0;
}
/* Logo SF */
#header .logo svg,
#header .logo img {
	display: block;
	height: 19px;
	margin: 1px 0 0;
	padding: 0;
	/* border: 1px solid green; */
}
.mobile-logo svg,
.mobile-logo img {
	/* display: block; */
	height: 24px;
	margin-top: 1px;
	/* Summe padding von #header.section + .container + hheader . navbar */
	margin-left: 2.025rem;
	padding: 0;
	margin-top: 16px;
	/* margin-bottom: 16px; */
}

/* FIXIT: Zu was gehört das??? */
.login-status-wrapper {
	white-space: nowrap;
}


/* ------------------------------------------------------------------ */
/* Footer
/* ------------------------------------------------------------------ */

body.sticky-footer {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	flex-direction: column;
	height: 100%;
	min-height: 100vh;
}
body.sticky-footer #page-wrapper {
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
	overflow: hidden; /* NEU */
}

#footer {
	padding: 0;
	background: transparent;
	text-align: center;
	/* border: 1px solid blue; */
}

#footer .container {
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	background: var(--footer-bg-color);
	color: var(--footer-color);
	border-top: var(--header-footer-border);
}
#footer.bg-inverse .container {
	background: var(--footer-color);
	color: var(--footer-bg-color);
}

/* der .inner-wrapper ist mittlerweile unnötig */
#footer .inner-wrapper {
	margin: 0;
	padding: 1.2rem 0;
}

#footer .cols,
#footer .columns {
	/* Hint: .columns sind display:flex */
	justify-content: center;
	align-items: center;
	margin: 0;
	padding-top: 1.2rem;
	padding-bottom: 1.2rem;
	/* border: 1px solid green; */
}
#footer .column {
	text-align: left;
}

#footer .logo {
	display: block;
	/* Folgende Deklarationen für Logo neben Copyright */
	/* display: table-cell; */
	/* vertical-align: middle; */
	/* padding-right: 5px; */
}
/* Logo Grav */
#footer .foologo svg,
#footer .foologo img {
	display: inherit;
	height: 42px;
	padding: 6px 0;
}
/* Logo SF */
#footer .logo svg,
#footer .logo img {
	display: inline;
	height: 19px;
	margin: 1px 0 0;
	padding: 0;
	/* border: 1px solid green; */
}
#footer .navbar-brand {
	line-height: 1;
}

#footer .copyright {
	display: table-cell;
	vertical-align: middle;
	zoom: 1;
	font-size: 0.8125rem;
	font-weight: var(--heading-font-weight-normal);
	line-height: 1.2em;
	text-align: left;
	overflow: hidden;
}

#footer .list-inline {
	margin: 0;
	padding-left: 0;
	font-size: 0.9375rem;
	font-weight: var(--heading-font-weight-normal);
	font-style: var(--heading-font-style);
	line-height: 1.8em;
	text-align: right;
	list-style: none;
}
#footer .list-inline > li {
	display: inline;
	margin-top: 0;
	padding-right: 0.5em;
	padding-left: 0.5em;
	/* border: 1px solid blue; */
}
#footer .list-inline > li:last-child {
	padding-right: 0;
}
#footer .list-inline > li a {
	display: inline;
	margin-bottom: 2px;
	padding-top: 0;
	padding-bottom: 0;
	color: inherit;
	text-decoration: none;
	white-space: nowrap;
}
#footer .list-inline > li.active a {
	text-decoration: underline;
}
#footer.bg-inverse .list-inline > li.active a {
	text-decoration: underline;
}
#footer .list-inline > li a i {
	margin-left: 0;
	font-size: 1.3333em;
	vertical-align: middle;
	line-height: 0.9375rem;
}


/* ------------------------------------------------------------------ */
/* Navbar Dropmenu (Desktop-Menu)
/* ------------------------------------------------------------------ */

/* Hält das Desktop-Menu geschlossen wenn das Fenster mit geöffnetem Mobile-Menu vergrößert wird. */
.mobile-nav-open .foodropmenu {
	display: none;
}

.dropmenu {
	width: 100%;
}
.dropmenu ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	margin: 0;
	line-height: var(--header-line-height);
	white-space: nowrap;
	justify-content: flex-end;
}
.dropmenu > ul {
	margin: 12px 0;
}
.dropmenu ul li {
	display: inline-block;
	position: relative;
	margin: 0;
	/* background-color: lightcoral; */
}

.xxdropmenu > ul > li {
	display: inline-block;
}

.dropmenu ul li a {
	display: block;
	padding: 0 8px;
	line-height: 30px;
	text-decoration: none;
}
.dropmenu ul li a:hover {
	color: var(--header-hover-color) !important;
	text-decoration: underline;
}
.dropmenu ul li a:focus,
.dropmenu ul li a.active {
	color: var(--header-active-color) !important;
	text-decoration: underline;
}
.xxdropmenu ul li a.active:hover {
	/* text-decoration: underline; */
	background-color: #fff;
	/* background-color: lightcoral; */
}
.dropmenu ul li:has(ul) a.active:hover {
	/* text-decoration: underline; */
	background-color: #fff;
	/* background-color: lightcoral; */
}
.dropmenu ul li ul li {
	background-color: #eee;
	display: block;
}
.dropmenu ul li:has(ul:hover) > a.active,
.dropmenu ul li:has(a.active) ul li {
	/* background-color: lightcoral; */
	background-color: yellow;
	background-color: #fff;
	/* box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1); */
}

.dropmenu ul li a:before {
	/* display: inline; */
	display: inline-block; /* nur wenn Block wirkt hier text-decoration */
	font-family: var(--icon-font-family);
	font-size: 16px;
	font-weight: 900;
	font-style: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	/* vertical-align: middle; */
	/* Nächste Zeile klären, wird als Fehler erkannt */
	/* float: right; */
	/* margin-right: -20px; */
	padding-right: 5px;
	content: "\f107";
	text-decoration: none;
	/* background: yellow; */
}

/* ??? noch unklar warum weil noch kein Menu mit Kindelementen erstellt */
.foodropmenu ul li a:only-child {
	padding-right: 8px;
	/* border: 1px solid red; */
}
.dropmenu ul li a:only-child:before {
	padding-right: 0;
	content: "";
}

.foodropmenu ul li:last-child a {
	padding-right: 0;
}

.dropmenu ul li:hover > ul {
	display: block;
	visibility: visible;
}

.dropmenu ul ul li a:before {
	content: "\f105";
}

.dropmenu ul ul {
	position: absolute;
	top: 100%;
	list-style: none;
	/* background: #fff; */
	/* box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1); */
	visibility: hidden;
}

.dropmenu ul ul ul {
	position: absolute;
	left: 100%;
	top: 0;
}

.dropmenu.animated ul li {
	-webkit-transition: background 0.7s, color 0.5s;
	transition: background 0.7s, color 0.5s;
}
.dropmenu.animated ul li:hover > ul {
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
	transform: translateY(0);
}
.dropmenu.animated ul ul {
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
	-webkit-transition: transform 0.3s, opacity 0.5s;
	transition: transform 0.3s, opacity 0.5s;
	transform: translateY(-10px);
}


/* ------------------------------------------------------------------ */
/* Error page
/* ------------------------------------------------------------------ */

#error {
	position: relative;
	margin-top: 0;
	text-align: center;
}
#error h1 + p:first-of-type {
	margin-bottom: 0;
}
#error p {
	font-size: 1.8rem;
	line-height: var(--line-height-relative);
}
#error p img {
	margin-bottom: 1rem;
}
#error .icon {
	font-size: 50px;
}


/* ------------------------------------------------------------------ */
/* Hero Template
/* ------------------------------------------------------------------ */

.hero {
	/* display: -webkit-box; */
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	flex-direction: column;
	-ms-flex-pack: justify;
	/* justify-content: space-between; */
	justify-content: center;
	/* -ms-flex-align: center; */
	/* align-items: center; */
	/* -ms-flex-pack: center; */
	padding: 0;
	background-size: cover;
	background-position: center;
	background-color: transparent;
	/* Eigenschaft overflow:hidden wichtig bei einer Animation! */
	overflow: hidden;
	/* border: 1px solid red; */
}

.hero .container {
	padding-left: 0;
	padding-right: 0;
	position: relative;
}

/* NOTE: #hero-image ist nur bei Hero als Seite vorhanden */
#hero-image > .container,
.modular-hero > .container {
	padding: 0;
	background: transparent;
	/* border: 2px dashed violet !important; */
}

.hero.hero-fullscreen {
	min-height: 100vh;
}
.hero.hero-large {
	min-height: 500px;
}
.hero.hero-medium {
	min-height: 400px;
}
.hero.hero-small {
	min-height: 110px;
}
.hero.hero-tiny {
	min-height: 8rem;
}

.overlay-light,
.overlay-dark,
.overlay-light-gradient,
.overlay-dark-gradient {
	z-index: 0;
}


.hero.hero-bgimage.hero-fullscreen .image-overlay,
.hero.hero-bgimage.hero-large .image-overlay,
.hero.hero-bgimage.hero-medium .image-overlay,
.hero.hero-bgimage.hero-small .image-overlay,
.hero.hero-bgimage.hero-tiny .image-overlay {
	top: 50%;
	transform: translateY(-50%);
	height: 100%;
}
.hero.hero-bgimage.hero-fullscreen .image-overlay {
	min-height: 100vh;
}
.hero.hero-bgimage.hero-large .image-overlay {
	min-height: 500px;
}
.hero.hero-bgimage.hero-medium .image-overlay {
	min-height: 400px;
}
.hero.hero-bgimage.hero-small .image-overlay {
	min-height: 110px;
}
.hero.hero-bgimage.hero-tiny .image-overlay {
	min-height: 8rem;
}


.hero.hero-height-large {
	height: 500px;
}


/* Nur für Entwicklung */
.xxhero.schellfisch {
	background-color: var(--primary-bg-color);
}
.xxhero.comingsoon {
	background-color: #ffe000;
}

.header-fixed .hero {
	background-position: 50% 0;
}
.header-fixed .xxhero {
	margin-top: 50px;
	border: 1px solid red;
}

/* padding-top verschiebt den Inhalt aus dem von #header verdeckten Bereich */
/* ähnlich jetzt im Abschnitt Flex-grid */
.xxhero .container.container-padding-remove {
	padding-top: var(--header-approx-height);
	/* border: 1px solid red; */
}

.image-overlay {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1; /* Im Stapel vor .hero-image */
}
.overlay-light .image-overlay {
	background: rgba(255, 255, 255, 0.4);
}
.overlay-light-gradient .image-overlay {
	background: linear-gradient(
		to bottom,
		rgba(255, 255, 255, 0.5),
		rgba(255, 255, 255, 0.2)
	);
}
.overlay-dark .image-overlay {
	background: rgba(0, 0, 0, 0.4);
}
.overlay-dark-gradient .image-overlay {
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.5),
		rgba(0, 0, 0, 0.2)
	);
}

.hero p {
	font-size: 0.9rem;
	font-weight: 300;
}


/* FIXME:  Warum absolut positioniert hier ? */
.foohero .hero-body.middle,
.foohero .hero-body {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	margin: 0 auto;
	padding: 0;
	z-index: 1; /* Im Stapel vor .image-overlay */
}

/* TODO: Ist in Arbeit */
.hero .hero-body {
	position: absolute;
	width: 100%;
	padding: 0 2rem;
	z-index: 1; /* Im Stapel vor .image-overlay */
	/* border: 1px solid blue; */
}
.hero .hero-body.top {
	position: absolute;
	top: 0;
	bottom: auto;
	left: 0;
	transform: none;
	/* border: 1px solid green; */
}
.hero .hero-body.middle {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	/* border: 1px solid orange; */
}
.hero .hero-body.bottom {
	position: absolute;
	top: auto;
	bottom: 0;
	left: 0;
	transform: none;
	padding-bottom: .75rem;
	width: 100%;
	/* border: 1px solid navy; */
}
.hero .hero-body.middle h1,
.hero .hero-body.bottom h1 {
	margin-top: 0;
}

.hero .hero-body p {
	margin: 12px 10% 0;
	padding: 0;
	font-family: var(--base-font-family);
	font-size: 1rem;
	line-height: 1.85rem;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .1);
	/* border: 1px solid green; */
}
.hero .text-left .hero-body p,
.hero .hero-body.text-left p {
	margin-left: 0;
	margin-right: 20%;
	/* border: 1px solid violet; */
}
.hero .text-right .hero-body p,
.hero .hero-body.text-right p {
	margin-left: 20%;
	margin-right: 0;
	/* border: 1px solid violet; */
}

.hero h1 {
	font-size: 4rem;
}
.hero h2 {
	font-size: 3rem;
}
.hero h3 {
	font-size: 2rem;
}

.hero.white h1,
.hero.white h2,
.hero.white h3 {
	color: white;
}
.hero.red h1,
.hero.red h2,
.hero.red h3 {
	color: red !important;
}
.hero.yellow h1,
.hero.yellow h2,
.hero.yellow h3 {
	color: yellow !important;
}
.hero.green h1,
.hero.green h2,
.hero.green h3 {
	color: green !important;
}
.hero.blue h1,
.hero.blue h2,
.hero.blue h3 {
	color: blue !important;
}

.hero.text-light h1,
.hero.text-light h2,
.hero.text-light h3 {
	color: var(--light-color);
}
.hero.text-dark h1,
.hero.text-dark h2,
.hero.text-dark h3 {
	color: var(--dark-color);
}
.hero .hero-body h1 span,
.hero .hero-body h2 span,
.hero .hero-body a {
	color: var(--main-linkcolor);
}

.hero .hero-image img {
	display: block;
	margin: auto;
}

.hero #to-start {
	display: inline-block;
	position: absolute;
	bottom: 10px;
	font-size: 2.5rem;
	cursor: pointer;
	z-index: 1; /* Im Stapel vor .image-overlay */
}
.hero.text-light #to-start {
	color: var(--light-color);
}
.hero.text-dark #to-start {
	color: var(--dark-color);
}
.modular-hero #to-start {
	bottom: 20px;
	/* border: 2px solid violet; */
}


/* ------------------------------------------------------------------ */
/* Blog
/* ------------------------------------------------------------------ */


/* Extra columns spacing -------------------------------------------- */

.extra-spacing:not(.col-12),
:not(.col12) > .e-content {
	padding-right: 1rem;
}


/* Blog-Hero ---------------------------------------------- */

#blog-hero .container {
	height: 450px;
	overflow: hidden;
	/* border: 1px solid greenyellow; */
}
#blog-hero.hero.hero-large {
	min-height: initial;
}

#blog-hero .hero-image img {
	position: absolute;
	top: -9999px;
	left: -9999px;
	right: -9999px;
	bottom: -9999px;
	margin: auto;
}


/* Breadcrumbs styling ---------------------------------------------- */

#breadcrumbs {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	align-items: center;
	/* margin-top: -1rem; */
	margin-bottom: 1.75rem;
	padding-left: 0;
}
#breadcrumbs i {
	display: none;
}

#breadcrumbs span,
#breadcrumbs a {
	padding: 0 0.25rem;
}
#breadcrumbs span:first-child,
#breadcrumbs a:first-child {
	padding-left: 0;
}
#breadcrumbs span:not(:first-child)::before,
#breadcrumbs a:not(:first-child)::before {
	color: #e7e9ed;
	content: "/";
	padding-right: .5rem;
}


/* Blog Listing ----------------------------------------------------- */

/* Hint: '#main >' ist erforderlich */
#xxmain > #body-wrapper.blog-listing .container {
	/* padding-top: 2rem; */
	padding-top: calc(var(--header-approx-height) + 2rem);
	border: 1px solid red;
}
/* blog-listing folgt auf blog-hero: kein durch die Navigation verdeckter Bereich */
#main > #blog-hero ~ #body-wrapper.blog-listing .container {
	padding-top: 2rem;
	/* border: 1px solid green; */
}

.blog-listing .bricklayer-column {
	padding-left: 0px;
	padding-right: 25px;
}
.blog-listing .bricklayer-column .card-image {
	position: relative;
	/* border: 1px solid green; */
}
.blog-listing .bricklayer-column .card-image img,
.blog-listing .bricklayer-column .card-image svg {
	display: block;
}

.blog-listing .card-title h4 {
	margin-bottom: 0;
}

.blog-listing .card {
	margin-bottom: 25px;
	/* border: 0; */
	border: 1px solid var(--border-color);
	/* box-shadow: 0 10px 45px -9px rgba(0, 0, 0, 0.1); */
	/* box-shadow: 0 0px 15px  rgba(0, 0, 0, 0.13); */
}

.blog-listing .card-footer {
	text-align: right;
}

.blog-listing .blog-date {
	font-size: 13px;
}


/* Blog Item -------------------------------------------------------- */

.content-title {
	margin-bottom: 2rem;
}
.content-title h2 {
	margin-bottom: 0.5rem;
}

.tags .label {
	font-size: 12px;
	text-transform: uppercase;
}
.label.label-primary {
	background: var(--main-linkcolor);
	color: #fff;
}


/* Pagination ------------------------------------------------------- */

ul.pagination {
	-ms-flex-pack: center;
	justify-content: center;
}
.prev-next {
	margin-top: 4rem;
}


/* Sidebar specific tweaks ------------------------------------------ */

#sidebar .sidebar-content:first-child h4 {
	margin-top: 0;
	/* color: green; */
}
#sidebar .sidebar-content h4 ~ a.button {
	display: inline-block;
	margin-top: 2px;
}

#sidebar ul.related-pages {
	box-shadow: none;
	padding: 0;
	z-index: 1;
}
#sidebar ul.related-pages li {
	border-bottom: 1px solid #e7e9ed;
}
#sidebar ul.related-pages li:last-child {
	border-bottom: 0;
}

#sidebar ul.archives {
	list-style: none;
	margin-left: 0;
}
#sidebar ul.archives .label {
	/* vertical-align: text-top; */
	vertical-align: text-bottom;
	font-size: 14px;
}


/* ------------------------------------------------------------------ */
/* Forms
/* ------------------------------------------------------------------ */

.xxsection-contact > .container {
	background: #bbb;
	background: var(--form-section-bgcolor);
	color: var(--form-section-color);
	text-align: center;
	/* border: 2px solid green; */
}
.section-contact p {
	padding: 0;
}

/* For css animations */
/* Hint: Add class 'show' to animated elements that are moving into the page */
.foojs #form-contact input[type="submit"] {
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
}

/* form */
form .column {
	margin-bottom: 0.2rem;
	/* border: 1px solid yellow; */
}
form h3 {
	color: var(--form-color);
}
form .form-group {
	text-align: left;
}
form .form-group:not(:last-child) {
	margin-bottom: 0rem;
}
form .fooform-section .form-group {
	display: inline-block;
}


/* form input */
form input,
form select {
	vertical-align: middle;
}
form textarea {
	min-height: 220px;
}
form .form-input:not([type="file"]):not([type="range"]),
form .form-input-wrapper:has(.form-input[type="range"]),
form .form-data:has(.switch-toggle),
form .form-select {
	display: block;
	min-width: 225px;
	max-width: 100%;
	height: auto;
	margin: 0 0 24px;
	/* padding: 15px 12px; */
	background: var(--form-input-bgcolor);
	color: #111;
	border: 0;
	outline: none;
	font-family: var(--base-font-family);
	font-size: 1rem;
	line-height: var(--line-height-base);
	border-radius: var(--border-radius);
}
form .form-input:not([type="file"]):not([type="range"]):not([type="date"]),
form .form-input-wrapper:has(.form-input[type="range"]),
form .form-data:has(.switch-toggle),
form .form-select {
	padding: 15px 12px;
}
form .form-select:not([multiple]):not([size]) {
	/* background: #fff url(data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E) no-repeat right .35rem center / .4rem .5rem; */
	background-color: var(--form-input-bgcolor);
}

form .form-input[type="date"] {
	padding: 14px 12px;
}
form .form-input[type="range"] {
	-webkit-appearance: slider-horizontal;
	-moz-appearance: slider-horizontal;
	appearance: slider-horizontal;
}
form .form-input[type="range"]:focus {
	box-shadow: none;
	border: none;
}
form input[type="file"] {
	margin-bottom: 0;
}
form .form-input-file.dropzone {
	border-radius: var(--border-radius);
	margin-bottom: 24px;
	/* padding: .5rem; */
	/* border: 2px dashed #ccc; */
	color: #aaa;
}
form .form-data:has(.switch-toggle) {
	padding: 11px 12px;
	text-align: left;
	/* border: 1px solid red; */
}
/* form input focus */
form .form-input:not([type="range"]):focus,
form .form-input-wrapper:has(.form-input[type="range"]:focus) {
	background-color: var(--form-input-focus-bgcolor);
	color: var(--form-input-focus-color);
	box-shadow: var(--form-input-focus-box-shadow);
}
form .form-input:focus,
form .form-select:not([multiple]):not([size]):focus {
	box-shadow: var(--form-input-focus-box-shadow);
}
/* form input placeholder */
::-webkit-input-placeholder,
::-moz-placeholder,
:-ms-input-placeholder,
:-moz-placeholder {
	color: var(--form-placeholder-color) !important;
}
::placeholder {
	color: var(--form-placeholder-color) !important;
	opacity: 1; /* Firefox */
}

/* label */
form label.form-label,
form legend.form-label {
	margin: 12px 0 0;
	padding: 0 0 0 2px;
	background-color: var(--form-label-bgcolor);
	color: var(--form-label-color);
	line-height: 2em;
	text-align: left;
	/* background: lightpink; */
}
form label .form-required,
form legend .form-required {
	margin: 0;
	padding: 0;
	color: var(--form-required-color);
}

/* checkbox, radio, switch */
/* äußere Box von den Labels */
/* Wert margin-top kann größer wenn keine zweite Zeile entsteht */
form .checkboxes,
form .radio {
	margin: 8px 0 0;
	/* border: 1px solid red; */
}
/* labels */
form .form-checkbox,
form .form-group:not(.form-field-toggleable) .checkboxes label,
form .form-radio,
form .form-switch {
	line-height: 1.2rem;
	margin: 0;
	/* min-height: 1.4rem; */
	cursor: pointer;
}
form .form-checkbox,
form .form-group:not(.form-field-toggleable) .checkboxes,
form .radio {
	display: inline-block;
	white-space: nowrap;
	/* background: lightgoldenrodyellow; */
}
form .form-checkbox,
form .form-group:not(.form-field-toggleable) .checkboxes label {
	margin: 0;
	padding: 1px 11px 2px 28px;
	/* border: 1px solid red; */
}

form .xxform-group:not(.form-field-toggleable) .checkboxes {
	display: inherit;
}
form .xxform-group:not(.form-field-toggleable) .checkboxes label {
	display: inherit;
	padding: 0.1rem 0.4rem 0.1rem 1.2rem;
	margin: inherit;
}

form .form-group:not(.form-field-toggleable) .checkboxes label:before {
	display: none;
}


form .form-radio {
	/* padding: 0.0625rem 0.7rem 0.1rem 1.6875rem; */
	padding: 1px 11px 2px 28px;
}
form .form-switch {
	/* padding: 1px 11px 2px 45px; */
	padding: 1px 11px 0 45px;
}

form .form-checkbox .form-icon,
form .form-radio .form-icon {
	background: #fff;
	width: calc(1em * 1.25);
	height: calc(1em * 1.25);
	left: 0;
	top: 0;
	font-size: inherit;
}
form .form-checkbox .form-icon {
	left: 0;
}
form .form-checkbox input:checked + .form-icon::before {
	position: absolute;
	background-clip: padding-box;
	border: 3px solid #fff;
	border-left-width: 0;
	border-top-width: 0;
	content: "";
	top: 33%;
	left: 45%;
	width: 9px;
	height: 13px;
	margin-left: -3px;
	margin-top: -6px;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
	font-size: inherit;
}
form .form-radio input:checked + .form-icon::before {
	width: calc(1em * 0.5);
	height: calc(1em * 0.5);
	background: #fff;
	font-size: inherit;
}
form .form-radio .form-icon {
	left: 2px;
}

form .form-switch .form-icon {
	top: 1px; /* 0.25rem = 4px */
	left: 1px;
	width: 36px; /* 1.6rem = 25.6px */
	height: 20px; /* 0.9rem = 14.4px */
	background: #acb3c2;
	background-clip: padding-box;
	border-radius: 10px; /* 0.45rem = 7.2px */
	font-size: inherit;
}
.form-switch .form-icon::before {
	position: absolute;
	background: #fff;
	border-radius: 50%;
	top: 0;
	left: 0;
	width: 18px; /* 0.8rem = 12.8px */
	height: 18px; /* 0.8rem */
	font-size: inherit;
}
form .form-switch input:checked + .form-icon::before {
	left: 16px;
}

form .form-checkbox input:checked + .form-icon,
form .form-radio input:checked + .form-icon,
form .form-switch input:checked + .form-icon {
	background: var(--button-bg-color);
	border-color: var(--button-bg-color);
}

/* checkboxes */
form .xxxform-group:not(.form-field-toggleable) .checkboxes {
	/* display: inherit; */
	display: inline-block;
}
form .xxxform-group:not(.form-field-toggleable) .checkboxes label {
	/* padding: 2px 11px 2px 27px; */
	line-height: 1.2rem;
	margin: 0 0 0;
	/* min-height: 1.4rem; */
}

.form-extra-wrapper > span.form-description {
	display: inline-block;
	padding: 8px 0 4px;
	/* border: 1px solid red; */
}

/* form-section checkboxes label */
form .form-section .form-label-wrapper .form-label {
	margin: 0 0 8px;
}


/* Spamschutz Eingabefeld */
form .spmschutz {
	display: none;
}
/* Letzte Zeile im Formular (Buttons) */
form .row.last {
	margin: 6px auto 0;
}


/* form checkbox with label text ??? */
/* entweder veraltet oder form anstatt .form-ui */
.form-ui .form-checkbox-wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-flow: row nowrap;
	flex-flow: row nowrap;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}
.form-ui .form-checkbox-wrapper p {
	margin-left: 10px;
	-webkit-box-flex: 0;
	-ms-flex: 0 1 auto;
	flex: 0 1 auto;
	line-height: 20px;
	text-align: left;
}

/* privacy info */
form .privacy-info {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-flow: row nowrap;
	flex-flow: row nowrap;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
	margin-top: 20px;
	line-height: inherit;
}
form .privacy-info i {
	color: #fff;
	line-height: inherit;
	text-align: left;
}
form .privacy-info p {
	position: relative;
	margin-left: 26px;
	/* text-align: left; */
	/* background-color: green; */
}
form .privacy-info p::before {
	position: absolute;
	top: 0;
	left: -26px;
	display: inline-block;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	color: var(--form-color);
	font-family: var(--icon-font-family);
	font-weight: 900;
	font-style: normal;
	content: "\f06a";
}


form .form-group.has-errors {
	margin: 0 0;
	padding: 0 5px;
	background: rgba(255, 0, 0, .15);
	border: 1px solid rgba(255, 0, 0, .5);
	border-radius: var(--border-radius);
}


form .button-wrapper {
	margin-top: 0.75rem;
	margin-bottom: 1rem;
	text-align: center;
}
form .button-wrapper {
	width: calc(100% - 0.8rem);
	margin-left: auto;
	margin-right: auto;
	/* border: 1px solid red; */
}

form span.required {
	color: #e85600;
	font-weight: 700;
	font-size: 1.2rem;
}


/** Grav Login **/
#grav-login > form {
	margin: 2rem auto 0;
	max-width: 350px;
}
#grav-login .form-label {
	display: none;
}
#grav-login .form-data {
	margin: 1rem 0;
}
#grav-login .form-input {
	text-align: center;
}
#grav-login .button-wrapper {
	text-align: left;
}
#grav-login .button-wrapper .form-data.rememberme {
	margin: 0;
	float: left;
}
#grav-login .login-form button[type="submit"] {
	background: var(--button-bg-color);
	border-color: #227ded;
	color: #fff;
}
#grav-login .login-form button[type="submit"]:focus,
#grav-login .login-form button[type="submit"]:hover {
	background: #1877ec;
	border-color: #1370e3;
	color: #fff;
}
#grav-login .login-form button[type="submit"]:active,
#grav-login .login-form button[type="submit"].active {
	background: #1372e7;
	border-color: #126bd9;
	color: #fff;
}
#grav-login .twofa-form button[type="submit"]:first-child {
	background: var(--button-bg-color);
	border-color: #227ded;
	color: #fff;
	float: right;
	margin-left: 4px;
}
#grav-login .twofa-form button[type="submit"]:first-child:focus,
#grav-login .twofa-form button[type="submit"]:first-child:hover {
	background: #1877ec;
	border-color: #1370e3;
	color: #fff;
}
#grav-login .twofa-form button[type="submit"]:first-child:active,
#grav-login .twofa-form button[type="submit"]:first-child.active {
	background: #1372e7;
	border-color: #126bd9;
	color: #fff;
}


/* ------------------------------------------------------------------ */
/* Global template settings
/* ------------------------------------------------------------------ */

.cards .cols.cards,
.cards .columns.cards,
.cardsgallery .cols.cardsgallery,
.cardsgallery .columns.cardsgallery,
.jgallery .cols.jgallery,
.jgallery .columns.jgallery,
.features .cols.feature-cards,
.features .columns.feature-cards,
.services .cols.services,
.services .columns.services,
.form .container:has(.column) > form {
	margin-top: 1.5rem;
	/* border: 1px solid red; */
}

/* ------------------------------------------------------------------ */
/* Cards Template
/* ------------------------------------------------------------------ */

.cards .cards-grid {
	display: grid;
	/* Horizontalen Platz in gleiche Teile. Standard '1fr 1fr' gleich 2 Teile. */
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
.cards .cards-grid .card {
	background: var(--light-color);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	/* text-align: var(--cards-text-align); */
}

.cards.cards-text-right .cards-grid .card {
	text-align: right;
}

.cards .cards-grid .card .card-image {
	position: relative;
	margin: 0;
	padding-top: 0;
}
.cards .cards-grid h3 {
	margin-top: 0;
}
.cards .cards-grid .card-image img {
	width: 100%;
}


/* ------------------------------------------------------------------ */
/* Cardsgallery Template
/* ------------------------------------------------------------------ */

.cardsgallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px; /* The gap value can be overridden by the module */
	/* border: 1px solid red; */
}
.cardsgallery-grid.row-5-items {
	grid-template-columns: repeat(5, 1fr);
}
.cardsgallery-grid.row-4-items {
	grid-template-columns: repeat(4, 1fr);
}
.cardsgallery-grid.row-3-items {
	grid-template-columns: repeat(3, 1fr);
}
.cardsgallery-grid.row-2-items {
	grid-template-columns: repeat(2, 1fr);
}

@media only screen and (max-width: 960px) {
	.cardsgallery-grid.row-5-items {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media only screen and (max-width: 840px) {
	.cardsgallery-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.cardsgallery-grid.row-5-items {
		grid-template-columns: repeat(3, 1fr);
	}
	.cardsgallery-grid.row-4-items {
		grid-template-columns: repeat(3, 1fr);
	}
	.cardsgallery-grid.row-3-items {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: 600px) {
	.cardsgallery-grid,
	.cardsgallery-grid.row-5-items,
	.cardsgallery-grid.row-4-items,
	.cardsgallery-grid.row-3-items,
	.cardsgallery-grid.row-2-items {
		grid-template-columns: repeat(2, 1fr);
	}
}

.cardsgallery-card {
	padding: 5px;
	background: #F2F2F4;
	border: 1px solid #C4C4CA;
}

/* Create a square element */
/* Hint: Padding is always calculated as a percentage */
/* of its parent element's width, not height */
.cardsgallery-card .square {
	position: relative;
	width: 100%;
	margin: 0;
	/* background: #ddd; */
	background: rgba(0, 0, 0, .04);
}
.cardsgallery-card .square:after {
	display: block;
	content: "";
	padding-bottom: 100%; /* This generates the element in a 1:1 ratio */
}

.cardsgallery-card figure {
  position: absolute;
	margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
	text-align: center;
}
.cardsgallery-card figure video,
.cardsgallery-card figure img {
	position: relative;
	max-width: 100%;
	max-height: 100%;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border-radius: 0;
}
.cardsgallery-card figure video {
	display: block;
}
.cardsgallery-card figure figcaption  {
	margin: 0;
	/* color: var(--body-color-muted); */
	font-size: .6875rem;
	line-height: var(--line-height-sm);
}
.cardsgallery-card figure figcaption.figure-caption-top,
.cardsgallery-card figure figcaption.figure-caption-bottom {
	padding: 4px 4px;
}
/* Long text may overlap with the ".card-body" 
area because it is absolutely positioned. */
.cardsgallery-card figure figcaption.figure-caption-below  {
	margin-top: -4px;
	padding: 0 4px;
	line-height: 1.1;
}

.cardsgallery-card .square-limiter {
	display: inline-block;
	height: 100%;
}
/* 'circle-play' icon overlay */
.cardsgallery-card .square-limiter a:has(img.video-thumbnail)::after {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #fff;
	color: var(--main-linkcolor);
	border-radius: 50%;
	font-family: var(--icon-font-family);
	font-size: var(--icon-play-size);
	line-height: var(--icon-play-size);
	font-weight: 900;
	font-style: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	content: "\f144";
}

.cardsgallery-card .card-body {
	margin: 0;
	padding: 0 0 5px;
}
.cardsgallery-card .card-body h3 {
	margin: 10px 0 -10px;
	font-size: 1.1875rem;
}
.cardsgallery-card .card-body p {
	margin: 10px 0 0;
	line-height: calc(var(--line-height-base) * 0.9);
}


/* GLightbox -------------------------------------------------------- */

.gslide-image {
	background: var(--light-color);
}
.glightbox-clean .gslide .gdesc-inner {
	padding: 22px 20px;
	padding: 10px 10px;
}
.glightbox-clean .gslide .gslide-title {
	margin-top: 1px;
	margin-bottom: 8px;
	color: #000;
	font-family: var(--base-font-family);
	font-size: 1rem;
	font-weight: var(--heading-font-weight-bold);
	font-style: var(--heading-font-style);
	line-height: var(--line-height-base);
}
.glightbox-clean .gslide .gslide-desc {
	margin: 0;
	font-family: var(--base-font-family);
	font-size: 0.86rem;
	/* line-height: var(--line-height-base); */
	line-height: calc(var(--line-height-base) * 0.9);
}


/* ------------------------------------------------------------------ */
/* Clients Template
/* ------------------------------------------------------------------ */

.columns.clients .column p {
	margin-bottom: 1.5rem;
}

aside.clients {
	margin-bottom: 4px;
	background: var(--light-color);
	border-top: 1px solid var(--border-color);
	border-bottom: 1px solid var(--border-color);
}
aside.clients .cols,
aside.clients .columns {
	align-items: center;
}
aside.clients .cols,
aside.clients .column {
	padding-left: .8rem;
	padding-right: .8rem;
}
aside.clients img {
	margin: 16px auto;
}


/* ------------------------------------------------------------------ */
/* Default Template
/* ------------------------------------------------------------------ */



/* ------------------------------------------------------------------ */
/* Features Template
/* ------------------------------------------------------------------ */

.xxmodular-features {
	text-align: center;
}

.features .cols.feature-cards,
.features .columns.feature-cards {
	row-gap: 4px;
	/* border: 1px solid blue; */
}
.features .cols.feature-cards .column,
.features .columns.feature-cards .column {
	padding: 0.2rem 0.4rem;
}

.features .cols .feature-card,
.features .columns .feature-card {
	height: 100%;
	margin-left: -0.1rem;
	margin-right: -0.1rem;
	padding: 0;
	background-color: var(--features-bg-color);
}
/* Module class .bg-transparent for a transparent background */
.features.bg-transparent .cols .feature-card,
.features.bg-transparent .columns .feature-card {
	background-color: transparent;
}
.features.bg-transparent .feature-text {
	padding-bottom: 0;
}

/* .features figure.figure.feature-image */
.features .feature-image {
	display: block;
	position: relative;
	height: auto;
	margin: 0;
	padding: 0;
	/* border: 1px solid green; */
}
.features.no-border .img-responsive {
	padding: 0;
	background-color: #fff;
	border: none;
	border-radius: 0;
	box-shadow: none;
}
.features.no-rotate .feature-card figure,
.features.no-rotate .column figure {
	transform: none;
}

.features .feature-content {
	overflow: hidden;
}
/* TODO: padding hierhin, insbesondere wenn 1 Spalte mit Titel ohne Text */
.features .foofeature-content {
	border: 1px dotted #000;
	background-color: var(--features-bg-color);
}

.features .feature-icon {
  position: relative;
	display: block;
	height: auto;
	margin: 0;
	padding: 20px 20px 0;
	color: var(--body-color);
	font-size: 26px;
}
/* Muster für Karte mit eigene Farbe für den Symbol-Block */
.foofeatures .column:nth-child(3) .feature-card .feature-icon {
	color: var(--sf-magenta);
}

.features .feature-icon i {
	position: relative;
	/* display: block; */
	display: inline-block;
	width: 100%;
	margin: 0 auto;
	padding: 0 0 8px;
	color: inherit;
	font-size: inherit;
	font-size: var(--features-feature-icon-size);
}
.features .feature-icon i.text-left {
	text-align: left;
}
.features .feature-icon i.text-right {
	text-align: right;
}
.features .feature-icon i.text-center {
	text-align: center;
}

.features .feature-icon h3 {
	display: inline-block;
	margin: 0;
	/* padding: 4px 4px 1px; */
	padding: 0;
	background: transparent;
	color: inherit;
	border-radius: var(--border-radius);
	font-size: 24px;
	font-weight: var(--heading-font-weight-bold);
	line-height: 1;
	text-transform: none;
	/* border: 1px solid red; */
}
/* Muster für Karte mit eigener Farbe für Symbol <i> oder Text <h3> */
.features .column:nth-child(6) .feature-card .feature-icon h3 {
	color: var(--sf-green);
}

/* war ... .feature-content */
.features .feature-text {
	color: var(--body-color);
	padding: 8px 20px 20px;
}
.features .feature-text p {
	margin-bottom: 0;
}
.features .feature-text p > a {
	margin-top: 8px;
}
.features .feature-text p > .btn {
	line-height: var(--line-height-relative);
	white-space: normal;
}


/* ------------------------------------------------------------------ */
/* Modul Portfolio (from Agency theme)
/* ------------------------------------------------------------------ */

/* taken from Bootstrap */
.modal {
	display: none;
	overflow: hidden;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	/* padding: 0; */
	z-index: 1050;
	-webkit-overflow-scrolling: touch;
	outline: 0;
}
.fade {
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
	-webkit-transition: opacity 0.15s linear;
	transition: opacity 0.15s linear;
}
.row {
	margin-left: -15px;
	margin-right: -15px;
}
.row:before,
.row:after {
	content: " ";
	display: table;
}
.img-centered {
	margin: 0 auto;
}
.img-responsive, .thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

.xxportfolio {
	margin-bottom: -15px;
}

/* Items */
.portfolio .portfolio-item {
	right: 0;
	/* margin: 0 0 15px; */
	padding-bottom: 15px;
}
.portfolio .portfolio-item .portfolio-link {
	display: block;
	position: relative;
	margin: 0 auto;
	max-width: 400px;
}
.portfolio .portfolio-item .portfolio-link .portfolio-hover {
	position: absolute;
	width: 100%;
	height: 100%;
	background: rgba(254, 209, 54, 0.9);
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
	-webkit-transition: all ease .5s;
	transition: all ease .5s;
}
.portfolio .portfolio-item .portfolio-link .portfolio-hover:hover {
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
}
.portfolio .portfolio-item .portfolio-link .portfolio-hover .portfolio-hover-content {
	position: absolute;
	top: 50%;
	width: 100%;
	height: 20px;
	margin-top: -12px;
	color: #fff;
	font-size: 20px;
	text-align: center;
}
.portfolio .portfolio-item .portfolio-link .portfolio-hover .portfolio-hover-content i {
	margin-top: -12px;
}
.portfolio .portfolio-item .portfolio-caption {
	margin: 0 auto;
	/* padding: 25px; */
	padding: 15px 10px 0;
	/* max-width: 400px; */
	text-align: center;
	background-color: #fff;
}
.portfolio .portfolio-item .portfolio-caption h3 {
	margin: 0;
	/* font-size: 1.2rem; */
	text-transform: none;
}
.portfolio .portfolio-item .portfolio-caption p {
	margin: 0;
	font-size: 1rem;
	/* font-style: italic; */
	text-align: center;
}

/* Modal */
.portfolio-modal .modal-content {
	position: relative;
	width: 100%;
	outline: 0;
	height: 100%;
	min-height: 100%;
	overflow-y: scroll;
	padding: 20px 0;
	background-color: #fff;
	border: 0;
	border-radius: 0;
	background-clip: border-box;
	text-align: center;
	-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
	-moz-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.portfolio-modal .modal-content h2 {
	margin-bottom: 15px;
	font-size: 3em;
}
.fooportfolio-modal .modal-content img.img-centered {
    margin: 0 auto 30px;
}
.portfolio-modal .modal-content img {
	/* margin-bottom: 30px; */
	margin: 0 auto 30px;
}
.portfolio-modal .modal-content ul.list-inline {
	margin-top: 0;
	margin-bottom: 30px;
	padding-left: 0;
	list-style: none;
	margin-left: -5px;
}
.portfolio-modal .modal-content .list-inline > li {
	display: inline-block;
	padding-left: 5px;
	padding-right: 5px;
}

.portfolio-modal .close-modal {
	position: absolute;
	top: 25px;
	right: 25px;
	width: 55px;
	height: 55px;
	background-color: transparent;
	cursor: pointer;
}
.portfolio-modal .close-modal:hover {
	-moz-opacity: .3;
	filter: alpha(opacity=30);
	opacity: .3;
}
.portfolio-modal .close-modal .lr {
	z-index: 1051;
	width: 1px;
	height: 55px;
	margin-left: 25px;
	background-color: #222;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.portfolio-modal .close-modal .lr .rl {
	z-index: 1052;
	width: 1px;
	height: 55px;
	background-color: #222;
	-webkit-transform: rotate(90deg);
	-ms-transform: rotate(90deg);
	transform: rotate(90deg);
}

.portfolio-modal .container .xxcolumn {
	margin-right: auto;
	margin-left: auto;
}
.portfolio-modal .container {
    margin-right: auto;
    margin-left: auto;
    padding-left: 0px;
    padding-right: 0px;
}

.portfolio-modal .modal-content .modal-body {
    position: relative;
    padding: 20px;
    overflow-y: scroll;
}
.portfolio-modal .modal-content .modal-body hr {
    margin-top: 21px;
    margin-bottom: 21px;
    border: 0;
    border-top: 1px solid #ecf0f1;
}


/* ------------------------------------------------------------------ */
/* Sbs-list Template
/* ------------------------------------------------------------------ */

.sbs-list {
	overflow: hidden;
	/* border: 1px solid red; */
}
.sbs-list .columns {
	padding-top: .5rem;
	padding-bottom: .5rem;
	/* border: 1px dotted orange; */
}

.sbs-list .sbs-row.layout-right {
	flex-direction: row-reverse;
	/* border: 1px solid red; */
}

.sbs-list .sbs-row h2,
.sbs-list .sbs-row h3,
.sbs-list .sbs-row h4 {
	margin-top: 0;
}
.sbs-list .sbs-row p:last-child {
	margin-bottom: 0;
}

/* TODO: ".sbs-media" durch "figure" ersetzen */
.sbs-list .sbs-row .sbs-media,
.sbs-list .sbs-row figure {
	position: relative; /* für Text auf Bild */
	margin: 0;
	/* animation-fill-mode: none; */
	/* border: 1px solid blue; */
}
.sbs-list .sbs-row .sbs-media figcaption.figure-caption-below.text-left,
.sbs-list .sbs-row .sbs-media figcaption.figure-caption-below.text-right,
.sbs-list .sbs-row figure figcaption.figure-caption-below.text-left,
.sbs-list .sbs-row figure figcaption.figure-caption-below.text-right {
	padding: 0 2px;
	/* border: 1px solid blue; */
}
.sbs-list .sbs-row  figure {
	display: block;
	/* border: 1px solid blue; */
}


/* Overlay 'circle-play' icon */
.sbs-list .sbs-row .sbs-media a.lightbox-video::after,
.sbs-list .sbs-row figure a.lightbox-video::after {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #fff;
	color: var(--main-linkcolor);
	border-radius: 50%;
	font-family: var(--icon-font-family);
	font-size: calc(var(--icon-play-size) * 1.2444);
	line-height: calc(var(--icon-play-size) * 1.2444);
	font-weight: 900;
	font-style: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	content: "\f144";
}

.sbs-list .sbs-row .sbs-media img,
.sbs-list .sbs-row .sbs-media video,
.sbs-list .sbs-row figure img,
.sbs-list .sbs-row figure video {
	width: 100%;
	display: block;
}

/* Body Text */
.sbs-list .sbs-body.top-left {
	align-self: start;
	text-align: left;
}
.sbs-list .sbs-body.top-center {
	align-self: start;
	text-align: center;
}
.sbs-list .sbs-body.top-right {
	align-self: start;
	text-align: right;
}
.sbs-list .sbs-body.center-left {
	align-self: center;
	text-align: left;
}
.sbs-list .sbs-body.center-center {
	align-self: center;
	text-align: center;
}
.sbs-list .sbs-body.center-right {
	align-self: center;
	text-align: right;
}
.sbs-list .sbs-body.bottom-left {
	align-self: end;
	text-align: left;
}
.sbs-list .sbs-body.bottom-center {
	align-self: end;
	text-align: center;
}
.sbs-list .sbs-body.bottom-right {
	align-self: end;
	text-align: right;
}


/* ------------------------------------------------------------------ */
/* Services Template
/* ------------------------------------------------------------------ */

.services .service-col {
	text-align: center;
	padding-top: 1rem;
}
.services .service-col .fa-stack > i.fa-stack-2x {
	color: #2f6698;
}
.services h3.service-heading {
	margin-top: .2rem;
}
.services .xxtext-muted {
	color: #777;
}


/* ------------------------------------------------------------------ */
/* Socialmedia Template
/* ------------------------------------------------------------------ */

.socialmedia.section {
	margin-top: 0;
}
.socialmedia .container {
	/* margin: 0; */
	padding-top: 0;
	padding-bottom: 0;
	/* border-top: 1px dashed #ccc; */
}
.socialmedia .container-inner {
	padding-top: 1rem;
	padding-bottom: 1rem;
	border-top: 1px dashed #ccc;
}

.socialmedia .social-pages a {
	display: inline-block;
	vertical-align: middle;
	font-size: .9375rem;
}
.xxsocialmedia .social-pages a.blank {
	font-size: .9375rem;
}
.socialmedia .social-pages a i {
	margin-right: 5px;
	/* border: 1px solid green; */
}
/* Alle folgenden Kindelemente (ab dem 2.)*/
.socialmedia .social-pages a + a {
	margin-left: 2px;
	/* border: 1px solid blueviolet; */
}
/* Icon */
.socialmedia .social-pages i {
	display: inline;
	font-size: var(--socialmedia-social-pages-icon-size);
}
/* Benutzerdefinierte Symbolfarben */
.socialmedia .social-pages .fa-facebook {
	/* color: #0865fe; */
	color: #4267B2;
}
.socialmedia .social-pages .fa-instagram {
	color: #e4405f;
}
.socialmedia .social-pages .fa-whatsapp {
	color: #25D366;
}
.socialmedia .social-pages .fa-youtube {
	color: #FF0000;
}
.socialmedia .social-pages .fa-pinterest {
	color: #E60023;
}

.socialmedia .cols:first-child:has(.social-content),
.socialmedia .columns:first-child:has(.social-content) {
	margin-bottom: .5rem;
	/* border: 1px solid green; */
}
.socialmedia .cols:last-child:has(.social-content),
.socialmedia .columns:last-child:has(.social-content) {
	margin-top: .5rem;
	/* border: 1px solid red; */
}

.socialmedia p, .socialmedialinks p {
	margin-bottom: 0;
	font-size: 15px;
	font-style: italic;
	text-align: center;
	line-height: var(--line-height-sm);
}


/* ------------------------------------------------------------------ */
/* Text Template
/* ------------------------------------------------------------------ */

.xxmodular-text {
	padding-top: 1rem;
	padding-bottom: 1rem;
	/* border: 1px solid violet; */
}

.section.text figure.float-left,
.section.text figure.float-right {
	margin-top: 1rem;
	max-width: 50%;
}

.section.text figure.full-width {
	display: block;
	margin-bottom: 2rem;
}
.section.text figure.full-width > img {
	width: 100%;
}

.xxmodular-text h2 {
	margin-top: 0;
}
.section.text h2.column-layout {
	text-align: center;
}

.section.text h4,
.section.text .h4 {
	display: inline-block;
	/* background: #ddd; */
}

.section.text .cols.left,
.section.text .columns.left {
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
}

blockquote {
	margin-left: 0;
	padding: .4rem .8rem;
	/* border-left: .1rem solid #e7e9ed; */
	border-left: 1px solid var(--border-color);
}


/* ------------------------------------------------------------------ */
/* Animations (using Animate.css)
/* Sollten (immer?) in custom.css
/* ------------------------------------------------------------------ */



/* ------------------------------------------------------------------ */
/* justified Gallery
/* ------------------------------------------------------------------ */

.justified-gallery > a > .jg-caption, .justified-gallery > div > .jg-caption, .justified-gallery > figure > .jg-caption {
	/* padding: 5px; */
	/* background-color: #000; */
	/* color: #fff; */
	/* font-size: 12px; */
	font-weight: var(--base-font-weight-normal) !important;
	font-family: var(--base-font-family) !important;
	line-height: var(--line-height-sm);
}


/* ------------------------------------------------------------------ */
/* Plugin Shortcode Core
/* ------------------------------------------------------------------ */

.sc-notice > div:first-child:after {
	top: 4px;
}
.sc-notice.info > div:first-child:after {
	content: "Info";
}
.sc-notice.warning > div:first-child:after {
	content: "Warnung";
}
.sc-notice.note > div:first-child:after {
	content: "Hinweis";
}
.sc-notice.tip > div:first-child:after {
	content: "Tipp";
}


/** Spaltensatz **/
.sc-columns {
	margin-bottom: var(--paragraph-margin-bottom);
	/* Hinweis column-gap: 1rem plus .column padding */
	/* Achtung: mit !important können Angaben im Seiten-Markdown überschrieben werden! */
	column-gap: 1.4rem !important;
	/* column-width: 270px; */
	column-rule: 1px dotted silver;
}
.sc-columns p {
	margin-bottom: 1.4rem;
	line-height: var(--line-height-base);
}
.sc-columns h2 {
	margin-top: 0;
	margin-bottom: 1.4rem;
	font-size: 1.625rem;
	line-height: var(--line-height-base);
	text-align: left;
}
.sc-columns h3 {
	margin-top: 1.4rem;
	margin-bottom: 1.4rem;
	line-height: var(--line-height-base);
	break-after: avoid-column;
	-webkit-column-break-inside: avoid;
}


/* ------------------------------------------------------------------ */
/* Plugin Shortcode Gallery++
/* ------------------------------------------------------------------ */

.justified-gallery > a::before,
.justified-gallery > a::after {
	position: absolute;
	-moz-opacity: 0;
	filter: alpha(opacity=0);
	opacity: 0;
	-webkit-transition: var(--gallery-item-overlay-transition);
	-moz-transition: var(--gallery-item-overlay-transition);
	-o-transition: var(--gallery-item-overlay-transition);
	-ms-transition: var(--gallery-item-overlay-transition);
	transition: var(--gallery-item-overlay-transition);
	transition-delay: .1s;
}
.justified-gallery > a::before {
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	/* background: rgba(68, 68, 68, 0.5); */
	background: transparent;
	content: "";
	z-index: 1;
}
.justified-gallery > a::after {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: var(--light-color);
	font-family: var(--icon-font-family);
	font-size: 30px;
	line-height: 30px;
	font-weight: 900;
	font-style: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	content: "\f002";
	z-index: 2;
}
.justified-gallery > a:hover::before,
.justified-gallery > a:hover::after {
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
	-webkit-transition: var(--gallery-item-overlay-transition);
	-moz-transition: var(--gallery-item-overlay-transition);
	-o-transition: var(--gallery-item-overlay-transition);
	-ms-transition: var(--gallery-item-overlay-transition);
	transition: var(--gallery-item-overlay-transition);
	transition-delay: .1s;
}


/* ------------------------------------------------------------------ */
/* Plugin Shortcode Owl Carousel
/* ------------------------------------------------------------------ */

.owl-carousel {
	background: var(--light-color);
	/* border-top: 1px solid var(--border-color); */
	/* border-bottom: 1px solid var(--border-color); */
	border-top: none;
	border-bottom: none;
}
.xxowl-carousel .owl-item div {
	/* min-height: 1px; */
	height: 400px;
}

.owl-carousel .owl-item p {
	position: relative;
	margin: 0;
}
.fooowl-carousel .owl-item h3 {
	position: absolute;
	/* top: calc(50% - 1.3rem); */
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	margin: 0 auto;
	padding: 10px 15px;
	color: #fff;
	font-size: 1.55rem;
	font-weight: var(--base-font-weight-normal);
	line-height: 1.25;
	text-align: center;
	text-shadow: 0 0 4px #111, 0 0 4px #111, 0 0 4px #111, 0 0 4px #111, 0 0 4px #111;
}
.owl-carousel .owl-item h3 {
	position: absolute;
	/* top: calc(50% - 1.3rem); */
	bottom: 30px;
	right: 30px;
	/* transform: translateX(-50%); */
	width: auto;
	margin: 0 auto;
	padding: 5px 10px;
	/* background-color: #eee; */
	background-color: #ffc010;
	color: #333;
	font-size: 1.4rem;
	font-weight: var(--base-font-weight-normal);
	line-height: 1.25;
	text-align: center;
	display: inline-block;
	transform: rotate(-1.5deg);
}
.owl-carousel .owl-item h4 {
	position: absolute;
	top: calc(50% + 1.1rem);
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	margin: 0 auto;
	padding: 12px 15px;
	color: #fff;
	font-size: 1.3rem;
	font-weight: var(--base-font-weight-normal);
	line-height: 1.25;
	text-align: center;
	text-shadow: 0 0 4px #111, 0 0 4px #111, 0 0 4px #111, 0 0 4px #111, 0 0 4px #111;
}
.owl-carousel .owl-nav span {
	display: none;
}


/** Fuer animations.css **/
.show {
	-moz-opacity: 1;
	filter: alpha(opacity=100);
	opacity: 1;
}



/* ------------------------------------------------------------------ */
/* Media Queries
/* ------------------------------------------------------------------ */

/* Dieser Abschnitt nur für die mobile Navigation!
/* Der Breakpoint (Mobile-to-Desktop Umschaltpunkt) kann je nach Anzahl
/* der vorhandenen Menu-Items angepasst werden:
/* max-width: 1280px, 960px oder 840px
--------------------------------------------------------------------- */
@media only screen and (max-width: 960px) {

	#header .navbar-section {
		margin-right: 2rem;
	}
	#header .navbar-section.desktop-menu {
		display: none;
	}

	.dropmenu {
		display: none;
	}

	.navbar .button-wrapper {
		display: block;
	}

	.treemenu li a,
	.treemenu li a:visited,
	.tree li a,
	.tree li a:visited {
		font-size: 1.17647rem;
		white-space: normal;
		white-space-collapse: normal;
		text-wrap-mode: normal;
		/* border: 1px solid red; */
	}

}
@media only screen and (min-width: 961px) {

	.mobile-nav-open .overlay,
	.mobile-nav-open .button-wrapper,
	.mobile-nav-open .mobile-menu {
		display: none;
	}

}


@media only screen and (hover: none) and (pointer: coarse) {
	body.sticky-footer {
		height: auto;
		min-height: auto;
	}
}


/* Spectre xl */
@media only screen and (max-width: 1280px) {

	.xxhero .hero-body h1,
	.xxhero .hero-body h2 {
		font-size: 38px;
		line-height: 1.2em;
		/* background-color: navy; */
	}

}


@media only screen and (min-width: 992px) {
    .portfolio-modal .container {
        width: 970px;
    }
}


/* Spectre lg */
@media only screen and (max-width: 960px) {

	.xxhero .hero-body h1,
	.xxhero .hero-body h2 {
		font-size: 35px;
		line-height: 1.2em;
		border: 1px solid blue;
	}

}


/* Spectre md */
@media only screen and (max-width: 840px) {

	.hero h1 {
		font-size: 3rem;
	}
	.hero h2 {
		font-size: 1.75rem;
	}

	/* Sidebar befindet sich unterhalb Item */
	#sidebar {
		margin-top: 4rem;
		padding: 1rem;
		background: #eee;
	}
	#foosidebar h4 {
		text-align: center;
	}

	.extra-spacing:not(.col-12),
	:not(.col12) > .e-content {
		padding-right: 0;
	}

	#blog-hero .container {
		height: 300px;
		/* border: 1px solid greenyellow; */
	}

	/* Wechsel auf 1 Karte in der horizontalen */
	.cards .cards-grid {
		grid-template-columns: 1fr;
	}

	.portfolio-modal .modal-content {
		-webkit-box-shadow: none;
		-moz-box-shadow: none;
		box-shadow: none;
	}

	.sbs-list .sbs-row .sbs-media,
	.sbs-list .sbs-row figure {
		margin-bottom: 10px;
	}
	.sbs-list .sbs-row:not(:last-child) {
		padding-bottom: 2rem;
		/* border: 1px solid orange; */
	}
	.sbs-list .sbs-row .sbs-body.center-left {
		align-self: flex-start;
	}

}
@media only screen and (min-width: 841px) {

	/* ??? Wozu gehört dies? */
	body .goverlay {
		background: rgba(0, 0, 0, .85);
	}

}


@media only screen and (min-width: 768px) {
	.portfolio .portfolio-item {
		/* margin: 0 0 30px; */
		padding-bottom: 20px;
	}

	.portfolio-modal .container {
		width: 750px;
	}
}


/* Spectre sm */
@media only screen and (max-width: 600px) {

	.btn,
	.button {
		margin-top: 1rem;
	}

	#footer .cols .column:first-child,
	#footer .columns .column:first-child {
		padding-bottom: 1em;
	}

	#footer .list-inline {
		margin: 1rem 0 0;
		text-align: center;
	}

	.section.text figure.float-left,
	.section.text figure.float-right {
		max-width: 100%;
		width: 100%;
	}
	.section.text figure.float-left > img,
	.section.text figure.float-right > img {
		width: 100%;
	}

}


/* Spectre xs */
@media only screen and (max-width: 480px) {

	ul.tree {
		/* margin: 1rem 6rem 2rem 1rem; */
		margin-left: .5rem;
		margin-right: 1.5rem;
		font-size: 1.125rem;
		/* border: 1px solid red; */
	}

}


/* Print styles */
@media print {

	.no-print {
		display: none !important;
	}

	/* Kein Verschieben des Inhalts wenn #header mit .no-print */
	/* ...modulare Seiten */
	/* #start > #body-wrapper > .container, */
	/* #start .section:first-of-type:not(#body-wrapper), */
	#header.no-print ~ #main .section:first-of-type:not(#body-wrapper) {
		padding-top: 0;
	}
	/* ...normale Seiten ohne Hero */
	#header.no-print ~ #main > #body-wrapper > .container {
		padding-top: var(--container-padding-top);
		/* border: 2px solid blueviolet; */
	}

}

