/* Typo
--------------------------------------------------------- */
body {
	font-weight: 300;
}
#content {
	line-height: var(--lh-l);
}
.fs-xxl {
	font-size: clamp(2.2rem, 1.111rem + 2.600vw, 5rem);
}
@media (min-width: 1024px) {
	h1, .h1, h2, .h2 {
		margin-bottom: calc(var(--gap-default) * 2);
	}
}
@media (max-width:767px) {
	body {
		font-size: 1.5em;
	}
}


/* General
--------------------------------------------------------- */
#content {
	padding: 40px 0 0 0;
}
.home #content {
	padding: 0;
}
@media (min-width: 1024px) {
	.nosun-bild-text .grid {
		grid-gap: calc(var(--gap-default) * 2);
		padding: 0;
	}
}

.page-id-263 .contacts-block,
.page-id-119 .contacts-block {
	display: block;
}


#logo img,
#logo svg {
	height: 60px;
}
@media (max-width:767px) {
	#logo img, #logo svg {
		height: 40px !important;
	}
}
.lg-sub-html h4,
.lg-sub-html p {
	color:#fff;
}

input[type=email], input[type=number], input[type=password], input[type=reset], input[type=search], input[type=tel], input[type=text], input[type=url], select, textarea {
	font-family: var(--ff-default);
}


/* Copyright Anpassungen 10.03.2025
--------------------------------------------------------- */
.bt-image-col,
.galerie-item {
	position: relative;
}
.nos-caption {
	padding: 5px;
	font-size: 1.2rem;
	/* width: 100%;
}
.leistung-thumb .nos-caption,
.nosun-slideshow .nos-caption,
.nosun-banner .nos-caption { */
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 8;
	width: auto;
	color: white;
	text-align: right;
	background: rgba(0, 0, 0, .4);
}
.leistung-thumb .nos-caption {
	top: 0;
	bottom: auto;
}



/* Header
--------------------------------------------------------- */
header#main-header {
	box-shadow: none;
	border-bottom: 1px solid #dcdcdc;
}
#main-menu li a {
	font-family: var(--ff-alt);
	font-weight: 400;
}
.burger {
	display: inline-block !important;
}
.burger::before,
.burger::after {
	height: 1px;
	width: 44px;
}
.burger::before {
	top: -8px;	
}
.burger::after {
	bottom: -8px;
}
.burger .patty {
	display: none;
}
.mobile-menu-inner {
	padding: 0;
}
.mm-item-wrap {
	text-align: left;
	height: 100%;
}
.mm-item-wrap > .grid {
	height: 100%;
	grid-gap: 0;
}
.mm-col {
	padding: var(--space-m);
}
.overlay {
	position: fixed;
	z-index: 100;
	left:0;
	top:0;
	width:100%;
	height:100%;
	background-color: rgba(0,0,0,.5);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.mobile-menu-open .overlay {
	opacity:1;
	visibility:visible;
}
.mm-contacts-list,
.header-social-media,
#mobile-main-menu {
	position:relative;
	transition: all var(--a-timing-slow) var(--a-easing-slow) .2s;
	transform: translateY(var(--gap-default));
	opacity: 0;
}
 .mobile-menu-open .mm-contacts-list {
	transition-delay: .4s;
	margin-top: 25px;
}
 
.mobile-menu-open .header-social-media {
	transition-delay: .4s;
}
.mobile-menu-open .mm-contacts-list,
.mobile-menu-open .header-social-media,
.mobile-menu-open #mobile-main-menu {
	opacity: 1;
	transform: translateY(0px);
}
.header-social-media li {
	list-style: none;
	display: inline-block;
	margin-right: var(--gap-default);
	margin-bottom: var(--gap-default);
	height: 24px;
}
.header-social-media li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--c-text);
}
.header-social-media li a svg {
	height: 24px;
	width: auto;
}
.mm-contacts-list li {
	list-style: none;
}
.mm-contacts-list li .mm-contacts,
#mobile-main-menu li a {
	letter-spacing: var(--ls-l);
	font-weight: 300;
	text-transform: uppercase;
	position: relative;
	font-size: var(--fs-m);
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.mm-contacts-list li .mm-contacts {
	display: inline-block;
	margin: 1rem 0;
	text-decoration: none;
	color: var(--c-text);
}
.mm-contacts-list li a::before,
#mobile-main-menu li a::before {
	content:"";
	position: absolute;
	top: 1.2rem;
	left: 0;
	width:0;
	height: 1px;
	background-color: rgba(0,0,0,.5);
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.mm-contacts-list li a:hover,
#mobile-main-menu li.current-menu-ancestor > a, #mobile-main-menu li.current-menu-item > a, #mobile-main-menu li a:hover {
	padding-left: 3rem;
	color: var(--c-headlines);
}
.mm-contacts-list li a:hover::before,
#mobile-main-menu li.current-menu-ancestor > a::before, #mobile-main-menu li.current-menu-item > a::before, #mobile-main-menu li a:hover::before {
	width: 2rem;
}
.home #mobile-main-menu li.menu-item-1078.current-menu-item a {
	color: var(--c-text);
	padding-left: 0;
}
.home #mobile-main-menu li.menu-item-1078.current-menu-item a::before {
	width: 0;
}
.home #mobile-main-menu li.menu-item-1078.current-menu-item a:hover {
	color: var(--c-headlines);
	padding-left: 3rem;
}
.home #mobile-main-menu li.menu-item-1078.current-menu-item a:hover::before {
	width: 2rem;
}
.mm-contacts-list li {
	position: relative;
}
.header-social-media li a svg {
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.header-social-media li a:hover svg {
	color: var(--c-headlines);
}
@media (max-width: 767px) {
	#mm-col-3 {
		display: none;
	}
}


