/* ---------- Allgemein ---------- */
html, body { 
	font-family: 'FoundersGroteskText-Regular', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 
	color: rgba(65, 65, 64, 1);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body { font-size: 1.125rem; }
body.default {
	display: flex;
	flex-direction: column;
	height:100vh;
    min-height:100%;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { 
	font-family: 'FoundersGroteskText-Semibold', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 
	margin-bottom: 2rem;
}

strong { font-family: 'FoundersGroteskText-Semibold'; font-weight: normal; }

.sticky {
	position: fixed!important;
	top: 0;
	width: 100%;
	z-index: 9999;
}

.full-width {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

.disabled { opacity: 0.5; }

span[data-toggle="tooltip"] { cursor: pointer; }

a.notextdecoration, a.show_on_map { border-bottom: none !important; }
a.notextdecoration img {
	max-width: 100%;
	height: auto;
}

#back-to-top { background: #414140; border: none !important; font-size: inherit; padding: 0; width: 2.4em; height: 2.4em; box-sizing: content-box; }
#back-to-top .icon { max-height: 100%; }
#back-to-top.show { display: flex; }
#back-to-top {
    position: fixed;
    left: 0px;
    bottom: 0px;
    cursor: pointer;
    xwidth: 60px;
    xheight: 60px;
    justify-content: center;
    align-items: center;
    background-color: #414140;
    display: none;
    border-radius: 0px;
	z-index: 111;
}
#back-to-top:hover { background-color: #292929; }
/* ------------------------------- */

/* ---------- Header ---------- */
#header { font-family: 'FoundersGroteskText-Semibold'; min-height: 3rem; }
a.home, img.logo { position: absolute; display: inline-block; top: 0px; right: 0px; padding: 0; } 
img.logo { width: 4.5rem; height: 4.5rem; z-index: 11111; margin: 1rem 3rem; }
body.home #main-navigation img.logo { display: none; margin-right: 4rem; }

#mobile-header { position: fixed; width: 100%; align-items: center; z-index: 2222; }
#mobile-header img  { width: auto; max-width: 100%; height: auto; max-height: 2rem; }
#mobile-header img.logo { float: right; margin: 0; }
#mobile-navigation > div { width: 80vw; }
#mobile-navigation img { height: 3rem; width: auto; }
#mobile-navigation div.toggle-menu a { display: inline-block; padding: 0 0.5rem; background-color: rgba(0, 0, 0, 1); }
/* ---------------------------- */

/* ---------- Footer ---------- */
footer { position: relative; display: block; justify-content: end; z-index: 10; }
#top { position: relative; border: none; }
#top img { max-height: 100%; width: auto; margin: auto; top: 0; left: 0; background-color: #292929; padding: 50% 75%; }
/* ---------------------------- */

/* ---------- Startseite ---------- */
body.home #header { height: 100vh; }
body.home #content { position: relative; background-color: rgba(255, 255, 255, 1); margin-top: 0; z-index: 1111; }
body.home #content { min-height: calc(100vh - 5.6rem); }
body.home #main-navigation { position: relative; }
body.home .banner figure img { max-width: none; height: 100%; width: auto; }
body.home .banner figure { height: 100%; padding-bottom: 0; }

#container-banner { width: 100%; height: 100%; overflow: hidden; }
#container-banner .banner-wrapper { width: calc(100% - 2rem); height: calc(100% - 2rem); margin: 1rem; overflow: hidden; }
.banner { position: relative; height: 100%; color: #FFF; }
.banner figure { position: relative; overflow: hidden; padding-bottom: 56.25%; height: 0; margin: 0; }
.banner figure img {
	position: absolute;
	left: 50%;
	top: 50%;
	max-width: 100%;
	height: auto;
	-webkit-transform: translate(-50%,-50%);
		-ms-transform: translate(-50%,-50%);
			transform: translate(-50%,-50%);
}
.banner .ce-bodytext { position: relative; margin: 1rem; }
.banner .ce-bodytext h2 { margin-bottom: unset; }
.banner .ce-bodytext p:last-child { margin-bottom: 0; }
.banner::after {
	content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	z-index: 1;
}
.banner > .ce-bodytext { z-index: 100; }

body.home #container-banner {
	background: url(/typo3conf/ext/qmp/Resources/Public/Images/ui-frame-1920x1080px.svg) no-repeat;
	background-position: center center;
	background-size: cover;
}
@media screen and (min-aspect-ratio: 3/2) {
	body.home .banner figure img { max-width: 100% !important; height: auto !important; width: 100% !important; }
}
/*
body.home #header {
	height: 100vh;
}
body.home #container-banner { 
	position: fixed;
	width: calc(100vw - 1rem);
	height: calc(100vh - 3rem);
	overflow: hidden;
}

 
body.home #container-banner .banner { max-height: calc(100% - 8rem); margin: 1rem; }
body.home #content { position: relative; background-color: rgba(255, 255, 255, 1); margin-top: 0; z-index: 1111; }
body.home #content { min-height: calc(100vh - 5.6rem); }
body.home #main-navigation {
	position: relative;
}
*/
/* -------------------------------- */

/* ---------- Banner ---------- */
/*
.banner { position: relative; overflow: hidden; color: #FFF; }
.banner figure { position: relative; overflow: hidden; padding-bottom: 56.25%; height: 0; margin: 0; }
.banner figure img {
	position: absolute;
	left: 50%;
	top: 50%;
	max-width: 100%;
	height: auto;
	-webkit-transform: translate(-50%,-50%);
		-ms-transform: translate(-50%,-50%);
			transform: translate(-50%,-50%);
}
.banner .ce-bodytext { position: relative; margin: 1rem; }
.banner .ce-bodytext h2 { margin-bottom: unset; }
.banner .ce-bodytext p:last-child { margin-bottom: 0; }

.banner::after {
	content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	z-index: 1;
}
.banner > .ce-bodytext { z-index: 100; }
.banner.right.below::after {
	background: url('/typo3conf/ext/qmp/Resources/Public/Images/right_below.png')
}
.banner.left.above::after {
	background: url('/typo3conf/ext/qmp/Resources/Public/Images/left_above.png')
}
.banner.left.below::after {
	background: url('/typo3conf/ext/qmp/Resources/Public/Images/left_below.png')
}
*/
/* ---------------------------- */

/* ---------- Inhalt ---------- */
#content { flex: 1; margin-top: 3rem; xflex-basis: auto; }
#content #pagetitle { xpadding: 6rem 0 2rem 0; padding: 0rem 0 2rem 0; }
#content #pagetitle h1 { margin-bottom: 0; }
#content .frame { overflow: hidden; }
#content .frame.frame-layout-0, 
#content .frame.frame-default.frame-layout-0 + .frame-stretch:not(.frame-layout-0),
#content .frame.frame-default.frame-layout-0 + .frame-stretchcontent:not(.frame-layout-0) 

#content .frame.frame-stretch.frame-layout-0 + .frame-default,
#content .frame.frame-stretchcontent.frame-layout-0 + .frame-default { margin-top: 4rem; }

#content .frame:first-of-type { margin-top: 0; }
#content .frame:last-of-type { padding-bottom: 4rem; }

#content .frame-stretch:not(.frame-layout-0), #content .frame-stretchcontent:not(.frame-layout-0), .frame.frame-default:not(.frame-layout-0) { padding-top: 4rem; padding-bottom: 4rem; }

#content .frame .grid-column .frame { padding: 0; }

#content .grid-column .frame.frame-type-text > * { max-width: 100%; }
/* ---------------------------- */

/* ---------- Navigation ---------- */
#main-navigation { 
	font-size: 1.313rem; 
	height: 3rem;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	align-items: center;
	margin-top: auto;
	z-index: 9999;
}
#main-navigation ul { margin-left: 1rem; margin-right: 1rem; } 
#main-navigation .dropdown-menu { margin: 0; padding: 0; border: none; border-radius: 0; padding-bottom: 1rem; }
#main-navigation .dropdown-menu[x-placement="top-start"] { padding-top: 1rem; }
#main-navigation .dropdown-menu.show { display: table; }
#main-navigation .dropdown-item:hover, #main-navigation .dropdown-item:focus { background: none; }
#main-navigation .dropdown-toggle::after { display: none; }
#main-navigation .dropdown-item, #main-navigation span.dropdown-item { padding: 0.25rem 1rem; }
#main-navigation ul.lvl3 a.dropdown-item { padding: 0.25rem 0; }
#main-navigation a, #meta-navigation a, #mobile-navigation a { color: rgba(155, 155, 155, 1); }
#main-navigation span.dropdown-item { color: rgba(155, 155, 155, 1); text-transform:uppercase; }
#main-navigation a:hover, #main-navigation a:focus, #main-navigation a.active, 
#meta-navigation a:hover, #meta-navigation a:focus, #meta-navigation a.active, 
#mobile-navigation a:hover, #mobile-navigation a:focus, #mobile-navigation a.active, #main-navigation span.dropdown-item.active { color: #FFFFFF; }
.dropdown-item.active, .dropdown-item:active { background: none; }
#mobile-navigation { position: fixed; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.75); overflow: scroll; z-index: 3333; }
#mobile-navigation div { min-height: 100%; }
#mobile-navigation .nav { width: 80vw; font-size: 1.313rem; }
#mobile-navigation .nav-item { padding: 0rem 1rem; }
#mobile-navigation .nav-item .nav-link { padding: 0 }
#meta-navigation { font-size: 1.125rem; }
/* -------------------------------- */

/* ---------- Navigation ---------- */
.breadcrumb { background: none; }
.breadcrumb-item + .breadcrumb-item, .breadcrumb-item + .breadcrumb-item::before { color: rgba(65, 65, 64, 1) !important; }
.breadcrumb-item + .breadcrumb-item::before { padding-right: 0.3rem; }
/* -------------------------------- */

/* ---------- Textpic/Textmedia ---------- */
.ce-textpic {
	display: flex;
	flex-wrap: wrap;
	margin-right: -15px;
	margin-left: -15px;
}
.ce-textpic > div {
	position: relative;
	width: 100%;
	padding-right: 15px;
	padding-left: 15px;	
}
.ce-textpic.ce-left .ce-gallery { margin-bottom: 2rem; }
.ce-textpic.ce-right .ce-gallery { margin-top: 0; }
.ce-textpic .ce-gallery { margin-bottom: 2rem; }
/* --------------------------------------- */

/* ---------- Gallery ---------- */
.ce-gallery .ce-column { margin-bottom: 2rem; }
.ce-column figure { position: relative; overflow: hidden; padding-bottom: 56.25%; height: 0; margin: 0; background-color: rgba(65, 65, 65, 0.10); }
.ce-column img {
	position: absolute;
	left: 50%;
	top: 50%;
	max-width: 100%;
	/* width: 100%; */
	height: auto;
	-webkit-transform: translate(-50%,-50%);
		-ms-transform: translate(-50%,-50%);
			transform: translate(-50%,-50%);
}
/* ----------------------------- */

/* ---------- Listen ---------- */
ol.ce-bullets { margin-bottom: 0; padding: 0; list-style-type: none; counter-reset: step-counter; display: flex; flex-wrap: wrap; /* justify-content: space-between; */ align-content: space-between; }
ol.ce-bullets li { display: flex; width: 100%; counter-increment: step-counter; margin-bottom: 2rem; padding-right: 0; }
ol.ce-bullets li:before {
	font-family: 'FoundersGroteskText-Semibold', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	content: counter(step-counter);
	font-size: 3rem;
	line-height: 1;
	margin-right: 0.5rem;
}
ol:not([class]) { padding-left: 1.25rem; }

ul:not([class]) { padding-left: 0px; list-style: none; display: table; }
ul:not([class]) > li { display: table-row; }
ul:not([class]) > li:after { content: ''; display: block; height: 1rem; }
ul:not([class]) > li:before { content: "\2013 "; display: table-cell; width: 1rem; text-align: left; }
/* ---------------------------- */

/* ---------- Therapeuten ---------- */
#jumptofilter:before {
	content: "";
	display: block;
	height: 3rem; /* same as your fixed header height */
	margin: -3rem 0 0; /* negative fixed header height */
}
#therapeuten .therapeut, #found { background-color: #f5f5f5; border: none; border-radius: unset; }
.leaflet-popup-close-button { border-bottom: none !important; }


