/* Tegernsee Index · Lokale (/gastro/lokale): eine Karte mit Kopf (Anzahl, Liste/Karte), Auswahlfeldern, Liste oder Landkarte */
.lokale-bereich{gap:16px!important}
.lokale-liste{display:flex;flex-direction:column;gap:6px}
.lb-kopf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px}
.schalter-ansicht button{display:inline-flex;align-items:center;gap:8px;font-size:14.5px}
.lb-filter{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.lb-offen{display:flex;align-items:center;gap:12px;min-width:0;min-height:48px;padding:0 16px;border-radius:var(--rund-knopf);background:var(--flaeche-schiene);font-size:15px;font-weight:500;cursor:pointer}
.lb-offen input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--pflaume)}
.lb-offen span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.suchbegriff{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;background:var(--pflaume-hell);color:var(--pflaume);border-radius:var(--rund-pille);padding:4px 4px 4px 14px;font-size:14px;font-weight:600}
.suchbegriff button{width:32px;height:32px;border:0;border-radius:var(--rund-pille);background:var(--flaeche);color:var(--pflaume);font-size:18px;line-height:1;cursor:pointer}
.legende{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:13px;color:var(--tinte-mittel);margin-bottom:10px}
.lg{display:inline-flex;align-items:center;gap:6px}
.lg::before{content:"";width:8px;height:8px;border-radius:var(--rund-pille)}
.lg-u::before,.nv-u{background:var(--guenstig-punkt)}
.lg-g::before,.nv-g{background:var(--median-punkt)}
.lg-o::before,.nv-o{background:var(--teurer-punkt)}
.lz-kopf{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 24px;padding:0 0 10px;font-size:13px;font-weight:600;color:var(--tinte-mittel)}
.lz-liste{list-style:none;margin:0;padding:0}
.lz-liste li{border-top:1px solid var(--linie-tabelle)}
.lz{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:14px 0;text-decoration:none;color:var(--tinte)}
.lz:hover .lz-lokal strong{text-decoration:underline}
.lz-lokal{flex:1 1 280px;min-width:0;display:flex;flex-direction:column}
.lz-lokal strong{font-weight:600;text-wrap:balance}
.lz-lokal>span{font-size:13px;color:var(--tinte-leise);text-wrap:balance}
.lz-status{font-size:13px;font-weight:500;color:var(--tinte-leise)}
.lz-status.offen{color:var(--geoeffnet-text);font-weight:600}
.lz-status.ferien{color:var(--tinte-stark);font-weight:500}
/* Preisniveau: alle Punkte in einer Zeile; die Breite setzt lokale.js nach der längsten Reihe (--nv-punkte) */
.lz-niveau{flex:0 0 calc(var(--nv-punkte,15) * 11px + 65px);display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--tinte-leise);white-space:nowrap}
.nv-punkte{display:flex;gap:3px}
.nv-punkte span{width:8px;height:8px;border-radius:var(--rund-pille)}
.lz-preise{flex:0 1 330px;min-width:min(100%,300px);display:flex;gap:12px}
.lz-preis{flex:1 1 0;min-width:0;text-align:right}
.lz-label{display:none;font-size:12px;color:var(--tinte-leise)}
.lz-wert{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.lz-preis.leer .lz-wert{color:var(--tinte-strich);font-weight:500}
/* Lokale ohne Preise als zweite Gruppe */
.lz-liste li.lz-trenner{list-style:none;display:flex;flex-direction:column;gap:4px;padding:30px 0 12px;border-top:2px solid var(--tinte)}
.lz-trenner strong{font-size:17px;letter-spacing:-.01em}
.lz-trenner span{font-size:13px;color:var(--tinte-mittel)}
.lz-trenner a{color:var(--pflaume);font-weight:600;text-underline-offset:3px}
.lz.ohne-preise .lz-niveau,.lz.ohne-preise .lz-preise{visibility:hidden}
.knopf-mehr{align-self:flex-start;margin-top:10px}

/* Landkarte */
.karte-kasten{position:relative;display:flex;flex-direction:column;gap:10px}
.karte-flaeche{position:relative;overflow:hidden;border-radius:var(--rund-innen);background:var(--karte-grund);aspect-ratio:1716.5/1226}
.karte-flaeche .tal-karte{position:absolute;inset:0}
.karte-zoom{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;gap:6px}
.karte-zoom button{width:40px;height:40px;border-radius:var(--rund-symbol);border:0;background:var(--flaeche);color:var(--tinte);font:inherit;font-size:20px;font-weight:600;cursor:pointer;box-shadow:var(--schatten-knopf)}
.karte-hinweis{padding:0 8px 4px;font-size:12px;color:var(--tinte-leise)}
.karte-hinweis a{color:inherit}
.au-rahmen{display:none}
.auswahl{background:var(--pflaume-hell);border-radius:var(--rund-karte);padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:16px;box-shadow:var(--schatten-schwebend)}
.au-unten{position:relative;z-index:1;margin-top:-32px;box-shadow:var(--schatten-nach-oben)}
.au-ueber{font-size:13px;font-weight:600;color:var(--pflaume)}
.au-kopf{display:flex;align-items:center;gap:14px}
.au-b{width:48px;height:48px;border-radius:var(--rund-knopf);background:var(--flaeche);color:var(--pflaume);font-size:18px}
.au-name{display:flex;flex-direction:column;min-width:0}
.au-name h2{font-size:clamp(20px,1.8vw,24px);letter-spacing:-.02em;line-height:1.2}
.au-name span{font-size:13px;color:var(--tinte-mittel)}
.au-werte{display:flex;flex-direction:column;gap:8px;font-size:14px}
.au-werte .lz-status{font-size:14px}
.au-werte .fuell{border-bottom-color:var(--pflaume-punktlinie)}
.au-niveau{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px}
.au-niveau>span:last-child{font-size:12.5px;color:var(--tinte-leise)}
.knopf-auswahl{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:var(--rund-knopf);background:var(--pflaume);color:var(--auf-pflaume);text-decoration:none;font-weight:600}
.au-naehe{display:flex;flex-direction:column;gap:4px;padding-top:14px;border-top:1px solid var(--pflaume-linie)}
.au-naehe h3{margin:0 0 4px;font-size:16px}
.au-naehe ul{list-style:none;margin:0;padding:0}
.au-naehe button{width:100%;border:0;background:transparent;font:inherit;color:var(--tinte);text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;padding:8px 0}
.au-naehe .buchstabe{width:36px;height:36px;border-radius:10px;background:var(--flaeche)}
.au-n{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.au-n strong{font-weight:600}
.au-n .lz-status{font-size:12.5px;font-weight:600}
.au-naehe button:hover strong{text-decoration:underline}
.au-hinweis{font-size:15px;font-weight:600;color:var(--pflaume)}
/* Unter 940 px: Auswahlfelder 2 × 2, „Derzeit geöffnet“ darunter über die volle Breite */
@media (max-width:939px){
  .lb-kopf{flex-wrap:nowrap;gap:10px}
  .lb-kopf h2{font-size:20px;white-space:nowrap}
  .schalter-ansicht button{padding:8px 12px;font-size:14px;gap:6px}
  .lb-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lb-offen{grid-column:1 / -1;order:10}
  .lz-kopf{display:none}
  .lz-label{display:block}
  .lz.ohne-preise .lz-niveau,.lz.ohne-preise .lz-preise{display:none}
  .karte-flaeche{aspect-ratio:880/1006;background:var(--karte-grund-hoch)}
  .karte-zoom{left:auto;right:12px}
}
/* Unter 1140 px liegt die Lokal-Karte unter der Landkarte und überlappt sie etwas */
@media (max-width:1139px){.karte-kasten{padding-bottom:26px}}
@media (min-width:1140px){
  .au-rahmen{display:block;position:absolute;z-index:2;top:16px;right:16px;width:min(380px,calc((100% - 40px) / 3))}
  .au-unten{display:none}
}
