/*
 * Theme Name: Wootstrap BS5
 * Theme URI: http://mehne.biz
 * Description: Template von Kai Meinhardt. Keine Kopien erlaubt. Von niemandem. :-)
 * Author: Kai Meinhardt
 * Author URI: http://mehne.biz
 * Version: 6.1
 * Template Version: 5.1.0-2022-11-02
 * Text-Domain: web-definer
 *
 */

/*
 * Copyright (C) Kai Meinhardt (mehne.biz) - All Rights Reserved
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * Proprietary and confidential
 * Written by Kai Meinhardt <info@mehne.biz>, 2016 - 2023
 */

/* kleiner reset */
*:focus,
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus,
button:focus {
	outline: none;
	box-shadow: none;
}


html {
	font-size: 10px;
	line-height: 1.667em;
}

/* Safari Problem mit horizontalem Scrollen */
/* html, body { */
	/* max-width: 100vw; */
	/* overflow-x: hidden; */

    /* scrollbar-gutter: stable both-edges; */ /** wieder deaktivieren - macht totale layout-probleme - vor allem auf dem mac von damian*/
    /* see here https://developer.mozilla.org/de/docs/Web/CSS/Reference/Properties/scrollbar-gutter */
    /* and here https://stackoverflow.com/questions/18548465/prevent-scrollbar-from-adding-up-to-the-width-of-page-on-chrome */
/* } */
/**/


body {
	/***/
	--main-color: #000;
	--main-typo-color: #000;
	--main-font-size: 1.8rem;

		
	margin: 0;
	padding: 0;
	/* font-family: 'Helvetica Neue LT Std', Arial, sans-serif !important; */
	/* font-family muss important sein für überschriften da diese in type.css von BS sonst überschrieben werden */
    /* scheinbar geht es besser üfer eine variable */
    --bs-body-font-family: 'Helvetica Neue LT Std', Arial, sans-serif;

	font-weight: 400;
	color: var(--main-typo-color);


	background-color: #fff;
	/* overflow-x: hidden; */ /* wird ja schon im html/body gesetzt */
	/**/
	/* --max-site-width: 1440px; */
	--max-site-width: 1920px;

	font-size: var(--main-font-size);

	--main-line-height: 1.1em;
	line-height: var(--main-line-height);

	opacity: 1;
	transition: opacity 1.4s ease-in-out;

	--logo-width-mobile: 69px;
    /* --logo-width-tablet: 111px; */
    /* --logo-width-tablet: 131px; */
    --logo-width-tablet: 107px; /* weil schriftgröße seit 17.2.26 bei 4.8rem liegt */
	--logo-width-desktop: 146px;

    /* res d spezifisch */
    --abstand-oben: 20px;
    --abstand-rechts: 14px;
    --abstand-unten: 20px;
    --abstand-links: 14px;

    --grid-abstand-unten: 32px;
    --standard-abstand-unten: 8px;
    --abstand-aus-der-mitte: 30px;

    --font-size-label: 1.4rem;
    /* --header-hoehe: 150px; */
    --header-hoehe: 114px; /* ich weiß nicht mehr wieso auf 150 erhöht wurde, aber auf damians wunsch wieder kleiner */

    --headline-size: 3.1rem;

    --toggler-icon-height: .3rem; /* wert aus figma: 3px */
}

@media (min-width:768px) {
    body {
        /* res d spezifisch */
        --abstand-oben: 41px;
        --abstand-rechts: 24px;
        --abstand-unten: 24px;
        --abstand-links: 24px;

        --grid-abstand-unten: 24px;
        --standard-abstand-unten: 10px;
        /* --abstand-aus-der-mitte: 30px; */
        --abstand-aus-der-mitte: var(--abstand-links);

        --font-size-label: 1.6rem;
        --header-hoehe: 159px;

        --headline-size: 4.8rem;

        --toggler-icon-height: .5rem; /* wert aus figma: 5px */
    }
}

@media (min-width: 992px) {
	body {
		--main-font-size: 2.4rem;
		font-size: var(--main-font-size);
		--main-line-height: 1.1em;
		line-height: var(--main-line-height);

        /* res d spezifisch */
        --abstand-oben: 37px;
        --abstand-rechts: 32px;
        --abstand-unten: 30px;
        --abstand-links: 32px;

        --grid-abstand-unten: 30px;
        --standard-abstand-unten: 12px;
        --abstand-aus-der-mitte: var(--abstand-links);

        --header-hoehe: 190px;

        --headline-size: 6.4rem;
        --font-size-label: 1.8rem;

        --toggler-icon-height: .55rem; /* wert aus figma: 5.5px */
	}
}

body.high-contrast {
	--wp--preset--color--lila: #000;
	--wp--preset--color--rot: #000;
	--wp--preset--color--hellblau: #fff;
}

body.page-id-125,
.post-type-archive-projekte {
    overflow-y:scroll;
}


p {
	line-height: var(--main-line-height); /* irgendwie klappt sonst das inline-verändern von schriftgrößen nicht */
	margin-bottom: 1rem;
}

@media(max-width:767px) {
	p {
		-moz-hyphens: auto;
		-webkit-hyphens: auto;
		-ms-hyphens: auto;
		hyphens: auto;
	}
}


b, strong {
	font-weight: 700;
}


/* BS5 reset */
/* verursacht mobil einen rand - der ist aber bei bildern nicht gewollt bei vielen Kunden
bei anderen seiten schon weil es die lesbarkeit verbessert mit mehr rand */
/*
.row {
	--bs-gutter-x: 15px!important;
}
@media (max-width:991px) {
	.row {
		margin-right: calc(-1 * var(--bs-gutter-x));
		margin-left: calc(-1 * var(--bs-gutter-x));
	}

	.row > * {
		padding-right: var(--bs-gutter-x);
		padding-left: var(--bs-gutter-x);
	}
}
@media (min-width:991px) {
	.row {
		--bs-gutter-x: 2.5rem!important;
	}
}
*/



.container-fluid.max-width-true {
	max-width: var(--max-site-width);
}

.container-fluid .container-fluid {
	padding-right: 0;
	padding-left: 0;
}

.is-content-justification-center > .container-fluid > .row {
	justify-content: center;
}
.justify-content-right,
.is-content-justification-right > .container-fluid > .row {
	justify-content: right;
}


.modal-body {
	padding: 0;
}


img {
	max-width: 100%;
	height: auto;
}
img.img-responsive {
	width: 100%;
	height: auto;
}

.wp-block-image {
	margin: 0; /* WP reset */
}

iframe {
	max-width: 100%;
}

.wp-block-embed figcaption,
.wp-block-video figcaption,
.wp-block-image figcaption {
	color: var(--main-typo-color);
	font-size: 1.6rem;
	line-height: 1.1em;
    hyphens: auto; /* auf Damians Wunsch 30.1.2026 - wegen Mitarbeitenden auf "Büro"-Seite */
}
@media (min-width:768px) {
    .wp-block-embed figcaption,
    .wp-block-video figcaption,
    .wp-block-image figcaption {
        font-size: 1.4rem;
    }
}
@media (min-width:768px) {
    .wp-block-embed figcaption,
    .wp-block-video figcaption,
    .wp-block-image figcaption {
        font-size: 1.8rem;
    }
}

.wp-block-embed.alignleft, .wp-block-embed.alignright, .wp-block[data-align="left"] > [data-type="core/embed"], .wp-block[data-align="right"] > [data-type="core/embed"] {
    /* wordpress inline reset */
    max-width: none!important;
}

/* wordpress klassen */
.alignright {
	float: right;
	margin-left: var(--standard-abstand-unten);
	margin-bottom: var(--standard-abstand-unten);
}

.alignleft {
	float: left;
	margin-right: var(--standard-abstand-unten);
	margin-bottom: var(--standard-abstand-unten);
}


.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
	text-align: center;

	margin-bottom: 25px;
}

/**/
@media (max-width:992px) {
	.full-size-mobile,
	.full-size-mobile > .container-fluid {
		padding-left: 0;
		padding-right: 0;
	}
}

/* WP6.2 reset */
body .is-layout-flex {
    display: flex;
	align-items: normal;
    flex-wrap: wrap;
}


/* bootstrap heading-reset */
h1,.h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: 700;
	/* font-family: "Helvetica Neue LT Std", Verdana, sans-serif; */
    /* --bs-body-font-family: "Helvetica Neue LT Std", Verdana, sans-serif; *//* neu und besser */
}
@media (max-width: 375px) {
	h1,.h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		-moz-hyphens: auto;
		-webkit-hyphens: auto;
		-ms-hyphens: auto;
		hyphens: auto;
	}
}
@media (max-width: 1400px) {
	h1,.h1 {
		-moz-hyphens: auto;
		-webkit-hyphens: auto;
		-ms-hyphens: auto;
		hyphens: auto;
	}
}