.rotation-wrapper-outer {
  display: table;
}
.rotation-wrapper-inner {
  padding: 50% 0;
  height: 0;
}
#therapeuten .collapse span.region {
	display: block;
	padding: 0 15px;
	transform-origin: top left;
	/* Note: for a CLOCKWISE rotation, use the commented-out
	   transform instead of this one. */
	transform: rotate(-90deg) translate(-100%);
	/* transform: rotate(90deg) translate(0, -100%); */
	margin-top: -50%;
	
	/* Not vital, but possibly a good idea if the element you're rotating contains
	   text and you want a single long vertical line of text and the pre-rotation
	   width of your element is small enough that the text wraps: */
	white-space: nowrap;
	text-transform: uppercase;
}
#therapeuten .region .btn-block {
	border-bottom: none;
}
#therapeuten .region {
	border-bottom: 2px solid rgba(65, 65, 64, 1) !important;	
}
#therapeuten .icon { display: inline-block; height: 2rem; width: 2rem; }
#therapeuten .icon img { max-height: 100%; max-width: 100%; vertical-align: sub; }
/* --------------------------------- */

/* ---------- Formulare ---------- */
label { display: block; }
.form-control { border-radius: unset; }
.errorcontainer { height: 1.5em; display: block; }
.powermail_field_error_container { height: 1.5em; display: block; }
.parsley-errors-list { margin-bottom: 0.5rem !important; background: whitesmoke !important; border: none !important; }
.parsley-errors-list li { padding: 0 !important; }

