/* ═══════════════════════════════════════════════════════════
   Seiten-CSS, Einsatzgebiet
   Eigenes Bauteil: Ortsliste mit Filter (.ortsfilter / .regionen)
   ═══════════════════════════════════════════════════════════ */

.ortsfilter{max-width:560px; margin:0 auto clamp(2.4rem,5vw,3.4rem); min-width:0}
.ortsfilter__label{
  display:block; font-family:var(--ff-d); font-weight:600; font-size:.85rem;
  color:var(--deep); margin-bottom:.5rem; text-align:center;
}
.ortsfilter__row{
  display:flex; align-items:center; gap:.7rem; background:#fff;
  border:1.5px solid var(--grey); border-radius:12px; padding:.4rem .4rem .4rem 1rem;
  transition:border-color .3s, box-shadow .3s;
}
.ortsfilter__row:focus-within{border-color:var(--navy); box-shadow:0 0 0 4px rgba(0,87,184.14)}
.ortsfilter__ico{color:var(--muted); flex:none; transform:rotate(90deg)}
.ortsfilter__input{
  flex:1; min-width:0; border:0; background:none; font:inherit; font-size:1rem;
  padding:.7rem 0; color:var(--ink);
}
.ortsfilter__input:focus{outline:none}
.ortsfilter__status{
  text-align:center; font-size:.82rem; color:var(--muted); margin-top:.6rem;
}

.regionen{
  display:grid; gap:clamp(1.1rem,2.4vw,1.7rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
}
.region{
  min-width:0; background:#fff; border:1px solid var(--grey); border-radius:var(--r);
  padding:1.5rem 1.6rem; transition:opacity .3s, transform .3s;
}
.region__h{
  font-size:.98rem; font-weight:700; color:var(--deep); margin-bottom:.9rem;
  padding-bottom:.7rem; border-bottom:1px solid var(--grey);
}
.region__list{display:flex; flex-direction:column; gap:.5rem}
.region__list li{
  font-size:.92rem; color:var(--muted); padding:.15rem 0; border-radius:6px;
  transition:color .2s, background .2s;
}
.region__list li[data-hit]{
  color:var(--deep); font-weight:600; background:var(--water);
  padding:.15rem .5rem; margin-inline:-.5rem;
}
.region__list li[data-dim]{opacity:.32}
.region[data-empty]{opacity:.4}

.ortsfilter__empty{
  max-width:560px; margin:2.2rem auto 0; text-align:center; color:var(--muted);
  font-size:.94rem; background:#FFF6E6; border:1px solid #F0D9A6; border-radius:var(--r);
  padding:1.1rem 1.4rem;
}
.ortsfilter__cta{text-align:center; margin-top:2.6rem}

@medianot all{
  .region.region__list li{transition:none}
}
