@charset "utf-8";
/* CSS Document */



:root {
	--black: #000000;
	--grey: #898b8e;
	--darkblue: #00506b;
	--midblue: #598398;
	--paleblue: #acc1cc;
	--mint: #42d093;
	--darkermint: #02c485;
	--palemint: #c3ded0;
	--pink: #ff40bb;
	--cyan: #00ccff;
	--white: #ffffff; 
}

*, :after, :before {
    box-sizing: border-box;
}
html {
	-webkit-text-size-adjust: 100%;
}
body, html {
	width: 100%;
	height: 100%;	
	overflow-x: hidden;
	margin: 0;
	padding: 0;
	line-height: 0;
}

body {
	background: var(--white);
	font-family: 'Inter', 'Arial', sans-serif;	
    -webkit-font-smoothing: antialiased;
	font-size: 24px;
	font-weight: 400;
	line-height: 1.4em;
}

h1 {
	font-weight: 400;
    font-size: 160px;
    line-height: 1em;
    opacity: 0.6;
}
@media (max-width: 1200px) {
	h1 { opacity: 0.7; }
}
@media (max-width: 992px) {
	h1 { opacity: 0.85; }
}
@media (max-height: 600px) {
	h1 { font-size: 7vw; opacity: 1; }
}
h2 {
	font-size: 60px;
    font-weight: 700;
    color: var(--mint);
	margin-bottom: 1.2em;
}
h2 span {
	font-size: 22px;
    display: block;
    margin-top: 45px;
    font-weight: 500;
    margin-bottom: -10px;
}
@media (max-width: 1400px) {
	h2 { font-size: 4.2vw; }
	h2 span { font-size: 20px; margin-top: 3.3vw; }	
}
@media (max-width: 992px) {
	h2 { font-size: 44px; }
	h2 span { font-size: 20px; margin-top: 3.3vw; }	
}
@media (max-height: 767px) {
	h2 { font-size: 30px; line-height: 1.2em; }
}

p {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.6em;
}
@media (max-width: 1200px) {
	p { font-size: 18px; }	
}

img {
	vertical-align: middle;
    display: inline-block;
}

a {
	text-decoration: none;
}
.standardtext {
	font-size: 18px;
    color: var(--black);
    line-height: 1.2em;
    text-align: left;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    font-weight: normal;
}



/* 	HEADER ---------------------------------------------------------------------------------------------------- */

#header {
	background: rgba(0,0,0,0.1);
	border-bottom: rgba(0,0,0,0.3) 1px solid;
	height: 100px;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	line-height: initial;
}
.headercontent {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: nowrap;
	align-content: center;
	align-items: center;
}
#header .logos {
	width: 500px;
	padding: 10px 0 10px 10px;
}
#header .logos img {
	display: inline;
	margin-right: 10px;
	height: auto;
}
#header .logos img.logodeutzerhafenkoeln {
	width: 227px;
}
#header .logos img.logomodernestadt {
	width: 190px;
	margin-left: 20px;
}
#header #hamburger {
	display: none;	
}
#header .pagelinks {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
#header .pagelinks ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
#header .pagelinks ul li {
	display: inline-block;
}
#header .pagelinks ul li a {
	font-size: 17px;
	font-weight: 500;
	padding: 5px 15px;
	background: var(--mint);
	color: var(--white);
}
#header .pagelinks ul li.second {
	display: none;
}

#header .infolink a {
	font-size: 17px;
	font-weight: 500;
	background: var(--mint);
	color: var(--white);
    text-decoration: none;
    text-transform: uppercase;
    border-radius: 100px;
	transition: all .2s ease-in-out;
	line-height: 24px;
    padding: 5px 15px;
    display: inline-block;
	margin-right: 20px;
}
#header .infolink a em {
	font-style: normal;
}

@media (hover: hover) { #header .pagelinks a:hover, #header .infolink a:hover { background: var(--black); } }



body.startseite #header .pagelinks li:nth-of-type(1) a,
body.panotour #header .pagelinks li:nth-of-type(2) a,
body.muehlen #header .pagelinks li:nth-of-type(3) a,
body.baufeldersued #header .pagelinks li:nth-of-type(4) a,
body.impressum #header .pagelinks li:nth-of-type(5) a,
body.datenschutz #header .pagelinks li:nth-of-type(6) a,
body.info #header .infolink a {
	background: var(--white);
	color: var(--black);
	cursor: default;
}
body.startseite #header .pagelinks ul {
	display: none;
}