.powermail_form .btn-primary { width: 75%; }
.powermail_form .powermail_fieldwrap_type_submit { text-align: center; }
.powermail_form .powermail_fieldset.nolabel { padding: 1rem; }
.powermail_form .powermail_fieldwrap_type_check .form-group { font-size: 1.125rem; }

.radio.parsley-error {
	display: flex;
	flex-direction: column;
}
.radio.parsley-error .parsley-errors-list {
	margin-bottom: 0 !important;
	order: 1;
}
/* ------------------------------- */

/*
.ce-column img.portrait {
	width: auto;
	height: 100%;
}
*/
/* ----------------------------- */

/* ---------- Tabellen ---------- */
table tbody.programm tr td:last-child {
	padding-left: 1rem;
}
table tbody.programm tr td:first-child {
	white-space: nowrap;
}
table tbody.programm tr td {
	vertical-align: top;
}
.card.card-body { padding: 0; border: none; }
a[role="button"]:not(.btn-block) { cursor: pointer; }
a[role="button"]:not(.btn-block)::after {
	display: inline-block;
	content: '\2bc6';
}
a[role="button"][aria-expanded="true"]:not(.btn-block)::after {
	content: '\2bc5';
}
/* ----------------------------- */

/* ---------- Headlines ---------- */

/* ---------- Lists ---------- */

/* ---------- indexed_search ---------- */

/* ---------- News ---------- */

/* ---------- powermail ---------- */