/* =========================================
   SUCHEN.CSS – Ergänzungen für suchen.html
   ========================================= */

/* Seitenbreite / Grundabstände */
.search-page{
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 12px 28px;
}


.search-page .heropage__title span{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  font-size: 1.05rem;
  font-weight: 600;
}

.search-page .heropage__title i{
  color: var(--accent);
}

/* Layout */
.search-page .layout-split{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 18px;
  align-items: start;
}

.search-page .layout-main{
  min-width: 0;
}

.search-page .layout-side{
  min-width: 0;
  position: sticky;
  top: 95px;
}

/* Wichtig: auf dieser Seite richtige Kartenfarbe */
.search-page .card,
.search-page .panel{
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border-2);
  border-radius: 20px;
  box-shadow: var(--shadow-soft);
}

/* Ergebnisbox */
.sg-results{
  overflow: hidden;
}

.sg-results__head{
  align-items: center;
}

.sg-results__head .card__title{
  color: var(--text);
  font-size: 1.05rem;
}

.sg-head-actions{
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.sg-iconbtn{
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--muted);
  cursor: pointer;
  transition: .18s ease;
}

.sg-iconbtn:hover{
  background: var(--surface-2);
  color: var(--text);
}

.sg-iconbtn.is-active{
  background: var(--surface-2);
  border-color: var(--accent);
  color: var(--accent);
}

.sg-results__body{
  min-width: 0;
}

/* Überschriften / Meta im Ergebnis */
.sg-h2{
  margin: 0 0 8px;
  font-size: 1.85rem;
  line-height: 1.18;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.02em;
}

.sg-meta{
  margin-bottom: 14px;
  font-size: 0.95rem;
  color: var(--muted);
  font-weight: 600;
}

/* Trefferkarten */
.sg-cards{
  display: grid;
  gap: 14px;
}

.sg-card{
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface);
  padding: 14px 14px 12px;
  box-shadow: 0 4px 14px rgba(0,0,0,.04);
  transition: .18s ease;
}

.sg-card:hover{
  border-color: var(--border-2);
  box-shadow: 0 8px 22px rgba(0,0,0,.06);
}

.sg-card.is-highlight{
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.sg-card__top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.sg-card__topleft{
  min-width: 0;
  flex: 1 1 auto;
}

.sg-card__topright{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;

}

.sg-titlelink{
  display: inline-block;
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text);
  text-decoration: none;
}

.sg-titlelink:hover{
  color: var(--accent);
  text-decoration: none;
}

.sg-addrline{
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 0.93rem;
  text-align: left;
  cursor: pointer;
}

.sg-addrline:hover{
  color: var(--text);
}

.sg-dot{
  opacity: .6;
}

/* Badges */
.sg-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.sg-badge{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
}

.sg-badge:hover{
  border-color: var(--border-2);
  background: var(--c-blue);
}

.sg-badge--service{
  background: #edf5df;
  border-color: #dbe9bf;
}

.sg-badge--type{
  background: #eef5f8;
  border-color: #d6e4ea;
}

.sg-badge--date{
  background: #f5f5f5;
}

.sg-citybadges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 18px;
}

.sg-citybadge{
  text-decoration: none;
}

/* Status-Flags rechts oben */
.sg-flag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface-2);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
}

.sg-flag--fav{
  color: var(--berry);
}

.sg-flag--seen{
  color: var(--muted);
}

/* More Panel in Cards */
.sg-morepanel{
  margin-top: 2px;
  padding-top: 2px;
}

.sg-morepanel__inner{
  min-width: 0;
}

.sg-morepanel__loading,
.sg-morepanel__error{
  padding: 12px;
  color: var(--muted);
  font-weight: 600;
}

.sg-more{
  display: grid;

}

.sg-closebtn{
  width: 40px;
  height: 40px;
  margin-left: auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  cursor: pointer;
}

/* Tipps / Hinweise */
.sg-tip{
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid var(--border-2);
  border-radius: 16px;
  background: #f7fbfb;
}

.sg-tip__title{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 600;
  color: var(--text);
}

.sg-tip__text{
  margin: 0 0 8px;
  color: var(--muted);
}

.sg-tip__list{
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
}

.sg-small{
  font-size: 0.9rem;
  color: var(--muted);
}

