/****************************** Readme ********************************
Project: 

Color H1: #e1c646;

Media Queries
/* Small only 
@media screen and (max-width: 39.9375em) {}

/* Medium and up 
@media screen and (min-width: 40em) {}

/* Medium only
@media screen and (min-width: 40em) and (max-width: 63.9375em) {}

/* Large and up 
@media screen and (min-width: 64em) {}

/* Large only
@media screen and (min-width: 64em) and (max-width: 74.9375em) {}
/****************************** Font *********************************/

:root {
  --primary-color: #000;
  --secondary-color: #fff;
  --text-color: #242726;
  --dark-green: #3d453e;
  --creme: #c6c6bf;
  --hover: #789485;
  --shadow-color: rgba(0,0,0,0.25);
  --highlight-color: rgba(255,255,255,0.15);;
  --shadow-color-light: #fff;
  --primary-reveal: #fff;
  --secondary-reveal: #dedede;
}

@font-face {
    font-family: 'brother_xlbook';
    src: url('../fonts/brother_xl_book-webfont.woff2') format('woff2'),
         url('../fonts/brother_xl_book-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'brother_xlheavy';
    src: url('../fonts/brother_xl_heavy-webfont.woff2') format('woff2'),
         url('../fonts/brother_xl_heavy-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'brother_xlbold';
    src: url('../fonts/brother_xl_bold-webfont.woff2') format('woff2'),
         url('../fonts/brother_xl_bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;

}

/****************************** Basic *********************************/
body {
	background-color: #f0eae0;
	font-family: "Montserrat", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 1rem;
	color: var(--text-color);
}

p {
	line-height: 1.7;
}

strong {
	text-transform: uppercase;
	font-family: 'brother_xlbold';
	font-weight: 900;
}

a {
	color: #555;
}

a.active {
	color: #333;
}

a:hover,
a:focus {
	color: #333;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'brother_xlbold';
	text-transform: uppercase;
	color: var(--primary-color);
}

h1 {
	position: relative;
	font-size: 5rem;
	color: var(--primary-color);
	text-transform: uppercase;
	text-align: center;
	margin-bottom: 0;
	font-smooth: always;
	animation: neon 3s infinite;
}

.stage h1 {
	color: #fff;
}

h2 {
	color: var(--dark-green);
}

h6 {
	color: var(--dark-green);
}

.button {
	background-color: #242726;
	-webkit-transition: all 1.5s ease;
	-moz-transition: all 1.5s ease;
	-o-transition: all 1.5s ease;
	transition: all 1.5s ease;
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	padding: 0.65em 1em;
	padding: 1rem !important;
	border-radius: 15px;

}

.button:hover {
	background-color: #3d453e;
	box-shadow: 0px 0px 13.95px 1.05px rgba(255,255,255,.4);
}

.custom-lightboxes{
    display: none;
}

/****************************** Off-Canvas Nav *********************************/
img.logo {
	max-height: 64px;
}

#off-canvas-top img.logo {
	margin-bottom: 1rem;
}

.position-top {
	overflow: visible;
	height: auto;
	transition: all 0.5s ease-out;
}

.submenu {
	background: #ddd;
	border: 0 none;
}

#off-canvas-top > .menu {
	padding-top: 1.5rem;
}

.off-canvas {
	background: #fff;
	transition: all 0.75s ease-out;
}

.off-canvas-toggle {
	width: 100%;
}
.off-canvas-toggle button {
	width: 100%;
	padding: 0.75rem 0.75rem 0.6rem;
	text-align: left;
	background: #ccc;
	cursor: pointer;
}

.close-button {
	right: 1rem;
    top: .75rem;
    font-size: 1em;
    line-height: 1;
    z-index: 9;
}

.mail-button {
	position: absolute;
	left: 1rem;
    top: 1rem;
    font-size: 1em;
    line-height: 1;
    z-index: 9;
}

.off-canvas.is-transition-overlap {
	opacity: 0;
	transition: all 0.75s ease-out;
}

.off-canvas.is-open {
	opacity: 1;
	transition: all 0.75s ease-out;
}

/****************************** Hero & Bokeh Styles *********************************/
    :root{
      --mx: .5; /* Maus X (0..1) */
      --my: .5; /* Maus Y (0..1) */
      --zoom-scale-from: 1;
      --zoom-scale-to: 1.1; /* subtiler Zoom */
      --rotate-from: 0deg;
      --rotate-to: 2deg; /* sehr dezente Drehung */
      --bokeh-count: 45;
      --bokeh-min: 18px;  /* min size */
      --bokeh-max: 150px; /* max size */
    }

    * { box-sizing: border-box; }
    html, body {
      height: 100%;
      margin: 0;
      font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    }

    /* Vollflächiger Container */
    .stage {
      position: relative;
      height: 100vh;
      width: 100%;
      z-index: 999;
      inset: 0;
      overflow: hidden;
      isolation: isolate;
    }

    /* Hintergrundbild mit Zoom+Rotation */
    .background {
      position: absolute;
      inset: 0;
      background: url('../images/background.jpg') center/cover no-repeat;
      transform-origin: center center;
      animation: slowZoomRotate 20s ease-in-out infinite alternate;
      filter: brightness(1) contrast(1.05);
      will-change: transform;
      z-index: 1;
    }

    @keyframes slowZoomRotate {
      from { transform: scale(var(--zoom-scale-from)) rotate(var(--rotate-from)); }
      to   { transform: scale(var(--zoom-scale-to)) rotate(var(--rotate-to)); }
    }

    /* Bokeh-Layer */
    .bokeh {
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 2;
      /* optional etwas Farbe auf das Licht geben */
      /* mix-blend-mode: screen; */
    }

    .dot {
      position: absolute;
      border-radius: 50%;
      background: rgba(255,255,255,0.28); /* neutral weißes Licht */
      filter: blur(18px);
      opacity: .55;
      /* Weiche Kanten, bessere Performance */
      will-change: transform, opacity;
      transition: opacity .6s ease;
    }

    /* Inhaltsebene (optional) */
    .content {
      	position: relative;
      	z-index: 3;
       	display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: normal;
		align-content: stretch;
      	place-items: center;
      	height: 100%;
      	color: var(--text-color);
      	text-shadow: 0 2px 10px rgba(0,0,0,.35);
      	padding: 2rem;
      	height: 75vh;
    }

    .content .content-item {
    	display: block;
		flex-grow: 0;
		flex-shrink: 1;
		flex-basis: auto;
		align-self: auto;
		order: 0;
		padding: 1.5rem 0;
    }

    .content h1 { font-weight: 600; letter-spacing: .2px; margin: 0 0 .25rem; }
    .content p { opacity: .85; max-width: 60ch; margin: 0; }

    /* Headline – moderner Look */
	.headline{
	  --stagger: .06s;      /* Zeitversatz je Zeichen */
	  --delay: .15s;        /* Startverzögerung */
	  --rise: 20px;         /* anfängliche Y-Verschiebung */
	  --blur: 20px;         /* anfänglicher Blur */
	  --parallax: 0;      /* max. Maus-Parallax */
	  line-height: 1.1;
	  letter-spacing: .01em;
	  font-weight: 700;
	  display: inline-block;
	  position: relative;
	  will-change: transform;
	  /* subtiler, lebendiger Farbverlauf im Text */
	  background: linear-gradient(120deg,#d7efe0 0%,#f0fff7 40%,#cfe7d8 70%,#d7efe0 100%);
	  background-size: 200% 100%;
	  -webkit-background-clip: text;
	  background-clip: text;
	  color: transparent;
	  animation: headlineTint 8s ease-in-out infinite alternate;
	}


	/* Einzelzeichen-Animation */
	.headline .char{
	  display:inline-block;
	  transform: translateY(var(--rise)) scale(.98);
	  filter: blur(var(--blur));
	  opacity:0;
	  animation: rise .9s cubic-bezier(.2,.7,.2,1) forwards;
	  animation-delay: calc(var(--i) * var(--stagger) + var(--delay));
	}

	/* Keyframes */
	@keyframes rise{
	  to{ transform: translateY(0) scale(1); filter: blur(0); opacity:1; }
	}
	@keyframes underlineGrow{
	  to{ width:72%; }
	}
	@keyframes headlineTint{
	  to{ background-position: 100% 0; }
	}

	/* Parallax (wird per JS via CSS-Variable gesetzt) */
	.headline{ transform: translate3d(var(--px,0), var(--py,0), 0); }

	/* Barrierefreiheit: Animationen reduzieren */
	@media (prefers-reduced-motion: reduce){
	  .headline, .headline .char{ animation: none !important; filter:none; transform:none; opacity:1; }
	  .headline::after{ width:60%; }
	}

/****************************** Custom Styles *********************************/
#top {
    position: absolute;
    top: 0;
    left: 0;
}

img.logo-nav-mobile {
	display: block;
	max-width: 100px;
	margin: 1rem auto;
}

.logo-nav {
	text-align: center;
}

.mail {
	padding-top: .5rem;
}

img.logo-off-canvas {
	display: block;
	max-width: 100px;
	margin: 1rem auto;
}

section.main-nav {
	padding-top: 2rem;
}

section.main-nav ul {
	margin: 0;
}

section.main-nav ul li {
	list-style: none;
	display: inline-block;
}

img.logo-footer,
img#logo {
	max-width: 120px;
}

