/*
 * LightRay-Studio – produktives Redesign der Startseite
 * Dieses Stylesheet enthält ausschließlich die produktiven Redesign-Regeln der Startseite.
 */

:root {
	--lr-bg: #f3ece0;
	--lr-surface: #fbfaf7;
	--lr-surface-white: #ffffff;
	--lr-text: #252525;
	--lr-text-muted: #6d6a65;
	--lr-border: #d9d5ce;
	--lr-accent: #9a8156;
	--lr-dark: #202020;
}

html,
body {
	background: var(--lr-bg) !important;
	color: var(--lr-text);
}

body {
	overflow-x: hidden;
}

#wrapper {
	background: transparent !important;
}

#wrapper .container,
#topNav .container,
#footer .container {
	max-width: 1200px;
}

/* Header and navigation */
#header,
#topNav {
	background: var(--lr-surface) !important;
	color: var(--lr-text);
	box-shadow: none !important;
}

#topNav {
	border-bottom: 1px solid var(--lr-border);
}

#topNav .navbar-collapse.nav-main-collapse {
	margin-left: 0 !important;
}

#topMain > li > a,
#topMain > li.active > a,
#topMain > li.active > a:hover,
#topMain > li.active > a:focus {
	background: transparent !important;
	color: #3a3a3a !important;
	font-weight: 600 !important;
	text-shadow: none;
}

#topMain > li > a:hover,
#topMain > li > a:focus {
	background: transparent !important;
	color: var(--lr-accent) !important;
}

#topNav .nav-main-collapse {
	box-shadow: none !important;
}

.btn-mobile {
	background: var(--lr-surface) !important;
	border: 1px solid var(--lr-border) !important;
	color: var(--lr-text) !important;
}

/* The slider remains the photographic, darker entrance. */
.slider.fullwidthbanner-container,
.fullwidthbanner {
	background: var(--lr-dark) !important;
}

.slider.fullwidthbanner-container {
	position: relative;
	overflow: hidden;
}

.slider.fullwidthbanner-container::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 160px;
	background: linear-gradient(
		to bottom,
		rgba(243, 236, 224, 0.00) 0%,
		rgba(243, 236, 224, 0.03) 25%,
		rgba(243, 236, 224, 0.10) 42%,
		rgba(243, 236, 224, 0.24) 58%,
		rgba(243, 236, 224, 0.48) 74%,
		rgba(243, 236, 224, 0.76) 88%,
		#f3ece0 100%
	);
	pointer-events: none;
}

.slider.fullwidthbanner-container.roundedcorners {
	border-radius: 0;
}

/* Light editorial surfaces and section rhythm */
section.alternate,
.callout.dark,
.callout.dark h2,
.callout.dark h3,
.callout.dark h4,
.callout.dark p {
	background-color: var(--lr-bg) !important;
	color: var(--lr-text) !important;
}

section.alternate {
    border-top: 0 !important;
    border-bottom: 0 !important;
	padding-top: 40px;
	padding-bottom: 40px;
}

.callout.dark {
    border-top: 0 !important;
    border-bottom: 0 !important;
	padding-top: 56px;
	padding-bottom: 56px;
}

.callout.dark.arrow-down:after,
.callout.dark.arrow-up:after {
	display: none;
}

.callout .btn,
.callout .btn.btn-primary,
.btn-primary,
.btn-default {
	background: transparent !important;
	border: 1px solid var(--lr-accent) !important;
	border-radius: 2px;
	box-shadow: none !important;
	color: var(--lr-text) !important;
	text-shadow: none;
}

.callout .btn:hover,
.callout .btn.btn-primary:hover,
.btn-primary:hover,
.btn-default:hover {
	background: var(--lr-accent) !important;
	color: var(--lr-surface-white) !important;
}

h2,
h3,
h4 {
	color: var(--lr-text);
	font-weight: 500;
}

/* Restore readable dark text on the light editorial surfaces. */
body p,
body ul,
body ol,
body li,
body h1,
body h5,
body h6,
body blockquote,
body cite {
	color: var(--lr-text);
}

.callout h2,
.callout h3,
.callout h4,
section.alternate h2,
section.alternate h3,
section.alternate h4 {
	line-height: 1.25;
}

.callout h2,
section.alternate h2 {
	font-size: clamp(1.6rem, 2.5vw, 2.2rem);
}

.callout p,
section.alternate p,
#portfolio p,
body {
	line-height: 1.7;
}

.styleColor,
small.styleColor {
	color: var(--lr-accent) !important;
}

.divider,
.divider.half-margins {
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid var(--lr-border) !important;
    height: 1px;
    margin-top: 32px;
    margin-bottom: 32px;
}

hr {
    background: transparent !important;
    border: 0 !important;
    height: 0;
    margin-top: 32px;
    margin-bottom: 32px;
}

/* Intro, recommendations and media */
.logonew {
	background: transparent;
	border: 0;
	box-shadow: none;
}

video,
iframe {
	max-width: 100%;
}

video {
	display: block;
	height: auto;
	margin-left: auto;
	margin-right: auto;
}

iframe[src*="zonerama"] {
	width: 100% !important;
	max-width: 630px;
	height: auto !important;
	aspect-ratio: 630 / 352;
	min-height: 220px;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

#pano {
	width: 100% !important;
	max-width: 630px;
	height: auto !important;
	aspect-ratio: 630 / 354;
	min-height: 220px;
	margin-left: auto;
	margin-right: auto;
}

.item-box {
	background: var(--lr-surface-white) !important;
	border: 1px solid var(--lr-border) !important;
	box-shadow: none !important;
}

.item-box figure {
	background: transparent;
}

.item-box figure img {
	display: block;
	max-width: 100%;
	width: auto;
	height: auto;
	margin-left: auto;
	margin-right: auto;
}

