/*-----------------------------------------------------------------------------------
	Homepage 1
	About: Freiberuflicher Webdesigner aus Freiburg für zuverlässige Planung, kreative Gestaltung & erfolgreiche Realisierung von responsiven Webseiten - jetzt starten!
	Author: RALF ENGEL
	Version: 1.0
	Built with Blocs
-----------------------------------------------------------------------------------*/
body{
	margin:0;
	padding:0;
    background:#FFFFFF;
    overflow-x:hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.page-container{overflow: hidden;} /* Prevents unwanted scroll space when scroll FX used. */
a,button{transition: background .3s ease-in-out;outline: none!important;} /* Prevent blue selection glow on Chrome and Safari */
a:hover{text-decoration: none; cursor:pointer;}
.scroll-fx-lock-init{position:fixed!important;top: 0;bottom: 0;left: 0;right: 0;z-index:99999;} /* ScrollFX Lock */
.blocs-grid-container{display: grid!important;grid-template-columns: 1fr 1fr;grid-template-rows: auto auto;column-gap: 1.5rem;row-gap: 1.5rem;} /* CSS Grid */
nav .dropdown-menu .nav-link{color:rgba(0,0,0,0.6)!important;} /* Maintain Downdown Menu Link Color in Navigation */
[data-bs-theme="dark"] nav .dropdown-menu .nav-link{color:var(--bs-dropdown-link-color)!important;} /* Maintain Downdown Menu Link Color in Navigation in Darkmode */

/* = Web Fonts
-------------------------------------------------------------- */

@font-face {
	font-family:'HelveticaNowText-Regular';
	src: url('./fonts/HelveticaNowText-Regular/HelveticaNowTextRegular.woff');
	src: url('./fonts/HelveticaNowText-Regular/HelveticaNowTextRegular.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display:swap;
}

@font-face {
	font-family:'HelveticaNowDisplay-Bd';
	src: url('./fonts/HelveticaNowDisplay-Bd/HelveticaNowDisplayBd.woff');
	src: url('./fonts/HelveticaNowDisplay-Bd/HelveticaNowDisplayBd.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display:swap;
}

/* = Blocs
-------------------------------------------------------------- */

.bloc{
	width:100%;
	clear:both;
	background: 50% 50% no-repeat;
	padding:0 20px;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	position:relative;
	display:flex;
}
.bloc .container{
	padding-left:0;
	padding-right:0;
	position:relative;
}


/* Sizes */

.bloc-xl{
	padding:150px 20px;
}
.bloc-lg{
	padding:100px 20px;
}
.bloc-md{
	padding:50px 20px;
}
.bloc-sm{
	padding:20px;
}

/* = Full Screen Blocs 
-------------------------------------------------------------- */

.bloc-fill-screen{
	min-height:100vh;
	display: flex;
	flex-direction: column;
	padding-top:20px;
	padding-bottom:20px;
}
.bloc-fill-screen > .container{
	align-self: flex-middle;
	flex-grow: 1;
	display: flex;
	flex-wrap: wrap;
}
.bloc-fill-screen > .container > .row{
	flex-grow: 1;
	align-self: center;
	width:100%;
}
.bloc-fill-screen .fill-bloc-top-edge, .bloc-fill-screen .fill-bloc-bottom-edge{
	flex-grow: 0;
}
.bloc-fill-screen .fill-bloc-top-edge{
	align-self: flex-start;
}
.bloc-fill-screen .fill-bloc-bottom-edge{
	align-self: flex-end;
}


/* Dark theme */

.d-bloc{
	color:rgba(255,255,255,.7);
}
.d-bloc button:hover{
	color:rgba(255,255,255,.9);
}
.d-bloc .icon-round,.d-bloc .icon-square,.d-bloc .icon-rounded,.d-bloc .icon-semi-rounded-a,.d-bloc .icon-semi-rounded-b{
	border-color:rgba(255,255,255,.9);
}
.d-bloc .divider-h span{
	border-color:rgba(255,255,255,.2);
}
.d-bloc .a-btn,.d-bloc .navbar a, .d-bloc a .icon-sm, .d-bloc a .icon-md, .d-bloc a .icon-lg, .d-bloc a .icon-xl, .d-bloc h1 a, .d-bloc h2 a, .d-bloc h3 a, .d-bloc h4 a, .d-bloc h5 a, .d-bloc h6 a, .d-bloc p a{
	color:rgba(255,255,255,.6);
}
.d-bloc .a-btn:hover,.d-bloc .navbar a:hover,.d-bloc a:hover .icon-sm, .d-bloc a:hover .icon-md, .d-bloc a:hover .icon-lg, .d-bloc a:hover .icon-xl, .d-bloc h1 a:hover, .d-bloc h2 a:hover, .d-bloc h3 a:hover, .d-bloc h4 a:hover, .d-bloc h5 a:hover, .d-bloc h6 a:hover, .d-bloc p a:hover{
	color:rgba(255,255,255,1);
}
.d-bloc .navbar-toggle .icon-bar{
	background:rgba(255,255,255,1);
}
.d-bloc .btn-wire,.d-bloc .btn-wire:hover{
	color:rgba(255,255,255,1);
	border-color:rgba(255,255,255,1);
}
.d-bloc .card{
	color:rgba(0,0,0,.5);
}
.d-bloc .card button:hover{
	color:rgba(0,0,0,.7);
}
.d-bloc .card icon{
	border-color:rgba(0,0,0,.7);
}
.d-bloc .card .divider-h span{
	border-color:rgba(0,0,0,.1);
}
.d-bloc .card .a-btn{
	color:rgba(0,0,0,.6);
}
.d-bloc .card .a-btn:hover{
	color:rgba(0,0,0,1);
}
.d-bloc .card .btn-wire, .d-bloc .card .btn-wire:hover{
	color:rgba(0,0,0,.7);
	border-color:rgba(0,0,0,.3);
}


/* Light theme */

.d-bloc .card,.l-bloc{
	color:rgba(0,0,0,.5);
}
.d-bloc .card button:hover,.l-bloc button:hover{
	color:rgba(0,0,0,.7);
}
.l-bloc .icon-round,.l-bloc .icon-square,.l-bloc .icon-rounded,.l-bloc .icon-semi-rounded-a,.l-bloc .icon-semi-rounded-b{
	border-color:rgba(0,0,0,.7);
}
.d-bloc .card .divider-h span,.l-bloc .divider-h span{
	border-color:rgba(0,0,0,.1);
}
.d-bloc .card .a-btn,.l-bloc .a-btn,.l-bloc .navbar a,.l-bloc a .icon-sm, .l-bloc a .icon-md, .l-bloc a .icon-lg, .l-bloc a .icon-xl, .l-bloc h1 a, .l-bloc h2 a, .l-bloc h3 a, .l-bloc h4 a, .l-bloc h5 a, .l-bloc h6 a, .l-bloc p a{
	color:rgba(0,0,0,.6);
}
.d-bloc .card .a-btn:hover,.l-bloc .a-btn:hover,.l-bloc .navbar a:hover, .l-bloc a:hover .icon-sm, .l-bloc a:hover .icon-md, .l-bloc a:hover .icon-lg, .l-bloc a:hover .icon-xl, .l-bloc h1 a:hover, .l-bloc h2 a:hover, .l-bloc h3 a:hover, .l-bloc h4 a:hover, .l-bloc h5 a:hover, .l-bloc h6 a:hover, .l-bloc p a:hover{
	color:rgba(0,0,0,1);
}
.l-bloc .navbar-toggle .icon-bar{
	color:rgba(0,0,0,.6);
}
.d-bloc .card .btn-wire,.d-bloc .card .btn-wire:hover,.l-bloc .btn-wire,.l-bloc .btn-wire:hover{
	color:rgba(0,0,0,.7);
	border-color:rgba(0,0,0,.3);
}


/* = NavBar
-------------------------------------------------------------- */

/* Navbar Icon */
.svg-menu-icon{
	fill: none;
	stroke: rgba(0,0,0,0.5);
	stroke-width: 2px;
	fill-rule: evenodd;
}
.navbar-dark .svg-menu-icon{
	stroke: rgba(255,255,255,0.5);
}
.menu-icon-thin-bars{
	stroke-width: 1px;
}
.menu-icon-thick-bars{
	stroke-width: 5px;
}
.menu-icon-rounded-bars{
	stroke-width: 3px;
	stroke-linecap: round;
}
.menu-icon-filled{
	fill: rgba(0,0,0,0.5);
	stroke-width: 0px;
}
.navbar-dark .menu-icon-filled{
	fill: rgba(255,255,255,0.5);
}
.navbar-toggler-icon{
	background: none!important;
	pointer-events: none;
	width: 33px;
	height: 33px;
}

/* Nav Special Classes */
.nav-special{
	overflow-y:scroll;
}
.nav-special .site-navigation{
	top:0;
	left:0;
	width:100%;
	position: relative!important;
	max-width: 100%!important;
	z-index: 1000;
}
.nav-special .nav > li{
	width:100%;
	background: none!important;
	border:0!important;
}
.nav-special.collapsing{
	-webkit-transition: none;
	transition: none;
	height:100%!important;
	background: none!important;
}
.nav-special .navbar-nav .dropdown-menu.show{
	position: relative!important;
	transform: none!important;
	float: none;
	width: 100%;
	margin-top: 0;
	background-color: transparent;
	-webkit-box-shadow: none;
	box-shadow: none;
	border: 0;
}
.nav-special .nav .dropdown-menu .nav-link{
	color:#FFF;
}
.blocsapp-special-menu{
	position: absolute;
	z-index:10000;
}
.nav-special.fullscreen-nav .caret,.nav-special.fullscreen-nav .dropdown-menu .dropdown .caret{
	border-width: 8px;
}
.nav-special .navbar-nav .show>.nav-link{
	color:#FFF;
}

/* Animate Menu Symbol */
.navbar-toggle{
	transition: all .1s linear;
}
.selected-nav{
	opacity: 0;
	transform: scale(0.3);
	transition: all .1s linear;
}


/* Special Menu Close Button */
.close-special-menu{
	position: absolute;
	display: block;
	width: 25px;
	height:25px;
	top:16px;
	right:10px;
	z-index: 10000;
}
.nav-invert .sidebar-nav .close-special-menu{
	left:260px;
}
.close-special-menu .close-icon{
	display: block;
	width:100%;
	height:1px;
	transform: rotate(45deg);
	margin-top:12px;
}
.close-special-menu .close-icon:after{
	content:"";
	display:inherit;
	width:inherit;
	height:inherit;
	background: inherit;
	transform: rotate(90deg);
}
.lock-scroll{
	overflow:hidden;
	transition: background .3s linear;
}
.nav-special::-webkit-scrollbar{
	-webkit-appearance: none;
	width:0;
	height:0;
}
.nav-special .dropdown-menu .dropdown .caret{
	border-top-color: rgba(255,255,255,.8);
	border-right-color: transparent;
	border-bottom-color: transparent;
	border-left-color: transparent;
	margin: 0 0 0 5px;
	float: none;
}
.blocsapp-special-menu .site-navigation.pull-right{
	float:none!important;
}

/* Nav Special Close Button */
.close-special-menu .close-icon{
	background:#fff;
}
.blocsapp-special-menu blocsnav{
	background: #000;
}

/* Full Screen Navigation */
.nav-special.fullscreen-nav{
	width: 100%;
	right: 0;
	top: 0;
	bottom: 0;
	opacity: 0;
	z-index: 1000;
	position: fixed;
	transition: all .2s linear;
}
 .nav-special.fullscreen-nav.open-up{
	transform: translateY(1000px);
}
 .nav-special.fullscreen-nav.open-down{
	transform: translateY(-1000px);
}
 .nav-special.fullscreen-nav.open-left{
	transform: translateX(-1000px);
}
 .nav-special.fullscreen-nav.open-right{
	transform: translateX(1000px);
}
 .nav-special.fullscreen-nav .nav > li a,.nav-special.fullscreen-nav .nav .dropdown-menu > li > a{
	color:rgba(255,255,255,.8);
	text-align: center;
	font-size: 28px;
}
 .nav-special.fullscreen-nav .nav > li a:hover{
	color:#FFF;
}
 .open.nav-special.fullscreen-nav{
	opacity: 1;
	transition: all .2s linear;
}
.nav-special.fullscreen-nav .site-navigation{
	text-align:center;
	margin-top:10%!important;
}
.nav-special.fullscreen-nav .close-special-menu{
	right:20px;
}
 .open.nav-special.fullscreen-nav.open-left,  .open.nav-special.fullscreen-nav.open-right,  .open.nav-special.fullscreen-nav.open-down, .open.nav-special.fullscreen-nav.open-up{
	transform: translateY(0);
}
/* Handle Multi Level Navigation */
.dropdown-menu .dropdown-menu{
	border:none}
@media (min-width:576px){
	
.navbar-expand-sm .dropdown-menu .dropdown-menu{
	border:1px solid rgba(0,0,0,.15);
	position:absolute;
	left:100%;
	top:-7px}.navbar-expand-sm .dropdown-menu .submenu-left{
	right:100%;
	left:auto}}@media (min-width:768px){
	.navbar-expand-md .dropdown-menu .dropdown-menu{
	border:1px solid rgba(0,0,0,.15);
	border:1px solid rgba(0,0,0,.15);
	position:absolute;
	left:100%;
	top:-7px}.navbar-expand-md .dropdown-menu .submenu-left{
	right:100%;
	left:auto}}@media (min-width:992px){
	.navbar-expand-lg .dropdown-menu .dropdown-menu{
	border:1px solid rgba(0,0,0,.15);
	position:absolute;
	left:100%;
	top:-7px}.navbar-expand-lg .dropdown-menu .submenu-left{
	right:100%;
	left:auto}
}

/* = Buttons
-------------------------------------------------------------- */

.btn-d,.btn-d:hover,.btn-d:focus{
	color:#FFF;
	background:rgba(0,0,0,.3);
}

.btn-style-none,.btn-style-none:hover,.btn-style-none:active,.btn-style-none:focus{
	background:none;
	box-shadow: none;
	padding:0;
}
.a-block{
	width:100%;
	text-align:left;
	display: inline-block;
}
.text-center .a-block{
	text-align:center;
}

/* = Icons
-------------------------------------------------------------- */
blocsicon{
	display:inline-block;
	width:100%;
}
blocsicon svg {
	width: 100%;
	 height: auto;
	 display: block;
}

/* Image Scale */
.img-fluid-up{
	min-width: 100%;
	height: auto;
}



/* = Cards
-------------------------------------------------------------- */
.card-sq, .card-sq .card-header, .card-sq .card-footer{
	border-radius:0;
}
.card-rd{
	border-radius:30px;
}
.card-rd .card-header{
	border-radius:29px 29px 0 0;
}
.card-rd .card-footer{
	border-radius:0 0 29px 29px;
}
/* = Masonary
-------------------------------------------------------------- */
.card-columns .card {
	margin-bottom: 0.75rem;
}
@media (min-width: 576px) {
	.card-columns {
	-webkit-column-count: 3;
	-moz-column-count: 3;
	column-count: 3;
	-webkit-column-gap: 1.25rem;
	-moz-column-gap: 1.25rem;
	column-gap: 1.25rem;
	orphans: 1;
	widows: 1;
}
.card-columns .card {
	display: inline-block;
	width: 100%;
}
}
/* = Classic Dividers
-------------------------------------------------------------- */
.divider-h{
	min-height: 1px;
	background-color:rgba(0,0,0,.2);
	margin: 20px 0;
}
.divider-half{
	width: 50%;
}
.dropdown-menu .divider-h{
	margin:0;
}


.carousel-nav-controls svg{
	transform:scale(0.8);
	transition:transform .30s ease,background .50s ease;
}
.carousel-nav-controls:hover svg{
	transform:scale(1.0);
}
.carousel-nav-controls:active svg{
	transform:scale(0.9);
}

.carousel-caption{
	left:6%;
	 right:6%;
}

.carousel-item:not(:has(> img)) .carousel-caption {
	position: relative;
	transform: none;
	width: 80%;
	left:10%;
	right:10%;
	top:0;
	bottom:0;
	padding-top: 0;
	margin-bottom: 20px;
	z-index:0;
	color: #000000;
}

.carousel-nav-icon{
	fill: none;
	stroke: #fff;
	stroke-width: 3px;
	fill-rule: evenodd;
	stroke-linecap:round;
}

.hide-indicators{
	display:none;
}

.carousel-indicators li::marker{
	font-size:0;
}
/* Scroll FX */
.scroll-fx-in-range{
	will-change: opacity;
}

/* Form Protection */
.blocsapp-meta-field{
	position:absolute;
	left:-9999px;
	width:1px;
	height:1px;
	overflow:hidden;
}

/* = Custom Styling
-------------------------------------------------------------- */

h1,h2,h3,h4,h5,h6,p,label,.btn,a{
	font-family:"HelveticaNowText-Regular";
}
.container{
	max-width:1480px;
}
h1{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:90px;
	text-transform:none;
	line-height:99px;
}
h2{
	font-family:"HelveticaNowDisplay-Bd";
	text-transform:none;
	font-weight:100;
	letter-spacing:normalpx;
	line-height:100px;
	font-size:90px;
}
.navbar-nav li a{
	font-family:"HelveticaNowText-Regular";
	font-size:14px;
	color:var(--swatch-var-2074)!important;
}
p{
	font-size:16px;
	font-weight:400;
	letter-spacing:normalpx;
	line-height:22px;
}
.semibold{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:60px;
	line-height:65px;
}
.nummer{
	font-size:20px;
	font-family:"HelveticaNowDisplay-Bd";
	font-weight:normal;
}
h3{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:50px;
}
.btn{
	color:var(--swatch-var-2074)!important;
	font-family:"HelveticaNowDisplay-Bd";
	padding:0px 0px 8px 0px;
	transition:all 0.6s ease-in-out 0.3s;
	border-radius:0px 0px 0px 0px;
	border-style:solid;
	border-color:var(--swatch-var-3687)!important;
	border-width:0px 0px 1px 0px;
	text-transform:none;
	font-size:18px;
	letter-spacing:0.01em;
}
.btn:hover{
	padding:0px 0px 8px 0px;
	font-size:18px;
	border-style:solid;
	border-radius:0px 0px 0px 0px;
	transition:all 0.6s ease-in-out 0.3s;
	text-transform:none;
}
h4{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:50px;
	line-height:60px;
}
h5{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:35px;
}
.navbar-brand img{
	width:35px;
}
.page-container{
	overflow:initial;
}
.pin-text{
	position:sticky;
	top:180px;
}
.divider-background-color{
	background-color:var(--swatch-var-2938);
}
a{
	font-size:16px;
	font-weight:400;
	letter-spacing:normalpx;
	line-height:22.4px;
}
.homepage-eins{
	letter-spacing:2px;
	font-size:15px;
	color:var(--swatch-var-2074)!important;
	width:35px;
	height:auto;
}
.preloader{
	background-color:var(--swatch-var-1569);
	cursor:none!important;
	z-index:99999;
}
.enweso{
	z-index:99999;
	width:100px;
}
.neo-display{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:35px;
	line-height:40px;
}
.kunden{
	width:66%;
	filter:grayscale(100%);
}
.acc-heading{
	background-color:transparent;
	border-width:0px 0px 0px 0px;
	padding-left:0px;
	display:flex;
	align-items:center;
	flex-direction:row;
	padding-top:14px;
	padding-bottom:12px;
}
.acc-card{
	border-style:solid;
	border-color:var(--swatch-var-3687)!important;
	border-width:0px 0px 1px 0px;
	border-radius:0px 0px 0px 0px;
	background-color:var(--swatch-var-566)!important;
}
.acc-heading-text{
	font-family:"HelveticaNowDisplay-Bd";
	font-size:25px;
	text-transform:none;
	text-decoration:none;
	color:var(--swatch-var-2074)!important;
	line-height:28px;
}
.acc-heading-text:hover{
	color:var(--swatch-var-2938)!important;
}
.acc-body{
	padding-left:0px;
}
.plus{
	width:18px!important;
	fill-type:evenodd!important;
}
.img-style{
	width:100px;
}
.ralf-engel{
	width:80px;
}
.form-control{
	border-width:0px 0px 1px 0px;
	border-style:solid;
	border-color:var(--swatch-var-3687)!important;
	border-radius:0px 0px 0px 0px;
	background-color:var(--swatch-var-566);
	color:var(--swatch-var-1569)!important;
	padding-left:0px;
}
.form-control:hover{
	background-color:transparent;
}
.form-control:active{
	background-color:var(--swatch-var-566);
	border-width:0px 0px 1px 0px;
	border-radius:0px 0px 0px 0px;
	box-shadow:0.00px -0.00px 0px #000000;
}
.form-control:focus{
	border-width:0px 0px 1px 0px;
	border-radius:0px 0px 0px 0px;
	box-shadow:0.00px -0.00px 0px #000000;
	background-color:var(--swatch-var-566);
}
.form-control:visited{
	border-width:0px 0px 1px 0px;
	box-shadow:0.00px -0.00px 0px #000000;
	background-color:transparent;
}
.form-control::placeholder{
	color:var(--swatch-var-3687)!important;
	content:"";
}
.form-control::placeholder:active{
	color:var(--swatch-var-3687)!important;
}
.form-control::placeholder:focus{
	color:var(--swatch-var-2938)!important;
}
.alert{
	padding-left:0px;
}
.alert-warning{
	background-color:var(--swatch-var-566);
	font-size:14px;
	color:var(--swatch-var-7197)!important;
	border-width:0px 0px 0px 0px;
	border-radius:0px 0px 0px 0px;
}
.alert-success{
	font-size:14px;
	color:var(--swatch-var-405)!important;
}
label{
	font-family:"HelveticaNowText-Regular";
	font-size:13px;
}
.slider-item{
	width:auto;
}
.carousell-text{
	margin-left:-40px;
	margin-right:-40px;
	height:auto;
	min-height:370px;
}
.carousell-container{
	margin-bottom:-60px;
}
.footer-text{
	font-size:20px;
	font-family:"HelveticaNowDisplay-Bd";
	color:var(--swatch-var-1569)!important;
	text-transform:none;
	text-decoration:none;
}
.footer-text:hover{
	color:var(--swatch-var-2437)!important;
}
.text-404{
	font-size:120px;
	line-height:120px;
	font-family:"HelveticaNowDisplay-Bd";
}
.h2-text{
	font-size:50px;
	line-height:60px;
}
.accordeon-background{
	background-color:var(--swatch-var-566);
}
.kunden:hover{
	filter:grayscale(0%);
}

/* = Colour
-------------------------------------------------------------- */

/* Swatch Variables */
:root{
	
	--swatch-var-1569:rgba(255,255,255,1.00);
	
	--swatch-var-2074:rgba(0,0,0,1.00);
	
	--swatch-var-2918:rgba(113,116,91,1.00);
	
	--swatch-var-2437:rgba(219,219,219,1.00);
	
	--swatch-var-1236:rgba(228,228,228,1.00);
	
	--swatch-var-2938:rgba(89,89,89,1.00);
	
	--swatch-var-566:rgba(255,255,255,0.00);
	
	--swatch-var-1293:rgba(0,0,0,1.00);
	
	--swatch-var-3687:rgba(208,208,208,1.00);
	
	--swatch-var-7197:rgba(255,208,69,1.00);
	
	--swatch-var-405:rgba(102,183,63,1.00);
	
}


/* Background colour styles */

.bgc-1569{
	background-color:var(--swatch-var-1569);
}
.bgc-2074{
	background-color:var(--swatch-var-2074);
}

/* Text colour styles */

.tc-1293{
	color:var(--swatch-var-1293)!important;
}
.tc-2074{
	color:var(--swatch-var-2074)!important;
}
.tc-1569{
	color:var(--swatch-var-1569)!important;
}

/* Bloc image backgrounds */


/* = Custom Bric Data
-------------------------------------------------------------- */


/* = Additional CSS
-------------------------------------------------------------- */
/* ============ PRELOADER ============ */
html, body {
  margin: 0;
  padding: 0;
}

body.loading {
  overflow: hidden;
  height: 100vh;
}

#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  cursor: none;
  background: #0a0a0a;
  will-change: transform, background;
  transform: translateY(0);
  transition: background 0.6s ease,
              transform 1s cubic-bezier(0.86, 0, 0.07, 1);
}

#preloader * {
  cursor: none;
}

#preloader img {
  filter: brightness(0) invert(1);
  animation: pulse 1s ease-in-out infinite;
  will-change: transform, opacity, filter;
  transition: transform 0.5s ease, opacity 0.4s ease, filter 0.5s ease;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.9; }
}

