/* ====================================
   VARIABLEN & RESET
==================================== */
:root {
	--color-primary: #131313;
	--color-black: #131313;
	--color-dark: #333333;
	--color-gray: #878787;
	--color-bg-light: #878787;
	--color-white: #ffffff;
	--color-bg-dark: #9E1E05;
	--color-accent: #2c4f5e;
	
	--font-serif: 'Merriweather', Georgia, serif;
	--font-sans: 'Raleway', -apple-system, BlinkMacSystemFont, sans-serif;
	
	--container-max: 1600px;
	--content-max: 1200px;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html, body {
	scroll-behavior: smooth;
}

body {
	font-family: var(--font-sans);
	color: var(--color-white);
	background: var(--color-primary);
	font-size: 16px;
	line-height: 1.8;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

/* ====================================
   TYPOGRAFIE
==================================== */

/* H1 - Hero Headline */
h1 {
	font-family: var(--font-serif);
	font-weight: 300;	
	font-size: clamp(34px, 8vw, 72px);
	line-height: 1.2;
	letter-spacing: -0.5px;
}
/* .pg5 h1, */
.content-centered h1,
.projekt-section h1 {
	font-size: clamp(24px, 3.5vw, 46px);
}
.text-left .content-centered {
	text-align: left !important;
}
.text-right.content-centered {
	text-align: right;
}
.text-center.content-centered {
	text-align: center;
}

/* H2 - Subheadline Hero / Section Intros */
h2 {
	font-family: var(--font-serif);
	font-weight: 300;	
	font-size: clamp(24px, 2.2vw, 40px);
	line-height: 1.4;
}
h2 + h2 { margin-top: -1rem; }
.pg4 h2, .pg3 h2 {
	margin-top: 3rem !important;
	font-size: 1.5rem !important;
}
/* H3 - Section Headlines */
h3 {
	font-family: var(--font-serif);
	font-weight: 400;	
	font-size: clamp(18px, 2vw, 32px);
	line-height: 1.3;
	margin-bottom: 2rem;
}
h3.sans {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: clamp(16px, 1.5vw, 24px);
	line-height: 1.3;
	margin-bottom: 1rem;
}
h3.versal {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: clamp(16px, 1.5vw, 24px);
	line-height: 1.3;
	margin-bottom: .5rem;
	text-transform: uppercase;
}
h1 i,
h2 i,
h3 i {
	font-style: normal;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: var(--font-size-body);
	line-height: 2;
	display: block;
}
h1 i {
	font-size: clamp(18px, 2vw, 32px);
}
h2 i {
	font-weight: 600;
}
/* H4 - Card Headlines */
h4 {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: var(--font-size-h4);
	line-height: 1.4;
	margin-bottom: 1rem;
}
h4 i {
	font-style: normal;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: var(--font-size-body);
	line-height: 2;
	display: block;
}

/* Body Text */
p {
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: var(--font-size-body);
	line-height: 1.5;
	margin-bottom: 1.5rem;
}

/* White text on dark sections */
.text-white-section p,
.text-white-section h3,
.text-white-section h4 {
	color: var(--color-white);
}
.sub_margin,
.subheading {
	margin-bottom: 3rem;
}

.intro-text {
	font-size: clamp(16px, 1.15vw, 18px);
}

/* ====================================
   NAVIGATION
==================================== */
.navbar-custom {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	padding: 1rem 0;
	background: rgba(255, 255, 255, 0);
	/* background: #fff; */
	transition: all 0.4s ease;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.scrolled .navbar-custom {
	padding: .5rem 0; transition: .5s;
}

/* Sofort-Feedback bei Navbar-Klick: Fläche zieht sich über den Viewport auf */
body.nav-clicking::before {
	content: "";
	position: fixed;
	inset: 0;
	background: #ffffff;
	background: radial-gradient(
        circle at top left,
        rgba(158, 30, 5, 0.20),
        rgba(158, 30, 5, 0.05)
    ), #9E1E05;
	transform-origin: top center;
	transform: scaleY(0);
	z-index: 9999;
	pointer-events: none;
	animation: nav-click-overlay 0.35s ease-out forwards;
}
@keyframes nav-click-overlay {
	from { transform: scaleY(0); }
	to { transform: scaleY(1); }
}

/* Page-Enter-Effekt auf Unterseiten: eigene Ebene (after), damit nav-clicking (::before) nicht gestört wird */
body.sub_page.page-enter::after {
	content: "";
	position: fixed;
	inset: 0;
	background: radial-gradient(
        circle at top left,
        rgba(158, 30, 5, 0.20),
        rgba(158, 30, 5, 0.05)
    ), #9E1E05;
	transform-origin: top center;
	transform: scaleY(1);
	opacity: 1;
	z-index: 9998; /* knapp unter nav-clicking::before (9999) */
	pointer-events: none;
	animation: nav-enter-overlay 0.4s ease-out forwards;
}
@keyframes nav-enter-overlay {
	from { transform: scaleY(1); opacity: 1; }
	to   { transform: scaleY(0); opacity: 0; }
}

/* Page-Enter-Effekt entfernt – nur noch nav-clicking Overlay aktiv */

.nav-item { margin-bottom: 0;;}
.sub_page .navbar-custom {
	background: transparent;
}
.scrolled .navbar-custom {
	/* background: rgba(150, 150, 150, 0.9); */
	background: rgba(255, 255, 255, 0.75) !important;
	/* background: rgba(0,0,0, 0.2); */
	backdrop-filter: blur(6px) !important
	;

}
/* .pg14.scrolled .navbar-custom,
.pg6.scrolled .navbar-custom {
	background: #fff;
	background: rgba(255, 255, 255, 0.5);
} */

.navbar-custom .container-custom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	width: 100%;
	position: relative;
	gap: 20px;
	padding-top: 0;
	padding-bottom: 0;
}

.navbar-custom .container-custom > .navbar-main-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex: 1;
	min-width: 0;
	gap: 20px;
}

.navbar-custom .container-custom > .navbar-main-row > .navbar-brand {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: flex-end;
	flex-direction: column;
	order: 1;
	z-index: 999;
}

.navbar-custom .navbar-toggler-custom {
	order: 2; z-index: 999;
}

/* Sprachumschalter: oben rechts, über dem Toggler – immer sichtbar und per Tab erreichbar */
.navbar-custom .navbar-lang-top {
	position: absolute;
	top: 0;
	right: clamp(1rem, 4vw, 2.5rem);
	z-index: 1001;
	margin: 0;
	transition: .5s;
}
.scrolled .navbar-lang-top { display: none !important; transition: .5s; }

.navbar-custom .navbar-collapse {
	--nav-area-padding-left: clamp(1.5rem, 5vw, 3rem);
	--nav-area-padding-right: clamp(1.5rem, 5vw, 3rem);
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	position: relative;
	order: 3;
}

@media (min-width: 1200px) {
	.navbar-custom .container-custom {
		position: relative;
	}
	/* Sprachumschalter: absolut oben rechts – an Content-Kante ausgerichtet */
	.navbar-custom .navbar-lang-top {
		position: absolute;
		top: 0;
		right: 2.5rem; /* wie container-custom padding-right – damit gleiche Kante wie navbar-center */
		z-index: 1001;
		margin: 0;
		padding-right: var(--nav-area-padding-right);
	}
	.navbar-custom .navbar-collapse {
		display: flex !important;
	}
	/* Innere-container: rechts ohne Padding, damit navbar dieselbe rechte Kante wie lang-top hat */
	.navbar-custom .navbar-inner-wrap.container-custom {
		padding-right: 0;
	}
	/* Navbar rechtsbündig */
	.navbar-custom .navbar-col-nav {
		justify-content: flex-end;
	}
	.navbar-custom .navbar-center {
		justify-content: flex-end;
		padding-right: var(--nav-area-padding-right);
		margin-left: auto !important;
	}
	.navbar-inner-wrap .navbar-nav > .nav-item:first-child{
		display: none !important;
	}
}

/* Overlay >1200px: Hauptnav und Subnav linksbündig, 50% nach rechts verschoben */
@media (min-width: 1200px) {
	body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-inner-wrap .row {
		padding-left: 50%;
	}
	body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-col-nav {
		justify-content: flex-start;
	}
	body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-center {
		justify-content: flex-start;
		margin-left: 0 !important;
	}
}

/* Zwei-Spalten: Bootstrap row/col – links Infos (nur xl), rechts Nav; vertikal zentriert */
.navbar-inner-wrap {
	flex: 1;
	min-width: 0;
	display: flex;
	align-items: center !important;
}
.navbar-inner-wrap .row {
	width: 100%;
}
.navbar-info-content {
	font-size: 0.9rem;
	letter-spacing: 0.02em;
}
.navbar-info-link {
	color: var(--color-dark);
	text-decoration: none;
}
.navbar-info-link:hover {
	color: var(--color-primary);
}
.navbar-col-nav {
	justify-content: flex-start;
	min-width: 0;
}
/* mx-auto auf navbar-center aufheben, damit Hauptnav und Drill-Panel dieselbe linke Kante haben */
.navbar-col-nav .navbar-center {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.navbar-custom .navbar-center {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	gap: 1rem;
	margin: 0;
	padding-left: var(--nav-area-padding-left);
	padding-right: 0;
	/* padding-right wird dynamisch via JavaScript gesetzt */
}

.navbar-custom .navbar-nav {
	border-bottom: none !important;
	margin: 0 !important;
	padding: 0;
	padding-right: 0;
	display: flex;
	align-items: flex-end;
}

/* Sprachumschalter DE | EN in der Navbar */
.navbar-lang-switch {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin-left: .5rem;
	font-family: var(--font-serif);
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	white-space: nowrap;
	color: var(--color-black);
}
.navbar-lang-switch .lang-link {
	color: inherit;
	opacity: 0.6;
	text-decoration: none;
	transition: opacity 0.2s ease, color 0.2s ease;
}
.navbar-lang-switch .lang-link:hover {
	opacity: 1;
	color: var(--color-bg-dark);
}
.navbar-lang-switch .lang-link.active {
	opacity: 1;
	font-weight: 600;
}
.navbar-lang-switch .lang-sep {
	opacity: 0.4;
}

@media (max-width: 1199.98px) {
	.navbar-lang-switch:not(.navbar-lang-top) {
		margin-left: 0;
		margin-top: 0.75rem;
	}
}
@media (max-width: 768px) {
	.navbar-lang-switch {
		display: none !important;
	}
}
.navbar-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
}

.navbar-brand-text {
	font-family: var(--font-serif);
	font-size: 22px;
	font-weight: 600;
	
	letter-spacing: 0.5px;
	text-decoration: none;
}

.navbar-brand {
	display: flex;
	align-items: flex-end;
	flex-direction: column;
	text-decoration: none;
	padding: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 0.8s ease-in-out;
	order: 1;
	align-self: flex-end;
}
.sub_page .navbar-brand {
  opacity: 1; z-index: 9 !important;
}
.navbar-brand.visible {
	opacity: 1;
}

.navbar-logo {
	height: 90px;
	width: auto;
	margin: 0;
	padding: 0;
	display: block;
	vertical-align: middle;
	transition: .5s;
}
.scrolled .navbar-logo {
	height: 70px; transition: .5s;
}
.navbar-brand video.navbar-logo {
	height: 90px;
	width: auto;
	object-fit: contain;
}

.navbar-center {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
}


.navbar-custom .nav-link {
	font-family: var(--font-serif);
	font-size: clamp(11px, 1vw, 14px);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;	
	padding: 0.5rem clamp(0.5rem, 1vw, 1.2rem);
	margin: 0;
	transition: color 0.3s ease;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: none !important;
	border: none !important;
	display: flex;
	align-items: flex-end;
}

.navbar-custom .nav-link::before,
.navbar-custom .nav-link::after {
	display: none !important;
	content: none !important;
}

.navbar-custom .nav-link:hover {
	color: var(--color-primary);
}
.nav-link.highlight {
	padding-top: 1.5rem !important;
	padding-bottom: 1.5rem !important;
	font-weight: 600 !important;
	color: var(--color-primary);
}
.navbar-cta {
	position: static;
	right: auto;
	bottom: auto;
	display: flex;
	align-items: flex-end;
	margin: 0 0 2rem 0;
	padding: 0;
}

/* Hamburger Button */
.navbar-toggler-custom {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
	order: 2;
	display: none; /* Hidden on desktop */
}

.navbar-toggler-custom span {
	display: block;
	width: 40px;
	height: 2px;
	background: var(--color-black);
	margin: 8px 0;
	transition: all 0.3s ease;
	box-shadow: 0 1px 1px rgba(255, 255, 255, 0.3);
}
.scrolled .navbar-toggler-custom span {
	box-shadow: none;
}
.navbar-toggler-custom[aria-expanded="true"] span:nth-child(1) {
	transform: rotate(45deg) translate(6px, 6px);
}

.navbar-toggler-custom[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.navbar-toggler-custom[aria-expanded="true"] span:nth-child(3) {
	transform: rotate(-45deg) translate(8px, -6px);
}

/* Tastatur-Fokus: sichtbar bei Tab-Navigation (alle Breakpoints) */
.navbar-custom .navbar-toggler-custom:focus-visible,
.navbar-custom .nav-link:focus-visible,
.navbar-custom .dropdown-toggle:focus-visible,
.navbar-custom .navbar-brand:focus-visible,
.navbar-custom .navbar-cta .btn:focus-visible,
.navbar-custom .dropdown-item:focus-visible,
.navbar-custom .navbar-lang-switch .lang-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}
/* Outline nur bei Mausklick ausblenden, bei Tastatur-Fokus sichtbar lassen (Barrierefreiheit) */
.navbar-custom .navbar-toggler-custom:focus:not(:focus-visible),
.navbar-custom .navbar-lang-switch .lang-link:focus:not(:focus-visible) { outline: none; }
.navbar-custom .navbar-toggler-custom:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
	box-shadow: 0 0 0 1px var(--color-bg-light);
}

