/* MarktNavigator - (c) Martin Sassenberg, masa media */
/* === Version 8 */

/* --- 1. Globales & Body --- */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  font-family: 'Signika', sans-serif;
  background-color: #f5f5f5;
  display: flex;
  flex-direction: column;
}

/* --- 2. Kopfbereich --- */
#kopfbereich {
  flex-shrink: 0;
  background: #EDFCFC;
  padding: 10px 14px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-bottom: 1px solid #196045;
}
.kopf-titel {
  font-size: 1.5rem;
  font-weight: 700;
  color: #16816B;
  margin-bottom: 10px;
  text-align: center;
}
.kopf-links {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  justify-content: flex-start;
}
.typwahl {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kopf-links label {
  font-weight: 600;
  color: #16816B;
  display: flex;
  align-items: center;
  gap: 6px;
}
.kopf-links input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: #16816B;
}
#firmenauswahl {
  font-weight: 600;
  color: #16816B;
  padding: 8px 12px;
  border-radius: 8px;
  border: 2px solid #16816B;
  font-size: 1rem;
  background-color: white;
}
.kopf-trenner {
  position: absolute;
  top: 50%;
  right: 130px;
  transform: translateY(-50%);
  width: 2px;
  height: 70%;
  background-color: #16816B;
}
.kopf-rechts {
  position: absolute;
  top: 50%;
  right: 30px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
}
#lwg-navi-logo {
  height: 100px;
  width: auto;
  display: block;
}

:root { --badge-version-color: #5a5a5a; }
.badge-version::after {
  content: var(--app-version);
  color: var(--badge-version-color);
  margin-left: .4rem;
  opacity: .55;
  font-variant-numeric: tabular-nums;
}


/* Desktop: Firmen/Themen zentrieren */
@media (min-width: 681px) {
  .kopf-links {
    justify-content: center;
  }
}

/* Mobile Kopfbereich */
@media (max-width: 680px) {
  #kopfbereich {
    align-items: flex-start;
    padding-left: 14px;
    padding-right: 14px;
  }
  #lwg-navi-logo {
    height: 84px;
  }
  .kopf-titel {
    text-align: left;
    width: 100%;
    margin-bottom: 8px;
    font-size: 1.26rem;
  }
  #firmenauswahl {
    max-width: 204px;
	height: 2.8rem;
  }
  .kopf-trenner {
    display: none;
  }
  .kopf-rechts {
    right: 6px;
  }
}

/* --- 3. Map --- */
#map {
  flex-grow: 1;
  width: 100%;
  min-height: 200px;
}

/* --- 4. Popups (versteckt, JS steuert Ein-/Ausblenden) --- */
#popup-overlay,
#hilfe-overlay,
#settings-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.21);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2000;
}

.popup-box {
  background: rgba(255, 255, 255, 0.95);
  padding: 30px 40px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  max-width: 90%;
  width: 400px;
  margin: 20px;
}

.popup-box h1,
.popup-box h2 {
  color: #0d403f;
}
.popup-box h3,
.popup-box h4,
.popup-box h6 {
  color: #1b817f;
}
.popup-box h2,
.popup-box h3 {
  text-align: center;
  margin-top: 0;
  margin-bottom: 0.25em;
  font-size: 1.4rem;
  line-height: 1.2;
}
.popup-box h4 {
  text-align: left;
  margin-top: 1em;
  margin-bottom: 0.25em;
  font-size: 1.2rem;
  line-height: 1.3;
}
.popup-box p {
  text-align: left;
  margin: 0 0 0.5em;
  line-height: 1.2;
}
.popup-box .mm-hilfe-text {
  font-size: 1rem;
  color: #333;
  text-align: left;
  line-height: 1.4;
  margin-bottom: 0.5em;
}

/* --- 4. Standort-Optionen in Intro- & Settings-Popup --- */
.popup-box .intro-location-row,
.popup-box .settings-location-row {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;                /* <- doppelte gap entfernt, 10px beibehalten */
  width: 100%;
  margin: 0.75em 0;
}

