/* Custom CSS
--------------------------------------------------------- */
a {
	text-decoration: none;
}
#content {
    padding: 0;
}
.elementor-editor-active #content {
    padding-top: 12rem;
}
.elementor-widget-heading h1.elementor-heading-title, .entry-content h1, h1, .elementor-widget-heading h2.elementor-heading-title, .entry-content h2, h2, .elementor-widget-heading h3.elementor-heading-title, .entry-content h3, h3, .elementor-widget-heading h4.elementor-heading-title, .entry-content h4, h4, .elementor-widget-heading h5.elementor-heading-title, .entry-content h5, h5, .elementor-widget-heading h6.elementor-heading-title, .entry-content h6, h6 {
	line-height: 1.4;
}
.elementor-widget-heading h5.elementor-heading-title, .entry-content h5, h5 {
	text-transform: uppercase;
	color: var(--c-secondary);
	letter-spacing: var(--ls-m);
	font-size: var(--fs-s);
}

ol {
	list-style-position: inside;
}

/* ===============================
	POPUPS
=============================== */
.elementor-editor-active .popup-bg, .elementor-editor-active .popup-wrapper {
	display: none !important;
}
/* zum Popup-Testen Kommentar entfernen
.popup-bg, .popup-wrapper {
	display: none !important;
}
.logged-in .popup-bg, .logged-in .popup-wrapper {
	display: flex !important;
} */
/* ------------------------------------------------ */
.popup-bg {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	z-index: 99998;
	background-color: rgba(0,0,0,.4);
	transition: all .2s ease;
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}
.popup-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	z-index: 99999;
	display:flex;
	justify-content: center;
	align-items: center;
	transition: all .2s ease;
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}
.popup-close {
	width: 50px;
	height: 50px;
	background-color:var(--c--primary);
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
	display: flex;
    align-items: center;
    background: #e9e9e9;
    justify-content: center;
}
.popup {
	width: 98%;
	height: auto;
	max-width: 700px;
	/*max-height: 1000px;*/
	padding: 60px 40px;
	background-color: #fff;
	position: relative;
	/*overflow: scroll;*/
}
.popup-inner {
	height: 100%;
    max-height: 88vh;
    overflow-y: auto;
    overflow-x: hidden;
	text-align:center;
}
.popup h4 {
	font-size: 26px;
	margin-bottom: 20px;
}
.popup .popup-content {
	font-size: 16px;
}
.popup-wrapper.active,
.popup-bg.active {
	opacity: 1;
	pointer-events: all;
	visibility: visible;
}
@media (max-width: 767px) {
	.popup {
	  padding: 60px 20px;
	}
}
.popup-close svg {
	display:inline-block;
	height:24px;
	width:24px;
	position:relative;
}


/* HEADER
--------------------------------------------------------- */
header#header {
	position: fixed;
	background-color: transparent;
	box-shadow: none;
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.sticky-nav #logo svg {
	height: 50px;
}
.mobile-menu-open #logo svg,
#logo svg {
	height: 72px;
	width: auto;
	transition: all var(--a-timing-default) var(--a-easing-default);
}
#logo path {
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.sticky-nav header#header {
	background-color: var(--c-white);
	box-shadow: 0 -2px 20px rgba(0,0,0,.2);
}
.sticky-nav #logo path,
.mobile-menu-open #logo path {
	fill: var(--c-primary) !important;
}

.mobile-menu-open header#header {
	transform: translateY(0px) !important;
	box-shadow:none;
}