/* ====================================
   DRILL-DOWN: Klick auf Portfolio etc. – auf allen Viewport-Breiten
   – Hauptnav wird ausgeblendet
   – Subnav legt sich darüber (gleiche Position: rechts, vertikal zentriert)
   – Zurück-Button wird vom Script eingefügt
   – Subnav ohne Trennlinien zwischen den Einträgen
==================================== */
.nav-drill-panel {
	display: none;
	width: 100%;
	max-width: 100%;
	flex: 0 1 auto;
	flex-direction: column;
	min-height: 0;
	position: relative;
	z-index: 9999;
	/* gleiche linke Kante wie .navbar-center: keine Auto-Margins */
	margin-left: 0;
	margin-right: 0;
	/* padding-left: var(--nav-area-padding-left); */
	padding-right: var(--nav-area-padding-right);
	align-self: flex-start;
	align-items: flex-end;
}
#navbarNav.nav-drill-open .navbar-nav.navbar-center,
#navbarNav.nav-drill-open .navbar-cta,
#navbarNav.nav-drill-open .navbar-col-info {
	display: none !important;
}
#navbarNav.nav-drill-open .navbar-col-nav {
	flex: 0 0 100%;
	max-width: 100%;
	justify-content: flex-start;
}
#navbarNav.nav-drill-open .nav-drill-panel {
	display: flex;
	flex-direction: column;
}
/* Transition beim Öffnen der Subnav: leichter Fade + Slide */
@keyframes nav-drill-in {
	from {
		opacity: 0;
		transform: translateX(-10px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}
#navbarNav.nav-drill-open .nav-drill-panel .nav-drill-back {
	animation: nav-drill-in 0.25s ease-out forwards;
}
#navbarNav.nav-drill-open .nav-drill-panel .nav-drill-content {
	animation: nav-drill-in 0.28s ease-out 0.04s forwards;
	opacity: 0;
	transform: translateX(-10px);
}
/* Beim Zurück: Ausblend-Transition (Spiegel zur Einblendung) */
@keyframes nav-drill-out {
	from {
		opacity: 1;
		transform: translateX(0);
	}
	to {
		opacity: 0;
		transform: translateX(-10px);
	}
}
#navbarNav.nav-drill-closing .nav-drill-panel .nav-drill-back {
	animation: nav-drill-out 0.2s ease-in forwards;
}
#navbarNav.nav-drill-closing .nav-drill-panel .nav-drill-content {
	animation: nav-drill-out 0.2s ease-in 0.03s forwards;
}
.nav-drill-back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	width: auto;
	margin: 0 0 1rem 0;
	padding: 0.5rem 0.6rem;
	background: none;
	border: none;
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--color-dark);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	/* linksbündig im Panel, damit er nicht rechts rausfällt */
	align-self: flex-start;
}
.nav-drill-back span {
	display: inline-block;
	font-size: 1.25rem;
	line-height: 1;
}
.nav-drill-back:hover,
.nav-drill-back:focus-visible {
	color: var(--color-primary);
}
.nav-drill-back:focus { outline: none; }
.nav-drill-back:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.nav-drill-content {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	position: relative;
	z-index: 9999;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}
.nav-drill-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	box-shadow: none;
	min-width: 0;
	max-height: none;
	width: 100%;
	text-align: right;
}
.nav-drill-menu li {
	margin: 0;
}
/* wie Hauptnav: keine Trennlinien zwischen den Items */
.nav-drill-menu .dropdown-item,
.nav-drill-menu a {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	/* min-height: 2.75rem; */
	padding: 0.5rem 0.6rem;
	font-family: var(--font-serif);
	font-size: 1rem;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--color-dark);
	text-decoration: none;
	border-bottom: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.nav-drill-menu .dropdown-item:hover,