@media (max-width: 1920px) {
	#header .logos img.logodeutzerhafenkoeln { width: 190px; margin-left: 8px; }	
	#header .logos img.logomodernestadt { width: 160px; }
}
@media (max-width: 1600px) {
	#header { height: 80px; }
	#header .logos img.logodeutzerhafenkoeln { width: 170px; margin-left: 1px; }	
	#header .logos img.logomodernestadt { width: 144px; margin-left: 10px; }
	#header .pagelinks ul li a { font-size: 16px; }
}
@media (max-width: 1400px) {
	#header { height: 70px; }
	#header .logos { width: 400px; }
	#header .logos img.logodeutzerhafenkoeln { width: 160px; margin-left: -2px; }	
	#header .logos img.logomodernestadt { width: 135px; }
}
@media (max-width: 1200px) {
	#header .logos { width: 360px; }
	#header .pagelinks ul { font-size: 0; }
	#header .pagelinks ul li a { font-size: 15px; }
}
@media (max-width: 992px) and (orientation: landscape), (max-width: 576px) {
	#header { height: 60px; }
	#header .logos { width: calc(100% - 40px); }
	#header .logos img.logodeutzerhafenkoeln { width: 130px; margin-right: 0 }
	#header .logos img.logomodernestadt { width: 100px; margin-left: 5px; }
}
@media (max-width: 768px) {
	#header .infolink { padding-right: 10px; }
}
@media (max-width: 576px) {
	#header .pagelinks ul { padding-right: 0; }
	#header .infolink a { text-transform: lowercase; font-size: 24px; line-height: 30px; font-weight: 600; width: 40px; height: 40px; text-align: center; margin-right: 0; }
	#header .infolink a em { display: none; }
}
@media (max-height: 440px) {
	#header .pagelinks ul { padding-right: 0; top: 60px !important; }
	#header .pagelinks ul li a { padding: 8px 24px !important; }
	#header .pagelinks ul li.second a { padding: 3px 24px !important; }
	#header .infolink a { text-transform: lowercase; font-size: 24px; line-height: 30px; font-weight: 600; width: 40px; height: 40px; text-align: center; margin-right: 0; }
	#header .infolink a em { display: none; }
}


/* MOBILE NAV ----------------------------------------------------------------------------------- */

@media (max-width: 992px) {
	
	#header #hamburger {
		display: block;
		margin-top: 3px;
		margin-right: 20px;
	}
	#header #hamburger #navswitch {
		display: inline-block;
		width: 34px;
		height: 25px;
		border-top: var(--white) 3px solid;
		border-bottom: var(--white) 3px solid;
		padding: 0;
    	margin: 0;
    	background: rgba(0, 0, 0, 0);
		border-radius: 0;
		position: relative;
		text-indent: -9999px;
	}
	#header #hamburger #navswitch:hover {
    	background: rgba(0, 0, 0, 0);
	}	
	#header #hamburger #navswitch::before, #header #hamburger #navswitch::after {
		content: '';
		display: block;
		position: absolute;
		top: 8px;
		left: 0;
		width: 100%;
		height: 3px;
		background: var(--white);
		transition: all .1s ease-in-out;
		transform-origin: center;
	}
	#header #hamburger #navswitch.xicon {
		border-top: rgba(255,255,255,0) 3px solid;
		border-bottom: rgba(255,255,255,0) 3px solid;
	}
	#header #hamburger #navswitch.xicon::before { transform: rotate(-45deg); }
	#header #hamburger #navswitch.xicon::after { transform: rotate(45deg); }
	
	#header .pagelinks ul#navmenu {
		display: none;
		position: absolute;
		top: 70px;
		right: 0;
		background: var(--black);
		padding: 0;
	}
	#header .pagelinks ul#navmenu.open {
		display: block;
	}
	#header .pagelinks ul li {
		display: block;
	}
	#header .pagelinks ul li.second {
		display: block;
	}
	#header .pagelinks ul li a {
		background: rgba(0, 0, 0, 0);
		font-size: 22px;
		padding: 20px 24px;
		border-bottom: #666666 1px solid;
		border-radius: 0;
		width: 100%;
		color: var(--mint);
	}
	#header .pagelinks ul li.second a {		
		font-size: 16px;
    	padding: 5px 20px;
		border-top: #666666 1px solid;
		border-bottom: none;
	}
	body.startseite #header .pagelinks li:nth-of-type(1) a,
	body.panotour #header .pagelinks li:nth-of-type(2) a,
	body.muehlen #header .pagelinks li:nth-of-type(3) a,
	body.baufeldersued #header .pagelinks li:nth-of-type(4) a,
	body.impressum #header .pagelinks li:nth-of-type(5) a,
	body.datenschutz #header .pagelinks li:nth-of-type(6) a {
		background: rgba(0,0,0,0);
		color: var(--white);
	}
	
}
@media (max-width: 576px) {	
	#header #hamburger { margin-right: 10px; }
	#header .pagelinks ul#navmenu { top: 60px; }
	#header .pagelinks ul li a { font-size: 20px; padding: 16px 20px; }
}
@media (max-width: 380px) {	
	#header #hamburger a { width: 20px; }
}



/* PAGE CONTENT ----------------------------------------------------------------------------------- */

#pagecontent {	
	line-height: 0;
	/*
	height: calc(100% - 30px);
	*/
	min-height: calc(100vh - 30px);
	width: 100%;
	text-align: center;
	color: var(--white);
	font-size: 80px;
	font-weight: bold;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
.contentinner {
	line-height: initial;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	min-height: calc(100vh - 30px);
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 50px;
	text-align: left;
}
.contentinner.wide {
	max-width: 100%;
	padding: 0;
}
@media (max-width: 992px) {
	.contentinner { padding: 0 30px; }
}
@media (max-width: 767px) {
	.contentinner { padding: 0 10px; }
}
/*
@media (max-width: 992px) and (orientation: landscape) {
	#pagecontent { min-height: calc(100vh - 80px); }
	.contentinner { min-height: calc(100vh - 80px); }
}
*/




/* INFOTABLE ----------------------------------------------------------------------------------------------- */