/* Phase 1: Farbwechsel */
#preloader.color-shift {
  background: #ffffff;
}

#preloader.color-shift img {
  filter: brightness(1) invert(0);
}

/* Phase 2: Logo weg */
#preloader.fade-logo img {
  opacity: 0;
  transform: scale(0.8);
}

/* Phase 3: Nach oben schieben */
#preloader.loaded {
  transform: translateY(-100vh);
}
/* Image Reveal Animation */
.img-animation {
  clip-path: inset(0 100% 0 0);
  transform: translateX(-10px);
  transition:
    clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1),
    transform  0.85s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: clip-path, transform;
}

.img-animation-top {
  clip-path: inset(0 0 100% 0);
  transform: translateY(-30px);
  transition:
    clip-path 0.85s cubic-bezier(0.76, 0, 0.24, 1),
    transform  0.85s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: clip-path, transform;
}

.img-animation-top.is-visible {
  clip-path: inset(0 0 0% 0);
  transform: translateY(0);
}

.img-animation.is-visible {
  clip-path: inset(0 0% 0 0);
  transform: translateX(0);
}
*//* Animation Text */
.text-animate {
    overflow: hidden;
}
.text-animate .char {
    display: inline-block;
    transform: translateY(110%);
}

/* Navigation */
.navigation {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
}
.nav-hidden {
    transform: translateY(-100%) !important;
    transition: transform 0.3s ease-in-out !important;
}
.nav-visible {
    transform: translateY(0) !important;
    transition: transform 0.3s ease-in-out !important;
}

