:root {
    /* typography */
    --text-xl: 2.6rem;
    --text-l:2.2em;
    --text-m: 1.7rem;
    --text-sm: 1.3rem;
    --text-s: 1.1rem;
    --text-xs: 0.94rem;

    --abstand-xs:2px;
    --abstand-s:16px;
    --abstand-sm:50px;
	--abstand-m:80px;
	--abstand-l:120px;
    --abstand-xl:150px;
    
    --abstand-header:145px;
    --maincolor-gruen: #A2CF44;
    --maincolor-hellgruen:#e5f0d4;
    --maincolor-dunkelgruen:#6fa402;
    --maincolor-hellgrau:#f8f8f8;
    --maincolor-dunkel: #363741;
}

@media(max-width: 1024px){
  :root {
    --text-xl: 2.3rem;
    --text-l: 1.7rem;
    --text-m: 1.5rem;
    --text-sm: 1.05rem;
    --text-s: 1rem;
    --text-xs: 0.9rem;

    --abstand-xs:6px;
    --abstand-s:10px;
    --abstand-sm:35px;
    --abstand-m:50px;
	--abstand-l:90px;
    --abstand-xl:120px;
  }
}
@media(max-width: 768px){
  :root {
    --abstand-xs:2px;
    --abstand-s:5px;
    --abstand-sm:20px;
    --abstand-m:40px;
	--abstand-l:60px;
    --abstand-xl:80px;
  }
}

@media(max-width: 640px){
  :root {
    --text-xl: 1.8rem;
    --text-l: 1.4rem;
    --text-m: 1.3rem;
    --text-sm: 1.2rem;
    --text-s: 1.0rem;
    --text-xs: 0.85rem;

    --abstand-xs:0;
    --abstand-s:10px;
    --abstand-m:30px;
	--abstand-l:40px;
    --abstand-xl:50px;
  }
}



* {
	line-height:140%;
	margin:0;
	padding:0;
	font-size:16px;
	}

body {
	background: #fff;
  	cursor: auto;
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 500;
  	line-height: 1.5;
  	margin: 0;
  	padding: 0 4vw;
	}
.grid-container {
    max-width: 75rem;
    }

/**************************/
/**************************/

.weiss {
    background: #fff;
    }
.hellgrau {
  	padding:var(--abstand-m)  0;
    background:var(--maincolor-hellgrau);
    margin-top: var(--abstand-s);
    }
.gruen {
  	padding:var(--abstand-m)  0;
    background:var(--maincolor-gruen);
    margin-top: var(--abstand-s);
    }
.gruen * {color:#fff;}

.hellgruen {
    background:var(--maincolor-hellgruen);
    margin-top: var(--abstand-s);
    }
.bglogo {
    background-image: url(../images/logo_wasserzeichen.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 350px auto;
    }
/**************************/
/******** Header **********/
/**************************/
.header {
	position: fixed;
    margin:0;
  	width:92vw;	
	background:#fff;
  	height: var(--abstand-header);
    z-index: 1000;
    border-bottom:2px solid var(--maincolor-gruen);
	}
.abstandheader {
	padding-top:var(--abstand-header);
	}
#logo {
    margin:40px var(--abstand-s) 10px var(--abstand-s);
    width:290px;
	}
#shortcuts {
    position:relative;
    top:30px;
    margin-right:var(--abstand-s);
    z-index: 10;
    }
#shortcuts a {
    border:2px solid var(--maincolor-gruen);
    color:var(--maincolor-dunkelgruen);
    padding:2px 5px;
    margin:5px;
    font-size:var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.05rem;
    }
#shortcuts a:hover {
    border:2px solid var(--maincolor-dunkel);
    color:var(--maincolor-dunkel);
    padding:2px 5px;
    }
.headerbild {
    background:var(--maincolor-hellgrau);
    }
.headerbild.start {
    background:none;
    }
.headerbild {
    position: relative;
    width: 100%;
    overflow: hidden;
    }