#main-menu li a {
	font-family: var(--ff-alt);
	text-transform: uppercase;
	position: relative;
}
#main-menu li.current-menu-item a,
#main-menu li a:hover,
#main-menu li a {
	color: #fff;
}
#mobile-main-menu li a::after,
#main-menu li a::after {
	content: "";
	position: absolute;
	bottom: 1rem;
	left: 0;
	right: 0;
	margin: auto;
	height: 1px;
	width: calc(100% - 6rem);
	background-color: #fff;
	pointer-events: none;
	opacity: 0;
	transform: translateY(10px);
	transition: all var(--a-timing-default) var(--a-easing-default);
}
#mobile-main-menu li a::after {
	width: 100%;
	background-color: var(--c-primary);
	bottom: 0;
}
#mobile-main-menu li.current-menu-item a::after,
#mobile-main-menu li a:hover::after,
#main-menu li.current-menu-item a::after,
#main-menu li a:hover::after {
	opacity: 1;
	transform: translateY(0px);
}
@media (max-width: 767px) {
	.header-top .grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.mobile-menu-open #logo svg,
	.sticky-nav #logo svg,
	#logo svg {
		height: 50px;
	}
}
.burger {
	margin-right: -10px;
}
.burger::before, .burger::after, .burger .patty {
	background-color: var(--c-white);
}
.sticky-nav .burger::before, .sticky-nav .burger::after, .sticky-nav .burger .patty,
.mobile-menu-open .burger::before, .mobile-menu-open .burger::after, .mobile-menu-open .burger .patty {
	background-color: var(--c-primary);
}
.sticky-nav #main-menu li.current-menu-item a,
.sticky-nav #main-menu li a:hover,
.sticky-nav #main-menu li a {
	color: var(--c-primary);
}
.sticky-nav #main-menu li a::after {
	background-color: var(--c-primary);
}
.mobile-menu-inner > .container {
	padding-top: 12rem;
	padding-bottom: 6rem;
	padding-left: 0;
	padding-right: 0;
}
.mobile-menu-contacts,
.mobile-menu-socials,
#mobile-main-menu {
	list-style: none;
	opacity: 0;
	transform: translateY(20px);
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.mobile-menu-open .mobile-menu-contacts,
.mobile-menu-open .mobile-menu-socials,
.mobile-menu-open #mobile-main-menu {
	opacity: 1;
	transform: translateY(0px);
	transition: all .7s var(--a-easing-default) .2s;
}
#mobile-main-menu li {
	width: 100%;
	text-align: center;
}
#mobile-main-menu li a {
	font-size: 3rem;
	margin-top: 2rem;
	display: inline-block;
	position: relative;
}

/* Widget: Banner
--------------------------------------------------------- */
.nosun-banner-widget {
	width: 100%;
	position: relative;
	overflow: hidden;
}
.banner-image-container {
	position: relative;
	/*top: 0;
	left: 0;*/
	width: 100%;
	height: 100%;
	z-index: 2;

	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	/*background-attachment: fixed;*/
}
.banner-image-container::before {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: rgba(0,0,0,.4);
}
.banner-content-wrap {
	position: relative;
	z-index: 3;
	height: 100%;
}
.banner-content-wrap .grid {
	padding-top: 10rem;
	padding-bottom: 10rem;
}
.banner-groesse-full .banner-content-wrap .grid {
	min-height: 100vh;
}
.banner-groesse-large .banner-content-wrap .grid {
	padding-top: 20rem;
	padding-bottom: 20rem;
}
.banner-titel {
	padding-left: 6rem;
	position: relative;
}
.banner-titel::before {
	content: "";
	display: inline-block;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background-color: var(--c-white);
	margin: auto;
	height: 1px;
	width: 5rem;
}
.elementor-editor-active .banner-content-wrap,
.elementor-editor-active .banner-content-wrap h5,
.banner-content-wrap h5.banner-titel {
	color: var(--c-white);
}
.elementor-editor-active .banner-content-wrap h1,
.banner-content-wrap h1.banner-ueberschrift {
	color: var(--c-white);
	line-height: 1.2;
	font-size: clamp(4rem, 10vw, 8rem);
}

.nosun-banner-widget .button {
	margin-top: 4rem;
}
@media (min-width: 768px) {
	.banner-image-container.bi-fixed {
		background-attachment: scroll;
		/*background-size: auto 100%;*/
	}
}