/* Load more */
.sg-loadmore{
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

/* Filterbox */
.sg-filter{
  padding: 16px;
}

.sg-filter .panel__title{
  color: var(--text);
  font-size: 1.05rem;
}

.sg-filter .panel__sub{
  color: var(--muted);
  font-size: 0.82rem;
}

.sg-filter .form-field{
  margin-top: 14px;
}

.sg-filter .form-label{
  margin-bottom: 6px;
  font-size: 0.96rem;
  color: var(--text);
}

.sg-filter .form-input,
.sg-filter .form-select{
  min-height: 46px;
  border-radius: 14px;
  border-color: #b7c7cf;
  font-size: 0.95rem;
}

.sg-filter .form-input:focus,
.sg-filter .form-select:focus{
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(68,101,115,.10);
}

.geo-field.is-disabled{
  opacity: .6;
}

.geo-field.is-disabled .form-input{
  background: #f2f4f5;
  cursor: not-allowed;
}

/* Control row mit ? Button */
.sg-controlrow{
  display: grid;
  grid-template-columns: 1fr 34px;
  gap: 8px;
  align-items: center;
}

.sg-q{
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}

.sg-q:hover{
  background: var(--c-blue);
}

.sg-hint{
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.sg-hint--warn{
  border: 1px solid #eadcae;
  background: #fff9e8;
  color: #5c4d18;
}

/* Suggest Box */
.suggest-box{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 50;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.geo-field{
  position: relative;
}

.suggest-item{
  padding: 11px 12px;
  border-bottom: 1px solid #edf1f3;
  cursor: pointer;
  font-size: 0.93rem;
  color: var(--text);
}

.suggest-item:last-child{
  border-bottom: 0;
}

.suggest-item:hover,
.suggest-item.is-active{
  background: var(--surface-2);
}

/* Checkboxen */
.sg-checkgrid{
  display: grid;
  gap: 8px;
}

.sg-checkgrid--3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sg-check{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 0;
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.35;
  cursor: pointer;
}

.sg-check input{
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  flex: 0 0 auto;
}

.sg-check span{
  color: var(--text);
}

.sg-count{
  color: var(--muted);
  font-size: 0.9em;
}

/* Toggle Tätigkeiten / Einsatzarten */
.sg-facet{
  padding-top: 2px;
}

.sg-facet__row{
  display: flex;
  align-items: center;
}

.sg-switch2{
  display: block;
  width: 100%;
  cursor: pointer;
}

.sg-switch2 input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.sg-switch2__track{
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  min-height: 50px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
  overflow: hidden;
}

.sg-switch2__txt{
  position: relative;
  z-index: 2;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
  padding: 0 14px;
}

.sg-switch2__thumb{
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(50% - 4px);
  height: calc(100% - 8px);
  border-radius: 999px;
  background: var(--primary);
  transition: transform .22s ease;
  z-index: 1;
}

#sgFacetToggle:checked + .sg-switch2__track .sg-switch2__thumb{
  transform: translateX(100%);
}

#sgFacetToggle:not(:checked) + .sg-switch2__track .sg-switch2__txt--left,
#sgFacetToggle:checked + .sg-switch2__track .sg-switch2__txt--right{
  color: var(--c-blueblack);
}

/* Gruppen */
#sgAufgabeOptions,
#sgEinsatzOptions{
  display: grid;
  gap: 4px;
}

/* Buttons in Filterbox */
.sg-filter .actions{
  margin-top: 14px;
}

.sg-filter .btn{
  width: 100%;
  justify-content: center;
  min-height: 46px;
  font-size: 0.86rem;
}

/* Karte */
.sg-map{
  width: 100%;
  height: 560px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: #eef3f4;
}

.sg-mapselected{
  margin-top: 14px;
}

.sg-mapselected__head{
  align-items: center;
}

.sg-mapselected__close{
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
  cursor: pointer;
  font-size: 1.1rem;
}

/* Mobile Tool Button */
.mobile-tools{
  display: none;
}

@media (max-width: 980px){
  .mobile-tools{
    display: flex;
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1010;
  }



  .search-page .layout-split{
    grid-template-columns: 1fr;
  }

  .search-page .layout-side{
    position: static;
  }



  .search-page .heropage__title{
    margin-bottom: 0;
  }

  .search-page .heropage__title span{
    margin-left: 0;
    font-size: 0.98rem;
    padding: 9px 12px;
  }

  .layout-side .panel{
    position: fixed;
    inset: 0;
    z-index: 1302;
    margin: 0;
    padding: 14px;
    border-radius: 0;
    overflow: auto;
    display: none;
    background: var(--surface);
  }

  .layout-side .panel.is-open{
    display: block;
  }


  .page-backdrop{
    position: fixed;
    inset: 0;
    z-index: 1301;
    background: rgba(0,0,0,.45);
  }

  body.modal-open{
    overflow: hidden;
  }



  .sg-checkgrid--3{
    grid-template-columns: 1fr;
  }

  .sg-map{
    height: 380px;
  }
}





