html,
* {
	scroll-behavior: smooth;
}

body {
	font-size:16px;
	scroll-behavior: smooth;
}

p {
	font-size:1.125em;
	line-height:1.5;
}

a {
	color:var(--pfully-light);
}

a.back-link {
	width:40px;
	text-align:center;
}


a.back-link.fixed {
	position:fixed;
	top:70px;
	right:18px;
	z-index:5;
}

a.back-link.right {
	position:absolute;
	top:20px;
	right:18px;
	z-index:5;
}

a.back-link.back-link-global {
	top:70px;
}

/* Hamburger */
.hamburger-light.hamburger:not(.collapsed) .hamburger-inner,
.hamburger-light.hamburger:not(.collapsed) .hamburger-inner:after,
.hamburger-light.hamburger:not(.collapsed) .hamburger-inner:before {
	background:var(--pfully-dark);
}

.hamburger-box {
	height:27px;
}

.hamburger-inner::before {
	top:-12px;
}

.hamburger-inner::after {
	bottom:-12px;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
	border-radius:0;
	height:3px;
}

/* LOADER */
.page-loader .geiser-loader-bg {
	width:100vw;
	height:100vh;
	background-size:cover;
	display:grid;
	place-items:center;
}

.page-loader .logo-farbe {
	/*transition:ease opacity 2s;*/
	top:0;
	opacity:0;
	animation-name: show-logo;
	animation-duration:3s;
	animation-delay:.5s;
	animation-fill-mode:forwards;
}

@keyframes show-logo {
	0% {
		opacity:0;
	}
	100% {
		opacity:1;
	}
}


/* Logo */
.logo-fill {
	fill:#fff;
	transition:ease fill .5s;
}

.dark-logo {
	display:none;
}

.mobile-menu-opened .dark-logo {
	display:block;
}

.mobile-menu-opened .light-logo {
	display:none;
}

.mobile-menu-opened .logo-fill {
	fill:#000;
}

/* Main Navigation */
#header {
	z-index:1200;
}
#header .header-container {
	max-width:900px;
}

.dropdown-item {
	width:auto;
	display:inline-block;
	padding:6px 0 !important;
	background:transparent !important;
}
html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li.dropdown.open > .dropdown-menu,
html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li.dropdown.accessibility-open > .dropdown-menu,
html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li.dropdown .dropdown-submenu.open > .dropdown-menu,
.dropdown-menu {
	background:transparent !important;
}

html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li > a.dropdown-toggle {
	padding-bottom:0 !important;
}

html.side-header-overlay-full-screen #header .header-nav-main.header-nav-main-align-left nav > ul > li.dropdown .dropdown-menu {
	padding-top:0;
}

#header .header-nav-main nav > ul li a.dropdown-toggle i[class*=fa-], #header .header-nav-main nav > ul li a.dropdown-toggle i[class*=bi-] {
	right:-30px;
	display:none;
}

@media (min-width:992px) {
	#header .header-nav.header-nav-links nav > ul > li.dropdown.open > .dropdown-menu,
	#header .header-nav.header-nav-links nav > ul > li.dropdown.accessibility-open > .dropdown-menu,
	#header .header-nav.header-nav-line nav > ul > li.dropdown.open > .dropdown-menu,
	#header .header-nav.header-nav-line nav > ul > li.dropdown.accessibility-open > .dropdown-menu {
		display:flex !important;
	}
}

/*@media (max-width:991px) {*/
	#header .header-nav.header-nav-links nav > ul > li.dropdown > .dropdown-menu,
	#header .header-nav.header-nav-line nav > ul > li.dropdown > .dropdown-menu,
	html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li.dropdown .dropdown-menu {
		display:block !important;
		opacity:1;
		transform:translate3d(0, 0, 0);
	}
/*}*/
html.side-header-overlay-full-screen #header .header-nav-main nav > ul > li.dropdown .dropdown-item {
	transform:scale(1);
}

.dropdown-menu li {
	/*float:left;*/
	display:inline-block;
	width:auto;
}

.header-social {
	align-self:flex-end!important;
	position:absolute;
	right:0;
	bottom:0;
}


/* Footer Nav */
ul.nav-list-simple li a {
	display:inline-block;
}