.feature-630 {
    display: block;
    float: none !important;
    width: 100%;
    max-width: 630px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.feature-630 figure img {
    display: block;
    width: 100%;
    max-width: 630px;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

.feature-wide {
	width: 100%;
	max-width: 1170px;
	margin-top: 64px;
	margin-left: auto;
	margin-right: auto;
}

.feature-wide figure img {
	display: block;
	width: 100%;
	height: auto;
}

/* Filmboard: slightly enlarge the composite within the video-width frame. */
@media (min-width: 992px) {
	.feature-wide figure {
		overflow: hidden;
	}

	.feature-wide figure img {
		width: 110%;
		max-width: none;
		margin-left: -5%;
	}
}


.item-box-desc {
	background: var(--lr-surface-white) !important;
	color: var(--lr-text) !important;
	padding: 18px;
}

.item-box-desc h4,
.item-box-desc p {
	color: var(--lr-text) !important;
}

.item-box .item-hover {
	background: rgba(32, 32, 32, 0.72) !important;
	color: var(--lr-surface-white) !important;
}

.item-box .item-hover .inner,
.item-box .item-hover strong,
.item-box .item-hover a {
	color: var(--lr-surface-white) !important;
}

.item-box .item-hover .inner {
	border: 1px solid rgba(255, 255, 255, 0.72);
	padding: 10px 14px;
}

/* Quiet, light statistics panel */
.parallax.parallax-1 {
	position: relative;
	background-color: rgba(32, 32, 32, 0.36) !important;
	background-image: url("../images/demo/flickr_16.jpg") !important;
	background-blend-mode: multiply;
	color: #ffffff !important;
	padding-top: 48px;
	padding-bottom: 48px;
}

.parallax.parallax-1 .boxed {
	background: rgba(32, 32, 32, 0.46) !important;
	border: 1px solid rgba(255, 255, 255, 0.30);
	box-shadow: none !important;
	color: #ffffff !important;
	padding: 18px 24px;
}

.parallax.parallax-1 label,
.parallax.parallax-1 strong {
	color: #ffffff !important;
}

.parallax.parallax-1 strong {
	display: block;
	font-size: 2rem;
	line-height: 1.1;
}


/* Center only the two homepage statistics cards. */
.stats-section .stats-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 24px;
    margin-left: 0;
    margin-right: 0;
}

.stats-section .stats-grid > .col-md-3 {
    float: none !important;
    flex: 0 1 300px;
    width: 300px;
    max-width: 300px;
    margin: 0 !important;
    text-align: center;
}

.stats-section .stats-grid > .col-md-3 > .boxed {
    display: block;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    .stats-section .stats-grid {
        flex-direction: column;
        align-items: center;
        gap: 18px;
    }

    .stats-section .stats-grid > .col-md-3 {
        flex: 0 1 auto;
        width: min(100%, 300px);
        max-width: 300px;
    }
}
/* Warm light footer */
#footer {
	position: relative;
	margin-top: 0;
    background: #ebdfcc !important;
    background-image: none !important;
    border-top: 0 !important;
    box-shadow: none !important;
	filter: none !important;
	opacity: 1;
	color: #252525 !important;
	padding-top: 0;
}

#footer h2,
#footer h3,
#footer h4,
#footer p,
#footer .copyright {
    color: #252525 !important;
}

#footer a {
    color: #252525 !important;
}

#footer a:hover {
	color: var(--lr-accent) !important;
}

#footer hr {
    border: 0 !important;
    border-top: 1px solid rgba(231, 231, 231, 0.24) !important;
    height: 1px;
}

#footer h2 a {
	font-size: clamp(1.25rem, 2vw, 1.75rem);
}

@media (max-width: 991px) {
	#topNav .container {
		padding-left: 18px;
		padding-right: 18px;
	}

	#topNav .navbar-collapse.nav-main-collapse {
		background: var(--lr-surface) !important;
		border-top: 1px solid var(--lr-border);
		margin-left: 0 !important;
	}

	#topMain > li > a {
		padding-left: 18px;
		padding-right: 18px;
	}

	section.alternate,
	.callout.dark {
		padding-top: 40px;
		padding-bottom: 40px;
	}
}

@media (max-width: 767px) {
	#wrapper .container,
	#footer .container {
		padding-left: 20px;
		padding-right: 20px;
	}

	section.alternate,
	.callout.dark {
		padding-top: 32px;
		padding-bottom: 32px;
	}

	.parallax.parallax-1 {
		padding-top: 32px;
		padding-bottom: 32px;
	}

	.parallax.parallax-1 .countTo > div {
		margin-bottom: 18px;
	}

	#footer {
		padding-top: 0;
	}

	#footer h2 a {
		white-space: normal;
		word-break: normal;
	}
}

@media (max-width: 430px) {
	#wrapper .container,
	#footer .container,
	#topNav .container {
		padding-left: 18px;
		padding-right: 18px;
	}

	h2,
	h3,
	h4 {
		max-width: 100%;
		word-wrap: break-word;
	}

	iframe[src*="zonerama"] {
		min-height: 190px;
	}

	#pano {
		min-height: 190px;
	}
}



/* The statistics section keeps its independent overlay and stacking rules. */
.parallax.parallax-1::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(32, 32, 32, 0.20);
    pointer-events: none;
}

.parallax.parallax-1 > * {
    position: relative;
    z-index: 1;
}

/* Desktop navigation */
@media (min-width: 992px) {
    #topNav .navbar-collapse.nav-main-collapse {
        display: flex !important;
        justify-content: center !important;
        align-items: center;
        float: none !important;
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        text-align: center;
    }

    #topNav nav.nav-main {
        display: block;
        float: none !important;
        width: auto;
        margin: 0 auto !important;
    }

    #topNav #topMain {
        display: flex !important;
        justify-content: center !important;
        float: none !important;
        width: auto !important;
        margin: 0 auto !important;
        padding-left: 0;
        padding-right: 0;
    }

    #topNav #topMain > li {
        float: none !important;
    }
}

/* Footer transition */
#footer::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    width: auto;
    top: -136px;
    height: 136px;
    background: linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%);
    box-shadow: none !important;
    filter: none !important;
    opacity: 1;
    pointer-events: none;
}

/* Copyright surface */
#footer > .copyright {
    background: #e1d0b2 !important;
    color: #252525 !important;
}

/* Normal editorial content pages */
body.normal-page,
body.normal-page #wrapper {
    background: var(--lr-bg) !important;
    color: var(--lr-text);
}

/* Remove legacy top-bar and page-title surfaces on normal pages. */
body.normal-page #topBar,
body.normal-page #topBar .container,
body.normal-page #header,
body.normal-page #topNav {
    background: var(--lr-surface) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.normal-page #topBar {
    border-bottom: 1px solid var(--lr-border) !important;
}

body.normal-page #topBar a,
body.normal-page #topBar .social {
    color: var(--lr-text) !important;
}

body.normal-page #topBar a:hover,
body.normal-page #topBar .social:hover {
    color: var(--lr-accent) !important;
}