.infotable {
	margin-bottom: 50px;
}
.infotable p {
	font-size: 24px;
    font-weight: 500;
    margin: 0;
    padding: 5px 0;
    border-top: var(--mint) 1px solid;
    color: var(--white);
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    flex-direction: row;
    white-space: nowrap;
	width: 100%;
}
.infotable p:nth-last-of-type(1) {
    border-bottom: var(--mint) 1px solid;
}
.infotable p strong {
	font-weight: 500;
	margin-right: 20px;
}
.infotable p em {
    font-weight: 500;
	font-style: normal;
}

.infotable .footnote { 
	display: block;
    font-size: 15px;
    font-style: italic;
    margin-top: 15px;
    font-weight: 400;
    color: var(--mint);
}

@media (max-width: 1400px) {
	.infotable p { font-size: 22px; }
}
@media (max-width: 576px) {
	.infotable { margin-bottom: 30px; }
	.infotable p { font-size: 18px; }
}
@media (max-width: 400px) {
	.infotable { margin-bottom: 20px; }
	.infotable p { font-size: 16px; }
	.infotable .footnote { font-size: 13px; margin-top: 10px; }
}
@media (max-height: 440px) {
	.infotable { margin-bottom: 10px; }
}



/* INFOLINK (bottom right) --------------------------------------------------------------------------------------- */

#infolink {
	position: fixed;
	right: 20px;
	bottom: 20px;
display: none;
}
#infolink a {
	display: block;
	width: 100px;
	height: 100px;
	border-radius: 100%;
	font-size: 50px;
	text-align: center;
	background-image: url(../img/Icon_DHP_Info.png);
	background-repeat: no-repeat;
	background-size: 100%;
	background-position: 50% 50%;
	background-color: transparent;
	transition: all .2s ease-in-out;
}
@media (hover: hover) {
	#infolink a:hover { background-color: var(--mint); }
}
@media (max-width: 1800px) {
	#infolink a { width: 80px; height: 80px; }
}
@media (max-width: 1200px) {
	#infolink a { width: 70px; height: 70px; }
}




/* STARTSEITE --------------------------------------------------------------------------------------------------- */


body.startseite {
	background-image: url(../img/VideoStills_DeutzerHafen_01.webp);
	background-size: cover;
	background-position: 50% 50%;
}

@media (max-width: 1600px) {
	body.startseite h1 { font-size: 10vw; margin-top: 0; margin-bottom: 5vw; }
}
@media (max-width: 768px) {
	body.startseite h1 { font-size: 12vw; opacity: 1; }
}
@media (max-width: 576px) {
	body.startseite h1 { font-size: 15vw; }
}
@media (max-height: 600px) and (orientation: landscape) {
	body.startseite h1 { font-size: 6vw; opacity: 1; margin-bottom: 5vh; }
}

.backgroundvideo {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	line-height: 0;
	z-index: -1;
}
.backgroundvideo video {
	width: 100%;
    height: 100%;
    object-fit: cover;
	object-position: 50% 50%;
}

.backgroundslides {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--black);
	z-index: -1;
}
.backgroundslides div {
	width: 100%;
	height: 100%;
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: opacity 2s ease-in-out;
}
.backgroundslides div.show {
	opacity: 1;
}
.backgroundslides div.hide {
	height: 0;
}
.backgroundslides div:nth-of-type(1) {
	opacity: 1;
}
.backgroundslides img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.startseite .videolink {
	margin-top: -5px;
	height: 0;
}
body.startseite .videolink a {
	text-transform: uppercase;
	padding: 20px 40px;
	color: var(--mint);
	font-weight: 500;
	transition: all .2s ease-in-out;
}
@media (hover: hover) {
	body.startseite .videolink a:hover { color: var(--white); background: var(--mint); }
}

@media (max-width: 992px) {
	body.startseite .videolink { margin-top: -10px; }
	body.startseite .videolink a { font-size: 22px; padding: 15px 30px; }
}
@media (max-width: 767px) {
	body.startseite .videolink { margin-top: -20px; }
	body.startseite .videolink a { font-size: 19px; padding: 10px 20px; margin: 0px -10px 0 0; }
}
@media (max-width: 552px), (max-height: 440px) {
	body.startseite .videolink { margin-top: -35px; }
	body.startseite .videolink a { font-size: 20px; }
}




/* PANOTOUR --------------------------------------------------------------------------------------------------- */

#panotour {
	width: 100%;
	height: calc(100vh - 30px);
	border: 0;
}
@media (max-width: 992px) and (orientation: landscape) {
	body.panotour #pagecontent { height: calc(100vh - 80px); min-height: calc(100vh - 80px); justify-content: flex-start; }
	body.panotour .contentinner { height: calc(100vh - 80px); min-height: calc(100vh - 80px); justify-content: flex-start; }
	#panotour { height: calc(100vh - 80px); min-height: calc(100vh - 80px); }
	body.panotour #footer { height: 80px; }
}
@media (orientation: portrait) {
	body.panotour #pagecontent { height: calc(100vh - 100px); min-height: calc(100vh - 100px); justify-content: flex-start; }
	body.panotour .contentinner { height: calc(100vh - 100px); min-height: calc(100vh - 100px); justify-content: flex-start; }
	#panotour { height: calc(100vh - 100px); min-height: calc(100vh - 100px); }
	body.panotour #footer { height: 100px; }
}





