/* Grundlayout */
body {
  	margin: 0;
  	font-family: system-ui, sans-serif;
    background-color: #FFFFFF;
    color: #3d4448;
}

.fastfood{display: none;}

.info-box h2{
	margin-top: 0;
	font-size: 125%;
	hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    word-break: normal;
    overflow-wrap: break-word;
}

hr{
    border: 1px dashed;
    border-color: #CCC;
    margin-bottom: 40px;
    margin-top: 20px;
}

.kontakt{
	background-color: #fdc400;
    border: none;
    padding: 10px 25px;
    font-weight: bold;
    width: fit-content;
    cursor: pointer;
    z-index: 0;
    border-radius: 25px;
    font-size: 125%;
    margin-left: 5vw;
}

.innerburger{
	text-align: left;
    margin-left: 5vw;
    margin-top: 20px;
}

.kontakt a{
	color: #000000 !important;
}


h2 a{
  transition: all 0.3s;
  font-size: 120% !important;
  font-weight: bold;
  text-decoration: none !important;
  color: #3d4448;
  background-color: #F1F1F1;
  padding: 15px 30px;
  border-radius: 20px;
  margin-bottom: 0px;

  display: inline-flex;
  align-items: center;
  gap: 12px;
}

/* Kreis + Plus (nur 1 Pseudo-Element!) */
h2 a::before{
  content: "";
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #3d4448;

  /* Plus aus 2 Linien (horizontal + vertikal) */
  background-image:
    linear-gradient(#fff, #fff),   /* horizontal */
    linear-gradient(#fff, #fff);   /* vertikal */
  background-size:
    14px 2px,
    2px 14px;
  background-position:
    center,
    center;
  background-repeat: no-repeat;

  flex-shrink: 0;
  transition: transform 0.3s ease, background-color 0.3s ease, background-size 0.3s ease;
}

h2 a:hover{
  background-color: #CCC;
}

/* Hover: Kreis drehen + vertikale Linie "weg" -> Minus bleibt */
h2 a:hover::before{
  transform: rotate(180deg);
  background-color: #000;

  /* vertikale Linie wird auf 0 "zusammengedrückt" */
  background-size:
    14px 2px,
    0px 14px;
}


h3 a{
    transition: all 0.3s;
    font-size: 100% !important;
    font-weight: bold;
    text-decoration: none !important;
    color: #3e4448;
    background-color: #ffca00;
    padding: 15px 30px;
    border-radius: 20px;
    margin-bottom: 0px;

    display: inline-flex;
    align-items: center;
    gap: 12px;
}

/* Kreis + Plus */
h3 a::before{
    content: "";
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-color: #3e4448;

    /* Plus aus 2 Linien */
    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(#fff, #fff);
    background-size:
        12px 2px,
        2px 12px;
    background-position:
        center,
        center;
    background-repeat: no-repeat;

    flex-shrink: 0;
    transition: transform 0.3s ease, background-color 0.3s ease, background-size 0.3s ease;
}

h3 a:hover{
    color: #000000;
}

/* Hover → Minus + Drehung */
h3 a:hover::before{
    transform: rotate(180deg);
    background-color: #000;

    /* vertikale Linie verschwindet */
    background-size:
        12px 2px,
        0px 12px;
}


.site-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 2rem;
    background-color: rgb(238 244 245 / 60%);
    position: sticky;
    top: 0;
    z-index: 100;
    backdrop-filter: blur(10px);
  	-webkit-backdrop-filter: blur(10px); /* Für Safari */
}

.logo img {
  height: 50px;
}

.rightbtn{
    transition: all 0.3s;
    padding: 8px 25px 8px 25px;
    list-style: none;
    background-color: #000;
    border-radius: 25px;
    display: inline-block;
    margin-bottom: 0;
}

.rightbtn:hover{
	background-color: #666;
}

.rightbtn a {
    font-size: 120% !important;
    font-weight: bold;
    text-decoration: none !important;
    color: #FFFFFF;
}

.whitehead{
    background-image: url(../images/shader.jpg);
    background-size: 100% 100%;
    height: 8vw;
    margin-bottom: 40px;
    width: 94vw;
    margin-left: -6vw;
}

h1{
    color: #FFFFFF;
    text-align: right;
    position: absolute;
    margin-top: 3.5vw;
    right: 8vw;
	font-weight: 600;
}

#content{
    margin-left: 5%;
    width: 90%;
    margin-right: 5%;
    line-height: 1.5;
    margin-bottom: 100px;
}


.kontaktarea{
    padding-left: 6vw;
    padding-right: 6vw;
    margin-top: 75px;
    margin-bottom: 25px;
    line-height: 1.6;
}


.contentarea{
    padding-left: 6vw;
    padding-right: 6vw;
    margin-top: 25px;
    margin-bottom: 125px;
    line-height: 1.6;
}

.contentarea .content{

}

#content h1{
	color: #003e6a;
}