h1, .h1,
h1 a, h1 a:is(:hover, :focus, :active, :visited),
.h1 a, .h1 a:is(:hover, :focus, :active, :visited) {
	font-weight: 700;
	color: #000;
	font-size: var(--headline-size);
	line-height: 1em;
	text-decoration: none;	
}
h1, .h1 { margin-bottom: 1rem; }




.wp-block-latest-posts__post-title,
.wp-block-latest-posts__post-title:is(:hover, :focus, :active, :visited),
h2,
h2 a, h2 a:is(:hover, :focus, :active, :visited) {
	font-weight: 700;
	color: #000;
	font-size: 2.8rem;
	line-height: 1em;
	text-transform: none;
	text-decoration: none;
}
h2 { margin-bottom: 1rem; }

@media(min-width:992px) {
    .wp-block-latest-posts__post-title,
    .wp-block-latest-posts__post-title:is(:hover, :focus, :active, :visited),
	h2,
	h2 a, h2 a:is(:hover, :focus, :active, :visited) {
		font-size: 5.5rem;
		line-height: 1em;
	}
}

.wp-block-latest-posts__post-title {
	margin: 0;
	font-weight: 700;
    hyphens: auto;
}


h3,
h3 a, h3 a:is(:hover, :focus, :active, :visited) {
	font-weight: 600;
	font-size: 1.8rem;
	line-height: 1.1em;
	color: #000;
	text-transform: none;
	text-decoration: none;
}
h3 { margin-bottom: 1rem; }

@media (min-width: 768px) {
	h3,
	h3 a, h3 a:is(:hover, :focus, :active, :visited) {
		font-size: 2.4rem;
	}
}

@media (min-width: 992px) {
	h3,
	h3 a, h3 a:is(:hover, :focus, :active, :visited) {
		font-size: 2.6rem;
	}
}

/* unnötig für Kunden?
h1 + h2,
h2 + h3,
h1 + h3 {
	margin-top: -1rem;
}
*/


h4,
h4 a, h4 a:is(:hover, :focus, :active, :visited) {
	font-weight: 700;
	font-size: var(--main-font-size);
	line-height: 0.950em;
	padding-top: 0.15em;
	color: #000;
	text-decoration: none;
	position: relative;
}
h4 { margin-bottom: 1rem; }


@media (min-width: 992px) {
	h4,
	h4 a {
		font-size: var(--main-font-size);
		line-height: 0.950em;
		padding-top: 0.15em;
	}
}


h5,
h5 a, h5 a:is(:hover, :focus, :active, :visited) {
	font-size: 1.6em;
	line-height: 0.950em;
	padding-top: 0.15em;
	font-weight: 400;
	color: var(--main-typo-color);
	text-decoration: none;
	margin-bottom: .4em;
}


h6,
h6 a, h6 a:is(:hover, :focus, :active, :visited) {
	font-size: 1.167em;
	line-height: 0.950em;
	padding-top: 0.15em;
	font-weight: 900;
	color: var(--main-typo-color);
}


/* p + h1,
p + h2,
p + h3,
p + h4, */
/* p + ul, */
/* ul + h1,
ul + h2,
ul + h3,
ul + h4, */
/* p + ol, */
/* ol + h1,
ol + h2,
ol + h3,
ol + h4, */
p + blockquote,
blockquote + h1,
blockquote + h2,
blockquote + h3,
blockquote + h4,
.standard-block + .standard-block h2:first-of-type {
	margin-top: 2rem;
}


.btn-info a {
	position: relative;
}




/* Nur wenn Bootstrap-Slider verwendet wird: */
.carousel {
	/*overflow: hidden;*//* muss weg - sonst ist schatten aus .carousel-inner oben und unten abgeschnitten */
    margin: auto;
	z-index: 99;
}


.carousel.max-width-true {
	max-width: var(--max-site-width);
}


.carousel-fade .carousel-item {
	transition: opacity 0.5s linear;
}

/* .carousel-inner .carousel-item > *, */
.carousel-inner .carousel-item img,
.carousel-inner .carousel-item > a img {
	width: 100%;
	margin: auto;
	object-fit: cover;
	/*individuell*/
	/* min-width: 100%; */
	object-position: center center;
}


@media (min-width:992px) {
    .carousel-inner .slider-image {
        min-height: 573px;

        display: flex;
        /* align-items: center; */
    }
}

.carousel-item .wp-block-video,
.carousel-item .is-type-video {
	display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-item video,
.carousel-item .is-type-video * {
	width: 100%;
	height: 100%; 
}


.carousel-control-prev,
.carousel-control-next {
    opacity: 1;
	width: 40%;
    /* background-image: linear-gradient(90deg,rgb(255, 255, 255) 0%, rgba(0, 0, 0, 0) 100%); */

    /* res d spezifisch */
    justify-content: start;
    padding: calc(var(--abstand-links) + calc(var(--bs-gutter-x) * .5) );

    height: 50%;
    top: 50%;
    transform: translateY(-50%);
}

@media (min-width:768px) {
    .carousel-control-prev,
    .carousel-control-next {
        width: 30%;
    } 
}

@media (min-width:992px) {
    .carousel-control-prev,
    .carousel-control-next {
        width: calc(5% + var(--abstand-links) + var(--abstand-links) + calc(var(--bs-gutter-x) * .5) + calc(var(--bs-gutter-x) * .5));
    } 
}
@media (min-width:1920px) {
    .carousel-control-prev,
    .carousel-control-next {
        padding: var(--abstand-links);
    }
}

@media (min-width:1984px) {
    .carousel-control-prev,
    .carousel-control-next {
        padding: calc(var(--bs-gutter-x) * .5);
    }
}

.carousel-control-next {
    /* background-image: linear-gradient(90deg,rgba(0, 0, 0, 0) 0%, rgba(255, 255, 255, 1) 100%); */
    opacity: 1;

    /* res d spezifisch */
    justify-content: end;
}

.carousel-control-next-icon,
.carousel-control-prev-icon {
	width: 34px;
	height: 13px;
}
@media (min-width:768px) {
    .carousel-control-next-icon,
    .carousel-control-prev-icon {
        width: 48px;
        height: 18px;
    }
}
@media (min-width:992px) {
    .carousel-control-next-icon,
    .carousel-control-prev-icon {
        width: 54px;
        height: 20px;
    }
}

.carousel-control-next-icon {
  background-image: url(images/svg/Arrow_Left.svg);
  background-size: contain;
  transform: rotateZ(180deg);
}
.carousel-control-prev-icon {
  background-image: url(images/svg/Arrow_Left.svg);
  background-size: contain;
}

/* 
.carousel-indicators {
    position: relative;
	top: 15px;    

    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
@media (min-width:992px) {
    .carousel-indicators {
        position: absolute;
        top: auto;
        bottom: 6%;
    }
} */

.carousel-indicators [data-bs-target] {
	/* background-color: #fff; */
    /* opacity: .8; */

	height: 12px;
	width: 12px;
	margin-left: 4px;
    margin-right: 4px;
	border-radius: 50%;
}

/* .carousel-indicators [data-bs-target].active {
	background-color: #fff;
    opacity: 1;
} */


#playButton,
#pauseButton {
    display: none;
}

#playButton i,
#pauseButton i {
    color: var(--wp--preset--color--helllila);
}

.carousel-caption {
	position: absolute;
	top: auto;
	/* left: var(--abstand-links); */
    right: var(--abstand-rechts);
	bottom: var(--abstand-unten);

	width: 100%;
	margin: 0;
	padding: 0;

    /**/
    text-align: start;
    background-color: transparent;
    color: #000;
    font-size: var(--headline-size);
    line-height: 100%;
    font-weight: 700;

    /* spezielle res d Positionierung */
    left: 50%;
    transform: translateX(-50%);
    max-width: var(--max-site-width);
    margin: auto;
    padding-left: var(--abstand-links);
}


@media (min-width: 768px) {
	.carousel-caption {
        right: auto;
	}
}
/* @media (min-width: 1920px) { */
@media (min-width: 1984px) {
	.carousel-caption {
        padding-left: 0;
	}
}


.carousel-caption a,
.carousel-caption a:is(:hover, :focus, :active, :visited) {
	text-decoration: none;
}


/* Ende Bootstrap Slider */

/* Anpassungen individuell für Seite */
.page-header {
	border: 0;
	padding-bottom: 0;
	margin-top: 0px; /* BS reset */
	margin-bottom: 0px; /* BS reset */
	width: 100%; /* for position-fixed cases */
	position: relative;
	z-index: 9995; /* mehr als footer damit menü auch über footer liegt */

	box-shadow: none;

	/* individuell */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
	/* padding-top: 31px;
	padding-bottom: 31px; */
}
@media (min-width:992px) {
	.page-header {
		/* individuell */
		background-color: transparent;
		/* padding-top: 31px;
		padding-bottom: 31px; */
	}
}

.navbar {
    padding: 0; /* BS reset */
}

.navbar > .container-fluid.max-width-true {
    margin-left: var(--abstand-links);
    margin-right: var(--abstand-rechts);
}
@media (min-width:1984px) {
    .navbar > .container-fluid.max-width-true {
        margin-left: auto;
        margin-right: auto;
    }
}