ul.nav-list-simple li:hover a {
	padding-left:0;
}

ul.nav-list-simple {
	margin-bottom:0;
	padding-left:0;
	font-size:2rem;
}

ul.nav-list-simple li a {
	line-height:1.2;
	font-size:2rem;
}

@media (min-width:768px) {
	ul.nav-list-simple li a {
		font-size:2.5rem;
	}
}

/* Social */
.social-icons li {
	margin:-1px 4px 0 0;
}

.social-icons li:hover.social-icons-facebook a,
.social-icons li:hover.social-icons-instagram a,
.social-icons li:hover.social-icons-pinterest a {
	background: var(--pfully-primary) !important;
}

.header-social .social-icons li {
	padding:2px 0;
}

.header-social .social-icons li a {
	color:var(--pfully-dark);
}

.header-social .social-icons li:hover.social-icons-facebook a,
.header-social .social-icons li:hover.social-icons-instagram a,
.header-social .social-icons li:hover.social-icons-pinterest a {
	background: var(--pfully-dark) !important;
}

/* Headlines */
h1, h2, h3, h4, h5, h6 {
	letter-spacing:0;
	letter-spacing:0.05em;
}

h2 {
	font-size: 2em;
	font-weight: 500;
	line-height: 1.1;
	margin: 0 0 32px 0;
	letter-spacing:0.03em;
}

h2.h2-lg {
	font-size: 3em;
}

h3 {
	font-size: 1.4em;
	font-weight: 400;
	line-height: 24px;
	line-height: 1.2;
	margin-bottom: 33px;
}

h4 {
	/*font-size: 1em;*/
	font-size: 1.3em;
	font-weight: 400;
	line-height: 27px;
	line-height: 1.2;
	margin: 0 0 14px 0;
}

h5 {
	/*font-size: .8em;*/
	font-size: 1.125em;
	font-weight: 500;
	line-height: 18px;
	line-height: 1.2;
	margin: 0 0 14px 0;
}


@media (min-width:520px) {
	
	h2 {
		font-size: 3em;
	}
	h2.h2-lg {
		font-size: 4em;
	}
	
	h3 {
		font-size: 1.6em;
	}
	
	h4 {
		font-size: 1.2em;
	}
	
	h5 {
		font-size: .9em;
	}
}

@media (min-width:768px) {
	
	h2 {
		font-size: 3.75em;
	}
	h2.h2-lg {
		font-size: 4.5em;
	}
	
	h3 {
		font-size: 1.8em;
	}
	
	.legals h3 {
		margin-top:3rem;
		font-weight:600;
	}
	
	h4 {
		font-size: 1.4em;
	}
	
	.legals h4 {
		margin-top:3rem;
		font-weight:600;
	}
	
	h5 {
		font-size: 1.125em;
	}
}

/* BUTTONS */
.btn.btn-lg {
	padding:1rem;
	font-size:0.875rem;
}

@media (max-width:720px) {
	.btn.btn-lg {
		padding:.5rem;
	}
}

/* Header */
@media (min-width:992px) {
	html.side-header-overlay-full-screen #header {
		height:60vh;
		min-height:clamp(550px, 60vh, 100vh) !important;
	}
}

.page-header h1 {
	font-size:36px;
	font-weight:500;
	letter-spacing:0;
}

.page-header .header-title {
	font-size:40px;
	font-weight:400;
}

.page-header .header-title img {
	max-width:180px;
}

.pikto-img {
	clip-path:polygon(0 0, 0 0, 0 100%, 0 100%);
}

.page-loader-done .pikto-img {
	animation: show-piktos 2.5s steps(6, end) forwards;
}

@keyframes show-piktos {
	to {
		clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
	}
}

.piktos-head {
	white-space:nowrap;
}

.piktos-head .pikto-img-1,
.piktos-head .pikto-img-2,
.piktos-head .pikto-img-3,
.piktos-head .pikto-img-4,
.piktos-head .pikto-img-5,
.piktos-head .pikto-img-6 {
	opacity:0;
	transform:translateY(-10px);
	transition: all .8s;
}
.piktos-head .pikto-img-1 {
	transition-delay:.2s;
}
.piktos-head .pikto-img-2 {
	transition-delay:.4s;
}
.piktos-head .pikto-img-3 {
	transition-delay:.6s;
}
.piktos-head .pikto-img-4 {
	transition-delay:.8s;
}
.piktos-head .pikto-img-5 {
	transition-delay:1s;
}
.piktos-head .pikto-img-6 {
	transition-delay:1.2s;
}