#content img{
	margin-left: 25px;
	margin-bottom: 10px;
}

#content h2{
	color: #003e6a;
}

#content h2 a, #content h2 a:visited{
	color: #FFFFFF;
    background-color: #003e6a;
    text-decoration: none;
    padding: 10px 30px 10px 30px;
    border-radius: 30px;
    font-size: 80%;
    transition: all 0.3s;
}

#content h2 a:hover{
    padding: 10px 20px 10px 40px;
}

.main-nav ul {
  list-style: none;
  display: flex;
  gap: 2rem;
  margin: 0;
  padding: 0;
}

.main-nav a {
  text-decoration: none;
  font-weight: bold;
  color: #0b2545;
}

.main-nav .button {
  background-color: #0b2545;
  color: #fff;
  padding: 0.5rem 1rem;
  border-radius: 999px;
}

/* HERO-BEREICH mit Hintergrundbild */
.hero {
  height: 40vw;
  position: relative;
}

.zwero {
  height: 10vw;
  position: relative;
    z-index: 200;
}

.overlay {
    position: absolute;
    padding: 2% 6%;
    display: inline-block;
    height: 40vw;
    width: 88%;
}

.overlay nav.nav{
  z-index: 9999;
}

.overlay nav.nav ul ul{
  position: absolute;
  z-index: 9999;
}

.zwoverlay {
    padding: 2% 6%;
}



.mainimg{
    background-image: url(../upload/Startseite/header_raw.jpg);
    background-size: 100% 100%;
    width: 100%;
    z-index: 0;
    border-top-right-radius: 30px;
    border-top-left-radius: 30px;
    height: 100%;
}


/* Top-Leiste mit Logo links und Navigation rechts */
.topbar {
	z-index: 0;
}

/* Logo oben links */
.logo {
    position: absolute;
    top: 3vw;
}

.logo img{
	width: 17.5vw;
	height: auto;
}

/* Navigation oben rechts */
.nav {
	padding: 0.5rem 1rem;
    font-weight: bold;
    width: fit-content;
    position: absolute;
    top: 2vw;
    right: 7vw;
}