.nav-link-underline {
    position: relative;
    text-decoration: none;
}

.nav-link-underline::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s ease-in-out;
}

.nav-link-underline:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.h-scroll-wrapper {
    position: relative;
    height: 500vh;
    margin-top: 15vh;
    margin-bottom: -320px;
}

.h-scroll-sticky {
    position: sticky;
    top: 10vh;
    height: 100vh;
    overflow: visible;
    padding: 5vh 0;
}

.h-scroll-row {
    display: flex;
    flex-wrap: nowrap;
    height: 100%;
    will-change: transform;
    align-items: center;
}

body {
    background-color: white;
    transition: background-color 0.3s ease-in-out;
}

.dark-bloc {
    background-color: transparent !important;
}

/* Navigation-Bloc */
.navigation,
.navigation .bloc-bg {
    transition: background-color 0.3s ease-in-out;
}

body.dark-mode .navigation,
body.dark-mode .navigation .bloc-bg {
    background-color: #000000 !important;
}

body.light-mode .navigation,
body.light-mode .navigation .bloc-bg {
    background-color: #ffffff !important;
}

/* Accordion - Hintergrund */
.accordion,
.accordion-item,
.accordion-header,
.accordion-button,
.accordion-body,
.accordion-collapse {
    transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

body.dark-mode .accordion,
body.dark-mode .accordion-item,
body.dark-mode .accordion-header,
body.dark-mode .accordion-button,
body.dark-mode .accordion-body,
body.dark-mode .accordion-collapse {
    background-color: #000000 !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}

body.light-mode .accordion,
body.light-mode .accordion-item,
body.light-mode .accordion-header,
body.light-mode .accordion-button,
body.light-mode .accordion-body,
body.light-mode .accordion-collapse {
    background-color: #ffffff !important;
    border-color: #D0D0D0 !important;
    color: #000000 !important;
}

/* Accordion Button - nicht collapsed */
body.dark-mode .accordion-button:not(.collapsed) {
    background-color: #000000 !important;
    color: #ffffff !important;
}

body.light-mode .accordion-button:not(.collapsed) {
    background-color: #ffffff !important;
    color: #000000 !important;
}

/* Accordion SVG Icons (Plus-Zeichen) */
body.dark-mode .accordion svg,
body.dark-mode .accordion img[src*=".svg"] {
    filter: invert(1) brightness(100%);
    transition: filter 0.3s ease-in-out;
}

body.light-mode .accordion svg,
body.light-mode .accordion img[src*=".svg"] {
    filter: invert(0);
    transition: filter 0.3s ease-in-out;
}

/* Accordion Plus-Zeichen (::after Pseudo-Element - falls vorhanden) */
body.dark-mode .accordion-button::after {
    filter: invert(1) brightness(100%);
}

body.light-mode .accordion-button::after {
    filter: invert(0);
}

/* Logo - wechselt ÜBERALL (Desktop UND Mobile) - AUSSER Animationen */
.navbar-brand img:not(.img-animation-top):not(.img-animation),
.navigation img:not(.img-animation-top):not(.img-animation),
nav img:not(.img-animation-top):not(.img-animation),
header img:not(.img-animation-top):not(.img-animation) {
    transition: filter 0.3s ease-in-out;
}

body.dark-mode .navbar-brand img:not(.img-animation-top):not(.img-animation),
body.dark-mode .navigation img:not(.img-animation-top):not(.img-animation),
body.dark-mode nav img:not(.img-animation-top):not(.img-animation),
body.dark-mode header img:not(.img-animation-top):not(.img-animation) {
    filter: invert(1) brightness(100%);
}

body.light-mode .navbar-brand img:not(.img-animation-top):not(.img-animation),
body.light-mode .navigation img:not(.img-animation-top):not(.img-animation),
body.light-mode nav img:not(.img-animation-top):not(.img-animation),
body.light-mode header img:not(.img-animation-top):not(.img-animation) {
    filter: invert(0) brightness(100%);
}

/* Transitions - schließt Navigation, Divider, Forms, Animationen UND animierte Elemente aus */
body.dark-mode *:not(.animated):not([class*="animate"]):not([class*="fade"]):not([class*="zoom"]):not([class*="slide"]):not(.navigation):not(.navigation *):not(nav):not(nav *):not(.navbar):not(.navbar *):not(.divider):not(hr):not([class*="divider"]):not(form):not(form *):not(input):not(textarea):not(select):not(.form-control):not(.alert):not([class*="alert"]):not([class*="form"]):not(.img-animation-top):not(.img-animation) {
    transition: color 0.3s ease-in-out !important;
}

body.light-mode *:not(.animated):not([class*="animate"]):not([class*="fade"]):not([class*="zoom"]):not([class*="slide"]):not(.navigation):not(.navigation *):not(nav):not(nav *):not(.navbar):not(.navbar *):not(.divider):not(hr):not([class*="divider"]):not(form):not(form *):not(input):not(textarea):not(select):not(.form-control):not(.alert):not([class*="alert"]):not([class*="form"]):not(.img-animation-top):not(.img-animation) {
    transition: color 0.3s ease-in-out !important;
}

/* Text-Farben Dark Mode - OHNE Form-Elemente */
body.dark-mode h1:not(form *):not(.alert *),
body.dark-mode h2:not(form *):not(.alert *),
body.dark-mode h3:not(form *):not(.alert *),
body.dark-mode h4:not(form *):not(.alert *),
body.dark-mode h5:not(form *):not(.alert *),
body.dark-mode h6:not(form *):not(.alert *),
body.dark-mode p:not(form *):not(.alert *),
body.dark-mode span:not(form *):not(.alert *),
body.dark-mode div:not(form):not(form *):not(.alert):not(.alert *),
body.dark-mode a:not(form *):not(.alert *),
body.dark-mode li:not(form *):not(.alert *),
body.dark-mode label:not(form *):not(.alert *) {
    color: #ffffff !important;
}

/* Text-Farben Light Mode - OHNE Form-Elemente */
body.light-mode h1:not(form *):not(.alert *),
body.light-mode h2:not(form *):not(.alert *),
body.light-mode h3:not(form *):not(.alert *),
body.light-mode h4:not(form *):not(.alert *),
body.light-mode h5:not(form *):not(.alert *),
body.light-mode h6:not(form *):not(.alert *),
body.light-mode p:not(form *):not(.alert *),
body.light-mode span:not(form *):not(.alert *),
body.light-mode div:not(form):not(form *):not(.alert):not(.alert *),
body.light-mode a:not(form *):not(.alert *),
body.light-mode li:not(form *):not(.alert *),
body.light-mode label:not(form *):not(.alert *) {
    color: #000000 !important;
}

/* Navigation Text */
.nav-link,
.navbar-brand,
.navbar-nav a {
    transition: color 0.3s ease-in-out;
}

body.dark-mode .nav-link,
body.dark-mode .navbar-brand,
body.dark-mode .navbar-nav a {
    color: #ffffff !important;
}

body.light-mode .nav-link,
body.light-mode .navbar-brand,
body.light-mode .navbar-nav a {
    color: #000000 !important;
}

/* Hamburger Menu */
.navbar-toggler-icon {
    transition: filter 0.3s ease-in-out;
}

body.dark-mode .navbar-toggler-icon {
    filter: invert(1);
}

body.light-mode .navbar-toggler-icon {
    filter: invert(0);
}

/* Buttons */
.btn-d {
    transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

body.dark-mode .btn-d {
    color: #ffffff !important;
    border-color: #ffffff !important;
}

body.light-mode .btn-d {
    color: #000000 !important;
    border-color: #D0D0D0 !important;
}

/* ============================================
   MOBILE NAVIGATION - MUSS GANZ AM ENDE STEHEN
   ============================================ */
@media (max-width: 991px) {
    /* Mobile Hintergrund IMMER weiß */
    html body.dark-mode .blocsapp-special-menu,
    html body.light-mode .blocsapp-special-menu,
    html body.dark-mode .blocsapp-special-menu .blocsnav,
    html body.light-mode .blocsapp-special-menu .blocsnav,
    html body.dark-mode .navbar-collapse,
    html body.light-mode .navbar-collapse {
        background-color: #ffffff !important;
    }

    /* Mobile Links IMMER schwarz - MAXIMALE SPEZIFITÄT */
    html body.dark-mode .blocsapp-special-menu a,
    html body.light-mode .blocsapp-special-menu a,
    html body.dark-mode .blocsapp-special-menu .blocsnav a,
    html body.light-mode .blocsapp-special-menu .blocsnav a,
    html body.dark-mode .blocsapp-special-menu .blocsnav li a,
    html body.light-mode .blocsapp-special-menu .blocsnav li a,
    html body.dark-mode .navbar-collapse a,
    html body.light-mode .navbar-collapse a,
    html body.dark-mode .navbar-collapse .nav-link,
    html body.light-mode .navbar-collapse .nav-link {
        color: #000000 !important;
    }
}
/* ── Accordion ── */
.acc-card .collapsing {
  transition: height 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
  overflow: hidden;
}

.acc-card .collapse {
  transition: none !important;
}

/* Plus-Icon Rotation */
.acc-heading-text ~ blocsicon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
  transform-origin: center center;
  transform: rotate(0deg);
}

.acc-heading-text.is-open ~ blocsicon {
  transform: rotate(45deg) !important;
}

/* Footer Links - Farbe via JS gesteuert */
a.footer-text,
.footer-text a {
    transition: color 0.3s ease !important;
}
/* iOS-sicherer Slider (neu) */

.slider-wrapper {
    overflow: hidden !important;
    width: 100% !important;
    min-height: 320px !important; /* verhindert 0-Höhe auf iOS */
}

.slider-track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    will-change: transform;
    transform: translate3d(0,0,0);
}

.slider-track > * {
    flex: 0 0 auto !important;
}

.slider-item img {
    display: block !important;
    height: 300px !important;
    width: auto !important;
    object-fit: contain !important;
}


/* Accesibility Enhancements */
a:focus-visible,button:focus-visible{outline: 4px solid rgba(13, 110, 253, 0.60)!important;outline-offset: 2px;box-shadow:none!important;}


/* = Toggle Visibility
-------------------------------------------------------------- */

.toggled-item{transition: height 350ms ease-in-out, padding 350ms ease-in-out, opacity 350ms ease-in-out;overflow: hidden;}
.toggled-item-hidden{padding-top:0!important;padding-bottom:0!important;border-top:0!important;border-bottom:0!important;outline:0!important;opacity: 0;}
.object-hidden{display:none;}


/* = Bloc Padding Multi Breakpoint
-------------------------------------------------------------- */

@media (min-width: 576px) {
    .bloc-xxl-sm{padding:200px 20px;}
    .bloc-xl-sm{padding:150px 20px;}
    .bloc-lg-sm{padding:100px 20px;}
    .bloc-md-sm{padding:50px 20px;}
    .bloc-sm-sm{padding:20px;}
    .bloc-no-padding-sm{padding:0 20px;}
}
@media (min-width: 768px) {
    .bloc-xxl-md{padding:200px 20px;}
    .bloc-xl-md{padding:150px 20px;}
    .bloc-lg-md{padding:100px 20px;}
    .bloc-md-md{padding:50px 20px;}
    .bloc-sm-md{padding:20px 20px;}
    .bloc-no-padding-md{padding:0 20px;}
}
@media (min-width: 992px) {
    .bloc-xxl-lg{padding:200px 20px;}
    .bloc-xl-lg{padding:150px 20px;}
    .bloc-lg-lg{padding:100px 20px;}
    .bloc-md-lg{padding:50px 20px;}
    .bloc-sm-lg{padding:20px;}
    .bloc-no-padding-lg{padding:0 20px;}
}


/* = Mobile adjustments 
-------------------------------------------------------------- */
@media (max-width: 1024px)
{
    .bloc.full-width-bloc, .bloc-tile-2.full-width-bloc .container, .bloc-tile-3.full-width-bloc .container, .bloc-tile-4.full-width-bloc .container{
        padding-left: 0; 
        padding-right: 0;  
    }
}
@media (max-width: 991px)
{
    .container{width:100%;}
    .bloc{padding-left: constant(safe-area-inset-left);padding-right: constant(safe-area-inset-right);} /* iPhone X Notch Support*/
    .bloc-group, .bloc-group .bloc{display:block;width:100%;}
}
@media (max-width: 767px)
{
    .bloc-tile-2 .container, .bloc-tile-3 .container, .bloc-tile-4 .container{
        padding-left:0;padding-right:0;
    }
    .btn-dwn{
       display:none; 
    }
    .voffset{
        margin-top:5px;
    }
    .voffset-md{
        margin-top:20px;
    }
    .voffset-lg{
        margin-top:30px;
    }
    form{
        padding:5px;
    }
    .close-lightbox{
        display:inline-block;
    }
    .blocsapp-device-iphone5{
	   background-size: 216px 425px;
	   padding-top:60px;
	   width:216px;
	   height:425px;
    }
    .blocsapp-device-iphone5 img{
	   width: 180px;
	   height: 320px;
    }
}


@media (max-width: 991px){
	.carousell-text{
		margin-left:-60px;
		margin-right:-70px;
	}
	.pin-text{
		top:0px;
		position:relative;
	}
	
}

@media (max-width: 767px){
	h2{
		font-size:60px;
		line-height:70px;
	}
	h1{
		font-size:60px;
		line-height:70px;
	}
	.pin-text{
		position:relative;
		top:0px;
	}
	.carousell-text{
		margin-left:-40px;
		margin-right:-50px;
	}
	.neo-display{
		font-size:30px;
	}
	.blocsapp-special-menu blocsnav{
		background-color:var(--swatch-var-1569);
	}
	.blocsapp-special-menu blocsnav li a{
		font-size:50px!important;
		line-height:70px!important;
		color:var(--swatch-var-2074)!important;
		font-family:"HelveticaNowDisplay-Bd";
		display:inline-block;
		position:relative;
	}
	.close-special-menu .close-icon{
		background-color:var(--swatch-var-2074);
	}
	.close-special-menu .close-icon:hover{
		background-color:var(--swatch-var-2938);
	}
	.menu-icon-stroke{
		stroke:var(--swatch-var-2074)!important;
		fill:var(--swatch-var-2074)!important;
	}
	
}

@media (max-width: 575px){
	.menu-icon-stroke{
		stroke:var(--swatch-var-2074)!important;
		fill:var(--swatch-var-2074)!important;
	}
	.pin-text{
		position:relative;
		top:0px;
	}
	h2{
		font-size:40px;
		line-height:50px;
	}
	h1{
		font-size:45px;
		line-height:50px;
	}
	.semibold{
		font-size:40px;
		line-height:55px;
	}
	h3{
		font-size:40px;
		line-height:50px;
	}
	.neo-display{
		font-size:24px;
		line-height:29px;
	}
	.carousell-text{
		margin-left:-20px;
		margin-right:-20px;
	}
	.preloader{
	}
	.h2-text{
		font-size:40px;
		line-height:48px;
	}
	h4{
		font-size:40px;
		line-height:50px;
	}
	.blocsapp-special-menu blocsnav li a{
		color:var(--swatch-var-1569)!important;
		font-family:"HelveticaNowDisplay-Bd";
		font-size:50px!important;
		line-height:70px!important;
		display:inline-block;
		position:relative;
	}
	.blocsapp-special-menu blocsnav{
		background-color:var(--swatch-var-1569);
	}
	.nav-link-underline{
	}
	.close-special-menu .close-icon{
		background-color:var(--swatch-var-2074);
	}
	
}