/* Homepage
--------------------------------------------------------- */
.home:not(.sticky-nav, .mobile-menu-open) header#main-header {
	background-color: transparent;
	border-bottom: none;
}
.home:not(.sticky-nav, .mobile-menu-open) header#main-header .burger::before,
.home:not(.sticky-nav, .mobile-menu-open) header#main-header .burger::after,
.home:not(.sticky-nav, .mobile-menu-open) header#main-header .burger .patty {
	background-color: #fff;
}
.home:not(.sticky-nav, .mobile-menu-open) header#main-header #main-menu > li > a {
	color: var(--c-white);
}
.home:not(.sticky-nav, .mobile-menu-open) header#main-header #logo svg > path:first-child {
	fill: var(--c-white) !important;
}


/* Buttons
--------------------------------------------------------- */
.elementor-widget-button .elementor-button, input#submit, input[type="button"], input[type="submit"], .button {
	letter-spacing: var(--ls-l);
	font-weight: 300;
	text-transform: uppercase;
	transition: color var(--a-timing-slow) var(--a-easing-default), background-color var(--a-timing-slow) var(--a-easing-default), border-color var(--a-timing-slow) var(--a-easing-default), transform var(--a-timing-slow) var(--a-easing-default), opacity var(--a-timing-slow) var(--a-easing-default), outline-width 0s linear 0s, outline-color 0s linear 0s;
}
.swiper .swiper-pagination-bullet {
	background-color: var(--c-lightest-gray);
	opacity: 1 !important;
	width: 24px !important;
	height: 5px;
	border-radius: 0;
	transition: width var(--a-timing-default) var(--a-easing-default),background-color var(--a-timing-default) var(--a-easing-default);
}
.swiper .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: var(--c-secondary);
}