body.normal-page .page-title {
    position: relative;
    overflow: visible;
    padding: 20px 0 24px;
    background: var(--lr-bg) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.normal-page .page-title::after {
    display: none !important;
    content: none !important;
}

body.normal-page .page-title > .container {
    position: relative;
    z-index: 1;
}

body.normal-page .page-title h2,
body.normal-page .page-title h2 strong,
body.normal-page .page-title li,
body.normal-page .page-title a {
    color: var(--lr-text) !important;
}

body.normal-page .page-title a:hover {
    color: var(--lr-accent) !important;
}

body.normal-page .page-title .breadcrumb {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.normal-page section.row {
    margin-left: 0;
    margin-right: 0;
    padding-top: 56px;
    padding-bottom: 56px;
    background: var(--lr-bg) !important;
    border: 0 !important;
}

body.normal-page section.row.alternate {
    background: var(--lr-bg) !important;
}

body.normal-page section.row > .container,
body.normal-page section.container {
    max-width: 1170px;
}

body.normal-page .progress-label,
body.normal-page .progress-label span,
body.normal-page .toggle-content,
body.normal-page .toggle-content p,
body.normal-page .caption,
body.normal-page .thumbnail {
    color: var(--lr-text) !important;
}

body.normal-page .thumbnail,
body.normal-page .box-content.thumbnail {
    background: var(--lr-surface) !important;
    border: 1px solid var(--lr-border) !important;
    box-shadow: none !important;
}

body.normal-page .caption {
    background: var(--lr-surface) !important;
}

/* Existing photographic Person content remains a deliberate image accent. */
body.normal-page .parallax.parallax-1 {
    background-image: url("../images/demo/other/o2.jpg") !important;
    padding-top: 72px;
    padding-bottom: 72px;
}

body.normal-page .parallax.parallax-1 h2,
body.normal-page .parallax.parallax-1 h3,
body.normal-page .parallax.parallax-1 h4,
body.normal-page .parallax.parallax-1 p,
body.normal-page .parallax.parallax-1 cite,
body.normal-page .parallax.parallax-1 .h1,
body.normal-page .parallax.parallax-1 a {
    color: #ffffff !important;
}

/* Logo placeholders: future transparent PNGs can replace the files directly. */
body.normal-page .about-logo-placeholder,
body.normal-page .footer-logo-placeholder {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0;
}

body.normal-page .logo_footer,
body.normal-page .logo_footer.dark,
body.normal-page .logo_footer img {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Normal-page footer: disable legacy dark column and social-box styling. */
body.normal-page #footer,
body.normal-page #footer .container,
body.normal-page #footer .row,
body.normal-page #footer .logo_footer,
body.normal-page #footer .logo_footer.dark {
    background: #ebdfcc !important;
    background-image: none !important;
    color: #252525 !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.normal-page #footer .logo_footer.dark {
    height: auto !important;
    min-height: 0 !important;
}

body.normal-page #footer h2,
body.normal-page #footer h3,
body.normal-page #footer h4,
body.normal-page #footer p,
body.normal-page #footer li,
body.normal-page #footer small,
body.normal-page #footer a {
    color: #252525 !important;
}

body.normal-page #footer a:hover {
    color: var(--lr-accent) !important;
}

body.normal-page #footer .social {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #252525 !important;
    padding-left: 8px;
    padding-right: 8px;
}

body.normal-page #footer .social:hover {
    background: transparent !important;
    color: var(--lr-accent) !important;
}

body.normal-page #footer hr {
    border: 0 !important;
    border-top: 1px solid rgba(37, 37, 37, 0.14) !important;
    height: 1px;
}

body.normal-page #footer > .copyright,
body.normal-page #footer > .copyright .container {
    background: #e1d0b2 !important;
    color: #252525 !important;
}

body.normal-page #footer > .copyright a,
body.normal-page #footer > .copyright p {
    color: #252525 !important;
}

body.normal-page #footer::before {
    background: linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%) !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1;
}

@media (max-width: 767px) {
    body.normal-page .page-title {
        padding: 18px 0 22px;
    }

    body.normal-page section.row {
        padding-top: 36px;
        padding-bottom: 36px;
    }

    body.normal-page .parallax.parallax-1 {
        padding-top: 44px;
        padding-bottom: 44px;
    }
}
/* Opening spacing for normal editorial pages. */
body.normal-page .page-title + section.row {
    padding-top: 88px;
}

@media (max-width: 767px) {
    body.normal-page .page-title + section.row {
        padding-top: 56px;
    }
}

/* Pattern page types: gallery, portfolio and project */
body.page-gallery,
body.page-portfolio,
body.page-project,
body.page-gallery #wrapper,
body.page-portfolio #wrapper,
body.page-project #wrapper {
    background: var(--lr-bg) !important;
    color: var(--lr-text);
}

body.page-gallery #topBar,
body.page-gallery #topBar .container,
body.page-gallery #header,
body.page-gallery #topNav,
body.page-portfolio #topBar,
body.page-portfolio #topBar .container,
body.page-portfolio #header,
body.page-portfolio #topNav,
body.page-project #topBar,
body.page-project #topBar .container,
body.page-project #header,
body.page-project #topNav {
    background: var(--lr-surface) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.page-gallery #topBar,
body.page-portfolio #topBar,
body.page-project #topBar {
    border-bottom: 1px solid var(--lr-border) !important;
}

body.page-gallery #topBar a,
body.page-gallery #topBar .social,
body.page-portfolio #topBar a,
body.page-portfolio #topBar .social,
body.page-project #topBar a,
body.page-project #topBar .social {
    color: var(--lr-text) !important;
}

body.page-gallery #topBar a:hover,
body.page-gallery #topBar .social:hover,
body.page-portfolio #topBar a:hover,
body.page-portfolio #topBar .social:hover,
body.page-project #topBar a:hover,
body.page-project #topBar .social:hover {
    color: var(--lr-accent) !important;
}