/* mobiler Button */
.navbar-toggler {
	background-color: transparent;
	border: 0px;
	border-radius: 0px;
	padding: 0;

    padding-right: 0;

    /* margin-top: calc(var(--abstand-oben) + 7px); */
    /* margin-top: 7px; */
    margin-top: 28px; /* seit umbau für logo animation */
    /* margin-right: calc(var(--abstand-rechts) + calc(var(--bs-gutter-x) * .5)); */
    margin-right: calc(var(--bs-gutter-x) * .5);

    z-index: 101; /* mehr als navbar-collapse damit button immer anklickbar ist */

    width: 23px;
    height: 18px;
}
/* @media (min-width:768px) { .navbar-toggler { margin-top: calc(var(--abstand-oben) + 10px); } } */
@media (min-width:768px) { 
    .navbar-toggler { 
        /* margin-top: 18px; */
        /* margin-top: 52px;
        width: 42px; 
        height: 33px;  */

        /* seit 17.2.26 wegen neuer schriftgröße 4.8rem auf tablet angepasst */
        margin-top: 50px;
        width: 40px; 
        height: 30px; 
    } 
}
@media (min-width:992px) { 
    .navbar-toggler { 
        margin-top: 52px; /* seit umbau für logo animation */

        width: 46px; 
        height: 36px;
    } 
}


/* @media (min-width:1920px) { .navbar-toggler { margin-right: calc(var(--bs-gutter-x) * .5); } } */
/* @media (min-width:1952px) { .navbar-toggler { margin-right: calc(var(--bs-gutter-x) * .5); } } */
/* @media (min-width:1972px) { .navbar-toggler { margin-right:calc(var(--bs-gutter-x) * .5) !important; } } */
/* @media (min-width:1984px) { .navbar-toggler { margin-right:calc(var(--bs-gutter-x) * .5) !important; } } */

.navbar-toggler:focus,
.navbar-toggler:hover {
	background-color: transparent;
	box-shadow: none; /* BS5 reset */
}

/*
.navbar-toggler-close {
    display: inline-block;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0;
    transition: 1s all ease-out;
}

.navbar-toggler .navbar-toggler-close,
.navbar-toggler .navbar-toggler-icon {
    background-image: url(images/burger.svg);
	width: 100%;
	height: 100%;
	
	max-width: 22px;
	min-height: 18px;
	background-size: contain;

    position: absolute;
    top: 0;
    right: calc(var(--bs-gutter-x) * .5) !important;
   
}
@media (min-width:768px) {
    .navbar-toggler .navbar-toggler-close,
    .navbar-toggler .navbar-toggler-icon {
        max-width: 42px;
        min-height: 33px;
    } 
}
@media (min-width:992px) {
    .navbar-toggler .navbar-toggler-close,
    .navbar-toggler .navbar-toggler-icon {
        max-width: 46px;
        min-height: 36px;
    } 
}

.navbar-toggler:not(.collapsed) .navbar-toggler-icon {
    transform: scale(0);
    opacity: 0;
    transition: 500ms all ease-in;
}
.navbar-toggler:not(.collapsed) .navbar-toggler-close {
    opacity: 1;
    background-image: url(images/svg/close-x.svg);
    transition: 1s all ease-out;
}
*/

/* mobiler button für res d komplett anders weil animation rein soll */
.o-burger-button > span {   
  display: block;
  position: absolute;
  height: var(--toggler-icon-height);
  width: 100%;
  background: black;
  opacity: 1;
  left: 0;
  transform: rotate(0);
  transition: .25s ease-in-out;

  transition-delay: 0s;
}

.o-animate-in-show {
    --animation: even;
  animation-name: var(--animation);
  animation-duration: .3s;
  animation-fill-mode: both;
  animation-timing-function: ease-in-out;
}
/* .o-animate-in {
  opacity: 0;
} */

.o-burger-button > span:nth-child(1) {
  top: 0;
}

.o-burger-button:not(.collapsed) > span:nth-child(1) {
  top: 6px;
  width: 0%;
  left: 50%;

    /* transition-delay: 0.3s; */
}

.o-burger-button > span:nth-child(2),
.o-burger-button > span:nth-child(3) {
  top: calc(50% - (var(--toggler-icon-height) / 2));
}
.o-burger-button:not(.collapsed) > span:nth-child(2) {
  transform: rotate(45deg);
    /* transition-delay: 0.3s; */
}
.o-burger-button:not(.collapsed) > span:nth-child(3) {
  transform: rotate(-45deg);
    /* transition-delay: 0.3s; */
}

.o-burger-button > span:nth-child(4) {
  top: calc(100% - var(--toggler-icon-height));
}

.o-burger-button:not(.collapsed) > span:nth-child(4) {
  top: 6px;
  width: 0%;
  left: 50%;
    /* transition-delay: 0.3s; */
}

/* Ende mobiler Button */



.navbar-brand {
	/* bootstrap resets */
	line-height: 100%;
	height: auto;
	padding-top: 0;
	padding-bottom: 0;
	/* individuell */
	display: block;
	max-width: 100%; /* damits nicht über rahmen ragt */

	width: calc(var(--logo-width-mobile) + calc(var(--bs-gutter-x) * .5) ); 
    margin-top: var(--abstand-oben);
    /* margin-left: var(--abstand-links); */
	margin-right: auto;

    padding-left:calc(var(--bs-gutter-x) * .5) !important;
}
@media (min-width:768px) {
	.navbar-brand {
		width: var(--logo-width-tablet);
		flex: 0 0 var(--logo-width-tablet);
	}
}

@media (min-width:992px) {
	.navbar-brand {
		width: var(--logo-width-desktop);
		flex: 0 0 var(--logo-width-desktop);
	}
}

/* @media (min-width:1920px) {
	.navbar-brand {
		margin-left: calc(var(--bs-gutter-x) * .5);
	}
} */

/* @media (min-width:1984px) {
	.navbar-brand {
		margin-left: 0;
	}
} */

.logo {
	display: block;
	
	text-indent: 0px;
	width: 100%;
	height: 100%;
	object-fit: contain;
	/* individuell */

}


.nav {
    /* individuell */
    padding-top: calc(var(--abstand-oben) + 1px);
    height: 100%;
    flex-direction: column;
    width: 100vw;
}



/* .navbar-collapse, */
#navbar {
	position: absolute;
	z-index: 100;

	/* individuell */
	left: 0; /*wegen fixer navbar - sonst hängt menü nicht links */
	/*top: 100%;*/ /*wegen fixer navbar - sonst hängt menü am oberen bildschirmrand*/
	top: 0px;
	background-color: rgba(255,255,255,1);
	height: auto;

    /* res d spezifisch */
    position: fixed;
    bottom: 0;
}

#navbar,
/* .navbar-collapse, */
/* .navbar-collapse.collapsing, */
.nav {
    height: 100%;
    transition: none;
    position: fixed;
    flex-direction: column;
    width: 100%;
}
#navbar {
    transform: translateX(100%);
    transition: transform 300ms ease-in-out;
}

#navbar.show {
    transform: translateX(0);
    transition: transform 300ms ease-in-out;
}

 #navbar.collapsing:not(.show) {
        transition: height 0s, transform 300ms ease-in-out; /* der zweite wert nach dem komma ist wichtig */
        height: 100%;
    }
    #navbar:not(.show) {
        display: block;
    }

@media (min-width: 768px) {

	/* .navbar-collapse, */
    #navbar {
		position: fixed;
		width: auto;
		padding: 0;

		/* individuell */
        left: auto;
        right: 0;
	}

    #navbar,
    /* .navbar-collapse, */
    .navbar-collapse.collapsing,
    .nav {
        width: calc(50% + var(--abstand-aus-der-mitte));
    }

 
   
    
}

.navbar-collapse li {
	width: 100%;
}

.navbar-collapse li:last-of-type {
    margin-bottom: var(--abstand-unten);
}


/* Menü - Ebene 1 und tiefer */
.wp-block-navigation-item a, 
.nav > li a {
	color: #000;
	font-size: var(--headline-size);
	/* line-height: 1.7em; */
	line-height: 1em;
	font-weight: 700;

    text-transform: none;
	text-decoration: none;

	display: block;

	padding-top: 0px;
	padding-bottom: 0px;
	padding-left: calc(var(--abstand-links) + calc(var(--bs-gutter-x) * .5));
	padding-right: 30px;

	text-align: left;

    /* transition: all 300ms ease-in-out;
    transform: skewX(0deg); */
}

@media (min-width: 768px) {
	.wp-block-navigation-item a, 
	.nav > li a {
		padding-left: calc(var(--abstand-aus-der-mitte) + calc(var(--bs-gutter-x) * .5));
	}
}

@media (min-width: 992px) {
	.wp-block-navigation-item a, 
	.nav > li a {
		color: #000;

		line-height: 1em;
		font-weight: 700;
		text-align: left;

		background: transparent;

		padding-top: 0px;
		padding-bottom: 0px;
		padding-left: calc(var(--abstand-aus-der-mitte) + calc(var(--bs-gutter-x) * .5));
		padding-right: 20px;
	}
}