.nav-drill-menu .dropdown-item:focus,
.nav-drill-menu a:hover,
.nav-drill-menu a:focus {
	background-color: rgba(0, 0, 0, 0.05);
	color: var(--color-primary);
}

/* Mobile Menu – Basis: gleiche Farbwelt wie Desktop, nur Layout anders */
/* Bootstrap 5 Collapse wird verwendet - keine separate navbar-mobile nötig */
.navbar-collapse .nav-link {
	display: block;
	padding: 1rem 0 0;
	font-size: 13px;
	border-bottom: 1px solid rgba(0,0,0,0.08);
	color: var(--color-dark);
}


/* ====================================
   LOGO HEXAGON
==================================== */
.logo-hexagon {
	width: 60px;
	height: 60px;
	background: var(--color-primary);
	clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}

.logo-hexagon.hero-size {
	width: 100px;
	height: 100px;
}

.logo-letter {
	font-family: var(--font-sans);
	font-weight: 700;
	color: var(--color-white);
	font-size: 32px;
	line-height: 1;
}

.hero-size .logo-letter {
	font-size: 52px;
}

/* ====================================
   HERO SECTION
==================================== */
.hero-section {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-image: url('../images/header1.jpg');
	background-size: cover;
	background-position: center;
	 background-attachment: fixed; 
	background-repeat: no-repeat;
  	height: 100vh;
	min-height: 700px;
}

@media (max-width: 768px) {
	.hero-section {
		align-items: self-end;
		padding-bottom: 20vh;
		transition: 1s;;
	}
}
.pg5 .hero-section {
	height: 100vh;
}
.sub_page .hero-section {
  margin-top: 0;
  background-attachment: unset;
}
.bg-fixed .hero-section {
	background-attachment: fixed !important;
}
.bg-fixed  {
	padding: 0 !important;
}

/* Hero-Video-Section: volle Breite, 80vh, kein Container – Video 100% breit */
.hero-video-section {
	padding: 0 !important;
	margin: 0;
	width: 100%;
	max-width: none;
}
.hero-video-wrap {
	width: 100%;
	height: 80vh;
	min-height: 280px;
	overflow: hidden;
	background: #131313;
}
.hero-video-wrap video,
.hero-video-section #video1,
.hero-video-section #bgVideo {
	width: 100% !important;
	height: 100% !important;
	min-height: 100%;
	object-fit: cover;
	display: block;
	vertical-align: top;
}

.hero-video {
	position: relative;
	overflow: hidden;
}
.hero-background-video {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate(-50%, -50%);
	z-index: 1;
}

.hero-video-fallback {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	z-index: 0;
}

/* Video lädt: Fallback anzeigen, Video verstecken */
.hero-background-video {
	opacity: 0;
	transition: opacity 0.5s ease;
}

.hero-background-video.loaded {
	opacity: 1;
}

/* Falls Video nicht unterstützt wird */
.no-video .hero-background-video {
	display: none;
}

.no-video .hero-video-fallback {
	z-index: 1;
}
.hero-content {
	position: relative;
	z-index: 2;
	color: var(--color-white);
	max-width: 90vw;
	padding: 0 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.hero-section h1, #hero h1,
.hero-section h2 {
	color: var(--color-white);
	font-family: var(--font-sans);
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0.5px;
}

.hero-section h1, #hero h1 {
	margin-bottom: 1.5rem;
	text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.75);
}

/* GSAP Text-Split: Zeichen einzeln animierbar (#hero .hero-content h1) */
#hero .hero-content h1.hero-h1-chars {
	opacity: 0;
}
#hero .hero-content h1.hero-h1-chars .char {
	display: inline-block;
	white-space: pre;
	transform-origin: center bottom;
}

/* Mobil: Kein Umbruch mitten im Wort – Headline als eine Zeile, Schrift skaliert mit */
@media (max-width: 768px) {
	#hero .hero-content h1 {
		white-space: nowrap;
		font-size: clamp(18px, 6.5vw, 72px);
	}
}

.hero-tagline {
	font-family: var(--font-sans);
	font-size: clamp(14px, 1.1vw, 16px);
	font-weight: 400;
	color: rgba(255, 255, 255, 0.9);
	margin-top: 2rem;
	letter-spacing: 0.5px;
}
.myicon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin: 0 0.75rem;
  }
  
  .mi-download {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
  }

/* ====================================
   SECTIONS
==================================== */
section {
	padding: 6rem 0;
	position: relative;
    /* background: var(--color-bg-light); */
	background: var(--color-primary);
}

section.compact {
	padding: 80px 0;
}

.section-bg-light {
	background: var(--color-bg-light) !important;
}

.section-bg-primary {
	background: var(--color-primary);
}
.section-bg-dark {
	background: var(--color-bg-dark);
}
.section-bg-gray {
	background: var(--color-gray);
}
.section-bg-white{ 
	background: #fff !important;
} 
.section-box {
	padding: 1.5rem 0;
}
.section-empty {
	padding: 4rem 0;
}
.bg-black {
	background: var(--color-black) !important;
}
/* Container */
.container-custom {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 30px;
}
.zitat-section{
	text-align: center;
	padding: 4rem 0;  
}
.zitat-section p {
	margin: 0;
	font-style: italic
}
.icon  {
	width: 50px !important;
	height: auto;
}
.trenner-section {
	padding: 4em 0;
}
.trenner-section img {
	width: 60px;
	height: auto;
}

.content-narrow {
	max-width: var(--content-max);
	margin: 0 auto;
}

.content-centered {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

/* Section Headings */
.section-heading {
	text-align: center;
	margin-bottom: 3rem;
}

.section-subheading {
	text-align: center;
	font-size: clamp(14px, 1.05vw, 16px);
	color: var(--color-gray);
	margin-top: 0.5rem;
	margin-bottom: 4rem;
	font-weight: 400;
}

.section-bg-dark .section-subheading {
	color: #ffffff;
}

/* ====================================
   SERVICE CARDS (3 Spalten)
==================================== */
.service-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 30px;
	margin-top: 3rem;
}

.service-card {
	background: var(--color-white);
	padding: 50px 40px;
	border-radius: 0;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
	transition: all 0.4s ease;
}

.service-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
}

.service-card h4 {
	margin-bottom: 1.2rem;
}

.service-card p {
	margin-bottom: 1.8rem;
}
#hero.pt-2,
#hero.hero-video-section {
	padding: 0 !important;
}
.link-primary {
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: gap 0.3s ease;
}

.link-primary:hover {
	gap: 12px;
	color: var(--color-primary);
}

.link-primary::after {
	content: '→';
	font-size: 18px;
}
/* ====================================
   MAP + DETAILS SECTION Bestandskunden
==================================== */
.leafletmap-bestandsmieter { height: 600px; width: 100%; border-radius: 10px !important; box-shadow: 0 4px 20px rgba(0,0,0,0.3) !important; }
@media (max-width: 768px) { .leafletmap-bestandsmieter { height: 250px !important; } }

.bestandsmieter-panel {
	background: rgba(255,255,255,0.05);
	border-radius: 10px;
	padding: 1.25rem;
	min-height: 400px;
	position: sticky;
	top: 1rem;
}
.bestandsmieter-panel-empty {
	color: rgba(255,255,255,0.5);
	padding: 0.5rem 0;
}
.bestandsmieter-panel-empty .bestandsmieter-hint {
	text-align: center;
	margin-bottom: 1.25rem;
	font-size: 0.95rem;
}
.bestandsmieter-panel-empty .bestandsmieter-hint p { margin: 0; }
.bestandsmieter-overview { list-style: none; padding: 0; margin: 0; font-size: 0.88rem; }
.bestandsmieter-overview li { padding: 0; color: rgba(255,255,255,0.75); line-height: 1; }