body.page-gallery .page-title,
body.page-portfolio .page-title,
body.page-project .page-title {
    position: relative;
    overflow: visible;
    padding: 28px 0 30px;
    background: var(--lr-bg) !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.page-gallery .page-title::after,
body.page-portfolio .page-title::after,
body.page-project .page-title::after {
    display: none !important;
    content: none !important;
}

body.page-gallery .page-title h2,
body.page-gallery .page-title h2 strong,
body.page-gallery .page-title li,
body.page-gallery .page-title a,
body.page-portfolio .page-title h2,
body.page-portfolio .page-title h2 strong,
body.page-portfolio .page-title li,
body.page-portfolio .page-title a,
body.page-project .page-title h2,
body.page-project .page-title h2 strong,
body.page-project .page-title li,
body.page-project .page-title a {
    color: var(--lr-text) !important;
}

body.page-gallery .page-title .breadcrumb,
body.page-portfolio .page-title .breadcrumb,
body.page-project .page-title .breadcrumb {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.page-gallery section:not(.page-title),
body.page-portfolio section:not(.page-title),
body.page-project section:not(.page-title) {
    background: var(--lr-bg) !important;
    color: var(--lr-text) !important;
    border: 0 !important;
    box-shadow: none !important;
    padding-top: 48px;
    padding-bottom: 48px;
}

body.page-gallery section:not(.page-title) h1,
body.page-gallery section:not(.page-title) h2,
body.page-gallery section:not(.page-title) h3,
body.page-gallery section:not(.page-title) h4,
body.page-gallery section:not(.page-title) h5,
body.page-gallery section:not(.page-title) h6,
body.page-gallery section:not(.page-title) p,
body.page-gallery section:not(.page-title) li,
body.page-gallery section:not(.page-title) label,
body.page-portfolio section:not(.page-title) h1,
body.page-portfolio section:not(.page-title) h2,
body.page-portfolio section:not(.page-title) h3,
body.page-portfolio section:not(.page-title) h4,
body.page-portfolio section:not(.page-title) h5,
body.page-portfolio section:not(.page-title) h6,
body.page-portfolio section:not(.page-title) p,
body.page-portfolio section:not(.page-title) li,
body.page-portfolio section:not(.page-title) label,
body.page-project section:not(.page-title) h1,
body.page-project section:not(.page-title) h2,
body.page-project section:not(.page-title) h3,
body.page-project section:not(.page-title) h4,
body.page-project section:not(.page-title) h5,
body.page-project section:not(.page-title) h6,
body.page-project section:not(.page-title) p,
body.page-project section:not(.page-title) li,
body.page-project section:not(.page-title) label {
    color: var(--lr-text) !important;
}

body.page-gallery section:not(.page-title) a,
body.page-portfolio section:not(.page-title) a,
body.page-project section:not(.page-title) a {
    color: var(--lr-text);
}

body.page-gallery section:not(.page-title) a:hover,
body.page-portfolio section:not(.page-title) a:hover,
body.page-project section:not(.page-title) a:hover {
    color: var(--lr-accent);
}

body.page-gallery .lightbox {
    background: transparent !important;
}

body.page-gallery .thumbnail,
body.page-gallery .box-content.thumbnail {
    background: var(--lr-surface) !important;
    border: 1px solid var(--lr-border) !important;
    box-shadow: none !important;
    border-radius: 0;
}

body.page-gallery .thumbnail img,
body.page-gallery .box-content.thumbnail img {
    display: block;
    max-width: 100%;
    width: auto;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

body.page-gallery .lightbox > [class*="col-"] {
    margin-bottom: 24px;
}

body.page-portfolio .item-box,
body.page-project .item-box {
    background: var(--lr-surface-white) !important;
    border: 1px solid var(--lr-border) !important;
    box-shadow: none !important;
}

body.page-portfolio .item-box figure,
body.page-project .item-box figure {
    background: transparent !important;
}

body.page-portfolio .item-box figure img,
body.page-project .item-box figure img {
    display: block;
    max-width: 100%;
    width: auto;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

body.page-portfolio .item-box-desc,
body.page-project .item-box-desc {
    background: var(--lr-surface-white) !important;
    color: var(--lr-text) !important;
}

body.page-portfolio .item-box-desc h4,
body.page-portfolio .item-box-desc p,
body.page-project .item-box-desc h4,
body.page-project .item-box-desc p {
    color: var(--lr-text) !important;
}

body.page-portfolio .owl-carousel.product-image,
body.page-project .owl-carousel.product-image {
    background: var(--lr-surface) !important;
}

body.page-portfolio video,
body.page-project video,
body.page-portfolio iframe,
body.page-project iframe {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

body.page-gallery #footer,
body.page-gallery #footer .container,
body.page-gallery #footer .row,
body.page-gallery #footer .logo_footer,
body.page-gallery #footer .logo_footer.dark,
body.page-portfolio #footer,
body.page-portfolio #footer .container,
body.page-portfolio #footer .row,
body.page-portfolio #footer .logo_footer,
body.page-portfolio #footer .logo_footer.dark,
body.page-project #footer,
body.page-project #footer .container,
body.page-project #footer .row,
body.page-project #footer .logo_footer,
body.page-project #footer .logo_footer.dark {
    background: #ebdfcc !important;
    background-image: none !important;
    color: #252525 !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.page-gallery #footer .logo_footer.dark,
body.page-portfolio #footer .logo_footer.dark,
body.page-project #footer .logo_footer.dark {
    height: auto !important;
    min-height: 0 !important;
}

body.page-gallery #footer h2,
body.page-gallery #footer h3,
body.page-gallery #footer h4,
body.page-gallery #footer p,
body.page-gallery #footer li,
body.page-gallery #footer small,
body.page-gallery #footer a,
body.page-portfolio #footer h2,
body.page-portfolio #footer h3,
body.page-portfolio #footer h4,
body.page-portfolio #footer p,
body.page-portfolio #footer li,
body.page-portfolio #footer small,
body.page-portfolio #footer a,
body.page-project #footer h2,
body.page-project #footer h3,
body.page-project #footer h4,
body.page-project #footer p,
body.page-project #footer li,
body.page-project #footer small,
body.page-project #footer a {
    color: #252525 !important;
}

body.page-gallery #footer a:hover,
body.page-portfolio #footer a:hover,
body.page-project #footer a:hover {
    color: var(--lr-accent) !important;
}

body.page-gallery #footer .social,
body.page-portfolio #footer .social,
body.page-project #footer .social {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #252525 !important;
}

body.page-gallery #footer > .copyright,
body.page-gallery #footer > .copyright .container,
body.page-portfolio #footer > .copyright,
body.page-portfolio #footer > .copyright .container,
body.page-project #footer > .copyright,
body.page-project #footer > .copyright .container {
    background: #e1d0b2 !important;
    color: #252525 !important;
}

body.page-gallery #footer::before,
body.page-portfolio #footer::before,
body.page-project #footer::before {
    background: linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%) !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1;
}

