/* Roboto Condensed - Regular */
@font-face {
  font-family: "Roboto";
  src: url("./font/Roboto-Light.woff2") format("woff2"),
       url("./font/Roboto-Light.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Roboto Condensed - Bold */
@font-face {
  font-family: "Roboto";
  src: url("./font/Roboto-Medium.woff2") format("woff2"),
       url("./font/Roboto-Medium.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
body, html, #root {
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: "Roboto", Arial, sans-serif;
}
* {
  font-family: "Roboto", Arial, sans-serif;
}
h3 a, p a, li a {
	color: inherit !important
}
h3 a::before, p a::before, li a::before {
	display: inline-block;
	content: '> ';
	margin-right: 5px
}
.detail .starter .starter-button a:after {
    content: "";
    position: absolute;
    right: 8px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMi42ODciIGhlaWdodD0iMTMuNDY1IiB2aWV3Qm94PSIwIDAgMjIuNjg3IDEzLjQ2NSI+PGcgaWQ9IkdydXBwZV8yOTEiIGRhdGEtbmFtZT0iR3J1cHBlIDI5MSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMi4xMjEgMi4xMjEpIj48bGluZSBpZD0iTGluaWVfMzUyIiBkYXRhLW5hbWU9IkxpbmllIDM1MiIgeDE9IjkuMjIyIiB5Mj0iOS4yMjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMjIyKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIvPjxsaW5lIGlkPSJMaW5pZV8zNTMiIGRhdGEtbmFtZT0iTGluaWUgMzUzIiB4Mj0iOS4yMjIiIHkyPSI5LjIyMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS13aWR0aD0iMyIvPjwvZz48L3N2Zz4=");
    display: block;
    width: 20px;
    background-size: 18px;
    height: 100%;
    top: 0;
    background-position: center;
    background-repeat: no-repeat;
    }
.app {
  width: 100%;
  height: 100%;
}
button:not(.big) {
  background-color: transparent;
  border: none;
  font-size: 1.4em;
  margin-left: 20px;
}
.screensaver {
  width: 100%;
  height: 100%;
  position: relative;
}

.screensaver img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: fade 1s;
}
.show-output {
  display: block;
  text-align: left;
      width: 100%;
    padding: 3.8em 7em !important;
    max-width: 1920px;
    margin: auto;
}
.overlay {
  position: absolute;
  bottom: 40px;
  width: 100%;
  text-align: center;
  color: white;
  font-size: 30px;
}
.left-show {
  display: block;
}
.left-show button, .right-show button {
  display: block;
}

@keyframes fade {
  from { opacity: 0.7; }
  to { opacity: 1; }
}

.menu {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 30px;
}
.siteid.page-menu:not([class*="page-p"]){
  background-size: cover;
  height: 100vh;
  background-position: center center;
  width: 100vw;
}
    .detail {
      position: relative;
      margin: auto;
    }
  .backto {
    position: fixed;
    bottom: 0px;
    left: 0;
    right: 0;
    width: 100%;
    background-color: #fff;
    box-shadow: 0px -3px 10px rgba(0,0,0,0.16);
    padding: 0.8em 7em;
    z-index: 999;
  }
  .backto button {
    font-weight: bold;
    color:#003A79;
  }
  button, a {
    cursor: pointer;
  }
.headline.subline {
  color: #C4C4C4;
  text-transform: uppercase;
  font-weight: bold;
      font-size: 2.7em;
      margin-top: 0;
      margin-bottom: 1.5em;
}
.siteid {
    overflow-x: hidden;
}
button.big {
      font-size: 2.5em;
    color: #fff;
    border: none;
    line-height: 1;
    background-color: transparent;
    text-decoration: none;
    text-transform: uppercase;
    margin-bottom: 0.5em;
    font-weight: bold;
    display: flex;
    gap: 20px;
    text-align: left;
    margin-bottom: 1.2em;
}
button .big-sub {
  font-size: 1.5rem;
  
}
h2.headline {
  font-size: 4em;
      color: #fff;
      font-weight: bold;
      text-transform: uppercase;
      margin-bottom: 0;
}
.logo {
  position: absolute;
  top: 60px;
  right: 60px;
}
.lang {
  position: absolute;
  bottom: 60px;
  right: 60px;
}
.lang img {
  border: 1px solid #fff;
}

.starter-inner h3 {
  color: #fff !important;
}
.detail img {
  width: 100%;
  object-fit: cover;
}

.back {
  margin-bottom: 20px;
}
button.back {
  width: 50px;
  height:50px;
  margin-left: 0;
  line-height: 38px;
  border-radius: 100%;
  box-shadow: 0px 2px 12px rgba(0,0,0,0.1);
}
.subOverlay {
  position: fixed;
  inset: 0;

  /* 🔥 leicht transparent schwarz, Hintergrund bleibt sichtbar */
  background: rgba(0, 0, 0, 0.35);

  display: flex;
  justify-content: center;
  align-items: flex-end;

  z-index: 999;
}

/* 🔥 DRAWER (85vh, weiß, schwarze Schrift) */
.drawer {
  width: 100%;
  height: 85vh;

  background: white;
  color: black;

  border-radius: 20px 20px 0 0;
  padding: 30px;

  overflow-y: auto;

  transform: translateY(100%);
  animation: slideUp 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;

  position: relative;
}

/* EXIT ANIMATION */
.drawer.closing {
  animation: slideDown 0.45s cubic-bezier(0.4, 0, 1, 1) forwards;
}

@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

@keyframes slideDown {
  from { transform: translateY(0); }
  to { transform: translateY(100%); }
}

/* 🔥 CLOSE BUTTON */
.closeBtn {
  position: absolute;
  top: 10px;
  right: 20px;

  font-size: 28px;
  background: none;
  border: none;

  color: black;
  cursor: pointer;
}
.detail h1 {
    font-size: 4em;
        font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 0;
    color: #A1A0A0;
}
.detail h2 {
    font-weight: bold;
    font-size: 2.5em;
    margin-top: 0;
    text-transform: uppercase;
      color: #C8C6C6;
}
.col-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2em;
  padding-top: 2em;
}
.detail .starter {
  background-size: cover;
  background-position: center center;
}
.detail[class*="page-p"] {
  max-width: 100%;
}
.detail .col-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:2em
}
.detail .content-inner {
  max-width: 1200px;
  margin: auto;
  width: 100%;
}
.detail .karte .st7 {
  font-weight: bold;
}
.detail .starter {
  padding-top: 6em;
  padding-bottom: 6em;
  min-height: 27vw;
  align-content: center;
}
.detail .starter .starter-button {
  text-align: center;
  padding-top: 3.5em;
}
.detail #content ul {
  padding-left: 1.5em;
}
.detail #content li {
  list-style-type: square;
  padding-left: 0.2em;
}
.detail #content li::marker {
  color: #003A79;
}
.detail #content .section {
  padding-top: 4em;
  padding-bottom: 4em;
}
.detail {
  padding-top: 2em;
}
.detail .section.grey {
  background-color: #F5F5F5;
}
.detail .starter .starter-button a {
  background-color: #003A79;
  color: #fff;
  padding: .6em 2.2em .6em .8em;
  border:1px solid #fff;
  border-radius: 3px;
  text-decoration: none;
  font-weight: bold;
  position: relative;
  text-transform: uppercase;
}
.detail #content p.bilderunterschrift {
	color: #003A79;
    font-size: 1em;
}
html {
  scroll-behavior: smooth;
}
.detail .html {
  padding-bottom: 3.4em;
}
.detail #content {
  padding-top: 2em;
}
.detail #content h3 {
  text-transform: uppercase;
  color: #A1A0A0;
  font-size: 1.5em;
  font-weight: bold;
}
.detail #content p, .detail #content li {
   font-size: 1.25em;
   line-height: 1.5;
   max-width: 1150px;
}
.detail #content p, .detail #content ul {
  margin-bottom: 1.2em;
}
.detail .section.blue {
  color:#fff !important;
  background-color: #003A79;
}
.detail #content .section.blue p {
  color: #fff;
  font-size: 2em;
  max-width: 1100px;
}
.detail .starter-inner {
   max-width: calc(1200px - 6em);
   padding: 2.5em 3em;
   justify-content: center;
   align-items: center;
   background-color: rgba(0,0,0,0.5);
   column-rule: #fff !important;
   margin: auto;
}
.detail .starter-inner h3, .detail .starter-inner p {
  color: #fff;
  font-weight: bold;
  line-height: 1.4;
}
 .detail .starter-inner p {
  max-width: 88%;
  font-size: 1.3em;
 }
 .detail .starter-inner h3 {
  font-size: 1.5em;
  text-transform: uppercase;
 }


 /***Lightbox +**/
 .video-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 99999;
}