.bestandsmieter-slider {
	position: relative;
	width: 100%;
	aspect-ratio: 16/10;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 1rem;
	background: rgba(0,0,0,0.2);
}
.bestandsmieter-slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: none;
}
.bestandsmieter-slider img.active { display: block; }
.bestandsmieter-slider-dots {
	position: absolute;
	bottom: 8px;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	gap: 6px;
}
.bestandsmieter-slider-dots span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255,255,255,0.5);
	cursor: pointer;
	transition: background 0.2s;
}
.bestandsmieter-slider-dots span.active { background: #fff; }
.bestandsmieter-slider-dots span:hover { background: rgba(255,255,255,0.8); }

.bestandsmieter-address {
	font-weight: 600;
	font-size: 1rem;
	margin-bottom: 1rem;
	line-height: 1.4;
}
.bestandsmieter-tenants {
	list-style: none;
	padding: 0;
	margin: 0;
}
.bestandsmieter-tenants li {
	padding: 0.6rem 0;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
}
.bestandsmieter-tenants li:last-child { border-bottom: none; }
.bestandsmieter-tenants .tenant-name { font-weight: 500; }
.bestandsmieter-tenants .tenant-specs { font-size: 0.85rem; color: rgba(255,255,255,0.7); white-space: nowrap; }

.bestandsmieter-locations .location-block { margin-bottom: 1rem; }
.bestandsmieter-locations .location-block:last-child { margin-bottom: 0; }
.bestandsmieter-locations .bestandsmieter-address {
	font-weight: 600;
	font-size: 1rem;
	margin-bottom: 0.5rem;
	line-height: 1.4;
}
.bestandsmieter-locations .bestandsmieter-tenants {
	list-style: none;
	padding: 0;
	margin: 0 0 0.75rem 0;
}
.bestandsmieter-locations .bestandsmieter-tenants li {
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
}
.bestandsmieter-locations .bestandsmieter-tenants li:last-child { border-bottom: none; }

/* 
.details {
	padding: 2rem;
	background: var(--color-white);
	border-radius: 10px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.details a,
.details p,
.details li,
.details h2 {
	color: #000 !important;
	font-family: var(--font-sans);
}
.details h2 {
	font-size: clamp(18px, 1.5vw, 24px);
	font-weight: 600;
	margin-bottom: 1rem;
} */

/* ====================================
   VALUE BOXES (Dark Section, 3 Spalten)
==================================== */
.value-boxes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 40px;
	margin-top: 3rem;
}

.value-box {
	background: transparent;
	padding: 40px 0;
	border-left: 3px solid var(--color-primary);
	padding-left: 30px;
}

.value-box h4 {
	color: var(--color-white);
	margin-bottom: 1rem;
	font-size: clamp(18px, 1.5vw, 24px);
}

.value-box p {
	color: #cccccc;
	line-height: 1.8;
}

/* ====================================
   TWO COLUMN LAYOUTS
==================================== */
.two-col-section {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
	border: solid 1px var(--color-white);
	border: solid 1px rgba(255,255,255,.25);
	padding: 1rem 4rem 1rem 1rem;
}
.section-bg-dark .two-col-section {
	/* border: solid 1px #ffffff; */
	border: solid 1px rgba(255,255,255,.5);
  /* margin-bottom: 3rem; */
}
.two-col-section.reverse {
  padding: 1rem 1rem 1rem 4rem;
	direction: rtl;
}

.two-col-section.reverse > * {
	direction: ltr;
}

.two-col-image {
	width: 100%;
	height: 100%;
	border-radius: 0;
  /* box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25); */
}

.two-col-content h3 {
	font-family: var(--font-serif);
	font-weight: 400;
	
	font-size: var(--font-size-h4);
	line-height: 1.4;
	margin-bottom: 1rem;
}

.two-col-content p {
	margin-bottom: 1.5rem;
}

/* ====================================
   FAQ SECTION
==================================== */
.faq-list {
	max-width: 900px;
	margin: 0 auto;
}

.accordion-item {
  background: transparent;
  margin-bottom: 15px;
  border: none;
  border-left: none;
  border-radius: 0 !important;
  color: #fff;
  border-bottom: solid 1px #fff;
}

.accordion-button {
	font-family: var(--font-sans);
    font-size: clamp(15px, 1.2vw, 18px);
    font-weight: 600;
    color: #fff;
    background: transparent;
    padding: 0.5rem 2.5rem 1.25rem 0;
    border: none;
}

.accordion-button:not(.collapsed) {
	background: transparent;
	color: #fff;
	box-shadow: none;
}

.accordion-button:focus {
	box-shadow: none;
	border: none;
}

.accordion-button::after,
.accordion-button:not(.collapsed)::after {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-body {
	font-family: var(--font-sans);
	color: #fff;
	line-height: 1.8;
	padding: 0 2.5rem 1.5rem 0;
	text-align: left
}

.accordion-item:hover {
	transform: translateX(8px);
	transition: transform 0.3s ease;
}

/* ====================================
   CTA SECTION
==================================== */
/* .cta-section {
	text-align: center;
	padding: 100px 30px;
} */

.cta-section h2 {
	color: var(--color-white);
	margin-bottom: 1rem;
}

.cta-section p {

}
.zitat-section p {
  color: #ffffff;
  font-family: 'merriweather', serif;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 400;
}

.btn-cta {
	display: inline-block;
	padding: 16px 50px;
	background: var(--color-white);
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	border-radius: 50px;
	transition: all 0.3s ease;
}

.btn-cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
	color: var(--color-primary);
}

/* .btn-info: Hover = Sliding Fill von links nach rechts, dunkelgrau, weiße Schrift */
.btn-info {
	position: relative;
	overflow: hidden;
}
.btn-info::before {
	content: '';
	position: absolute;
	inset: -1px; /* 1px über Rand hinaus → deckt Button-Border (1px) und Rundungs-Lücken ab */
	background: var(--color-primary);
	border-radius: inherit;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.35s ease;
	z-index: -1; /* hinter Text und Pfeil, damit Schrift sichtbar bleibt */
}
.btn-info:hover::before {
	transform: scaleX(1);
}
/* Weiße Schrift + kein Hover-Sprung (import.css wurde angepasst) */
a.btn-info:hover {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
a.btn-info:hover,
a.btn-info:hover * {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
a.btn-info:hover::after {
	color: #fff !important;
	/* Pfeil-Icon per Filter erzwingend weiß (currentColor in data-URI-SVG oft nicht zuverlässig) */
	filter: brightness(0) invert(1);
}
a.btn-info,
a.btn-info::after {
	transition: color 0.3s ease;
}
a.btn-info::after {
	transition: filter 0.3s ease;
}
.btn-info::after {
	position: relative;
	z-index: 1;
}

.section-bg-gray h1
, .section-bg-gray h2
, .section-bg-gray h3
, .section-bg-gray h4
, .section-bg-gray h5
, .section-bg-gray h6
, .section-bg-gray p
 {
	color: #fff;
}

.highlight-section li {
	color: #fff;
	line-height: 1.4;
	margin-bottom: 1rem;
	padding: 0.5rem 1rem;
	list-style: none;
	width: 25%;
	width: 33%;
	display: inline-block;
	vertical-align: top;
	text-align: left;
	font-weight: 600;
}

.ul-hex {
	list-style: none;
	margin: 0;
	padding: 0;
  }
  
  .ul-hex li {
	position: relative;
	padding-left: 1.4rem; /* Platz für Hex */
	margin: .5rem 0;
  }
  
  .ul-hex li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
  
	width: .85rem;   /* breiter */
	height: .7rem;    /* flacher */
  
	background: currentColor;
	opacity: .5;
  
	clip-path: polygon(
	  18% 0%, 82% 0%,   /* obere Kanten länger */
	  100% 50%,
	  82% 100%, 18% 100%,
	  0% 50%
	);
	transform: rotate(90deg);
  }

  .fancybox-content {
	background: #ffffff;
	background: transparent;
	padding: 1rem;
	border-radius: 0;
	border: solid 1px rgba(255, 255, 255, 0.3);
	margin-bottom: 1rem;
	transition: all 0.3s ease;
}

.fancybox-content:hover {
	transform: translateY(-0.5rem);
	box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.2);
  }
/* ====================================
   FOOTER
==================================== */
footer {
	background: var(--color-bg-light);
	
	padding: 3rem 0 1rem;
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 50px;
	margin-bottom: 2rem;
}

.footer-column h5 {
	font-family: var(--font-sans);
	font-size: 14px;
	font-weight: 600;
	color: var(--color-white);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 1.5rem;
}

.footer-column ul {
	list-style: none;
	padding: 0;
}

.footer-column li {
	margin-bottom: 0.8rem;
}

.footer-column a {
	font-size: 14px;
	text-decoration: none;
	transition: color 0.3s ease;
	font-weight: 600;
}

.footer-column a:hover {
	color: var(--color-primary);
}
/* Tastatur-Fokus: wie Navbar (nav-link / .btn) */
footer .nav-link:focus-visible,
footer a.btn:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.footer-bottom {
  text-align: center;
	padding-top: 2rem;
	border-top: 1px solid #aaa;
}
.footer-bottom p {
  font-size: 12px;
}

.footer-logo {
	width: 70px;
	height: 105px;
}

.nav-item.highlight {
	/* display: none; */
}
/* ====================================
   RESPONSIVE
==================================== */
@media (max-width: 1400px) {
	.navbar-inner {
		gap: 15px;
	}
	
	.navbar-custom .nav-link {
		padding: 0.5rem 0.8rem;
		font-size: 12px;
	}
	
	.navbar-cta .btn {
		font-size: 12px;
		padding: 0.3rem 0.8rem;
	}
}

