.header_menu{
	--btnWidth: 300px;
	--btnMargin: 2rem;
}

div.mainMenu{
	width: 100%;
	height: calc(var(--headerHeight));
}

.header_menu {
	height: 100%;
	width: 100%;
	z-index: 11;
	position: relative;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	background-color: var(--themePrimary);
}
.header_menu::before {
	height: calc(100% - 10px);
	width: 40px;
	content: '';
	background-image: url(/images/icons/icon-marker.svg);
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	top: 5px;
	left: 0;

	animation: slideIn 1s ease-out forwards;
}

@keyframes slideIn {
	from {
		transform: translateX(-100px);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

.header_menu .col{
	height:var(--menuHeight);
}
.header_menu .logoCol{
	width: max-content;
	flex: none;
	display: flex;
	align-items: center;
}

.header_menu .btn-header{
	position: relative;
	height:100%;
	width: var(--btnWidth) !important;
	background-color: #fff;
	display: inline-flex;
	border: none;
	overflow: hidden;
	border-radius: 0;
	color: var(--themePrimary);
	margin-left: var(--btnMargin);
	box-sizing: border-box;
	padding: 0;
	align-items: center;
	flex: none;
	justify-content: center;
}
.header_menu .btn-header svg{
	border:none !important;
	position: absolute;
	left: 0;
	transform: translateX(-30%);
}
.header_menu .btn-header:hover svg{
	transform: translateX(-20%);
}

.header_menuContent{
	position: relative;
	width: 100%;
	height: var(--menuHeight);
	aspect-ratio: 1;
	max-height: 100%;
	z-index: 11;
}

div.header_menu .menuItems{
	position:relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: flex-end;
	align-items: center;
	gap: 2rem;
}

div.header_menu li{
	list-style:none;
	height: 100%;
	position: relative;
	z-index: 10;
}
div.header_menu li.hasSub::after{
	content:'';
	width:13px;
	height:10px;
	display:inline-block;
	background-image:url(/images/icons/carret.svg);
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;
	filter:invert(1);
}

div.header_menu li.hasSub.selected::after,
div.header_menu li.hasSub:hover::after{
	filter:invert(0);
}

div.header_menu li:hover{
	/* background-color: var(--themeGreyBg); */
}
div.header_menu li a{
    --txtColor: var(--themePrimaryDark);
    font-size: 16px;
    height: 100%;
    font-weight: 500;
    text-decoration: none;
    text-align: center;
    box-sizing: border-box;
    transition: color .2s ease-in-out;
    display: inline-flex;
    align-items: center;
    min-width: 65px;
    color: var(--txtColor) !important;
    text-transform: uppercase;
}
.jumbo-header:not(.transparent) div.header_menu li:not(.selected):not(:hover) a{
	--txtColor: #fff;
	text-transform: uppercase;
}

body div.header_menu .menuItems > li.selected a,
body div.header_menu .menuItems > li:hover a{
	--txtColor: var(--themePrimaryDark);
	color:var(--txtColor) !important;--txtColor
}

div.header_menu li:not(:hover) ul{
	display:none;
}

.menuHolder{
	position:absolute;
	top:0;
	right:0;
	text-transform: uppercase;
	width: auto;
}

@media screen and (min-width: 1024px){
	div.header_menu .listBlock{
		position: Absolute;
		left: 50% !important;
		top: calc(100% - 0px);
		min-width: max(370px, 100%);
		box-sizing: border-box;
		background-color: #fff;
		border-radius: 11px;
		padding: 0.5rem;
		z-index: 15;
		display: none;
		transform: TranslateX(-50%);
		border-radius: 0;
	}
}
.menuOverlay{
	display:block;
	opacity:0;
	position:fixed;
	left:0;
	top: var(--headerHeight);
	right:0;
	height:0;
	background-color:rgba(0,0,0,0.4);
	z-index: 10;
	transition:opacity .3s ease-in-out;
}
.menuOverlay.hover{
	opacity:1.0;
	height:100%;
}

div.header_menu li:hover > .listBlock{
    display: flex;
    align-items: flex-start;
}
div.header_menu .listBlock ul.sub {
    min-width: 260px;
    width: 100%;
    position: relative;
    /* float: left; */
    padding: 10px 0;
    display: flex;
    margin: 0;
    flex-direction: column;
    padding-top: 0;
}

div.header_menu ul.sub li:hover a{
	--txtColor: var(--themePrimary);
	color: var(--themePrimary) !important;
}
div.header_menu ul.sub li {
    float: left;
    width: auto;
    text-align: left;
    height: auto;
    color: #000;
}
div.header_menu ul.sub a{
	width: 100%;
	line-height: 1em;
	font-weight: 600;
	font-size: 14px;
	padding: 12px 1.5rem;
	color: #000;
	justify-content: space-between;
	text-align: left;
}

div.header_menu ul.sub li a img{
	height:2em;
	margin:-5px;
	transform:translateX(-100%);
	opacity:0.0;
	transition: all .2s ease-in-out;
}
div.header_menu ul.sub li a.active img,
div.header_menu ul.sub li:hover a img{
	transform:translateX(0%);
	opacity:1.0;
}

div.header_menu ul.sub li:hover a::after{
	transform:translateX(2px);
}

div.header_menu ul.sub li:not(:hover) a{
	color: var(--themePrimaryDark) !important;
}

div.header_menu li.hasButton{
	padding: 0 13px;
}

div.header_menu ul.sub .isParent{
	/* background-color: var(--themePrimary); */
	background-color: #e25500;
	padding: 0.3rem 0.25rem;
}
div.header_menu ul.sub .isParent a:not(:hover){
	color:white !important;
}
div.header_menu ul.sub .isParent a:hover{
	color:var(--themePrimaryDark) !important;
}

div.header_menu .dienst-isSub{}
div.header_menu .dienst-isSub .dienstenSub{
    /* background-color: var(--themeBg); */
    padding: 0.5rem 0rem;
    display: inline-flex;
    width: 100%;
    flex-direction: column;
}
div.header_menu .dienst-isSub .dienstenSub .dienst-listItem{}
div.header_menu .dienst-isSub .dienstenSub .dienst-listItem a{
	padding:0.5rem 0 !important;
}
div.header_menu .dienstenSub .dienst-listitem + .dienst-listItem{
	border-top:1px solid rgba(0,0,0,0.2);
}

div.header_menu .dienst-isSub .dienstenSub:empty{
	display:none;
}

div.header_menu .dienst-listitem:not(.isParent) a:hover{
	background-color:var(--themeBg);
}

@keyframes v-fadeIn {
    from {
        opacity: 0; /* Start with transparency */
    }
    to {
        opacity: 1; /* End with full opacity */
    }
}


@media screen and (max-width: 1190px){
	[html-tag='menu-balk'] div{
		font-size:11px;
	}
}

@media screen and (min-width:1024px) and (max-width: 1190px){
	[html-tag='menu-balk'] div{
		font-size:10px;
	}
}	

@media screen and (max-width: 1024px){



	.header_menuContent .row {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
	}
	.header_menuContent .row .menuItems{
		gap: 23px;
	}
}
@media (max-width: 1024px){
	div.header_menu .logoHolder {
		position: absolute;
		width: auto;
		right: 50%;
		top: 0;
		height: var(--headerHeight);
		float: inherit;
		transform: translateX(50%);
		padding: 0;
		transition: all .2s ease-in-out;
	}
	div.menu_button.close + .logoHolder {
		height:100px;
	}
	
	div.header_menu img.logo {
		width:auto;
		max-width: inherit;
		/* height: 100%; */
		/* padding: 11px; */
	}

	div.py-4.mainMenu {
		position: absolute;
		width: 100%;
	}	
	
	body img.scroll_down{
		position: absolute;
		bottom: 30px;
		left: 30px;
		height: 60px;
		z-index: 99;
		display:block;
	}
	
	div.header_menu{
		width: 100%;
		height: 100vh;
		min-height:100%;
		margin: 0px 0px;
		overflow-y: hidden;
		border-radius:0;
	}
	.mainMenu:not(.shown) div.header_menu {
		max-height: var(--menuHeight);
		margin: 0;
		box-shadow: none;
		overflow: visible;
		border-radius: 0;
		background-color: transparent;
	}
	div.header_menu.shown{
		min-height: 100%;
		max-height: 100000px;
		padding-bottom: 20px;
		overflow:auto;
	}
	
	div.header_menu li{
		width: 100%;
		margin: 0;
		height: auto;
		border:none;
		padding: 2.3vh 0;
		font-weight: 300;
	}
	div.header_menu li:hover a::after,
	div.header_menu li.selected a::after{
	    /* width: 60%; */
	    /* left: 20%; */
	}
	div.header_menu li img{  
		display:block;
	}
	
	div.mainMenu{
		height: 70px;
		top: 0;
		left: 0;
		width: 100%;
		padding: 0 !important;
		overflow: visible;
		position: absolute;
		background-color: var(--themePrimary);
	}
	div.mainMenu.shown{
		height: 100% !important;
		max-height: 100%;
		position: fixed;
		z-index: 100;
		max-width: 100dvw;
	}
	
	div.mainMenu div.logo_col,
	div.mainMenu div.menu_col{
		margin:0;
		padding:0;
	}
	
	div.mainMenu.shown .header_menu .listMenu {
		padding-bottom: 30px;
		position: absolute;
		top: var(--headerHeight);
		height: calc(100vh - 56px);
		overflow: auto;
		z-index: 2;
		/* background-color: #fff; */
	}
	
	div.menu_top{		
		padding-bottom: 20px;
	}
	div.mainMenu:not(.shown) .listMenu{
		display: none;
	}
	div.header_menu li{
		min-width: 100%;
		line-height:45px;
		padding:0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.3);
		-webkit-touch-callout: none; /* iOS Safari */
		-webkit-user-select: none; /* Safari */
		-khtml-user-select: none; /* Konqueror HTML */
		-moz-user-select: none; /* Firefox */
		-ms-user-select: none; /* Internet Explorer/Edge */
		user-select: none; /* Non-prefixed version, currently
						  supported by Chrome and Opera */
	}

	div.header_menu li a{
		/* --txtColor: #000 !important; */
		margin: auto;
		display: block;
		text-align: center;
		width: 100%;
		height: auto;
		line-height: 50px;
		font-size: 20px;
		padding: 1.2vh 0;
		font-weight: 300;
	}
	
	div.header_menu li .listBlock ul {
		margin: 0;
		padding: 0;
		width: 100%;
	}
	div.header_menu li .listBlock ul li{
		text-align:Center;		
	}
	div.header_menu li.mobileFirstClick > .listBlock,
	div.header_menu li:hover > .listBlock {
		position: relative;
		display: block;
		padding: 0;
		margin-bottom: 10px;
		box-shadow: none;
		/* float: left; */
		width: 100%;
		left:0 !important;
		background-color: rgba(255,255,255,0.1);
	}

	div.header_menu ul.sub a {
		/* padding: 22px 0; */
		/* color: white; */
		display: inline-flex;
		justify-content: space-between;
	}
	div.header_menu ul.sub li:last-of-type {
		border-bottom:none;
	}

	div.header_menu a.home_but{
		float: inherit;
		display: none;
	}

	img.menu_show{
		display:none;
		position:absolute;
		top:20px;
		right:20px;
	}

	div.menu_button{
		position: absolute;
		width: 40px;
		height: 40px;
		right: 0px;
		top: 10px;
		display: flex;
		cursor: pointer;
		z-index: 110;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 6px;
	}
	div.menu_button div.lines{
		width: 23px;
		height: 2px;
		background: #fff;
		-moz-transition: .4s;
		transition: .4s;
		position: relative;
		border-radius: 3px;
	}

	div.menu_button div.lines.frst{/* top: 0px; */}
	div.menu_button div.lines.mid {top: 6px;}
	div.menu_button div.lines.last{
		/* top: 12px; */
	}

	div.menu_button.close div.lines{
		background-color: #fff;
		transform-origin: 6px 1px;
	}
		
	div.menu_button.close div.lines.mid{opacity:0.0;}
	div.menu_button.close div.lines.frst{
	transform: rotateZ(45deg);
	}
	div.menu_button.close div.lines.last{
	transform: rotateZ(-45deg);
	}
}

@media screen and (min-width: 766px) and (max-width: 790px){		
	
}
@media screen and (min-width: 990px) and (max-width: 1010px){		
	
}

@media screen and (max-width: 1024px){	
	.listLink.hasSub > a::after{
		content:"\f107";
		font-family: "Font Awesome 6 Free";
		font-weight: 600;
		float: right;
	}

	div.header_menu li.hasSub:not(.mobileFirstClick) .listBlock{
		display:none;
	}
}
@media screen and (max-width: 765px){	
	#mainMenu:not(.shown) .logoHolder{
		/* display:none; */
	}
	
	div.menu_button.close + .logoHolder {
		height:70px;
	}
	
}

@media screen and (min-width:1920px){
	.header_menu .menuHolder{
		--containerMargin: calc((100dvw - 1320px)/2);
		--menuRightOffset: calc(max(0px,var(--containerMargin) - var(--btnWidth)));
	}

	.header_menu .menuHolder{
		right: var(--menuRightOffset);
	}
	
	.header_menu .menuHolder::after{
		content:'';
		position:absolute;
		height:100%;
		width: calc(var(--menuRightOffset) + 1px);
		background-color:#fff;
		right:calc(-1 * var(--menuRightOffset) + 1px);
		top:0;
	}
}