/* FULL SCREEN IMAGE WITH TRIGGER SPOTS FOR OVERLAYS ---------------------------------------------------------- */

.mainimagecontainer {
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	z-index: 0;
	background: #333333;
}
.mainimage {
	position: absolute;
	width: auto;
	height: auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.mainimage img {
	object-fit: cover;
}
.mainimage.plain {
	width: 100%;
	height: 100%;
}
.mainimage.plain img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}
.mainimage .triggeroverlay {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

.triggerspot {
	position: absolute;
	transform: translate(-50%, -50%);
	cursor: pointer;
}
.triggerspot > p {
	font-size: 30px;
	color: var(--darkermint);
	font-weight: 500;
	margin: 0;
	transition: all .2s ease-in-out;
	padding: 15px 30px;
	background: var(--white);
	border-radius: 100px;
	position: relative;
    z-index: 5;
}
.triggerspot:hover > p {
	background: var(--black);
}
.triggerspot > p::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translate(-50%, -1px);
	border: transparent 20px solid;
	border-top: var(--white) 40px solid;
	transition: all .2s ease-in-out;
}
.triggerspot:hover > p::after {
	border-top: var(--black) 40px solid;
}

@media (max-aspect-ratio: 1/1) {
	.mainimage img { width: 100vw !important ; height: auto !important; }
}
@media (max-aspect-ratio: 1/1) and (max-width: 576px) {
	.mainimage { top: 60px !important; transform: translateX(-50%) !important; }
}



/* INFOSCREEN OVERLAYS ---------------------------------------------------------------------------------------- */

.infoscreen {
	opacity: 0;
	position: fixed;
	top: 0;
	left: -200vw;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
	transition: opacity .5s ease-in-out, left 0s linear;
	overflow: hidden;
	z-index: 99;
	text-align: left;
	display: flex;    
	flex-wrap: nowrap;
    flex-direction: row;
    align-items: center;
	padding: 100px;
}
.infoscreen.display {
	opacity: 1;
	left: 0;
}
.infoscreen .infotext {
	width: 100%;
	margin-left: 3vw;
}

@media (max-width: 1600px) {
	.infoscreen { padding: 5vw; }
}
@media (max-width: 992px) and (orientation: landscape) {
	.infotext p { font-size: 16px; }
}
@media (orientation: portrait) {
	.infoscreen { flex-direction: column; }	
	.infoscreen .infotext { margin-left: 0; }	
}
@media (max-width: 576px) {
	.infotext p { font-size: 18px; }
}
@media (max-width: 400px) {
	.infotext p { font-size: 16px; }
}
@media (max-height: 440px) {
	.infotext p { font-size: 16px; line-height: 1.2em; }
}






/* Baufeld 05: shared thumbnail strip (small + neat) */
.bf05-thumbs {
	margin-top: 10px;
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 8px;
}
.bf05-thumbs button {
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	border-radius: 8px;
	overflow: hidden;
	outline: 0;
}
.bf05-thumbs img {
	width: 100%;
	display: block;
	aspect-ratio: 1.4 / 1; /* smaller than mockups */
	object-fit: cover;
}
.bf05-thumbs button.active { box-shadow: 0 0 0 3px var(--mint); }
.bf05-thumbs button:focus-visible { box-shadow: 0 0 0 3px var(--mint); }

/* Responsive tweak so thumbs don’t dominate on narrow layouts */
@media (max-width: 992px) {
	.bf05-thumbs { grid-template-columns: repeat(4, 1fr); }
}


/* DIE MÜHLEN --------------------------------------------------------------------------------------------------- */


/* image is more landscape than screen - fit to height */
@media (max-aspect-ratio: 2560 / 1925) { /* replace ratio with actual main image pixel dimensions (w/h) */
	body.muehlen .mainimage img { height: 100vh; width: calc(100vh * calc(2560 / 1925)); }
}
/* image is more portrait than screen - fit to width */
@media (min-aspect-ratio: 2560 / 1925) { /* replace ratio with actual main image pixel dimensions (w/h) */	
	body.muehlen .mainimage img { width: 100vw; height: calc(100vw / calc(2560 / 1925)); }
}
:root {
	--inverseratio: 1600/1600; /* height/width - adjust as per actual slider image size */
}

body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: calc(50% - 30vh); }
body.muehlen #triggerspot1 { left: 25%; }
body.muehlen #triggerspot2 { left: 75%; }

@media (max-width: 1400px) and (min-aspect-ratio: 3/2) {
	body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: calc(calc(50% - 50vh) + 120px); }
}
@media (max-width: 992px) and (min-aspect-ratio: 3/2) {
	body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: calc(calc(50% - 50vh) + 100px); }
}
@media (max-width: 1200px) {
	body.muehlen .triggerspot > p { font-size: 26px; }
}
@media (max-width: 992px) {
	body.muehlen .triggerspot > p { font-size: 24px; padding: 10px 20px; }
	body.muehlen .triggerspot > p::after { border-width: 15px; border-top-width: 30px; }
}
@media (max-width: 767px) {
	body.muehlen .triggerspot > p { font-size: 22px; padding: 6px 15px; }
	body.muehlen .triggerspot > p::after { border-width: 10px; border-top-width: 20px; }
}