.search-page [hidden],
.search-page .sg-flag[hidden],
.search-page .sg-loadmore[hidden],
.search-page #sgMapWrap[hidden],
.search-page #sgMapSelected[hidden],
.page-backdrop[hidden]{
  display: none !important;
}

.search-page .card__title{
  font-size: 1.45rem;
  line-height: 1.2;
}

.search-page .sg-h2{
  font-size: 1.28rem;
  line-height: 1.25;
  margin: 0 0 6px;
}



.sg-results,
.sg-results__body,
.sg-cards,
.sg-card{
  min-width: 0;
}


@media (max-width: 980px){
  html,
  body{
    overflow-x: hidden;
  }

  .card{
    box-shadow: unset !important;
    border-radius: unset !important;
    border: unset !important;
    padding: 0;
  }

  body.modal-open{
    overflow: hidden;
    height: 100dvh;
  }

  .search-page{
    padding-left: 0;
    padding-right: 0;
  }

  .search-page .layout-main,
  .search-page .sg-results,
  .layout-side{
    width: 100%;
    min-width: 0;
  }

  .sg-cards{
    grid-template-columns: 1fr;
  }

  .sg-card{
    width: 100%;
  }

  .layout-side .panel{
    position: fixed;
    inset: 0;
    z-index: 1302;
    display: none;
    margin: 0;
    padding: 0px 14px 20px;
    border-radius: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    height: 100dvh;
    max-height: 100dvh;
  }

  .layout-side .panel.is-open{
    display: block;
  }

  .layout-side .panel__head{
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--surface);
    padding-top: 4px;
  }

  .page-backdrop{
    position: fixed;
    inset: 0;
    z-index: 1301;
    background: rgba(0,0,0,.45);
  }

  .sg-card__top{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
  }

  .sg-card__topleft{
    min-width: 0;
    width: 100%;
  }

  .sg-card__topright{
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 6px;
    width: auto;
    flex: 0 0 auto;
    flex-direction: column-reverse;
  }

  .sg-badges{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
  }

  .sg-flag{
    padding: 6px 9px;
    font-size: 0.72rem;
  }




}

@media (max-width: 690px){
  .sg-flag--seen span{
    display: none;
  }

  .sg-flag{
    min-width: 40px;
    justify-content: center;
  }
}


#sgResultsBody,
#sgMapWrap{
  transition: opacity .18s ease;
}

#sgResultsBody.is-loading,
#sgMapWrap.is-loading{
  opacity: .45;
  pointer-events: none;
}