.headerbild {
    position: relative;
    width: 92vw; 
    }
.headerbild img {
    width: 100%; 
    height: auto;
    display: block;
    }
.headerbild .text {
    position: absolute;
    top: 50%;
    right: 7vw;
    transform: translateY(-50%);
    width: 20vw;
    height: 20vw;
    background: #8cc63f;
    border-radius: 50%;
    display: flex;
    flex-direction: column;   /* ← Das sorgt dafür, dass die Elemente untereinander stehen */
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2.5vw;
}

/* Typografie */
.headerbild .text h1 {
    font-size: 1.7vw;
    line-height: 1.25;
    color: white;
    margin: 0 0 1vw 0; /* statt <br> im HTML */
}

.headerbild .text p {
    font-size: 1.3vw;
    line-height: 1.1;
    color: white;
    margin: 0;
    }
.kleiner {
    font-size: 60%;
    }
/**************************/
/******** Abstaende ********/
/**************************/


.frame-space-before-extra-small {
	margin-top:var(--abstand-xs);
	}
.frame-space-before-small {
  	margin-top:var(--abstand-s);
	}
.frame-space-before-medium {
 	margin-top:var(--abstand-m);
	}
.frame-space-before-large {
	margin-top:var(--abstand-l);
	}
.frame-space-before-extra-large {
	margin-top:var(--abstand-xl);
	}

.frame-space-after-extra-small {
	margin-bottom:var(--abstand-xs);
	}
.frame-space-after-small {
  	margin-bottom:var(--abstand-s);
	}
.frame-space-after-medium {
 	margin-bottom:var(--abstand-m);
	}
.frame-space-after-large {
	margin-bottom:var(--abstand-l);
	}
.frame-space-after-extra-large {
	margin-bottom:var(--abstand-xl);
	}
/**************************/
/******** scrolled  *******/
/**************************/
.scrolled .header{
    -webkit-transition: all 0.4s ease;
 	transition: all 0.4s ease;
  	height: 80px;
    overflow: hidden;
    -webkit-box-shadow: 0px 11px 10px -4px rgba(0,0,0,0.23); 
    box-shadow: 0px 11px 10px -4px rgba(0,0,0,0.23);
	}

.scrolled  #logo {
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    margin-top:13px;
    width:190px;
    opacity: 1;
	}
.scrolled  .abstand {
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    padding-top:80px;
    }
.scrolled ul#menu {
    margin-top:45px;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    }

/**************************/
/******** Footer   ********/
/**************************/

#back-top img {
    position: fixed;
    right: 5px;
    bottom: 20vh;
	width:50px;
    z-index:100;
	}
#logokl {
    width:210px;
    margin:0 var(--abstand-s) 10px var(--abstand-s);
    }
footer p {
    line-height:130%;
	}
footer p a:hover, footer p a:visited:hover {
    color:var(--maincolor-dunkelgruen);
	}

/* letzte Spalte unten ausrichten */

footer .grid-x {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch; 
    }
footer .cell {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    }
footer .cell.unten {
    justify-content: flex-end; 
    }
/**************************/
/******** Formatierung ****/
/**************************/
h1 {
    font-family: 'Titillium Web';
    font-style: normal;
	font-weight:400;
    color:var(--maincolor-dunkelgruen);
	font-size:var(--text-xl);
    line-height: 130%;
	}

h2 {
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 400;
    color:var(--maincolor-dunkelgruen);
	font-size:var(--text-l);
	line-height:150%;
	}
h3 {
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 400;
    color:var(--maincolor-dunkelgruen);
	font-size:var(--text-m);
	line-height:150%;
	}
p {
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 400;
    color:var(--maincolor-dunkel);
	font-size:var(--text-s);
	line-height:170%;
	}
p.lead {
    color:var(--maincolor-dunkelgruen);
    font-size:var(--text-sm);
	}
p a, p a:visited {
	font-size:100%;
    color:var(--maincolor-dunkelgruen);
	}