ul.quick-info li a,
ul.sprachteiler li a {
	padding: 0.7rem .25rem;
	display: block;
	line-height: 1;
}

ul.quick-info {
	margin-top: 1rem !important;
	background: var(--creme);
}

section#main-nav ul.sprachteiler li,
section#main-nav button.close-button i {
	color: #fff;
}

ul.quick-info li a i {
	font-size: .85rem;
}

img.icon {
	position: absolute;
	margin: 0 auto;
	bottom: 0;
	z-index: 99;
	left: 50%;
	transform: translateX(-50%) !important;
}

ul.main-menu {
	margin: 0 2rem !important;
	border-radius: 100px;
	justify-content: space-between;
	align-items: center;
}

.animate-in {
  opacity: 0;
  filter: blur(10px);
  transition: all 1s ease-out;
  transform: translateY(30px);
}

.animate-in.visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

@keyframes fadeUp {
  0% {
    opacity: 0;
    filter: blur(10px);
    
  }
  100% {
    opacity: 1;
    filter: blur(0);
    
  }
}

p.hero-entry {
	background: rgba(255, 255, 255, .75);
	margin-bottom: 1rem;
}

section.main-content {
	position: relative;
	padding: 6rem 0;
}

section.main-content h1 {
	color: #576056;
	font-size: 1.8rem;
	text-align: left;
	margin-bottom: 2rem;

}