/* Button unten links */
/* Button unten links */
.button1 {
    background-color: #ffe069;
    border: none;
    padding: 10px 15px;
    font-weight: bold;
    color: #000000;
    width: fit-content;
    cursor: pointer;
    z-index: 0;
    position: absolute;
    margin-left: 4%;
    top: 36vw;
    border-radius: 25px;
    font-size: 125%;
    transition: all 0.3s;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

/* Kreis + Plus */
.button1::before{
    content: "";
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-color: #000;

    background-image:
        linear-gradient(#fff, #fff),
        linear-gradient(#fff, #fff);
    background-size:
        12px 2px,
        2px 12px;
    background-position: center, center;
    background-repeat: no-repeat;

    flex-shrink: 0;
    transition: transform 0.3s ease, background-size 0.3s ease, background-color 0.3s ease;
}

.button1:hover {
    background-color: #FFFFFF;
}

/* Hover → Minus */
.button1:hover::before{
    transform: rotate(180deg);

    background-size:
        12px 2px,
        0px 12px; /* vertikale Linie verschwindet */
}


/* Info-Boxen */
.info-boxes {
	display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2vw;
    padding: 4vw 6vw;
}

.info-box {
  background-color: #fff5dd;
  padding: 2rem;
  border-radius: 1rem;
  text-align: left;
}

.zwo-box {
  background-color: #fff5dd;
  padding: 1rem;
  border-radius: 1rem;
  text-align: centrer;
}

.zwo-box a{
	color: #000000;
	text-decoration: underline;
}

.zwo-box a:hover{
	color: #000000;
	text-decoration: none;
}

.info-box h1{
    font-size: 140%;
    margin-top: 0;
}

.info-box p{
  line-height: 1.5;
  text-align: left;
}

.info-box .outline-button{
	font-size: 100%;
    float: right;
}

.info-box img{
	width: 75px;
	height: auto;
	float: left;
	margin-right: 20px;
}


.zwo-box img{
	width: 40%;
	height: auto;
}

.info-box h3{
	font-size: 150%;
    text-align: left;
    padding: 0;
    margin-top: 10px;
}

.info-box .icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

@media (max-width: 768px) {
  .main-nav ul {
    flex-direction: column;
    gap: 1rem;
    background: #eef4f5;
    padding: 1rem;
    position: absolute;
    top: 70px;
    right: 2rem;
    display: none;
  }

  .main-nav.open ul {
    display: flex;
  }

  .menu-toggle {
    display: block;
    cursor: pointer;
  }

  .main-nav-toggle {
    display: block;
  }
}

/* Footer */

#footer {
    width: 100%;
    height: 275px !important;
    display: inline-block;
    position: relative;
    background-color: #3D4448;
    z-index: 13;
}

#footer h5 {
    font-size: 200%;
    margin-top: 0;
    margin-bottom: 15px;
}

#foocenter {
	width: 88vw;
    left: 6vw;
    margin-right: -50%;
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    position: relative;
    margin-top: 30px;
}

#foobar {
    color: #FFFFFF;
    font-size: 14px;
    margin-top: 8px;
    width: 45%;
    float: left;
    text-align: left;
    line-height: 1.5;
}

#foobar a, #foobar a:visited {
    color: #FFFFFF;
    text-decoration: none;
}

#foobar a:hover {
    text-decoration: underline;
}

#socialbar {
    color: #FFFFFF;
    font-size: 14px;
    float: left;
    text-align: left;
    margin-top: 8px;
    line-height: 1.5;
}

#socialbar a img {
    width: auto;
    height: 18px;
    margin-top: 0;
    margin-right: 5px;
    margin-left: 0;
    margin-bottom: 0;
    -moz-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

#socialbar a img:hover{
    width: auto;
    height:16px;
    margin-top: 1px;
    margin-right: 6px;
    margin-left: 1px;
    margin-bottom: 1px;
}

#socialbar a, #socialbar a:visited {
    color: #FFFFFF;
    text-decoration: none;
}

#socialbar a:hover {
    text-decoration: underline;
}

#twobar {
    color: #FFFFFF;
    font-size: 14px;
    margin-top: 8px;
    width: 25%;
    float: right;
    text-align: right;
    line-height: 1.5;
}

#twobar a, #twobar a:visited {
    color: #FFFFFF;
    text-decoration: none;
}

#twobar a:hover {
    text-decoration: underline;
}


#groupbar {
    color: #FFFFFF;
    font-size: 14px;
    margin-top: 8px;
    float: right;
    line-height: 1.5;
    text-align: right;
}



