:root {
  --primary: #3a7d44;
  --primary-darf: #2c5a2b;
  --secondary: #e2f0d9;
  --accent: #ffffff;
  --text: #222;
  --max-width: 1000px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  background-color: var(--accent);
  color: var(--text);
  line-height: 1.5rem;
  font-size: 1rem;
  word-wrap: break-word;
}

header {
  background-color: var(--accent);
  color: var(--text);
  padding: 1rem 0;
}

.header-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1rem;
  text-align: center;
}

.logo-container {
  background-color: #fff;
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 8px;
}

.logo-container img {
  height: 160px;
  display: block;
}

/* Navigation */
nav {
  margin-top: 1rem;
  background-color: var(--primary);
}

.nav-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1rem;
  position: relative;
}

nav ul {
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  height: 4rem;
}

nav ul li {
  position: relative;
}

nav ul li a {
  color: var(--accent);
  text-decoration: none;
  font-weight: bold;
  padding: 0.5rem 0.8rem;
  display: block;
}

nav ul li a:hover {
 background-color: var(--primary-darf);
}

nav ul li.menu-item.active > a {
  background-color: var(--primary-darf); /* dunkleres Grün für aktiven Punkt */
  border-radius: 4px;
}

/* Submenu */
nav ul li ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--primary);
  padding: 0.5rem 0;
  min-width: 220px;
  border-radius: 0 0 8px 8px;
  z-index: 1000;
}

nav ul li ul li a {
  padding: 0.6rem 1rem;
  color: var(--accent);
  white-space: nowrap;
}

nav ul li ul li a:hover {
  background: var(--primary-darf);
}

/* Untermenü aktiv */
nav ul li ul li.active > a {
  background-color: var(--primary-darf);
  color: var(--accent);
}

nav ul li:hover > ul {
  display: block;
}

/* Burger Button */
.burger {
  display: none;
  font-size: 2rem;
  color: var(--accent);
  cursor: pointer;
  position: absolute;
  right: 1rem;
  top: 0.8rem;
}

/* Hero */
.hero {
  background-size: cover;
  background-position: center;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
  text-shadow: 1px 1px 5px #000;
  text-align: center;
  padding: 2rem;
}

main {
  padding: 2rem;
  display: grid;
  gap: 2rem;
  max-width: var(--max-width);
  margin: auto;
  word-wrap: break-word;  
}

main p {
  margin-bottom: 1rem;
  margin-top: 1rem;
}

main a {
  color: var(--primary);
  text-decoration: underline;
}

main p.align_left {
  text-align:left;
}

main p.align_center {
  text-align:center;
}

main p.align_right {
  text-align:right;
}

main p.align_full {
  text-align:justify;
}

main figure {
margin-top: 1rem;
  margin-bottom: 1rem;
}