.scrolltop-btn{
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%) translateY(12px);
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1200;

    background: var(--c-rain, #446573);
    color: #fff;
    box-shadow: 0 10px 28px rgba(0,0,0,.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity .22s ease,
        transform .22s ease,
        background-color .22s ease;
}

.scrolltop-btn:hover{
    background: var(--c-blueblack, #3d4c53);
}

.scrolltop-btn:focus-visible{
    outline: 3px solid rgba(68,101,115,.28);
    outline-offset: 3px;
}

.scrolltop-btn.is-visible{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.scrolltop-btn i{
    font-size: 18px;
    line-height: 1;
}

@media (max-width: 980px){
    .scrolltop-btn{
        bottom: 18px;
        width: 48px;
        height: 48px;
    }
}




















/* Aufklappbereich in der Suche */
.sg-more .sp-grid[data-sp-fragment="1"]{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}

.sg-more .sp-grid__full{
  grid-column: 1 / -1;
  min-width: 0;
}

.sg-more .sp-grid__side{
  min-width: 0;
}

.sg-more .sp-box{
  min-width: 0;
}

/* Zuklappen oben kompakt, ohne Kastenoptik */
.sg-morepanel__foot--top{
  padding: 0;
  border: 0;
  text-align: center;
}

.sg-closebtn--full{
  width: auto;
  min-height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font-weight: 600;
  cursor: pointer;
  margin: 0 auto;
  box-shadow: none;
}

.sg-closebtn--full:hover{
  background: transparent;
  color: var(--accent);
  transform: none;
}

.sg-closebtn--full i{
  font-size: 1rem;
}

.sg-morepanel__foot, .sg-morepanel__foot--top{
    margin-top: -10px;
}

/* Bewerbung */
.sg-more .sp-applybox{
  width: 100%;
}

.sg-more .sp-applyrow{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: stretch;
}

.sg-more .sp-applybtn{
  min-width: 0;
}

.sg-more .sp-applybox__actions{
  display: contents;
}

/* kleine Action-Kacheln rechts */
.sg-more .sp-applybox__actions .sp-btn,
.sg-more .sp-applybox__actions a.sp-btn,
.sg-more .sp-applyrow .sp-favbtn{
  width: 110px;
  min-height: 82px;
  padding: 10px 10px 8px;
  border-radius: 16px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  font-weight: 600;
  text-align: center;
}

.sg-more .sp-applybox__actions .sp-btn,
.sg-more .sp-applybox__actions a.sp-btn{
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}

.sg-more .sp-applybox__actions .sp-btn:hover,
.sg-more .sp-applybox__actions a.sp-btn:hover{
  text-decoration: none;
  transform: translateY(-1px);
}

.sg-more .sp-applybox__actions .sp-btn i,
.sg-more .sp-applybox__actions a.sp-btn i,
.sg-more .sp-applyrow .sp-favbtn i{
  font-size: 1.15rem;
  line-height: 1;
}

.sg-more .sp-applybox__actions .sp-btn span,
.sg-more .sp-applybox__actions a.sp-btn span,
.sg-more .sp-applyrow .sp-favbtn .sp-favbtn__txt{
  display: block;
  font-size: .92rem;
  line-height: 1.2;
}

/* 3-Spalten-Boxen unten kompakter */
.sg-more .sp-grid__side .sp-box{
  height: 100%;
}

/* KV Listen: Label oben, Wert darunter */
.sg-more .kv{
  display: grid;
  gap: 12px;
}

.sg-more .kv__row{
  display: block;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--border);
}

.sg-more .kv__row:last-child{
  border-bottom: 0;
  padding-bottom: 0;
}

.sg-more .kv__k{
  display: block;
  margin: 0 0 4px;
  font-size: .9rem;
  font-weight: 600;
  color: var(--muted);
}

.sg-more .kv__v{
  display: block;
  font-size: .98rem;
  line-height: 1.4;
  color: var(--text);
  word-break: break-word;
  overflow-wrap: anywhere;
}

.sg-more .kv__v a{
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Anbieter / Träger unten kleiner und dezenter */
.sg-more .sg-morepanel__providerline{
  text-align: center;
  font-size: .60rem;
  line-height: 1.45;
  color: var(--muted);
}

.sg-more .sg-morepanel__providerlabel{
  font-weight: 600;
  color: var(--muted);
  margin-right: 4px;
}

.sg-more .sg-morepanel__providertext{
  color: var(--muted);
}

.sg-more .sg-morepanel__providerline a{
  color: var(--muted);
  text-decoration: underline;
}

.sg-more .sg-morepanel__providerline a:hover{
  color: var(--text);
}

@media (max-width: 1100px){
  .sg-more .sp-grid[data-sp-fragment="1"]{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  .sg-more .sp-grid[data-sp-fragment="1"]{
    grid-template-columns: 1fr;
  }

  .sg-more .sp-applyrow{
    grid-template-columns: 1fr 96px 96px;
    gap: 10px;
  }

  .sg-more .sp-applybox__actions .sp-btn,
  .sg-more .sp-applybox__actions a.sp-btn,
  .sg-more .sp-applyrow .sp-favbtn{
    width: 96px;
    min-height: 76px;
    padding: 8px;
  }
}

@media (max-width: 640px){
  .sg-more .sp-applyrow{
    grid-template-columns: 1fr;
  }

  .sg-more .sp-applybox__actions{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 10px;
  }

  .sg-more .sp-applybox__actions .sp-btn,
  .sg-more .sp-applybox__actions a.sp-btn,
  .sg-more .sp-applyrow .sp-favbtn{
    width: 100%;
    min-height: 70px;
  }
}

.sg-more .sp-grid__side{
  display: flex;
}

.sg-more .sp-grid__side .sp-box{
  width: 100%;
}

.sg-more .sp-grid--sidecount-1{
  grid-template-columns: 1fr;
}

.sg-more .sp-grid--sidecount-1 .sp-grid__side{
  grid-column: 1 / -1;
}

.sg-more .sp-grid--sidecount-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sg-more .sp-grid--sidecount-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}



/* =========================================
   Aufklappbereich: volle Breite + Mini-Kacheln
   ========================================= */

.sg-more .sp-grid[data-sp-fragment="1"]{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
}

.sg-more .sp-grid__full{
  min-width: 0;
}

.sg-more .sp-box{
  min-width: 0;
}

/* KV als Kachelgrid */
.sg-more .kv.kv--tiles{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.sg-more .kv.kv--tiles .kv__row{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  min-width: 0;
}

.sg-more .kv.kv--tiles .kv__k{
  font-size: .84rem;
  line-height: 1.35;
  font-weight: 600;
  color: var(--muted);
  margin: 0;
}

.sg-more .kv.kv--tiles .kv__v{
  font-size: .98rem;
  line-height: 1.45;
  font-weight: 600;
  color: var(--text);
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.sg-more .kv.kv--tiles .kv__v a{
  color: var(--text);
  text-decoration: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.sg-more .kv.kv--tiles .kv__v a:hover{
  text-decoration: underline;
}

/* Mobil etwas kompakter */
@media (max-width: 700px){
  .sg-more .kv.kv--tiles{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .sg-more .kv.kv--tiles .kv__row{
    padding: 11px 12px;
  }
}








.sg-mapbox{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
}

.sg-map{
  width: 100%;
  height: 560px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  background:
    linear-gradient(rgba(68,101,115,.18), rgba(68,101,115,.18)),
    #eef3f4;
}

.sg-mapconsent{
  position: absolute;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(61,76,83,.34);
  backdrop-filter: blur(2px);
}

.sg-mapconsent[hidden]{
  display: none !important;
}

.sg-mapconsent__panel{
  width: min(100%, 760px);
  padding: 34px 36px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  background: rgba(47,59,64,.88);
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
  color: #fff;
}

.sg-mapconsent__title{
  margin: 0 0 18px;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #fff;
}

.sg-mapconsent__text{
  margin: 0 0 14px;
  max-width: 58ch;
  font-size: 1.02rem;
  line-height: 1.58;
  color: rgba(255,255,255,.96);
}

.sg-mapconsent__text strong{
  color: #fff;
}

.sg-mapconsent__actions{
  margin-top: 20px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.sg-mapconsent__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 54px;
  padding: 0 22px;
  border: 1px solid #c7d67a;
  border-radius: 14px;
  background: var(--primary);
  color: var(--c-blueblack);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: .18s ease;
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

.sg-mapconsent__btn:hover{
  transform: translateY(-1px);
  filter: brightness(.98);
}

.sg-mapconsent__btn:focus-visible{
  outline: 3px solid rgba(183,201,74,.34);
  outline-offset: 3px;
}

.sg-mapconsent__btn--ghost{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 180px;
  min-height: 54px;
  padding: 0 20px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  color: #fff;
  font-size: .98rem;
  font-weight: 600;
  cursor: pointer;
  transition: .18s ease;
}

.sg-mapconsent__btn--ghost:hover{
  background: rgba(255,255,255,.1);
}

@media (max-width: 980px){
  .sg-map{
    height: 380px;
  }

  .sg-mapconsent{
    padding: 16px;
  }

  .sg-mapconsent__panel{
    padding: 22px 20px;
    border-radius: 18px;
  }

  .sg-mapconsent__title{
    font-size: 2rem;
  }

  .sg-mapconsent__text{
    font-size: .96rem;
    line-height: 1.5;
  }

  .sg-mapconsent__btn,
  .sg-mapconsent__btn--ghost{
    width: 100%;
    min-width: 0;
  }
}

.sg-mapbox{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
}

.sg-map{
  width: 100%;
  height: 560px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  background:
    linear-gradient(rgba(68,101,115,.14), rgba(68,101,115,.14)),
    #eef3f4;
}

.sg-mapconsent{
  position: absolute;
  inset: 0;
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(61,76,83,.30);
  backdrop-filter: blur(2px);
}

.sg-mapconsent[hidden]{
  display: none !important;
}

.sg-mapconsent__panel{
  width: min(100%, 760px);
  padding: 34px 36px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 22px;
  background: rgba(47,59,64,.86);
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
  color: #fff;
}

.sg-mapconsent__title{
  margin: 0 0 18px;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #fff;
}

.sg-mapconsent__text{
  margin: 0 0 14px;
  max-width: 58ch;
  font-size: 1.02rem;
  line-height: 1.58;
  color: rgba(255,255,255,.96);
}

.sg-mapconsent__text strong{
  color: #fff;
}

.sg-mapconsent__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 54px;
  padding: 0 22px;
  margin-top: 8px;
  border: 1px solid #c7d67a;
  border-radius: 14px;
  background: var(--primary);
  color: var(--c-blueblack);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: .18s ease;
  box-shadow: 0 8px 18px rgba(0,0,0,.10);
}

.sg-mapconsent__btn:hover{
  transform: translateY(-1px);
  filter: brightness(.98);
}

.sg-mapconsent__btn:focus-visible{
  outline: 3px solid rgba(183,201,74,.34);
  outline-offset: 3px;
}

/* Reset-Button unten rechts auf der Karte */
.sg-mapreset{
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 420;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(61,76,83,.18);
  border-radius: 10px;
  background: rgba(255,255,255,.92);
  color: var(--c-blueblack);
  font-size: .82rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,.10);
  transition: .18s ease;
  backdrop-filter: blur(3px);
}

.sg-mapreset:hover{
  background: #fff;
  border-color: rgba(61,76,83,.28);
}

.sg-mapreset:focus-visible{
  outline: 3px solid rgba(68,101,115,.24);
  outline-offset: 2px;
}

.sg-mapreset[hidden]{
  display: none !important;
}

@media (max-width: 980px){
  .sg-map{
    height: 380px;
  }

  .sg-mapconsent{
    padding: 16px;
  }

  .sg-mapconsent__panel{
    padding: 22px 20px;
    border-radius: 18px;
  }

  .sg-mapconsent__title{
    font-size: 2rem;
  }

  .sg-mapconsent__text{
    font-size: .96rem;
    line-height: 1.5;
  }

  .sg-mapconsent__btn{
    width: 100%;
    min-width: 0;
  }

  .sg-mapreset{
    right: 10px;
    bottom: 10px;
    min-height: 32px;
    padding: 0 10px;
    font-size: .76rem;
  }
}


.sp-webqr__code{
     display: none;
}











 .sg-map-marker-wrap{
  background: transparent !important;
  border: 0 !important;
}

.sg-map-marker{
  position: relative;
  display: block;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  border: 0.15rem solid #fff;
  box-shadow:
    0 0.28rem 0.9rem rgba(15, 23, 42, 0.22),
    0 0.08rem 0.2rem rgba(15, 23, 42, 0.14);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    filter 0.18s ease;
}

.sg-map-marker::before{
  content: "";
  position: absolute;
  inset: 0.16rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
}

.sg-map-marker::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%) rotate(45deg);
  box-shadow: 0 0 0 0.04rem rgba(255,255,255,0.15);
}

.sg-map-marker.is-default{
  background: linear-gradient(145deg, #3b82f6 0%, #2563eb 55%, #1d4ed8 100%);
}

.sg-map-marker.is-viewed{
  background: linear-gradient(145deg, #b1b8c3 0%, #8b95a3 55%, #6b7280 100%);
}

.sg-map-marker.is-favorite{
  background: linear-gradient(145deg, #fb7185 0%, #ef4444 55%, #dc2626 100%);
}

.sg-map-marker.is-favorite::before{
  background: rgba(255,255,255,0.10);
}

.sg-map-marker.is-favorite::after{
  content: "♥";
  font-family: Arial, sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1;
  width: auto;
  height: auto;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  color: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -52%) rotate(45deg);
}

.leaflet-marker-icon:hover .sg-map-marker,
.leaflet-marker-icon:focus .sg-map-marker{
  filter: brightness(1.04);
  box-shadow:
    0 0.38rem 1rem rgba(15, 23, 42, 0.26),
    0 0.1rem 0.24rem rgba(15, 23, 42, 0.18);
}

.leaflet-popup-open .sg-map-marker{
  filter: brightness(1.06);
}









.sg-mapbox{
  position: relative;
}

.sg-map.is-blurred{
  filter: blur(4px);
  transform: scale(1.01);
  pointer-events: none;
}

.sg-mapnotice{
  position: absolute;
  inset: 0;
  z-index: 490;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(61,76,83,.22);
  backdrop-filter: blur(2px);
}

.sg-mapnotice[hidden]{
  display: none !important;
}

.sg-mapnotice__panel{
  width: min(100%, 720px);
  padding: 28px 30px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  background: rgba(47,59,64,.90);
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
  color: #fff;
  text-align: left;
}

.sg-mapnotice__title{
  margin: 0 0 14px;
  font-size: clamp(1.5rem, 2.4vw, 2.2rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
}

.sg-mapnotice__text{
  margin: 0 0 12px;
  font-size: 1rem;
  line-height: 1.58;
  color: rgba(255,255,255,.96);
}

.sg-mapnotice__text strong{
  color: #fff;
}

@media (max-width: 980px){
  .sg-mapnotice{
    padding: 14px;
  }

  .sg-mapnotice__panel{
    padding: 20px 18px;
    border-radius: 16px;
  }

  .sg-mapnotice__title{
    font-size: 1.5rem;
  }

  .sg-mapnotice__text{
    font-size: .95rem;
    line-height: 1.5;
  }
}



.sg-card__foot{
    margin-top: 0px;
}

.sg-openbtn{
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0px solid var(--line, #fff);
    background: var(--surface, #fff);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: .18s ease;
}

.sg-openbtn:hover{
    transform: translateY(-1px);
}

.sg-card.is-open .sg-card__foot{
    display: none;
}
/* =========================================
   Gruppierte Suchergebnisse: mehrere Plätze
   pro Einsatzstelle übersichtlich anzeigen
   ========================================= */
.sg-badge--places{
  background: #eef5f8;
  border-color: #cfe1e7;
  color: var(--accent);
}

.sg-card.is-open .sg-badge--places{
  background: var(--c-blue);
  border-color: var(--accent);
}

.sg-relatedplaces{
  margin: 16px 0 4px;
  padding: 14px;
  border: 1px solid var(--border-2);
  border-radius: 16px;
  background: #fbfcfc;
}

.sg-relatedplaces__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.sg-relatedplaces__head h3{
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .98rem;
  line-height: 1.25;
  font-weight: 600;
  color: var(--text);
}

.sg-relatedplaces__head span{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 600;
}

.sg-relatedplaces__tablewrap{
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
}

.sg-relatedplaces__table{
  width: 100%;
  border-collapse: collapse;
  min-width: 620px;
  font-size: .86rem;
}

.sg-relatedplaces__table th,
.sg-relatedplaces__table td{
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: top;
}

.sg-relatedplaces__table th{
  color: var(--muted);
  font-size: .75rem;
  font-weight: 600;
  background: var(--surface-2);
}

.sg-relatedplaces__table tr:last-child td{
  border-bottom: 0;
}

.sg-relatedplaces__table td strong{
  display: block;
  font-weight: 600;
  color: var(--text);
}

.sg-relatedplaces__table td span{
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: .78rem;
}

.sg-relatedplaces__row--current td{
  background: #f6f9ee;
}

.sg-relatedplaces__current,
.sg-relatedplaces__open{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  white-space: nowrap;
}

.sg-relatedplaces__current{
  background: #edf5df;
  color: var(--text);
}

.sg-relatedplaces__open{
  border: 1px solid var(--border-2);
  background: var(--surface);
  color: var(--accent);
  text-decoration: none;
}

.sg-relatedplaces__open:hover{
  background: var(--c-blue);
  text-decoration: none;
}

@media (max-width: 720px){
  .sg-relatedplaces{
    padding: 12px;
  }

  .sg-relatedplaces__head{
    align-items: flex-start;
    flex-direction: column;
  }

  .sg-relatedplaces__table{
    min-width: 0;
  }

  .sg-relatedplaces__table thead{
    display: none;
  }

  .sg-relatedplaces__table,
  .sg-relatedplaces__table tbody,
  .sg-relatedplaces__table tr,
  .sg-relatedplaces__table td{
    display: block;
    width: 100%;
  }

  .sg-relatedplaces__table tr{
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
  }

  .sg-relatedplaces__table tr:last-child{
    border-bottom: 0;
  }

  .sg-relatedplaces__table td{
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 10px;
    padding: 5px 0;
    border-bottom: 0;
  }

  .sg-relatedplaces__table td::before{
    content: attr(data-label);
    color: var(--muted);
    font-size: .74rem;
    font-weight: 600;
  }
}