#logolove {
    width: 100%;
    text-align: center;
    position: relative;
    display: inline-block;
    background: #262a2f;
    padding: 20px 0 20px 0;
    z-index: 13;
	margin-top: -5px;
}

#logolove img {
    width: 200px;
    height: auto;
    transition: all 0.3s;
}

.content p img{
	margin-left: 20px;
    margin-bottom: 20px;
}

/* =========================
   TABLET (bis 1024px)
   ========================= */
@media (max-width: 1024px) {
	
	.nav{display: none;}
	
	.fastfood{        
		display: unset;
        position: absolute;
        top: 0;
        right: 0;
		z-index: 200;
	}
	
	#menuToggle{
    display: block;
    position: absolute;
	top: 40px;
    right: 40px;
    z-index: 1;
    -webkit-user-select: none;
    user-select: none;
}

ul{
	margin: 0;
	padding: 0;
	line-height: 1.35;
}
	
#menuToggle input
{
  display: block;
  width: 40px;
  height: 32px;
  position: absolute;
  top: -7px;
  left: -5px;  
  cursor: pointer;
  opacity: 0; /* hide this */
  z-index: 2; /* and place it over the hamburger */
  -webkit-touch-callout: none;
}

/*
 * Just a quick hamburger
 */
#menuToggle span
{
  display: block;
  width: 30px;
  height: 4px;
  margin-bottom: 4px;
  position: relative;
  background: #000000;
  border-radius: 3px;
  z-index: 1;
  transform-origin: 4px 0px;
  transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
  background 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
  opacity 0.55s ease;
}

#menuToggle span:first-child
{
  transform-origin: 0% 0%;
}

#menuToggle span:nth-last-child(2)
{
  transform-origin: 0% 100%;
}

/* 
 * Transform all the slices of hamburger
 * into a crossmark.
 */
#menuToggle input:checked ~ span
{
  opacity: 1;
  transform: rotate(45deg) translate(-2px, -1px);
  background: #FFFFFF;
}

/*
 * But let's hide the middle one.
 */
#menuToggle input:checked ~ span:nth-last-child(3)
{
  opacity: 0;
  transform: rotate(0deg) scale(0.2, 0.2);
}

/*
 * Ohyeah and the last one should go the other direction
 */
#menuToggle input:checked ~ span:nth-last-child(2)
{
  opacity: 1;
  transform: rotate(-45deg) translate(0, -1px);
}

/*
 * Make this absolute positioned
 * at the top left of the screen
 */
#menu {
    position: fixed;
    width: 50vw;
    margin: 0;
    padding-top: 50px;
    background: #1b1c1d;
    list-style-type: none;
    -webkit-font-smoothing: antialiased;
    transform-origin: 0% 0%;
    transform: translate(100%, 0);
    transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
    height: calc(100vh - 100px) !important;
    font-size: 22px;
    top: 0px;
    right: 0px;
    overflow-y: scroll;
    padding-bottom: 50px;
}

#menu li{
    padding: 0px 5vw;
    font-size: 25px;
    color: #FFFFFF;
    text-align: left;
	background-image: none;
	width: 100%;
}
	
	#menu hr{
		border: 1px dashed;
    	border-color: #CCC;
    	margin-bottom: 20px;
    	margin-top: 20px;
	}

/*
 * And let's fade it in from the left
 */
#menuToggle input:checked ~ ul
{
  transform: scale(1.0, 1.0);
  opacity: 0.95;
  text-align: center;
}

.klikka:active ~ ul{
  transform: scale(1.0, 1.0);
  opacity: 0.95;
      
}

#menu a{
    text-decoration: none;
    color: #ffffff;
    transition: color 0.3s ease;
}