/* Menü - Ebene 1 */
/*
.wp-block-navigation-item > a, 
.nav > li > a {
	font-size: 8rem;
	line-height: 0.863em;
}
*/

.wp-block-navigation-item a:is(:hover, :focus), /* since WP5.9 */
/* .nav > li.current-menu-item > a,
.nav > li.current-menu-parent > a,
.nav > li.current-menu-ancestor > a, */
.nav > li > a:focus,
.nav > li > a:hover,
/* .nav .show > a, */
.nav > li:focus > a:not([href]):not([tabindex]),
.nav > li:hover > a:not([href]):not([tabindex]) {
	/*reset*/
	text-decoration: none;
	position: relative;
	/*individuell*/
	/* font-style: italic; */
    /* es soll animiert werden. das geht nicht mit italic siehe
    https://stackoverflow.com/questions/18798821/fade-from-normal-text-to-italics-text-smoothly */
    /* transition: all 300ms ease-in-out;
    transform: skewX(-16deg); */
    font-style: italic;
}



@media (min-width: 992px) {
	.nav > li {
		/*flex: 1 1 auto !important;*/ /* verteilt menüpunkte je nach platz */
		flex: 0 1 auto !important; /* verteilt menüpunkte nicht - padding im <a> nötig */
	}

	/* nur nötig wenn flex nicht 1 1 auto */
	.wp-block-navigation-item:last-child a, 
	.nav > li:last-child a {
		padding-right: 0px;
	}
	/**/
	
	/*
	.nav > li > a {
		font-size: 3.2rem;
		line-height: var(--main-line-height);
	}
	
	*/
	.nav > li.current-menu-item > a,
	.nav > li.current-menu-parent > a,
	.nav > li.current-menu-ancestor > a,
	.nav > li > a:focus,
	.nav > li > a:hover,
	.nav .show > a,
	.nav > li:focus > a:not([href]):not([tabindex]),
	.nav > li:hover > a:not([href]):not([tabindex]) {
		text-decoration: none;
	}
	
}





.menu-item-has-children {
	cursor: pointer;
	position: relative; /*for position of menu level 3*/
	background: transparent; /*mobile*/
}
@media all and (min-width: 992px) {
	.menu-item-has-children {
		position: relative; /*for position of menu level 3*/
	}
}

.dropdown-toggle::after {
	/* BS4 reset*/
	display: none;
}

/* Untermenüs */

/* ============ ab BS5 Hauptmenü auch bei hover zeigen ============ */
@media all and (min-width: 992px) {
	.navbar .menu-item>.dropdown-menu{ display: none; }
	.navbar .menu-item:hover>.dropdown-menu{ display: block; }
}	
/* ============ desktop view .end// ============ */


.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container, /* neuer WP5.9 selektor */
.dropdown-menu[data-bs-popper], /*neuer bs5 selektor */
.dropdown-menu {
	/*resets*/
	list-style: none;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
	font-size: 100%;

	/*mobile*/
	position: static;
	width: auto;
	background-color: rgba(255,255,255,0);
	padding: 0;

	/* WP5.9 reset */
	left: 0 !important;

	/* individuell */
}

@media (min-width: 992px) {
    .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container, /* neuer WP5.9 selektor */
	.dropdown-menu[data-bs-popper],
	.dropdown-menu {
		background-color: transparent;
	}

}


.wp-block-navigation :where(.wp-block-navigation__submenu-container) .wp-block-navigation-item__content,
.dropdown-menu li a {
	color: #000;
	background-color: transparent;
	font-size: 1.8rem;
	font-weight: 400;
	text-transform: none;
	text-align: center;
	margin-bottom: 1em;
}

.dropdown-menu li.current-menu-item > a,
.dropdown-menu li.current-menu-parent > a,
.dropdown-menu li.current-menu-ancestor > a,
.dropdown-menu li > a:focus,
.dropdown-menu li > a:hover,
.dropdown-menu .show > a,
.dropdown-menu li:focus > a:not([href]):not([tabindex]),
.dropdown-menu li:hover > a:not([href]):not([tabindex]) {
	color: var(--wp--preset--color--lila-headline);
	background-color: transparent;
}


@media (min-width: 992px) {
	.wp-block-navigation :where(.wp-block-navigation__submenu-container) .wp-block-navigation-item__content,
	.dropdown-menu li a {
		color: #000;
		text-align: left;
	}

	.dropdown-menu li.current-menu-item > a,
	.dropdown-menu li.current-menu-parent > a,
	.dropdown-menu li.current-menu-ancestor > a,
	.dropdown-menu li > a:focus,
	.dropdown-menu li > a:hover,
	.dropdown-menu .show > a,
	.dropdown-menu li:focus > a:not([href]):not([tabindex]),
	.dropdown-menu li:hover > a:not([href]):not([tabindex]) {
		/*individuell*/
		color: var(--wp--preset--color--lila-headline);
		background-color: transparent;
	}
}



/* Menü dritte ebene */
.dropdown-menu .dropdown-menu li::before {
	display: inline;
	color: var(--main-color);
	padding-right: 10px;
}
@media (min-width: 992px) {.dropdown-menu .dropdown-menu li::before {display: none;}}


.dropdown-menu .dropdown-menu li a {
	font-weight: 200;
	text-transform: none;
	letter-spacing: 0;
}

/* end menü dritte ebene */




/* polylang custom stuff */
/*
.pll-switcher {
	max-width: 100%;
}


.pll-switcher .btn {
	padding: 0;
	width: 100%;
	background:transparent;
}

.pll-switcher .btn img {
	width: 55px;
}


.pll-switcher .dropdown-menu {
	left: auto;
	right: 0;
	min-width: 170px;
	background-color: var(--main-color);
	background-image: none;
    border-radius: 4px;
}

.lang-item a img {
    margin-right: 10px;
}


.pll-switcher .dropdown-menu li a {
	display: flex;
	align-items: center;
	padding: 8px 16px 0px 8px;
	background-color: transparent;
	color: #fff;
}
.pll-switcher .dropdown-menu li a img {
	width: 55px;
	height: auto;
}
*/
/* end polylang custom stuff */


/* diqui header buttons */
.header-buttons {
    display: inline-flex;
    flex: 1 1 100%;
    text-align: center;
    align-items: flex-start;

    font-size: 1.5rem;
}

@media (min-width: 992px) {
    .header-buttons {
        flex: 1 1 50%;
        margin-left: calc(50% - 596px);
        text-align: center;
        font-size: var(--main-font-size);
    }
}

.header-buttons a,
.header-buttons a:is(:hover, :focus, :active, :visited) {
    color: #152547;
    font-weight: 700;
}

/* ende diqui header buttons */



/* Breadcrumb */
.breadcrumb {
	/* BS reset */
	background: none;
	padding: 0;
	/* individuell */
	font-weight: 600;
}

.breadcrumb > span:after {
	content: '>';
	display: inline-block;
	padding-left: 15px;
	padding-right: 15px;
}
.breadcrumb > span:last-child:after {
	content: normal;
}


/* MAIN */
main {
	/* für den parallax */
	position: relative;
	/* individuell */
	/*z-index: 9980;*/ /* mehr als header, damit schatten verschwindet*/
	/* is großer mist, weil dadurch das mobile menü unsichtbar ist und auch die untermenüs auf desktop*/
    margin-left: var(--abstand-links);
    margin-right: var(--abstand-rechts);

    padding-top: var(--header-hoehe);

    transition: margin 300ms;
}
/* res d abstand nach oben wegen fixed header */
.wp-singular main {
    padding-top: var(--header-hoehe);
}
.wp-singular.page-id-125 main { /* post archiv seite */
    padding-top: var(--header-hoehe);
}
 
/* ich glaub das muss für res d raus */
/*
main > .wp-block-web-definer-column-container > .container-fluid {
    padding-left: 0;
    padding-right: 0;
}
*/

main a,
main a:is(:hover, :focus, :active, :visited) {
	color: var(--wp--preset--color--schwarz);
	text-decoration: none;
	font-weight: 700;
}
main a:is(:hover, :focus, :active, :visited) {
	font-style: italic;
}

main p.fw-normal > a,
main p.fw-normal > a:is(:hover, :focus, :active, :visited) {
    font-weight: inherit;
}


main a:not(:has(img)):not(.projekt-liste-item),
main a:not(:has(img)):not(.projekt-liste-item):is(:hover, :focus, :active, :visited) {
    display: inline-flex;
    align-items: center;
}
main a:not(:has(img)):not(.projekt-liste-item):before {
    display: block;
        flex-shrink: 0;
        flex-basis: auto;
        content: url("images/svg/www_251013_pfeil.svg");
        padding-right: 6px;
        width: 39px;
}


.post-password-form {
	margin-top: 35vh;
	margin-left: 15%;
}


/* LISTEN */