@media (max-width: 1199.98px) {
	.navbar-toggler-custom {
		display: block !important;
	}
	section {
		padding: 70px 0;
	}
	
	.two-col-section {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	
	.service-cards,
	.value-boxes {
		grid-template-columns: 1fr;
	}
	
	.hero-section {
		height: 100vh;
		min-height: 500px;
	}
	.pg5.hero-section {
		height: 30vh;
		min-height: inherit;
	}
	.nav-item.highlight {
		display: block !important;
	}
}

@media (max-width: 768px) {
	section {
		padding: 60px 0;
	}
	
	.container-custom {
		padding: 0 20px;
	}
	
	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 30px;
	}
	.footer-logo {
		margin-bottom: 3rem;
	}
}

/* ====================================
   ANIMATION HELPERS
==================================== */
.fade-in {
	/* Animation wird per GSAP gesteuert */
}

.slide-up {
	/* Animation wird per GSAP gesteuert */
}

.slide-in-left,
.slide-in-right,
.slide-in-down {
	/* Animation wird per GSAP gesteuert */
}

.scale-in {
	/* Animation wird per GSAP gesteuert */
}

/* ====================================
   LOGO VIDEO
==================================== */
.logo-video-container {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 300px;
}

.logo-video {
	height: 500px;
	height: 80vh;
	width: auto;
}

/* ====================================
   PROJEKT CARDS
==================================== */
.section-projekte {
	padding: 6rem 0;
	background: var(--color-bg-dark);
}

/* Spalten als Flex-Container, damit Karten in einer Zeile gleiche Höhe bekommen */
.section-projekte .row > [class*="col"] {
	display: flex;
}

.projekt-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	background: var(--color-bg-light);
	background: rgba(255, 255, 255, 0.1);
	/* border-radius: 8px; */
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
	overflow: hidden;
	margin-bottom: 2rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	border: solid 1px rgba(255, 255, 255, 0.3);
	padding: 1rem;
	text-decoration: none;
	color: inherit;
}

.projekt-card:hover {
	transform: translateY(-4px) !important;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important;
}

/* Rahmen für das Projektbild: festes Seitenverhältnis, Bild füllt den Rahmen */
.projekt-image {
	overflow: hidden;
	aspect-ratio: 700 / 390;
	position: relative;
	background: var(--color-bg-light, #f5f5f5);
	flex-shrink: 0;
}

.projekt-image img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease-out;
}

.projekt-card img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease-out;
}

.projekt-card .projekt-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.projekt-card:hover .projekt-image img {
	transform: scale(1.2);
}

.projekt-card:hover img {
	transform: scale(1.2);
}

.projekt-content {
	/* background: var(--color-white); */
	padding: 2rem 1rem 0;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.projekt-content-grid {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1.5rem;
	align-items: start;
}

.projekt-content h3 {
	font-family: var(--font-sans);
	font-size: clamp(16px, 1.5vw, 24px);
	font-weight: 400;
	margin-bottom: .75rem;
}
.projekt-content-grid-item h3 {
	font-family: var(--font-sans);
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 600;
	
	margin-bottom: 1rem;
}

.projekt-content-grid-item ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.projekt-content-grid-item li {
	font-family: var(--font-sans);
	line-height: 1.6;
	margin-bottom: 0;
  
}

.projekt-content-grid-item li:last-child {
	margin-bottom: 0;
}

.btn-bubble {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 7rem;
	height: 7rem;
	border-radius: 50%;
	background: var(--color-primary) !important;
	color: var(--color-white) !important;
	text-decoration: none;
	font-family: var(--font-sans);
	font-weight: 600;
	text-align: center;
	line-height: 1.4;
	box-shadow: 0 4px 12px rgba(158, 30, 5, 0.3);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	padding: 0.5rem;
	white-space: normal;
  border: none !important;
}
.btn-bubble.black {
	background: var(--color-black) !important;
}
.btn-bubble.red {
	background: var(--color-primary) !important;
}
.btn-bubble.white {
	background: var(--color-white) !important;
	color: var(--color-black) !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}
.btn-bubble.less {
  background: var(--color-gray) !important;
}
.btn-bubble:hover {
  transform: scale(1.05);
	box-shadow: 0 6px 18px rgba(158, 30, 5, 0.4);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4) !important;
	color: var(--color-white);
	text-decoration: none;
}

/* Responsive für Projekt Cards */
@media (max-width: 768px) {
	.projekt-content-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		justify-items: center;
	}
	
	.projekt-content-grid-item:last-child {
		justify-self: center;
	}
}

/* ====================================
Video
==================================== */
.vthumb{
	border:0; padding:0; background:none; cursor:pointer; position:relative;
	display:inline-block; border-radius:16px; overflow:hidden;
  }
  .vthumb img{ display:block; width:100%; height:auto; }
  .vthumb__play{
	position:absolute; inset:0; display:grid; place-items:center;
	font-size:6rem; color:#fff; text-shadow:0 6px 24px rgba(0,0,0,.9);
  }
  
  /* Overlay */
  .vmodal{
	position:fixed; inset:0; z-index:9999;
	display:none; align-items:center; justify-content:center;
	background:rgba(0,0,0,.82);
	padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
			 max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  }
  .vmodal.is-open{ display:flex; }
  .vmodal__close{
	position:absolute; top: max(12px, env(safe-area-inset-top));
	right:max(12px, env(safe-area-inset-right));
	border:0; background:rgba(255,255,255,.12); color:#fff;
	padding:10px 18px; border-radius:999px; cursor:pointer;
  }
   
  /* Stage hält 9:16, aber skaliert in jedes Display */
  .vmodal__stage{
	width:min(92vw, 420px);              /* max Breite */
	max-height:92vh;                      /* max Höhe */
	aspect-ratio: 9 / 16;                 /* Portrait */
	display:flex; align-items:center; justify-content:center;
  }
  .vmodal__video{
	width:100%; height:100%;
	object-fit:contain;                   /* nix abschneiden */
	border-radius:18px;
	background:#000;
  }

/* ====================================
   360° PANORAMA MODAL (Pannellum)
==================================== */
.panorama-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	background: rgba(0, 0, 0, 0.9);
	padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
	         max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}
.panorama-modal.is-open {
	display: block;
}
.panorama-modal-close {
	position: absolute;
	top: max(12px, env(safe-area-inset-top));
	right: max(12px, env(safe-area-inset-right));
	z-index: 10;
	border: 0;
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	padding: 10px 16px;
	border-radius: 999px;
	cursor: pointer;
}
#pannellum-container {
	width: 100%;
	height: calc(100vh - 2 * max(16px, env(safe-area-inset-top)));
	min-height: 400px;
}
.gallery-panorama-trigger {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	background: transparent;
	cursor: pointer;
	position: relative;
}
.gallery-panorama-badge {
	position: absolute;
	bottom: 8px;
	right: 8px;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	font-size: 0.75rem;
	padding: 4px 8px;
	border-radius: 4px;
}

/* ====================================
   GALLERY MASONRY
==================================== */
.gallery-masonry {
	margin: 3rem 0;
}

.gallery-item {
	width: calc(33.333% - 16px);
	margin-bottom: 24px;
	overflow: hidden;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s ease;
}

.gallery-item.portrait {
	width: calc(15% - 16px);
}

@media (max-width: 1199.98px) {
	.gallery-item,
	.gallery-item.portrait {
		width: calc(50% - 12px);
	}
}

@media (max-width: 768px) {
	.gallery-item,
	.gallery-item.portrait {
		width: 100%;
	}
}

.gallery-item:hover {
	transform: translateY(-8px) scale(1.02);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}

.gallery-item img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.gallery-item:hover img {
	transform: scale(1.05);
}

.gallery-item a {
	display: block;
	text-decoration: none;
	line-height: 0;
}

.projekt-image-row {
	display: flex;
	gap: .5rem;          /* Abstand zwischen den Bildern */
	justify-content: space-between; /* oder flex-start */
	flex-wrap: nowrap;    /* nur eine Reihe, wenn Platz reicht */
}

/* Alle Bilder: gleiche Höhe, Breite nach Seitenverhältnis */
.projekt-image-row > img {
	height: 350px;        /* gewünschte einheitliche Höhe */
	width: auto;          /* Breite ergibt sich aus dem Bildverhältnis */
	object-fit: cover;    /* falls Bilder größer sind, schön zuschneiden */
	display: block;
}

/* .mobile-1200 {
	display: none;
} */
/* Desktop: 3 Spalten */
@media (min-width: 1200px) {
	.gallery-item {
		margin-bottom: 24px;
	}
}