/* arrow button */
.button.arrow-button {
	padding: 0;
	background: none !important;
	border: none;
	display: inline-flex;
	align-items: center;
}
.button.arrow-button svg {
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.button.arrow-button.white {
	color: var(--c-white);
}

.arrow-button .animated-circle {
	stroke-dasharray: 170 170;
	stroke-dashoffset: 170;
	transition: stroke-dashoffset 1s ease;
}
.arrow-button:hover .animated-circle {
	stroke-dashoffset: 0;
}

a.button:hover {
	background-color: var(--c-secondary);
	border-color: var(--c-secondary);
}


/* lightgallery
--------------------------------------------------------- */
.lg_trigger {
	overflow: hidden;
	position: relative;
}
.lg_trigger::after {
	content:"";
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	background-color: rgba(0,0,0,0.2);
	opacity: 0;
	pointer-events:none;
	transition: all var(--a-timing-slow) var(--a-easing-slow);
}
.lg_trigger img {
	transition: all var(--a-timing-slow) var(--a-easing-slow);
}
.lg_trigger:hover img {
	transform: scale(1.05);
}
.lg_trigger:hover::after {
	opacity: 1;
}


.galeriebild {
	position: relative;
}
.galeriebild img {
	aspect-ratio: 600 / 400;
}
/* .galeriebild.grid-item img, */
.auto-width-slider .galeriebild img {
	aspect-ratio: auto;
}
/* .galeriebild::before {
	content:"";
	width:100%;
	height:100%;
	position: absolute;
	top:0;
	left:0;
	background-color: var(--c-site-background);
	transition: all var(--a-timing-slow) var(--a-easing-slow);
	pointer-events:none;
	z-index:2;
}
.galeriebild.inView::before {
	opacity:0;
} */


/* 
--------------------------------------------------------- */
.footer-middle {
	background-color: var(--c-white);
	border-top: 1px solid #dcdcdc;
	border-bottom: 1px solid #dcdcdc;
	padding-top: 0;
	padding-bottom: 0;
}
#fm-col-1,
#fm-col-2,
#fm-col-3 {
	padding: var(--gap-default);
	text-align: center;
}
#fm-col-2 {
	border-left: 1px solid #dcdcdc;
	border-right: 1px solid #dcdcdc;
}
.footer-bottom {
	background-color: var(--c-white);
	color: var(--c-text);
}
#footer-menu {
	text-align:center;
	width: 100%;
}
#footer-menu li {
	width: auto;
	float: none;
	display: inline-block;
	margin: 10px;
}
#footer-menu li a {
	color: var(--c-light-gray);
	position: relative;
	padding: 1px 0;
	margin: 10px;
	transition: all var(--a-timing-slow) var(--a-easing-slow);
}
#copyright a {
	color: var(--c-light-gray);
	position: relative;
	transition: all var(--a-timing-slow) var(--a-easing-slow);
}
#copyright a::after,
#footer-menu li a::after {
	content:"";
	background-color: var(--c-headlines);
	position: absolute;
	left: 0;
	bottom: 1px;
	width: 0;
	height: 1px;
	transition: all var(--a-timing-slow) var(--a-easing-slow);
}
#copyright a::after {
	bottom: -2px;
}
#copyright a:hover,
#footer-menu li a:hover {
	color: var(--c-headlines);
}
#copyright a:hover::after,
#footer-menu li a:hover::after {
	width: 100%;
}
#footer-socials {
	text-align:center;
	margin-bottom: calc(var(--gap-default) * -1);
}
@media (max-width:1024px) {
	.footer-middle .grid {
		padding: var(--gap-default) 0;
		grid-template-columns: repeat(1, 1fr);
	}
	.footer-middle .grid .column {
		grid-column: span 1;
	}
	#fm-col-1,
	#fm-col-2,
	#fm-col-3 {
		padding: 0;
	}
	#fm-col-2 {
		border: none;
	}
}
@media (max-width:767px) {
	#footer-menu li {
		width: 100%;
		margin: 0;
	}
	#main-footer {
		padding-bottom: 70px;
	}
}


/* Leistungen
--------------------------------------------------------- */
/* Single */
/* #sl-galerie {
	margin-left: -10px;
	margin-right: -10px;
}
.single-leistungen .grid-item {
	width: calc(25% - 20px);
	margin: 10px;
} */
@media (min-width:1024px) {
	.sl-content .wysiwyg {
		columns: 2;
		gap: calc(var(--gap-default) * 2);
	}
}
@media (max-width:767px) {
	#sl-galerie {
		grid-gap: 5px;
	}
	.single-leistung-container {
		padding-top: 0;
	}
}
/* cards / archive */
/* Leistungen
--------------------------------------------------------- */
.leistung-wrapper {
	position: relative;
}
.leistung-thumb {
	/* aspect-ratio: 1 / 1; */
	aspect-ratio: 3 / 2;
}
.leistung-text {
	padding: 20px;
	transition: all var(--a-timing-slow) var(--a-easing-slow);
	/* position: absolute;
	top: 100%; */
	width: 100%;
}
.leistung-text > span {
	line-height: var(--lh-s);
	transition: all var(--a-timing-default) var(--a-easing-default);
	display: block;
	min-height: 58px;
}

.widget-projekte .leistung .leistung-text,
.single-leistungen .leistung .leistung-text,
.leistung:hover .leistung-text {
	background-color: var(--c-headlines);
	color: #ffffff;
	transform: translateY(-60px);
	/* padding: 20px 20px 100px;
	top: calc(100% - 100px); */
}
.widget-projekte .leistung .leistung-text {
	transform: translateY(0px);
}
.widget-projekte .leistung:hover .leistung-text {
	background-color: var(--c-primary-alt);
}
.widget-projekte .leistung .leistung-text > span,
.single-leistungen .leistung .leistung-text > span,
.leistung:hover .leistung-text > span {
	color: #ffffff;
}
.single-leistungen .leistung .leistung-text {
	margin-top: -60px;
	transform: translateY(0px);
}
@media (max-width:767px) {
	.leistung .leistung-text {
		background-color: var(--c-headlines);
		color: #ffffff;
		transform: translateY(0px) !important;
		margin-top: -60px;
	}
	.leistung .leistung-text > span {
		color: #ffffff;
	}
}