span.heading {
	color: #fff;
	background-color: var(--dark-green);
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 1px 7px;
	display: inline-block;
	margin-bottom: 1rem;
}

img.chart {
	max-width: 400px;
	opacity: 0.5;
	bottom: 0;
	right: 0;
}

.col-right {
	position: relative;
}

section#vision {
	background: url('../images/triangles.png') top no-repeat #789485;
	background-blend-mode: multiply;
	background-size: 15%;
	background-position: 85% 100%;
	padding: 6rem 0;
}

footer.main {
	background: var(--dark-green);
	padding: 3rem 0 1.5rem;
	color: #fff;
}
footer.main a,
footer.main h4 {
	color: var(--creme);
}

#projekte p.small {
	font-size: 90%;
	line-height: 1;
}

section#projekte {
	max-width: 1920px;
	margin: 0 auto;
}

/****************************** Responsive Styles *********************************/
/* Small only */
@media screen and (max-width: 39.9375em) {
	.entry-content {
		text-align: center;
	}
	.stage h1 {
		font-size: 1.8rem;
	}
	.stage img.icon {
		max-width: 70px;
	}
	#fixed-wrapper {
		padding-top: 0 !important;
	}
	section.main-nav {
		padding-top: 0;
	}
	ul.sprachteiler {
		background: var(--dark-green);
	}
	.small-center {
		text-align: center;
	}
	h4.hfooter {
		display: none;
	}
	img.logo-footer {
		margin-bottom: 2rem;
	}
	.slide-content h2 {
		font-size: 2rem;
	}
}

/* Medium and up */
@media screen and (min-width: 40em) {
}

/* Medium only */
@media screen and (min-width: 40em) and (max-width: 63.9375em) {
	.slide-content h2 {
		font-size: 3rem;
	}
}

/* Large and up */
@media screen and (min-width: 64em) {}

/* Large only */
@media screen and (min-width: 64em) and (max-width: 74.9375em) {}