/* Tablet: 2 Spalten */
@media (min-width: 768px) and (max-width: 1199.98px) {
	.gallery-item {
		margin-bottom: 24px;
	}
}

/* Mobile: 1 Spalte */
	@media (max-width: 767.98px) {
		.gallery-item {
			margin-bottom: 20px;
		}
		
		.gallery-masonry {
			margin: 2rem 0;
		}
	}
	
	/* ====================================
	   LEAFLET MAP
	==================================== */
	#map {
		margin: 2rem 0;
	}
	.map-container {
		height: 500px; 
		width: 100%; 
		overflow: hidden;
		border-radius: 0;
		text-align: center;
		background: url(../images/map-hide2.jpg) no-repeat center center;
	}
	.map-container p {
		font-size: 1.5rem;
		margin-top: 3rem;	
	}
	/* Karte: Fallback-Text mit Klick öffnet Tarte-Au-Citron */
	.leafletmap-consent-msg {
		font-size: 1rem;
		margin: 1rem 0;
	}
	.leafletmap-consent-btn {
		background: none;
		border: none;
		padding: 0;
		font: inherit;
		color: inherit;
		text-decoration: underline;
		cursor: pointer;
	}
	.leafletmap-consent-btn:hover {
		text-decoration: none;
	}
	.leafletmap-consent-link {
		text-decoration: underline;
		cursor: pointer;
		color: inherit;
	}
	.leafletmap-consent-link:hover {
		text-decoration: none;
	}
	
	@media (max-width: 768px) {
		#map {
			height: 400px !important;
		}
	}
	
	.btn-bubble {
		width: 100px;
		height: 100px;
		font-size: 12px;
	}
	
	/* ====================================
	   ACCESSIBILITY / BARRIEREFREIHEIT
	==================================== */
	
	/* Skip-Link */
	.skip-link {
		position: absolute;
		top: -40px;
		left: 0;
		background: var(--color-primary);
		color: var(--color-white);
		padding: 8px 16px;
		text-decoration: none;
		z-index: 10000;
		transition: top 0.3s;
	}
	
	.skip-link:focus {
		top: 0;
	}
	
	/* Visually Hidden (für Screen Reader) */
	.visually-hidden {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border-width: 0;
	}
	
	/* Visually Hidden Focusable (sichtbar bei Fokus) */
	.visually-hidden-focusable:focus {
		position: static;
		width: auto;
		height: auto;
		padding: 8px 16px;
		margin: 0;
		overflow: visible;
		clip: auto;
		white-space: normal;
	}
	
	/* Modal Open (Body scrollen verhindern) */
	body.modal-open {
		overflow: hidden;
	}
	
	/* ARIA Live Region */
	#aria-live-region {
		position: absolute;
		left: -10000px;
		width: 1px;
		height: 1px;
		overflow: hidden;
	}
	
	/* ====================================
	   NAVBAR DROPDOWN (Bootstrap 5)
	==================================== */
	.navbar-nav .dropdown {
		position: relative;
		display: flex;
		align-items: flex-end;
		text-align: right;
	}
	
	.navbar-nav .dropdown .nav-link {
		display: inline-flex;
		align-items: center;
	}
	
	/* .navbar-nav .dropdown-toggle {
		background: none;
		border: none;
		cursor: pointer;
		font-family: inherit;
		font-size: inherit;
		color: inherit;
		padding: 0;
		margin: 0;
		display: inline-flex;
		align-items: center;
		text-decoration: none;
		position: relative;
		width: auto;
		height: auto;
		line-height: 1;
	} */
	
	.navbar-nav .dropdown-toggle::after {
		content: '';
		display: inline-block;
		width: 0;
		height: 0;
		margin-left: 4px;
		border-left: 4px solid transparent;
		border-right: 4px solid transparent;
		border-top: 5px solid currentColor;
		transition: transform 0.3s ease;
		vertical-align: middle;
	}
	
	.navbar-nav .dropdown-toggle[aria-expanded="true"]::after {
		transform: rotate(180deg);
	}
	
	.navbar-nav .dropdown-menu {
		min-width: 200px;
		max-height: 70vh;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		background: var(--color-white);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
		border-radius: 4px;
		padding: 0.5rem 0;
		margin-top: 8px;
		border: none;
	}
	/* Scrollbar schmal und dezent (10+ Einträge) */
	.navbar-nav .dropdown-menu::-webkit-scrollbar {
		width: 6px;
	}
	.navbar-nav .dropdown-menu::-webkit-scrollbar-track {
		background: transparent;
	}
	.navbar-nav .dropdown-menu::-webkit-scrollbar-thumb {
		background: rgba(0, 0, 0, 0.2);
		border-radius: 3px;
	}
	
	.navbar-nav .dropdown-item {
		padding: 0.5rem 1.5rem;
		min-height: 1.75rem;
		display: flex;
		align-items: center;
		color: var(--color-dark);
		text-decoration: none;
		transition: background-color 0.2s ease, color 0.2s ease;
		font-family: var(--font-serif);
		font-size: clamp(11px, 1vw, 14px);
		text-transform: uppercase;
		letter-spacing: 1px;
	}
	.nav-link.active {
		font-weight: 600;
	}
	.dropdown-item.active, 
	.dropdown-item:active,
	.navbar-nav .dropdown-item:hover,
	.navbar-nav .dropdown-item:focus {
		background-color: #e2e2e2;
		/* color: var(--color-primary); */
	}
	/* Übersicht vom Projektlisten-Bereich absetzen (Usability bei 10+ Einträgen) */
	.navbar-nav .dropdown-item-overview {
		border-bottom: 1px solid rgba(0, 0, 0, 0.1);
		margin-bottom: 0.25rem;
		padding-bottom: 0.75rem;
	}
	
	.mb-5-extra {
		margin-bottom: 0 !important;
		padding-bottom: 7rem !important;
	}
	.mt-5-extra {
		margin-top: 0 !important;
		padding-top: 7rem !important;
	}
	
@media (max-width: 1199.98px) {
	.highlight-section li {
		padding: 0.5rem 1rem;
		width: 50%;
	}
}

@media (max-width: 1199.98px) {
	.two-col-section.reverse {
		padding: 1rem;
	}
	.two-col-section {
		padding: 1rem;
	}
	:root {
		--font-size-btn: .9rem;
	}
	.btn-info {
		padding: .3rem .25rem .2rem 1rem;
	}
	.hero-section {
		background-attachment:inherit
	}
	.settings-button {
		right: inherit;
		left: 15px;
	}	
}

@media (max-width: 768px) {
	.projekt-image-row {
		width: 100%;
		overflow-x: auto;
	}
	.section {
		position: relative;
		padding: 3rem 0;
	}
	.highlight-section li {
		padding: 0 2rem;
		width: 100%;
	}
	.ul-hex li::before {
		top: .3em;
	}
	body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid-logo {
		left: 50vw !important;
		transform: inherit !important;
	}
	/* Navbar-Höhe unter 768px reduzieren – Logo und Padding wie beim gescrollten Zustand */
	.navbar-logo {
		height: 60px;
	}
	.navbar-brand video.navbar-logo {
		height: 60px;
	}
	.navbar-custom {
		padding: 7px 0;
	}
	.scrolled .navbar-logo {
		height: 60px;
	}
	.scrolled .navbar-custom {
		padding: 7px 0;
	}
	.settings-button, .settings-button img {
        width: .8em !important;
        height: .8em !important;
		transition: 1s;;
    }
	.scrolled .settings-button {
        bottom: 10px;
    }
	.no-scroll .navbar-brand {
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	} 
	.no-scroll #toggle-settings {
		opacity: 0;
	}
}