/* 2022 - ein neuer versuch ::marker zum laufen zu bringen */
/* geht noch nicht in safari version 14 - erst ab 15 und die haben viele noch nicht */
/* dieser teil kann später einfach getauscht werden also ::before wird zu ::marker */
main ul, main ol {
	padding-left: 8px; /* BS5 hat 20px aber das passt nur für OL nicht für UL */
    margin-bottom: 1em;
}

main ol li,
main ul:not(.wp-block-latest-posts__list):not(.wp-block-latest-posts) li {
	list-style-type: none;
	list-style-position: outside;
	padding-left: 2rem;
}

main ol:not(.carousel-indicators) li::before {
	content: counter(list-item) ".";

	color: #000;
	font-size: inherit;
	font-weight: 400;

	text-align: right;
}

main ul:not(.slick-dots):not(.pagination):not(.blocks-gallery-grid):not(.wp-block-latest-posts__list):not(.wp-block-latest-posts):not(.pll):not(.tribe-events-sub-nav):not(.tribe-events-c-nav__list):not(.tribe-events-c-top-bar__nav-list):not(.google-visualization-tooltip-item-list) li::before {
	content: "−";

	/* color: var(--wp--preset--color--lila-headline); */
	color: var(--wp--preset--color--schwarz);
	font-size: inherit;
	font-weight: 400;

	background-image: none;
	background-repeat: no-repeat;
	background-size: 5.8px 11.4px;
	display: inline-block;
	width: 0.58rem;
	height: 1.14rem;
}
/* ENDE dieser teil kann später einfach getauscht werden also ::before wird zu ::marker */
/* diese anpassungen sind nötig weil sich before anders verhällt als marker und wir marker wegen safari nicht nehmen dürfen */
main ol:not(.carousel-indicators) li::before {
	margin-left: calc(-15px - 1rem);
	padding-right: 1rem;
}
@media (min-width:992px) {
	main ol:not(.carousel-indicators) li::before {
		margin-left: calc(-15px - 1rem);
		padding-right: 1rem;
	}
}
/* scheint für ul un ol unterschiedlich zu sein */
main ul:not(.slick-dots):not(.pagination):not(.blocks-gallery-grid):not(.wp-block-latest-posts__list):not(.wp-block-latest-posts):not(.pll):not(.tribe-events-sub-nav):not(.tribe-events-c-nav__list):not(.tribe-events-c-top-bar__nav-list):not(.google-visualization-tooltip-item-list) li::before {
	margin-left: calc(-2rem);
	padding-right: 2rem;
}
/**/

/* ENDE LISTEN */



main img {
	max-width: 100%;
	height: auto;
}

figure {
	max-width: 100%;
	margin: 0;
}

figure.h-100 > * {
	height: 100%;
}

/* .size-full:not(.is-resized), */
.size-full:not(.is-resized) img {
	width: 100%;
}

figure.wp-block-image.h-100 img {
	object-fit: cover;
}



main .wp-caption-text {
	background: #fff;
	color: rgb(70, 70, 70);
	padding-bottom: 24px;
	padding-left: 28px;
	padding-right: 27px;
	font-size: 0.833em;
}


.img-round, .img-round img {
	border-radius: 50%; /* only works on square images */
}

.size-square {
	max-width: 370px;
	margin-left: auto;
	margin-right: auto;
}



.has-small-font-size,
.has-small-font-size a,
.editor-styles-wrapper .has-small-font-size, 
.editor-styles-wrapper .has-small-font-size a {
	font-size: 90%;
	text-decoration: none;
	font-weight: 300; /* individuell */
}

.has-huge-font-size,
.has-huge-font-size a,
.has-larger-font-size,
.has-larger-font-size a,
.editor-styles-wrapper .has-huge-font-size,
.editor-styles-wrapper .has-huge-font-size a,
.editor-styles-wrapper .has-larger-font-size,
.editor-styles-wrapper .has-larger-font-size a {
    font-size: 2rem;
	line-height: 1.4em;
	font-weight: 400;
	text-decoration: none;
}
@media(min-width:992px) {
	.has-huge-font-size,
	.has-huge-font-size a,
	.has-larger-font-size,
	.has-larger-font-size a,
	.editor-styles-wrapper .has-huge-font-size,
	.editor-styles-wrapper .has-huge-font-size a,
	.editor-styles-wrapper .has-larger-font-size,
	.editor-styles-wrapper .has-larger-font-size a {
		font-size: 4.2rem;
	}
}


/* Hintergründe */



/* bg-lila */
.has-lila-background-color .container-fluid.max-width-true, 
.bg-lila { 
	background-color: var(--wp--preset--color--lila-dropdown);	
	color: #fff; 
}


.has-lila-background-color h1, 
.bg-lila h1,
.has-lila-background-color h2, 
.bg-lila h2,
.has-lila-background-color h3, 
.bg-lila h3,
.has-lila-background-color h4, 
.bg-lila h4,
.has-lila-background-color h5, 
.bg-lila h5,
.has-lila-background-color h6, 
.bg-lila h6 {
	color: #fff;
}

/* bg-rot */
.has-rot-background-color .container-fluid.max-width-true, 
.bg-rot { 
	background-color: var(--wp--preset--color--lila-headline);	
	color: #fff; 
}


.has-rot-background-color h1, 
.bg-rot h1,
.has-rot-background-color h2, 
.bg-rot h2,
.has-rot-background-color h3, 
.bg-rot h3,
.has-rot-background-color h4, 
.bg-rot h4,
.has-rot-background-color h5, 
.bg-rot h5,
.has-rot-background-color h6, 
.bg-rot h6 {
	color: #fff;
}

/* bg-hellblau */
.has-hellblau-background-color .container-fluid.max-width-true, 
.bg-hellblau { 
	background-color: var(--wp--preset--color--hellblau);
}

/* bg-grau */
.has-grau-background-color .container-fluid.max-width-true, 
.bg-grau { 
	background-color: var(--wp--preset--color--grau);
}


/* gradient */
.bg-blau-lila {
    background: linear-gradient(to right, rgba(119,118,255,1) 0%, rgba(173,44,241,1) 100%);
    color: #fff;
}



.rounded-3 {
	border-radius: 1rem !important;
}

/* Ende Hintergründe */



/* BUTTONS */
button {
	cursor: pointer;
}

button:focus {
	outline: none;
}

.btn {
	cursor: pointer;
	display: inline-block;
	text-decoration: none;
	max-width: 100%;
	text-align: center;
	border-radius: 0;
	font-weight: 400;
	border: none;
	font-size: inherit;

}

.w-100>.btn,
.wp-block-web-definer-bs5-button.w-100 .btn-primary {
	width: 100% !important;
}


/*
.btn-primary,
.btn-primary:hover,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:focus,
main a.btn-primary,
main a.btn-primary:not(:disabled):not(.disabled):active,
main a.btn-primary:hover,
main a.btn-primary:focus  {
	padding: 10px 25px;
	background: var(--wp--preset--color--dunkelgrau);
	color: #fff;
	border: 1px solid var(--wp--preset--color--dunkelgrau);
	font-weight: 400;
	font-size: 2.1rem;
}
*/
/* sind die ganzen klassen mit main noch nötig? */
.btn-primary,
.btn-primary:is(:hover, :focus, :active, :visited) {
	/* reset */
	text-decoration: none;

	/**/
	padding: 7px 12px 7px 12px;
	background: var(--wp--preset--color--orange-button);
	border: 1px solid var(--wp--preset--color--orange-button);

	color: #fff;
	font-size: 2rem;
    font-weight: 700;

	margin-top: 0em;
	margin-bottom: 0em;
	
	border-radius: 10px;
}

.alignright .btn-primary,
.text-end .btn-primary {
	text-align: right;
	margin-bottom: 0;
}

.btn-secondary,
.btn-secondary:is(:hover, :focus, :active, :visited) {
	/* reset */
	text-decoration: none;

	/**/
	padding: 7px 12px 7px 12px;
	background: var(--wp--preset--color--lila-dropdown);
	border: 1px solid var(--wp--preset--color--lila-dropdown);
	color: #fff;
	font-size: var(--main-font-size);
	
	margin-top: 0em;
	margin-bottom: 0em;
	border-radius: 5px;
}
.btn-secondary a,
.btn-secondary a:is(:hover, :focus, :active, :visited) {
	color: #fff!important;
}

.btn-info,
.btn-info:is(:hover, :focus, :active, :visited) {
	/* reset */
	text-decoration: none;

	/**/
	padding: 0;
	background: transparent;
	border: 1px solid transparent;
	color: #000!important;
	font-size: var(--main-font-size)!important;
	
	margin-top: 0em;
	margin-bottom: 0em;
	border-radius: 0;
}
.btn-info:is(:hover, :focus, :active, :visited) {
	font-style: italic;
}


.btn-primary, .btn-secondary, .btn-info {
	position: relative;
	
}
/*
.btn-primary:after, .btn-secondary:after, .btn-info:after {
	content: "»";
	position: absolute;
	right: 10px;
}
*/


.text-semibold {
	font-weight: 600;
}