body.page-gallery .footer-logo-placeholder,
body.page-portfolio .footer-logo-placeholder,
body.page-project .footer-logo-placeholder {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media (max-width: 767px) {
    body.page-gallery section:not(.page-title),
    body.page-portfolio section:not(.page-title),
    body.page-project section:not(.page-title) {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    body.page-gallery .page-title,
    body.page-portfolio .page-title,
    body.page-project .page-title {
        padding-top: 20px;
        padding-bottom: 24px;
    }
}

/* Legacy area wrappers: Goerlitz and Wuerzburg, outer redesign only */
body.page-legacy-goerlitz, body.page-legacy-wuerzburg {
    min-width: 0;
    margin: 0;
    background: #f3ece0 !important;
    color: #252525 !important;
}
body.page-legacy-goerlitz .lr-legacy-shell, body.page-legacy-wuerzburg .lr-legacy-shell {
    min-height: 100vh;
    background: #f3ece0;
}
body.page-legacy-goerlitz .lr-legacy-header, body.page-legacy-wuerzburg .lr-legacy-header {
    position: relative;
    z-index: 10;
    background: #fbfaf7;
    border-bottom: 1px solid #d9d5ce;
    box-shadow: none;
}
body.page-legacy-goerlitz .lr-legacy-header-inner, body.page-legacy-wuerzburg .lr-legacy-header-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    max-width: 1200px;
    min-height: 82px;
    margin: 0 auto;
    padding: 12px 20px;
    box-sizing: border-box;
}
body.page-legacy-goerlitz .lr-legacy-brand, body.page-legacy-wuerzburg .lr-legacy-brand {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}
body.page-legacy-goerlitz .lr-legacy-brand img, body.page-legacy-wuerzburg .lr-legacy-brand img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 50px;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.page-legacy-goerlitz .lr-legacy-nav, body.page-legacy-wuerzburg .lr-legacy-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 4px 24px;
}
body.page-legacy-goerlitz .lr-legacy-nav a, body.page-legacy-wuerzburg .lr-legacy-nav a {
    display: inline-block;
    padding: 8px 0;
    color: #3a3a3a;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}
body.page-legacy-goerlitz .lr-legacy-nav a:hover, body.page-legacy-wuerzburg .lr-legacy-nav a:hover {
    color: var(--lr-accent);
}
body.page-legacy-goerlitz .lr-legacy-main, body.page-legacy-wuerzburg .lr-legacy-main {
    width: 100%;
    max-width: 1200px;
    min-height: 500px;
    margin: 0 auto;
    padding: 48px 20px 72px;
    box-sizing: border-box;
    background: #f3ece0;
    color: #252525;
}
body.page-legacy-goerlitz .lr-legacy-main > center, body.page-legacy-wuerzburg .lr-legacy-main > center {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    color: #252525;
}
body.page-legacy-goerlitz .lr-legacy-main > center > div, body.page-legacy-wuerzburg .lr-legacy-main > center > div {
    width: min(952px, 100%) !important;
    max-width: 100%;
    height: auto !important;
    margin: 0 auto;
}
body.page-legacy-goerlitz .lr-legacy-main object, body.page-legacy-goerlitz .lr-legacy-main video,
body.page-legacy-wuerzburg .lr-legacy-main object, body.page-legacy-wuerzburg .lr-legacy-main video {
    display: block;
    width: min(950px, 100%) !important;
    max-width: 100%;
    height: auto !important;
    margin: 0 auto;
    aspect-ratio: 950 / 630;
}
body.page-legacy-goerlitz .lr-legacy-main embed, body.page-legacy-wuerzburg .lr-legacy-main embed {
    max-width: 100%;
}
body.page-legacy-goerlitz #footer, body.page-legacy-wuerzburg #footer {
    position: relative;
    margin-top: 120px;
    padding: 0;
    background: #ebdfcc !important;
    border-top: 0 !important;
    color: #252525 !important;
}
body.page-legacy-goerlitz #footer::before, body.page-legacy-wuerzburg #footer::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -120px;
    width: auto;
    height: 120px;
    background: linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%);
    box-shadow: none !important;
    filter: none !important;
    opacity: 1;
    pointer-events: none;
}
body.page-legacy-goerlitz .lr-legacy-footer-main, body.page-legacy-wuerzburg .lr-legacy-footer-main {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px;
    box-sizing: border-box;
    text-align: center;
}
body.page-legacy-goerlitz #footer p, body.page-legacy-goerlitz #footer a,
body.page-legacy-wuerzburg #footer p, body.page-legacy-wuerzburg #footer a {
    color: #252525 !important;
}
body.page-legacy-goerlitz #footer a:hover, body.page-legacy-wuerzburg #footer a:hover {
    color: var(--lr-accent) !important;
}
body.page-legacy-goerlitz #footer .copyright, body.page-legacy-wuerzburg #footer .copyright {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 14px 20px;
    background: #e1d0b2;
    color: #252525;
    text-align: center;
}
@media (max-width: 767px) {
    body.page-legacy-goerlitz .lr-legacy-header-inner, body.page-legacy-wuerzburg .lr-legacy-header-inner {
        display: block;
        padding: 12px 18px;
        text-align: center;
    }
    body.page-legacy-goerlitz .lr-legacy-brand, body.page-legacy-wuerzburg .lr-legacy-brand {
        margin-bottom: 8px;
    }
    body.page-legacy-goerlitz .lr-legacy-nav, body.page-legacy-wuerzburg .lr-legacy-nav {
        gap: 2px 14px;
    }
    body.page-legacy-goerlitz .lr-legacy-nav a, body.page-legacy-wuerzburg .lr-legacy-nav a {
        font-size: 14px;
    }
    body.page-legacy-goerlitz .lr-legacy-main, body.page-legacy-wuerzburg .lr-legacy-main {
        padding: 32px 12px 56px;
    }
}/* Panorama batch shared shell: viewer JavaScript, XML, paths and data remain unchanged. */
body.page-panorama{min-height:100vh;height:auto!important;margin:0;overflow-x:hidden!important;overflow-y:auto!important;background:#f3ece0!important;color:#252525!important}body.page-panorama .lr-panorama-shell{min-height:100vh;background:#f3ece0}body.page-panorama .lr-panorama-header{position:relative;z-index:10;background:#fbfaf7;border-bottom:1px solid #d9d5ce;box-shadow:none}body.page-panorama .lr-panorama-header-inner{display:flex;align-items:center;justify-content:center;gap:26px;max-width:1200px;min-height:82px;margin:0 auto;padding:12px 20px;box-sizing:border-box}body.page-panorama .lr-panorama-brand{display:inline-flex;align-items:center}body.page-panorama .lr-panorama-brand img{display:block;width:auto;max-width:100%;height:50px;background:transparent;border:0;box-shadow:none}body.page-panorama .lr-panorama-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 24px}body.page-panorama .lr-panorama-nav a{display:inline-block;padding:8px 0;color:#3a3a3a;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none}body.page-panorama .lr-panorama-nav a:hover{color:var(--lr-accent)}body.page-panorama .lr-panorama-main{width:100%;max-width:1200px;min-height:500px;margin:0 auto;padding:48px 20px 72px;box-sizing:border-box;background:#f3ece0;color:#252525}body.page-panorama .lr-panorama-viewer{width:100%;max-width:1200px;margin:0 auto;background:#202020}body.page-panorama .lr-panorama-viewer #pano{width:100%!important;max-width:none!important;height:clamp(320px,72vh,820px)!important;min-height:320px;margin:0 auto;background:#202020}body.page-panorama .lr-panorama-viewer>iframe,body.page-panorama .lr-panorama-viewer>embed{display:block;width:100%!important;max-width:100%;min-height:clamp(320px,72vh,820px);border:0}body.page-panorama #topBar,body.page-panorama #topBar .container,body.page-panorama #header,body.page-panorama #topNav{background:#fbfaf7!important;background-image:none!important;color:#252525!important;border-color:#d9d5ce!important;box-shadow:none!important}body.page-panorama .page-title,body.page-panorama section:not(.page-title){background:#f3ece0!important;background-image:none!important;color:#252525!important;border:0!important;box-shadow:none!important}body.page-panorama .page-title::after{display:none!important;content:none!important}body.page-panorama #footer,body.page-panorama .lr-panorama-footer{position:relative;margin-top:120px;padding:0;background:#ebdfcc!important;background-image:none!important;border-top:0!important;box-shadow:none!important;color:#252525!important}body.page-panorama #footer::before,body.page-panorama .lr-panorama-footer::before{content:"";position:absolute;left:0;right:0;top:-120px;width:auto;height:120px;background:linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%);box-shadow:none!important;filter:none!important;opacity:1;pointer-events:none}body.page-panorama #footer p,body.page-panorama #footer a,body.page-panorama .lr-panorama-footer p,body.page-panorama .lr-panorama-footer a{color:#252525!important}body.page-panorama #footer a:hover,body.page-panorama .lr-panorama-footer a:hover{color:var(--lr-accent)}body.page-panorama .lr-panorama-footer-main{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:30px 20px;box-sizing:border-box;text-align:center}body.page-panorama .lr-panorama-footer .copyright,body.page-panorama #footer>.copyright{position:relative;z-index:1;margin:0;padding:14px 20px;background:#e1d0b2!important;color:#252525!important;text-align:center}@media(max-width:767px){body.page-panorama .lr-panorama-header-inner{display:block;padding:12px 18px;text-align:center}body.page-panorama .lr-panorama-brand{margin-bottom:8px}body.page-panorama .lr-panorama-nav{gap:2px 14px}body.page-panorama .lr-panorama-nav a{font-size:14px}body.page-panorama .lr-panorama-main{padding:32px 12px 56px}}
body.page-panorama .lr-panorama-viewer #viewer{width:100%!important;height:clamp(320px,72vh,820px)!important;min-height:320px}

/* Remaining public special page shells 2026-08-24 */
body.page-karlsruhe,
body.page-timelapse,
body.page-aerial,
body.page-fs2020,
body.page-special-video {
    background: var(--lr-bg) !important;
    color: var(--lr-text) !important;
}

body.page-karlsruhe #topBar,
body.page-karlsruhe #topBar .container,
body.page-timelapse #topBar,
body.page-timelapse #topBar .container,
body.page-aerial #topBar,
body.page-aerial #topBar .container,
body.page-fs2020 #topBar,
body.page-fs2020 #topBar .container,
body.page-special-video #topBar,
body.page-special-video #topBar .container {
    background: var(--lr-surface) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border-bottom: 1px solid var(--lr-border) !important;
    box-shadow: none !important;
}