/* ====================================
   PROJEKT NAV SWIPER (Detailseite)
==================================== */
.projekt-nav-slider-wrap {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 1rem;
	width: 100%;
	position: relative;
	padding-left: 1rem;
	padding-right: 1rem;
}
/* Pfeile vertikal auf Mitte der Slides (380px) zentrieren */
.projekt-nav-slider-wrap .swiper-button-prev,
.projekt-nav-slider-wrap .swiper-button-next {
	position: absolute;
	top: calc(380px / 2 - 30px); /* Slide-Höhe / 2 minus halbe Button-Höhe (60px) */
	margin-top: 0;
}
.projekt-nav-slider-wrap .swiper-button-prev {
	left: 0;
}
.projekt-nav-slider-wrap .swiper-button-next {
	right: 0;
	left: auto;
}
.projekt-nav-slider-wrap .projekt-nav-swiper {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 75%;
	overflow: hidden;
	padding-bottom: 2.5rem;
}
.projekt-nav-section .projekt-nav-swiper .swiper-slide {
	width: 280px;
	max-width: 100%;
	height: 380px;
}
.projekt-nav-slide-link {
	display: block;
	position: relative;
	height: 100%;
	text-decoration: none;
	color: inherit;
	border-radius: 0;
	overflow: hidden;
	background: var(--color-bg-light, #f5f5f5);
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.projekt-nav-slide-link:hover,
.projekt-nav-slide-link:focus {
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
.projekt-nav-slide-img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	background-color: #e0e0e0;
	transition: transform 0.4s ease-out;
}
.projekt-nav-slide-link:hover .projekt-nav-slide-img,
.projekt-nav-slide-link:focus .projekt-nav-slide-img {
	transform: scale(1.08);
}
.projekt-nav-slide-name {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	display: block;
	padding: 1rem 1rem 1.25rem;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	color: #fff;
	text-align: left;
	background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 70%, transparent 100%);
}
.projekt-nav-section.section-bg-dark .projekt-nav-slide-name {
	color: #fff;
}
/* Pfeile außerhalb: 1px Linie + 1px Kreis, ca. 25 % größer (60px) */
.projekt-nav-section .swiper-button-prev,
.projekt-nav-section .swiper-button-next {
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	color: #fff;
	border: 1px solid currentColor;
	border-radius: 50%;
	background: transparent !important;
	background-image: none;
	cursor: pointer;
	transition: opacity 0.2s ease, background 0.5s ease;
}
.projekt-nav-section .swiper-button-prev:hover,
.projekt-nav-section .swiper-button-next:hover {
	opacity: 0.9;
	background: rgba(0,0,0,0.2) !important;
	transition: .5s;
}
.projekt-nav-section .swiper-button-prev::after,
.projekt-nav-section .swiper-button-next::after {
	content: '';
	display: block;
	width: 22px;
	height: 22px;
	border-width: 0 0 1px 1px;
	border-style: solid;
	border-color: currentColor;
	margin: auto;
	position: absolute;
	inset: 0;
}
.projekt-nav-section .swiper-button-prev::after {
	transform: rotate(45deg) translate(2px, -2px);
}
.projekt-nav-section .swiper-button-next::after {
	transform: rotate(-135deg) translate(2px, -2px);
}
.projekt-nav-section .swiper-pagination-bullet {
	background: rgba(255,255,255,0.6);
}
.projekt-nav-section .swiper-pagination-bullet-active {
	background: #fff;
}
.projekt-nav-section h2 {
	margin-bottom: 1.5rem;
	color: #fff;
}

/* Projekt-Galerie Swiper (Thumbs) + Fancybox (Vollbild) */
.projekt-image-swiper {
	overflow: hidden;
	/* padding-bottom: 2.5rem; */
}
.projekt-image-swiper .swiper-wrapper {
	align-items: stretch;
}
/* Variable Breite pro Bild: Slide = Breite des Bildes (Höhe fix 280px), slidesPerView: 'auto' */
.projekt-image-swiper .swiper-slide {
	width: auto;
	height: 280px;
	box-sizing: border-box;
}
.projekt-image-swiper .swiper-slide a {
	display: block;
	height: 100%;
	text-decoration: none;
	overflow: hidden;
	background: var(--color-bg-light, #f5f5f5);
	line-height: 0;
	font-size: 0;
}
.projekt-image-swiper .swiper-slide img {
	display: block;
	height: 100%;
	width: auto;
	object-fit: contain;
	vertical-align: top;
	transition: transform 0.35s ease-out, filter 0.35s ease-out;
}
.projekt-image-swiper .swiper-slide a:hover img {
	transform: scale(1.05);
	filter: brightness(1.05);
}
.projekt-image-swiper .swiper-button-prev,
.projekt-image-swiper .swiper-button-next {
	color: var(--color-bg-dark);
	color: #fff;
}
.projekt-image-swiper .swiper-button-next {
	padding-right: 2rem;
}
.projekt-image-swiper .swiper-button-prev {
	padding-left: 2rem;
}
.projekt-image-swiper .swiper-pagination-bullet {
	background: rgba(0,0,0,0.3);
}
.projekt-image-swiper .swiper-pagination-bullet-active {
	background: var(--color-dark, #1a1a1a);
}

.opacity-5 {
	opacity: 0.5;
}
.opacity-1 {
	opacity: 0.1;
}
/* ====================================
   LIQUID FULLSCREEN NAV (GSAP + Bootstrap 5)
   Reveal von unten – Blob/Wave, State unabhängig von Bootstrap
==================================== */

body.navbar-mobile-preview .navbar-toggler-custom {
  display: block !important;
}

/* Fullscreen-Menüpanel – transparent, damit der Blob die „Deckung“ macht */
/* Fullscreen-Overlay – 100dvh für iPhone (Adressleiste), GPU-Layer für Safari */
body.navbar-mobile-preview .navbar-custom #navbarNav {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  z-index: 999;
  background: transparent;
  display: flex !important;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: clamp(24px, 6vh, 64px) clamp(20px, 8vw, 72px);
  visibility: hidden;
  opacity: 0;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
/* Bootstrap Collapse neutralisieren (kein height/display-Flackern) */
body.navbar-mobile-preview .navbar-custom #navbarNav.collapse,
body.navbar-mobile-preview .navbar-custom #navbarNav.collapsing {
  display: flex !important;
  height: 100dvh !important;
  transition: none !important;
  overflow: hidden;
}

/* Liquid-Layer – muss formatfüllend sein: Nav hat Padding, mit negativen Insets Viewport decken */
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid {
  position: fixed;
  top: calc(-1 * clamp(24px, 6vh, 64px));
  left: calc(-1 * clamp(20px, 8vw, 72px));
  right: calc(-1 * clamp(20px, 8vw, 72px));
  bottom: calc(-1 * clamp(24px, 6vh, 64px));
  width: auto;
  height: auto;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
/* Hintergrund: von links nach rechts reinfahren, am Ende abbremsen (ease-out) */
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  background: var(--color-nav-liquid, #fff);
  transform: translateX(-100%);
  transition: transform 0.75s cubic-bezier(0.25, 0.1, 0.25, 1);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid.nav-liquid-reveal .nav-liquid-bg {
  transform: translateX(0);
}

/* Logo im Overlay – CSS-Einblendung, GPU-Layer für Safari */
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid-logo {
  position: absolute;
  top: 33%;
  left: 20vw;
  transform: translate(-50%, 0) translateZ(0);
  z-index: 2;
  pointer-events: none;
  max-width: min(55vw, 280px);
  width: auto;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid-logo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Nav-Links und CTA über dem Blob – GPU-Hint für Opacity-Transition (Safari) */
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-col-nav,
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-nav,
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-cta,
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-meta {
  position: relative;
  z-index: 3;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Einblenden per CSS (flüssiger als GSAP-Stagger in Safari): Klassen setzt GSAP zum richtigen Zeitpunkt */
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-nav .nav-link,
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-cta,
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-meta {
  opacity: 0;
  transition: opacity 0.4s ease;
}
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav .nav-link {
  opacity: 1;
}
/* Stagger: Nav-Items blenden nacheinander ein (von oben nach unten) */
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(1) .nav-link { transition-delay: 0s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(2) .nav-link { transition-delay: 0.05s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(3) .nav-link { transition-delay: 0.1s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(4) .nav-link { transition-delay: 0.15s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(5) .nav-link { transition-delay: 0.2s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(6) .nav-link { transition-delay: 0.25s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(7) .nav-link { transition-delay: 0.3s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(8) .nav-link { transition-delay: 0.35s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(n+9) .nav-link { transition-delay: 0.4s; }
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-meta .navbar-cta,
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-meta .nav-meta {
  opacity: 1;
}
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-liquid-logo {
  opacity: 0;
  transition: opacity 0.5s ease;
}
body.navbar-mobile-preview .navbar-custom #navbarNav.nav-reveal-logo .nav-liquid-logo {
  opacity: 1;
}

/* Scroll lock: html + body sperren, damit der Hintergrund nicht scrollt */
html.no-scroll,
body.no-scroll {
  overflow: hidden !important;
  height: 100%;
  overscroll-behavior: none;
}
body.no-scroll {
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
}

/* ------------------------------------
   Layout im Overlay (navbar-center, CTA, Links)
------------------------------------ */
body.navbar-mobile-preview .navbar-center {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
body.navbar-mobile-preview .navbar-cta {
  position: static;
  transform: none;
  margin-top: 1rem;
}
body.navbar-mobile-preview .navbar-custom #navbarNav .nav-link {
  padding: 0.5rem 0.6rem;
  font-size: 1rem;
  letter-spacing: 0.5px;
  text-decoration: none;
  color: inherit;
}
body.navbar-mobile-preview .navbar-custom #navbarNav .navbar-nav .nav-link {
  color: #1a1a1a;
}
body.navbar-mobile-preview .navbar-cta .btn {
  font-size: 1rem;
  padding: 0.3rem 0.6rem;
}

/* Hamburger & Brand über Overlay */
body.navbar-mobile-preview .navbar-custom .navbar-toggler-custom,
body.navbar-mobile-preview .navbar-custom .navbar-brand {
  position: relative;
  z-index: 9999;
}

/* Unter 1200px: Liquid-Overlay auch OHNE ?nav=mobile (normale Mobile-Ansicht) */
@media (max-width: 1199.98px) {
  body .navbar-custom #navbarNav {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    min-height: 100dvh;
    z-index: 999;
    background: transparent;
    display: flex !important;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: clamp(24px, 6vh, 64px) clamp(20px, 8vw, 72px);
    visibility: hidden;
    opacity: 0;
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  body .navbar-custom #navbarNav.collapse,
  body .navbar-custom #navbarNav.collapsing {
    display: flex !important;
    height: 100dvh !important;
    transition: none !important;
    overflow: hidden;
  }
  body .navbar-custom #navbarNav .nav-liquid {
    position: fixed;
    top: calc(-1 * clamp(24px, 6vh, 64px));
    left: calc(-1 * clamp(20px, 8vw, 72px));
    right: calc(-1 * clamp(20px, 8vw, 72px));
    bottom: calc(-1 * clamp(24px, 6vh, 64px));
    width: auto;
    height: auto;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
  }
  body .navbar-custom #navbarNav .nav-liquid-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    background: var(--color-nav-liquid, #fff);
    transform: translateX(-100%);
    transition: transform 0.75s cubic-bezier(0.25, 0.1, 0.25, 1);
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  body .navbar-custom #navbarNav .nav-liquid.nav-liquid-reveal .nav-liquid-bg {
    transform: translateX(0);
  }
  body .navbar-custom #navbarNav .nav-liquid-logo {
    position: absolute;
    top: 33%;
    left: 20vw;
    transform: translate(-50%, 0) translateZ(0);
    z-index: 2;
    pointer-events: none;
    max-width: min(55vw, 280px);
    width: auto;
    height: auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  body .navbar-custom #navbarNav .nav-liquid-logo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  body .navbar-custom #navbarNav .navbar-col-nav,
  body .navbar-custom #navbarNav .navbar-nav,
  body .navbar-custom #navbarNav .navbar-cta,
  body .navbar-custom #navbarNav .nav-meta {
    position: relative;
    z-index: 3;
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  body .navbar-custom #navbarNav .navbar-nav .nav-link,
  body .navbar-custom #navbarNav .navbar-cta,
  body .navbar-custom #navbarNav .nav-meta {
    opacity: 0;
    transition: opacity 0.4s ease;
  }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav .nav-link {
    opacity: 1;
  }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(1) .nav-link { transition-delay: 0s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(2) .nav-link { transition-delay: 0.05s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(3) .nav-link { transition-delay: 0.1s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(4) .nav-link { transition-delay: 0.15s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(5) .nav-link { transition-delay: 0.2s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(6) .nav-link { transition-delay: 0.25s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(7) .nav-link { transition-delay: 0.3s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(8) .nav-link { transition-delay: 0.35s; }
  body .navbar-custom #navbarNav.nav-reveal-links .navbar-nav > .nav-item:nth-child(n+9) .nav-link { transition-delay: 0.4s; }
  body .navbar-custom #navbarNav.nav-reveal-meta .navbar-cta,
  body .navbar-custom #navbarNav.nav-reveal-meta .nav-meta {
    opacity: 1;
  }
  body .navbar-custom #navbarNav .nav-liquid-logo {
    opacity: 0;
    transition: opacity 0.5s ease;
  }
  body .navbar-custom #navbarNav.nav-reveal-logo .nav-liquid-logo {
    opacity: 1;
  }
  body .navbar-center {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  body .navbar-cta {
    position: static;
    transform: none;
    margin-top: 1rem;
  }
  body .navbar-custom #navbarNav .nav-link {
    padding: 0.5rem 0.6rem;
    font-size: 1rem;
    letter-spacing: 0.5px;
    text-decoration: none;
    color: inherit;
  }
  body .navbar-custom #navbarNav .navbar-nav .nav-link {
    color: #1a1a1a;
  }
  body .navbar-cta .btn {
    font-size: 1rem;
    padding: 0.3rem 0.6rem;
  }
  body .navbar-custom .navbar-toggler-custom,
  body .navbar-custom .navbar-brand {
    position: relative;
    z-index: 9999;
  }
  .navbar-lang-switch {
    font-size: 1rem;
  }
}

/* Standard mobile nav-link nur außerhalb Preview (normale Mobile-Ansicht) – Farben wie oben konsistent */
body:not(.navbar-mobile-preview) .navbar-collapse .nav-link {
  display: block;
  padding: 1rem 0 0;
  font-size: .8rem;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  color: var(--color-dark);
}

.pb-4.pb-0 {
	padding-bottom: 0 !important;
}
.pt-2.pt-0 {
	padding-top: 0 !important;
}

/* ====================================
   HORIZONTAL SCROLL – Portfolio (#projekte)
   Nur aktiv wenn #projekte die Klasse horizontal-scroll-section hat.
==================================== */
#projekte.horizontal-scroll-section {
	overflow: hidden;
	position: relative;
	z-index: 2;
	padding-top: 5rem !important;
	margin-top: 0;
	margin-bottom: 0;
	min-height: 80vh;
}
#projekte.horizontal-scroll-section .col-hscroll-bookend {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 80vh;
	padding: 2rem;
	box-sizing: border-box;
}
#projekte.horizontal-scroll-section .col-hscroll-bookend .h-scroll-bookend__text {
	font-size: clamp(36px, 20vw, 10rem);
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	color: inherit;
	opacity: .3;
    transform: rotate(90deg);
    line-height: .8;
	color: transparent;                 /* Innenfarbe */
  -webkit-text-stroke: 1px var(--color-white);
}
#projekte.horizontal-scroll-section .horizontal-scroll-pin { width: 100%; min-height: 90vh; height: 90vh; padding-top: 30px; box-sizing: border-box; }
#projekte.horizontal-scroll-section .horizontal-scroll-track { overflow: hidden; width: 100%; height: 100%; }
#projekte.horizontal-scroll-section .horizontal-scroll-inner {
	width: max-content;
	padding: 0 1.5rem;
	will-change: transform;
	transform: translateZ(0);
	backface-visibility: hidden;
}
#projekte.horizontal-scroll-section .horizontal-scroll-row { display: flex; flex-wrap: nowrap; gap: 0; width: max-content; margin: 0; align-items: stretch; }
#projekte.horizontal-scroll-section .col-hscroll { flex: 0 0 auto; width: min(420px, 85vw); min-width: 0; }
#projekte.horizontal-scroll-section .projekt-card { margin-bottom: 0; margin-top: 30px; min-height: 80vh; height: 80vh; display: flex; flex-direction: column; position: relative; border: none !important; }
#projekte.horizontal-scroll-section .projekt-card .projekt-image { flex: 0 0 auto; width: 100%; height: 60%; overflow: hidden; }
#projekte.horizontal-scroll-section .projekt-card .projekt-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
#projekte.horizontal-scroll-section .projekt-card .projekt-content { flex-shrink: 0; }
#projekte.horizontal-scroll-section .btn.btn-bubble {
	position: absolute;
	padding: 10px;
	top: 20px;
	right: 20px;
	z-index: 1;
	box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.25) !important;
}
#projekte.horizontal-scroll-section .project-grid-title { margin-top: 60px; }
#projekte.horizontal-scroll-section .projekt-content { padding: 0rem 1rem; }
#projekte.horizontal-scroll-section .project-grid-title { margin-top: 2rem; }
@media screen and (max-width: 768px) {
	#projekte.horizontal-scroll-section .col-hscroll {
		flex: 0 0 auto;
		width: min(400px, 85vw);
		min-width: 0;
		max-width: min(400px, 85vw);
	}
	#projekte.horizontal-scroll-section .projekt-card {
		margin-bottom: 0;
		margin-top: 0;
		min-height: 76vh;
		height: 76vh;
		position: relative;
	}
	#projekte.horizontal-scroll-section .projekt-image {
		top: 0;
		left: 0;
		position: absolute;
		background: #000;
		height: 100%;
		z-index: -1;
	}
	#projekte.horizontal-scroll-section .projekt-card .projekt-image { height: 100%; }
	#projekte.horizontal-scroll-section .projekt-card img { opacity: .5; }
	#projekte.horizontal-scroll-section .btn-bubble { width: 80px; height: 80px; font-size: 12px; }
	#projekte.horizontal-scroll-section .btn.btn-bubble { top: 10px; right: 10px; }
	#projekte.horizontal-scroll-section .horizontal-scroll-pin { padding-top: 10px; }
	#projekte.horizontal-scroll-section .project-grid-title { margin-top: 7rem; }
}