#fixed-sidebar {
	position: fixed;
	z-index: 99999;
    right: 0;
    top: 33%;
	overflow: auto;
	
	/*box-shadow:0 0 13px 8px rgba(109,111,111,.8);*/
	/*box-shadow:0 0 7px 0 rgba(109,111,111,.8);*/
	/*background-color: var(--main-color);*/
}



.social-icon {
	display: inline-block;
    margin: 15px;
}
    

.search-form-container {
	padding-top: 0;
	z-index: 1;
	width: auto;
}

input[type="search"].search-field {
	height: 43px;
    box-shadow: 0 0 7px 3px rgba(0,0,0,.27);
    border-radius: 0;
}
@media(min-width:768px){
	input[type="search"].search-field {
		height: 56px;
	}
}

.header-search input[type="submit"] {
	font-family: "Font Awesome 5 Free";
	font-size: 1.333em;
	font-weight: 900;
	padding: 7px;
    background: transparent;
    border: none;
    margin-left: -41px;
    border-radius: 4px;
    cursor: pointer;
    color: lightgray;
}


/* Allgemeine FORMS STYLES */

input[type="number"],
input[type="date"],
input[type="text"],
input[type="email"],
input[type="search"],
input[type="tel"],
select,
textarea,
.form-control {
	display: block;
    max-width: 100%;
    padding: 15px 5px;
    height: auto;
    margin: 0;
    border: none;
    box-shadow: none;
    border-radius: 0px;

	font-size: var(--main-font-size);
	
	border: 1px solid var(--wp--preset--color--helllila);
}


.input-group-prepend .input-group-text {
	background: var(--wp--preset--color--helllila);
	border: #000;
	height: 100%;
	padding-left: 16px;
	padding-right: 20px;
  }

input[type="checkbox"] {
	/*
	-webkit-appearance: none;
	-moz-appearance: none;*/
	/* appearance muss weg sonst sieht man keine haken in checkboxen etc.*/
	cursor: pointer;

	margin-right: 15px;

	border: 0;
	width: 32px;
	height: 32px;
	background-color: #fff;
}

label {
	width: 100%;
}

textarea {
	width: 100%;
}


@media(min-width:768px) { .form-group { margin-bottom: 2rem; } }


/* contact form 7 */
.wpcf7-list-item {
	display: block;
	width: 100%;
}

.wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	flex-wrap: nowrap;
}

/* ENDE FORMS STYLES */



/* erstmal die infos zu pflichtfeld von oben nach unten */
.nf-form-layout > form > div {
	display: flex;
	flex-direction: column;
}
.nf-form-layout > form > div > .nf-before-form-content {
	order: 3;
	width: 100%;
	background-color: var(--wp--preset--color--lila-dropdown);
	padding-left: 15px;
	padding-right: 15px;
}
.nf-form-layout > form > div > .nf-before-form-content nf-section {
	display: block;
	width: 100%;
	max-width: var(--max-site-width);
	margin: 15px auto 15px auto;

}

/**/

.nf-field {
	display: flex;
	flex-direction: row;

	width: 100%;
	max-width: var(--max-site-width);
	margin: auto;
}

nf-field > .nf-field-container,
nf-field > .field-wrap {
	display: flex;
	flex-flow: row wrap !important;
	flex: 1 1 auto;
	padding-left: 15px;
	padding-right: 15px;
}
@media (min-width:992px) {
	nf-field > .nf-field-container,
	nf-field > .field-wrap {
		padding-left: 0;
		padding-right: 0;
	}
}

.nf-field .table > :not(caption) > * > * {
	padding-left: 0;
}



/* reset */
#ninja_forms_required_items, .nf-field-container {
	margin: 0!important;
	padding-top: 45px;
	padding-bottom: 10px;
}
@media (min-width:992px) {
	#ninja_forms_required_items, .nf-field-container {
		padding-bottom: 50px;
	}
}


.list-checkbox-wrap .nf-field-element li::before, 
.list-image-wrap .nf-field-element li::before, 
.list-radio-wrap .nf-field-element li::before {
	content: normal;
	display: none;
}


.nf-field-label label {
	margin-bottom: .5em !important;
}

.list-checkbox-wrap .nf-field-element li, 
.list-image-wrap .nf-field-element li {
	clear: both;
}

/* listen mit checkboxen bekommen rand */
.list-checkbox-wrap li {
	border-top: 1px solid #ecb664;
}
.list-checkbox-wrap li:last-child {
	border-bottom: 1px solid #ecb664;
}

.list-checkbox-wrap li input {
	margin-top: 12px !important;
	margin-bottom: 8px !important;
}
.list-checkbox-wrap li label {
	margin-top: 6px !important;
	margin-bottom: 8px !important;
}
/*********/





/* tabellen  */
.table {
	--bs-table-striped-bg: #f9efeb;
}

.table-bordered > :not(caption) > * {
	border-color: #ecb664;
	border-width: 1px 0px 1px 0px;
}

.table-bordered > :not(caption) > * > * {
	border-width: 0px;
}


/* abstand checkbox zu label */
.list-checkbox-wrap .nf-field-element li input, .list-checkbox-wrap .nf-field-element ul input, .list-image-wrap .nf-field-element li input, .list-image-wrap .nf-field-element ul input, .list-radio-wrap .nf-field-element li input, .list-radio-wrap .nf-field-element ul input {
	margin-right: 17px!important;
}
.list-checkbox-wrap .nf-field-element li label, .list-image-wrap .nf-field-element li label, .list-radio-wrap .nf-field-element li label {
	margin-left: 0!important;
}
/**/



/* fehler und hinweise */
.nf-after-field {
	width: 100%;
}
.nf-after-field>* {
	display: block;
}

.nf-after-form,
.nf-after-form-content {
	margin: auto;
	width: 100%;
	max-width: var(--max-site-width);
}

/* spezielle felder anpassen */



/*
 * end caldera / ninja forms
 */


blockquote {
	background-color: var(--wp--preset--color--dunkelgrau);
	background-image: url(images/bg-mauer.png);
	background-repeat: no-repeat;
	background-size: cover;
	padding: 55px 55px 40px 30px;
	position: relative;
	/* WP5+ erzwingt word-break daher ergänzen wir wenigstens bindestriche */
	hyphens: auto;
}
@media (min-width:992px) {
	blockquote {
		/*padding: 175px 110px 180px 110px;*/
		padding: 220px 110px 150px 140px;
	}
}
.wp-block-pullquote {
	/* wp reset */
	padding-bottom: 0;
}
blockquote blockquote {
	background: transparent;
	padding: 0;
}

blockquote:before {
	content: "";
	color: var(--wp--preset--color--lila-headline);
	font-size: 65rem;
	position: absolute;
	top: 3%;
	/* left: 10%; */
    left: calc(50% - 65px);
	display: block;
	width: 130px;
	height: 105px;
	background-image: url(images/Sprachrohr.png);
	background-repeat: no-repeat;
	background-size: contain;
}
@media (min-width:992px) {
	blockquote:before {
		top: 15%;
		width: 190px;
		height: 155px;

        left: calc(50% - 95px);
	}
}
blockquote blockquote:before {
	content: normal;
	display: none;
}

.wp-block-pullquote p,
.wp-block-pullquote.alignleft p, 
.wp-block-pullquote.alignright p, 
.wp-block-pullquote.has-text-align-left p, 
.wp-block-pullquote.has-text-align-right p,
blockquote p {
	font-weight: 400;
	color: var(--wp--preset--color--lila-headline);
	font-size: 2.6rem;
    line-height: 1.4em;
	/*text-transform: uppercase;*/
	position: relative;
	margin-top: 0;
	margin-bottom: 1rem;

	-moz-hyphens: none;
	-webkit-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}
@media (min-width:992px) {
	.wp-block-pullquote p,
	.wp-block-pullquote.alignleft p, 
	.wp-block-pullquote.alignright p, 
	.wp-block-pullquote.has-text-align-left p, 
	.wp-block-pullquote.has-text-align-right p,
	blockquote p {
		font-size: 5rem;
	}
}



.wp-block-pullquote.alignleft, 
.wp-block-pullquote.alignright, 
.wp-block-pullquote.has-text-align-left, 
.wp-block-pullquote.has-text-align-right {
	max-width: none;
}

cite {
	color: #000;
	font-style: normal;
	font-size: .8em;
	text-transform: none;
	letter-spacing: .05em;
	font-weight: 300;
	position: relative;
	display: block;
	/*text-align: right;*/
}
@media (min-width:992px) {
	cite {
		font-size: 1em;
	}
}

/* individual stuff res d */

/* res d Full-Screen-Slider */
#fullscreen-slider {
    position: fixed;
    width: 100vw;
    height: 100%; /* 100vh ist mobil mist, da dort die geräte höhe genommen wird und ggf. browserelemnte dann mit einberechnet werden wodurch es zu hoch wird. */
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.carousel-counter {
    position: absolute;
    bottom: var(--abstand-unten);
    right: var(--abstand-rechts);
    width: 100%;
    text-align: right;

    font-size: var(--headline-size);
    line-height: 100%;
    font-weight: 700;
    display: none; /* erstmal aus */
}
@media (min-width:768px) {
    .carousel-counter {
        display: block; /* ab tablet ein */
    }
}
/* @media (min-width:1920px) { */
@media (min-width:1984px) {
    .carousel-counter {
        right: 0;
    }
}