body.page-karlsruhe .page-title,
body.page-timelapse .page-title,
body.page-aerial .page-title,
body.page-fs2020 .page-title,
body.page-special-video .page-title {
    background: var(--lr-bg) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.page-karlsruhe .page-title::after,
body.page-timelapse .page-title::after,
body.page-aerial .page-title::after,
body.page-fs2020 .page-title::after,
body.page-special-video .page-title::after {
    display: none !important;
    content: none !important;
}

body.page-timelapse .product-image,
body.page-aerial .product-image,
body.page-fs2020 .product-image,
body.page-special-video .product-image {
    background: var(--lr-surface) !important;
    box-shadow: none !important;
}

body.page-timelapse section:not(.page-title) .row,
body.page-aerial section:not(.page-title) .row,
body.page-fs2020 section:not(.page-title) .row,
body.page-special-video section:not(.page-title) .row {
    margin-bottom: 28px;
}

@media (max-width: 767px) {
    body.page-timelapse section:not(.page-title) .row,
    body.page-aerial section:not(.page-title) .row,
    body.page-fs2020 section:not(.page-title) .row,
    body.page-special-video section:not(.page-title) .row {
        margin-bottom: 20px;
    }
}
/* Independent coming-soon page shell 2026-08-24 */
html body.page-coming-soon,
body.page-coming-soon { min-height:100vh; background-color:#202020 !important; color:#f5f4f1 !important; }
body.page-coming-soon .comingsoon { position:relative; z-index:1; min-height:100vh; box-sizing:border-box; margin-top:0; padding:80px 0 40px; background:rgba(32,32,32,.52); color:#f5f4f1 !important; }
body.page-coming-soon .comingsoon h1 { color:#fff !important; letter-spacing:.08em; font-weight:500; }
body.page-coming-soon .comingsoon .white-text,
body.page-coming-soon .comingsoon p { color:#f5f4f1 !important; }
body.page-coming-soon .comingsoon hr.half-margins { height:1px; border:0 !important; border-top:1px solid rgba(245,244,241,.35) !important; background:transparent !important; }
body.page-coming-soon .comingsoon .form-control { background:rgba(251,250,247,.95); color:#252525; border:1px solid #d9d5ce; }
body.page-coming-soon .comingsoon .btn-primary,
body.page-coming-soon .comingsoon .btn-default { background:transparent !important; border:1px solid var(--lr-accent) !important; color:#fff !important; text-shadow:none; }
body.page-coming-soon .comingsoon .btn-primary:hover,
body.page-coming-soon .comingsoon .btn-default:hover { background:var(--lr-accent) !important; color:#fff !important; }
body.page-coming-soon .comingsoon .social { background:transparent !important; border:0 !important; color:#fff !important; box-shadow:none !important; }
body.page-coming-soon .comingsoon .social:hover { color:var(--lr-accent) !important; }
body.page-coming-soon > .copyright { position:relative; z-index:1; color:#d9d5ce !important; background:rgba(32,32,32,.72) !important; }
@media (max-width:767px) { body.page-coming-soon .comingsoon { padding-top:48px; padding-bottom:24px; } body.page-coming-soon .comingsoon h1 { font-size:2rem; } }
/* Global gallery lightbox and thumbnail cleanup 2026-08-24 */
/* Magnific Popup: darken only the backdrop; the original image remains untouched. */
body.page-gallery:not(.page-panorama) .mfp-bg,
body.page-portfolio:not(.page-panorama) .mfp-bg,
body.page-project:not(.page-panorama) .mfp-bg,
body.page-special-video .mfp-bg {
    z-index: 11000 !important;
    background: rgba(5, 5, 5, 0.985) !important;
    opacity: 1 !important;
    filter: none !important;
}

body.page-gallery:not(.page-panorama) .mfp-wrap,
body.page-portfolio:not(.page-panorama) .mfp-wrap,
body.page-project:not(.page-panorama) .mfp-wrap,
body.page-special-video .mfp-wrap {
    z-index: 11001 !important;
}

body.page-gallery:not(.page-panorama) .mfp-content,
body.page-portfolio:not(.page-panorama) .mfp-content,
body.page-project:not(.page-panorama) .mfp-content,
body.page-special-video .mfp-content {
    z-index: 11002 !important;
}

body.page-gallery:not(.page-panorama) button.mfp-close,
body.page-gallery:not(.page-panorama) button.mfp-arrow,
body.page-gallery:not(.page-panorama) .mfp-bottom-bar,
body.page-portfolio:not(.page-panorama) button.mfp-close,
body.page-portfolio:not(.page-panorama) button.mfp-arrow,
body.page-portfolio:not(.page-panorama) .mfp-bottom-bar,
body.page-project:not(.page-panorama) button.mfp-close,
body.page-project:not(.page-panorama) button.mfp-arrow,
body.page-project:not(.page-panorama) .mfp-bottom-bar,
body.page-special-video button.mfp-close,
body.page-special-video button.mfp-arrow,
body.page-special-video .mfp-bottom-bar {
    z-index: 11003 !important;
}

/* Equal-width gallery items: the legacy max-width values are neutralized here. */
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnail,
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnailh {
    display: block;
    box-sizing: border-box;
    width: 100% !important;
    max-width: none !important;
    min-height: 0;
    margin: 0 !important;
    padding: 0;
    aspect-ratio: auto;
    overflow: visible;
    background: var(--lr-surface) !important;
    border: 1px solid var(--lr-border) !important;
    box-shadow: none !important;
}

/* The image is the stable preview frame; captions remain in normal flow below it. */
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnail > a.item-image,
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnailh > a.item-image {
    display: block;
    width: 100% !important;
    min-width: 0;
    min-height: 0;
    overflow: visible;
    text-align: center;
}

body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnail img,
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnailh img {
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    height: auto !important;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
    margin: 0;
}

/* Portfolio cards retain their existing Bootstrap/Isotope items and links. */
body.page-portfolio:not(.page-panorama):not(.page-special-video) .item-box figure {
    position: relative;
    aspect-ratio: 3 / 2;
    width: 100%;
    overflow: hidden;
    background: var(--lr-surface) !important;
}

body.page-portfolio:not(.page-panorama):not(.page-special-video) .item-box figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    margin: 0;
}

@media (max-width: 767px) {
    body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnail,
    body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnailh,
    body.page-portfolio:not(.page-panorama):not(.page-special-video) .item-box figure {
        width: 100% !important;
    }
}

/* Standard gallery rows: prevent legacy float gaps when captions or source ratios differ. */
body.page-gallery:not(.page-panorama) .lightbox {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] {
    float: none !important;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    margin-bottom: 24px;
}

body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnail,
body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] > .box-content.thumbnailh {
    flex: 1 1 auto;
    width: 100% !important;
}

body.normal-page #footer > .container:first-child,
body.page-gallery #footer > .container:first-child,
body.page-portfolio #footer > .container:first-child,
body.page-project #footer > .container:first-child {
    padding-top: 48px;
}

@media (max-width: 767px) {
    body.normal-page #footer > .container:first-child,
    body.page-gallery #footer > .container:first-child,
    body.page-portfolio #footer > .container:first-child,
    body.page-project #footer > .container:first-child {
        padding-top: 32px;
    }
}

@media (min-width: 992px) {
    body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] {
        flex: 0 0 25%;
        width: 25% !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] {
        flex: 0 0 50%;
        width: 50% !important;
    }
}

@media (max-width: 767px) {
    body.page-gallery:not(.page-panorama) .lightbox > [class*="col-"] {
        flex: 0 0 100%;
        width: 100% !important;
    }
}

/* Gallery section headings must occupy a complete row, not a thumbnail column. */
body.page-gallery:not(.page-panorama) .lightbox > h4,
body.page-gallery:not(.page-panorama) .lightbox > hr {
    flex: 0 0 100%;
    width: 100%;
    box-sizing: border-box;
}

body.page-gallery:not(.page-panorama) .lightbox > h4 {
    margin: 0 0 12px;
    text-align: left;
}

body.page-gallery:not(.page-panorama) .lightbox > hr {
    height: 0;
    margin: 0 0 18px;
    border: 0 !important;
    background: transparent !important;
}

/* Owl-based gallery pages: each carousel wrapper gets its own full centered row. */
body.page-gallery:not(.page-panorama) .lightbox > div:not([class*="col-"]) {
    flex: 0 0 100%;
    width: 100%;
    box-sizing: border-box;
}

body.page-gallery:not(.page-panorama) .lightbox .product-image {
    display: block !important;
    width: 100% !important;
    max-width: 1000px;
    margin: 0 auto 32px;
}

body.page-gallery:not(.page-panorama) .lightbox .product-image img {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}

/* Legacy Owl galleries: isolate nested wrappers and cap each presentation. */
body.page-owl-gallery .lightbox {
    display: block !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.page-owl-gallery .lightbox > .row,
body.page-owl-gallery .lightbox .text-center,
body.page-owl-gallery .lightbox .text-center + div {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
}

body.page-owl-gallery .lightbox .product-image {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 1000px !important;
    margin: 0 auto 32px !important;
    box-sizing: border-box;
}

body.page-owl-gallery .lightbox .product-image img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
}

body.page-owl-gallery .lightbox > h2,
body.page-owl-gallery .lightbox > h4 {
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 767px) {
    body.page-owl-gallery .lightbox .product-image {
        max-width: 100% !important;
        margin-bottom: 24px !important;
    }
}
/* Kunstgalerie: zentrale Abschnittsüberschriften. */
body.page-gallery-kunst .container > h1,
body.page-gallery-kunst .container > h3,
body.page-gallery-kunst .lightbox > h2,
body.page-gallery-kunst .lightbox .text-center > h4 {
    text-align: center;
}
/* Aerial page: remove the legacy contact/logo top bar. */
body.page-aerial #topBar {
    display: none !important;
}

body.page-aerial #topNav {
    margin-top: 0 !important;
}
/* Special video portfolio: use the compact redesign header. */
body.page-special-video #topBar {
    display: none !important;
}

body.page-special-video #topNav {
    margin-top: 0 !important;
}
/* Karlsruhe portfolio: compact header and calm first presentation. */
body.page-karlsruhe #topBar {
    display: none !important;
}