@media (max-width: 992px) and (max-aspect-ratio: 1/1) {
	body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: 80px; }
}
@media (max-width: 767px) and (max-aspect-ratio: 1/1) {
	body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: 60px; }
}
@media (max-width: 576px) and (max-aspect-ratio: 1/1) {
	body.muehlen #triggerspot1, body.muehlen #triggerspot2 { top: 40px; }
}


/* slider */ 

body.muehlen .infoscreen .sliderimage {
	display: flex;
	flex-shrink: 0;
	position: relative;
	line-height: 0;
	width: 50vw;
	height: calc(50vw * var(--inverseratio));
}
body.muehlen .infoscreen .sliderimage img {
	width: 100%;
	height: 100%;
}
body.muehlen .infoscreen .sliderimage img:nth-of-type(2) {
	position: absolute;
	object-fit: cover;
}
body.muehlen .infoscreen .sliderimage .sliderhandle {
	position: absolute;
}
body.muehlen .infoscreen .sliderimage .sliderhandle .sliderbar {
	width: 100%;
	height: 100%;
	background: var(--white);
}
body.muehlen .infoscreen .sliderimage .sliderhandle::before,
body.muehlen .infoscreen .sliderimage .sliderhandle::after {
	content: '';
	display: block;
	position: absolute;
	width: 0;
	height: 0;
	border: 20px transparent solid;
}
body.muehlen .infoscreen .sliderimage .sliderhandle::before {
	
}
body.muehlen .infoscreen .sliderimage .sliderhandle::after {

}
body.muehlen .infoscreen .sliderimage .userhint {
	padding: 12px 25px;
	background: rgba(0,0,0,0.6);
	border-radius: 100px;
	position: absolute;
	top: calc(80% + 40px);
	left: 50%;
	transform: translateX(-50%);
}
body.muehlen .infoscreen .sliderimage .userhint p {
	color: var(--white);
	font-size: 18px;
	text-align: center;
	margin: 0;
	white-space: nowrap;
}

@media (max-width: 1800px) {
	body.muehlen .infoscreen .sliderimage .userhint p { font-size: 1.1vw; }
}
@media (max-width: 992px) and (min-aspect-ratio: 2/1) {
	body.muehlen .infoscreen .sliderimage { width: 100vh; height: calc(100vh * var(--inverseratio)); }
	
}
@media (max-width: 767px) {
	body.muehlen .infoscreen .sliderimage .userhint { display: none; }	
}
@media (orientation: portrait) {
	body.muehlen .infoscreen .sliderimage { width: calc(100vw - 40px); height: calc(calc(100vw - 40px) * var(--inverseratio)); margin-bottom: 20px; }
}
@media (max-height: 700px) and (orientation: portrait) {
	body.muehlen .infoscreen h2 { margin-top: 10px; margin-bottom: 10px; }
	body.muehlen .infoscreen .sliderimage { width: 70vw; height: calc(70vw * var(--inverseratio)); margin-bottom: 10px; align-self: flex-start; }
}






/* vertical slide */

body.muehlen.slidevertical .infoscreen .sliderimage img:nth-of-type(2) {	
	top: 0;
	left: 0;
	width: 100%;
	height: 80%;
	object-position: 50% 0;
}
body.muehlen.slidevertical .infoscreen .sliderimage .sliderhandle {
	left: 0;
	top: 80%;
	width: 100%;
	height: 20px;
	padding: 6px 0;
	cursor: row-resize;
	transform: translateY(-50%);
}
body.muehlen.slidevertical .infoscreen .sliderimage .sliderhandle::before,
body.muehlen.slidevertical .infoscreen .sliderimage .sliderhandle::after {
	left: 50%;
	transform: translateX(-50%);
}
body.muehlen.slidevertical .infoscreen .sliderimage .sliderhandle::before {
	top: -40px;
	border-bottom-color: var(--white);
}
body.muehlen.slidevertical .infoscreen .sliderimage .sliderhandle::after {
	top: 20px;
	border-top-color: var(--white);
}
body.muehlen.slidevertical .infoscreen .sliderimage .userhint {
}
body.muehlen.slidevertical .infoscreen .sliderimage .userhint p {
}


/* horizontal slide */