/* Widget: Abstand
--------------------------------------------------------- */
.nosun-abstand-widget { min-height: 1px; }
.nosun-abstand-widget.abstand-size-xxl 		{ height: 100px; }
.nosun-abstand-widget.abstand-size-xl 		{ height: 80px; }
.nosun-abstand-widget.abstand-size-l 		{ height: 60px; }
.nosun-abstand-widget.abstand-size-m 		{ height: 40px; }
.nosun-abstand-widget.abstand-size-s 		{ height: 20px; }
.nosun-abstand-widget.abstand-size-xs 		{ height: 10px; }
@media (min-width: 768px) {
	.nosun-abstand-widget.abstand-size-xxl 	{ height: 180px; }
	.nosun-abstand-widget.abstand-size-xl 	{ height: 140px; }
	.nosun-abstand-widget.abstand-size-l 	{ height: 80px; }
	.nosun-abstand-widget.abstand-size-m 	{ height: 40px; }
	.nosun-abstand-widget.abstand-size-s 	{ height: 20px; }
	.nosun-abstand-widget.abstand-size-xs 	{ height: 10px; }
}
@media (min-width: 1081px) {
	.nosun-abstand-widget.abstand-size-xxl 	{ height: 220px; }
	.nosun-abstand-widget.abstand-size-xl 	{ height: 180px; }
	.nosun-abstand-widget.abstand-size-l 	{ height: 140px; }
	.nosun-abstand-widget.abstand-size-m 	{ height: 80px; }
	.nosun-abstand-widget.abstand-size-s 	{ height: 40px; }
	.nosun-abstand-widget.abstand-size-xs 	{ height: 20px; }
}

/* Widget: Speisekarte
--------------------------------------------------------- */
.speisekarte-kategorie {
	margin: 4rem auto 0;
    padding: 0 0 4rem 0;
    max-width: 800px;
    border-bottom: 2px solid var(--c-secondary);
}
.speisekarte-kategorie-ueberschrift {
	/*grid-column: span 2;*/
	text-align: center;
	font-style: italic;
	color: var(--c-secondary) !important;
}
.speisekarte-unterkategorie-wrapper {
	display: grid;
	grid-gap: var(--gap-half);
	grid-template-columns: repeat(1, 1fr);
}
.speisekarte-unterkategorie {
	margin: var(--gap-default) 0;
}
.speisekarte-unterkategorie-beschreibung {
	margin-bottom: 2rem;
}
.speisekarte-eintrag {
	margin: .4rem 0 1.4rem 0;
}
.speisekarte-eintrag.sk-eintrag-h5 {
	margin: .4rem 0 -0.7rem 0;
}
.speisekarte-eintrag.sk-eintrag-h4 {
	margin-top: 4rem;
}
.speisekarte-eintrag h4,
.speisekarte-eintrag h5 {
	margin-top: var(--gap-default) !important;
	margin-bottom: 0 !important;
	display: inline-block;
	vertical-align: baseline;
}
.speisekarte-eintrag h5 {
	font-weight: normal;
	text-transform: none;
	letter-spacing: 0;
	color: var(--c-text);
	font-style: italic;
	margin-bottom: 1rem !important;
}
.speisekarte-eintrag.sk-eintrag-h4:first-child {
	margin-top: 0 !important;
}
.sk-name-wrap {
	display: inline-block;
	width: 100%;
	line-height: 1.2;
	vertical-align: baseline;
}
.speisekarte-eintrag-name {
	/*font-weight: bold;*/
	font-size: 1.8rem;
	font-family: var(--ff-alt);
	vertical-align: baseline;
}
.sk-beschreibung {
	font-size: var(--fs-s);
	display: inline-block;
	width: 100%;
	line-height: 1.2;
}
.sk-allerge {
	font-weight: normal;
	font-size: var(--fs-xs);
	font-family: var(--ff-default);
	vertical-align: baseline;
}
.sk-liter {
	display: inline-block;
	margin-left: 1rem;
	vertical-align: baseline;
}
.sk-preis {
	display: none;

	width: 100px;
	float: right;
	vertical-align: baseline;
}
.speisekarte-unterkategorie-titel {
	color: var(--c-primary) !important;
}
@media (min-width: 768px) {
	.speisekarte-unterkategorie-wrapper {
		grid-gap: var(--gap-default);
	}
	.speisekarte-eintrag h4,
	.speisekarte-eintrag h5 {
		font-size: var(--fs-xl);
	}
	.speisekarte-eintrag h5 {
		font-size: var(--fs-l);
		margin-bottom: 0rem !important;
	}
	.speisekarte-eintrag-name {
		font-size: 2rem;
	}
}