body.page-karlsruhe #topNav {
    margin-top: 0 !important;
}

body.page-karlsruhe .page-title + section > .container > .row:first-child > .col-sm-6.col-md-7 {
    text-align: center;
}

body.page-karlsruhe .page-title + section > .container > .row:first-child .product-image {
    display: block !important;
    width: 100% !important;
    max-width: 630px !important;
    margin: 0 auto !important;
    background: transparent !important;
    box-shadow: none !important;
}

body.page-karlsruhe .page-title + section > .container > .row:first-child .product-image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
/* Special video lightbox: restore the Magnific 16:9 iframe box. */
body.page-special-video .mfp-iframe-scaler {
    position: relative;
    display: block;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    padding-top: 0 !important;
}

body.page-special-video .mfp-iframe-scaler iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-width: none;
    height: 100% !important;
    background: #000;
}
/* FS2020 page: use the compact redesign header. */
body.page-fs2020 #topBar {
    display: none !important;
}

body.page-fs2020 #topNav {
    margin-top: 0 !important;
}
/* Panorama portfolio overview: use the compact redesign header. */
body.page-panorama-overview #topBar {
    display: none !important;
}

body.page-panorama-overview #topNav {
    margin-top: 0 !important;
}
/* Timelapse page: use the compact redesign header. */
body.page-timelapse #topBar {
    display: none !important;
}

