@charset "utf-8";
/* CSS Document */

:root{
/*	----------------------------------------------------------  SIZES  */	
	--full-width: 100%;
	--inner-width: 1600px;
	--half-block-width: calc(1600px / 2);
	
/*	---------------------------------------------------------  COLORS  */
	--bg-color-test: rgba(255,0,0,0.1);

/*	----------------------------------------------------------  FONTS  */	
	--montserrat: 'Montserrat', 'Arial', sans-serif;
/*	--cormorant: 'Cormorant Garamond', 'Times New Roman', 'Times', serif;  */
	--cormorant: 'Cormorant Garamond', sans-serif;
	
	--thin: 		100;
	--extralight: 	200;
	--light: 		300;
	--regular: 		400;
	--medium: 		500;
	--semibold: 	600;
	--bold: 		700;
	--black: 		800;
	--extrablack: 	900;
}

* {
	box-sizing:border-box;
}

html, body {
	width:100%;
	height:auto;
	min-height:100dvh;
	position:relative;
	
	padding:0;
	margin:0;
	
	font-family: var(--montserrat); 
	font-weight: 300;
	font-style:normal;
	font-size:93.75%;
	color:rgba(0,0,0,1);
}

html{
	/*	force scrollbars  */
	overflow-y:scroll;
	scroll-behavior: smooth;	
}

body{
	
}

	h1, h2, h3, h4, h5, h6, p, td, ul, li, figure, button {
		margin:0;
		padding:0;
		font-weight:normal;
		border:0;
		outline:0;
		background-color:transparent;
	}

	a { 
		font-family: var(--montserrat); 
		font-style: normal;
		font-weight: var(--medium);
		text-decoration:none; 
	}

	a:link, a:visited { color:rgba(0,0,0,1); }
	a:hover, a:active { color:rgba(0,0,0,0.5);}

	strong{
		font-family: var(--montserrat); 
		font-style: normal;
		font-weight: var(--bold);
	}


.flxR{
	display:flex;
	flex-flow:row;
	flex-wrap:nowrap;
}
.flxC{
	display:flex;
	flex-flow:column;
	flex-wrap:nowrap;
}
.flxJCA	{ justify-content:space-around; }
.flxJCB	{ justify-content:space-between; }
.flxJCC	{ justify-content:center; }
.flxJCE	{ justify-content:flex-end; }
.flxJCS	{ justify-content:flex-start; }

.flxAIC	{ align-items:center; }
.flxAIE	{ align-items:flex-end; }
.flxAIS	{ align-items:flex-start; }
.flxWrp	{ flex-wrap:wrap; }

.fllW{
	width:100%;
	height:auto;
}
.fllH{
	height:100%;
	width:auto;
}
.fllWH{
	width:100%;
	height:100%;
}

.innerWidth{
	width:100%;
	max-width: var(--inner-width);
	margin:0 auto;
}

.centered{
	text-align: center;
}


/*	-------------------------------------------------------------------------------  COMMON CLASSES  */

h1{
	padding: 0 0 2rem;
	
	font-size: 2rem;
	font-weight: 300;
	font-style: normal;
	text-transform: uppercase;
	text-align: center;
	letter-spacing: 0.25rem;
}
	.home h1{
		font-size: 1.7rem;
	}
	@media screen and (min-width:444px){
		.home h1{
			font-size: 2rem;
		}
	}

h2{
	padding: 2rem 0 1.5rem;
	font-family: var(--montserrat);
	font-weight: var(--light);
	font-size: 1.5rem;
	letter-spacing: 0.2rem;
}
	.home h2{
		padding: 0 0 2rem;
		font-size: 2.4rem;
		letter-spacing: 0.1rem;
	}
	@media screen and (min-width:444px){
		.home h2{
			font-size: 2.8rem;
			letter-spacing: 0.2rem;
		}
	}

	h2 span{
		font-family: var(--cormorant);
		font-weight: var(--medium);
		font-size: 3rem;
		font-style: italic;
	}
	@media screen and (min-width:444px){
		h2 span{
			font-size: 3.8rem;
		}
	}