.carousel-counter-inner {
  max-width: var(--max-site-width);
  margin: auto;
  padding-right: calc(1.5rem * .5);
}




/* res d images max height */

.wp-singular:not(.home) main img {
    max-height: calc(100vh - var(--header-hoehe)); /* 100 % abzüglich höhe header */
    object-fit: contain;
    width: auto !important;
    margin-bottom: 8px;
}
.wp-singular:not(.home) main video {
    max-height: calc(100vh - var(--header-hoehe)); /* 100 % abzüglich höhe header */
    object-fit: contain;
    margin-bottom: 8px;
}

@media (min-width:768px) {
    .wp-singular:not(.home) main .wp-block-video,
    .wp-singular:not(.home) main .wp-block-image {
        margin-bottom: 2px;
    }
}
@media (min-width:768px) {
    .wp-singular:not(.home) main .wp-block-video,
    .wp-singular:not(.home) main .wp-block-image {
        margin-bottom: 4px;
    }
}

.page-title-single {
    text-transform: capitalize; 
    margin-top: calc(var(--abstand-oben) + 1px);
    margin-bottom: 0;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);

    
}
@media (min-width:768px) { .page-title-single { margin-top: calc(var(--abstand-oben) - 1px); } }
@media (min-width:992px) { .page-title-single { margin-top: calc(var(--abstand-oben) + 1px); } }


.projekt-liste-item {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 9px; /* eigentlich 12 aber wir haben auf 9 reduziert weil optsch besser */
    line-height: 100%;
    align-items: flex-start;
}
@media (min-width:768px) { .projekt-liste-item { flex-wrap: nowrap; } }


/* hover effekt nur desktop / touch sonst zerschießt es das layout */
@media (min-width:768px) {
    .projekt-liste-item:is(:hover, :focus) {
        font-style: italic;

        transform: translateX(-64px);
        /* align-items: center; */
    }

    .projekt-liste-item:is(:hover, :focus):before {
        display: block;
        flex-shrink: 0;
        flex-basis: auto;
        content: url("images/svg/www_251013_pfeil.svg");
        padding-right: 10px;
        width: 64px;
        /* height: 1em;
        max-height: 20px; */
        height: 20px; /* gibt es ja eigentlich nur auf desktop weil hover. und damit ist feste größe o.k. */
    }
}
/*
.resd-projektdetails {
    margin-top: 1rem; 
    margin-bottom: 1rem;
}
@media (min-width:768px) {
    .resd-projektdetails {
        margin-top: 14rem; 
        margin-bottom: 14rem;
    }  
}
@media (min-width:992px) {
    .resd-projektdetails {
        margin-top: 16rem; 
        margin-bottom: 16rem;
    }  
}
*/

/* ende individual stuff */


/* slick stuff */
/*
.d-flex .slick-track {
	display: flex;
}
*/


.add-shadow .slick-track {
	padding-top: 15px;
    padding-bottom: 15px;
}


.slick-slide {
	padding-left: 15px; /* nötig für schlagschatten */
	padding-right: 15px; /* nötig für schlagschatten */
}

.no-shadow .slick-slide {
	padding-left: 10px; 
	padding-right: 10px; 
}


.slick-slide > .weisser-kasten,
.slick-slide > img {
	background: #fff;
	border-radius: 0;
	box-shadow: 0 0 27px 6px rgba(0,0,0,.35);
	padding: 0;
	margin-top: 25px; /* damit schatten auch sichtbar */
}
.no-shadow .slick-slide > img {
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
}


.slick-left,
.slick-right {
	display: block;
	position: relative;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	padding: 0;
	overflow: hidden;
    max-width: 100%;
	cursor: pointer;
	background: transparent;
	background-repeat: no-repeat;
	border: none;
	color: transparent;
	transition: all 0.3s ease-in-out;

	width: 13px; /* hängt von der pfeilgrafik ab */
	height: 39px; /* hängt von der pfeilgrafik ab */
	background-size: 13px 39px; /* hängt von der pfeilgrafik ab */

	/**weil pfeile im slider sein sollen*/
	position: absolute;
	z-index: 10;
	left: 10%;
}
.slick-right {
	left: auto;
	right: 10%;

	/* ersetzt die FA5 pfeile mit svg aus BS5 */
	background-image: url(images/slider-pfeil-rechts.png);
	background-position: right;
}

.slick-left {
	/* ersetzt die FA5 pfeile mit svg aus BS5 */
	background-image: url(images/slider-pfeil-links.png);
}



.slick-item img { width: 100%;}

/* end slick stuff */

/* individual slick stuff */
/*
.slick-list {
	padding-top: 55px!important;
}
*/

.slick-track {
	display: flex;
    padding-top: 3em; /* damit schatten sichtbar ist */
}

.no-shadow .slick-track {
    padding-top: 0; /* damit schatten nicht sichtbar ist */
}

.slick-item.partner {
	display: flex;
	flex-direction: column;
	text-decoration: none;
}

.partner-beschreibung {
	margin-top: 33%;
	text-align: center;
}

.partner-beschreibung a {
	color: var(--main-typo-color)!important;
	text-decoration: none;
}

.weisser-kasten {
	/*height: 100vw; *//* hat die höhe vonn 100% der breite */
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
}

.make-big {
	visibility: hidden;
	transition: none;

	position: absolute;
	width: 100%;
	top: 0;
	
}

.slick-current {position: relative;}
.slick-current .make-big {
	visibility: visible;
	
	position: absolute;
	z-index: 1;
	margin-top: -5%;
	margin-left: -15%;
	/*margin-right: -15%;*/
	
	width: 115%;
	max-width: none;

	transition: all .7s ease-in-out;
}
@media (min-width:768px) {
	.slick-current {position: relative;}
	.slick-current .make-big {
		margin-right: -15%;	
		width: 130%;
	}
}


/* end individual slick stuff */



/* */
hr {
    margin-top: 0rem;
    margin-bottom: 0rem;
    border: 0 !important;
	border-top: 1px solid var(--main-color) !important;
	background-color: transparent;
}

.page-footer hr {
	border-color: #f7e1be!important;
	margin-bottom: 1rem;
}


/* BS4 Card (Accordeon / Aufklappkarten) */
.accordion {
	margin-bottom: 35px;
}

.card {
	border: 0;
	background-color: transparent;
	padding: 0;

	border-radius: 0px;
	overflow: hidden;
	margin-bottom: 3px;
}


.card-header {
	padding: 0;
	border: 0;
	border-radius: 0!important; /* bs muss übertrumpft werden */
	background-color: transparent;
}


.card-header h3 {
	margin: 0;
}

.card-header button {
	/* reset */
	width: 100%;
    border: 0;
    background: transparent;
	text-align: left;

    /* individuell */
    display: flex;
    align-items: center;
	background-color: var(--wp--preset--color--helllila);
}

.card-header button .h3 {
	/* individuell */
	/* font-size: 2.4rem;
	line-height: 1.2em; */
	
	font-weight: 500;
    color: #fff;
	margin: 0;
	display: flex;
	align-items: center;
	padding: 12px 15px 12px 0px;
}
@media (min-width:992px) {
	.card-header button .h3 {
		font-size: 2.4rem;
	}
}


.card-header button:before {
	content: url(images/svg/angle-right-solid.svg);

    display: inline-block;
    min-width: 22px;
    text-align: center;
    padding-top: 7px;
    border-radius: 0;
    margin: 0 1em 0px 8px;

	transition: all .3s ease-out;
}
.card-header button[aria-expanded="true"]:before {
	transform: rotateZ(90deg);
	transition: all .3s ease-out;
}


.card-body {
	padding: 20px 45px 35px 5px;
	background-color: #fff;
}


.card-body > .wp-block-web-definer-column-container {
	padding-left: 10px;
}




/**/


/*
 * Wordpress Gallery
 */

.is-layout-flex.columns-default > figure, .is-layout-flex.columns-3 > figure {
    flex: 0 0 calc(100% - var(--wp--style--unstable-gallery-gap));
    width: calc(100% - var(--wp--style--unstable-gallery-gap));
}
@media (min-width:768px) {
    .is-layout-flex.columns-default > figure, .is-layout-flex.columns-3 > figure {
        flex: 0 0 calc(33.3333% - var(--wp--style--unstable-gallery-gap));
        width: calc(33.3333% - var(--wp--style--unstable-gallery-gap));
    }
}


.wp-block-gallery img {
	align-self: center;
}