body.muehlen.slidehorizontal .infoscreen .sliderimage img:nth-of-type(2) {
	top: 0;
	right: 0;
	width: 85%;
	height: 100%;
	object-position: 100% 50%;
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .sliderhandle {
	top: 0;
	left: 15%;
	width: 20px;
	height: 100%;
	padding: 0 6px;
	cursor: col-resize;
	transform: translateX(-50%);
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .sliderhandle::before,
body.muehlen.slidehorizontal .infoscreen .sliderimage .sliderhandle::after {
	top: 50%;
	transform: translateY(-50%);
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .sliderhandle::before {
	left: -40px;
	border-right-color: var(--white);
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .sliderhandle::after {
	left: 20px;
	border-left-color: var(--white);
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .userhint {
}
body.muehlen.slidehorizontal .infoscreen .sliderimage .userhint p {
}


/* text & videolink */

body.muehlen .maintext {
	width: 100%;
	max-width: 1400px;
	position: absolute;
	bottom: 100px;
	left: 50%;
	transform: translateX(-50%);
	padding: 0 50px 0 50px;
	z-index: 1;
	text-align: left;
    line-height: 24px;
}
body.muehlen .maintext h2 {
	margin-bottom: 50px;
    margin-left: 5px;
}
body.muehlen .maintext p {
	text-align: left;
    max-width: 900px;
}
body.muehlen .maintext .videolink {
	display: inline-block;
	margin-bottom: 12px;
}
body.muehlen .maintext .videolink:nth-of-type(1) { z-index: 5; }
body.muehlen .maintext .videolink:nth-of-type(2) { z-index: 4; }
body.muehlen .maintext .videolink:nth-of-type(3) { z-index: 3; }
body.muehlen .maintext .videolink:nth-of-type(4) { z-index: 2; }

body.muehlen .maintext .videolink a {
    background: var(--black);
	color: var(--mint);
}
@media (hover: hover) { 
	body.muehlen .maintext .videolink a:hover { background: var(--mint); color: var(--white); }
}

@media (max-width: 1400px) {
	body.muehlen .maintext h2 { margin-bottom: 4vw; }
}
@media (max-width: 992px) {
	body.muehlen .maintext { padding-left: 15px; padding-right: 15px; font-size: 0; }
	body.muehlen .maintext .videolink { margin: 5px 10px; }
}

@media (max-width: 1400px) and (min-aspect-ratio: 3 / 2) {
	body.muehlen .maintext .videolink { margin-bottom: 5px; }
}
@media (max-height: 800px) {
	body.muehlen .maintext { bottom: 70px; }
	body.muehlen .maintext h2 { font-size: 4vw; margin-bottom: 20px; }
	body.muehlen .maintext .videolink { margin-bottom: 5px; }
}
@media (max-height: 600px) {
	body.muehlen .maintext { bottom: 20px; }
}
@media (max-width: 992px) and (orientation: landscape) {
	body.muehlen .maintext h2 { margin-bottom: 0; text-shadow: 2px 2px var(--black); }
	body.muehlen .maintext .videolink a { font-size: 20px; padding: 8px 16px; }
}



/* BAUFELDER SÜD --------------------------------------------------------------------------------------------------- */

/* image is more landscape than screen - fit to height */
@media (max-aspect-ratio: 2560 / 1925) { /* replace ratio with actual main image pixel dimensions (w/h) */
	body.baufeldersued .mainimage img { height: 100vh; width: calc(100vh * calc(2560 / 1925)); }
}
/* image is more portrait than screen - fit to width */
@media (min-aspect-ratio: 2560 / 1925) { /* replace ratio with actual main image pixel dimensions (w/h) */	
	body.baufeldersued .mainimage img { width: 100vw; height: calc(100vw / calc(2560 / 1925)); }
}

body.baufeldersued .mainimage {
	top: calc(0vh - calc(calc(100vw - 100vh) * 0.1));
	left: 50%;
	transform: translate(-50%, 0);
}
@media (max-aspect-ratio: 83/60) {
	body.baufeldersued .mainimage { top: 0; }
}

body.baufeldersued .triggerspot {
	z-index: initial;
}
body.baufeldersued .triggerspot.active {
	z-index: 5;
}
body.baufeldersued .triggerspot > p::after {
	display: none;
}
body.baufeldersued .triggerspot > p {
	background: var(--white);
	color: var(--darkermint);
	padding: 8px 20px;
	font-size: 24px;
	line-height: 1.3em;
}
body.baufeldersued .triggerspot.active > p {
	background: var(--mint);
	color: var(--white);
}
@media (hover: hover) { 
	body.baufeldersued .triggerspot:hover > p, body.baufeldersued .triggerspot.active:hover > p { background: var(--black); color: var(--darkermint); }
}

body.baufeldersued .infoscreen .closeupimg {
	display: flex;
	flex-shrink: 0;
	position: relative;
	line-height: 0;
	width: 50vw;
	height: auto;
}
body.baufeldersued .infoscreen .closeupimg img {
	width: 100%;
	height: 100%;
}

body.baufeldersued #triggerspot1 { top: 50%; left: 32%; } /* bf 06 */
body.baufeldersued #triggerspot2 { top: 39%; left: 43%; } /* bf 07 */
body.baufeldersued #triggerspot3 { top: 39%; left: 54%; } /* bf 08 */
body.baufeldersued #triggerspot4 { top: 56%; left: 89%; } /* bf 09a */
body.baufeldersued #triggerspot5 { top: 51%; left: 68%; } /* bf 09b */
body.baufeldersued #triggerspot6 { top: 40%; left: 16%; } /* bf ost3 */
body.baufeldersued #triggerspot7 { top: 65%; left: 19%; } /* bf ost3 */

@media (max-width: 767px) {
	body.baufeldersued .triggerspot > p { padding: 5px 15px; font-size: 22px; }
}
@media (max-width: 576px) {
	body.baufeldersued .triggerspot > p { padding: 3px 12px; font-size: 20px; }
}
@media (min-aspect-ratio: 2/1) {
	body.baufeldersued .mainimage { transform: translate(-50%, -5%); }
}
@media (orientation: portrait) {
	body.baufeldersued .infoscreen .closeupimg { width: calc(100vw - 40px); margin-bottom: 30px; }
}
@media (max-height: 700px) and (orientation: portrait) {
	body.baufeldersued .infoscreen .closeupimg { width: 70vw; margin-bottom: 20px; align-self: flex-start; }
}




/* INFOSEITE --------------------------------------------------------------------------------------------------- */

body.info .mainimage {
	overflow: hidden;
}
body.info .mainimage img {
	filter: blur(10px) brightness(0.7);
	transform: scale(1.05);
}
body.info .maintext {
	max-width: 1400px;
    margin: 0 auto;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-content: flex-start;
    justify-content: flex-start;
	z-index: 1;
	text-align: left;
	padding: 110px 20px 0 20px;
}
body.info .maintext h2 {
	margin-top: 70px;
	margin-bottom: 30px;
	line-height: 1em;
}

body.info .kontakt {
	display: flex;
}
body.info .kontakt div {
	display: inline-block;
	margin-right: 40px;
}
body.info .kontakt p {
	margin: 0;
	line-height: 1.4em;
}
body.info .kontakt p.spacer {
	height: 0.6em;
}
body.info .kontakt a {
	margin: 0;
	display: inline-block;
	margin-top: -20px;
	color: var(--white);
}
body.info .qrcode {
	width: 150px;
	height: auto;
	margin-top: 3px;
}

body.info .thumbnails { 
	width: 100%;
	line-height: 0;
	font-size: 0;
}
body.info .thumbnails img {
	position: relative;
    transform: none;
    height: auto;
    width: calc(12.5% - 15px);
    margin-right: 15px;
	margin-bottom: 15px; 
}
body.info .infoscreen img {
	width: 100%;
    height: 100%;
    object-fit: contain;
}

body.info .films {
	margin-bottom: 50px;
}
body.info .maintext .videolink {
	margin-bottom: 17px;
	display: inline-block;
}
body.info .maintext br.narrowscreen {
	display: none;
}
body.info .maintext .videolink a {
	color: var(--mint);
}
@media (hover: hover) {
	body.info .maintext .videolink a:hover { color: var(--white); background: var(--mint); }
}

@media (max-width: 1600px) {
	body.info .maintext { padding-top: 80px; }
	body.info .maintext h2 { margin-top: 40px; margin-bottom: 20px; }
}
@media (max-width: 1400px) {
	body.info .thumbnails { column-gap: 10px; }
	body.info .maintext .videolink a { font-size: 22px; padding: 12px 24px; }
}
@media (max-width: 1300px) {
	body.info .maintext br.narrowscreen { display: block; }
}
@media (max-width: 1200px) {
	body.info .maintext .videolink { margin-bottom: 11px; }
	body.info .qrcode { width: 130px; }
}
@media (max-width: 1024px) {
	body.info .maintext { padding-top: 60px; }
}
@media (max-width: 992px) {
	body.info .thumbnails img { width: calc(25% - 15px); }
}
@media (max-width: 576px) {
	body.info .thumbnails img { width: calc(33% - 15px); }
	body.info #header { background: var(--black); }
}
@media (max-width: 440px) {
	body.info .kontakt { flex-direction: column; row-gap: 25px; }
	body.info .thumbnails img { width: calc(50% - 15px); }
	body.info .maintext .videolink a { font-size: 19px; padding: 8px 16px; }
}
@media (max-height: 800px) {
	body.info #header { background: var(--black); }
}




/* IMPRESSUM & DATENSCHUTZ ----------------------------------------------------------------------------------- */

body.impressum #header, body.datenschutz #header {
	background: var(--black) !important;
}
body.impressum, body.datenschutz {
	padding-top: 100px;
}
body.impressum h1, body.datenschutz h1 {
	font-size: 30px !important;
	font-weight: 800 !important;
	color: var(--black) !important;
}
body.impressum h2, body.datenschutz h2 {
	font-size: 24px !important;
	font-weight: 800 !important;
	color: var(--mint) !important;
	margin-top: 50px;
    margin-bottom: 10px;
}
body.impressum #pagecontent, body.datenschutz #pagecontent {
	padding-bottom: 80px;
}
body.impressum #pagecontent p, body.datenschutz #pagecontent p {
	line-height: 1.3 !important;
}





/* FOOTER ---------------------------------------------------------------------------------------------------- */

#footer {
	line-height: initial;
    background: rgba(0, 0, 0, 1);
    height: 30px;
    width: 100%;
    position: relative;
}
.footercontent {
	display: flex;
	justify-content: space-between;
}
.footercontent p {
	line-height: 0;
	margin: 15px 10px 0 0;
	color: var(--white);
	font-size: 15px;
}
.footercontent a {
	line-height: 0;
	margin: 0;
	color: var(--white);
}
.footercontent .signature {
	visibility: hidden;
}
@media (max-width: 992px) {
	#footer .impdat { display: none; }
}
@media (max-width: 992px) and (orientation: landscape) {
	#footer { height: 80px; }
}




/* OTHER STUFF ------------------------------------------------------------------------------------------------- */

.pagelinks {	
	line-height: 24px;
	z-index: 2;
}
.pagelinks a {
	display: inline-block;
    font-size: 24px;
    color: var(--black);
    background: var(--mint);
    text-decoration: none;
    text-transform: uppercase;
    border-radius: 100px;
    padding: 20px 40px;
	margin-right: 10px;
	transition: all .2s ease-in-out;
	white-space: nowrap;
}
.pagelinks a:hover {
	color: var(--white);
	background: var(--black);
}
@media (max-width: 992px) {
	.pagelinks a { font-size: 22px; padding: 15px 30px; }
}
@media (max-width: 767px) {
	.pagelinks a { font-size: 19px; padding: 10px 20px; margin: 0px -10px 0 0; }
}
@media (max-width: 552px) {
	.pagelinks a { font-size: 20px; }
}
@media (max-height: 440px) {
	.pagelinks a { font-size: 19px; padding: 10px 20px; margin: 0px -10px 0 0; }
}



.videolink a {
	display: inline-block;
    font-size: 24px;
	font-weight: 400;
    color: var(--white);
    background: var(--black);
    text-decoration: none;
    border-radius: 100px;
    padding: 15px 30px;
	transition: all .2s ease-in-out;
	line-height: 24px;
}
.videolink a span {
	color: var(--mint);
}
@media (hover: hover) { 
	.videolink a:hover { color: var(--white); background: var(--black); }
}
@media (max-width: 992px) {
	.videolink a { font-size: 22px; padding: 15px 30px; }
}
@media (max-width: 767px) {
	.videolink a { font-size: 19px; padding: 10px 20px; margin: 0px -10px 0 0; }
}
@media (max-width: 552px) {
	.videolink a { font-size: 20px; }
}




.xbutton {
	width: 50px;
	height: 50px;
	position: absolute;
	top: 30px;
	right: 30px;
	cursor: pointer;
	z-index: 100;
}
.xbutton::before, .xbutton::after {
	content: '';
	display: block;
	background: var(--white);
	position: absolute;
	width: 100%;
	height: 3px;
	top: 50%;
	left: 50%;
	transform-origin: 50% 50%;
}
.xbutton::before {
	transform: translate(-50%, -50%) rotate(45deg);
}
.xbutton::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}
.xbutton:hover::before, .xbutton:hover::after {
	background-color: var(--mint);
	cursor: pointer;
} 