h3{
	padding: 15px 0 8px;
	
	font-family: var(--montserrat);
	font-weight: var(--semibold);
	font-size: 1.25rem;
	letter-spacing: 0.1rem;
}

p, ul, ol{
	padding: 0 0 1rem;
	font-family: var(--montserrat);
	font-weight: var(--medium);
	font-size: 1.05rem;
	letter-spacing: 0.08rem;
	line-height: 1.5;
}
@media screen and (min-width:666px){
	p, ul, ol{
		font-size: 1.15rem;
	}
}

	li{
		font-weight: var(--medium);
	}
	


.khinp_btn{
	width: fit-content;
	
	display: block;
	margin: 20px 0 0;
	padding: 15px 50px;
	
	border: 1px solid black;
	
	font-size: 1.1rem;
	text-transform: uppercase;
	
	transition: all 0.5s;
}
	.khinp_btn:hover, .khinp_btn:active {
		color: white;
		background-color: black;
	}




/*	----------------------------------------------------------------------------------  THE FIXATIV  */
.fixativ{
	
}





/*	-----------------------------------------------------------------------------  MOBILE NAVIGATION  */

.khinp_navM{
	width: 100%;
	height: auto;
	min-height: 100dvh;
	
	position: fixed;
	left: 0px;
	top: -5000px;
	z-index: 900;
	
	padding: 100px 25px 50px;
	
	background-color: rgba(0,0,0,1);
	
	opacity: 0;
	
	transition: opacity 0.7s;
}

	.khinp_logoMobile{
		display: block;
		padding: 0 0 80px;
		
		font-size: 2rem;
		font-weight: 300;
		font-style: normal;
		text-transform: uppercase;
		text-align: center;
		letter-spacing: 0.25rem;
		color: white;
	}
	@media screen and (min-width:750px){
		.khinp_logoMobile{
			display: none;
		}
	}



	.khinp_menuM{
		width: 100%;
		height: auto;
	}
		.khinp_menuM ul{
			padding: 0;
		}
			.khinp_menuM li{
				padding: 0 0 30px;

				font-size: 1.25rem;
				font-weight: var(--medium);
				text-transform: uppercase;
			}
				.khinp_menuM li a{
					font-weight: var(--medium);
				}
				.khinp_menuM a:link, .khinp_menuM a:visited { color: rgba(255,255,255,1); }
				.khinp_menuM a:hover, .khinp_menuM a:active { color: rgba(255,255,255,0.5); }


			.khinp_menuM li.khinp_menuBlockM{
				padding-top: 50px;
			}