/* Widget: Speisekarte Kategorie
--------------------------------------------------------- */
.speisekarte-kategorie-link {
	background-color: var(--c-primary);
	color: #fff;
	padding: 12rem calc(var(--gap-default) * 2) 20rem;
	text-align: center;
	font-style: italic;
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.speisekarte-kategorie-link:hover {
	box-shadow: 0 20px 50px rgb(0 0 0 / 60%);
}
.speisekarte-kategorie-link h2,
.speisekarte-kategorie-link h4 {
	color: var(--c-white);
}
.speisekarte-kategorie-link h2 {
	margin-top: calc(var(--gap-default) * 2);
}
.speisekarte-kategorie-link h4 {
	font-size: var(--fs-xl);
	margin-bottom: .4rem;
}
.sk-kl-content-bottom-wrapper {
	margin-top: 12rem;
	/*margin-left: 50%;
	width: 50%;*/
	float: right;
	position: relative;
	text-align: left;
}
.quotation-mark {
	position: absolute;
	top: -25px;
	left: -60px;
	z-index: 1;
	pointer-events: none;
}
.quotation-mark svg {
	width: 50px;
	height: auto;
}
.elementor-image-carousel .swiper-slide-image {
	float: left;
}

.style-klein .speisekarte-kategorie-link h2 {
	font-size: var(--fs-xl);
	margin-top: 0;
	margin-bottom: 0 !important;
}
.style-klein .sk-kl-content-bottom-wrapper {
	display: none;
}
.style-klein .speisekarte-kategorie-link {
	padding: 4rem;
}

@media (max-width: 767px) {
	.nosun-speisekarte-kategorien-widget .grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.style-klein .speisekarte-kategorie-link h2,
	.speisekarte-kategorie-link h2 {
		font-size: var(--fs-m);
		margin-top: 0;
		margin-bottom: 0 !important;
	}
	.style-klein .speisekarte-kategorie-link,
	.speisekarte-kategorie-link {
		padding: 4rem 0rem;
	}
	.speisekarte-kategorie {
	    margin: 3rem auto 0;
	    padding: 0 0 2rem 0;
	}
	.speisekarte-kategorie-ueberschrift {
	    margin-bottom: 0 !important;
	}
	.sk-kl-content-bottom-wrapper {
		display: none;
	}
}

/* WPForms
--------------------------------------------------------- */
div.wpforms-container-full .wpforms-form input[type=date], div.wpforms-container-full .wpforms-form input[type=datetime], div.wpforms-container-full .wpforms-form input[type=datetime-local], div.wpforms-container-full .wpforms-form input[type=email], div.wpforms-container-full .wpforms-form input[type=month], div.wpforms-container-full .wpforms-form input[type=number], div.wpforms-container-full .wpforms-form input[type=password], div.wpforms-container-full .wpforms-form input[type=range], div.wpforms-container-full .wpforms-form input[type=search], div.wpforms-container-full .wpforms-form input[type=tel], div.wpforms-container-full .wpforms-form input[type=text], div.wpforms-container-full .wpforms-form input[type=time], div.wpforms-container-full .wpforms-form input[type=url], div.wpforms-container-full .wpforms-form input[type=week], div.wpforms-container-full .wpforms-form select, div.wpforms-container-full .wpforms-form textarea {
	background-color: transparent !important;
	border-width: 0 0 1px 0 !important;
	border-color: rgba(255,255,255,.3) !important;
	border-radius: 0 !important;
	height: 50px;
	padding-left: 0 !important;
	padding-right: 0 !important;
	color: var(--c-white) !important;
	width: 100%;
	font-family: var(--ff-default) !important;
}
div.wpforms-container-full .wpforms-form input[type=email]::placeholder, div.wpforms-container-full .wpforms-form input[type=text]::placeholder, div.wpforms-container-full .wpforms-form textarea::placeholder {
	color: var(--c-white);
	font-family: var(--ff-default) !important;
}
div.wpforms-container-full .wpforms-form textarea {
	padding-left: var(--gap-default) !important;
	padding-right: var(--gap-default) !important;
	padding-top: var(--gap-default) !important;
	padding-bottom: var(--gap-default) !important;
	border-width: 1px !important;
	max-width: 100%;
	min-width: 100%;
}
.wpforms-field-checkbox {
	color: var(--c-white);
}
.wpforms-field-checkbox a {
	color: var(--c-white);
	text-decoration: underline !important;
}
label.wpforms-error {
	display: inline-block;
	padding: .4rem 1.2rem !important;
	background-color: var(--c-danger) !important;
	color: var(--c-white) !important;
	width: auto;
	float: left;
    margin-top: 0.5rem;
}
div.wpforms-container-full .wpforms-form button[type=submit] {
	background-color: var(--c-white) !important;
	border-color: var(--c-white) !important;
	color: var(--c-text) !important;
	transition: all var(--a-timing-default) var(--a-easing-default);
}
div.wpforms-container-full .wpforms-form button[type=submit]:hover,
div.wpforms-container-full .wpforms-form button[type=submit]:active {
	background-color: transparent !important;
	border-color: var(--c-white) !important;
	color: var(--c-white) !important;
}
@media (max-width: 767px) {
	div.wpforms-container-full .wpforms-form .wpforms-one-half, div.wpforms-container-full .wpforms-form .wpforms-three-sixths, div.wpforms-container-full .wpforms-form .wpforms-two-fourths {
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

.elementor-image-carousel-wrapper .elementor-swiper-button {
	background-color: rgba(255,255,255,.9);
	color: var(--c-text);
	padding: 10px;
}

/* Footer
--------------------------------------------------------- */
footer#footer .footer-top,
footer#footer .footer-middle {
	background-color: var(--c-primary);
	color: var(--c-white);
}
footer#footer .footer-top .grid,
footer#footer .footer-middle .grid {
	padding-top: 4rem;
	padding-bottom: 4rem;
}
footer#footer .footer-top h2,
footer#footer .footer-top h3,
footer#footer .footer-top h4,
footer#footer .footer-top h5,
footer#footer .footer-top h6,
footer#footer .footer-top a,
footer#footer .footer-middle h2,
footer#footer .footer-middle h3,
footer#footer .footer-middle h4,
footer#footer .footer-middle h5,
footer#footer .footer-middle h6,
footer#footer .footer-middle a {
	color: var(--c-white);
}
footer#footer .footer-bottom {
	background-color: var(--c-white);
	color: var(--c-text);
}

#footer-menu li a {
	color: #fff;
}
footer#footer .footer-top a:hover,
.footer-sm-link:hover,
#footer-menu li a:hover,
footer#footer .footer-middle a:hover {
	color: #fff;
	opacity: .7;
}
.footer-sm-link {
	display: inline-block;
	float: left;
	margin-top: 20px;
	margin-right: 20px;
}
.footer-sm-link:last-child {
	margin-right: 0;
}
.footer-sm-link svg {
	height: 24px;
	width: auto;
}
.mobile-menu-socials .footer-sm-link {
	float: none;
	vertical-align: top;
}