.blocks-gallery-grid .blocks-gallery-image, 
.blocks-gallery-grid .blocks-gallery-item, 
.wp-block-gallery .blocks-gallery-image, 
.wp-block-gallery .blocks-gallery-item {
	flex-grow: 0;
}

 
/* fancybox */
.fancybox-container {
	width: 90%;
	height: 80%;
	left: 5%;
	right: 5%;
	top: 10%;
	bottom: 10%;

	box-shadow: 0 0 13px 7px rgba(0,0,0,.27);
}

.fancybox-bg {
	background: #fff;
}

.fancybox-is-open .fancybox-bg {
	opacity: 1;
}

.fancybox-slide--image {
	padding: 7% 0 7% 0;
}

.fancybox-button {
	background: transparent;
}

.fancybox-button,
.fancybox-button:link,
.fancybox-button:hover,
.fancybox-button:visited {
	color: var(--main-color);
}

.fancybox-navigation .fancybox-button {
	opacity: 1;
}

.fancybox-navigation .fancybox-button--arrow_left {
	left: 30px;
}
.fancybox-navigation .fancybox-button--arrow_right {
	right: 30px;
}

.fancybox-close-small {
	background: var(--main-color);
	color: #fff;
	opacity: 1;
	top: 0;
	right: 0;
}
@media(min-width:992px) {
	.fancybox-close-small {
		top: -44px;
		right: -44px;
	}
}


/* widgets in sidebar und footer */
li.widget {
	list-style: none;
}


/* Modales Fenster */
.modal-dialog-scrollable .modal-content {
	padding: 0 35px 35px 35px;
	background-color: rgba(0,0,0,.8);
	color: #fff;

	font-size: larger;
	font-weight: 700;
}

.btn-close {
	color: #fff;
}

.modal-header  {
	border: none;
}

/*
 * PAGINATION
 */
 .pagination {
	margin-bottom: 40px;
}

.pagination li:before {
	content: "";
	display: none;
}

/* standard-status */
.pagination li a,
.pagination > li.inactive > a:focus,
.pagination > li.inactive > a:hover,
.pagination > li.inactive > span:focus,
.pagination > li.inactive > span:hover {
	color: var(--main-color);
	font-weight: 600;
	background-color: #fff;
	border-color: #fff;
	margin-right: 3px;

	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;

	padding: 0.9rem;
	text-align: center;
}

.pagination li.inactive a,
.pagination > li.inactive > a:focus,
.pagination > li.inactive > a:hover,
.pagination > li.inactive > span:focus,
.pagination > li.inactive > span:hover {
	cursor: default;
	color: var(--main-color);
}

/* hover-status */
.pagination > li > a:focus,
.pagination > li > a:hover,
.pagination > li > span:focus,
.pagination > li > span:hover {
	background-color: var(--main-color);
	border-color: var(--main-color);
	color: #fff;
}

/* active-status */
.pagination > .active > a,
.pagination > .active > a:focus,
.pagination > .active > a:hover,
.pagination > .active > span,
.pagination > .active > span:focus,
.pagination > .active > span:hover {
	background-color: var(--main-color);
	border-color: var(--main-color);
	color: #fff;
	cursor: pointer;
	
}

/* inactive-status */
.pagination .inactive a {
	pointer-events: none;
}



/* isotope masonry */
.isotope-grid-item {
	font-size: var(--font-size-label);
	font-weight: 700;
    line-height: 1.12em;

    /* --bs-gutter-x: var(--standard-abstand-unten); */
}


.isotope-grid-item .img-wrapper {overflow:hidden;margin-bottom: 5px; max-height: 330px;}
.isotope-grid-item img {transition: transform .3s; object-position: center; object-fit: cover;  height: 100%;}
.isotope-grid-item:hover img {transform: scale(1.1);}
.isotope-grid-item:hover { font-style: italic;}


.filter-button-group {
    /* background-color: #fff; */
    background-color: transparent;
}
@media (min-width:992px) { 
    .filter-button-group {
        background-color: transparent;
    }
}


.dropdown-toggle,
.filter-button-group button {
    background: transparent;
    border: none;
    padding: 0;
    color: #000;
    text-decoration: none;
    font-size: 1.8rem;
    font-weight: 700;
/* line-height: 1.1em; */
    margin-top: 1px;
    margin-bottom: 1px;
}

@media (min-width:768px) { 
    .dropdown-toggle, .filter-button-group button { 
        font-size: 2.4rem; 
        margin-top: 4px;
        margin-bottom: 4px;
    } 
}
@media (min-width:992px) { 
    .dropdown-toggle, .filter-button-group button { 
        font-size: 2.6rem; 
    } 
}

.filter-dropdown {
    margin-bottom: 26px;
}
@media (min-width:768px) {
    .filter-dropdown {
        margin-bottom: 37px;
    }
}


.filter-button-group {
    padding: 0;
    margin: 0 0 42px 0!important;
    list-style: none;
    position:relative!important;
    transform: translate(0) !important;
}
@media (min-width: 992px) {
    .filter-button-group {
        margin: 0 0 80px 0!important;
    }
}
@media (min-width: 992px) {
    .filter-button-group {
        margin: 0 0 47px 0!important;
        flex-wrap: wrap; /* sonst sind filter nicht sichtbar bei z.b. geärten mit 1024px breite */
    }
}

.filter-button-group li{
    padding: 0!important;
}
@media (min-width: 992px) {
    .filter-button-group li{
        padding: 0 28px 0 0 !important;
    }
}

.filter-button-group li:before{
    content: normal!important;
    display: none!important;
}

.filter-button-group li button.is-checked,
.filter-button-group li button:hover {
    font-style: italic;
}

.img-wrapper-archiv {
    position: absolute;
    top: 0;
    left: calc(-1 * var(--bs-gutter-y));
}
.img-wrapper-archiv img {
    max-height: calc(80vh - var(--header-hoehe))!important;
    /* max-height: 80%!important; */
    /* mit max-height muss width auto*/
    width: auto;
}

.mini-bilder img {
    max-height: 104px;
    object-fit: contain;
    width: auto !important;
}


.mini-bilder > img {
    margin-top: 8px;
    max-height: 80px!important;
}
@media (min-width:576px) {
    .mini-bilder > img {
        max-height:90px!important;
    }
}
@media (min-width:992px) {
    .mini-bilder > img {
        max-height:130px!important;
    }
}


/* FOOTER */
.page-footer {
	position: relative;
	z-index: 9990; 

	/* background-color: #d60d47; */ /* sollte über theme also in den widgets gesetzt werden */
	/* color: #fff; */ /* sollte über theme also in den widgets gesetzt werden */
	box-shadow: none;

	padding: 0 0 0 0;
	margin: 0 0 0 0;

    font-size: 1.8rem;
}

.high-contrast .page-footer {
	background-color: #000;
}


.page-footer a,
.page-footer a:is(:hover, :focus, :active, :visited) {
	
	text-decoration: none;
}


.page-footer h2 {
	

	margin-bottom: .7em;
	letter-spacing: 0;
}



.page-footer .menu {
	padding: 0;
	margin: 20px 0 25px 0;
	
	display: flex;
	/* flex-wrap: nowrap; */
	/* gap: 10px; */
    justify-content: center;
	
	list-style: none;
	
}

.page-footer .menu li {
    padding-left: 10px;
    padding-right: 10px;
}
.page-footer .menu li + li {
	border-left: 1px solid #fff;
}



.page-footer .menu > li a,
.page-footer .menu > li a:is(:hover, :focus, :active, :visited) {
	color: #fff;
	font-size: 1.6rem;
	font-weight: 700;
    text-align: center;

	/*text-decoration: underline;*/
	white-space: nowrap;
}
/*
.page-footer .menu li a::after{
	content: "»";
	display: inline-block;
	margin-left: 8px;
}

.page-footer .menu li:last-child a::after{
	content: normal;
	display: none;
}
*/




/* ENDE FOOTER */

#fixed-menu {
	position: fixed;
	z-index: 9999;
	top: 20%;
	left: auto;
	right: 0;
}
#fixed-menu .social-icon {
	display: block;
	margin: 0 0 2px 0;
	cursor: pointer;
}

/*
#scrolltop {
	position: fixed;
	bottom: 60px;
	right: 10%;
	cursor: pointer;

	background-image: url(images/bildmarke_klein_80x80px.svg);
	background-repeat: no-repeat;
	background-size: 80px 80px;
	width: 80px;
	height: 80px;
}
*/
#scrollable-arrow {
    opacity: 0;
    position: fixed;
    bottom: var(--abstand-unten);
    right: 50%;
    
    transition: opacity 200ms ease-in-out;
}
.is-scrollable #scrollable-arrow {
    opacity: 1;
    transition: opacity 200ms ease-in-out;
}
@media (min-width:768px) {
    #scrollable-arrow {
        transform: translateX(calc(-50% - var(--abstand-aus-der-mitte)));
    } 
}


.border-radius-10 {
	border-radius: 10px;
}



@media screen and (min-width: 992px) {
    .w-lg-70 {
        width: 70% !important;
    }
}

@media (max-width:767px) {
    .col-12.col-6 {
        flex: 0 0 auto;
        width: 50%;
    }
}