/* 404
--------------------------------------------------------- */
.fourohfour-wrapper {
	min-height: calc(100svh - 300px);
	padding: 100px 0;
}
.error404 .fourohfour-wrapper > h1 {
	/* position: absolute; */
	/* top: 0;
	bottom: 0;
	left:0;
	right:0;
	margin:auto;
	z-index:-1; */
	line-height: 1.2;
	text-align:center;
	/* height: 50vh; */
	font-size: 30rem;
	color: #fff;
	-webkit-text-stroke-width: 1px;
	-webkit-text-stroke-color: var(--c-primary);
}

/* Kontaktseite
--------------------------------------------------------- */
/* .page-id-306 {
	background-color: var(--c-headlines);
	color: var(--c-text);
}
.page-id-306 .nosun-widget .column {
	padding: calc(var(--gap-default) * 2) calc(var(--gap-default) * 2) var(--gap-default);
	background-color: var(--c-white);
}
.nosun-widget.nosun-kontaktformular .column {
	padding-top: 0;
	padding-bottom: calc(var(--gap-default) * 2);
	font-size: var(--fs-s);
} */
.page-id-306 .contacts-block {
	margin-bottom: var(--space-s);
}
.contacts-wrapper .text-col .wysiwyg > p {
	display: none;
}
.contacts-block {
	display:flex;
	grid-gap: var(--space-xs);
}
.contacts-block .cb-icon {
	width: 60px;
	height: 60px;
	background-color: #000;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}
.contacts-block .cb-icon svg {
	width: 30px;
	height: 30px;
}
.contacts-block .cb-content {
	width: calc(100% - 80px);
	display: flex;
	align-items: center;
	line-height: var(--lh-m);
}
.contacts-block.oeffnungszeiten .cb-content {
	flex-direction: column;
	justify-content: center;
}
.contacts-block.oeffnungszeiten .cb-content .nts_oeffnungszeiten-tage {
	/* min-width: 90px; */
	display: inline-block;
	margin-right: 10px;
	color: var(--c-headlines);
}



@media (max-width:767px) {
	.calltoaction-content .button {
		margin-top: var(--gap-default);
	}
}


.footer-logo {
	height: 100px;
	width: auto;
}


/* Animations
--------------------------------------------------------- */
/* default */
.elementor-widget-heading, .elementor-widget-text-editor, .animate {
	opacity: 0;
	transform: translateY(var(--gap-default));
	transition: all var(--a-timing-default) var(--a-easing-default) .2s;
}
.elementor-widget-button .elementor-button, .button {
	opacity: 0;
	transform: translateY(var(--gap-default));
}
/* only fade */
.fadeIn {
	opacity: 0;
	transition: all var(--a-timing-slow) var(--a-easing-default) .2s;
}
@media (min-width: 768px) {
	.a-delay-1 {transition-delay: 0.4s;}
	.a-delay-2 {transition-delay: 0.0s;}
	.a-delay-3 {transition-delay: 0.4s;}
	.a-delay-4 {transition-delay: 0.0s;}
	.a-delay-5 {transition-delay: 0.4s;}
	.a-delay-6 {transition-delay: 0.0s;}
	.a-delay-7 {transition-delay: 0.4s;}
	.a-delay-8 {transition-delay: 0.0s;}
}
@media (min-width: 1024px) {
	.a-delay-1 {transition-delay: 0.4s;}
	.a-delay-2 {transition-delay: 0.6s;}
	.a-delay-3 {transition-delay: 0.4s;}
	.a-delay-4 {transition-delay: 0.6s;}
	.a-delay-5 {transition-delay: 0.8s;}
	.a-delay-6 {transition-delay: 0.4s;}
	.a-delay-7 {transition-delay: 0.6s;}
	.a-delay-8 {transition-delay: 0.8s;}
}

/* animation complete */
.elementor-editor-active .elementor-widget-heading,
.elementor-editor-active .elementor-widget-text-editor,
.elementor-editor-active .elementor-widget-button .elementor-button,
.elementor-editor-active .button,
.elementor-editor-active .animate,
.elementor-widget-heading.inView,
.elementor-widget-text-editor.inView,
.elementor-widget-button .elementor-button.inView,
.button.inView,
.animate.inView {
	opacity: 1;
	transform: translateY(0px);
}
.elementor-editor-active .fadeIn,
.fadeIn.inView {
	opacity: 1;
}


/* display:none
--------------------------------------------------------- */
.wpa-test-msg {
	display: none !important;
}