.settings-geo-toggle .toggle-switch{ margin-top: .18em; }
#settings-overlay .settings-geo-toggle .toggle-switch{ margin-top: .32em; }

/* Label als flex Container */
.settings-geo-toggle{
  position: relative;
  display: flex;
  align-items: flex-start;  /* oben bündig */
  gap: 10px;
  width: 100%;
}

/* Checkbox visuell verstecken (zugänglich bleibt sie über das Label) */
.settings-geo-toggle input[type="checkbox"]{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  appearance: none !important;
}

/* Schieberegler (Track) */
.settings-geo-toggle .toggle-switch{
  --toggle-w: 56px;
  --toggle-h: 32px;
  --knob:     24px;
  /* Farben */
--on:  #91e6c8;   /* ON = hellgrün */
--off: #ffb4ae;   /* OFF = pastell-rot */
background: var(--off);         /* OFF-Farbe */
border: 2px solid var(--border);


  position: relative;
  flex: 0 0 var(--toggle-w);
  width: var(--toggle-w);
  height: var(--toggle-h);
  border-radius: 9999px;
  background: var(--off);         /* OFF-Farbe */
  border: 2px solid var(--border);
  box-shadow: 0 1px 2px rgba(0,0,0,.06) inset;
  transition: background .2s ease, border-color .2s ease;
  cursor: pointer;
}

/* Knopf */
.settings-geo-toggle .toggle-switch::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 4px;
  width: var(--knob);
  height: var(--knob);
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
  transform: translateY(-50%);
  transition: left .2s ease;
}

/* Aktiv-Zustand */
.settings-geo-toggle input[type="checkbox"]:checked + .toggle-switch{
  background: var(--on);      /* nur Track-Farbe ändern */
}

.settings-geo-toggle input[type="checkbox"]:checked + .toggle-switch::before{
  left: calc(100% - 4px - var(--knob));
}

/* Tastatur-Fokus */
.settings-geo-toggle input[type="checkbox"]:focus-visible + .toggle-switch{
  outline: 3px solid rgba(145,230,200,.35); /* passend zu --on */
  outline-offset: 2px;
}

/* Textblock rechts vom Schalter */
.settings-geo-toggle .toggle-text{
  flex: 1;
  font-size: 1rem;
  line-height: 1.4;
  text-align: left;
  margin-right: 66px;   /* Platz fürs Icon rechts */
}
/* erste Zeile leicht größer */
.settings-geo-toggle .toggle-text::first-line{ font-size: 1.1rem; }

/* Icon rechts */
.settings-geo-toggle .toggle-icon{
  position: absolute;
  top: 22%;
  right: 8px;
  transform: translateY(-50%);
  width: 62px;
  height: auto;
  cursor: pointer;
}



/* === 5. Footer === */
/* 5.1 mm-footer-bottom (Desktop) */
.mm-footer-bottom {
  background-color: #f5f5f5;
  border-top: 1px solid #196045;
  border-bottom: 1px solid #196045;
  text-align: center;
  padding: 5px 0;
}
.mm-footer-bottom-text {
  font-size: 0.9rem;
  color: #196045;
  margin: 2px 0;
}

/* 5.3 mm-footer-buttons (Desktop) – zentriert + Trennlinie oben */
.mm-footer-buttons {
  background-color: #f5f5f5;
  display: flex;
  justify-content: center;          /* Buttons mittig ausrichten */
  align-items: center;
  padding: 10px 0;                   /* unverändert: Innenabstand oben/unten */
  border-top: 1px solid #196045;     /* dünne Linie über der Button-Leiste */
  border-bottom: 1px solid #196045;
  width: 100%;
}