/*	---------------------------------------------------------------------------------------  HEADER  */
.khinp_hdrWrp{
	width: 100%;
	max-width: var(--full-width);
	height: 60px;
	
	position: fixed;
	left: 0px;
	top: 0px;
	z-index: 1000;
	
	background-color: rgba(0,0,0,0);
	
	transition: background 1s;
}
@media screen and (min-width:750px){
	.khinp_hdrWrp{
		height: 100px;
	}
}


	.khinp_hdrWrp.khinp_hdrWrpDark{
		background-color: rgba(0,0,0,1);
	}

	.khinp_hdr{
		width: 100%;
		max-width: var(--inner-width);
		height: 100%;
			
		position: relative;
		padding: 0 150px 0 50px;
	}
	@media screen and (min-width:999px){
		.khinp_hdr{
			padding: 0 50px;
		}
	}
	@media screen and (min-width:1400px){
		.khinp_hdr{
			justify-content: space-between;
			padding: 0 200px 0 0;
		}
	}



	/*	-----------------------------  mobile menu (hamburger) button  */
		.navBurgerBtn{
			width: 50px;
			aspect-ratio: 1 / 1;
			
			display: block;
			
			position: absolute;
			left: 25px;
			top: 50%;
			transform: translateY(-50%);
			
		/*	background-color: rgba(255,255,0,1);  */
		}
		@media screen and (min-width:1400px){
			.navBurgerBtn{
				display:none;
			}
		}

				.navBurgerLines{
					width: 100%;
					height: 14px;

					position:absolute;
					top: 50%;
					transform: translateY(-50%);
					
				/* 	background-color: rgba(220,0,0,0.1); */
				}
					.navBurgerLine{
						width: 100%;
						height: 2px;

						position:absolute;
						left: 0%;

						background-color: rgba(0,0,0,1);

						--1stheight: 	0px;
						--2ndheight: 	6px;
						--3rdheight: 	12px;
						
						--rotationUp: 	45deg;
						--rotationDown: -45deg;

						--animduration: 0.5s;

						transition:all 0.5s;
					}
						.navBurgerLine:nth-of-type(1){ top: var(--1stheight); }
						.navBurgerLine:nth-of-type(2){ top: var(--3rdheight); }

						.topslant{
							animation: topslant var(--animduration) forwards;
						}
						.topstraight{
							animation: topstraight var(--animduration) forwards;
						}

						@keyframes topslant {
							0% {	transform: rotate(0);					top: var(--1stheight); }
							50% {	transform: rotate(0);					top: var(--2ndheight); width: 100%; left: 0%; }
							100% {	transform: rotate(var(--rotationUp));	top: var(--2ndheight); width: 70%; left: 15%; }
						}

						@keyframes topstraight {
							0% {	transform: rotate(var(--rotationUp));	top: var(--2ndheight); width: 70%;  left: 15%;}
							50% {	transform: rotate(0);					top: var(--2ndheight); width: 100%; left: 0%; }
							100% {	transform: rotate(0);					top: var(--1stheight); }
						}

						.bottomslant{
							animation: bottomslant var(--animduration) forwards;
						}
						.bottomstraight{
							animation: bottomstraight var(--animduration) forwards;
						}

						@keyframes bottomslant {
							0% {	transform: rotate(0);					top: var(--3rdheight); }
							50% {	transform: rotate(0);					top: var(--2ndheight); width: 100%; left: 0%; }
							100% {	transform: rotate(var(--rotationDown));	top: var(--2ndheight); width: 70%; left: 15%;  }
						}

						@keyframes bottomstraight {
							0% {	transform: rotate(var(--rotationDown)); top: var(--2ndheight); width: 70%; left: 15%;  }
							50% {	transform: rotate(0deg);				top: var(--2ndheight); width: 100%; left: 0%;  }
							100% {	transform: rotate(0deg);				top: var(--3rdheight); }
						}




	/*	-------------------------------------------------------  logo  */
		.khinp_hdrLogoFont{
			display: none;
		}
		@media screen and (min-width:750px){
			.khinp_hdrLogoFont{
				width: fit-content;
				
				display: flex;

				padding: 0 0 0 25px;

				font-size: 2rem;
				font-weight: var(--light);
				font-style: normal;
				text-transform: uppercase;
				text-align: center;
				letter-spacing: 0.25rem;

				white-space: nowrap;

				transition: all 1s;
			}
		}
			.khinp_hdrLogoFont a{ font-weight: var(--light); transition: all 0.5s; }
			.khinp_hdrLogoFont a:hover, .khinp_hdrLogoFont a:active { opacity: 0.5; }



	/*	-----------------------------------------  desktop navigation  */
		.khinp_hdrNavD{
			display: none;
		}
		@media screen and (min-width:1400px){
			.khinp_hdrNavD{
				width: fit-content;

				display: flex;

				position: relative;
			}
		}


			.khinp_hdrMenuD{
				width: fit-content;
				padding: 0;
			}

				.khinp_hdrMenuD li{
					padding: 0 25px;

					list-style: none;

					font-family: var(--montserrat);
					font-size: 1.15rem;
					font-weight: 400;
					letter-spacing: 0.1rem;
					text-transform: uppercase;
					white-space: nowrap;
				}

				.khinp_hdrMenuD li a{
					color: inherit;
					transition: color 1s;
					
					transition: opacity 0.25s;
				}

				.khinp_hdrMenuD li.menu-item{
					transition: color 1s;
				}

				.khinp_hdrMenuD a:hover, .khinp_hdrMenuD li a:active, .khinp_hdrMenuD li a:focus { opacity: 0.5; }



	/*	-----------------------------------------------  social icons  */
		.khinp_hdrSocialIcons{
			position: absolute;

			right: 15px;
			top: 50%;
			transform: translateY(-50%);
		}
			.khinp_hdrIconSocial{
				width: 32px;
				aspect-ratio: 1 / 1;
				
				display: block;
				margin: 4px 10px 0;
				
				transition: opacity 0.25s;
			}
				.khinp_hdrIconSocial:hover, .khinp_hdrIconSocial:active, .khinp_hdrIconSocial:focus { opacity: 0.5; }
				.khinp_hdrIconSocial svg{
					width: 100%;
				}
					.khinp_svgPath{
						transition: fill 1s;
					}