body.page-timelapse #topNav {
    margin-top: 0 !important;
}
/* Harmonized video portfolio cards: equal tile rhythm without cropping originals. */
body.page-special-video .video-project-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

body.page-special-video .video-project-grid > [class*="col-md-3"] {
    display: flex;
    float: none !important;
    flex-direction: column;
    margin-bottom: 24px;
}

body.page-special-video .video-project-grid .item-box {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    background: var(--lr-surface) !important;
}

body.page-special-video .video-project-grid .item-box figure {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--lr-surface) !important;
}

body.page-special-video .video-project-grid .item-box figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

body.page-special-video .video-project-grid .item-box-desc {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 104px;
    box-sizing: border-box;
}

@media (max-width: 991px) {
    body.page-special-video .video-project-grid > [class*="col-md-3"] {
        width: 50%;
    }
}

@media (max-width: 575px) {
    body.page-special-video .video-project-grid > [class*="col-md-3"] {
        width: 100%;
    }
}

/* Normal-page sticky footer layout */
body.normal-page,
body.page-gallery,
body.page-portfolio,
body.page-project {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body.normal-page #wrapper,
body.page-gallery #wrapper,
body.page-portfolio #wrapper,
body.page-project #wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
}

body.normal-page #footer,
body.page-gallery #footer,
body.page-portfolio #footer,
body.page-project #footer {
	margin-top: auto;
	flex-shrink: 0;
}

/* Keep the footer transition in document flow so it cannot cover long-page content. */
#footer::before {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: block !important;
    width: 100% !important;
}

body.page-legacy-goerlitz:not(.page-gallery) #footer,
body.page-legacy-wuerzburg #footer,
body.page-panorama #footer,
body.page-panorama .lr-panorama-footer {
    margin-top: 0 !important;
}

body.page-legacy-goerlitz #footer::before,
body.page-legacy-wuerzburg #footer::before,
body.page-panorama #footer::before,
body.page-panorama .lr-panorama-footer::before {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: block !important;
    width: 100% !important;
}

/* Görlitz legacy pages: remove only the redundant old contact bar and
   neutralize the old footer panel without touching the presentation media. */
body.page-legacy-goerlitz {
    background: #f3ece0 !important;
    color: #252525 !important;
}

body.page-legacy-goerlitz #topBar {
    display: none !important;
}

body.page-legacy-goerlitz #header,
body.page-legacy-goerlitz #topNav,
body.page-legacy-goerlitz #topNav .container {
    background: var(--lr-surface) !important;
    background-image: none !important;
    color: var(--lr-text) !important;
    border-color: var(--lr-border) !important;
    box-shadow: none !important;
}

/* Root Görlitz gallery pages use the shared page-gallery wrapper. Keep the
   header in normal flow so the page title starts below the navigation, and
   let the shared flex footer rule fill short viewports. */
body.page-gallery.page-special-goerlitz #header {
    position: relative !important;
}

body.page-gallery.page-special-goerlitz #footer {
    margin-top: auto !important;
    flex-shrink: 0;
}

body.page-legacy-goerlitz .lr-legacy-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.page-legacy-goerlitz .lr-legacy-shell > #footer {
    margin-top: auto !important;
    flex-shrink: 0;
}

body.page-legacy-goerlitz #footer,
body.page-legacy-goerlitz .lr-legacy-footer {
    background: #ebdfcc !important;
    background-image: none !important;
    border-top: 0 !important;
    box-shadow: none !important;
    color: #252525 !important;
}

body.page-legacy-goerlitz #footer .container,
body.page-legacy-goerlitz #footer .row,
body.page-legacy-goerlitz .lr-legacy-footer-main {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
}

body.page-legacy-goerlitz #footer .logo_footer.dark {
    min-height: 0 !important;
    height: auto !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #252525 !important;
}

body.page-legacy-goerlitz #footer p,
body.page-legacy-goerlitz #footer a {
    color: #252525 !important;
}

body.page-legacy-goerlitz #footer a:hover {
    color: var(--lr-accent) !important;
}

body.page-legacy-goerlitz #footer .social {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #252525 !important;
}

body.page-legacy-goerlitz #footer > .copyright {
    background: #e1d0b2 !important;
    color: #252525 !important;
}

body.page-legacy-goerlitz #footer::before,
body.page-legacy-goerlitz .lr-legacy-footer::before {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    display: block !important;
    width: 100% !important;
    height: 120px !important;
    margin: 0 !important;
    background: linear-gradient(to bottom, #f3ece0 0%, #ebdfcc 100%) !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    pointer-events: none;
}