/* 5.1 mm-footer-bottom (Mobil) */
@media only screen and (max-width: 767px) {
  .mm-footer-bottom {
    padding: 4px 16px;
  }
  .mm-footer-bottom-text {
    font-size: 0.85rem;
    line-height: 1.4;
  }
  
  .mm-footer-buttons {
    padding: 12px 0 12px;  /* leicht größerer Innenabstand mobil */
    /* justify-content: center bleibt erhalten */
  }
  
}
/* 5.2 mm-footer-top (Desktop) */
.mm-footer-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  padding: 6px 10px 8px;
}
.mm-footer-column {
  flex: 0 0 45%;
  max-width: 45%;
  box-sizing: border-box;
  text-align: center;
  padding: 4px 8px 8px;
}
.mm-footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.mm-footer-text {
  font-size: 0.9rem;
  margin: 0 0 8px;
  line-height: 1.3;
}
.mn_fuss_img_01
 {
  height: 60px;
  width: auto;
  display: block;
}

.mn_fuss_img_02 {
  height: 100px;
  width: auto;
  display: block;
}

/* 5.2 mm-footer-top (Mobil) */
@media only screen and (max-width: 767px) {
  .mm-footer-top {
    justify-content: center;
    padding: 2px 0;
  }
  .mm-footer-column {
    flex: 0 0 calc(50% - 8px);
    max-width: calc(50% - 8px);
    padding: 2px;
  }
  .mm-footer-text {
    font-size: 0.8rem;
    margin-bottom: 4px;
  }
  
  .mn_fuss_img_01 {
    height: 50px;
  }

  .mn_fuss_img_02 {
    height: 90px;
  }
  
}

/* --- Konsolidierte Button-Styles für alle Buttons --- */
button {
  background-color: #EDFCFC;
  color: #16816b;
  border: 1px solid #196045;
  border-radius: 8px;
  padding: 6px 20px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .2s, color .2s;
  box-shadow: none;
  margin-right: 6px;
	margin-left: 6px;
}
button:hover {
  background-color: #D0F1EF;
  color: #105F57;
}
button:active {
  background-color: #B3E8E2;
}

/* === Hollanddeko & Controls – responsiv ================================ */
#kopfbereich .controls-decor{
  position: relative;
  display: inline-flex;
  align-items: flex-end;                /* alles unten bündig */
  gap: 0;
  max-width: calc(100% - 240px);        /* Platz fürs Logo rechts (Desktop) */
}
#kopfbereich .controls-decor .controls{
  display: inline-flex;
  align-items: flex-end;
  gap: 18px;                            /* Abstand: Typwahl ↔ Select */
  flex-wrap: nowrap;                    /* eine Zeile */
}
/* Deko-Bilder */
#kopfbereich .controls-decor .silouette{
  position: relative;
  display: block;
  height: 64px;                         /* Desktop-Grundhöhe */
  margin: 0 12px;
  pointer-events: none;                 /* blockiert keine Klicks */
  user-select: none;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  transform: translateY(2px);           /* optische Grundlinie */
}
#kopfbereich .controls-decor .silouette.left  { margin-right: 16px; }
#kopfbereich .controls-decor .silouette.right { margin-left:  16px; }

/* kleine Feinkorrektur für vertikale Typwahl */
#kopfbereich .controls-decor .typwahl { margin-bottom: 2px; }

/* ≤1100px: rechte Silhouette aus, Logo-Reserve etwas kleiner */
@media (max-width: 1100px){
  #kopfbereich .controls-decor{ max-width: calc(100% - 220px); }
  #kopfbereich .controls-decor .silouette.right{ display: none; }
}

/* 701–900px: Logo aus, Platz für Select/Typwahl */
@media (max-width: 900px) and (min-width: 701px){
  .kopf-rechts,
  #lwg-navi-logo,
  .kopf-trenner{
    display: none !important;
  }
  #kopfbereich .controls-decor{
    max-width: 100%;   /* keine Logo-Reserve mehr nötig */
  }
}


/* ≤1024px: Deko leicht verkleinern, Abstände enger */
@media (max-width: 1024px){
  #kopfbereich .controls-decor .silouette{
    height: 52px;
    margin: 0 10px;
    transform: translateY(1px);
  }
  #kopfbereich .controls-decor .controls{ gap: 14px; }
}