.xbutton.small {
	width: 20px;
	height: 20px;
	top: 15px;
	right: 15px;
}
.xbutton.small.left {
	right: auto;
	left: 15px;
}
.xbutton.mint::before, .xbutton.mint::after {
	background: var(--mint);
}
.xbutton.mint:hover::before, .xbutton.mint:hover::after {
	background-color: var(--darkblue);
} 
@media (max-width: 552px), (max-width: 992px) and (orientation: landscape) {
	.xbutton { width: 30px; height: 30px; top: 15px; right: 15px; }
}


.mint {
	color: var(--mint);
}


/* ===== Baufeld 05 (exact look) ====================================== */

/* Left side */
#infoscreen7 .closeupimg {
	position: relative;
	display: flex;
	flex-shrink: 0;
	width: 50vw;           /* same as other infoscreens */
	height: auto;
}
#infoscreen7 .closeupimg img { width: 100%; height: 100%; object-fit: contain; }
#infoscreen7 .bf05-caption {
	position: absolute;
	left: 22px;
	bottom: 18px;
	font-weight: 700;
	font-size: 20px;
	color: var(--white);
	text-shadow: 0 2px 8px rgba(0,0,0,.6);
}

/* Right side (heading at top already by DOM order) */
#infoscreen7 .bf05-lists ul { margin: 8px 0 16px 22px; line-height: 1.35; }
#infoscreen7 .bf05-lists li { font-size: 18px; }
@media (max-width: 1200px) { #infoscreen7 .bf05-lists li { font-size: 16px; } }

/* Very small thumbnails (two rows of four, like your screenshot) */
#infoscreen7 .bf05-thumbs {
	margin-top: 18px;
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	gap: 8px;
}
#infoscreen7 .bf05-thumbs button {
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	border-radius: 6px;
	overflow: hidden;
	outline: 0;
	height: 58px;           /* small height */
}
#infoscreen7 .bf05-thumbs img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#infoscreen7 .bf05-thumbs button.active { box-shadow: 0 0 0 2px var(--mint); }
#infoscreen7 .bf05-thumbs button:focus-visible { box-shadow: 0 0 0 2px var(--mint); }

