/* =========================================================
   1. BASIS & VARIABLEN
   ========================================================= */
:root {
  --main-green: #909e00;
  --accent-orange: #f29400;
  --nav-w: 270px;
  --header-h: 80px;
  --transition-speed: 0.3s;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: #f4f4f4;
  font-family: sans-serif;
  overflow-x: hidden;
}

#navToggle { display: none !important; }

/* =========================================================
   2. NAVBAR & TOGGLER
   ========================================================= */
.navbar {
  height: var(--header-h);
  background-color: #f8f9fa !important;
  border-bottom: 4px solid var(--main-green);
  position: relative; /* Desktop: Wandert mit nach oben */
  width: 100%;
  z-index: 10000;
  display: flex; align-items: center; padding: 0 15px;
}

.navbar-toggler {
  cursor: pointer;
  border: 1px solid #ccc;
  background-color: #fff;
  padding: 6px 10px;
  z-index: 15000;
}

.custom-toggler-icon span {
  display: block; width: 22px; height: 2px; background: #333; margin: 4px 0;
}

.navbar-brand {
  position: absolute; left: 50%; transform: translateX(-50%);
}

/* =========================================================
   3. WRAPPER & SIDEBAR (DESKTOP)
   ========================================================= */
.main-wrapper {
  display: flex;
  flex: 1;
  width: 100%;
}

.site-nav {
  background: #f8f9fa;
  width: var(--nav-w);
  flex-shrink: 0;
  z-index: 9000;
  transition: transform var(--transition-speed) ease-in-out;
  overflow: visible !important; /* Wichtig für Flyouts */
}

/* Sidebar einklappen auf Desktop */
@media (min-width: 992px) {
  #navToggle:checked ~ .main-wrapper .site-nav { 
    display: none;
    }
	}
.site-nav #nav, .site-nav #nav ul { list-style: none !important; margin: 0; padding: 0; }

.site-nav #nav li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 15px;
  color: #333 !important;
  border: 1px solid var(--main-green);
  margin-top: -1px;
  background: #f8f9fa;
  text-decoration: none;
}

/* Der Pfeil (Winkel aus CSS-Bordern) */
.site-nav #nav li > a:not(:only-child)::after {
  content: '';
  width: 7px; height: 7px;
  border-right: 2px solid #999; border-bottom: 2px solid #999;
  transform: rotate(-45deg);
  transition: transform 0.3s;
  margin-left: 10px;
}

/* Desktop Flyout Logik (Ebene 2) */
@media (min-width: 992px) {
  .site-nav #nav li { position: relative; }
  .site-nav #nav li > ul {
    display: block; visibility: hidden; opacity: 0;
    position: absolute; left: 100%; top: 0;
    min-width: 350px; background: #fff;
    box-shadow: 10px 5px 20px rgba(0,0,0,0.15);
    z-index: 9500;
    border: 1px solid var(--main-green);
    transform: translateX(-10px);
    transition: all 0.2s;
  }
  .site-nav #nav li:hover > ul { 
    visibility: visible; opacity: 1; transform: translateX(0); 
  }
  .site-nav #nav li:hover > a::after { transform: rotate(45deg); }
}

/* =========================================================
   4. MOBILE OPTIMIERUNG (DEINE ORIGINAL LOGIK)
   ========================================================= */
@media (max-width: 991px) {
  body {padding-top: var(--header-h);  }
  .navbar { position: fixed; top: 0; left: 0; right:0; }
  .main-wrapper { margin-top: var(--header-h); }
  
  .site-nav {
    position: fixed !important;
    top: var(--header-h);
    height: calc(100vh - var(--header-h));
    width: 100% !important;
    transform: translateX(-100%) !important;
    overflow-y: auto !important;
  }
  
  #navToggle:checked ~ .main-wrapper .site-nav { transform: translateX(0) !important; }

  /* Mobile Untermenüs untereinander */
  .site-nav #nav li > ul {
    display: none; position: relative !important;
    width: 100% !important; left: 0 !important;
    border: none !important; background-color: #ffffff;
    box-shadow: none; transform: none; opacity: 1; visibility: visible;
  }

  /* Grüner Balken 1. Ebene */
  .site-nav #nav > li > ul {
    border-left: 4px solid var(--main-green) !important;
  }

  /* 2. Ebene Einrückung & Orange */
  .site-nav #nav ul ul {
    border-left: 4px solid var(--accent-orange) !important;
    background-color: #f9f9f9 !important;
    margin-left: 1px !important;
  }

  .site-nav #nav li.is-active > ul { display: block; }
  .site-nav #nav li.is-active > a::after { transform: rotate(45deg); }
  
  .site-nav #nav li a { padding: 18px 15px !important; font-size: 1.1rem; }
}
/* =========================================================
   OPTIMIERUNG FÜR MOBILE & TABLET (bis 991px)
   ========================================================= */
@media (max-width: 991px) {
  
  /* 1. Den Innenabstand (Padding) im weißen Feld verkleinern */
  .p-md-5, .p-5 {
    padding: 0.4rem !important; 
  }

  /* 2. Den äußeren grauen Rand (Container) minimieren */
  .container, .container-fluid {
    padding-left: 5px !important;
    padding-right: 5px !important;
    max-width: 100% !important;
  }

  /* 3. Sicherstellen, dass das weiße Feld die volle Breite nutzt */
  .main-wrapper, .content-area {
    margin: 0 !important;
    width: 100% !important;
  }
}



/* =========================================================
   6. SHOP-FOOTER OPTIMIERUNG (KLEINERE SCHRIFT)
   ========================================================= */
.shop-footer {
  background-color: #f8f9fa;
  border-top: 4px solid var(--main-green);
  padding: 5px 5px; 
  position: relative;
  z-index: 10001;
  width: 100% !important;
  display: block !important;
  clear: both;
  
  /* Hauptschriftgröße verkleinert */
  font-size: 0.75rem; 
  line-height: 1.5;
  color: #444;
}

/* Überschriften im Footer (Kompakter) */
.shop-footer .footer-title { 
  display: block; 
  font-weight: 800;  
  font-size: 0.85rem; /* Etwas kleiner als vorher */
  color: #000; 
  margin-bottom: 12px; 
  text-transform: uppercase; 
  letter-spacing: 0.5px; 
} 

/* Links im Footer */
.shop-footer a {
  text-decoration: none;
  color: inherit;
}
.shop-footer a:hover {
  text-decoration: underline;
  color: var(--main-green);
}

/* Der minimalistische Kontakt-Button (Schrift ebenfalls kleiner) */ 
.footer-btn { 
  display: inline-block; 
  background-color: #ffffff; 
  color: #000000 !important; 
  padding: 15px 15px; 
  border-radius: 2px; 
  font-weight: bold; 
  text-transform: uppercase; 
  font-size: 0.8rem; /* Kleinerer Button-Text */
  margin-top: 10px; 
  transition: all 0.2s ease-in-out; 
  border: 1px solid #000000; 
  text-align: center; 
  cursor: pointer; 
} 

.footer-btn:hover { 
  background-color: #000000; 
  color: #ffffff !important; 
  box-shadow: 2px 2px 0px var(--main-green); 
} 

@media (max-width: 767px) { 
  .shop-footer .footer-title { margin-top: 5px; } 
  .shop-footer { text-align: left; } /* Optional: Linksbündig auf Mobile */
}