#menu a:hover{
  color: #AEA171;
}

	
	.overlay {
    	position: absolute;
    	padding: 2% 2%;
    	display: inline-block;
    	height: 44vw;
    	width: 96%;
	}
	
	.hero {
    	height: 45vw;
    	position: relative;
	}
	
	.info-boxes {
    	display: grid;
    	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    	gap: 2vw;
    	padding: 3vw 2vw;
	}
	
	h1 {
    	position: absolute;
        right: 3vw;
        width: 40vw;
        line-height: 1;
		bottom: 0;
	}
	

  #footer{
    height: auto !important;     /* wichtig, sonst wird's abgeschnitten */
    padding-bottom: 25px;
  }

  #foocenter{
    width: 92vw;
    left: 4vw;
    margin-top: 25px;
    -moz-transform: none;
    -ms-transform: none;
    transform: none;
  }

  #footer h5{
    font-size: 160%;
    margin-bottom: 10px;
  }

  /* 2 Spalten Layout */
  #foobar{
    width: 55%;
    float: left;
  }

  #socialbar{
    width: 40%;
    float: right;
    text-align: left;
  }

  #twobar{
    width: 40%;
    float: right;
    text-align: left;
    margin-top: 18px; /* unter Socialbar */
  }
	
	.contentarea {
    	padding-left: 3vw;
    	padding-right: 3vw;
    	margin-top: 25px;
    	margin-bottom: 125px;
    	line-height: 1.6;
	}
	
	
	.whitehead{
        background-image: url(../images/shader.jpg);
        background-size: 100% 100%;
        height: 15vw;
        margin-bottom: 30px;
        width: 94vw;
        margin-left: 0;
        position: relative;
	}
	
	.logo img {
    	width: 22.5vw;
    	height: auto;
	}
	
	.content p img{
		width: 50%;
		margin-left: 20px;
        margin-bottom: 20px;
	}
	
	
}


/* =========================
   MOBILE (bis 600px)
   ========================= */
@media (max-width: 600px) {

  #footer{
    height: auto !important;
    padding: 20px 0 25px 0;
  }

  #foocenter{
    width: 92vw;
    left: 4vw;
    margin-top: 10px;
    transform: none;
  }

  #footer h5{
    font-size: 150%;
    margin-bottom: 8px;
  }

  /* alles untereinander */
  #foobar,
  #socialbar,
  #twobar,
  #groupbar{
    width: 100%;
    float: none;
    text-align: left;
    margin-top: 18px;
  }

  #foobar{
    margin-top: 0;
  }

  /* Links besser klickbar machen */
  #socialbar a,
  #twobar a,
  #foobar a{
    display: inline-block;
    padding: 6px 0;
  }

  /* Icons etwas größer für Touch */
  #socialbar a img{
    height: 20px;
    margin-right: 8px;
  }

  #socialbar a img:hover{
    height: 20px;   /* auf Mobile kein "Wackeln" beim Hover */
    margin: 0 8px 0 0;
  }
	
	#menuToggle {
        width: 30px;
        height: 30px;
        position: absolute;
        top: 20px;
        right: 20px;
    }
	
	 
	#menu {
    	width: 100vw;
	}
	
	.overlay {
        padding: 0;
        height: 64vw;
        width: 100%;
    }
	
	.mainimg {
    	background-image: url(../upload/Startseite/header_mobile.jpg);
    	border-top-right-radius: 0;
    	border-top-left-radius: 0;
	}
	
	.logo img {
    	width: 42.5vw;
	}
	
	.hero {
        height: 65vw;
	}
	
	.button1 {
	    top: 30vw;
	}
	
	.whitehead {
        background-image: url(../images/shader-mobile.jpg);
        background-size: 100% 100%;
        height: 25vw;
        margin-bottom: 30px;
        width: 97vw;
        margin-left: 0;
    }
	
	h1 {
	    right: 4vw;
    	line-height: 1;
		margin-top: 7vw;
		width: 70vw;
		bottom: -10px;
	}
	
	.content p img {
		width: 100%;
		margin-bottom: 20px;
	}
		
}