.page-loader-done .pikto-img-1,
.page-loader-done .pikto-img-2,
.page-loader-done .pikto-img-3,
.page-loader-done .pikto-img-4,
.page-loader-done .pikto-img-5,
.page-loader-done .pikto-img-6 {
	opacity:1;
	transform:translateY(0);
}

	
.page-header .header-title img[class*="pikto-img-"] {
	max-width:30px;
}

@media (min-width:520px) {
	.page-header h1 {
		font-size:56px;
	}
	
	.page-header .header-title {
		font-size:60px;
	}
	
	.page-header .header-title img {
		max-width:220px;
	}
	
	.page-header .header-title img[class*="pikto-img-"] {
		max-width:37px;
	}
}

@media (min-width:768px) {
	.page-header h1 {
		font-size:72px;
	}
	
	.page-header .header-title {
		font-size:70px;
	}
	
	.page-header .header-title img {
		max-width:280px;
	}
	
	.page-header .header-title img[class*="pikto-img-"] {
		max-width:47px;
	}
}

@media (min-width:992px) {
	.page-header h1 {
		font-size:72px;
	}
	
	.page-header .header-title {
		font-size:100px;
	}
	
	.page-header .header-title img {
		max-width:290px;
	}
	
	.page-header .header-title img[class*="pikto-img-"] {
		max-width:49px;
	}
}

/* Home */
.home-logo {
	width: 120px !important;
	transform: translateY(-24px);
	/*transform: translateX(-13%);*/
}

@media (min-width:768px) {
	.home-logo {
		/*position: absolute;
		transform: translateY(-8%);*/
	}
}

@media (min-width:992px) {
	.home-logo {
		/*transform: translateY(-20%);*/
		width: 160px !important;
		transform: translateY(-30px);
	}
}

@media (min-width:1400px) {
	.home-logo {
		/*transform: translateY(-20%);*/
		transform: translateY(-30px);
	}
}

.owl-carousel.owl-theme.dots-number .owl-dots {
	text-align:left;
	padding-left:20%;
}

.owl-carousel.owl-theme.dots-number.dots-left .owl-dots {
	text-align:left;
	padding-left:0%;
}

.owl-carousel.dots-number .owl-dots .owl-dot {
	color:rgba(255,255,255,0.5);
	margin-right:10px !important;
	font-size:0.875rem;
}
.owl-carousel.dots-number .owl-dots .owl-dot.active {
	color:rgba(255,255,255,1);
}

.cta-home {
	aspect-ratio:1/1;
}

.cta-home .cta-number {
	font-size:4rem;
	font-weight:900;
	line-height:1;
}

@media (min-width:992px) {
	.cta-home .cta-number {
		font-size:4rem;
	}
}

.img-klecks {
	position:absolute;
	right:0;
	top:0;
	z-index:1;
	transform:translate(0%,-50%);
}

.img-klecks img {
	width:120px;
}

@media (min-width:768px) {
	.img-klecks {
		transform:translate(50%,-50%);
	}
	.img-klecks img {
		width:237px;
	}
}

/* Images */
.thumb-info {
	border-radius:0;
	background-color:transparent;
}

.thumb-info .thumb-info-wrapper {
	border-radius:0;
}

.thumb-info img {
	border-radius:0;
}

/* Section */
.section-gap {
	height:30vh;
	min-height:200px;
}

@media (max-width:992px) {
	.job-title {
		transform:none !important;
	}
}

/* Projekte */
.thumb-plus {
	width:30px;
	height:30px;
	display:block;
	position:relative;
}
.thumb-plus:before {
	content:"";
	width:30px;
	height:6px;
	position:absolute;
	left:0;
	top:12px;
	background:#000;
}
.thumb-plus:after {
	content:"";
	width:6px;
	height:30px;
	position:absolute;
	left:12px;
	top:0;
	background:#000;
}
.project-ajax-modal {
	z-index:1250;
	background:var(--pfully-dark);
	transform:translateY(-100%);
	transition:ease transform .5s;
	position:fixed !important;
	top: 0 !important;
	height:100vh;
	height: calc(var(--1dvh, 1vh) * 100);
	height:100dvh;
}