/* ≤700px: Mobile – Deko unten rechts HINTER dem Pulldown */
@media (max-width: 700px){
  :root{ --mobile-deko-w: 100px; }                 /* Reservebreite für Deko */

  #kopfbereich{
    position: relative;
    padding-left: 14px;
    padding-right: 14px;
  }

  /* UI liegt über der Deko */
  .kopf-titel,
  #kopfbereich .controls-decor{
    position: relative;
    z-index: 2;
  }

  /* Titel kompakter */
  .kopf-titel{
    text-align: left;
    width: 100%;
    margin-bottom: 8px;
    font-size: 1.26rem;
  }

  /* Logo-Bild & Trenner ausblenden (Container .kopf-rechts nutzen wir weiter) */
  #lwg-navi-logo,
  .kopf-trenner{ display: none !important; }

  /* Deko unten rechts – HINTER der UI */
  .kopf-rechts{
    position: absolute !important;
    top: auto !important;
    right: 4px;
    bottom: -36px;                                   /* untenbündig */
    width: var(--mobile-deko-w);
    height: 76px;
    background: url('../images/deko-rechts-mobile.png')
                no-repeat right bottom / contain;
    pointer-events: none;                        /* sicher */
    z-index: 0;                                  /* <— hinter Select/Typwahl */
  }

  /* Platz für die Deko reservieren */
  #kopfbereich .controls-decor{
    max-width: calc(100% - var(--mobile-deko-w) - 16px);
  }

  /* Mobil keine großen Silhouetten */
  #kopfbereich .controls-decor .silouette{ display: none; }

  /* Selector + Pulldown in einer Zeile */
  #kopfbereich .controls-decor .controls{
    display: inline-flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: nowrap;
  }
  .kopf-links{ justify-content: flex-start; }

  /* Pulldown-Breite dynamisch */
  #firmenauswahl{
    height: 2.8rem;
    width: clamp(220px, 55vw, 420px);
    max-width: 100%;
  }
}

/* MarktNavigator: Popup-Layout (Titel/Kategorie/Info) */
.leaflet-popup-content .mm-pop-title { margin: 0 0 2px 0; }
.leaflet-popup-content .mm-pop-cat   { color: #6b7280; margin: 0 0 4px 0; } /* hellgrau */
.leaflet-popup-content .mm-pop-info  {
  max-width: 300px;         /* Vorgabe: Info/Bemerkung bis 300px */
  line-height: 1.25;
  color: #334155;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}


/* === Intro-Popup: Standort-Option kompakt === */
#popup-overlay .intro-location-row{
  display: block;               /* statt altem flex-Row-Layout */
  width: 100%;
  margin: 0.75em 0;
}

#popup-overlay .intro-line1{
  display: flex;
  align-items: center;
  gap: 10px;
}

#popup-overlay .settings-geo-toggle{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

#popup-overlay .settings-geo-toggle .toggle-label{
  font-weight: 600;
  line-height: 1.2;
}

/* Zeile 2: Text links, Bild rechts */
/* Alternative: echtes Umfließen auf allen Größen */
#popup-overlay .intro-line2{ display: block; }
#popup-overlay .intro-figure{
  float: right;
  margin: 0 0 6px 12px;  /* Abstand zum Text links */
}
#popup-overlay .intro-illustration{
  width: clamp(50px, 18vw, 90px);
  height: auto;
}
/* Clearfix, damit der Button darunter korrekt Abstand hat */
#popup-overlay .intro-line2::after{
  content: "";
  display: block;
  clear: both;
}

/* Mobile: untereinander stapeln */
@media (max-width: 540px){
  #popup-overlay .intro-line2{
    grid-template-columns: 1fr;
  }
  #popup-overlay .intro-figure{
    margin-top: 8px;
    justify-self: end;
  }
}

/* Falls dein Popup innen seitlich padding hat und das Bild
   wirklich "rechtsbündig an den Layoutrand" soll, darfst du
   die Breite leicht erhöhen: */
/*
#popup-overlay .intro-illustration{
  max-width: 180px;
}
*/

/* OPTIONAL: echtes "Umfließen" statt Spalte rechts
   (dann die grid-Regeln für .intro-line2 entfernen):
#popup-overlay .intro-line2 { display: block; }
#popup-overlay .intro-figure { float: right; margin: 0 0 6px 12px; }
*/