p a:hover, p a:visited:hover {
    color:var(--maincolor-gruen);
	}
p b, table td b, p strong {
    font-weight: 600;
    font-size: 100%;
    }
a button {
    display: inline-block;
    padding: 10px;
    color: var(--maincolor-dunkelgruen);
    background: var(--maincolor-hellgrau);
	font-weight:500;
	font-size:var(--text-xs);
	margin:0 var(--abstand-xs);
    padding:5px var(--abstand-s);
    text-transform: uppercase;
    border-radius: 12px;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    font-weight: 500;
    cursor: pointer;
    }
a:hover button {
    background: var(--maincolor-gruen);
    color: #fff;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    }
ul.aufzaehl {
    list-style-position: outside;
    margin:5px var(--abstand-s) var(--abstand-s) calc(var(--abstand-s) + 20px);
    list-style-type: square;
	}
ul.aufzaehl li{
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 500;
    color:var(--maincolor-dunkelgruen);
    font-size:var(--text-sm);
	line-height:170%;
    padding:3px 0;
	}
ul.aufzaehl li a{
    font-size:100%;
    color: var(--maincolor-dunkelgruen);
	}
table {
    border:0;
    }
table tr td {
    vertical-align: top;
    }
table tr td{
    border-bottom:3px solid var(--maincolor-hellgrau);
    }
tbody tr:nth-child(2n) {
    background-color: #fff;
    }
hr {
    border-bottom:3px solid var(--maincolor-hellgrau);
    margin:var(--abstand-sm) var(--abstand-s);
    }
.inhaltsbild-wrapper {
    position: relative;
    display: inline-block;
    }
.inhaltsbild {
    position: relative;
    z-index: 1;
    padding:20px var(--abstand-s);
    }
.inhaltsbild-wrapper::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 0;
    }
.inhaltsbild-wrapper.links::before {
    top: 0;
    right: 40px;
    }
.inhaltsbild-wrapper.rechts::before {
    top: 0;
    left: 40px;
    }
.hellgrau .inhaltsbild-wrapper.rechts::before, .hellgrau .inhaltsbild-wrapper.links::before {
    background: #fff;
    }
.weiss .inhaltsbild-wrapper.rechts::before, .weiss .inhaltsbild-wrapper.links::before {
    background: var(--maincolor-hellgrau);
    }
.schmal {
    max-width: 80%;
    }
.wasserzeichen {
    max-width: 350px;
    margin-top: var(--abstand-s);
    }
.mitgliedslogo {
    max-height:75px;
    margin: var(--abstand-s) var(--abstand-s);
    }
/**************************/
/******** Abstände ********/
/**************************/

h1 {
	margin:var(--abstand-s) var(--abstand-s) 0 var(--abstand-s);
	}
h2 {
	 margin:0 var(--abstand-s);
	}
h3 {
	 margin:0 var(--abstand-s) var(--abstand-s) var(--abstand-s);
	}
p {
	margin:15px var(--abstand-s);
	}
h3 + p {
    margin-top: 0;
    margin-bottom:var(--abstand-s);
    }
h3:has(+ p) {
    margin-top: 30px;
    margin-bottom: 0;
    }
.headerbild h1{
    margin:var(--abstand-m) var(--abstand-s) 0 calc(var(--abstand-s) + 0.9375rem);
    }
.headerbild h2{
    margin:0 var(--abstand-s) 0 calc(var(--abstand-s) + 0.9375rem);
    }
.headerbild p{
    margin:15px var(--abstand-l) 20px calc(var(--abstand-s) + 0.9375rem);
    }

/**********************************************/

.accordion-title {
   border: none;
    font-family: 'Titillium Web';
    font-style: normal;
    font-weight: 600;
    color:var(--maincolor-dunkel);
	font-size:var(--text-s);
    background:var(--maincolor-hellgrau);
    display: block;
    padding: 8px 30px 8px 50px;
    line-height: 1.9;
    margin:4px 0;
}
.accordion-title:hover{
    background:var(--maincolor-hellgrau);
    color:var(--maincolor-dunkel);
    }