.project-ajax-modal.mfp-ready {
	transform:translateY(0);
}

.project-ajax-modal.mfp-removing  {
	transform:translateY(-100%);
}

.project-ajax-modal .mfp-container {
	padding:0;
}

.project-container {
	background:var(--pfully-dark);
}

.project-ajax-modal .mfp-close {
    left: 50%;
    background: var(--pfully-primary);
    opacity: 1;
    color: #000;
    width: 60px;
    top: 50px;
	font-size:2rem;
    transform: translateX(-50%);
	transition: ease all .4s;
}

.project-ajax-modal .mfp-close:hover {
	width: 80px;
	background:var(--pfully-dark);
	color:var(--pfully-primary);
}

.project-large-image {
	background-position:center;
	background-repeat:no-repeat;
	background-size:contain !important;
	/*background-color:var(--pfully-primary);*/
}

.project-info {
	position:absolute;
	right:0;
	bottom:50px;
	z-index:2;
	width:100%;
	padding:30px 30px 30px 30px;
	opacity:0;
	transform:translateY(-50%);
	transition: ease all .75s;
	transition-delay:.7s;
}

.mfp-ready .project-info {
	opacity:1;
	transform:none;
	background:#111 !important;
}


@media (min-width:576px) {
	.project-info {
		width:auto;
		padding:30px 100px 30px 30px;
	}
}

.project-info h4 {
	font-size: 1.125em;
	font-weight:600;
	text-transform:uppercase;
	margin:0;
}

.project-info h5 {
	font-size: 1.125em;
	font-weight:400;
}

.project-info p {
	font-size: 1.125em;
	font-weight:400;
}

@media (max-width:768px) {
	.no-bg-sm {
		background-image:none !important;
 	}
}

.sticky-wrapper {
	z-index:1210;
}

/* Horizontal Content */
.horizontal-content {
	
}

.offcanvas-horizontal .offcanvas-header {
	top:70px;
}

.modal-backdrop {
	/*z-index:1015;*/
}

.horizontal-content .container-horizontal-page .horizontal-single-page {
	width:100vw;
	height:auto;
	min-height:calc(100vh - 6rem);
	min-height:calc(calc(var(--1dvh, 1vh) * 100) - 6rem);
	min-height:calc(100dvh - 6rem);
	margin:3rem 0;
	max-width:100vw;
	float:left;
	padding:3rem 0;
	padding:0;
	position:relative;
	min-width:100vw;
}

@media (max-width:992px) {
	.horizontal-content .container-horizontal-page .horizontal-single-page {
		margin:90px 0 0 0;
		min-height:calc(100vh - 90px);
		min-height:calc(calc(var(--1dvh, 1vh) * 100) - 90px);
		min-height:calc(100dvh - 90px);
	}
}

.horizontal-content .container-horizontal-page .horizontal-single-page > .row {
	width:100%;
	height:auto;
}

.horizontal-content .container-horizontal-page .horizontal-single-page > .row .owl-carousel {
	
}

@media (min-width:992px) {
	.horizontal-content .container-horizontal-page .horizontal-single-page {
		height:calc(100vh - 6rem);
		height:calc(calc(var(--1dvh, 1vh) * 100); - 6rem);
		height:calc(100dvh - 6rem);
	}
	.horizontal-content .container-horizontal-page .horizontal-single-page > .row {
		height:calc(100% - 6rem);
	}
	.horizontal-content .container-horizontal-page .horizontal-single-page > .row .owl-carousel {
		max-height:70vh !important;
	}
}

.offcanvas {
	/*z-index:1020;*/
}

.offcanvas-header .btn-close {
	background-color:var(--pfully-primary);
	opacity:1;
	border-radius:0;
	width:40px;
}

.background-image-switch {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	background-position:center center;
	background-size:cover;
}

.background-image-switch img {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	object-fit:cover;
	transition:opacity .9s ease;
	opacity:0;
}

.background-image-switch img.show {
	opacity:1;
}