main figure.align_center img {
  text-align: initial;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

main figure figcaption {
  margin-top: 5px;
  caption-side: bottom;
  line-height: 1.3em;
  font-size: 14px;
  color: #999;
  text-align:center;
}


/*
main blockquote {
  border-left: 2px solid;
  margin-left: 1.5rem;
  padding-left: 1rem;
  color: #333;
  border-color: var(--primary);
  font-style: italic;
  font-family: Georgia, Times, "Times New Roman", serif;
}
  */


main blockquote {
  background-color: #f9f9f9;
  padding: 1rem;
  border-left: 4px solid var(--primary);
  border-radius: 45x;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}

hr {
  border-style: solid;
  border-width: 1px 0 0 0;
  color: #333;
}

main pre {
  border: 2px dashed var(--primary);
  padding: 1rem;
  white-space: pre-wrap;
  tab-size: 4;
  border-radius: 10px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}

main table td {
  padding: 0.2rem; 
  padding-left: 0.5rem; ;
}

main table th {
  background-color: var(--primary);
  color: var(--accent);
  padding: 0.2rem; 
  padding-left: 0.5rem; ;
}

main ul, main ol {
  margin-left: 2rem;
  margin-bottom: 0.7rem;
}

main img.align_left {
  text-align: initial;
  float: left;
  margin-top: 0;
  margin-left: 0;
  margin-right: 1rem;
}

main img.align_right {
  text-align: initial;
  float: right;
  margin-left: 1rem;
  margin-right: 0;
  margin-top: 0;
}

section {
  background-color: var(--secondary);
  padding: 1.5rem;
  border-radius: 8px;
}

main h1 { font-size: 2rem; color: var(--primary); margin-bottom: 1.5rem; margin-top: 1.5rem; }

main h2 { font-size: 1.7rem; color: var(--primary); margin-bottom: 1.5rem; margin-top: 1.5rem;}

main h3 { font-size: 1.3rem; color: var(--primary); margin-bottom: 0.8rem; margin-top: 1.5rem; }

main h4 { font-size: 1rem; color: var(--primary); margin-bottom: 0.5rem; margin-top: 1.2rem;}

main h5 { color: var(--primary); }

main h6 { color: var(--primary); }

main code { background-color: var(--accent); font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; }

.mitglied-werden {
  background-color: #f9f9f9;
  padding: 1rem;
  border-left: 5px solid var(--primary);
  border-radius: 4px;
}
.mitglied-werden ul { padding-left: 1.2rem; }

.spendenaufruf {
  background-color: #fffbe0;
  border: 2px dashed var(--primary);
  text-align: center;
}

.row {
		width: 100%;
		min-width: 0;
		margin-left: 0;
		margin-right: 0;
    padding: 0;
    float: left;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/*
.row:before,.row:after {
	content: "";
	display: table
}

.row:after {
	clear: both
}

*/
/*
.row {
  margin-left: 2.12766%;
  float: left;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
  */
.columns {
  float: left;
  		width: auto!important;
	/* float: none; */
  padding: 0;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

/*
.columns:first-child {
	margin-left: 0;
}

	.columns:last-child {
		margin-right: 0;
		float: none
	}

	[class*="columns"]+[class*="columns"]:last-child {
		float: none
	}

	[class*="columns"]:before {
		display: table
	}

	[class*="columns"]:after {
		display: table;
		clear: both
	}
    */

.one.columns {
width: 33.3%;
}

.two.columns {
width: 50%;
}

.three.columns {
width: 100%;
}

footer {
  text-align: center;
  padding: 1rem;
  background-color: var(--primary);
  color: var(--accent);
  font-size: 0.9rem;
}
footer a {
  color: var(--accent);
  margin: 0 0.5rem;
  text-decoration: underline;
}

/* Mobile Navigation */

/* --- Mobile: Menü in normalen Fluss bringen + Submenu einrücken --- */
@media (max-width: 900px) {

  .hero {
    line-height: 2.5rem;
  }

  /* 1) Stelle sicher, dass nav selbst nicht fixiert ist */
  nav,
  nav .nav-inner,
  nav .nav-inner > ul,
  nav .nav-inner > ul li.menu-item,
  nav .nav-inner > ul li.menu-item > ul.submenu {
    position: static !important;
    transform: none !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    height: auto !important;
    width: 100% !important;
    z-index: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* 2) Basis-Styling für Menü (vertikal, im Dokumentfluss) */
  nav {
    display: block;
    margin-bottom: 1rem; /* Abstand unter dem Menü */
    background: var(--primary); /* optional: Menüfarbe */
  }

  nav .nav-inner {
    display: block;
    padding: 0;
  }

  nav .nav-inner > ul {
    display: block;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  /* 3) Haupteinträge */
  nav .nav-inner > ul > li.menu-item {
    border-bottom: 1px solid rgba(255,255,255,0.12);
    list-style: none;
  }

  nav .nav-inner > ul > li.menu-item > a {
    display: block;
    padding: 1rem;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    text-align: left;
  }

  /* 4) Untermenü: sichtbar und eingerückt */
  nav .nav-inner > ul > li.menu-item > ul.submenu {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent; /* oder leichte Absetzung */
  }

  nav .nav-inner > ul > li.menu-item > ul.submenu > li {
    list-style: none;
  }

  nav .nav-inner > ul > li.menu-item > ul.submenu > li > a {
    display: block;
    padding: 0.75rem 1rem 0.75rem 2rem; /* links eingerückt */
    color: #e6f0e6; /* helleres Schriftfarbton */
    font-weight: 400;
    text-decoration: none;
  }

  nav .nav-inner > ul > li.menu-item > ul.submenu > li > a::before {
    content: "↳ ";
    color: rgba(255,255,255,0.6);
  }

  nav ul li a:hover {
  background-color: var(--primary-darf);
  }

nav .nav-inner > ul > li.menu-item > ul.submenu > li.active > a {
    background: var(--primary-darf);
    text-decoration: underline;
    font-weight: bold;
    padding-left: 2.75rem;
  }

}



/*
@media (max-width: 900px) {
  .burger {
    display: block;
  }

  nav ul {
    display: none;
    flex-direction: column;
    gap: 0;
    height: auto;
    padding: 1rem 0;
  }

  nav ul.active {
    display: flex;
  }

  nav ul li {
    width: 100%;
    text-align: center;
  }

  nav ul li ul {
    position: static;
    background: #2c5a2b;
    border-radius: 0;
    padding: 0;
  }

  nav ul li ul li a {
    padding: 0.8rem;
    display: block;
  }

  */
  /* Pfeil bei Submenu in Mobile */
  /*
  
  nav ul li.has-submenu > a::after {
    content: " ▼";
    font-size: 0.8rem;
  }

  nav ul li ul {
    display: none;
  }

  nav ul li.open > ul {
    display: block;
  }
}
*/

/* ===============================
   Formulare
   =============================== */


/*  FORMULARE */ 

form { display: grid; gap: 1rem; }
input, textarea, button, select {
  padding: 0.8rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1rem;
}

button {
  background-color: var(--primary);
  color: var(--accent);
  border: none;
  cursor: pointer;
}
button:hover { background-color: var(--primary-darf); }
.seca {
   opacity: 0;
   position: absolute;
   top: 0;
   left: 0;
   height: 0;
   width: 0;
   z-index: -1;
}

form .inputwrapper {
  display: block;
}


.final-list-table {
    width: 100%;
    border-collapse: collapse;
    table-layout:auto;
    overflow-x: auto;
}

.final-list-table td {
    border-bottom: 1px solid var(--primary);
}

.alert {
    padding: 1.5rem;
}

.alert-danger {
    background-color: #842029;
    color: #fff;
}

.alert-success {
    background-color: var(--primary);
    color: #fff;
}

.fieldwrapper {margin-bottom: 10px;}
.fieldwrapper.error label {color: #842029;}

form p.notes {font-size: .9rem; margin-bottom: 0; color: #666}
form p.notes::before {content: 'ⓘ'; margin-right: 5px;}
form p.description {font-size: .9rem; margin-bottom: 0}

form p.notes.important-box {
    background: var(--primary);
    color: #fff!important;
    padding: 1.5rem;
}

form p.notes.important-box::before {
    content: none;
    margin-right: 0;
}

input[type=text],
input[type=password],
input[type=email],
input[type=url],
input[type=date],
input[type=datetime],
input[type=datetime-local],
input[type=month],
input[type=number],
input[type=search],
input[type=tel],
input[type=time],
textarea,
select,
input[type=tel] {width: 100%;}

form p.error {color:#842029; font-weight:bold;}
form p.error::before {content: '⚠'; margin-right: 5px;}

.button-wrapper {clear:both; display: flex; gap: 10px; flex-direction: column;}
.button-wrapper button {display: block; clear:both;}

@media (min-width: 600px) {

    .button-wrapper {flex-direction: row; justify-content: right}
    .button-wrapper button  {display: inline-block; width: auto; padding-right: 30px; padding-left: 30px;}

}

