/* ========================================
FARB-VARIABLEN
======================================== */

:root {
  --farbe-primär: #2d3e2e;
  --farbe-hell: #ceafbe;
  --farbe-akzent: #b15633;
  --farbe-gelb: #b6781a;
  --farbe-rot: #b64d48;
  --farbe-weiß: #cfcbc0;
  --farbe-gruen: #899775;
  --farbe-rosa: #ad7497;
}


/* ========================================
GLOBAL STYLES
======================================== */

body a{
    color:  var(--farbe-gruen) !important;
    text-decoration: underline !important;
}

body #header {
  background: var(--farbe-gruen) !important;
  color: var(--farbe-hell) !important;
}

body #header a {
  color: var(--farbe-weiß) !important;
  text-decoration: none !important;
}

body #header a:hover {
  color: var(--farbe-primär) !important;
}

body #header a:active,
body #header a:focus {
  color: var(--farbe-primär) !important;
}

body img {
  width: 100% !important;
  display: block !important;
  margin: 0 auto !important;
}

/* ========================================
MOBILE MENU STYLES
======================================== */

body ul.mobile-menu {
  background: none !important;
  margin: 2rem auto !important;
  padding: 0 !important;
  text-align: center !important;
  list-style: none !important;
  width: 100% !important;
  max-width: 300px !important;
}

body ul.mobile-menu li {
  background: rgba(137, 151, 117, 0.1) !important;
  margin: 0 0 2px !important;
  text-align: center !important;
  list-style: none !important;
  border-radius: 5px !important;
}

body ul.mobile-menu li a {
  color: var(--farbe-weiß) !important;
  font-size: 1.2rem !important;
  padding: 15px 20px !important;
  display: block !important;
  text-align: center !important;
  text-decoration: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body ul.mobile-menu li a:hover,
body ul.mobile-menu li a:focus,
body ul.mobile-menu li a.active {
  color: var(--farbe-gelb) !important;
  background: rgba(137, 151, 117, 0.3) !important;
  text-decoration: none !important;
}

/* Mobile Logo Korrektur */
body .mobile-logo img {
  width: auto !important;
  height: 50px !important;
  margin: 2rem auto !important;
  display: block !important;
}

/* Overlay-Hintergrund richtig setzen */
body .overlay {
  background: rgba(45, 62, 46, 0.95) !important;
}

/* Overlay-Menu Navigation nach links ausrichten */
body .overlay nav {
  text-align: left !important;
}

body .overlay-menu > .tree {
  text-align: left !important;
}

/* Hamburger-Balken Farben */
body .mobile-menu .button_container span {
  background: var(--farbe-primär) !important;
}

/* Hamburger-Balken Farbe im aktiven Zustand */
body .mobile-menu .button_container.active .top,
body .mobile-menu .button_container.active .middle,
body .mobile-menu .button_container.active .bottom {
  background: var(--farbe-primär) !important;
}

/* Mobile-Menu im Overlay nach links ausrichten */
body .overlay ul.mobile-menu {
  text-align: left !important;
  margin: 2rem 0 2rem 2rem !important;
  padding-left: 0 !important;
  max-width: none !important;
  width: auto !important;
}

body .overlay ul.mobile-menu li {
  text-align: left !important;
  margin-right: 2rem !important;
}

body .overlay ul.mobile-menu li a {
  text-align: left !important;
}


/* ========================================
FOOTER
======================================== */

#footer {
  background: var(--farbe-gruen) !important;
  color: var(--farbe-primär) !important;
}

#footer a {
  color: var(--farbe-weiß) !important;
}


/* ========================================
HERO-TEXT
======================================== */

.custom-big-text {
  font-size: 3.5em;
  font-weight: bold;
  text-transform: uppercase;
  font-family: "Arial Rounded MT Bold", "Trebuchet MS", Verdana, Arial, sans-serif;
}


/* ========================================
FONT-EINBINDUNG
======================================== */

@font-face {
  font-family: 'MeineSerifen';
  src: url('/user/themes/io-flow/fonts/Pompiere-Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'MeineÜberschrift';
  src: url('/user/themes/io-flow/fonts/tan-nimbus.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}


/* ========================================
FONT-ZUWEISUNG
======================================== */

body,
p,
ul,
ol,
li,
blockquote {
  font-family: 'MeineSerifen', serif;
  font-size: 1.1em;
  color: var(--farbe-primär);
  font-weight: normal;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'MeineÜberschrift', sans-serif;
  font-size: 1.5em;
  color: var(--farbe-primär);
  font-weight: normal;
}

.hero p {
  font-size: 1.3em;
  color: var(--farbe-primär);
  font-family: 'MeineSerifen', serif;
}

.hero h1 {
  color: var(--farbe-primär);
  font-family: 'MeineÜberschrift', serif;
  text-align: left; 
  font-size: 2.5em;
}


.form-label {
  font-size: 26px;
  font-weight: 1000;
  color: var(--farbe-gruen);
}


.form-checkbox input:checked + .form-icon {
    border-color: var(--farbe-primär);
    background: var(--farbe-gruen);
}

/* ========================================
BUTTON
======================================== */

.button {
  display: inline;
  vertical-align: baseline;
  padding: 0;
  margin: 0;
  font-size: inherit;
  border: none;
}

.btn {
  border: 2px solid var(--farbe-primär); /* Rahmenfarbe */
  color: var(--farbe-primär); /* Schriftfarbe */
  text-align: center; 
}

.btn:hover {
  border: 2px solid var(--farbe-primär); /* Rahmenfarbe */
  background-color: var(--farbe-gruen); /* dunklere Füllfarbe beim Hover */
}

/* ========================================
floating-notice
======================================== */

.info-block {
  text-align: left; /* Haupttext und Badge mittig */
  margin-bottom: 40px;
}

.floating-notice {
  display: inline-block;       /* nur so breit wie der Text */
  background: #c62828;
  color: white;
  padding: 0.5em 1em;          /* responsive Padding */
  font-weight: bold;
  border-radius: 8px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.25);
  font-size: clamp(0.8rem, 1vw, 1rem); /* skaliert mit Bildschirmbreite */
  margin-top: 1em;             /* Abstand unter dem Text */
  margin-bottom: 1em;
  animation: floaty 3s ease-in-out infinite;
  z-index: 10;
}

@keyframes floaty {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); } /* leichtes Schweben */
  100% { transform: translateY(0); }
}

/* Optional: bei sehr kleinen Bildschirmen */
@media (max-width: 480px) {
  .floating-notice {
    padding: 0.4em 0.8em;
    font-size: 0.85rem;
  }
}