@media (orientation: portrait) {
	#infoscreen7 .closeupimg { width: calc(100vw - 40px); margin-bottom: 10px; }
	#infoscreen7 .bf05-thumbs { grid-template-columns: repeat(4, 1fr); }
}



 #infoscreen7 .bf05-lists{
	display:grid;
	grid-template-columns:1fr 1fr;
	grid-template-rows:auto auto;   /* two rows: title + list */
	column-gap:60px;
	align-items:start;
}

/* tidy, identical spacing */
#infoscreen7 .bf05-lists p{ margin:0 0 6px 0; font-weight:700; }
#infoscreen7 .bf05-lists ul{ margin:0 0 16px 22px; }

/* LEFT column (Wohnen) */
#infoscreen7 .bf05-lists p:nth-of-type(1){ grid-column:1; grid-row:1; }
#infoscreen7 .bf05-lists ul:nth-of-type(1){ grid-column:1; grid-row:2; }

/* RIGHT column (Gesamt) */
#infoscreen7 .bf05-lists p:nth-of-type(2){ grid-column:2; grid-row:1; }
#infoscreen7 .bf05-lists ul:nth-of-type(2){ grid-column:2; grid-row:2; }

/* Stack on narrow/portrait if desired */
@media (max-width:992px), (orientation:portrait){
	#infoscreen7 .bf05-lists{ grid-template-columns:1fr; grid-template-rows:auto; }
}