/*	-----------------------------------------------------------------------------------------  MAIN  */
.khinp_mainWrp{
	width: 100%;
	max-width: var(--full-width);
	height: auto;
	min-height: 100dvh;
	
	position: relative;
	top: 0px;
	
	padding: 0;
}
	
	.khinp_main{
		width:100%;
		max-width: var(--inner-width);
		
		padding: 150px 25px;
	}

	.impressum .khinp_main,
	.agb .khinp_main,
	.datenschutz .khinp_main{
		max-width: 800px;
	}

		.khinp_mainBlock{
			position: relative;
		}

			.khinp_halfBlockWrp{
				width: 100%;
				position: relative;
			}
			@media screen and (min-width:999px){
				.khinp_halfBlockWrp{
					flex-flow: row;
					justify-content: center;
					align-items: flex-start;
				}
			}

				.khinp_halfBlock{
					width: 100%;
					max-width: var(--half-block-width);
					
					padding: 30px 25px;
				}
				@media screen and (min-width:999px){
					.khinp_halfBlock{
						padding: 30px 5% 80px;
					}
				}


		#ueberuns,
		#sortiment,
		#features,
		#grasse,
		#karte,
		#kontakt{
			scroll-margin-top: 58px;
		}
		@media screen and (min-width:750px){
			#ueberuns,
			#sortiment,
			#features,
			#grasse,
			#karte,
			#kontakt{
				scroll-margin-top: 98px;
			}
		}




	/*	----------------------------------------------------------  INTRO BLOCK  */
		.khinp_blockTop{
			width: 100%;

			height: auto;
			min-height: 100dvh;
			
			position: relative;

			background-color: rgba(235,235,235,1);
		}
		@media screen and (min-width:2400px){
			.khinp_blockTop{
				background-size: contain;
			}
		}

			.khinp_keyVisual{
				width: 100%;
				height: 100%;

				position: absolute;
				top: 0px;
				left: 0px;
				
				background-size: cover;
				background-repeat: no-repeat;
			}
				.khinp_keyVisualDesktop{
					display: none;
					z-index: 1;
					background-position: center center;
				}
				@media screen and (min-width:666px){
					.khinp_keyVisualDesktop{
						display: block;
					}
				}

				.khinp_keyVisualMobile{
					display: block;
					z-index: 2;
					background-position: center center;
				}
				@media screen and (min-width:666px){
					.khinp_keyVisualMobile{
						display: none;
					}
				}

			.khinp_blockTop .khinp_mainCnt{
				width: 100%;
				max-width: 800px;
				height: calc(100dvh - 10px);
				
				padding: 0 25px 15px;
				z-index: 100;
				
			/* 	background-color: rgba(0,0,0,0.08);  */
			}
			@media screen and (min-width:666px){
				.khinp_blockTop .khinp_mainCnt{
					height: fit-content;
					margin-top: 0;
				}
			}

				.khinp_blockTop h1{
					color: white;
				}
				@media screen and (min-width:666px){

				}

				.khinp_blockTop h2{
					color: white;
				}




	/*	----------------------------------------------------------  BLOCK ABOUT  */
		.khinp_blockAbout{
			width: 100%;
			height: auto;
			
			padding: 20px 0 40px;
		}

		@media screen and (min-width:666px){
			.khinp_blockAbout{
				padding: 80px 0;
			}
		}

			@media screen and (min-width:999px){
				.khinp_blockAbout .khinp_halfBlockWrp{
					align-items: stretch;
				}
			}

				.khinp_halfBlockTeamImg{
					aspect-ratio: 570 / 780;
						
					order: 2;
					padding: 0 25px;
				}

					.khinp_halfBlockTeamImg img{
						width: 100%;
						height: 100%;
						object-fit: cover;
						object-position: 73% center ;
					}

				.khinp_halfBlockTeamTxt{
					max-width: 670px;
					order: 1;

					padding-left: 35px;
					padding-right: 35px;
				}

				@media screen and (min-width:444px){
					.khinp_halfBlockTeamImg{
						width: 100%;
						aspect-ratio: 640 / 450;
						max-width: 670px;
						height: auto;
						padding: 0 25px;
					}
						.khinp_halfBlockTeamImg img{
							width: 100%;
							height: auto;
							margin: 0;
							object-fit: unset;
							object-position: unset;
						}
				}
				@media screen and (min-width:999px){
					.khinp_halfBlockTeamImg{
						max-width: 800px;
						order: 1;
						padding: 0 80px 0 35px;
					}
					.khinp_halfBlockTeamTxt{
						order: 2;
					}

				}



	/*	---------------------------------------------  BLOCK SORTIMENT / DUEFTE  */
		.khinp_blockSortiment{
			width: 100%;
			height: auto;
			
			padding: 20px 0 600px;

			background-position: 60% bottom;
			background-repeat: no-repeat;
			background-size: auto 720px;
		}
		@media screen and (min-width:999px){
			.khinp_blockSortiment{
				padding: 80px 0;
				
				background-position: center center;
				background-size: auto 115%;
			}
		}

			.khinp_halfBlockSortimentTxt{
				max-width: 670px;
				
				padding-left: 35px;
				padding-right: 35px;
			}
			@media screen and (min-width:999px){
				.khinp_halfBlockSortimentTxt{
					max-width: 670px;

					padding-right: 0px;
				}
			}



	/*	-------------------------------------------------------------  FEATURES  */
	.khinp_blockFeatures{
		padding: 30px 25px;
	}
	@media screen and (min-width:999px){
		.khinp_blockFeatures{
			flex-flow: row;
			padding: 50px 25px 70px;
		}
	}
		.khinp_featureWrp{
			width: fit-content;

			margin: 10px 0;

			font-weight: var(--medium);
			font-size: 1.1rem;
			white-space: nowrap;
		}
		@media screen and (min-width:999px){
			.khinp_featureWrp{
				margin: 10px 50px;
			}
		}


	/*	---------------------------------------------------------  BLOCK GRASSE   */
		.khinp_blockGrasse{
			width: 100%;
			height: auto;
		}
			.khinp_blockGrasse .khinp_halfBlockWrp{
				min-height: 700px;
				align-items: center;
			}
				.khinp_halfBlockGrasseImg{
					width: 100%;
					max-width: unset;
					height: 500px;

					padding: 0;
					position: relative;
					right: unset;

					overflow: hidden;
				}
				@media screen and (min-width:999px){
					.khinp_halfBlockGrasseImg{
						width: auto;
						max-width: 50%;
						height: 100%;

						position: absolute;
						right: calc(50% + 10px);
					}
				}

				.khinp_halfBlockGrasseImg img{
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: center center;
				}

				.khinp_halfBlockGrasseSpacer{
					display: none;
				}
				@media screen and (min-width:999px){
					.khinp_halfBlockGrasseSpacer{
						display: block;
					}
				}

				.khinp_halfBlockGrasseTxt{
					max-width: 670px;

					padding-left: 25px;
					padding-right: 25px;
				}
				@media screen and (min-width:999px){
					.khinp_halfBlockGrasseTxt{
						max-width: 670px;

						padding-left: 35px;
						padding-right: 35px;
					}
				}

	
	/*	------------------------------------------------------------  BLOCK MAP  */
		.khinp_blockMap{
			width: 100%;
			height: 600px;
			
			background-color: rgba(240,240,240,1);
		}

			.khinp_map{
				width: 100%;
				height: 100%;

				position: absolute;
				left: 0;
				top: 0;
				z-index: 1;
			}

				.khinp_map img{
					width: 100%;
					height: 100%;

					display: block;

					position: relative;

					object-fit: cover;
					object-position: center center;
				}


			.khimp_mapTxt{
				width: 100%;
				max-width: 500px;
				padding: 0 25px;
				z-index: 20;
			}
				.khimp_mapTxt p{ 
					text-align: center;
				}


			.khinp_mapBtn{
				position: relative;
				z-index: 30;
			}






	/*	--------------------------------------------------------  BLOCK KONTAKT  */
		.khinp_blockContact{
			width: 100%;
			height: auto;
			
			padding: 50px 25px 200px;
			
			gap: 20px 80px;
		}
		@media screen and (min-width:444px){
			.khinp_blockContact{
				padding-bottom: 120px;
			}
		}
		@media screen and (min-width:999px){
			.khinp_blockContact{
				flex-flow: row;
				align-items: flex-start;
			}
		}
		@media screen and (min-width:1111px){
			.khinp_blockContact{
				gap: 20px 120px;
			}
		}

			.khinp_contactData,
			.khinp_contactData:nth-of-type(2){
				text-align: center;
			}
			@media screen and (min-width:999px){
				.khinp_contactData{
					text-align: left;
				}
				.khinp_contactData:nth-of-type(2){
					text-align: left;
				}
			}

				.khinp_contactData p {
					padding-bottom: 0;
					white-space: nowrap;
				}
					.khinp_contactData p strong{
						display: inline-block;
						margin-bottom: 7px;
						font-weight: var(--bold);
					}




	/*	----------------------------------------------------------------  PAGES  */
		.khinp_main ul{
			padding-left: 25px;
		}

		.agb h1,
		.impressum h1,
		.datenschutz h1{
			font-weight: var(--semibold);
			text-align: center;
		}

		.agb h2,
		.impressum h2,
		.datenschutz h2{
			padding-top: 0;
			font-weight: var(--semibold);
			text-align: center;
		}

		.agb h3,
		.impressum h3,
		.datenschutz h3{
			font-weight: var(--semibold);
		}
	
		.agb p,
		.impressum p,
		.datenschutz p{
			font-weight: var(--regular);
		/*	hyphens: auto;  */
		}

		.agb ol{ 
			counter-reset: item;
		}

			.agb ol li { 
				display: inline-block; 
				position: relative;
				padding: 0 0 20px 38px;
				
				font-size: 1.25rem;
				font-weight: var(--semibold);
				
				hyphens: auto;
			}

				.agb ol li:before { 
					display: inline-block;
					position: absolute;
					left: 0px;
					
					content: counters(item, ".") "."; 
					counter-increment: item;
				}

				.agb ol li > ol li{
					padding: 0 0 10px 38px;
					margin: 0 0 0 -38px; 
					
					font-size: 1.1rem;
					font-weight: var(--regular);
					letter-spacing: 0;
				}
				.agb ol li > ol li:before {
					content: counters(item, ".") " "; 
				}
				.agb ol li > ol li:first-of-type{
					padding-top: 10px;	
				}




/*	---------------------------------------------------------------------------------------  FOOTER  */
	.khinp_ftrWrp{
		width: 100%;
		max-width: var(--full-width);
		
		position: absolute;
		bottom: 0;
	}

		.khinp_ftr{
			width: 100%;
			max-width: var(--inner-width);
		}

			.khinp_ftr ul{
				padding: 0 0 30px;
			}
			@media screen and (min-width:444px){
				.khinp_ftr ul{
					flex-flow: row;
					padding: 0;
				}
			}

				.khinp_ftr li{
					list-style: none;
					padding: 0 15px 5px;

					text-transform: uppercase;
				}
				@media screen and (min-width:444px){
					.khinp_ftr li{
						padding: 0 15px 30px;
					}
				}
				@media screen and (min-width:666px){
					.khinp_ftr li{
						padding: 0 40px 30px;
					}
				}

					.khinp_ftr a:link, .khinp_ftr a:visited{ color: rgba(0,0,0,1); }
					.khinp_ftr a:hover, .khinp_ftr a:active, .khinp_ftr a:focus{ color: rgba(0,0,0,0.5); }