.video-box {
  width: 80vw;
  max-width: 1000px;
  position: relative;
}

.video-box video {
  width: 100%;
  border-radius: 10px;
}

.close-video {
  position: absolute;
  top: -40px;
  right: 0;
  font-size: 30px;
  background: none;
  border: none;
  color: white;
  cursor: pointer;
}
.detail #content .section.footer {
	padding-top: 2em;
	padding-bottom: 2em
}
.detail #content .section.footer .content-inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.detail #content .section.footer .content-inner div:last-child {
	text-align: right
}
.detail #content .section.footer .content-inner a {
	text-decoration: none;
	color:#000
}

/** SLIDER ***/
.slider {
  position: relative;
  width: 100%;
  overflow: hidden;
  max-width: 100%;
}
hr {
	margin-top: 2em;
	margin-bottom: 2em
}
.slide {
  position: absolute;
  width: 100%;
   max-width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.slide.active {
  opacity: 1;
   position: relative;
}

.slide img {
  width: 100%;
   max-width: 100%;
  height: auto;
  object-fit: cover;
}

/* Caption */
.caption {
  position: relative;
  width: 100%;
   max-width: 100%;
  text-align: center;
  color: #003A79;
  font-weight: bold !important;
  font-size: 1.5em;
  padding: 2.2em 0 1.2em;
}
* {
  box-sizing: border-box;
}
/* Arrows */
.arrow {
  position: absolute;
  bottom: 10px;
  padding: 0;
  cursor: pointer;
  user-select: none;
  padding-top: 5px;
padding-bottom: 5px;
}

.arrow.left {
  left: 0px;
}

.arrow.right {
  right: 0px;
}


@media (max-width:1300px) {
	.detail .content-inner {
		padding-left: 20px;
		padding-right: 20px
	}
	.detail #content .section {
	    padding-top: 2em;
	    padding-bottom: 2em;
	}
	.detail .starter-inner {
		margin-left: 20px;
		margin-right: 20px;
	}
}
@media (max-width:800px) {
	.detail h1 {
		margin-top: 0;
        font-size: 3.5em;
	}
	.detail h2 {
		    font-size: 2.2em;
	}
	.detail .starter-inner p {
		width: 100%;
		max-width: 100%
	}
	.detail .starter {
		padding-top: 4em;
		padding-bottom: 4em
	}
	.detail .content-inner {
	    max-width: 100%;
	    width: auto;
	}
	.detail .starter-inner {
		padding: 1.5em 2em
	}
	.detail #content .section.blue p {
		font-size: 1.8em !important
	}
	.detail #content p, .detail #content li, .detail .starter-inner p {
		font-size: 1.15em !important
	}
	.caption {
		
	}
	.arrow img {
		max-width: 40px
	}
}
@media (max-width:480px) {
	.detail h1 {
		margin-top: 0;
        font-size: 3em;
	}
	.detail h2 {
		    font-size: 2em;
	}
	.detail #content .section.blue p {
		font-size: 1.6em !important
	}
}