.accordion-title:focus {
    background:#fff;
    color:var(--maincolor-dunkel);
    }
.accordion-title::before { /* Abstand Vorzeichen/Symbol + - */
    content: '+';
    position: absolute;
    left: 0.5em;
    margin-top: -15px;
    width: 28px;
    height: 28px;
    color:var(--maincolor-dunkelgruen);
    text-align: center;
    line-height: 140%;
    }
.accordion-item .is-active > .accordion-title::before {
    content: '–';
    }
.accordion-item.is-active {
    border:2px solid var(--maincolor-gruen);
    }

.accordion-content {
    display: none;
    border: none;
    }
.accordion-content p {
	margin:5px calc(var(--abstand-s) + 20px);
    }


/**********************************************/
@media only screen and (max-width: 1200px)  {


ul.kurzmenu {
	margin-top:45px;
    margin-right:0;
	}
.headerbild p {
    margin: 15px var(--abstand-s) 20px calc(var(--abstand-s) + 0.9375rem);
    }
}
/**********************************************/

@media only screen and (max-width: 1024px)  {

.abstandheader {
    padding-top:140px;
    }
.header {
  	height: 140px;
	}  
.headerbild {
    padding-bottom:30px;
    }
.headerbild.start {
    padding-bottom:0;
    }
#logo {
    margin:20px auto 10px auto;
    width:280px;
    text-align: center;
	}
.inhaltsbild-wrapper {
    position: relative;
    display: inline-block;
    margin:var(--abstand-s) var(--abstand-s);
    }
.inhaltsbild-wrapper::before {
    width: 100%;
    height: 100%;
    }
.inhaltsbild-wrapper.links::before {
    top: -5px;
    left: -10px;
    }
.inhaltsbild-wrapper.rechts::before {
    top: 5px;
    left: 5px;
    }
.inhaltsbild-wrapper.links:hover::before {
    top: -5px;
    left: -10px;
    }
.inhaltsbild-wrapper.rechts:hover::before {
    top: 5px;
    left: 5px;
    }
    
ul.kurzmenu {
	margin-top:45px;
    margin-right:1vw;
	}
#back-top img {
	width:40px;
	}
}


/**********************************************/
@media only screen and (max-width: 640px) {

body {
  	padding: 0 1vw;
	}
.headerbild {
    width: 98vw;
    }
.headerbild img, .header{
    width:98vw;
    } 
.headerbild .text {
    right: 5vw;
    width: 32vw;
    height: 32vw;
    padding: 2.5vw;
    }
.headerbild .text h1 {
    font-size: 2.9vw;
    margin: 0 0 10px 0; 
    }
.headerbild .text p {
    font-size: 2.2vw;
    margin: 0!important;
    padding:0!important;
    }
.kleiner {
    font-size:100%;  
    }
#logo  {
    width:240px;
    margin-left:30px;
	}
#shortcuts {
    position:absolute;
    top:10px;
    right:0;
    width:auto;
    }
#shortcuts a {
    font-size:var(--text-xs);
    letter-spacing: 0;
    }
p {
	margin:var(--abstand-s);
	}
.text-right {
    text-align: left;
    }
.hellgrau .text-right {
    text-align: right!important;
    }
#back-top img {
	width:35px;
	}
#back-top img {
    right: 5px;
    bottom: 5vh;
	width:40px;
	}
.inhaltsbild-wrapper {
    margin: 0;
    }
.inhaltsbild {
    padding: 20px var(--abstand-s);
    }
.schmal {
    max-width: 100%;
    }
.grid-container .grid-x .grid-container {
    padding-right: 0;
    padding-left: 0;
    }
.accordion-title {
    padding: 8px 10px 8px 40px;
    margin: 4px 0;
    line-height:1.6;
    }
.accordion-content {
    padding: 10px 0 20px 0;
    border: 0
    }
.accordion-content p {
    margin: 5px var(--abstand-s);
    }  
}


