:root {
    --link-hover-color: var(--color-primary-dark);
    --stripe1: #b3e49b85;
    --stripe2: #b3e59b;
    --stripe-width: 40px;
    --stripe-blur: 2px;
}

p{
    line-height: 1.3em;
    margin: 0.2em;
}

.ObjektData{
    font-weight: 700;
    line-height: 140%;
    max-height: 1.4em;
    max-width: 100%;
    overflow: hidden;
}

.Space{
   line-height: 49%;
}

.noimage{
  float: left;
  width: 192px;
  height: 144px;
  line-height: 7em;
  text-align: center;
  background-color: #ccc;
  color: white;
  margin-right: 16px;
  color: #777;
}

.wfl {
    float:left;
    padding-right:1em;

}

.jahr {
    float:left;
    padding-right:1em;
}

.grund {
    float:left;
    padding-right:1em;
}

.additional {
    float:left;
    padding-right:1em;
}

.datecreated {
    float: right;
    font-weight: 500;
    opacity: 25%;
}

.zimmer {
    float:left;
    padding-right:1em;
}

.Rating{
    float: right;
    margin-top: -1.6em;
    padding-right: 1em;

    opacity: 1;
    padding-left: 1em;

}

.Rating [itemprop="ratingValue"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fullStar{
    position: relative;
    transform: rotate(10deg);
    float: left;

    font-size: 1.4em;
    font-weight: bold;
    background: linear-gradient(115deg, #ffffff 20%, #ffa646 40%, #ffe660 60%, #ca6600 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 0.5px #b8860b;

    text-shadow: 0 0 5px rgba(255, 215, 0, 0.7), 0 0 10px rgb(255 255 255 / 77%);
}

.fullStar::after {
  content: "";
  position: absolute;
  z-index: 900;
  top: 23%;
  left: 37%;
  width: 61%;
  height: 35%;
  pointer-events: none;
  background: radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(255,255,255,0) 60%);
  transform: rotate(-50deg);
  opacity: 1;
}

.lightStar{
    position: relative;
    float: left;
    transform: rotate(10deg);

    font-size: 1.4em;
    font-weight: bold;
    background: linear-gradient(135deg, #faf6de 0%, #a4a4a4 30%, #e8e8e8 60%, #777 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 0.5px #777;

}

.lightStar::after {
  content: "";
  position: absolute;
  top: 23%;
  left: 31%;
  width: 60%;
  height: 36%;
  pointer-events: none;
  background: radial-gradient(circle,
    rgba(255,255,255,1) 0%,
    rgba(255,255,255,0) 55%);
  transform: rotate(-44deg);
  opacity: 1;
}

.basicStar{

    position: relative;
    transform: rotate(10deg);
    opacity: 80%;
    float: left;

    font-size: 1.4em;
    font-weight: bold;
    background: linear-gradient(115deg, #ffffff 20%, #50b572 40%, #ffffff 60%, #074213 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: #75dd6433;
    -webkit-text-stroke: 0.5px #22347873;
    text-shadow: 0 0 5px rgb(197 255 230 / 5%), 0 0 10px rgb(255 255 255 / 77%);
}

.basicStar::after {
    content: "";
    position: absolute;
    z-index: 900;
    top: 23%;
    left: 37%;
    width: 61%;
    height: 35%;
    pointer-events: none;
    background: radial-gradient(circle, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 60%);
    transform: rotate(-50deg);
    opacity: .8;
}

.static-page-layout {
    max-width: 860px;
    margin: 0 auto;
    padding: 1.5em 1.2em 3em;
}

.static-content h1 {
    font-size: 1.6em;
    margin-bottom: 0.3em;
    color: #1a2a3a;
}

.static-content h2 {
    font-size: 1.25em;
    margin-top: 1.8em;
    margin-bottom: 0.4em;
    padding-bottom: 0.25em;
    border-bottom: 1px solid #e0e6ec;
    color: #1a2a3a;
}

.static-content h3 {
    font-size: 1.08em;
    margin-top: 1.3em;
    margin-bottom: 0.3em;
    color: #2a3a4a;
}

.static-content h4 {
    font-size: 1em;
    font-weight: 600;
    margin-top: 1.1em;
    margin-bottom: 0.2em;
    color: #3a4a5a;
}

.static-content p {
    line-height: 1.6;
    margin: 0.6em 0;
    color: #333;
}

.static-content ul {
    padding-left: 1.4em;
    margin: 0.5em 0;
}

.static-content li {
    line-height: 1.6;
    margin-bottom: 0.3em;
}

.static-content figure.anleitung-screenshot {
    float: none;
    clear: both;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    margin: 1.5em auto 1.75em;
    margin-right: 0;
    padding: 0;
    text-align: center;
    background-color: transparent;
    align-content: unset;
}
.static-content figure.anleitung-screenshot img {
    display: block;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.static-content figure.anleitung-screenshot figcaption {
    display: block;
    float: none;
    width: 100%;
    margin-top: 0.6em;
    font-size: 0.92em;
    color: #6b7280;
    line-height: 1.4;
    text-align: center;
}

.static-content figure.anleitung-screenshot.anleitung-screenshot-kompakt {
    max-width: 42rem;
}
.static-content figure.anleitung-screenshot.anleitung-screenshot-kompakt img {
    width: auto;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.static-content section#verwaltung::after {
    content: "";
    display: table;
    clear: both;
}

.static-content section {
    margin-bottom: 1.5em;
}

.transparenz-tabelle {
    width: 100%;
    border-collapse: collapse;
    margin: 1em 0 1.5em;
    font-size: 0.92em;
}

.transparenz-tabelle th,
.transparenz-tabelle td {
    border: 1px solid #d8e0ea;
    padding: 0.5em 0.7em;
    text-align: left;
    vertical-align: top;
}

.transparenz-tabelle thead th {
    background: #f0f4f8;
    font-weight: 600;
    color: #1a2a3a;
    white-space: nowrap;
}

.transparenz-tabelle tbody tr:nth-child(even) {
    background: #fafbfc;
}

.transparenz-tabelle tbody tr:hover {
    background: #f0f4f8;
}

.transparenz-sterne {
    display: flex;
    align-items: center;
    gap: 0;
    white-space: nowrap;
    flex-wrap: nowrap;
    min-width: 130px;
}

.challenge-kategorie {
    margin: 1.2em 0 0.8em;
    padding: 0.6em 0.8em;
    border-left: 3px solid #d8e0ea;
    background: #fafbfc;
}

.transparenz-sterne > div {
    float: none;
}

.transparenz-sterne-demo {
    display: inline-flex;
    vertical-align: middle;
    margin-right: 0.3em;
}

.transparenz-sterne-demo > div {
    float: none;
}

@media (max-width: 600px) {
    .static-page-layout { padding: 1em 0.7em 2em; }
    .transparenz-tabelle { font-size: 0.82em; }
    .transparenz-tabelle th, .transparenz-tabelle td { padding: 0.35em 0.4em; }
}

.Objekttitel-Wrapper {

    width: 100%;
    background-color: var(--color-success);
}

.Objekttitel {

    background-color: var(--color-success);

    max-width: 85%;
    margin: 0;
    overflow: hidden;
    position: relative;
}

.Objekttitel h4 {
    width: 100%;
    max-width: 100%;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    color: #2271b5;
    font-style: italic;
    font-weight: 600;
    letter-spacing: -0.01em;
    padding-right: 2em;
}

.Objekttitel::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 20%;
    background: linear-gradient(to right, transparent, var(--color-success));
    pointer-events: none;
}

nav hr{
    border:4px solid #3245A3;
    padding-top:0px;
}

.site-title{
    margin-bottom: -28px;
}

h1 {
    color:#000000;
    margin:0;
    text-align: center;
    font-size: larger;
}
.idx0-suchfeld-container h1 {
    padding-bottom: 1em;
}

.exposee_main_title h1
{
    width: 31em;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    color: black;
    background-size: 36em 100%;
    background-repeat: no-repeat;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    padding-left: 1em;
}

h2 {
    font-weight: normal;
    color:rgb(88, 88, 88);
    font-size: xx-large;
}

h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500;
    font-size: x-large;
    background: linear-gradient(to bottom, transparent 0%, transparent 60%, #ccd9ff 60%, #ccd9ff 100%);
    max-width: 20em;
    padding-left: 1em;
    color: #555;
    margin-bottom:0;
}
.index-layout h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500;

    background: unset;
    Background-color:#00000014;
    max-width: 20em;
    padding-left: 1em;
    color: #555;
    margin-bottom:0;
}

h4 {
    font-weight: 500;
    font-size: 100%;
    margin:0;
    margin-bottom: -0.7em;
    padding-left: 1em;
}

h3 button{
 font-size: 0.6em;
 min-width: 7em;
}

ol {
    padding-inline-start: 0px;
    margin-block-start: 0px;
    margin-block-end: 0px;
}

ol li{
    display: inline;

}

.site-logo {  }

.site-title{
    margin-bottom: 0px;
    margin-top: 1em;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}

.site-title a {

    font-size: 4.5em;
    line-height: 1em;
    color: var(--color-primary);
    font-weight: bolder;
    text-decoration: none;
}

.site-title a:hover {
    text-decoration: none;
}

.site-title .logo-o {
    color: var(--color-accent);
}

div.breadcrumb,
.breadcrumb.tpl-breadcrumb {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0.35rem;
    padding: 0.2rem 0 0.4rem;
    background: none;
    background-color: transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 1em;
    line-height: 1.35;
}

div.breadcrumb > ol,
.breadcrumb.tpl-breadcrumb > ol {
    flex: 0 1 auto;
}

body > div.breadcrumb.tpl-breadcrumb,
body > div.breadcrumb:not(.title-breadcrumb) {
    padding-left: 0;
    padding-right: 0;
    margin-inline: 0;
}

nav + .breadcrumb,
nav + .breadcrumb.tpl-breadcrumb,
nav + div.breadcrumb {
    margin-top: 0;
}

.breadcrumb-prefix {
    display: none !important;
}

:root {
    --bc-home-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b5563' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
    --bc-pin-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2316a34a' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E");
}

.bc-a11y {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.bc-icon {
    display: inline-block;
    flex-shrink: 0;
    width: 0.95em;
    height: 0.95em;
    background: transparent center / contain no-repeat;
}

.bc-icon--home {
    width: 1em;
    height: 1em;
    background-image: var(--bc-home-svg);
}

.bc-icon--pin {
    background-image: var(--bc-pin-svg);
}

.breadcrumb a.bc-home,
.breadcrumb a.bc-ort,
ol.breadcrumb a.bc-home,
ol.breadcrumb a.bc-ort {
    gap: 0.28em;
}

.breadcrumb a.bc-home,
ol.breadcrumb a.bc-home {
    padding-left: 0.38em;
    padding-right: 0.38em;
}

.breadcrumb a.bc-home:hover .bc-icon--home,
ol.breadcrumb a.bc-home:hover .bc-icon--home {
    filter: brightness(0.85);
}

.breadcrumb ol,
ol.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.12rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 1em;
}

ol.breadcrumb {
    max-width: none;
    width: auto;
    border-bottom: none;
}

.breadcrumb ol li,
ol.breadcrumb li {
    display: inline-flex;
    align-items: center;
}

.breadcrumb ol li.separator,
ol.breadcrumb li.separator {
    display: none;
}

.breadcrumb ol li:not(.separator):not(:last-child)::after,
ol.breadcrumb li:not(.separator):not(:last-child)::after {
    content: "›";
    margin: 0 0.12rem;
    color: #d1d5db;
    font-size: 1.05em;
    font-weight: 400;
    line-height: 1;
    pointer-events: none;
}

.tpl-breadcrumb {
    background: none;
    background-color: transparent;
}

@media (min-width: 769px) {
    body > nav > .menu.tpl-navigation {
        box-sizing: border-box;
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    }
}
.tpl-aside3-unterkategorien{
    font-size: 117%;
}

.breadcrumb a,
ol.breadcrumb a {
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    padding: 0.2em 0.48em;
    margin: 0;
    font-size: inherit;
    font-weight: 500;
    line-height: 1.25;
    color: #4b5563;
    text-decoration: none;
    white-space: nowrap;
    border: 1px solid transparent;
    border-radius: 0.125rem;
    background: none;
    background-color: transparent;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.breadcrumb a:hover,
ol.breadcrumb a:hover {
    color: #111827;
    background-color: #f9fafb;
    border-color: #e5e7eb;
    text-decoration: none;
}

.breadcrumb-filter {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    flex-shrink: 0;
    gap: 0.35em;
    margin: 0;
    padding: 0.18em 0.55em;
    background-color: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 0.125rem;
    font-size: inherit;
    color: #1e40af;
}
.breadcrumb-filter-label {
    font-weight: 500;
    color: #64748b;
}
.breadcrumb-filter-text {
    font-weight: 600;
    color: #1d4ed8;
}
.breadcrumb-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35em;
    height: 1.35em;
    padding: 0;
    margin-left: 0.15em;
    border: none;
    background-color: transparent;
    color: #64748b;
    font-size: 0.95em;
    cursor: pointer;
    border-radius: 50%;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.breadcrumb-filter-reset:hover {
    background-color: #dbeafe;
    color: #b91c1c;
}

.breadcrumb a#breadcrumb-current,
ol.breadcrumb a#breadcrumb-current {
    font-weight: 600;
    color: #374151;
    background-color: #fff;
    border-color: #e5e7eb;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.breadcrumb a#breadcrumb-current:hover,
ol.breadcrumb a#breadcrumb-current:hover {
    color: #9a3412;
    background-color: #fff7ed;
    border-color: #fed7aa;
}

main {
    padding-top:0.8em;
}

.img {
    top:50%;
}

aside{
    float:left;
    width:16em;
    margin-top: 1em;

}

aside li{
    margin-bottom: 10px;
    list-style: none;
}

aside ul{
    padding-left: 0;
    margin:0;
}

aside h3{
    margin-top:0;
    margin-bottom: 0;
}

form{
    font-size: smaller;
    text-align: justify;
}
input {
    font-size: medium;
    margin-left:0em;
}
button{
    font-size: 1em;
    background-color: var(--color-success);
    border: none;
}

aside button{
    font-size: 1em;
    background-color: var(--color-success-transparent);
    border: none;
    min-width: 100%;
    color: var(--color-text-muted);
}

input,
textarea,
select {
    font-size: medium;
    padding: 0.3em 0.4em;
    border: 1.5px solid #c2c6d1;
    border-radius: 0.5em;
    background: #f8f9fa;
    color: #222;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: 0 1px 1px rgba(50,69,163,0.07);
    outline: none;
    margin-bottom: 0.2em;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 2px var(--color-primary-dark)22;
    background: #fff;
}

.box {
    margin-bottom: 0.5em;
    background-color: #00000008;
    padding:1em;
    margin-top: 1.5em;
}

.box h3{
    background-color: #00000014;
    Margin-left: -1em;
    margin-right: -1em;
    margin-top: -1em;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: .5em;
    padding-bottom: .5em;
    color: black;
    font-size:100%;
}

.box .Preisinfo{
    margin: 0;
    font-size: smaller;
    font-weight: 300;
    font-style: italic;
}

.basic-data-row {
  display: flex;
  flex-direction: row;
  gap: 2em;
}
.basic-data-row .basic-data-col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}

.basic-data-row .data-item {
  margin-bottom: 0.3em;
}

.energie {
margin-top: 2em;}
.energy-bar {
  width: 300px;
  position: relative;
  margin-left: 2em;
  margin-top:2em;
}
.energy-gradient {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  position: relative;
  background: linear-gradient(90deg, #02973B 0%, #4CAF50 7.5%, #8BC34A 15%, #CDDC39 25%, #FFEB3B 38%, #FFC107 49%, #FF9800 60%, #FF5722 75%, #F44336 85%, #BDBDBD 100%);
  border-radius: 8px;
  box-shadow: 0 2px 8px #0001;
}
.energy-classes {
  display: flex;
  width: 100%;
  justify-content: space-between;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
  height: 40px;
  width: 100%;
  pointer-events: none;
}
.energy-class {
  flex: 1 1 0;
  font-size: 1.1em;
  color: #333;
  font-weight: normal;
  line-height: 40px;
  z-index: 2;
}
.energy-class.active {
  font-weight: bold;
  background: none;
}
.energy-marker {
  position: absolute;
  top: -20px;
  left: 0;
  transform: translateX(-50%);
  z-index: 10;
  width: 120px;
  pointer-events: none;
  margin-top: -0.5em;
  text-align: center;
}
.marker-value {
  display: block;
  font-size: 13px;
  font-weight: bold;
  margin-bottom: 2px;
  color: #222;
}
.marker-icon {
  width: 22px;
  height: 18px;
  display: block;
  margin: 0 auto;
}

.sidebar {  }
.panel {  }
.box {  }
.content {  }
.main {  }
.section {  }
.col {  }
.container {  }
.row {  }

.sidebar-provider {  }
.provider-logo {  }
.provider-name {  }
.provider-street {  }
.provider-city {  }
.provider-address {  }
.provider-email {  }
.provider-email h5 { margin: 0.5em 0 0.2em 0; font-size: 0.9em; color: #555; }

.email-verschluesselt {
     font-family: 'Source Sans 3', monospace;
     letter-spacing: 0.05em;
     color: #999;
     font-size: inherit;
     cursor: default;
     user-select: none;
     transition: color 0.3s ease;
     background: transparent;
     border: none;
     padding: 0;
     margin: 0;
}
.email-entschluesselt {
     font-family: 'Source Sans 3', sans-serif;
     letter-spacing: normal;
     color: #2a7ae2;
     font-size: inherit;
     cursor: pointer;
     user-select: text;
     text-decoration: underline;
     text-decoration-color: transparent;
     transition: color 0.2s ease, text-decoration-color 0.2s ease;
     background: transparent;
     border: none;
     padding: 0;
     margin: 0;
}
.email-entschluesselt:hover {
     color: #1a5bb5;
     text-decoration-color: #1a5bb5;
     background: transparent;
}
.anbieter-email-zentrale .email-verschluesselt {  }
.anbieter-email-zentrale .email-entschluesselt {  }
.contact-email .email-verschluesselt {  }
.contact-email .email-entschluesselt {  }
.contact-email-feedback .email-verschluesselt {  }
.contact-email-feedback .email-entschluesselt {  }
.makler-email .email-verschluesselt {  }
.makler-email .email-entschluesselt {  }
.makler-email-page .email-verschluesselt {  }
.makler-email-page .email-entschluesselt {  }
.provider-phone {  }
.provider-website {  }
.provider-imprint {  }
.provider-number {  }

.exposee_main_title {  }
.exposee_footer {  }
.exposee-footer {  }
.exposee_slider {  }
.typ {  }
.preis {  }
.merkmale {  }
.lage {  }
.lage_detail {  }
.lagetext {  }
.weitere_infos {  }
.anbieter_detail {  }
.anbieter_impressum { padding-bottom: 2em;  }
.anbieter_kontakt {  }
.kontakt_detail {  }
.provision_detail { color: #555; padding-left: 2em;  }
.provision-detail {  }
.preis_detail {  }
.price-detail {  }
.price-description {  }
.mehrwertsteuer {  }
.provision {  }

.beschreibung {  }
.description {  }
.ausstattung {  }
.equipment {  }
.features {  }
.zustand {  }
.location {  }
.location-detail {  }
.location-link {  }
.location-main {  }
.location-sub {  }
.location-map {  }
.location-map-embed {  }
.location-static-map {  }
.location-text {  }
.location-text-preview {  }
.location-text-full {  }
.equipment-preview {  }
.equipment-full {  }
.features-preview {  }
.features-full {  }
.zustand-preview {  }
.zustand-full {  }
.description-preview {  }
.description-full {  }
.price-description-preview {  }
.price-description-full {  }
.anbieter-impressum-foooter {
    font-size: 0.9em;
    color: #555;
    margin-top: 1em;
    text-align: center;
    font-style: italic;
}

.site-footer {
    background: linear-gradient(180deg, #3548a8 0%, #283578 100%);
    color: rgba(255, 255, 255, 0.88);
    padding: 2rem 1.25rem 1.35rem;
    text-align: center;
    margin-top: 3em;
    border-top: 3px solid var(--color-accent, #fc6c00);
}

.site-footer .footer-share,
.site-footer .footer-navigation,
.site-footer .footer-help,
.site-footer .footer-copyright,
.site-footer .generated-timestamp {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.site-footer .footer-navigation {
    background: none;
    background-color: transparent;
    margin-bottom: 0.85rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.site-footer nav a:hover {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

.site-footer .footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem 0.35rem;
}

.site-footer .footer-links li {
    display: inline-flex;
    align-items: center;
}

.site-footer .footer-links li + li::before {
    content: "·";
    color: rgba(255, 255, 255, 0.35);
    font-weight: 700;
    margin-right: 0.35rem;
    pointer-events: none;
    user-select: none;
}

.site-footer .footer-links a {
    display: inline-block;
    padding: 0.22em 0.55em;
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.92);
    font-weight: 500;
    font-size: 0.92rem;
    text-decoration: none;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.site-footer .footer-links a:hover {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
    text-decoration: none;
}

.site-footer .footer-help {
    margin-bottom: 0.65rem;
    font-size: 0.88rem;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.62);
    font-style: italic;
}

.site-footer .footer-help p {
    margin: 0;
}

.site-footer .footer-copyright {
    font-size: 0.82rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.48);
}

.site-footer .footer-copyright p {
    margin: 0;
}

.site-footer .generated-timestamp {
    margin-top: 0.65rem;
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.32);
}

.generated-timestamp {
    font-size: 0.75rem;
    color: #999;
}

.anhang_anhangtitel {  }
.anhang_anhangtitel-vollbild {  }
#slider-main {  }
#slider-nav-left {  }
#slider-nav-right {  }
#slider-thumbnails {  }
#thumb-scroll-left {  }
#thumb-scroll-right {  }
#thumb-track {  }
#slider-fullscreen-overlay {  }
#slider-fullscreen-content {  }
#slider-fullimage {  }
#slider-fullnav-left {  }
#slider-fullnav-right {  }
#slider-fullnav-close {  }

.contact {  }
.contact-address {  }
.contact-email { display: block; margin-top: 0.3em; }
.contact-email-feedback { display: block; margin-top: 0.3em; }
.contact h5, .boxed-shadow h5 { margin: 0.6em 0 0.15em 0; font-size: 0.85em; color: #666; font-weight: 600; }
.contact-form {  }
.contact-name {  }
.contact-phone {  }
.contact-photo {  }
.sidebar-contact {  }
.email {  }

.Index_Element {  }
.Index_Footer {  }
.Index_Makler {  }
.Index_Objektart {  }
.Index_ObjektlisteAndereUnterkategorien {  }
.Index_ObjektlisteNachbarorte {  }
.Index_ObjektlisteOrt {  }
.Index_Unterkategorie {  }
.Index_Werbung { padding-top: 1em;}
.Index_andereObjektart {  }
.Index_andereUnterkategorie {  }

.objektarten-liste { list-style-type: none;}
.unterkategorien-liste {  }
.andere-immobilien-liste {  }
.andere-unterkategorien-liste {  }
.alle-immobilien-liste {  }
.andere-objektart-liste { list-style: none;}
.andere-unterkategorie-liste { list-style: none;}

.immobilien-name {  }
.objektart-name {  }
.unterkategorie-name {  }

.idx-immobilien-auswahl {  }
.idx-kategorie-auswahl {  }
.idx-nachbarorte-auswahl {  }
.aside-nachbarorte {  }

.tpl-andereobjektart {  }
.tpl-andereunterkategorie {  }
.tpl-aside1-nachbarortelinks {  }
.tpl-aside2-nachbarortevermarktung {  }
.tpl-aside2-objektarten {  }
.tpl-aside3-andereimmobilien {  }
.tpl-aside3-nachbarorteobjektart {  }
.tpl-aside4-alleimmobilien {  }
.tpl-aside4-andereunterkategorien {  }
.tpl-aside4-nachbarorteunterkategorie {  }
.tpl-footer {  }
.tpl-header {  }
.tpl-index-titel {  }
.tpl-makler { margin-top: 2em;}
.tpl-nachbarorte {  }
.tpl-navigation {  }
.tpl-objektart {  }
.tpl-objektlisteandereunterkategorien {  }
.tpl-objektlistenachbarorte { margin-top: 4em;}
.tpl-anderevermarktungsart {  }
.tpl-aside1-vermarktungsart {  }
.tpl-aside-nachbarorte {  }
.tpl-objektlisteort {  }
.tpl-statistik {  }
.tpl-unterkategorie {  }
.tpl-vermarktungsart {  }
.tpl-weitereauswahl {  }
.tpl-werbung { margin-right: 2em;}

.object-type {  }
.object-category {  }
.object-number {  }
.ObjektArt {  }
.marketing-type {  }

[itemprop="address"] {  }
[itemprop="postalCode"] {  }
[itemprop="addressLocality"] {  }

[itemprop="offers"] {  }
[itemprop="price"] {  }
[itemprop="priceCurrency"] {  }
[itemprop="availability"] {  }
[itemprop="itemOffered"] {  }

[itemprop="name"] {  }
[itemprop="description"] {  }
[itemprop="url"] {  }
[itemprop="numberOfRooms"] {  }
[itemprop="floorSize"] {  }
[itemprop="landSize"] {  }
[itemprop="yearBuilt"] {  }

[itemprop="aggregateRating"] {  }
[itemprop="ratingValue"] {  }
[itemprop="bestRating"] {  }
[itemprop="worstRating"] {  }

.Ort [itemprop="postalCode"] {  }
.Ort [itemprop="addressLocality"] { padding-left: .3em;}

.exposee-layout [itemprop="address"] {  }
.exposee-layout [itemprop="postalCode"] {  }
.exposee-layout [itemprop="addressLocality"] {  }

article [itemprop="price"] {  }
article [itemprop="priceCurrency"] {  }

article [itemprop="name"] {  }
article [itemprop="description"] {  }
article [itemprop="numberOfRooms"] {  }
article [itemprop="floorSize"] {  }
article [itemprop="yearBuilt"] {  }

article [itemprop="aggregateRating"] {  }
article [itemprop="ratingValue"] {  }

.anbieter-info [itemprop="name"] {  }
.makler-info [itemprop="name"] {  }
.makler-info-page [itemprop="name"] {  }

.idx-anbieter-firma [itemprop="name"] {  }
.idx-anbieter-firma [itemprop="url"] {  }

[itemtype="https://schema.org/PostalAddress"] {  }
[itemtype="https://schema.org/Offer"] {  }
[itemtype="https://schema.org/AggregateRating"] {  }
[itemtype="https://schema.org/RealEstateAgent"] {  }
[itemtype="https://schema.org/BreadcrumbList"] {  }

.breadcrumb-navigation {  }
.breadcrumb_main_title {  }
.title-breadcrumb {  }

.exposee-layout .breadcrumb_main_title {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.12rem 0 0.35rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    font-size: 1em;
}

.exposee-layout .title-breadcrumb {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border-bottom: none;
    font-size: 1em;
}

.exposee-layout .title-breadcrumb nav,
.exposee-layout ol.breadcrumb,
.exposee-footer .breadcrumb-navigation,
.exposee_footer .breadcrumb-navigation {
    background: none;
    background-color: transparent;
}

.exposee-layout .title-breadcrumb nav a,
.exposee-layout ol.breadcrumb a,
.exposee-footer .breadcrumb-navigation a,
.exposee_footer .breadcrumb-navigation a {
    text-decoration: none;
}

.exposee-layout .title-breadcrumb nav a:hover,
.exposee-layout ol.breadcrumb a:hover,
.exposee-footer .breadcrumb-navigation a:hover,
.exposee_footer .breadcrumb-navigation a:hover {
    text-decoration: none;
}

.exposee-footer .breadcrumb-navigation,
.exposee_footer .breadcrumb-navigation {
    max-width: none;
    width: 100%;
    margin: 0.75rem 0 0;
    padding: 0.35rem 0 0;
    border-bottom: none;
    font-size: 1em;
}

.share {  }
.share-icon {  }
.share-section {  }
.facebook {  }
.linkedin {  }
.whatsapp {  }
.telegram {  }
.imessage {  }
.sms {  }
.print {  }
.copy {  }
.x {  }

.fa-brands {  }
.fa-solid {  }
.fa-comment-dots {  }
.fa-envelope {  }
.fa-facebook-f {  }
.fa-link {  }
.fa-linkedin-in {  }
.fa-message {  }
.fa-print {  }
.fa-telegram {  }
.fa-whatsapp {  }
.fa-x-twitter {  }

.badge {  }
.badge-danger {  }
.badge-info {  }
.badge-success {  }
.badge-warning {  }

.answer {  }
.basic-data {  }
.basic_data {  }
.claim {

    margin-left: auto;
    padding-left: 1em;
    font-style: italic;
    color: #666;
    align-self: flex-end;
    margin-bottom: 0.15em;
}

header {
    padding: 0.65rem 1.25rem 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.site-title.tpl-header {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.hdr-claim-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem 0.5rem;
    max-width: 100%;
    font-style: normal;
}

.hdr-claim-actions .hdr-chip {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.3em;
    max-width: 100%;
    padding: 0.28rem 0.55rem 0.28rem 0.4rem;
    font-size: 0.85em;
    line-height: 1.25;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    border: 1px solid #e5e7eb;
    border-radius: 0.125rem;
    background-color: #f9fafb;
    color: #374151;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

.hdr-claim-actions .hdr-chip-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1em;
    height: 1em;
    line-height: 0;
    align-self: center;
}

.hdr-claim-actions .hdr-chip-icon svg {
    display: block;
    width: 1em;
    height: 1em;
}

.hdr-claim-actions .hdr-chip-icon .share-svg-jump {
    display: block;
    width: 1em;
    height: 1em;
}

.hdr-claim-actions .hdr-chip-text {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.hdr-claim-actions .hdr-chip-count {
    font-size: 0.85em;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #9ca3af;
}

.hdr-claim-actions .hdr-chip--share {
    color: #9a3412;
    background-color: #fff7ed;
    border-color: #fed7aa;
}

.hdr-claim-actions .hdr-chip--share .share-svg-jump {
    filter: invert(48%) sepia(98%) saturate(2476%) hue-rotate(360deg) brightness(103%) contrast(101%);
    opacity: 0.92;
}

.hdr-claim-actions .hdr-chip--share:hover {
    color: #7c2d12;
    background-color: #ffedd5;
    border-color: #fdba74;
    text-decoration: none;
}

.hdr-claim-actions .hdr-chip--merk {
    color: #9f1239;
    background-color: #fff1f2;
    border-color: #fecdd3;
}

.hdr-claim-actions .hdr-chip--merk:hover {
    color: #881337;
    background-color: #ffe4e6;
    border-color: #fda4af;
    text-decoration: none;
}

.hdr-claim-actions .hdr-chip--merk.hdr-chip-has-count {
    opacity: 1;
    font-weight: 600;
}

.hdr-claim-actions .hdr-chip--merk.hdr-chip-has-count .hdr-chip-count {
    color: var(--color-favorit, #c41e3a);
}

.hdr-claim-actions .hdr-chip--suche {
    color: #1e40af;
    background-color: #eff3ff;
    border-color: #c7d2fe;
}

.hdr-claim-actions .hdr-chip--suche:hover {
    color: #1e3a8a;
    background-color: #dbeafe;
    border-color: #a5b4fc;
    text-decoration: none;
}

.hdr-claim-actions .hdr-chip--suche.hdr-chip-has-count {
    opacity: 1;
    font-weight: 600;
}

.hdr-claim-actions .hdr-chip--suche.hdr-chip-has-count .hdr-chip-count {
    color: var(--color-primary-dark, #3245a3);
}

.hdr-claim-actions .hdr-chip--anbieten {
    color: #fff;
    background-color: var(--color-primary, #2171b5);
    border-color: var(--color-primary-dark, #3245a3);
    font-weight: 600;
}

.hdr-claim-actions .hdr-chip--anbieten:hover {
    color: #fff;
    background-color: var(--color-primary-dark, #3245a3);
    border-color: var(--color-primary-dark, #3245a3);
    text-decoration: none;
}

.hdr-claim-actions .hdr-chip--login {
    color: #9ca3af;
    background-color: #f3f4f6;
    border: 1px dashed #d1d5db;
    cursor: help;
}

.hdr-claim-actions .hdr-chip--login:hover {
    color: #6b7280;
    background-color: #e5e7eb;
    border-color: #9ca3af;
    text-decoration: none;
}

.hdr-claim-actions .hdr-chip-is-empty {
    opacity: 0.48;
}

.hdr-claim-actions .hdr-chip-is-empty .hdr-chip-count {
    color: #cbd5e1;
    font-weight: 500;
}

.hdr-claim-actions .hdr-chip-is-empty:hover {
    opacity: 0.68;
}

.hdr-claim-actions .hdr-chip-has-count {
    opacity: 1;
}

.idx0-header-filterlinks {
    display: none;
}

@media (min-width: 769px) {
    .menu.tpl-navigation {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.35rem 0.5rem;
    }

    body:has(.exposee-layout) > nav,
    body:has(.index-layout) > nav,
    body:has(.index0-layout) > nav {
        margin-bottom: 0.25em;
    }

    .menu.tpl-navigation .idx0-header-filterlinks {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.35rem 0.45rem;
        flex: 1 1 auto;
        min-width: 0;
        order: 2;
    }

    .menu.tpl-navigation > .mobile-menu-toggle {
        order: 0;
    }

    .menu.tpl-navigation > ul {
        order: 3;
    }

    .menu.tpl-navigation .idx0-header-filterbtn {
        appearance: none;
        font: inherit;
        cursor: pointer;
        padding: 0.28rem 0.55rem;
        font-size: 1rem;
        font-weight: 600;
        color: #4b5563;
        background: #f9fafb;
        border: 1px solid #d1d5db;
        border-radius: 0.2rem;
        white-space: nowrap;
        transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    }

    .menu.tpl-navigation .idx0-header-filterbtn:hover {
        color: var(--color-accent);
        background: #fff4eb;
        border-color: #ffb06a;
    }

    .menu.tpl-navigation .idx0-header-filterbtn.is-active {
        color: #d65d00;
        background: #fff0e6;
        border-color: var(--color-accent);
    }

    .menu.tpl-navigation .idx0-header-filterbtn.is-empty {
        opacity: 0.5;
        color: #9ca3af;
        background: #f3f4f6;
        border-color: #e5e7eb;
    }

    .menu.tpl-navigation .idx0-header-filterbtn.is-empty:hover {
        opacity: 0.65;
        color: #6b7280;
        background: #e5e7eb;
        border-color: #d1d5db;
    }

    .menu.tpl-navigation .idx0-header-filterbtn.is-active.is-empty {
        opacity: 1;
        color: #9a4200;
        background: #fff0e6;
        border-color: var(--color-accent);
    }

    .menu.tpl-navigation .idx0-header-filterbtn:focus-visible {
        outline: 2px solid var(--color-primary-dark, #3245a3);
        outline-offset: 2px;
    }
}
.currency {  }
.faq-item {  }
.H2location {  }
.impressum-link {  }
.impressum-text {  }
.info-box {  }
.main-title {  }
.quality-index {  }
.report-link {  }
.report-offer {  }
.angebot_melden {  }
.search-box {  }
.stars {  }
.suche_speichern {  }
.tip {  }
.toc {  }
.version {  }
.visually-hidden {  }
.warning {  }

.location-text-box {
    max-height: 7em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
    color: #222;
}
.location-text-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.location-text-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.price-description-box {
    max-height: 15em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
    color: #222;
}
.price-description-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.price-description-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.equipment-box {
    max-height: 7em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
}
.equipment-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.equipment-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.features-box {
    max-height: 7em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
    color: #222;
}
.features-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.features-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.zustand-box {
    max-height: 7em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
    color: #222;
}
.zustand-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.zustand-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.energy {
    display: none;
}
.energy-details ul {
    margin-left:1em;
    list-style-type: circle;
}
.energy-class {}
.efficiency-box {}
.condition {}
.data-item {}

section{
    margin:0;
    padding:0;

}
section h3{
    color:#222431;
    margin:0;
    margin-top:2em;
    margin-bottom: 1em;;
}
section h2{
    color: #333;
    margin:0;
    margin-top:2em;
    margin-bottom: 1em;
    font-weight: bold;
}

article {
    background-color: transparent;
    margin-top: 2.5em;
    min-height: 9.3em;
    line-height: 150%;
    max-width: 50em;
    box-shadow: var(--hover-shadow);
    transition: box-shadow 0.2s ease;
}

article:hover {
    background-color: transparent;
    box-shadow: var(--hover-shadow);
}

details{
    padding-left:1em;
}

article h4{
    margin:0;
    padding-top: 0.2em;
    padding-right: 1em;
    padding-left: 0.5em;
    background-color: var(--color-success);
    font-size: 1.1em;
    white-space: nowrap;
    overflow: hidden;

    padding-bottom: 0.1em;
}

article a {
    text-decoration: none;
    color: inherit;
}

article .Daten {
    line-height: 2em;
    padding-right: 1em;
    padding-top: 0.5em;
    position: relative;
}
article .Description{
    line-height: 138%;
    margin:0;
    font-size: 121%;

    min-height: 60px;
    max-height: 2em;
    overflow: hidden;
    color:#555;
}

.Preis{
    position: absolute;
    right: 0px;
    bottom: 0em;
    padding-left: 1em;
    padding-right: 1em;
    font-weight: 600;
    font-size: 133%;
    z-index: 10;
    color: var(--color-accent);
}

.Ort{
    font-size:x-smaller;
    opacity: 50%;
}

figure {
    margin:0;
    float:left;
    margin-right: 1em;

    height: 144px;

    align-content: center;
    background-color: #ccc;
    text-align: center;
    width: 192px;
}
article figure img {
    width: 192px;
    height: 144px;
    object-fit: cover;
}

.Richtung{
    font-weight: 300;
    display:inline-block;
    width:1em;
}
.Pfeil{
    font-weight: 600;
    display:inline-block;
    width:1em;
}

@media only screen and (max-width: 950px) {
    .Preis
    {
        font-size: 144%;
        bottom: -1em;
    }
}
@media only screen and (max-width: 950px) {
  aside {
    display:none;

  }
  main
  {
    margin-left: 0em;

  }
  .breadcrumb{
        margin-left:0em;
        font-weight: lighter;
        color:rgb(88, 88, 88);

    }

}

.exposee_main_title{
    background-color: #2271b5;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    color: #222;
}

#slider-container {
    position: relative;
    width: 768px;
    margin: 0 auto;
    margin-top: -1.1em;
  }

  #slider-container img {
    display: none;
    object-fit: contain;
    width: 768px;
    height: 567px;
    margin: 0 auto;
  }

  #slider-container img[data-active="true"] {
    display: block;
  }

  #slider-nav-left, #slider-nav-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 70px;
    height: 70px;
    line-height: 70px;
    text-align: center;
    font-size: 2em;
    color: #ffffff;
    background-color: rgba(0,0,0,0.2);
    cursor: pointer;
    z-index: 10;
  }

  #slider-nav-left {
    left: 0;
  }
  #slider-nav-right {
    right: 0;
  }

  #slider-thumbnails {
    width: 768px;
    margin: 8px auto;
    display: flex;
    align-items: center;
    position: relative;
  }

  #thumb-scroll-left, #thumb-scroll-right {
    width: 30px;
    height: 96px;
    line-height: 96px;
    text-align: center;
    font-size: 1.5em;
    color: #ffffff;
    background-color: rgba(0,0,0,0.6);
    cursor: pointer;
    display: none;
    user-select: none;
    min-width: 30px;
  }

  #thumb-scroll-left {
    margin-right: 2px;
  }
  #thumb-scroll-right {
    margin-left: 2px;
  }

  #thumb-track {
    display: flex;
    flex-wrap: nowrap;
    overflow: hidden;
  }

  #thumb-track img {
    width: 128px;
    height: 96px;
    margin-right: 1px;
    background-color: #444444;
    object-fit: cover;
    cursor: pointer;
  }

  #slider-fullscreen-overlay {
    display: none;
    position: fixed;
    z-index: 999;
    left: 0; right: 0; top: 0; bottom: 0;
    background-color: rgba(0,0,0,0.7);
  }

  #slider-fullscreen-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 90%;
    background-color: #111;
  }

  #slider-fullimage {
    display: block;
    max-width: 100%;
    max-height: 100%;
    min-width: 1024px;
    min-height: 768px;
    margin: auto;
    object-fit: contain;
  }

  @media only screen and (max-width: 950px) {
    #slider-fullimage {
        display: block;
        max-width: 100%;
        max-height: 100%;
        min-width: 800px;
        min-height: 600px;
        margin: auto;
        object-fit: contain;
      }
    }
    @media only screen and (max-width: 400px) {
        #slider-fullimage {
            display: block;
            max-width: 100%;
            max-height: 100%;
            min-width: 400px;
            min-height: 300px;
            margin: auto;
            object-fit: contain;
          }
        }

.anhang_anhangtitel {
    width: 768px;
    font-size: 0.9em;
    margin-top: -30px;
    color: #222;
    min-height: 20px;
    padding-left:1em;
    display:none;
}
  .anhang_anhangtitel-vollbild {
    text-align: center;
    color: #dddddd;
    font-size: 1.0em;
    margin: 6px 0;
    min-height: 20px;
  }

  #slider-fullnav-left, #slider-fullnav-right, #slider-fullnav-close {
    position: absolute;
    color: #ffffff;
    font-size: 2em;
    background-color: rgba(0,0,0,0.2);
    cursor: pointer;
    text-align: center;
    line-height: 70px;
    width: 70px;
    height: 70px;
  }

  #slider-fullnav-left {
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  #slider-fullnav-right {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
  }
  #slider-fullnav-close {
    right: 0;
    top: 0;
  }

.exposee-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
}

.exposee-title-row h1 {
    flex: 1;
    margin: 0;
}

.exposee-symbole {
    display: inline-flex;
    gap: 0.4em;
    font-size: 1.6em;
    flex-shrink: 0;
    align-items: center;
}

.exposee-symbole .uf-minusplus,
.exposee-symbole .uf-herz {
    cursor: pointer;
    transition: transform 0.15s ease;
    user-select: none;
}

.exposee-symbole .uf-minusplus {
    color: #666;
    font-weight: bold;
}

.exposee-symbole .uf-minusplus:hover {
    color: #333;
    transform: scale(1.15);
}

.exposee-symbole .uf-herz {
    color: #555;
}

.exposee-symbole .uf-herz:hover {
    color: var(--color-favorit-hover);
    transform: scale(1.15);
}

.exposee-symbole.uf-favorit-aktiv .uf-herz {
    color: var(--color-favorit);
}

.exposee-symbole.uf-dislike-aktiv .uf-minusplus {
    color: #4a4;
}

.impressum-preview {
  color:#555;
  font-size: smaller;
  }
.impressum-full {
 color:#222;
 font-size:small    ;
}

.object-type h2 {
    font-size: 1.4em;
    font-weight: bold;
    text-align: center;
    margin: 0px 0;
    color: #454;
    position:relative;
    z-index: 100;
    background-color: #eeea;
}
.preis-value {
    font-weight: bold;
    color: #222;
    font-size: 3.2em;
}

.currency-value {
    color: #222;
    font-size: 120%;
}

.price {
    text-align: right;
}

.price-description-box {
    max-height: 7em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
    color: #000;
}
.price-description-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.price-description-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.description-box {
    max-height: 15em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.3s, color 0.3s;
}
.description-box.full {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}
.description-box.has-overflow {
    color: #555;
    -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
    mask-image: linear-gradient(to bottom, black calc(100% - 1em), transparent 100%);
}

.amount{
    background-color: var(--color-success);
    padding-left: 1em;
    padding-right: 1em;
}

.exposee-layout {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 3em;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
}

.exposee-layout main {
    flex: 1 1 0;
    min-width: 0;
    min-width:768px;
    padding-top: 0;
}

.exposee-layout aside {
    width: 320px;
    flex-shrink: 0;
    margin-left: 0;
    margin-top: 0;
    padding-top:2em;
    padding-left:1em;
}

@media (max-width: 1000px) {
    .exposee-layout {
        flex-direction: column;
    }
    .exposee-layout main {
        min-width: 0;
        width: 100%;
    }

    .exposee-layout aside {
        display: block;
        width: 100%;
        margin-left: 0;
        margin-top: 2em;
    }
}

.exposee-layout main {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.exposee-layout main > br {
    display: none;
}

.exposee-hero {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    overflow: hidden;
}

.exposee-layout .exposee_main_title {
    background: none;
    background-color: transparent;
    padding: 0.85rem 0.85rem 0.35rem;
    color: inherit;
}

.exposee-layout .exposee_main_title h1,
.exposee-layout .exposee-title-row h1 {
    width: auto;
    max-width: none;
    white-space: normal;
    overflow: visible;
    color: #111827;
    -webkit-text-fill-color: currentColor;
    background: none;
    background-clip: unset;
    -webkit-background-clip: unset;
    padding-left: 0;
    font-size: 1.55em;
    font-weight: 700;
    line-height: 1.28;
}

.exposee-layout .exposee-title-row {
    align-items: flex-start;
}

.exposee-layout .exposee-symbole {
    font-size: 1.45em;
    padding-top: 0.15em;
}

.exposee-hero .object-type h2 {
    font-size: 0.95em;
    font-weight: 500;
    text-align: center;
    margin: 0;
    padding: 0 0.85rem 0.55rem;
    color: #64748b;
    background: none;
    background-color: transparent;
    position: static;
    z-index: auto;
    line-height: 1.45;
}

.exposee-hero .object-type .object-category {
    font-weight: 600;
    color: #374151;
}

.exposee-hero .object-type .H2location {
    color: #64748b;
}

.exposee-hero .preis:not(:has(.preis-value)) {
    display: none;
}

.exposee-hero .preis {
    border-top: 1px solid #e5e7eb;
    padding: 0.55rem 0.85rem;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
}

.exposee-hero .price {
    text-align: left;
}

.exposee-hero .price .amount {
    display: block;
    font-size: 0.92em;
    line-height: 1.55;
    color: #4b5563;
}

.exposee-hero .preis-value {
    font-size: 1.85em;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #ea580c;
    line-height: 1.2;
}

.exposee-layout main .price-detail .preis-value,
.exposee-layout main .price .preis-value:not(.exposee-hero .preis-value) {
    font-size: 1em;
    font-weight: 600;
    color: #374151;
}

.exposee-hero .currency-value {
    font-size: 0.65em;
    font-weight: 600;
    color: #9a3412;
    vertical-align: baseline;
}

.exposee-hero .mehrwertsteuer {
    font-size: 0.85em;
    color: #64748b;
    margin-top: 0.2em;
}

.exposee-hero .exposee_slider {
    padding: 0 0.65rem 0.65rem;
}

.exposee-layout #slider-container {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.exposee-layout #slider-container img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: min(70vh, 520px);
    object-fit: contain;
}

.exposee-layout #slider-thumbnails {
    width: 100%;
    max-width: 100%;
    margin: 0.5rem 0 0;
}

.exposee-layout #slider-main {
    width: 100%;
}

.exposee-layout main h3 {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.35em;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.55em 0.8em;
    font-size: 0.95em;
    font-weight: 600;
    line-height: 1.3;
    color: #374151;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid #e5e7eb;
}

.exposee-layout main .boxed-shadow {
    box-sizing: border-box;
    background: #fff;
    border-radius: 0;
    box-shadow: none;
    padding: 0.65rem 0.8rem 0.75rem;
    margin: 0;
}

.exposee-layout main .basic-data,
.exposee-layout main .energy,
.exposee-layout main .price-detail,
.exposee-layout main .location-detail,
.exposee-layout main .report-offer,
.exposee-layout main > .ausstattung,
.exposee-layout main > .merkmale,
.exposee-layout main > .zustand,
.exposee-layout main > .beschreibung,
.exposee-layout main > .lagetext,
.exposee-layout main > .preis_detail,
.exposee-layout main > .provision_detail,
.exposee-layout main > .energie,
.exposee-layout main > .angebot_melden {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    overflow: hidden;
}

.exposee-layout main > .lage {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    overflow: hidden;
    padding: 0.65rem 0.8rem 0.75rem;
}

.exposee-layout main > .lage .location h2 {
    font-size: 1em;
    font-weight: 600;
    color: #374151;
    margin: 0 0 0.5em;
    text-align: left;
}

.exposee-layout main > .lage .location-main {
    color: #111827;
}

.exposee-layout main > .lage .exposee-map-wrap {
    margin-top: 0.65rem;
}

.exposee-layout main > .lage .exposee-map-box {
    border-radius: 4px;
    border: 1px solid #e5e7eb;
}

.exposee-layout main .basic-data-preise {
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
    border-bottom: 1px solid #e5e7eb;
}

.exposee-layout main .basic-data-preise:not(:has(.data-item-preis p)) {
    display: none;
    padding: 0;
    margin: 0;
    border-bottom: none;
}

.exposee-layout main .basic-data-preise .data-item-preis:empty,
.exposee-layout main .basic-data-preise #kaltmiete-row:not(:has(p)),
.exposee-layout main .basic-data-preise #nettokaltmiete-row:not(:has(p)) {
    display: none;
}

.exposee-layout main .basic-data-preise .data-item-preis p {
    font-size: 1.05em;
    font-weight: 600;
    color: #374151;
}

.exposee-layout main .basic-data-preise .data-item-preis .preis-value {
    font-size: 1.35em;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #ea580c;
}

.exposee-layout main .basic-data-preise .data-item-preis .currency-value {
    font-size: 0.85em;
    font-weight: 600;
    color: #9a3412;
}

.exposee-layout main .basic-data-preise .data-item-preis-hinweis p {
    font-size: 0.9em;
    font-weight: 500;
    color: #64748b;
    font-style: italic;
}

.exposee-layout main .basic-data-row .data-item p {
    margin: 0.25em 0;
    color: #374151;
}

.exposee-layout main .energie {
    margin-top: 0;
}

.exposee-layout main .button-toggle {
    font-size: 0.78em;
    font-weight: 500;
    color: #64748b;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 0.125rem;
    padding: 0.15em 0.45em;
}

.exposee-layout main .button-toggle:hover {
    color: #111827;
    background: #f3f4f6;
}

.exposee-layout aside {
    flex: 0 0 20em;
    width: 20em;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-left: 0;
    margin-top: 0;
    padding: 0;
}

.exposee-layout aside h3 {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.35em;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.55em 0.75em;
    font-size: 0.92em;
    font-weight: 600;
    line-height: 1.3;
    color: #374151;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid #e5e7eb;
    text-transform: none;
}

.exposee-layout aside .sidebar-contact,
.exposee-layout aside > .share,
.exposee-layout aside .quality_index,
.exposee-layout aside .provider,
.exposee-layout aside .anbieter-objekte,
.exposee-layout aside .anbieter_kontakt,
.exposee-layout aside .suche_speichern {
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    overflow: hidden;
}

.exposee-layout aside > .share .share-section,
.exposee-layout aside > .share .share-export-section {
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    margin: 0;
}

.exposee-layout aside > .share .share-export-section h3 {
    display: none;
}

.exposee-layout aside > .share .share-export-box {
    border-top: 1px dashed #e5e7eb;
    margin-top: 0;
    padding-top: 0.45rem;
}

.exposee-layout aside .sidebar-contact {
    border-color: #fed7aa;
    background: linear-gradient(180deg, #fff 0%, #fffbf7 100%);
}

.exposee-layout aside .sidebar-contact > h3,
.exposee-layout aside .contact-form > h3 {
    color: #9a3412;
    background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
    border-bottom-color: #fed7aa;
}

.exposee-layout aside .boxed-shadow {
    box-sizing: border-box;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 0.6rem 0.75rem 0.7rem;
    margin: 0;
}

.exposee-layout aside .share-icons {
    justify-content: center;
    gap: 0.35rem;
}

.exposee-layout aside .submit-button {
    background: #fff7ed;
    border: 1px solid #fdba74;
    color: #9a3412;
    font-weight: 600;
}

.exposee-layout aside .submit-button:hover {
    background: #ffedd5;
    border-color: #fb923c;
    color: #7c2d12;
}

.exposee-layout aside .delete-button,
.exposee-layout aside .small_btn {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    color: #4b5563;
}

.exposee-layout aside button {
    min-width: 0;
    width: auto;
    background-color: inherit;
}

.exposee-layout aside .formular-feld label {
    font-size: 0.85em;
    color: #64748b;
}

.sidebar-contact .formular-feld input,
.sidebar-contact .formular-feld textarea {
    border-radius: 0;
}

.exposee-layout .exposee-footer {
    padding: 0.65rem 0;
    font-size: 0.85em;
    color: #64748b;
}

@media (max-width: 1000px) {
    .exposee-layout aside {
        margin-top: 0.5em;
    }

    .exposee-layout aside > .share .share-export-section h3 {
        display: flex;
    }
}

.provider {
 padding-bottom: 0em;
}

.provider .provider-logo {
    max-width: 192px;
    width: auto;
    height: auto;
    display: block;
    margin: 0 auto 0.75em auto;
}

.anbieter-objekte {
    padding-bottom: 0.5em;
}
.anbieter-objekte h3 {
    margin-bottom: 0.5em;
}
.anbieter-objekte-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.anbieter-objekte-links li {
    padding: 0;
    margin: 0;
}
.anbieter-objekte-links li a {
    display: block;

    color: #1a73e8;
    text-decoration: none;
    border-bottom: 1px solid #eee;
    transition: background-color 0.15s;
}
.anbieter-objekte-links li:last-child a {
    border-bottom: none;
}
.anbieter-objekte-links li a:hover {
    background-color: #f0f4ff;
    text-decoration: underline;
}

.anbieter-objekte-links .anzahl-objekte {
    color: #666;
    font-size: 0.9em;
}

.formular-feld {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}
.formular-feld label {
    flex: 1 0 40%;
    text-align: left;
}
.formular-feld input,
.formular-feld textarea {
    min-width: 0;
}
@media (max-width: 650px) {
    .formular-feld {
        flex-direction: column;
        align-items: stretch;
    }
    .formular-feld label,
    .formular-feld input,
    .formular-feld textarea {
        flex: unset;
        text-align: left;
        margin-right: 0;
    }
}

.contact {
    padding-bottom: 1em;
}

.contact-header-visuals {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
    margin-bottom: 0.75em;
    width: 100%;
}

.contact-header-visuals > img {
    align-self: center;
    max-width: 100%;
    height: auto;
}
.contact .contact-photo {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
.provider-impressum-link-wrap {
    margin: 0.6em 0 0 0;
    font-size: 0.95em;
}
.provider-impressum-ae-link {
    color: #1a73e8;
    text-decoration: none;
}
.provider-impressum-ae-link:hover {
    text-decoration: underline;
}

.formular-feld.vertical-label {
    flex-direction: column !important;
    align-items: stretch !important;
}
.formular-feld.vertical-label label {
    margin-bottom: 0.3em;
    text-align: left;
}
.formular-feld.vertical-label textarea {
    text-align: left;
}

.kontakt_datenschutz {
     font-size:small;
     text-align: justify;
}

.kontakt_datenschutz h4 {
    font-size: 1em;
    font-weight: bold;
}

.quality_index_stars {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0.4em 0 0.4em 0;

}
.quality_index_text {
    text-align: justify;
    font-size: medium;
}

.quality_index_info {
    text-align: justify;
    font-size: small;
}

.quality_index_info ul {
    list-style-type: none;
    padding-left: 1em;
}

.quality_index_info li {
    padding-left: 1em;
    margin-bottom:0px;
    margin-top:0px;
    line-height: 1.2em;
}

.small_btn {
    background: none;
    border: none;
    color: #555;
    cursor: pointer;
    font-size: small;

    text-align: right;

}
.small_btn:hover {
    color: #1a265a;
    text-decoration: underline;
}
.quality_index_info {
    font-size: small;
}
.boxed-shadow {
    background: transparent;
    border-radius: 0 0 1em 1em;
    box-shadow: var(--hover-shadow);
    padding: 0.8em 1em;
    margin-left: 1px;
    margin-right: 1px;
    margin-bottom: 1em;
}
.description-toggle {
    color: #222;
}
.description-toggle:hover {
    color: #005;
    text-decoration: underline;
    cursor:pointer;
}

.button-toggle {
    color: #555;
}
.button-toggle:hover {
    color: #005;
    text-decoration: underline;
    cursor:pointer;
}

.mailto-button, .save-button, .delete-button {
    font-size: 1.15em;
    padding: 0.15em 0.35em;
    border-radius: 0.4em;
    border: none;
    background: #f5f5f5;
    color: #333;
    margin-right: 0.1em;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    vertical-align: middle;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 0;
}
.mailto-button:hover, .save-button:hover, .delete-button:hover {
    background: #e0e0e0;
    color: #1976d2;
}
.mailto-button span, .save-button span, .delete-button span {
    pointer-events: none;
}
.submit-button {
    margin-right: 0.3em;
}
.button-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.2em;
    margin-top: 0.5em;
    flex-wrap: wrap;
}
.submit-button {
    font-size: 1em;
    padding: 0.25em 0.8em;
    border-radius: 0.4em;
    margin-right: 0.5em;
    min-width: 0;
    background: #e0e0e0;
    color: #1976d2;
    border: none;
    transition: background 0.2s, color 0.2s;
}
.submit-button:hover {
    background: #1976d2;
    color: #fff;
}

.kontakt-button-row .submit-button,
.kontakt-button-row .delete-button {
    font-size: 1em;
    padding: 0.25em 0.8em;
    border-radius: 0.4em;
    margin-right: 0;
    min-width: 0;
    min-height: 0;
    background: #e0e0e0;
    color: #1976d2;
    border: none;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}
.kontakt-button-row .submit-button:hover,
.kontakt-button-row .delete-button:hover {
    background: #1976d2;
    color: #fff;
}
.share-section a {
    padding-left: 1em;
}
.share-icons {
    text-align:center;
}

.share-svg {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    transition: transform 0.2s, filter 0.2s;
}
.share-icon:hover .share-svg {
    transform: scale(1.15);
    filter: brightness(1.2);
}

.share-icon.email .share-svg { filter: invert(30%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-icon.whatsapp .share-svg { filter: invert(50%) sepia(90%) saturate(500%) hue-rotate(90deg); }
.share-icon.facebook .share-svg { filter: invert(30%) sepia(90%) saturate(1000%) hue-rotate(200deg); }
.share-icon.x .share-svg { filter: invert(0%); }
.share-icon.telegram .share-svg { filter: invert(40%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-icon.linkedin .share-svg { filter: invert(30%) sepia(90%) saturate(800%) hue-rotate(190deg); }
.share-icon.sms .share-svg { filter: invert(50%) sepia(90%) saturate(400%) hue-rotate(90deg); }
.share-icon.imessage .share-svg { filter: invert(50%) sepia(90%) saturate(400%) hue-rotate(90deg); }
.share-icon.copy .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }
.share-icon.print .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }

.share-export-box {
    text-align: center;
}

@media print {
  h3, h3 + .boxed-shadow, h3 + .basic_data, h3 + .share-icons, h3 + .merkmale, h3 + .lage, h3 + .zustand, h3 + .preis, h3 + .kontakt, h3 + .ausstattung {
    break-after: avoid;
    page-break-after: avoid;
  }
  h3 + * {
    break-before: avoid;
    page-break-before: avoid;
  }

  .impressum-full,
  .toggle-content,
  .hidden,
  .collapsed,
  .expandable-section,
  .beschreibung-full,
  .ausstattung-full,
  .sonstiges-full,
  .lagebeschreibung-full,
  .zustand-full,
  .preis-detail-full {
    display: block !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .impressum-toggle,
  .toggle-btn,
  .toggle-arrow {
    display: none !important;
  }

  nav,
  .breadcrumb,
  .share-icons,
  .share-section,
  .footer-share,
  .hdr-chip--share,
  .tpl-werbung,
  footer {
    display: none !important;
  }

  a {
    text-decoration: none !important;
  }

  .index-layout > aside,
  .index0-layout > aside {
    display: none !important;
  }

  .index-layout > main,
  .index0-layout > main {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }

  html, body {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  .index-layout,
  .index0-layout {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }
}

.index-layout {
    display: flex;
    flex-direction: row;
    gap: 3em;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 1em 0 0;
}

div.index-layout[style] {
    max-width: none !important;
    width: 100% !important;
    gap: 3em !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.index-layout > main {
    flex: 1 1 auto;
    min-width: 0;
    padding-top: 0;
}
.index-layout > aside {
    flex: 0 0 18em;
    width: 18em;
    float: none;
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    --idx-aside-pin-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2316a34a' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E");
}

.index-layout > aside .aside-block,
.index-layout > aside section.aside-block,
.index-layout > aside .tpl-karten {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-size: 1em;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    overflow: hidden;
}

.index-layout > aside .aside-block > h3,
.index-layout > aside .tpl-karten > h3 {
    box-sizing: border-box;
    margin: 0;
    padding: 0.55em 0.8em;
    font-size: 0.95em;
    font-weight: 600;
    line-height: 1.3;
    color: #374151;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid #e5e7eb;
    min-height: 0;
}

.index-layout > aside .aside-block > ul,
.index-layout > aside .aside-block > .filter-body,
.index-layout > aside .aside-block > .Index_Vermarktungsart,
.index-layout > aside .tpl-karten .karten-box {
    box-sizing: border-box;
}

.index-layout > aside .aside-block > ul,
.index-layout > aside .aside-block > .Index_Vermarktungsart.aside-version {
    padding: 0.55rem 0.65rem 0.65rem;
}

.index-layout > aside .tpl-karten .karten-box {
    margin: 0.55rem auto 0.65rem;
}

.index-layout > aside .tpl-filter > h3 {
    padding: 0;
    background: none;
    border-bottom: none;
}

.index-layout > aside .tpl-filter > h3 button.filter-toggle-mobile {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    min-width: 0;
    padding: 0.55em 0.8em;
    font-size: 0.95em;
    font-weight: 600;
    line-height: 1.3;
    color: #374151;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: none;
    border-bottom: 1px solid #e5e7eb;
    border-radius: 0;
}

.index-layout > aside .tpl-filter > h3 button.filter-toggle-mobile:hover {
    background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%);
}

.index-layout > aside .tpl-filter .filter-body {
    padding: 0.55rem 0.65rem 0.65rem;
}

.index-layout > aside .tpl-filter .filter-body button,
.index-layout > aside .tpl-filter .filter-body .idx0-filter-select--button {
    min-width: 0;
    width: auto;
    background-color: #fff;
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: 0.125rem;
    font-size: 0.85em;
    padding: 0.35em 0.55em;
}

.index-layout > aside .tpl-filter .filter-reset-btn {
    display: block;
    width: calc(100% - 1.3rem);
    margin: 0.35rem 0.65rem 0;
    padding: 0.4em 0.65em;
    font-size: 0.85em;
    font-weight: 600;
    color: #374151;
    background: #f9fafb;
    border: 1px solid #d1d5db;
    border-radius: 0.125rem;
    cursor: pointer;
}

.index-layout > aside .tpl-filter .filter-reset-btn:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}

.index-layout > aside .tpl-filter .filter-suche-speichern {
    padding: 0 0.65rem 0.15rem;
    font-size: 0.85em;
}

.index-layout > aside .tpl-filter .filter-suche-speichern-link {
    color: var(--color-primary-dark, #3245a3);
    text-decoration: none;
}

.index-layout > aside .tpl-filter .filter-suche-speichern-link:hover {
    text-decoration: underline;
}

.index-layout > aside .tpl-filter h3.filter-zero-results button.filter-toggle-mobile {
    background: linear-gradient(180deg, #fef2f2 0%, #fee2e2 100%);
    color: #991b1b;
    border-bottom-color: #fecaca;
}

.index-layout aside ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.index-layout aside li {
    font-size: inherit;
    line-height: 1.35;
    margin: 0;
}

.index-layout aside a {
    color: inherit;
    text-decoration: none;
}

.index-layout aside a:hover {
    text-decoration: none;
}

.idx-titel {
    margin-bottom: 0.85em;
    padding-top: .1em;
}
.idx-titel h1 {
    font-size: 1.8em;
    font-weight: 700;
    color: #333;
    margin: 0 0 0.65em 0;
    padding-top: 0.06em;
}
.idx-titel h2 {
    font-size: 1.05em;
    font-weight: 400;
    color: #4b5563;
    margin: 0 0 1em 0;
    line-height: 1.55;
    padding: 0.75em 1em;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    max-width: none;
}
.idx-titel .timestamp {
    font-size: 0.8em;
    color: #888;
    margin-top: 0.3em;
}

.idx-titel h2 .anzahl,
.filter-result-header .anzahl {

    display: inline-block;
    font-size: 0.95em;
    font-weight: 700;
    font-style: normal;
    line-height: 1.25;
    color: var(--color-primary-dark, #3245a3);
    background: var(--color-primary-light, #eff3ff);
    border: 1px solid #c7d2fe;
    border-radius: 0.125rem;
    padding: 0.08em 0.45em;
    margin-right: 0.15em;
    font-variant-numeric: tabular-nums;
    vertical-align: baseline;
}
.idx-titel h2 .min-preis,
.idx-titel h2 .max-preis,
.filter-result-header .min-preis,
.filter-result-header .max-preis {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #fc6c00b3;
    white-space: nowrap;
}

.idx-statistik {

    margin-bottom: 0.5em;
    background-color: #00000008;
    padding: 1em;

}

.idx-statistik h3 {
    background-color: #00000014;
    Margin-left: -1em;
    margin-right: -1em;
    margin-top: -1em;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: .5em;
    padding-bottom: .5em;
    color: black;
    font-size: 100%;
}
.idx-statistik .landkreis {
    font-size: 0.85em;
    color: #666;
    margin-bottom: 0.8em;
}
.idx-statistik ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;

}
.idx-statistik li {
    display: flex;
    align-items: center;
    gap: 0.3em;
    font-size: 0.95em;
}
.idx-statistik li::before {
    font-size: 1.1em;
}

.idx-statistik .stat-link {
    margin-top: 0.5em;
    font-size: 0.9em;
}
.idx-statistik .stat-link a {
    color: inherit;
}

.idx-quickjumper {
    background: none;
    padding: 0.65em 0 1.05em;
    border-top: 1px solid #e5e7eb;
}
.idx-quickjumper ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem 0.35rem;
}
.idx-quickjumper li {
    display: inline-flex;
    align-items: center;
}
.idx-quickjumper li + li::before {
    content: "·";
    color: #cbd5e1;
    font-weight: 700;
    margin-right: 0.35rem;
    pointer-events: none;
    user-select: none;
}
.idx-quickjumper a {
    display: inline-block;
    padding: 0.22em 0.55em;
    font-size: 0.92em;
    font-weight: 500;
    color: #4b5563;
    text-decoration: none;
    border-radius: 999px;
    transition: color 0.15s ease, background-color 0.15s ease;
}
.idx-quickjumper a:hover {
    color: var(--color-primary-dark, #3245a3);
    background-color: var(--color-primary-light, #eff3ff);
    text-decoration: none;
}
.idx-quickjumper a:focus-visible {
    outline: 2px solid var(--color-primary-dark, #3245a3);
    outline-offset: 2px;
}

.index-layout aside .idx-nachbarort-liste {
    list-style: none;
    padding: 0;
    margin: 0;
}

.index-layout aside .idx-nachbarort-liste li {
    display: block;
    margin-bottom: 0.35rem;
    padding: 0;
    border-radius: 0.125rem;
}

.index-layout aside .idx-nachbarort-liste li:last-child {
    margin-bottom: 0;
}

.index-layout aside .idx-nachbarort-liste a {
    display: block;
    box-sizing: border-box;
    padding: 0.38rem 0.45rem;
    border: 1px solid transparent;
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.index-layout aside .idx-nachbarort-liste a:hover {
    background-color: #f9fafb;
    border-color: #e5e7eb;
    box-shadow: var(--hover-shadow);
}

.index-layout aside .idx-nachbarort-liste .ort-name {
    display: flex;
    align-items: center;
    gap: 0.28em;
    font-weight: 600;
    color: #374151;
}

.index-layout aside .idx-nachbarort-liste .ort-name::before {
    content: "";
    flex-shrink: 0;
    width: 0.9em;
    height: 0.9em;
    background: transparent var(--idx-aside-pin-svg) center / contain no-repeat;
}

.index-layout aside .idx-nachbarort-liste a:hover .ort-name {
    color: #111827;
}

.index-layout aside .idx-nachbarort-liste .ort-meta {
    display: block;
    font-size: 0.85em;
    color: #64748b;
    margin-top: 0.12em;
    padding-left: calc(0.9em + 0.28em);
    font-variant-numeric: tabular-nums;
}

.index-layout aside .idx-nachbarort-liste .richtung-pfeil {
    display: inline-block;
    width: 1em;
    font-family: Arial, sans-serif;
    color: #94a3b8;
}

.index-layout aside .idx-nachbarort-liste .richtung-text {
    color: #94a3b8;
    font-style: italic;
    padding-right: 0.25em;
}

.index-layout aside .idx-nachbarort-liste .entfernung {
    color: #94a3b8;
    font-style: italic;
}

.index-layout aside .idx-nachbarort-liste .ort-name.relevant,
.index-layout aside .idx-nachbarort-liste .ort-meta.relevant {
    font-weight: 600;
    color: #1f2937;
}

.index-layout aside .idx-nachbarort-liste .min-preis {
    color: #fc6c00b3;
    font-weight: 600;
    font-style: normal;
}

.index-layout aside .objektart-liste,
.index-layout aside .objektarten-liste,
.index-layout aside .unterkategorien-liste,
.index-layout aside .idx-kategorie-liste {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.4rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.index-layout aside .objektart-liste li,
.index-layout aside .objektarten-liste li,
.index-layout aside .unterkategorien-liste li,
.index-layout aside .idx-kategorie-liste li {
    flex: 0 1 auto;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.index-layout aside .objektart-liste li a,
.index-layout aside .objektarten-liste li a,
.index-layout aside .unterkategorien-liste li a,
.index-layout aside .idx-kategorie-liste li a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: 0.25em;
    max-width: 100%;
    padding: 0.28rem 0.5rem 0.28rem 0.42rem;
    font-size: 0.85em;
    line-height: 1.25;
    font-weight: 500;
    color: #374151;
    white-space: nowrap;
    background-color: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.index-layout aside .objektart-liste li a:hover,
.index-layout aside .objektarten-liste li a:hover,
.index-layout aside .unterkategorien-liste li a:hover,
.index-layout aside .idx-kategorie-liste li a:hover {
    background-color: #f3f4f6;
    border-color: #d1d5db;
    color: #111827;
}

.index-layout aside .objektart-liste .anzahl-ll,
.index-layout aside .objektarten-liste .anzahl-ll,
.index-layout aside .unterkategorien-liste .anzahl-ll,
.index-layout aside .idx-kategorie-liste .anzahl-ll {
    font-size: 0.85em;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--color-primary-dark, #3245a3);
}

.index-layout aside .objektart-liste .min-preis,
.index-layout aside .objektarten-liste .min-preis,
.index-layout aside .unterkategorien-liste .min-preis,
.index-layout aside .idx-kategorie-liste .ab-preis,
.index-layout aside .idx-kategorie-liste .min-preis {
    font-size: 0.85em;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: #fc6c00b3;
    font-style: normal;
}

.index-layout aside .objektart-liste a.relevant,
.index-layout aside .objektarten-liste a.relevant,
.index-layout aside .unterkategorien-liste a.relevant {
    font-weight: 600;
}

.index-layout aside .idx-kategorie-liste a {
    justify-content: space-between;
    white-space: normal;
    min-width: 8em;
}

.index-layout aside .idx-kategorie-liste .kategorie-name {
    flex: 1 1 auto;
}

.index-layout aside .idx-kategorie-liste .ab-preis {
    flex: 0 0 auto;
}

.karten-zoom-controls {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.karten-zoom-btn {
    appearance: none;
    border: 1px solid rgba(0, 0, 0, 0.18);
    background: rgba(255, 255, 255, 0.9);
    color: #111;
    padding: 6px 10px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    line-height: 1;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    cursor: pointer;
}

.karten-zoom-btn:hover {
    background: rgba(255, 255, 255, 0.98);
}

.karten-zoom-btn.active {
    border-color: rgba(0, 0, 0, 0.35);
    background: rgba(17, 24, 39, 0.92);
    color: #fff;
}

.karten-overlay-controls {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 30;
    display: flex;
    flex-direction: row;
    gap: 6px;
}

.karten-overlay-btn {
    appearance: none;
    border: 1px solid rgba(0, 0, 0, 0.2);
    background: rgba(255, 255, 255, 0.92);
    color: #111;
    padding: 6px 10px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
    cursor: pointer;
}

.karten-overlay-btn:hover {
    background: rgba(255, 255, 255, 0.98);
}

.karten-overlay-btn.active {
    border-color: rgba(0, 0, 0, 0.35);
    background: rgba(17, 24, 39, 0.92);
    color: #fff;
}

.karten-poi-dropdown-container {
    position: absolute;
    right: 10px;
    bottom: 48px;
    z-index: 30;
}

.karten-poi-dropdown {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, 0.24);
    background: rgba(255, 255, 255, 0.94);
    color: #0f172a;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 12px;
    line-height: 1.4;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    cursor: pointer;
    min-width: 160px;
    max-width: 200px;
}

.karten-poi-dropdown:hover {
    background: rgba(255, 255, 255, 0.99);
    border-color: rgba(15, 23, 42, 0.36);
}

.karten-poi-dropdown:focus {
    outline: none;
    border-color: rgba(59, 130, 246, 0.5);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.karten-poi-dropdown optgroup {
    font-weight: 700;
    font-size: 11px;
    color: #64748b;
    background: rgba(248, 250, 252, 0.8);
    padding: 2px 0;
}

.karten-poi-dropdown option {
    font-weight: 400;
    font-size: 12px;
    color: #0f172a;
    padding: 3px 8px;
    background: rgba(255, 255, 255, 0.95);
}

.immo-touch-select-container {
    position: relative;
    flex: 1 1 0%;
    min-width: 0;
    display: flex;
    align-items: stretch;
}

.immo-touch-select-root {
    display: none;
    position: relative;
    width: 100%;
    min-width: 0;
}

.immo-touch-select-trigger {
    appearance: none;
    border: 0;
    background: #fff;
    color: #0f172a;
    padding: 0.45em 0.55em;
    border-radius: 0;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.35;
    box-sizing: border-box;
    cursor: pointer;
    width: 100%;
    min-height: 2.75rem;
    text-align: left;
    font-family: inherit;
}

.immo-touch-select-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-top: 4px;
    max-height: min(58vh, 26rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(15, 23, 42, 0.22);
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
    z-index: 1200;
    box-sizing: border-box;
}

.immo-touch-select-option {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0.95rem 1rem;
    min-height: 3.25rem;
    border: none;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
    background: transparent;
    color: #0f172a;
    font-family: inherit;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}

.immo-touch-select-option:last-child {
    border-bottom: none;
}

.immo-touch-select-option.is-active {
    background: rgba(59, 130, 246, 0.12);
}

.immo-touch-select-option:active {
    background: rgba(59, 130, 246, 0.2);
}

@media (max-width: 768px) {
    .immo-touch-select-container > select,
    .immo-touch-select-container > select.idx0-filter-select {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        margin: -1px !important;
        padding: 0 !important;
        border: 0 !important;
        clip: rect(0, 0, 0, 0) !important;
        clip-path: inset(50%) !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .immo-touch-select-root {
        display: block;
    }

    .tpl-filter .idx0-filter-dropdown-panel,
    .tpl-filter .filter-dropdown,
    .tpl-filter #filter-stadtteil-dropdown,
    .tpl-filter .filter-stadtteil-row,
    .tpl-filter .filter-stadtteil-row label {
        font-size: 1.35rem !important;
        line-height: 1.35 !important;
    }
    .tpl-filter .filter-stadtteil-count {
        font-size: 1rem !important;
    }
    #filter-stadtteil-group .filter-stadtteil-alle-btn {
        font-size: var(--mobile-filter-touch-panel-font-size, 1.35rem) !important;
        padding: 0.75em 0.85em;
    }
}

.karten-poi-mobile-root {
    display: none;
}

.karten-poi-mobile-trigger {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, 0.24);
    background: rgba(255, 255, 255, 0.94);
    color: #0f172a;
    padding: 6px 10px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 12px;
    line-height: 1.4;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    cursor: pointer;
    min-width: 160px;
    max-width: min(92vw, 22rem);
    width: 100%;
    text-align: left;
    font-family: inherit;
}

.karten-poi-mobile-panel {
    position: absolute;
    left: 0;
    bottom: 100%;
    margin-bottom: 6px;
    min-width: 100%;
    width: max(100%, min(90vw, 22rem));
    max-width: min(94vw, 24rem);
    max-height: min(58vh, 26rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(15, 23, 42, 0.22);
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
    z-index: 50;
    box-sizing: border-box;
}

.karten-poi-mobile-option {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0.95rem 1rem;
    min-height: 3.25rem;
    border: none;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
    background: transparent;
    color: #0f172a;
    font-family: inherit;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}

.karten-poi-mobile-option:last-child {
    border-bottom: none;
}

.karten-poi-mobile-option.is-active {
    background: rgba(59, 130, 246, 0.12);
}

.karten-poi-mobile-option:active {
    background: rgba(59, 130, 246, 0.2);
}

@media (max-width: 768px) {

    .karten-poi-dropdown-container .karten-poi-dropdown {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        margin: -1px !important;
        padding: 0 !important;
        border: 0 !important;
        clip: rect(0, 0, 0, 0) !important;
        clip-path: inset(50%) !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .karten-poi-mobile-root {
        display: block;
        position: relative;
        width: auto;
        max-width: min(92vw, 22rem);
    }
}

.karten-poi-chipbar {
    position: absolute;
    right: 10px;
    bottom: 48px;
    z-index: 30;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: min(76vw, 560px);
}

.karten-poi-chip {
    appearance: none;
    border: 1px solid rgba(15, 23, 42, 0.24);
    background: rgba(255, 255, 255, 0.94);
    color: #0f172a;
    padding: 5px 9px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 11px;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
    cursor: pointer;
}

.karten-poi-chip:hover {
    background: rgba(255, 255, 255, 0.99);
}

.karten-poi-chip.active {
    border-color: rgba(15, 23, 42, 0.42);
    background: rgba(17, 24, 39, 0.92);
    color: #fff;
}

.karten-attribution {
    position: absolute;
    left: 8px;
    bottom: 8px;
    z-index: 30;
    font-size: 11px;
    line-height: 1.2;
    color: #1f2937;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(17, 24, 39, 0.2);
    border-radius: 8px;
    padding: 3px 7px;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.15);
    pointer-events: none;
}
.idx-kategorie-liste .ab-preis::before {
    content: "ÃƒÂ¢Ã¢â‚¬Â°Ã‚Â» ab ";
}

.index-layout main section h2 {
    font-size: 1.3em;
    font-weight: 600;
    color: #222;
    margin: -0.5em 0 0.8em 0;
    padding-bottom: 0.3em;

}
.index-layout main section h3 {
    font-size: 1.1em;
    font-weight: 600;
    color: #444;

    background: none;
    max-width: none;
    padding-left: 0.5em;

}

.idx-weitere-auswahl {
    display: none;
}

.idx-werbung {
    margin-top: 2em;
    padding: 0;
    min-height: 180px;
    background-color: #f0f0f0;
    text-align: center;
    border: 1px solid #ddd;
}
.idx-werbung figure {
    width: 100%;
    padding: 0;
    margin: 0;
}

.idx-immobilien-links ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.3em;
}
.idx-immobilien-links li {
    padding: 0.4em 0;
}

@media (hover: none) {
    html, body {
        max-width: 100vw !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
        overflow-x: hidden;
    }
    body {
        padding-left: 0.5em !important;
        padding-right: 0.5em !important;
    }
    .index-layout {
        max-width: 100% !important;
        width: 100% !important;
    }
}

@media only screen and (max-width: 950px) {
    .index-layout {
        flex-direction: column;
        max-width: 100%;
        width: 100%;

        box-sizing: border-box;
    }
    .index-layout > main {
        width: 100%;
        max-width: 100%;
        order: 1;
    }
    .index-layout > aside {
        display: none;
    }

    .idx-weitere-auswahl {
        display: block;
        margin-top: 2em;
        padding-top: 2em;
        border-top: 2px solid #ddd;
    }
    .idx-weitere-auswahl section {
        margin-bottom: 2em;
    }
    .idx-weitere-auswahl h2 {
        font-size: 1.2em;
        font-weight: 600;
        color: #222;
        margin: 0 0 0.8em 0;
        padding-bottom: 0.3em;
        border-bottom: 2px solid var(--color-success);
    }
    .idx-weitere-auswahl h3 {
        font-size: 1em;
        font-weight: 600;
        color: #222;
        background: linear-gradient(to bottom, transparent 0%, transparent 60%, var(--color-success) 60%, var(--color-success) 100%);
        max-width: 20em;
        padding: 0 0.5em;
        margin: 1em 0 0.8em 0;
    }
}

.Index_Vermarktungsart {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
}
.Index_Vermarktungsart .vermarktungsart-block {
    flex: 1 1 45%;
    min-width: 12em;
}
.Index_Vermarktungsart h3 {
    background: unset;
    background-color: unset;
}

.Index_Vermarktungsart .vermarktungsart-block h3 {
    margin-bottom: 0.5em;
    font-size: 1.1em;
    max-width: none;
    background: unset;
    background-color: #00000014;
}

.Index_Vermarktungsart .vermarktungsart-block ul {
    list-style: none;
    padding-left: 1em;
    margin: 0;
}

.Index_Vermarktungsart .vermarktungsart-block li {
    margin-bottom: 0.3em;
}

@media (max-width: 600px) {
    .Index_Vermarktungsart {
        flex-direction: column;
    }
    .Index_Vermarktungsart .vermarktungsart-block {
        flex: 1 1 100%;
    }
}

.Index_Vermarktungsart.aside-version {
    flex-direction: column;
    gap: 0.65rem;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block {
    flex: 1 1 100%;
    min-width: unset;
    box-sizing: border-box;
    border: 1px solid #e5e7eb;
    border-radius: 0.125rem;
    overflow: hidden;
    background: #fff;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Kaufen"] {
    border-color: #bbf7d0;
    background: linear-gradient(180deg, #fff 0%, #f0fdf4 100%);
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Mieten"] {
    border-color: #d9f99d;
    background: linear-gradient(180deg, #fff 0%, #f7fee7 100%);
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block h3 {
    margin: 0;
    padding: 0;
    font-size: inherit;
    background: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Kaufen"] h3 {
    border-bottom-color: #bbf7d0;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Mieten"] h3 {
    border-bottom-color: #d9f99d;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block h3 a {
    display: block;
    padding: 0.45em 0.55em;
    margin: 0;
    font-size: 0.9em;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    border-radius: 0;
    transition: background-color 0.15s ease;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Kaufen"] h3 a {
    color: #166534;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block[data-v="Mieten"] h3 a {
    color: #3f6212;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block h3 a:hover {
    background-color: rgba(255, 255, 255, 0.55);
    text-decoration: none;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.4rem;
    padding: 0.45rem 0.5rem 0.5rem;
    margin: 0;
    list-style: none;
}

.index-layout > aside .Index_Vermarktungsart.aside-version .vermarktungsart-block li {
    margin: 0;
    padding: 0;
    font-size: inherit;
}

.Index_Nachbarorte {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.1em 2em;
    padding-top: 0.5em;
}

.Index_Nachbarorte li {
    list-style: none;
    margin-bottom: 0.3em;
}

.Index_Nachbarorte li a {
    display: block;
    text-decoration: none;
    color: inherit;
}

.Index_Nachbarorte li a:hover {
    text-decoration: underline;
}

.Index_Nachbarorte .ort-name {
    display: block;
    font-weight: 500;
    color: inherit;
}

.Index_Nachbarorte .ort-meta {
    display: block;
    font-size: 0.85em;
    color: #666;
}

.Index_Nachbarorte .entfernung {
    color: #888;
}

.Index_Nachbarorte .min-preis {
    font-weight: 500;
    color: #555;
}

.Index_Nachbarorte .anzahl-ll,
.aside-nachbarorte .anzahl-ll {
    font-weight: 600;
    color: #3245A3;
    padding-left: 0.5em;
}

.Index_Nachbarorte .ort-name.relevant,
.Index_Nachbarorte .ort-meta.relevant {
    font-weight: 600;
    color: #333;
}

@media (max-width: 600px) {
    .Index_Nachbarorte {
        grid-template-columns: 1fr;
    }
}

.Index_Vermarktungsart .vermarktungsart-block h3 a {
    display: block;
    text-decoration: none;
    color: inherit;
    padding: 0.3em 0.5em;
    margin: -0.3em -0.5em;
    border-radius: 3px;
    transition: background-color 0.15s ease;
}

.Index_Vermarktungsart .vermarktungsart-block h3 a:hover {
    background-color: #00000010;
    text-decoration: underline;
}

.Index_Vermarktungsart .vermarktungsart-block li {
    position: relative;
}

.Index_Vermarktungsart .vermarktungsart-block li a {
    display: block;
    padding: 0.2em 0.3em;
    margin: -0.2em -0.3em;
    text-decoration: none;
    color: inherit;
    border-radius: 3px;
    transition: background-color 0.15s ease;
}

.Index_Vermarktungsart .vermarktungsart-block li a:hover {
    background-color: #00000010;
    text-decoration: underline;
    color: var(--link-hover-color);
}

.tpl-navigation {
    position: relative;
    z-index: 150;
}

.menu.tpl-navigation ul {
    display: none;
}

.menu.tpl-navigation ul.mobile-menu-open {
    display: flex;
}

.menu li a {
    display: inline-block;
    padding: 0.4em 0.6em;
    margin: -0.4em -0.6em;
    text-decoration: none;
    color: inherit;
    border-radius: 3px;
    transition: background-color 0.15s ease;
    padding-top: 0.5em;
}

.menu li a:hover {
    background-color: #00000010;
    text-decoration: underline;
    color: var(--link-hover-color);
}

nav a {
    transition: background-color 0.15s ease;
}

nav a:hover {
    background-color: #00000010;
    color: var(--link-hover-color);
}

.tpl-statistik {
    position: relative;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.tpl-statistik .stat-link a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

.tpl-statistik .stat-link a {
    position: relative;
    z-index: 2;
    transition: color 0.15s ease;
}

.tpl-statistik:hover .stat-link a {
    color: var(--link-hover-color);
}

.tpl-statistik:hover {
    background-color: #00000008;
}

.idx-nachbarort-liste li a:hover {
    color: var(--link-hover-color);
}

.idx-quickjumper a:hover {
    text-decoration: none;
}

.index-layout a {

    text-decoration: none;
    color: inherit;
}

@media (hover: hover) {
    .index-layout a:hover {
        color: var(--link-hover-color);
    }

    .Index_ObjektlisteOrt a:hover,
    .Index_ObjektlisteNachbarorte a:hover,
    .Index_ObjektlisteAndereUnterkategorien a:hover,
    .idx0-liste-items a:hover,
    .idx0-aside-items a:hover {
        color: inherit;
    }
}

@media (hover: none), (max-width: 950px) {

    .idx-nachbarort-liste .ort-name,
    .Index_Nachbarorte .ort-name {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .Index_Vermarktungsart .vermarktungsart-block li a,
    .Index_Vermarktungsart .vermarktungsart-block h3 a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .menu li a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .breadcrumb a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .idx-statistik .stat-link a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .idx-quickjumper a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .aside-block a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .index-layout a {
        color: var(--color-primary-dark) !important;
        text-decoration: none;
    }

    .Index_ObjektlisteOrt a,
    .Index_ObjektlisteNachbarorte a,
    .Index_ObjektlisteAndereUnterkategorien a,
    .idx0-liste-items a,
    .idx0-aside-items a {
        color: inherit !important;
        text-decoration: none !important;
    }

    section h2,
    .idx-titel h1 {
        color: var(--color-primary-dark) !important;
    }

    .error-404-main a,
    .email-entschluesselt,
    .anbieter-telefon a,
    .anbieter-telefon-zentrale a,
    .anbieter-website a,
    .contact-phone a,
    .contact-email-zeile a,
    .anbieter-telefon a:hover,
    .anbieter-telefon-zentrale a:hover,
    .anbieter-website a:hover,
    .contact-phone a:hover,
    .contact-email-zeile a:hover,
    .anbieter-objekte-links li a:hover,
    .provider-impressum-ae-link:hover,
    .site-footer .footer-links a:hover,
    .idx0-statistik-items a:hover,
    .blog-breadcrumb a:hover,
    .blog-toc a:hover,
    .blog-back-link:hover,
    .blog-card-link:hover,
    .filter-suche-speichern-link:hover,
    .suche-erfolg-link,
    .suche-erfolg-link:hover,
    .suche-anim-link,
    .tpl-aside2-andere-vermarktung .vermarktungsart-block h3 a:hover,
    .tpl-aside2-andere-vermarktung .objektart-liste li a:hover,
    .idx-anbieter-firma a:hover,
    .idx-anbieter-orte a:hover,
    .makler-firma-link a:hover,
    .makler-telefon-page a:hover,
    .makler-alle-link:hover,
    .ks-exposee-link:hover,
    .suche-karte-link:hover,
    .mobile-nav-permanent .nav-main-link:hover,
    .tpl-karten > h3.mobile-karten-treffer:hover {
        text-decoration: none !important;
    }
}

@media only screen and (max-width: 700px) {
    html {
        font-size: 90%;
    }

    article {
        min-height: auto;
        margin-bottom: 4em;
    }
    article figure {
        float: none;
        width: 100%;
        height: auto;
        margin-right: 0;
        margin-bottom: 0.5em;
    }
    article figure img {
        width: 100%;
        height: auto;
        max-height: 375px;
        object-fit: cover;
    }
    article .Daten {
        clear: both;
    }
}

@media only screen and (max-width: 500px) {
    html {
        font-size: 95%;
    }
}

@media only screen and (max-width: 400px) {
    html {
        font-size: 90%;
    }
}

@media only screen and (max-width: 350px) {
    html {
        font-size: 85%;
    }
}

.vermarktungsart-block {
}

.objektart-liste {
}

.objektart-liste li {
}

.objektart-liste li a {
}

.objektart-name {
}

.anzahl-ll {color: #999;font-style: italic;}

.objektart-liste .min-preis {color: #999;font-style: italic;}
.objektarten-liste .min-preis {color: #999;font-style: italic;}

.tpl-objektart {
}

.tpl-aside2-objektarten {
}

.objektarten-liste {
}

.objektarten-liste li {
}

.objektarten-liste li a {
}

.tpl-unterkategorie {
}

.tpl-aside3-unterkategorien {
}

.unterkategorie-liste {list-style: none;}

.unterkategorie-liste li {
}

.unterkategorie-liste li a {
}

.unterkategorien-liste {
}

.unterkategorien-liste li {
}

.unterkategorien-liste li a {
}

.unterkategorie-name {font-weight: 600;}

.unterkategorie-liste .min-preis {color: #999;font-style: italic;}
.unterkategorien-liste .min-preis {color: #999;font-style: italic;}
.objektarten-liste li a:not(.relevant),

.unterkategorien-liste li a:not(.relevant) .unterkategorie-name {
    opacity: 0.5;
    font-weight:500;

}
.unterkategorie-liste li a:not(.relevant) .unterkategorie-name {
    opacity: 0.5;
    font-weight:500;

}
.andere-immobilien-liste li a.relevant {
    font-weight: 600;

}

.andere-objektart-liste li a.relevant {
    font-weight: 600;

}

.andere-unterkategorien-liste li a:not(.relevant) .unterkategorie-name {
    font-weight: 500;
    opacity: 0.5 ;

}

.andere-unterkategorie-liste li a:not(.relevant) .unterkategorie-name{
    font-weight: 500;
    opacity: 0.5;

}
.objektart-liste li a.relevant .objektart-name{
    font-weight:600;
}

.tpl-filter {
    margin-bottom: 0;
    margin-right: 0;
}

#filter-panel {}
#filter-body {}
#filter-warning {}
#filter-ort-group {}
#filter-stadtteil-group {}
#filter-vermarktungsart-group {}
#filter-objektart-group {}
#filter-unterkategorie-group {}
#filter-umkreis-group {}
#filter-baujahr-group {}
#filter-preis-group {}
#filter-zimmer-group {}
#filter-wohnflaeche-group {}
#filter-sortierung-group {}
#filter-suche-speichern {}
#filter-init-spinner {}

.tpl-filter h3 {
    margin-bottom: 0;
    padding: 0;
}
.tpl-filter h3 button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: none;
    border: none;
    cursor: pointer;
    font-size: inherit;
    font-weight: 600;
    color: inherit;

    text-align: left;
}
.tpl-filter h3 button:hover {
    background-color: #00000008;
}
.tpl-filter .filter-icon {
    margin-right: 0.5em;
}
.tpl-filter .filter-arrow {
    font-size: 0.7em;
    transition: transform 0.2s ease;
}
.tpl-filter h3 button[aria-expanded="true"] .filter-arrow {
    transform: rotate(180deg);
}

.tpl-filter h3.filter-zero-results {
    background-color: #f6cbcb;
    border-radius: 4px;
}

.filter-body {

    padding-top: 0.5em;
}

@media (min-width: 769px) {
    .filter-toggle-mobile {
        pointer-events: none;
        cursor: default;
    }
    .filter-toggle-mobile .filter-arrow {
        display: none;
    }
    .filter-body {
        display: block !important;
    }
}

.tpl-filter {
    --tpl-filter-label-width: 7.25rem;
}

.tpl-filter .idx-filterzeile {
    display: flex;
    flex-direction: column;
    gap: 0.45em;
    margin: 0.35em 0 0.5em 0;
}

.tpl-filter .idx-filterzeile .idx0-filter-box {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    border: 1px solid var(--color-border);
    background: #fff;
    box-sizing: border-box;
    min-height: 36px;
    transition: opacity 0.18s ease, border-color 0.18s ease;
}

.tpl-filter .idx-filterzeile .idx0-filter-box:focus-within {
    border-color: var(--color-primary-dark);
}

.tpl-filter #filter-objektart-group,
.tpl-filter #filter-unterkategorie-group {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

.tpl-filter .idx-filterzeile .idx0-filter-label {
    background: var(--color-bg-light);
    border-right: 1px solid var(--color-border);
    color: var(--color-text-light);
    font-size: 0.8em;
    padding: 0.35em 0.6em;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    white-space: nowrap;
    flex-shrink: 0;
    box-sizing: border-box;
    width: var(--tpl-filter-label-width);
    min-width: var(--tpl-filter-label-width);
    max-width: var(--tpl-filter-label-width);
}

.tpl-filter .idx-filterzeile .idx0-filter-select,
.tpl-filter .idx-filterzeile .idx0-filter-input {
    border: 0;
    background: #fff;
    color: var(--color-text);
    font-size: 0.9em;
    padding: 0.35em 0.5em;
    box-sizing: border-box;
    line-height: 1.4;
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.tpl-filter .idx-filterzeile .idx0-filter-select {
    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%233245a3' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.4em center,
        #fff;
    background-size: 0.6em auto, auto;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 1.4em;
    cursor: pointer;
}

.tpl-filter .idx-filterzeile .idx0-filter-select:focus,
.tpl-filter .idx-filterzeile .idx0-filter-input:focus {
    outline: none;
}

.tpl-filter .idx-filterzeile .idx0-filter-mini {
    max-width: 5.5em;
}

.tpl-filter .idx-filterzeile .idx0-filter-input.idx0-filter-mini {
    max-width: 5em;
}

.tpl-filter .idx-filterzeile .idx0-filter-trenner {
    color: var(--color-text-lighter);
    align-self: center;
    padding: 0 0.25em;
    user-select: none;
    flex-shrink: 0;
}

.tpl-filter .idx0-filter-box--stacked {
    flex-direction: column;
    align-items: stretch;
    height: auto;
}

.tpl-filter .idx0-filter-box-row {
    display: inline-flex;
    align-items: stretch;
    width: 100%;
}

.tpl-filter .idx0-filter-field-wrap {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: stretch;
}

.tpl-filter .idx0-filter-input--wide,
.tpl-filter .idx0-filter-select--wide {
    flex: 1 1 0%;
    min-width: 0;
    max-width: 100%;
    width: auto;
}

.tpl-filter .idx-filterzeile .idx0-filter-select--wide {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tpl-filter .idx0-filter-select--button {
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tpl-filter .idx0-filter-input[type="number"]::-webkit-inner-spin-button,
.tpl-filter .idx0-filter-input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.tpl-filter .idx0-filter-input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.tpl-filter .idx0-filter-dropdown-panel {
    margin: 0;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0;
    max-height: 220px;
    overflow: auto;
    padding: 0.4em 0.5em;
    background: #fff;
}

.tpl-filter .idx0-filter-box--ort .filter-ort-vorschlaege {
    border-radius: 0;
    border-color: var(--color-border);
}

.tpl-filter .filter-hidden-conditional[style*="display: none"],
.tpl-filter #filter-objektart-group[style*="display: none"],
.tpl-filter #filter-unterkategorie-group[style*="display: none"] {
    display: none !important;
}

.filter-group {
    margin-bottom: .1em;
}
.filter-group:last-child {
    margin-bottom: 0;
}

.filter-label-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;

}
.filter-label-row label {
    font-size: 0.85em;
    font-weight: 600;
    color: #555;
}
.filter-label-row output {
    font-size: 0.85em;
    color: var(--color-primary-dark);
    font-weight: 500;
}

.slider-track {
    position: relative;
    height: 13px;

    border-radius: 6px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.15), 0 1px 0 rgba(255,255,255,0.5);
    background-color: var(--color-slider-track);
}

.slider-container {
    display: flex;
    flex-direction: column;
    gap: 0.3em;
    position: relative;
    margin-top: -0.4em;
}

.slider-container .slider-track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 0;
    pointer-events: none;
}

.filter-group input[type="range"] {
    width: 100%;
    height: 30px;
    -webkit-appearance: none;
    appearance: none;
    background: transparent !important;
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.filter-group input[type="range"]:focus {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}
.filter-group input[type="range"]:focus-visible {
    outline: none !important;
}

.filter-group input[type="range"]::-webkit-slider-runnable-track {
    height: 6px;
    background: transparent;
    border-radius: 3px;
}

.filter-group input[type="range"]::-moz-range-track {
    height: 6px;
    background: transparent;
    border-radius: 3px;
}

.filter-group input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    background: linear-gradient(145deg, var(--color-slider-thumb-light), var(--color-slider-thumb-dark));
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.3);
    margin-top: -7px;
}

.filter-group input[type="range"]::-moz-range-thumb {
    width: 20px;
    height: 20px;
    background: linear-gradient(145deg, var(--color-slider-thumb-light), var(--color-slider-thumb-dark));
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.3);
}

.filter-group input[type="range"]:hover::-webkit-slider-thumb {
    background: linear-gradient(145deg, var(--color-slider-thumb-hover-light), var(--color-slider-thumb-hover-dark));
    box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.3);
}

.filter-group input[type="range"]:hover::-moz-range-thumb {
    background: linear-gradient(145deg, var(--color-slider-thumb-hover-light), var(--color-slider-thumb-hover-dark));
    box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.3);
}

.filter-group > output {
    font-size: 0.9em;
    color: #333;
    text-align: center;
    font-weight: 500;
}

@media (max-width: 768px) {
    .tpl-filter {
        position: sticky;
        top: 0;
        z-index: 100;
        background: #fff;
        border-bottom: 1px solid #ddd;
    }
}

.filter-text {  }
.filter-no-results-headline {  }

.filter-normal, .filter-result {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
}

.filter-normal--statisch-treffer .filter-text {
    color: var(--color-primary-dark);
    font-weight: 500;
    font-size: 0.95em;
}
.filter-normal--statisch-treffer .filter-text .anzahl {
    font-weight: 600;
}
.filter-result {
    color: var(--color-primary-dark);
    font-weight: 500;
}
.filter-found {
    font-size: 0.95em;
}
.filter-found .filter-time {
    font-size: 0.85em;
    color: #666;
    font-weight: 400;
}

.filter-reset-btn {
    width: 100%;
    padding: 0.6em 1em;
    margin-top: 1em;
    background: #f0f0f0;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9em;
    color: #333;
    transition: background 0.2s, border-color 0.2s;
}
.filter-reset-btn:hover {
    background: #e0e0e0;
    border-color: #999;
}

.filter-row-2col {
    display: flex;
    align-items: center;
    gap: 0.5em;
}
.filter-separator {
    color: #666;
    font-weight: 500;
}
.filter-unit {
    color: #666;
    font-size: 0.9em;
}

.filter-group select {
    width: 100%;

    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
    background: #fff;
    cursor: pointer;
}
.filter-row-2col select {
    flex: 1;
    min-width: 0;
}
.filter-group select:focus {
    outline: none;
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 2px rgba(50, 69, 163, 0.2);
}

.filter-dropdown-toggle {
    width: 100%;
    padding: 0.5em;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
    background: #fff;
    cursor: pointer;
    text-align: left;
}
.filter-dropdown-toggle::before {
    content: '+ ';
    color: #666;
    font-weight: 700;
}
.filter-dropdown-toggle[aria-expanded="true"]::before {
    content: '- ';
}
.filter-dropdown-toggle:focus {
    outline: none;
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 2px rgba(50, 69, 163, 0.2);
}
.filter-dropdown-toggle:disabled {
    background: #f2f2f2;
    color: #777;
    cursor: not-allowed;
}
.filter-dropdown-toggle:disabled::after {
    content: '  X';
    color: #b00000;
    font-weight: 700;
}
.filter-dropdown {
    margin-top: 0.25em;
    padding: 0.5em;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #fff;
    max-height: 220px;
    overflow: auto;
}

#filter-stadtteil-group {
    position: relative;
}
#filter-stadtteil-group.idx0-filter-box--stacked {
    flex-direction: row;
    flex-wrap: wrap;
    align-content: flex-start;
}
#filter-stadtteil-group .idx0-filter-box-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    flex: 1 1 100%;
}
#filter-stadtteil-group.filter-stadtteil-dropdown-open .idx0-filter-box-row {
    cursor: pointer;
}
#filter-stadtteil-group.filter-stadtteil-dropdown-open #filter-stadtteil-toggle {
    display: none !important;
}
#filter-stadtteil-group #filter-stadtteil-toggle.filter-stadtteil-toggle {
    flex: 1 1 0%;
    min-width: 0;
    max-width: 100%;
    border: 0;
    border-radius: 0;
    background: #fff !important;
    background-image: none !important;
    -webkit-appearance: none;
    appearance: none;
    padding-right: 1.6em;
    position: relative;
}
#filter-stadtteil-group #filter-stadtteil-toggle.filter-stadtteil-toggle::before {
    content: none !important;
    display: none !important;
}
#filter-stadtteil-group:not(.filter-stadtteil-dropdown-open) #filter-stadtteil-toggle.filter-stadtteil-toggle::after {
    content: '▾';
    position: absolute;
    right: 0.45em;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-primary-dark, #3245a3);
    font-size: 0.85em;
    font-weight: 700;
    pointer-events: none;
}
#filter-stadtteil-group .idx0-filter-label {
    flex-shrink: 0;
    box-sizing: border-box;
    width: var(--tpl-filter-label-width);
    min-width: var(--tpl-filter-label-width);
    max-width: var(--tpl-filter-label-width);
}
#filter-stadtteil-group .idx0-filter-dropdown-panel,
#filter-stadtteil-group #filter-stadtteil-dropdown {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin-top: 2px;
    z-index: 1500;
    width: 100%;
    box-sizing: border-box;
    max-height: min(50vh, 280px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
    background: #fff;
}
.filter-stadtteil-alle-btn {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 0.35em 0;
    padding: 0.65em 0.75em;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-bg-light);
    color: var(--color-text);
    font-family: inherit;
    font-size: 0.95em;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.filter-stadtteil-alle-btn:hover {
    background: #eef2ff;
    border-color: var(--color-primary-dark);
}
.filter-stadtteil-row {
    margin: 0.1em 0;
}
.filter-stadtteil-row label {
    display: flex;
    align-items: center;
    gap: 0.35em;
    width: 100%;
    min-width: 0;
    cursor: pointer;
    box-sizing: border-box;
}
.filter-stadtteil-count {
    color: #666;
    font-size: 0.9em;
    margin-left: auto;
    flex-shrink: 0;
    white-space: nowrap;
}

.filter-group input[type="number"] {
    flex: 1;
    min-width: 0;
    padding: 0.5em;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
    text-align: center;
}
.filter-group input[type="number"]:focus {
    outline: none;
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 2px rgba(50, 69, 163, 0.2);
}

.filter-group input[type="number"]::-webkit-inner-spin-button,
.filter-group input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.filter-group input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.filter-ort-group {
    margin-bottom: .1em;
}
.filter-ort-wrapper {
    position: relative;
}
.filter-ort-input {
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.95em;
    background: #fff;
    box-sizing: border-box;
    cursor: text;
}
.filter-ort-input:focus {
    outline: none;
    border-color: var(--color-primary-dark);
    box-shadow: 0 0 0 2px rgba(50, 69, 163, 0.2);
}
.filter-ort-input::placeholder {
    color: #999;
}

.filter-ort-vorschlaege {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: 280px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 4px 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    list-style: none;
    margin: 0;
    padding: 0;
    z-index: 1000;
}
.filter-ort-vorschlag-item {
    padding: 0.6em 0.8em;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9em;
}
.filter-ort-vorschlag-item:last-child {
    border-bottom: none;
}
.filter-ort-vorschlag-item:hover {
    background: #f0f4ff;
}
.filter-ort-vorschlag-aktiv {
    background: #e0e8ff !important;
    outline: 2px solid var(--color-primary-dark);
    outline-offset: -2px;
}
.filter-ort-vorschlag-anzahl {
    font-size: 0.85em;
    color: #666;
    background: #f0f0f0;
    padding: 0.2em 0.5em;
    border-radius: 3px;
    white-space: nowrap;
    margin-left: 0.5em;
}
.filter-ort-vorschlag-keine {
    color: #999;
    font-style: italic;
}
.filter-ort-vorschlag-trenner {
    padding: 0.35em 0.8em;
    margin: 0;
    border-bottom: 1px solid #e0e0e0;
    background: #f7f7f7;
    list-style: none;
    pointer-events: none;
    min-height: 0;
    line-height: 1;
}
.filter-ort-vorschlag-trenner::before {
    content: '';
    display: block;
    height: 1px;
    background: #ccc;
}

.dual-slider-container {
    position: relative;
    height: 30px;
    margin-top: -0.25em;
}

.dual-slider-container .slider-track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    z-index: 0;
    pointer-events: auto;
    cursor: pointer;
}

.dual-slider {
    position: absolute;
    width: 100%;
    height: 30px;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;
    pointer-events: none;
    -webkit-appearance: none;
    appearance: none;
    background: transparent !important;
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

.dual-slider:focus {
    outline: none;
    box-shadow: none;
}
.dual-slider:focus-visible {
    outline: none;
}
.dual-slider::-webkit-slider-runnable-track {
    height: 100%;
    background: transparent;
}
.dual-slider::-moz-range-track {
    height: 100%;
    background: transparent;
}

.dual-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    pointer-events: auto;
    width: 20px;
    height: 20px;
    background: linear-gradient(145deg, var(--color-slider-thumb-light), var(--color-slider-thumb-dark));
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.3);
    margin-top: -7px;
}

.dual-slider::-moz-range-thumb {
    pointer-events: auto;
    width: 20px;
    height: 20px;
    background: linear-gradient(145deg, var(--color-slider-thumb-light), var(--color-slider-thumb-dark));
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.3);
}

.dual-slider:hover::-webkit-slider-thumb {
    background: linear-gradient(145deg, var(--color-slider-thumb-hover-light), var(--color-slider-thumb-hover-dark));
    box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.3);
}

.dual-slider:hover::-moz-range-thumb {
    background: linear-gradient(145deg, var(--color-slider-thumb-hover-light), var(--color-slider-thumb-hover-dark));
    box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.3);
}

.dual-slider-min {

}
.dual-slider-min::-webkit-slider-thumb {

}
.dual-slider-min::-moz-range-thumb {

}

.dual-slider-max {

    transform: translateY(-128%);
}
.dual-slider-max::-webkit-slider-thumb {

}
.dual-slider-max::-moz-range-thumb {

}

.slider-umkreis {

}
.slider-umkreis .slider-track {

}
.slider-umkreis input[type="range"]::-webkit-slider-thumb {

}
.slider-umkreis input[type="range"]::-moz-range-thumb {

}

.slider-baujahr {

}
.slider-baujahr .slider-track {

}
.slider-baujahr .dual-slider::-webkit-slider-thumb {

}
.slider-baujahr .dual-slider::-moz-range-thumb {

}

.slider-preis {

}
.slider-preis .slider-track {

}
.slider-preis .dual-slider::-webkit-slider-thumb {

}
.slider-preis .dual-slider::-moz-range-thumb {

}

.slider-zimmer {

}
.slider-zimmer .slider-track {

}
.slider-zimmer .dual-slider::-webkit-slider-thumb {

}
.slider-zimmer .dual-slider::-moz-range-thumb {

}

.slider-wohnflaeche {

}
.slider-wohnflaeche .slider-track {

}
.slider-wohnflaeche .dual-slider::-webkit-slider-thumb {

}
.slider-wohnflaeche .dual-slider::-moz-range-thumb {

}

#angebote.filter-hidden,
#nachbarorte.filter-hidden,
.idx-quickjumper.filter-hidden,
.Index_Nachbarorte.filter-hidden,
.tpl-nachbarorte-objektliste.filter-hidden,
.tpl-unterkategorien.filter-hidden,
.tpl-andere-objektart.filter-hidden,
.tpl-andere-unterkategorie.filter-hidden,
.idx-titel.filter-hidden,
.tpl-vermarktungsart.filter-hidden,
.tpl-objektart.filter-hidden,
.tpl-unterkategorie.filter-hidden,
.filter-hidden {
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: max-height 0.4s ease-out, opacity 0.3s ease-out, margin 0.3s ease-out;
}

#angebote, #nachbarorte, .Index_Nachbarorte, .tpl-nachbarorte-objektliste {

    opacity: 1;
    overflow: visible;
    transition: max-height 0.4s ease-in, opacity 0.3s ease-in;
}

.dynamische-objektliste {
    margin: 1em 0;
}

.filter-result-header {
    font-size: 1.2em;
    font-weight: 600;
    color: #333;
    margin-bottom: 1em;
    padding: 0.5em;
    background: #f0f4ff;
    border-left: 4px solid #4356b4;
    border-radius: 4px;
}

.filter-no-results-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2em;
    text-align: center;
    background: #f9f9f9;
    border-radius: 8px;
}

.filter-no-results-image {
    max-width: 100%;
    width: 768px;
    height: auto;
    border-radius: 8px;
    margin-bottom: 1em;
}

.filter-no-results {
    padding: 1em 2em;
    text-align: center;
    color: #666;
    font-size: 1.1em;
}

.dynamische-objektliste .loading-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.7em;
    padding: 1em;
    text-align: center;
    color: #666;
    font-style: italic;
}

.dynamische-objektliste .loading-spinner::before {
    content: '';
    width: 20px;
    height: 20px;
    border: 3px solid #e0e0e0;
    border-top-color: #2171b5;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    flex: 0 0 auto;
}

#dyn-loading::before {
    content: none;
}

#dyn-loading .dyn-loading-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    max-width: 20px;
    max-height: 20px;
    aspect-ratio: 1 / 1;
    border-width: 3px;
    box-sizing: border-box;
    flex: 0 0 auto;
}

.inc-wrapper.dyn-loaded {
    margin-bottom: 1em;
}

.inc-error-placeholder {
    color: #8e8ec6;
    border: 1px solid #4e4eff2b;
    padding: 10px;
    margin: 10px 0;
    background: #009688;
}

.entfernung-anzeige {
    font-weight: 600;
    color: var(--color-primary-dark);
}

.entfernung-ort-wrapper {
    white-space: nowrap;
}

.entfernung-ort-wrapper [itemprop="address"],
.entfernung-ort-wrapper .Ort {
    display: inline;
}

.filter-hidden-conditional {
    transition: opacity 0.2s ease, max-height 0.2s ease;
}
.filter-hidden-conditional[style*="display: none"] {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
}

.filter-warning {
    background-color: #fef3cd;
    border: 1px solid #ffc107;
    border-radius: 4px;
    padding: 0.5em 0.75em;
    margin-bottom: 0.75em;
    display: flex;
    align-items: flex-start;
    gap: 0.5em;
    font-size: 0.85em;
    line-height: 1.3;
}
.filter-warning-icon {
    color: #d63384;
    font-size: 1.1em;
    flex-shrink: 0;
}
.filter-warning-text {
    color: #664d03;
}

.tpl-filter.is-initializing {
    position: relative;
}

.tpl-filter.is-initializing .filter-body {
    pointer-events: none;
    user-select: none;
}

.filter-init-overlay {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(245, 247, 250, 0.88);
    z-index: 30;
}

.tpl-filter.is-initializing .filter-init-overlay {
    display: flex;
}

.filter-init-overlay-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7em;
    padding: 1.1em 0.8em;
    color: #475467;
    font-size: 0.95em;
}

.filter-init-overlay .spinner {
    width: 48px;
    height: 48px;
    border-width: 4px;
}

.filter-init-spinner-text {
    font-style: italic;
}

.filter-spinner-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}
.filter-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #e0e0e0;
    border-top-color: var(--color-primary-dark);
    border-radius: 50%;
    animation: filter-spin 0.8s linear infinite;
}
@keyframes filter-spin {
    to { transform: rotate(360deg); }
}

.slider-umkreis .slider-track {
    background-color: var(--color-slider-umkreis);
    transition: background-color 0.3s ease;
}
.slider-umkreis.umkreis-aktiv .slider-track {
    background-color: var(--color-slider-umkreis-aktiv);
}

.uf-symbole {
    display: inline-flex;
    gap: 0.3em;
    margin-right: 0.5em;
    vertical-align: middle;
    font-size: 1.1em;
}

.uf-minusplus {
    cursor: pointer;
    color: #888;
    font-weight: bold;
    width: 1.4em;
    height: 1.4em;
    line-height: 1.4em;
    text-align: center;
    transition: color 0.2s ease;
    user-select: none;
    text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px #fff;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #888;
    display: inline-block;
}
.uf-minusplus:hover {
    color: #333;
    -webkit-text-fill-color: #333;
}

.uf-herz {
    cursor: pointer;
    color: #444;
    font-weight: bold;
    width: 1.4em;
    height: 1.4em;
    line-height: 1.4em;
    text-align: center;
    transition: color 0.2s ease, transform 0.15s ease;
    user-select: none;
    text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px #fff, 0 0 2px #fff;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #444;
    display: inline-block;
}
.uf-herz:hover {
    color: var(--color-favorit-hover);
    -webkit-text-fill-color: var(--color-favorit-hover);
    transform: scale(1.15);
}

article[itemscope].uf-favorit {
    background-color: var(--color-favorit-bg) !important;

}
article[itemscope].uf-favorit .Objekttitel-Wrapper,
article[itemscope].uf-favorit .Objekttitel,
article[itemscope].uf-favorit h4 {
    background-color: var(--color-favorit-titel) !important;
}

article[itemscope].uf-favorit .Objekttitel::after {
    background: linear-gradient(to right, transparent, var(--color-favorit-titel)) !important;
}

.uf-favorit .uf-herz {
    color: var(--color-favorit);
    -webkit-text-fill-color: var(--color-favorit);
}
.uf-favorit .uf-herz:hover {
    color: var(--color-favorit-hover);
    -webkit-text-fill-color: var(--color-favorit-hover);
}

article[itemscope].uf-dislike {
    filter: grayscale(100%);
    opacity: 0.6;
    transition: filter 0.3s ease, opacity 0.3s ease;
}
article[itemscope].uf-dislike .Objekttitel-Wrapper,
article[itemscope].uf-dislike .Objekttitel,
article[itemscope].uf-dislike h4 {
    background-color: #e8e8e8 !important;
}

article[itemscope].uf-dislike .Objekttitel::after {
    background: linear-gradient(to right, transparent, #e8e8e8) !important;
}

article[itemscope].uf-dislike:hover {
    opacity: 0.85;
}

.uf-dislike .uf-minusplus {
    color: #4a4;
    -webkit-text-fill-color: #4a4;
}
.uf-dislike .uf-minusplus:hover {
    color: #2a2;
    -webkit-text-fill-color: #2a2;
}

#footer-share {
    scroll-margin-top: 1rem;
}

.footer-share {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin-bottom: 1.1rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-share.share-loaded {
    display: flex;
}

.footer-share-label {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

.site-footer .footer-share .share-inline {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.4rem;
}

.site-footer .footer-share .share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4em;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.site-footer .footer-share .share-icon:hover {
    background-color: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.22);
    transform: none;
}

.site-footer .footer-share .share-svg {
    width: 20px;
    height: 20px;
    vertical-align: middle;
    opacity: 0.9;
    transition: opacity 0.15s ease;
}

.site-footer .footer-share .share-icon:hover .share-svg {
    opacity: 1;
}

.header-share {
    display: none;
    align-items: flex-end;
    align-self: flex-end;
    position: relative;
    margin-left: 1.5em;
    margin-right: 0.5em;
    margin-bottom: -0.95em;
}

.header-share.share-loaded {
    display: inline-flex;
}

.share-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
}

.share-inline .share-icon {
    display: inline-block;
    padding: 0.02em;
    border-radius: 4px;
    transition: background-color 0.2s ease, transform 0.15s ease;
}

.share-inline .share-icon:hover {
    background-color: rgba(50, 69, 163, 0.1);
    transform: scale(1.1);
}

.share-inline .share-svg {
    width: 20px;
    height: 20px;
    vertical-align: middle;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.share-inline .share-icon:hover .share-svg {
    opacity: 1;
}

.share-inline .email .share-svg { filter: invert(30%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-inline .whatsapp .share-svg { filter: invert(50%) sepia(90%) saturate(500%) hue-rotate(90deg); }
.share-inline .facebook .share-svg { filter: invert(30%) sepia(90%) saturate(1000%) hue-rotate(200deg); }
.share-inline .x .share-svg { filter: invert(0%); }
.share-inline .telegram .share-svg { filter: invert(40%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-inline .linkedin .share-svg { filter: invert(30%) sepia(90%) saturate(800%) hue-rotate(190deg); }
.share-inline .sms .share-svg { filter: invert(50%) sepia(90%) saturate(400%) hue-rotate(90deg); }
.share-inline .imessage .share-svg { filter: invert(40%) sepia(90%) saturate(600%) hue-rotate(200deg); }
.share-inline .copy .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }
.share-inline .print .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }

.share-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.3em 0.5em;
    border-radius: 4px;
    transition: background-color 0.2s ease;
}

.share-toggle:hover {
    background-color: rgba(50, 69, 163, 0.1);
}

.share-toggle:focus {
    outline: 2px solid var(--color-primary-dark);
    outline-offset: 2px;
}

.share-svg-toggle {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    filter: invert(25%) sepia(50%) saturate(1000%) hue-rotate(200deg);
}

.share-dropdown {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    margin-top: 0.5em;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 0.5em;
    z-index: 1000;
    min-width: 160px;
}

.share-dropdown[hidden] {
    display: none !important;
}

.share-dropdown a {
    display: flex;
    align-items: center;
    gap: 0.6em;
    padding: 0.5em 0.8em;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
    transition: background-color 0.15s ease;
    font-size: 0.9em;
}

.share-dropdown a:hover {
    background-color: #f0f0f0;
}

.share-dropdown .share-svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.share-dropdown .email .share-svg { filter: invert(30%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-dropdown .whatsapp .share-svg { filter: invert(50%) sepia(90%) saturate(500%) hue-rotate(90deg); }
.share-dropdown .facebook .share-svg { filter: invert(30%) sepia(90%) saturate(1000%) hue-rotate(200deg); }
.share-dropdown .x .share-svg { filter: invert(0%); }
.share-dropdown .telegram .share-svg { filter: invert(40%) sepia(90%) saturate(500%) hue-rotate(180deg); }
.share-dropdown .linkedin .share-svg { filter: invert(30%) sepia(90%) saturate(800%) hue-rotate(190deg); }
.share-dropdown .sms .share-svg { filter: invert(50%) sepia(90%) saturate(400%) hue-rotate(90deg); }
.share-dropdown .imessage .share-svg { filter: invert(40%) sepia(90%) saturate(600%) hue-rotate(200deg); }
.share-dropdown .copy .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }
.share-dropdown .print .share-svg { filter: invert(40%) sepia(0%) saturate(0%); }

.filter-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
}

.filter-popup {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
    max-width: 480px;
    width: 90%;
    padding: 1.5em;
    animation: popupFadeIn 0.3s ease;
}
@keyframes popupFadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.filter-popup-header {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-bottom: 1em;
}
.filter-popup-icon {
    font-size: 1.5em;
    color: #e67e22;
}
.filter-popup-title {
    font-size: 1.3em;
    font-weight: 600;
    color: #333;
}

.filter-popup-text {
    color: #555;
    line-height: 1.5;
    margin-bottom: 1.5em;
}

.filter-popup-actions {
    display: flex;
    flex-direction: column;
    gap: 0.8em;
}

.filter-popup-ok {
    position: relative;
    display: block;
    padding: 0.8em 1em;
    background: transparent;
    border-radius: 6px;
    color: #333;
    text-decoration: none;
    overflow: hidden;
    z-index: 0;
}

.filter-popup-ok .popup-countdown,
.filter-popup-ok .popup-ok-text,
.filter-popup-ok {
    position: relative;
    z-index: 2;
}

.popup-countdown {
    font-weight: 700;
    color: #2a7a2a;
}

.popup-progress {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    background: linear-gradient(90deg, #7bc47f 0%, #4a9e4f 100%);
    opacity: 0.5;
    z-index: 1;
    border-radius: 6px;
}

.filter-popup-reset {
    display: block;
    padding: 0.8em 1em;
    background: #f6cbcb;
    border-radius: 6px;
    color: #333;
    text-decoration: none;
    text-align: center;
    transition: background-color 0.2s ease;
}
.filter-popup-reset:hover {
    background: #f0b0b0;
}

@media (max-width: 768px) {
    .footer-share .share-inline {
        display: inline-flex;
    }
    .filter-popup {
        padding: 1em;
    }
    .filter-popup-title {
        font-size: 1.1em;
    }
}

.tpl-karten {
    background: #fff;
    border-radius: 6px;
    margin-bottom: 0;
    margin-right: 0;
    align-items: center;
    text-align: center;
}

.tpl-karten h3 {
    margin: 0;
    font-size: 0.95em;
    color: #374151;
}

.karten-box {
    width: 100%;
    max-width: 300px;
    height: 300px;
    background: #e2e8f0;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    border: 1px solid #e5e7eb;
}

.exposee-map-wrap {
    margin-top: 0.75em;
}

.exposee-map-box {
    width: 100%;
    max-width: 900px;
    height: 60vh;
    max-height: 600px;
    min-height: 260px;
    background: #d4c4a8;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}

.karten-ortlabel {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 25;
    max-width: calc(100% - 20px);
    padding: 6px 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
    color: #000;
    font-weight: 900;
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1.1;
    pointer-events: none;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.location-hinweis {
    color: #444;
}
.location-hinweis p {
    margin: 0.2em 0 0;
    font-style: italic;
}

.karten-box canvas.umgebungskarte {
    display: block;
    width: 100%;
    height: 100%;
}

.karten-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #64748b;
    font-size: 0.9em;
}

.karten-preview-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
    z-index: 1;
    transition: opacity 0.3s ease;
}
.karten-preview-img--ausgeblendet {
    opacity: 0;
    pointer-events: none;
    z-index: 0;
}

.karten-preview-img--wartet {
    opacity: 0;
}

.karten-preview-marker-layer {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}

.karten-preview-marker {
    position: absolute;
    transform: translate(-50%, -50%);
    width: 24px;
    height: 24px;
    min-width: 24px;
    min-height: 24px;
    max-width: 24px;
    max-height: 24px;
    aspect-ratio: 1 / 1;
    box-sizing: border-box;
    border-radius: 50%;
    border: 2px solid #fff;
    background: #dc2626;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    pointer-events: auto;
    cursor: pointer;
    padding: 0;
}

.karten-preview-marker--zentrum {
    background: #2563eb;
    cursor: default;
}

.inc-wrapper.is-lazy-loading,
.alternativ-item.is-lazy-loading,
article[itemscope].is-lazy-loading,
figure.is-lazy-loading {
    position: relative;
}

.inc-wrapper.is-lazy-loading::after,
.alternativ-item.is-lazy-loading::after,
article[itemscope].is-lazy-loading::after,
figure.is-lazy-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 26px;
    height: 26px;
    margin-top: -13px;
    margin-left: -13px;
    border: 3px solid rgba(255, 255, 255, 0.9);
    border-top-color: #2171b5;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    z-index: 3;
    pointer-events: none;
}

.inc-wrapper.is-lazy-loading img,
.alternativ-item.is-lazy-loading img,
article[itemscope].is-lazy-loading img,
figure.is-lazy-loading img {
    filter: saturate(0.8) brightness(0.92);
}

.error-404-main {
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}

.error-404-main h1 {
    font-size: 200%;
    margin-bottom: 1rem;
    text-align: center;
}

.error-404-main p {
    font-size: 200%;
    margin-bottom: 1rem;
    line-height: 1.5;
}

.error-404-main a {
    color: var(--link-hover-color, #3245A3);
    text-decoration: underline;
}

.error-404-bild {
    margin: 2rem auto;
    max-width: 1024px;
}

.error-404-bild img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.error-404-toporte {
    display: flex;
    justify-content: center;
    gap: 4rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.error-404-toporte > div {
    text-align: left;
}

.error-404-toporte h3 {
    font-size: 150%;
}

@media (max-width: 949px) {
    .karten-box {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }
}

.index0-layout {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.index0-layout main {
    width: 100%;
    max-width: none;
    margin: 0;
    min-width: 0;
}

.idx0-suchfeld-container {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    padding: 2em 2em 0 2em;
    border-radius: 12px;
    margin-bottom: 2em;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.idx0-suchfeld-container h2 {
    margin: 0 0 0.65em 0;
    font-size: 1.5em;
    color: #333;
    text-align: center;
}

.idx0-va-fake-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0;
    max-width: 73em;
    margin: 0 auto 0.85rem;
    padding: 0;
    border-bottom: 1px solid #d1d5db;
    box-sizing: border-box;
    font-size: 120%;
}

.idx0-va-fake-tabs .idx0-va-tab {
    box-sizing: border-box;
    margin: 0 0 -1px 0;
    padding: 0.55rem 1.1rem;
    font-size: 0.875em;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.3;
    color: #4b5563;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.idx0-va-fake-tabs .idx0-va-tab:hover {
    color: #15803d;
    background-color: rgba(240, 253, 244, 0.65);
}

.idx0-va-fake-tabs .idx0-va-tab:focus-visible {
    outline: 2px solid var(--color-primary-dark, #3245a3);
    outline-offset: 2px;
    z-index: 1;
}

.idx0-va-fake-tabs .idx0-va-tab.is-active {
    color: #14532d;
    background-color: #f0fdf4;
    border-bottom-color: #15803d;
}

.idx0-suchbar-wrapper {
    position: relative;
    max-width: 73em;
    margin: 0 auto;
}

.idx0-suchbar {
    display: flex;
    align-items: stretch;
    border: 2px solid var(--color-primary-dark);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    transition: box-shadow 0.18s ease, border-color 0.18s ease;

    min-height: 44px;
    box-sizing: border-box;
}

.idx0-suchbar-select,
.idx0-suchbar-input,
.idx0-suchbar-button {
    box-sizing: border-box;
    line-height: 1.4;
    margin: 0;
}

.idx0-suchbar:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(33,113,181,0.15);
}

.idx0-suchbar-select {

    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%233245a3' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.6em center,
        var(--color-primary-light);
    background-size: 0.7em auto, auto;
    border: 0;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color: var(--color-text);
    font-size: 0.95em;
    padding: 0.7em 1.9em 0.7em 0.9em;
    cursor: pointer;
    flex: 0 0 auto;
}

.idx0-suchbar-select:focus {
    outline: none;
}

.idx0-suchbar-select::-moz-focus-inner {
    border: 0;
}

.idx0-suchbar-input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    padding: 0.8em 1em;
    font-size: 1.05em;
    color: var(--color-text);
    background: #fff;
    box-sizing: border-box;
}

.idx0-suchbar-input:focus {
    outline: none;
}

.idx0-suchbar-button {
    flex: 0 0 auto;

    background: var(--color-primary);
    color: #fff;
    border: 0;
    padding: 0 1.4em;
    font-size: 0.95em;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    transition: background-color 0.18s ease;
    white-space: nowrap;
}

.idx0-suchbar-button:hover,
.idx0-suchbar-button:focus {
    background: var(--color-primary-dark);
    outline: none;
}

.idx0-suchbar-lupe {

    display: block;
    flex-shrink: 0;
}

.idx0-suchbar-button-text {
    line-height: 3;
}

.idx0-suchfeld-hint {
    text-align: center;
    margin-top: 0.8em;
    color: #666;
    font-size: 0.9em;
}

.idx0-suchbar-vorschlaege {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 2px solid var(--color-primary-dark);
    border-top: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    list-style: none;
    padding: 0;
    margin: 0;
    max-height: 400px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}

@media (max-width: 480px) {
    .idx0-va-fake-tabs .idx0-va-tab {
        flex: 1 1 auto;
        justify-content: center;
        padding: 0.45rem 0.65rem;
        font-size: 0.8em;
    }
    .idx0-suchbar {
        flex-wrap: wrap;
    }
    .idx0-suchbar-select {
        flex: 1 1 50%;
    }
    .idx0-suchbar-input {
        flex: 1 1 50%;
    }
    .idx0-suchbar-button {
        flex: 1 1 100%;
        padding: 0.7em 1em;
        justify-content: center;
    }
}

.idx0-suchfeld-container .idx0-filterzeile {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.6em;
    max-width: 73em;
    margin: 1.15em auto 0 auto;
    padding: 0;
}

.idx0-filter-box {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    background: #fff;
    box-sizing: border-box;

    min-height: 36px;
    transition: opacity 0.18s ease, border-color 0.18s ease;
}

.idx0-filter-box:focus-within {
    border-color: var(--color-primary-dark);
}

.idx0-filter-label {
    background: var(--color-bg-light);
    border-right: 1px solid var(--color-border);
    color: var(--color-text-light);
    font-size: 0.8em;
    padding: 0.35em 0.6em;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.idx0-filter-select,
.idx0-filter-input {
    border: 0;
    background: #fff;
    color: var(--color-text);
    font-size: 0.9em;
    padding: 0.35em 0.5em;
    box-sizing: border-box;
    line-height: 1.4;
    margin: 0;
}

.idx0-filter-select {

    background:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%233245a3' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 0.4em center,
        #fff;
    background-size: 0.6em auto, auto;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding-right: 1.4em;
    cursor: pointer;
}

.idx0-filter-select:focus,
.idx0-filter-input:focus {
    outline: none;
}

.idx0-filter-mini {

    width: 5.5em;
}

.idx0-filter-input.idx0-filter-mini {

    width: 5em;
}

.idx0-filter-trenner {
    color: var(--color-text-lighter);
    align-self: center;
    padding: 0 0.25em;
    user-select: none;
}

.idx0-filter-disabled {
    opacity: 0.4;
    pointer-events: none;
    cursor: not-allowed;
}

.idx0-filter-reset {
    border: 1px solid var(--color-border);
    background: var(--color-bg-light);
    color: var(--color-text-light);
    font-size: 0.85em;
    padding: 0.35em 0.9em;
    cursor: pointer;
    margin-left: auto;
    min-height: 36px;
    box-sizing: border-box;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.idx0-filter-reset:hover,
.idx0-filter-reset:focus {
    background: #fff;
    color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    outline: none;
}

.idx0-suchbar-spinner {
    display: none;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: idx0-spin 0.8s linear infinite;
    margin-left: 0.4em;
    box-sizing: border-box;
    flex-shrink: 0;
}

.idx0-suchbar-button.is-loading .idx0-suchbar-spinner {
    display: inline-block;
}

@keyframes idx0-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 700px) {
    .idx0-suchfeld-container .idx0-filterzeile {
        gap: 0.4em;
    }
    .idx0-suchfeld-container .idx0-filterzeile .idx0-filter-box {
        flex: 1 1 auto;
    }
}

.idx0-vorschlag-item {
    padding: 0.8em 1em;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.idx0-vorschlag-item:last-child {
    border-bottom: none;
}

.idx0-vorschlag-item:hover {
    background: #f0f4ff;
}

.idx0-vorschlag-aktiv {
    background: #e0e8ff !important;
    outline: 2px solid var(--color-primary-dark);
    outline-offset: -2px;
}

.idx0-vorschlag-anzahl {
    font-size: 0.85em;
    color: #666;
    background: #f0f0f0;
    padding: 0.2em 0.6em;
    border-radius: 4px;
    white-space: nowrap;
}

.idx0-vorschlag-keine {
    color: #999;
    font-style: italic;
}

.idx0-objektlisten-container {
    margin-bottom: 2em;
}

.idx0-frisch-favoriten-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2em;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    align-items: flex-start;
    justify-content: center;
}

.idx0-frisch-spalte,
.idx0-favoriten-spalte {
    flex: 0 1 calc((70em - 2em) / 2);
    min-width: min(100%, 18em);
    max-width: 100%;
    box-sizing: border-box;
}

.idx0-favoriten-karte {

}

.idx0-favoriten-heading {

    background-color: #00000014;
    padding: 0.5em 1em;
    font-size: 113%;
    font-weight: 600;
    color: #000;
    min-height: 1.25em;

    max-width: 30em;
}

.idx0-favoriten-alle-wrap {
    display: none;
    justify-content: center;
    margin: 0.85em 0 0 0;
    padding-top: 0.75em;
    border-top: 1px solid #e0e0e0;
}

.idx0-favoriten-alle-loeschen-btn {
    font-size: 0.88em;
    padding: 0.45em 0.85em;
}

.idx0-favoriten-leer-hinweis {
    margin: 0;
    color: #555;
    font-size: 0.95em;
    line-height: 1.55;
}

.idx0-favoriten-herz-symbol {
    color: #c33;
    font-weight: 700;
    padding: 0 0.15em;
}

.idx0-favoriten-more-wrap {
    margin-top: 0.85em;
    padding-top: 0.5em;
    border-top: 1px solid #e0e0e0;
}

.idx0-favoriten-seite-link {
    color: var(--color-primary-dark, #3245a3);
    font-weight: 600;
    text-decoration: none;
}

.idx0-favoriten-seite-link:hover,
.idx0-favoriten-seite-link:focus {
    text-decoration: underline;
}

.idx0-treffer-alle-wrap {
    display: none;
    justify-content: center;
    margin-top: 0.85em;
    padding-top: 0.5em;
    border-top: 1px solid #e0e0e0;
}

.idx0-treffer-alle-btn {
    background: var(--color-primary-dark, #3245a3);
    color: #fff;
    border: none;
    padding: 0.55em 1.2em;
    border-radius: 4px;
    font-size: 0.95em;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s ease, background 0.2s ease;
}

.idx0-treffer-alle-btn:hover,
.idx0-treffer-alle-btn:focus {
    opacity: 0.92;
}

.idx0-frisch-spalte.idx0-treffer-modus-aktiv #fresh-liste {
    display: none !important;
}

.idx0-frisch-spalte .idx0-liste-neueste {
    flex: 1 1 auto;
    max-width: 100%;
    min-width: 0;
}

.idx0-liste {
    flex: 1 1 300px;
    min-width: 280px;
    padding: 0;
    border-radius: 0;
}

.idx0-liste h3 {
    background-color: #00000014;
    padding: 0.5em 1em;
    font-size: 113%;
    font-weight: 600;
    color: #000;
    min-height: 1.25em;
    margin-bottom: 2em;

    max-width: 30em;
}

.idx0-keine-objekte {
    color: #666;
    font-style: italic;
    padding: 1em;
    text-align: center;
}

.idx0-statistik {
    font-size: 120%;
}

.idx0-statistik .idx0-statistik-container {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-bottom: 0.5em;
}

.idx0-statistik .idx0-statistik-liste {
    width: 100%;
    min-width: 0;
}

.idx0-statistik .idx0-statistik-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.65rem;
    margin-top: 0.15rem;
}

.idx0-statistik .idx0-statistik-label {
    flex: 0 0 auto;
    font-size: 0.75em;
    line-height: 1.25;
    color: #6b7280;
    max-width: 11em;
}

.idx0-statistik .idx0-statistik-items {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.5rem;
    flex: 1 1 12rem;
    min-width: 0;
    max-width: 100%;
}

.idx0-statistik .idx0-statistik-items li {
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
    max-width: 100%;
}

.idx0-statistik .idx0-statistik-items a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    max-width: 100%;
    gap: 0.2em;
    padding: 0.28rem 0.55rem 0.28rem 0.4rem;
    font-size: 0.75em;
    line-height: 1.25;
    font-weight: 500;
    color: #166534;
    text-decoration: none;
    white-space: nowrap;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.idx0-statistik .idx0-statistik-items a::before {
    content: "";
    flex-shrink: 0;
    width: 0.85em;
    height: 0.85em;
    margin-right: 0.15em;
    background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2316a34a' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idx0-statistik .idx0-statistik-items a:hover {
    color: #14532d;
    background-color: #dcfce7;
    border-color: #86efac;
    text-decoration: none;
}

.idx0-statistik .idx0-statistik-items a:focus-visible {
    outline: 2px solid var(--color-primary-dark, #3245a3);
    outline-offset: 2px;
}

.idx0-statistik .idx0-statistik-mieten .idx0-statistik-items a {
    color: #14532d;
    background-color: #f7fee7;
    border-color: #d9f99d;
}

.idx0-statistik .idx0-statistik-mieten .idx0-statistik-items a::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2365a30d' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E");
}

.idx0-statistik .idx0-statistik-mieten .idx0-statistik-items a:hover {
    color: #14532d;
    background-color: #ecfccb;
    border-color: #bef264;
}

.idx0-statistik .idx0-statistik-items li.idx0-keine-orte {
    flex: 1 1 100%;
    font-size: 0.85em;
    color: #666;
    font-style: italic;
    padding: 0.25em 0;
}

.idx0-statistik .idx0-anzahl {
    font-size: 0.72em;
    font-weight: 500;
    color: #9ca3af;
}

.idx-linklisten-karte[data-v="Kaufen"],
.idx-unterhalb-karte[data-v="Kaufen"],
.idx-linklisten-karte .vermarktungsart-block[data-v="Kaufen"] {
    --idx-ll-border: #bbf7d0;
    --idx-ll-head-bg: #ecfdf5;
    --idx-ll-head-text: #166534;
    --idx-ll-chip-bg: #f0fdf4;
    --idx-ll-chip-border: #bbf7d0;
    --idx-ll-chip-text: #166534;
    --idx-ll-chip-hover-bg: #dcfce7;
    --idx-ll-chip-hover-border: #86efac;
    --idx-ll-pin-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2316a34a' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E");
}

.idx-linklisten-karte[data-v="Mieten"],
.idx-unterhalb-karte[data-v="Mieten"],
.idx-linklisten-karte .vermarktungsart-block[data-v="Mieten"] {
    --idx-ll-border: #d9f99d;
    --idx-ll-head-bg: #f7fee7;
    --idx-ll-head-text: #365314;
    --idx-ll-chip-bg: #f7fee7;
    --idx-ll-chip-border: #d9f99d;
    --idx-ll-chip-text: #365314;
    --idx-ll-chip-hover-bg: #ecfccb;
    --idx-ll-chip-hover-border: #bef264;
    --idx-ll-pin-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%2365a30d' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E");
}

.idx-linklisten-karte.tpl-vermarktungsart {
    margin-bottom: 1.25rem;
}

.idx-linklisten-karte.tpl-vermarktungsart > .Index_Vermarktungsart {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.idx-linklisten-karte.tpl-vermarktungsart .vermarktungsart-block {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 14rem;
    border: 1px solid var(--idx-ll-border, #e5e7eb);
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    background: #fff;
    overflow: hidden;
}

.idx-linklisten-karte.tpl-objektart,
.idx-linklisten-karte.tpl-unterkategorie {
    border: 1px solid var(--idx-ll-border, #e5e7eb);
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    background: #fff;
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.idx-linklisten-karte > h3 {
    display: block;
    max-width: none;
    margin: 0;
    padding: 0.6em 1em;
    font-size: 1em;
    font-weight: 500;
    line-height: 1.35;
    color: #374151;
    background: var(--idx-ll-head-bg, #f9fafb);
    border-bottom: 1px solid var(--idx-ll-border, #e5e7eb);
}

.idx-linklisten-karte .vermarktungsart-block h3 {
    display: block;
    max-width: none;
    margin: 0;
    padding: 0;
    font-size: 1em;
    font-weight: 600;
    background: var(--idx-ll-head-bg, #f9fafb);
    border-bottom: 1px solid var(--idx-ll-border, #e5e7eb);
}

.idx-linklisten-karte .vermarktungsart-block h3 a {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35em;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6em 1em;
    margin: 0;
    text-decoration: none;
    color: var(--idx-ll-head-text, #374151);
    font-weight: 600;
    border-radius: 0;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.idx-linklisten-karte .vermarktungsart-block h3 a::before,
.idx-linklisten-karte .idx-link-ort a::before,
.idx-linklisten-karte a.idx-link-ort::before {
    content: "";
    flex-shrink: 0;
    width: 0.95em;
    height: 0.95em;
    background: transparent var(--idx-ll-pin-svg) center / contain no-repeat;
}

.idx-linklisten-karte .vermarktungsart-block h3 a:hover {
    background-color: var(--idx-ll-chip-hover-bg, #f3f4f6);
    text-decoration: none;
    color: var(--idx-ll-head-text, #374151);
}

.idx-linklisten-karte .Index_Objektart,
.idx-linklisten-karte .Index_Unterkategorie {
    padding: 0.85em 1em 1em;
}

.idx-linklisten-karte .vermarktungsart-block ul {
    list-style: none;
    padding: 0.85em 1em 1em;
    margin: 0;
}

.idx-linklisten-karte .objektart-liste,
.idx-linklisten-karte .objektarten-liste,
.idx-linklisten-karte .unterkategorie-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.5rem;
}

.idx-linklisten-karte .objektart-liste li,
.idx-linklisten-karte .objektarten-liste li,
.idx-linklisten-karte .unterkategorie-liste li {
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
    max-width: 100%;
}

.idx-linklisten-karte .objektart-liste li a,
.idx-linklisten-karte .objektarten-liste li a,
.idx-linklisten-karte .unterkategorie-liste li a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    max-width: 100%;
    gap: 0.25em;
    padding: 0.28rem 0.55rem 0.28rem 0.4rem;
    margin: 0;
    font-size: 0.85em;
    line-height: 1.25;
    font-weight: 500;
    color: var(--idx-ll-chip-text, #374151);
    text-decoration: none;
    white-space: nowrap;
    background-color: var(--idx-ll-chip-bg, #f9fafb);
    border: 1px solid var(--idx-ll-chip-border, #e5e7eb);
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.idx-linklisten-karte .objektart-liste li a:hover,
.idx-linklisten-karte .objektarten-liste li a:hover,
.idx-linklisten-karte .unterkategorie-liste li a:hover {
    color: var(--idx-ll-chip-text, #374151);
    background-color: var(--idx-ll-chip-hover-bg, #f3f4f6);
    border-color: var(--idx-ll-chip-hover-border, #d1d5db);
    text-decoration: none;
}

.idx-linklisten-karte .objektart-liste .objektart-name,
.idx-linklisten-karte .objektarten-liste .objektart-name,
.idx-linklisten-karte .unterkategorie-liste .unterkategorie-name,
.idx-linklisten-karte .objektart-liste .anzahl-ll,
.idx-linklisten-karte .objektarten-liste .anzahl-ll,
.idx-linklisten-karte .unterkategorie-liste .anzahl-ll,
.idx-linklisten-karte .objektart-liste .min-preis,
.idx-linklisten-karte .objektarten-liste .min-preis,
.idx-linklisten-karte .unterkategorie-liste .min-preis {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.idx-linklisten-karte .objektart-liste .anzahl-ll,
.idx-linklisten-karte .objektarten-liste .anzahl-ll,
.idx-linklisten-karte .unterkategorie-liste .anzahl-ll {
    font-style: normal;
    color: #9ca3af;
}

.idx-linklisten-karte .objektart-liste .min-preis,
.idx-linklisten-karte .objektarten-liste .min-preis,
.idx-linklisten-karte .unterkategorie-liste .min-preis {
    font-style: normal;
    color: #fc6c00b3;
}

@media (max-width: 600px) {
    .idx-linklisten-karte.tpl-vermarktungsart .vermarktungsart-block {
        flex: 1 1 100%;
    }
    .idx-unterhalb-karte .Index_Nachbarorte {
        grid-template-columns: 1fr;
    }
}

.idx-unterhalb-karte {
    border: 1px solid var(--idx-ll-border, #e5e7eb);
    border-radius: 6px;
    box-shadow: var(--hover-shadow);
    background: #fff;
    margin-top: 1.5em;
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.idx-unterhalb-karte > h3,
.idx-unterhalb-karte > h2 {
    display: block;
    max-width: none;
    margin: 0;
    padding: 0.6em 1em;
    font-size: 1em;
    font-weight: 500;
    line-height: 1.35;
    color: #374151;
    background: var(--idx-ll-head-bg, #f8fafc);
    border-bottom: 1px solid var(--idx-ll-border, #e5e7eb);
}

.index-layout main section .idx-unterhalb-karte > h3 {
    margin-bottom: 0;
    padding-left: 1em;
    background: var(--idx-ll-head-bg, #f8fafc);
}

.idx-unterhalb-karte .Index_Nachbarorte {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem 0.75rem;
    list-style: none;
    padding: 0.85em 1em 1em;
    margin: 0;
}

.idx-unterhalb-karte .Index_Nachbarorte li {
    list-style: none;
    margin: 0;
}

.idx-unterhalb-karte .Index_Nachbarorte li a {
    display: block;
    box-sizing: border-box;
    padding: 0.55em 0.65em;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    background: #fafafa;
    text-decoration: none;
    color: inherit;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.idx-unterhalb-karte .Index_Nachbarorte li a:hover {
    background: var(--color-primary-light, #eff3ff);
    border-color: #c7d2fe;
    text-decoration: none;
}

.idx-unterhalb-karte .Index_Nachbarorte .ort-name {
    display: flex;
    align-items: baseline;
    gap: 0.35em;
    font-weight: 600;
    font-size: 0.95em;
    line-height: 1.3;
    color: #374151;
}

.idx-unterhalb-karte .Index_Nachbarorte .ort-name::before {
    content: "";
    flex-shrink: 0;
    width: 0.9em;
    height: 0.9em;
    background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20' aria-hidden='true'%3E%3Cpath fill='%233245a3' d='M8 0C4.7 0 2 2.7 2 6c0 4.5 5.2 11.6 5.6 12.2.2.3.5.5.9.5s.7-.2.9-.5C9.8 17.6 14 10.5 14 6 14 2.7 11.3 0 8 0zm0 8.5c-1.4 0-2.5-1.1-2.5-2.5S6.6 3.5 8 3.5s2.5 1.1 2.5 2.5S9.4 8.5 8 8.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.idx-unterhalb-karte .Index_Nachbarorte .ort-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25em 0.45em;
    margin-top: 0.3em;
    font-size: 0.85em;
    line-height: 1.35;
    color: #6b7280;
}

.idx-unterhalb-karte .Index_Nachbarorte .richtung-pfeil {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15em;
    height: 1.15em;
    font-size: 0.95em;
    line-height: 1;
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 0.125rem;
}

.idx-unterhalb-karte .Index_Nachbarorte .richtung-text {
    font-style: normal;
    font-size: 0.78em;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #9ca3af;
    padding-right: 0;
}

.idx-unterhalb-karte .Index_Nachbarorte .entfernung {
    font-style: normal;
    color: #6b7280;
}

.idx-unterhalb-karte .Index_Nachbarorte .anzahl-ll {
    font-weight: 500;
    font-style: normal;
    color: #9ca3af;
}

.idx-unterhalb-karte .Index_Nachbarorte .min-preis {
    font-weight: 600;
    font-style: normal;
    color: #fc6c00b3;
    white-space: nowrap;
}

.idx-unterhalb-karte .Index_Nachbarorte .ort-name.relevant,
.idx-unterhalb-karte .Index_Nachbarorte .ort-meta.relevant {
    color: inherit;
}

.idx-unterhalb-karte .Index_Nachbarorte .ort-name.relevant {
    color: #1f2937;
}

.idx-unterhalb-karte .Index_andereObjektart,
.idx-unterhalb-karte .Index_andereUnterkategorie {
    padding: 0.85em 1em 1em;
}

.idx-unterhalb-karte .andere-objektart-liste,
.idx-unterhalb-karte .andere-unterkategorie-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.5rem;
}

.idx-unterhalb-karte .andere-objektart-liste li,
.idx-unterhalb-karte .andere-unterkategorie-liste li {
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
    max-width: 100%;
}

.idx-unterhalb-karte .andere-objektart-liste li a,
.idx-unterhalb-karte .andere-unterkategorie-liste li a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    max-width: 100%;
    gap: 0.25em;
    padding: 0.28rem 0.55rem 0.28rem 0.4rem;
    margin: 0;
    font-size: 0.85em;
    line-height: 1.25;
    font-weight: 500;
    color: var(--idx-ll-chip-text, #374151);
    text-decoration: none;
    white-space: nowrap;
    background-color: var(--idx-ll-chip-bg, #f9fafb);
    border: 1px solid var(--idx-ll-chip-border, #e5e7eb);
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.idx-unterhalb-karte .andere-objektart-liste li a:hover,
.idx-unterhalb-karte .andere-unterkategorie-liste li a:hover {
    color: var(--idx-ll-chip-text, #374151);
    background-color: var(--idx-ll-chip-hover-bg, #f3f4f6);
    border-color: var(--idx-ll-chip-hover-border, #d1d5db);
    text-decoration: none;
}

.idx-unterhalb-karte .andere-objektart-liste .objektart-name,
.idx-unterhalb-karte .andere-unterkategorie-liste .unterkategorie-name,
.idx-unterhalb-karte .andere-objektart-liste .anzahl-ll,
.idx-unterhalb-karte .andere-unterkategorie-liste .anzahl-ll,
.idx-unterhalb-karte .andere-objektart-liste .min-preis,
.idx-unterhalb-karte .andere-unterkategorie-liste .min-preis {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    font-style: normal;
    opacity: 1;
}

.idx-unterhalb-karte .andere-objektart-liste .anzahl-ll,
.idx-unterhalb-karte .andere-unterkategorie-liste .anzahl-ll {
    color: #9ca3af;
}

.idx-unterhalb-karte .andere-objektart-liste .min-preis,
.idx-unterhalb-karte .andere-unterkategorie-liste .min-preis {
    color: #fc6c00b3;
}

.idx-unterhalb-karte .andere-objektart-liste li a.relevant {
    font-weight: inherit;
}

.idx-unterhalb-karte .andere-objektart-liste li a.relevant .objektart-name {
    font-weight: 700;
}

.idx-unterhalb-karte.tpl-anderevermarktungsart > .andere-objektart-liste {
    padding: 0.85em 1em 1em;
}

.main2-andere-vermarktung.idx-unterhalb-karte {
    padding: 0;
    background: #fff;
}

.main2-andere-vermarktung.idx-unterhalb-karte > h2 {
    font-size: 1em;
    font-weight: 500;
    color: #374151;
    margin: 0;
    padding-bottom: 0.6em;
}

.main2-andere-vermarktung .vermarktung-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0 1em 1em;
}

.main2-andere-vermarktung .vermarktung-grid .vermarktungsart-block {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 14rem;
    border: 1px solid var(--idx-ll-border, #e5e7eb);
    border-radius: 6px;
    background: #fff;
    overflow: hidden;
}

.main2-andere-vermarktung .vermarktung-grid .vermarktungsart-block[data-v="Kaufen"] {
    --idx-ll-border: #bbf7d0;
    --idx-ll-head-bg: #ecfdf5;
    --idx-ll-head-text: #166534;
    --idx-ll-chip-bg: #f0fdf4;
    --idx-ll-chip-border: #bbf7d0;
    --idx-ll-chip-text: #166534;
    --idx-ll-chip-hover-bg: #dcfce7;
    --idx-ll-chip-hover-border: #86efac;
}

.main2-andere-vermarktung .vermarktung-grid .vermarktungsart-block[data-v="Mieten"] {
    --idx-ll-border: #d9f99d;
    --idx-ll-head-bg: #f7fee7;
    --idx-ll-head-text: #365314;
    --idx-ll-chip-bg: #f7fee7;
    --idx-ll-chip-border: #d9f99d;
    --idx-ll-chip-text: #365314;
    --idx-ll-chip-hover-bg: #ecfccb;
    --idx-ll-chip-hover-border: #bef264;
}

.main2-andere-vermarktung .vermarktungsart-block h3 {
    display: block;
    max-width: none;
    margin: 0;
    padding: 0.6em 1em;
    font-size: 1em;
    font-weight: 500;
    line-height: 1.35;
    color: #374151;
    background: var(--idx-ll-head-bg, #f8fafc);
    border-bottom: 1px solid var(--idx-ll-border, #e5e7eb);
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste {
    list-style: none;
    padding: 0.85em 1em 1em;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.5rem;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste li {
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
    max-width: 100%;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste li a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: baseline;
    flex-wrap: nowrap;
    max-width: 100%;
    gap: 0.25em;
    padding: 0.28rem 0.55rem 0.28rem 0.4rem;
    margin: 0;
    font-size: 0.85em;
    line-height: 1.25;
    font-weight: 500;
    color: var(--idx-ll-chip-text, #374151);
    text-decoration: none;
    white-space: nowrap;
    background-color: var(--idx-ll-chip-bg, #f9fafb);
    border: 1px solid var(--idx-ll-chip-border, #e5e7eb);
    border-radius: 0.125rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste li a:hover {
    color: var(--idx-ll-chip-text, #374151);
    background-color: var(--idx-ll-chip-hover-bg, #f3f4f6);
    border-color: var(--idx-ll-chip-hover-border, #d1d5db);
    text-decoration: none;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste .objektart-name,
.main2-andere-vermarktung .vermarktungsart-block .objektart-liste .anzahl-ll,
.main2-andere-vermarktung .vermarktungsart-block .objektart-liste .min-preis {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    font-style: normal;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste .anzahl-ll {
    color: #9ca3af;
}

.main2-andere-vermarktung .vermarktungsart-block .objektart-liste .min-preis {
    color: #fc6c00b3;
}

@media (max-width: 600px) {
    .main2-andere-vermarktung .vermarktung-grid .vermarktungsart-block {
        flex: 1 1 100%;
    }
}

.idx0-statistik-items {
    list-style: none;
    padding: 0;
    margin: 0;
    column-count: 2;
    column-gap: 1.5em;
}

.idx0-statistik-items li {
    break-inside: avoid;
    padding: 0.3em 0;
}

.idx0-statistik-items a {
    color: #444;
    text-decoration: none;
    display: block;
}

.idx0-statistik-items a:hover {
    color: var(--link-hover-color, #3245A3);
    text-decoration: underline;
}

.idx0-anzahl {
    font-size: 0.85em;
    color: #888;
}

.idx0-keine-orte {
    color: #666;
    font-style: italic;
}

.idx0-aside-container {

    border-radius: 8px;
    padding: 1em;
}

.idx0-aside-container h3 {
    margin: 0 0 1em 0;
    font-size: 1.1em;
    padding-left: 1em;
    background: var(--color-bg-h3-light);
    color: #333;
    font-weight: 600;
    margin-top: 1em;
}

.idx0-liste-items,
.idx0-aside-items {
    display: block;
    width: 100%;
}

.idx0-aside-item {
    margin-bottom: 0;
}

.idx0-suche {  }
.idx0-listen {  }
.idx0-statistik-kaufen {  }
.idx0-statistik-mieten {  }
.idx0-platzhalter-container {  }

.idx0-mehr {

}

.aside-favoriten-container {
    margin-bottom: 1.5em;
    padding-bottom: 1em;
    border-bottom: 1px solid #e0e0e0;
}

.aside-favoriten-container h3 {
    margin: 0 0 1em 0;
    font-size: 1.1em;
    padding-left: 1em;
    color: #c44;
    font-weight: 600;
}

.aside-favoriten-items {
    display: block;
}

.aside-favoriten-items article {
    margin-bottom: 0;
    margin-top: 0;
    width: auto;
    max-width: 50em;
    transform: none;
}

.aside-favoriten-mehr {
    text-align: right;
    margin-top: 0.5em;
    margin-bottom: 1em;
    padding-right: 2em;
}

.aside-favoriten-mehr-btn {

    color: var(--color-text);
    border: none;
    padding: 0.2em 0.5em;
    border-radius: 3px;
    cursor: pointer;

    font-weight: 600;
    transition: transform 0.2s, box-shadow 0.2s;
    width: auto;
    display: inline-block;
}

.aside-favoriten-mehr-btn:hover {
    transform: scale(1.02);
    box-shadow: 0 2px 8px rgba(204, 68, 68, 0.3);
}

.aside-favoriten-buttons {
    display: inline-flex;
    gap: 0.3em;
    align-items: center;
    margin-top: 0.3em;
    margin-left: 1em;
}

.aside-favoriten-trash-btn {
    background: #f5f5f5;
    border: 1px solid #ddd;
    padding: 0.1em 0.2em;
    border-radius: 3px;
    cursor: pointer;

    transition: background 0.2s, transform 0.2s;
    line-height: 1;
    width: auto;
    min-width: 0;
}

.aside-favoriten-trash-btn:hover {
    background: var(--color-favorit-bg-hover);
    transform: scale(1.05);
}

.favoriten-seite {
    padding: 1em;
    max-width: 100%;
}

.favoriten-seite-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1em;
    margin-bottom: 1.5em;
    padding-bottom: 1em;
    border-bottom: 2px solid var(--color-favorit);
}

.favoriten-seite h1 {
    color: var(--color-favorit);
    margin: 0;
    font-size: 1.6em;
}

.favoriten-seite h1 .anzahl {
    font-weight: 400;
    font-size: 0.7em;
    color: #888;
}

.favoriten-seite-actions {
    display: flex;
    gap: 0.8em;
}

.favoriten-zurueck-btn {
    background: #f0f0f0;
    border: 1px solid #ccc;
    padding: 0.5em 1em;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.95em;
    transition: background 0.2s;
}

.favoriten-zurueck-btn:hover {
    background: #e8e8e8;
}

.favoriten-trash-btn {
    background: var(--color-favorit-bg);
    border: 1px solid #dcc;
    padding: 0.5em 1em;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.95em;
    color: #a44;
    transition: background 0.2s;
}

.favoriten-trash-btn:hover {
    background: var(--color-favorit-bg-hover);
}

.favoriten-seite-spalten {
    display: flex;
    gap: 2em;
}

.favoriten-spalte {
    flex: 1;
    min-width: 0;
}

.favoriten-spalte h2 {
    font-size: 1.2em;
    margin: 0 0 1em 0;
    padding-bottom: 0.5em;
    border-bottom: 1px solid #ddd;
}

.favoriten-spalte-kaufen h2 {
    color: #2a7;
}

.favoriten-spalte-mieten h2 {
    color: #47a;
}

.favoriten-spalte h2 .spalte-anzahl {
    font-weight: 400;
    font-size: 0.8em;
    color: #888;
}

.favoriten-spalte-liste {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.favorit-seite-item {
    border-bottom: 1px solid #eee;
    padding-bottom: 1em;
    transition: opacity 0.3s, transform 0.3s;
}

.favorit-seite-item:last-child {
    border-bottom: none;
}

@media (max-width: 800px) {
    .favoriten-seite-spalten {
        flex-direction: column;
    }

    .favoriten-seite-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

.favoriten-vollansicht {
    padding: 1em;
}

.favoriten-vollansicht h1 {
    color: var(--color-favorit);
    margin-bottom: 0.3em;
}

.favoriten-vollansicht h1 .anzahl {
    font-weight: 400;
    font-size: 0.7em;
    color: #666;
}

.favoriten-vollansicht .favoriten-info {
    color: #666;
    margin-bottom: 1em;
}

.favoriten-zurueck-btn {
    background: #f0f0f0;
    border: 1px solid #ccc;
    padding: 0.5em 1em;
    border-radius: 4px;
    cursor: pointer;
    margin-bottom: 1.5em;
    font-size: 0.95em;
}

.favoriten-zurueck-btn:hover {
    background: #e8e8e8;
}

.favoriten-liste {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.favorit-item {
    border-bottom: 1px solid #eee;
    padding-bottom: 1em;
}

.favorit-nicht-gefunden {
    background: #fff8f8;
    border: 1px dashed #dcc;
    border-radius: 4px;
    padding: 1em;
}

.favorit-fehler p {
    color: #966;
    margin: 0 0 0.3em 0;
}

.favorit-fehler small {
    color: #999;
    font-size: 0.85em;
}

@media (max-width: 949px) {
    .idx0-frisch-favoriten-wrap {
        flex-direction: column;
    }

    .idx0-frisch-spalte,
    .idx0-favoriten-spalte {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
    }

    .error-404-toporte .idx0-statistik-items {
        column-count: 1;
    }

    .idx0-suchfeld-container {
        padding: 1em;
        margin: 0 -0.5em 1.5em -0.5em;
        border-radius: 0;
    }

    .idx0-suchbar-wrapper {
        max-width: 100%;
    }

    .idx0-liste {
        min-width: 100%;
        overflow: hidden;
    }
}

@media (max-width: 810px) {

    .idx0-liste-items article,
    .idx0-aside-items article {
        width: 100%;
        max-width: calc(100vw - 2em);
    }

    .idx0-suchbar-input {
        font-size: 0.95em;
    }
    .idx0-suchbar-select {
        font-size: 0.9em;
        padding: 0.6em 0.7em;
    }
    .idx0-suchbar-button {
        padding: 0 1em;
        font-size: 0.9em;
    }

    .idx0-suchfeld-container h2 {
        font-size: 1.2em;
    }

    .idx0-aside-items {
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 700px) {
    .idx0-liste-items article,
    .idx0-aside-items article {
        width: 100%;
        max-width: calc(100vw - 2em);
        margin-bottom: 1em;
    }

    .idx0-suchfeld-container {
        padding: 0.8em;
    }

    .idx0-suchfeld-container h2 {
        font-size: 1.1em;
        margin-bottom: 0.5em;
    }

    .idx0-suchfeld-hint {
        font-size: 0.8em;
    }

    .site-title a {
        font-size: 2.5em;
    }

    .claim {
        font-size: 0.85em;
    }
}

.main2-andere-vermarktung {
    margin-top: 2em;
}

.main2-andere-vermarktung h2 {
    margin-bottom: 0;
    font-size: 1em;
    color: #374151;
}

.vermarktung-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
}

.vermarktung-grid .vermarktungsart-block {
    flex: 1 1 45%;
    min-width: 250px;
}

.tpl-aside2-andere-vermarktung {
    margin-top: 1em;
}

.tpl-aside2-andere-vermarktung .vermarktungsart-block {
    margin-bottom: 2em;
}

.tpl-aside2-andere-vermarktung .vermarktungsart-block h3 {
    font-size: 1em;
    margin-bottom: 0.5em;
    background-color: #00000014;
    padding: 0.4em 0.6em;
    border-radius: 4px;
}

.tpl-aside2-andere-vermarktung .vermarktungsart-block h3 a {
    display: block;
    text-decoration: none;
    color: inherit;
}

.tpl-aside2-andere-vermarktung .vermarktungsart-block h3 a:hover {
    text-decoration: underline;
}

.tpl-aside2-andere-vermarktung .objektart-liste {
    list-style: none;
    padding-left: 0.8em;
    margin: 0;
}

.tpl-aside2-andere-vermarktung .objektart-liste li {
    margin-bottom: 0.3em;
}

.tpl-aside2-andere-vermarktung .objektart-liste li a {
    display: block;
    padding: 0.2em 0.3em;
    text-decoration: none;
    color: #3245A3;
    border-radius: 3px;
    transition: background-color 0.15s ease;
}

.tpl-aside2-andere-vermarktung .objektart-liste li a:hover {
    background-color: #00000010;
    text-decoration: underline;
}

@media (max-width: 768px) {
    .vermarktung-grid {
        flex-direction: column;
    }

    .vermarktung-grid .vermarktungsart-block {
        flex: 1 1 100%;
    }

    .main2-andere-vermarktung {
        padding: 1em;
    }
}

.Index_ObjektlisteOrt article .Preis,
.Index_ObjektlisteNachbarorte article .Preis,
.Index_ObjektlisteAndereUnterkategorien article .Preis,
.idx0-liste-items article .Preis,
.idx0-aside-items article .Preis {
    float: right;
}

.Index_ObjektlisteOrt article .Ort,
.Index_ObjektlisteNachbarorte article .Ort,
.Index_ObjektlisteAndereUnterkategorien article .Ort,
.idx0-liste-items article .Ort,
.idx0-aside-items article .Ort {
    clear: both;
}

.dynamische-objektliste .dyn-loaded article .Preis {
    float: right;
}

.dynamische-objektliste .dyn-loaded article .Ort {
    display: inline;
}

.dynamische-objektliste .entfernung-ort-wrapper {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 0.3em;
}

.dynamische-objektliste .entfernung-anzeige {
    font-weight: 600;
    color: var(--color-primary-dark);
    white-space: nowrap;
}

@media (max-width: 700px) {

    .Index_ObjektlisteOrt article .Preis,
    .Index_ObjektlisteNachbarorte article .Preis,
    .Index_ObjektlisteAndereUnterkategorien article .Preis,
    .idx0-liste-items article .Preis,
    .idx0-aside-items article .Preis {
        font-size: 2em;

    }

    .dynamische-objektliste .dyn-loaded article .Preis {
        font-size: 1em;
        padding: 0.3em 0.5em;
    }
}

article.geloescht {
    background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
    border: 2px solid #dc3545;
    border-radius: 8px;
    opacity: 0.85;
    position: relative;
}

article.geloescht a {
    color: #721c24;
    text-decoration: none;
    cursor: default;
    pointer-events: none;
}

.geloescht-titel h4 {
    color: #721c24;
    font-style: italic;
}

.geloescht-hinweis {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5em;
    min-height: 120px;
    background: rgba(220, 53, 69, 0.1);
    border-radius: 4px;
    margin: 0.5em;
}

.geloescht-icon {
    font-size: 3em;
    color: #dc3545;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 0.3em;
}

.geloescht-text {
    font-size: 0.9em;
    color: #721c24;
    text-align: center;
    font-weight: 500;
}

.exposee-geloescht-banner {
    background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
    color: white;
    padding: 2em;
    text-align: center;
    border-radius: 8px;
    margin: 1em 0;
}

.exposee-geloescht-banner h2 {
    margin: 0 0 0.5em 0;
    font-size: 1.5em;
}

.exposee-geloescht-banner p {
    margin: 0;
    opacity: 0.9;
}

.fresh-liste-item {
    margin-bottom: 0;
}
.fresh-liste-items {  }

.error-404-suche {  }
.error-404-text {  }
.error-404-alternativen {  }
.alternativen-liste {  }
.alternativ-item {  }
.cta-button {  }

.anbieter-header {
    padding: 1.5em;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    margin-bottom: 2em;
}

.anbieter-header > h1 {
    margin: 0 0 1em 0;
    font-size: 1.6em;
    color: #222;
    background: #9bc3f955;
}

.anbieter-header-body {
    display: flex;
    gap: 1.5em;
}

.anbieter-logo-container {
    flex: 0 0 192px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.anbieter-logo {
    width: 192px;
    height: 144px;
    object-fit: contain;
    border-radius: 8px;
    background: white;
    padding: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.anbieter-logo-placeholder {
    width: 192px;
    height: 144px;
    border-radius: 8px;
    overflow: hidden;
}

.anbieter-logo-placeholder .placeholder-svg {
    width: 100%;
    height: 100%;
}

.anbieter-rating-below-logo {
    display: block;
    width: 100%;
    max-width: 192px;
    padding-inline: 8px;
    box-sizing: border-box;
    margin-top: 0.5em;
    line-height: 1.2;
    text-align: center;
}

.anbieter-rating-below-logo .anbieter-rating {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.08em;
    max-width: 100%;
    font-size: 1.2em;
    vertical-align: top;
    text-align: start;
}

.anbieter-rating-below-logo .anbieter-rating .fullStar,
.anbieter-rating-below-logo .anbieter-rating .lightStar,
.anbieter-rating-below-logo .anbieter-rating .basicStar {
    float: none;
    flex-shrink: 0;
}

.anbieter-info {
    flex: 1;
    min-width: 0;
}

.anbieter-adresse-row {
    margin-bottom: 0.5em;
}

.anbieter-adresse-row .anbieter-adresse {
    color: #555;
    font-size: 0.95em;
    margin-bottom: 0;
}

.anbieter-telefon,
.anbieter-telefon-zentrale,
.anbieter-email-zentrale,
.anbieter-website,
.contact-phone,
.contact-email-zeile {
    display: flex;
    align-items: center;
    gap: 0.9em;
    margin-bottom: 0.4em;
    color: #555;
    font-size: 0.95em;
}

.contact-email-zeile {
    flex-wrap: nowrap;
    white-space: nowrap;
}

.contact-email-zeile .contact-email,
.contact-email-zeile .contact-email-feedback {
    display: inline;
    margin-top: 0;
}

.anbieter-telefon svg,
.anbieter-telefon-zentrale svg,
.anbieter-email-zentrale svg,
.anbieter-website svg,
.contact-phone svg,
.contact-email-zeile svg {
    color: #888;
    flex-shrink: 0;
}

.anbieter-telefon a,
.anbieter-telefon-zentrale a,
.anbieter-website a,
.contact-phone a,
.contact-email-zeile a {
    color: #0066cc;
    text-decoration: underline;
}

.anbieter-telefon a:hover,
.anbieter-telefon-zentrale a:hover,
.anbieter-website a:hover,
.contact-phone a:hover,
.contact-email-zeile a:hover {
    color: #004a99;
    text-decoration: underline;
}

.anbieter-stats {
    margin-top: 1em;
}

.stat-line {
    color: #666;
    font-size: 0.95em;

}

.stat-line strong {
    color: #0066cc;
    font-size: 1.1em;
}

.stat-filter-link {
    color: inherit;
    text-decoration: none;
}

.stat-filter-link:hover {
    text-decoration: underline;
    color: #0066cc;
}

.stat-filter-link strong {
    color: #0066cc;
}

.kontakt-label {
    color: #999;
    font-size: 0.85em;
}

.stat-item {
    color: #666;
    font-size: 0.95em;
}

.stat-item strong {
    color: #0066cc;
    font-size: 1.1em;
}

.makler-section {
    margin-bottom: 2em;
}

.makler-section h2 {
    font-size: 1.3em;
    color: #333;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid #e0e0e0;
}

.makler-liste {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.makler-liste-wrap {
    position: relative;
    --makler-collapsed-height: 120px;
}

.makler-liste-wrap.is-collapsed {
    max-height: var(--makler-collapsed-height);
    overflow: hidden;
}

.makler-liste-wrap.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: min(96px, calc(var(--makler-collapsed-height) * 0.75));
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.94) 60%, #fff 100%);
    pointer-events: none;
}

.makler-liste-wrap.is-expanded {
    max-height: none;
    overflow: visible;
}

.makler-liste-toggle {
    margin-top: 0.9em;
    border: 1px solid #d2dbe7;
    border-radius: 999px;
    background: #f5f8fc;
    color: #1f4f86;
    padding: 0.45em 0.95em;
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.makler-liste-toggle:hover {
    background: #eaf1fb;
    border-color: #9fb8db;
    color: #143a66;
}

.makler-liste-toggle:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.makler-card {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}

.makler-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.makler-link {
    display: flex;
    gap: 1em;
    padding: 1em;
    text-decoration: none;
    color: inherit;
}

.makler-foto-container {
    flex: 0 0 192px;
}

.makler-foto {
    width: 192px;
    height: 144px;
    object-fit: cover;
    border-radius: 8px;
}

.makler-foto-placeholder {
    width: 192px;
    height: 144px;
    border-radius: 8px;
    overflow: hidden;
}

.makler-foto-placeholder svg {
    width: 100%;
    height: 100%;
}

.makler-info {
    flex: 1;
    min-width: 0;
}

.makler-name {
    margin: 0 0 0.3em 0;
    font-size: 1.05em;
    color: #222;
    background: #9bc3f955;
    padding: 0.2em 0.5em;
    margin-left: -0.5em;
    border-radius: 4px;
}

.makler-adresse,
.makler-telefon,
.makler-email {
    display: flex;
    align-items: center;
    gap: 0.4em;
    font-size: 0.85em;
    color: #666;
    margin-bottom: 0.2em;
}

.makler-adresse svg,
.makler-telefon svg,
.makler-email svg {
    color: #999;
    flex-shrink: 0;
}

.makler-stats {
    margin-top: 0.5em;
    display: flex;
    gap: 0.5em;
}

.stat-badge {
    background: #f0f0f0;
    padding: 0.2em 0.6em;
    border-radius: 12px;
    font-size: 0.8em;
    color: #555;
}

.objekte-section {
    margin-bottom: 2em;
}

.objekte-section h2 {
    font-size: 1.3em;
    color: #333;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid #e0e0e0;
}

.objekte-liste {
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.loading-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    padding: 2em;
    color: #666;
}

.spinner {
    width: 24px;
    height: 24px;
    border: 3px solid #e0e0e0;
    border-top-color: #0066cc;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.share-btn {
    background: #f0f0f0;
    border: none;
    padding: 0.5em;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.share-btn:hover {
    background: #e0e0e0;
}

.anbieter-inc {
}

.idx-anbieter-header {
    display: flex;
    gap: 1em;
    padding: 0.8em;
    border-radius: 8px;
    transition: background 0.2s;
}

.idx-anbieter-header[data-href] {
    cursor: pointer;
}

.idx-anbieter-header[data-href]:hover {
    background: #f0f4f8;
}

.idx-anbieter-firma a {
    color: inherit;
    text-decoration: none;
}

.idx-anbieter-firma a:hover {
    text-decoration: underline;
}

.idx-anbieter-logo {
}

.idx-anbieter-logo img {
    border-radius: 8px;
    background: white;
    object-fit: contain;
}

.idx-anbieter-logo .placeholder-svg {
    border-radius: 8px;
}

.idx-anbieter-info {
    flex: 1;
    min-width: 0;
}

.idx-anbieter-firma {
    font-weight: 600;
    font-size: 1.05em;
    color: var(--color-primary);
    background: #9bc3f955;
    padding: 0.15em 0.5em;
    border-radius: 4px;
    margin-bottom: 0.3em;
}

.idx-anbieter-stats-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5em;
    margin-bottom: 0.2em;
}

.idx-anbieter-objekt-anzahl {
    font-size: 0.9em;
    color: #555;
}

.idx-anbieter-rating {
    flex-shrink: 0;
}

.idx-anbieter-adresse {
    font-size: 0.82em;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.idx-anbieter-orte {
    font-size: 0.78em;
    color: #555;
    line-height: 1.4;
    margin-top: 0.2em;
}

.idx-anbieter-orte-mehr {
    color: #555;
    white-space: nowrap;
}

.idx-anbieter-orte a {
    color: #1a73a7;
    text-decoration: none;
    white-space: nowrap;
}

.idx-anbieter-orte a:hover {
    text-decoration: underline;
    color: #0d5a8a;
}

.makler-header {
    padding: 1.5em;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    margin-bottom: 2em;
}

.makler-header > h1 {
    margin: 0 0 1em 0;
    font-size: 1.5em;
    color: #222;
    background: #9bc3f955;
}

.makler-header-body {
    display: flex;
    gap: 1.5em;
}

.makler-foto-container-page {
    flex: 0 0 192px;
}

.makler-foto-page {
    width: 192px;
    height: 144px;
    object-fit: cover;
    border-radius: 8px;
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.makler-foto-placeholder-page {
    width: 192px;
    height: 144px;
    border-radius: 8px;
    overflow: hidden;
}

.makler-foto-placeholder-page .placeholder-svg {
    width: 100%;
    height: 100%;
}

.makler-info-page {
    flex: 1;
    min-width: 0;
}

.makler-info-page h1 {
    margin: 0 0 0.3em 0;
    font-size: 1.5em;
    color: #222;
}

.makler-firma-link {
    margin-bottom: 0.8em;
    color: #555;
}

.makler-firma-link a {
    color: #0066cc;
    text-decoration: none;
}

.makler-firma-link a:hover {
    text-decoration: underline;
}

.makler-adresse-page,
.makler-telefon-page,
.makler-email-page {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-bottom: 0.4em;
    color: #555;
    font-size: 0.95em;
}

.makler-adresse-page svg,
.makler-telefon-page svg,
.makler-email-page svg {
    color: #888;
    flex-shrink: 0;
}

.makler-telefon-page a {
    color: #0066cc;
    text-decoration: none;
}

.makler-telefon-page a:hover {
    text-decoration: underline;
}

.makler-stats-page {
    margin-top: 1em;
    display: flex;
    gap: 1.5em;
}

@media (max-width: 950px) {
    .anbieter-header-body {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .anbieter-header > h1 {
        text-align: center;
    }

    .anbieter-adresse,
    .anbieter-telefon,
    .anbieter-telefon-zentrale,
    .anbieter-email-zentrale,
    .anbieter-website,
    .contact-phone,
    .contact-email-zeile {
        justify-content: center;
    }

    .anbieter-stats {
        justify-content: center;
    }

    .makler-header-body {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .makler-header > h1 {
        text-align: center;
    }

    .makler-adresse-page,
    .makler-telefon-page,
    .makler-email-page {
        justify-content: center;
    }

    .makler-stats-page {
        justify-content: center;
    }
}

@media (max-width: 600px) {
    .makler-link {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .makler-info {
        text-align: center;
    }

    .makler-adresse,
    .makler-telefon,
    .makler-email {
        justify-content: center;
    }

    .makler-stats {
        justify-content: center;
    }
}

.makler-header-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1em;
    flex-wrap: wrap;
    background: #00000014;
}

.makler-header-row h3 {
    margin: 0;
}

.makler-alle-link {
    font-size: 0.9em;
    color: #2563eb;
    text-decoration: none;
    white-space: nowrap;
}

.makler-alle-link:hover {
    text-decoration: underline;
}

.orts-anbieter-header {
    margin-bottom: 1.5em;
}

.orts-anbieter-header h1 {
    font-size: 1.5em;
    margin: 0 0 0.3em 0;
    color: #1a1a2e;
}

.orts-anbieter-header h2 {
    font-size: 1em;
    margin: 0 0 0.5em 0;
    color: #555;
    font-weight: normal;
}

.orts-anbieter-beschreibung {
    font-size: 0.9em;
    color: #666;
    line-height: 1.5;
    margin: 0;
}

.keine-anbieter {
    padding: 2em;
    text-align: center;
    color: #888;
    font-style: italic;
}

.such-anbieter-layout {
    display: flex;
    max-width: 70em;
    gap: 2em;
    margin: 0 auto;
    padding: 0 1em;
}

.such-anbieter-main {
    flex: 1 1 auto;
    min-width: 0;
}

.such-anbieter-aside {
    flex: 0 0 18em;
    width: 18em;
}

.such-anbieter-suche {
    text-align: center;
    padding: 2.5em 1em 2em;
    background: linear-gradient(135deg, #f0f4f8 0%, #e8eef5 100%);
    border-radius: 12px;
    margin-bottom: 2em;
}

.such-anbieter-suche h1 {
    font-size: 1.8em;
    margin: 0 0 0.5em 0;
    color: #1a1a2e;
}

.such-anbieter-intro {
    font-size: 1.05em;
    color: #555;
    margin: 0 0 1.5em 0;
    line-height: 1.5;
}

.such-anbieter-suchfeld-wrapper {
    max-width: 32em;
    margin: 0 auto;
}

.such-anbieter-suchfeld {
    position: relative;
}

.such-anbieter-input {
    width: 100%;
    padding: 0.9em 1.2em;
    font-size: 1.1em;
    border: 2px solid #cbd5e1;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.such-anbieter-input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.such-anbieter-stats {
    font-size: 0.9em;
    color: #888;
    margin: 1.2em 0 0 0;
}

.such-anbieter-zusatz:empty {
    display: none;
}

.such-anbieter-zusatz {
    margin-bottom: 2em;
}

.such-anbieter-anmeldung {
    margin-bottom: 2.5em;
    padding-top: 0.5em;
}

.such-anbieter-anmeldung h2 {
    font-size: 1.3em;
    margin: 0 0 0.3em 0;
    color: #1a1a2e;
}

.such-anbieter-anmeldung-intro {
    font-size: 0.9em;
    color: #666;
    margin: 0 0 1.2em 0;
}

.anmeldung-weiche {
    display: flex;
    gap: 1em;
    flex-wrap: wrap;
}

.anmeldung-karte {
    flex: 1 1 220px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 1.4em 1.2em;
    background: #f8fafc;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.6em;
}

.anmeldung-karte--sofort {
    border-color: #2563eb;
    background: #eff6ff;
}

.anmeldung-karte-icon {
    font-size: 2em;
    line-height: 1;
}

.anmeldung-karte h3 {
    font-size: 1.05em;
    color: #1a1a2e;
    margin: 0;
}

.anmeldung-karte-beschreibung {
    font-size: 0.88em;
    color: #555;
    line-height: 1.5;
    margin: 0;
}

.anmeldung-vorteile {
    list-style: none;
    padding: 0;
    margin: 0.2em 0 0.4em 0;
}

.anmeldung-vorteile li {
    font-size: 0.85em;
    padding: 0.2em 0;
    line-height: 1.4;
}

.anmeldung-vorteile .vorteil {
    color: #16a34a;
}

.anmeldung-vorteile .nachteil {
    color: #6b7280;
}

.anmeldung-karte-hinweis {
    font-size: 0.82em;
    color: #2563eb;
    margin: 0;
}

.anmeldung-btn {
    display: block;
    text-align: center;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 0.95em;
    font-weight: bold;
    text-decoration: none;
    border: none;
    cursor: pointer;
    margin-top: auto;
    transition: background 0.2s, color 0.2s;
}

.anmeldung-btn--aktiv {
    background: #2563eb;
    color: #fff;
}

.anmeldung-btn--aktiv:hover {
    background: #1d4ed8;
    color: #fff;
}

.such-anbieter-top {
    margin-bottom: 2em;
}

.such-anbieter-top h2 {
    font-size: 1.3em;
    margin: 0 0 0.3em 0;
    color: #1a1a2e;
}

.such-anbieter-top-beschreibung {
    font-size: 0.9em;
    color: #666;
    margin: 0 0 1em 0;
}

.such-anbieter-top-liste {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

.such-anbieter-info-box,
.such-anbieter-vorteile-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.2em;
    margin-bottom: 1em;
}

.such-anbieter-info-box h3,
.such-anbieter-vorteile-box h3 {
    font-size: 1em;
    margin: 0 0 0.6em 0;
    color: #1a1a2e;
}

.such-anbieter-info-box p {
    font-size: 0.9em;
    color: #555;
    line-height: 1.5;
    margin: 0 0 0.6em 0;
}

.such-anbieter-info-box p:last-child {
    margin-bottom: 0;
}

.such-anbieter-vorteile-liste {
    list-style: none;
    padding: 0;
    margin: 0;
}

.such-anbieter-vorteile-liste li {
    font-size: 0.9em;
    color: #555;
    padding: 0.4em 0 0.4em 1.5em;
    position: relative;
    line-height: 1.4;
}

.such-anbieter-vorteile-liste li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: #22c55e;
    font-weight: bold;
}

.menu a.active {
    font-weight: bold;
    color: #2563eb;
}

.blog-post {  }
.blog-index {  }
.blog-breadcrumb {  margin-bottom: 1.5em; font-size: 0.9em; color: #666; }
.blog-breadcrumb a {  color: #2a7ae2; text-decoration: none; }
.blog-breadcrumb a:hover {  text-decoration: none; color: var(--link-hover-color); }
.blog-article {  }
.blog-header {  margin-bottom: 2em; }
.blog-header h1 {  font-size: 1.8em; line-height: 1.3; margin-bottom: 0.3em; }
.blog-meta {  font-size: 0.9em; color: #888; }
.blog-meta time {  }
.blog-meta .blog-author {  margin-left: 1em; }
.blog-content {  line-height: 1.7; }
.blog-content h2 {  font-size: 1.4em; margin: 1.8em 0 0.6em 0; padding-bottom: 0.3em; border-bottom: 1px solid #eee; }
.blog-content p {  margin-bottom: 1em; }
.blog-content ol, .blog-content ul {  margin: 0.8em 0 1em 1.5em; }
.blog-content li {  margin-bottom: 0.4em; }
.blog-content code {  background: #f4f4f4; padding: 0.15em 0.4em; border-radius: 3px; font-size: 0.9em; }
.blog-lead {  font-size: 1.1em; color: #444; line-height: 1.6; margin-bottom: 1.5em; }
.blog-toc {  background: #f8f9fa; padding: 1.2em 1.5em; border-radius: 6px; margin-bottom: 2em; }
.blog-toc h2 {  font-size: 1.1em; margin: 0 0 0.6em 0; border: none; padding: 0; }
.blog-toc ul {  margin: 0; padding-left: 1.2em; }
.blog-toc li {  margin-bottom: 0.3em; }
.blog-toc a {  color: #2a7ae2; text-decoration: none; }
.blog-toc a:hover {  text-decoration: underline; }
.blog-footer {  margin-top: 3em; padding-top: 1.5em; border-top: 1px solid #eee; }
.blog-disclaimer {  font-size: 0.85em; color: #888; font-style: italic; margin-bottom: 1em; }
.blog-back-link {  color: #2a7ae2; text-decoration: none; font-weight: 600; }
.blog-back-link:hover {  text-decoration: underline; }
.blog-intro {  font-size: 1.1em; color: #555; margin-bottom: 2em; }
.blog-post-list {  }
.blog-card {  background: #fff; border: 1px solid #e8e8e8; border-radius: 8px; padding: 1.5em; margin-bottom: 1.2em; transition: box-shadow 0.2s ease; }
.blog-card:hover {  box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
.blog-card h2 {  font-size: 1.3em; margin: 0 0 0.4em 0; }
.blog-card h2 a {  color: #222; text-decoration: none; }
.blog-card h2 a:hover {  color: #2a7ae2; }
.blog-card-meta {  font-size: 0.85em; color: #888; margin-bottom: 0.6em; }
.blog-card-excerpt {  color: #555; line-height: 1.5; margin-bottom: 0.8em; }
.blog-card-link {  color: #2a7ae2; text-decoration: none; font-weight: 600; font-size: 0.95em; }
.blog-card-link:hover {  text-decoration: underline; }

@media (max-width: 950px) {
    .such-anbieter-layout {
        flex-direction: column;
    }
    .such-anbieter-aside {
        flex: none;
        width: 100%;
    }
    .such-anbieter-suche h1 {
        font-size: 1.4em;
    }
}

.filter-suche-speichern {
    margin-top: 0.8em;
    padding-top: 0.8em;
    border-top: 1px solid #e0e0e0;
    text-align: center;
    padding-bottom: 0.8em;
    background: #ffd200f2;
    font-weight: bolder;
    margin-bottom: 1em;
    border-bottom: 4px solid hsl(100 57% 45% / 1);
}
.filter-suche-speichern-link {
    color: var(--color-primary-dark, #3245a3);
    text-decoration: none;
    font-size: 0.9em;
    display: inline-block;
}
.filter-suche-speichern-link:hover {
    text-decoration: underline;
}

.meine-suchen-h1 {
    color: var(--color-favorit);
    margin: 0 0 0.35em 0;
    font-size: 1.6em;
    padding-bottom: 0.5em;
    border-bottom: 2px solid var(--color-favorit);
}
.meine-suchen-lead {
    margin: 0 0 1.2em 0;
    font-size: 1em;
    color: var(--color-text-muted);
    line-height: 1.5;
}

.meine-suchen-datenschutz {
    background: var(--color-favorit-bg);
    border: 1px solid var(--color-favorit-titel);
    border-radius: 6px;
    padding: 0.9em 1.2em;
    margin-bottom: 1.8em;
    font-size: 0.95em;
    color: var(--color-text);
    line-height: 1.5;
}
.meine-suchen-datenschutz p {
    margin: 0;
}

.meine-suchen-liste {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(22em, 1fr));
    gap: 1.2em;
    margin-top: 0.5em;
}

.meine-suchen-leer {
    color: #555;
    font-size: 1em;
    line-height: 1.6;
}

.suche-karte {
    background: var(--color-favorit-bg);
    border: 1px solid var(--color-favorit-titel);
    border-radius: 8px;
    padding: 1.1em 1.2em 1em 1.2em;
    transition: box-shadow 0.2s ease;
    position: relative;
}
.suche-karte:hover {
    box-shadow: 0 2px 10px rgba(223, 51, 67, 0.12);
}

.suche-karte-kopf {
    display: flex;
    align-items: flex-start;
    gap: 0.5em;
    margin-bottom: 0.6em;
}
.suche-karte-titel {
    flex: 1;
    font-size: 1.05em;
    margin: 0;
    line-height: 1.3;
}
.suche-karte-link {
    color: var(--color-favorit-hover);
    text-decoration: none;
    font-weight: 600;
}
.suche-karte-link:hover {
    text-decoration: underline;
    color: var(--color-favorit);
}

.suche-karte-loeschen {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    font-size: 1em;
    padding: 0 0.2em;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 0.1em;
}
.suche-karte-loeschen:hover {
    color: #c0392b;
}

.suche-karte-body {
    font-size: 0.88em;
    color: var(--color-text-muted);
    line-height: 1.5;
}
.suche-karte-filter {
    margin: 0 0 0.25em 0;
    color: var(--color-text-muted);
}
.suche-karte-sort {
    margin: 0 0 0.25em 0;
    color: var(--color-text-light);
    font-style: italic;
}
.suche-karte-datum {
    margin: 0 0 0.4em 0;
    color: var(--color-text-lighter);
    font-size: 0.9em;
}
.suche-karte-anzahl {
    margin: 0.4em 0 0 0;
    font-weight: 600;
    color: var(--color-primary-dark);
    font-size: 0.95em;
}
.suche-anzahl-zahl {
    color: var(--color-favorit);
}
.suche-spinner {
    color: var(--color-text-light);
    font-style: italic;
    font-weight: 400;
}

@media (max-width: 650px) {
    .meine-suchen-liste {
        grid-template-columns: 1fr;
    }
}

.suche-karte {
    cursor: pointer;
}
.suche-karte-loeschen {
    cursor: default;
}

.suche-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1em;
}
.suche-modal-box {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.22);
    padding: 1.8em 2em 1.5em 2em;
    max-width: 420px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.7em;
}
.suche-modal-titel {
    margin: 0 0 0.2em 0;
    font-size: 1.2em;
    color: #1a3a6a;
}
.suche-modal-label {
    font-size: 0.95em;
    color: #333;
}
.suche-modal-input {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid #a0b8d8;
    border-radius: 6px;
    padding: 0.5em 0.7em;
    font-size: 1em;
    color: #1a3a6a;
    background: #f4f8ff;
    outline: none;
    transition: border-color 0.15s;
}
.suche-modal-input:focus {
    border-color: #3265c3;
}
.suche-modal-dsgvo {
    margin: 0;
    font-size: 0.82em;
    color: #4a7a4a;
    background: #f0faf0;
    border-radius: 5px;
    padding: 0.4em 0.6em;
    border: 1px solid #b8dab8;
}
.suche-modal-buttons {
    display: flex;
    gap: 0.7em;
    justify-content: flex-end;
    margin-top: 0.3em;
}
.suche-modal-btn-speichern {
    background: #2563eb;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.5em 1.2em;
    font-size: 1em;
    cursor: pointer;
    font-weight: 600;
    transition: background 0.15s;
}
.suche-modal-btn-speichern:hover {
    background: #1a4ab8;
}
.suche-modal-btn-abbrechen {
    background: #f0f0f0;
    color: #444;
    border: none;
    border-radius: 6px;
    padding: 0.5em 1em;
    font-size: 1em;
    cursor: pointer;
    transition: background 0.15s;
}
.suche-modal-btn-abbrechen:hover {
    background: #e0e0e0;
}

.suche-erfolg-toast {
    position: fixed;
    bottom: 1.5em;
    right: 1.5em;
    z-index: 9100;
    background: #fff;
    border: 1.5px solid #4caf50;
    border-radius: 10px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.18);
    padding: 0.9em 1.2em;
    max-width: 340px;
    transition: opacity 0.4s;
}
.suche-erfolg-inhalt {
    display: flex;
    align-items: center;
    gap: 0.7em;
    flex-wrap: wrap;
}
.suche-erfolg-icon {
    font-size: 1.3em;
}
.suche-erfolg-text {
    font-weight: 600;
    color: #1a5a1a;
}
.suche-erfolg-link {
    color: var(--color-favorit-hover);
    text-decoration: underline;
    font-size: 0.9em;
    white-space: nowrap;
}
.suche-erfolg-link:hover {
    color: var(--color-favorit);
}
.suche-erfolg-ok {
    background: #e8f5e9;
    border: 1px solid #4caf50;
    border-radius: 5px;
    padding: 0.2em 0.8em;
    cursor: pointer;
    font-size: 0.9em;
    color: #1a5a1a;
    margin-left: auto;
    transition: background 0.15s;
}
.suche-erfolg-ok:hover {
    background: #c8e6c9;
}

.suche-leer-container {
    text-align: center;
    padding: 2em 1em;
}
.suche-leer-animation {
    position: relative;
    display: inline-block;
    width: 280px;
    height: 160px;
    margin: 0 auto 1.2em auto;
    background: var(--color-favorit-bg);
    border-radius: 10px;
    border: 1px solid var(--color-favorit-titel);
    overflow: hidden;
}
.suche-anim-filterzeile {
    position: absolute;
    top: 20px;
    left: 20px;
    right: 20px;
    background: #fff;
    border: 1px solid #dde;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 0.85em;
}
.suche-anim-link {
    color: var(--color-favorit-hover);
    cursor: default;
    text-decoration: underline;
    animation: suche-anim-highlight 3.5s ease-in-out infinite;
}
@keyframes suche-anim-highlight {
    0%, 60%   { background: none; }
    70%, 90%  { background: var(--color-favorit-titel); border-radius: 3px; }
    100%      { background: none; }
}
.suche-anim-dialog {
    position: absolute;
    bottom: 10px;
    left: 20px;
    right: 20px;
    background: #fff;
    border: 1.5px solid var(--color-favorit-titel);
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 0.78em;
    animation: suche-anim-dialog-fade 3.5s ease-in-out infinite;
}
@keyframes suche-anim-dialog-fade {
    0%, 50%   { opacity: 0; transform: translateY(6px); }
    65%, 95%  { opacity: 1; transform: translateY(0); }
    100%      { opacity: 0; }
}
.suche-anim-dialog-titel {
    color: var(--color-text);
    font-weight: 600;
    margin-bottom: 4px;
}
.suche-anim-eingabe {
    background: var(--color-favorit-bg);
    border: 1px solid var(--color-favorit-titel);
    border-radius: 4px;
    padding: 3px 6px;
    min-height: 1.4em;
    color: var(--color-primary-dark);
    font-family: inherit;
}
.suche-anim-cursor {
    animation: blink 0.8s step-end infinite;
    color: var(--color-favorit);
    font-weight: bold;
}
@keyframes blink {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0; }
}
.suche-anim-btn-zeile {
    text-align: right;
    margin-top: 4px;
}
.suche-anim-btn {
    background: var(--color-favorit);
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 0.85em;
    pointer-events: none;
    cursor: default;
}
.suche-anim-maus {
    position: absolute;
    width: 22px;
    height: 33px;
    animation: suche-maus-bewegen 3.5s ease-in-out infinite;
    filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.3));
    pointer-events: none;
}
@keyframes suche-maus-bewegen {
    0%    { top: 50px;  left: 60px; }
    40%   { top: 30px;  left: 80px; }
    55%   { top: 28px;  left: 80px; }
    65%   { top: 90px;  left: 80px; }
    95%   { top: 95px;  left: 200px; }
    100%  { top: 50px;  left: 60px; }
}
.suche-leer-text {
    color: var(--color-text-muted);
    font-size: 0.95em;
    line-height: 1.6;
    max-width: 380px;
    margin: 0 auto;
}

.fav-leer-container {
    text-align: center;
    padding: 2em 1em;
}
.fav-leer-animation {
    position: relative;
    display: inline-block;
    width: 240px;
    height: 120px;
    margin: 0 auto 1.2em auto;
    background: #fff8f8;
    border-radius: 10px;
    border: 1px solid #f0c8c8;
    overflow: hidden;
}
.fav-anim-zeile {
    position: absolute;
    top: 30px;
    left: 20px;
    right: 20px;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 0.6em;
    font-size: 0.85em;
}
.fav-anim-titel {
    flex: 1;
    color: #444;
    white-space: nowrap;
    overflow: hidden;
}
.fav-anim-herz {
    font-size: 1.3em;
    animation: fav-herz-klick 3s ease-in-out infinite;
    cursor: default;
}
@keyframes fav-herz-klick {
    0%, 40%   { content: 'â™¡'; color: #aaa; }
    50%, 55%  { transform: scale(1.3); }
    60%, 100% { color: #e53e3e; }
}
.fav-anim-maus {
    position: absolute;
    width: 20px;
    height: 30px;
    animation: fav-maus-bewegen 3s ease-in-out infinite;
    filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.25));
    pointer-events: none;
}
@keyframes fav-maus-bewegen {
    0%   { top: 70px;  left: 40px; }
    40%  { top: 35px;  left: 175px; }
    55%  { top: 33px;  left: 175px; }
    100% { top: 70px;  left: 40px; }
}
.fav-leer-text {
    color: #4a5a7a;
    font-size: 0.95em;
    line-height: 1.6;
    max-width: 380px;
    margin: 0 auto;
}

@keyframes stripe-slide {
    from { transform: translateX(0); }
    to   { transform: translateX(113px); }
}

body.is-searching .tpl-filter > h3,
body.is-searching .filter-result-header,
body.is-searching .tpl-karten > h3 {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

body.is-searching .tpl-filter > h3::before,
body.is-searching .filter-result-header::before,
body.is-searching .tpl-karten > h3::before {
    content: '';
    position: absolute;
    inset: 0;
    left: -113px;
    z-index: -1;
    pointer-events: none;
    will-change: transform;
    background: repeating-linear-gradient(
        -45deg,
        var(--stripe1),
        var(--stripe1) calc(var(--stripe-width) - 3px),
        var(--stripe2) calc(var(--stripe-width) + 3px),
        var(--stripe2) calc(var(--stripe-width) * 2 - 3px),
        var(--stripe1) calc(var(--stripe-width) * 2 + 3px)
    );
    animation: stripe-slide 0.8s linear infinite;
}

body.is-searching .tpl-filter > h3::after,
body.is-searching .filter-result-header::after,
body.is-searching .tpl-karten > h3::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    backdrop-filter: blur(var(--stripe-blur));
    -webkit-backdrop-filter: blur(var(--stripe-blur));
}

.mobile-menu-toggle {
    display: inline-block;
    background: none;
    border: none;
    font-size: 1.6em;
    cursor: pointer;
    color: var(--color-text);
    padding: 0.2em 0.4em;
    vertical-align: middle;
    line-height: 1;
    letter-spacing: 0.1em;
}
.mobile-menu-toggle:hover {
    color: var(--color-primary-dark);
}

.mobile-nav-permanent {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35em 0.5em;
    vertical-align: middle;
    max-width: 100%;
}
.mobile-nav-permanent .nav-main-link {
    display: inline-flex;
    align-items: center;
    font-size: 0.88em;
    font-weight: 600;
    color: var(--color-primary-dark);
    text-decoration: none;
    padding: 0.28em 0.55em;
    border-radius: 4px;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.mobile-nav-permanent .nav-main-link:hover {
    background-color: var(--color-primary-light);
    text-decoration: underline;
    color: var(--color-primary);
}

.mobile-nav-permanent .nav-user-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.2em;
    font-size: 0.82em;
    font-weight: 600;
    text-decoration: none;
    padding: 0.3em 0.55em;
    border-radius: 6px;
    white-space: nowrap;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
.mobile-nav-permanent .nav-user-pill-icon {
    font-size: 1.05em;
    line-height: 1;
    opacity: 0.95;
}
.mobile-nav-permanent .nav-user-pill-count {
    font-weight: 700;
    font-size: 0.95em;
    margin-left: 0.05em;
    opacity: 0.95;
}
.mobile-nav-permanent .nav-user-pill-fav {
    color: var(--color-favorit);
}
.mobile-nav-permanent .nav-user-pill-fav:hover {
    background-color: var(--color-favorit-bg-hover);
    text-decoration: none;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
.mobile-nav-permanent .nav-user-pill-suche {
    background-color: var(--color-favorit-bg);
    color: var(--color-primary-dark);
    border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-favorit-titel));
}
.mobile-nav-permanent .nav-user-pill-suche:hover {
    background-color: var(--color-favorit-bg-hover);
    text-decoration: none;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
@supports not (color: color-mix(in srgb, white 50%, black)) {
    .mobile-nav-permanent .nav-user-pill-suche {
        border-color: #c8b8c8;
    }
}

.nav-badge {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 0.72em;
    font-weight: 700;
    min-width: 1.5em;
    height: 1.5em;
    line-height: 1.5em;
    text-align: center;
    border-radius: 9999px;
    padding: 0 0.3em;
    margin-left: 0.1em;
    vertical-align: middle;
}

.menu.tpl-navigation ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 200;
    flex-direction: column;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.12);
    padding: 0.3em 0;
    min-width: 12em;
    white-space: nowrap;
}
.menu.tpl-navigation ul.mobile-menu-open {
    display: flex;
}
.menu.tpl-navigation ul li {
    padding: 0.5em;

}
.menu.tpl-navigation ul li a {
    display: block;
    padding: 0.5em 1em;
    border-bottom: 1px solid var(--color-border-light);

}
.menu.tpl-navigation ul li:last-child a {
    border-bottom: none;
}

.exposee-tab-bar {
    display: none;
}
.mobile-tab-bar {
    display: none;
}

@media (max-width: 768px) {

    :root {
        --mobile-filter-font-size: 16px;
        --mobile-filter-touch-panel-font-size: 1.35rem;
        --mobile-filter-dropdown-font-size: var(--mobile-filter-touch-panel-font-size);
        --mobile-filter-label-font-size: 14px;
    }

    .immo-touch-select-trigger {
        font-size: var(--mobile-filter-font-size) !important;
    }
    .immo-touch-select-option {
        font-size: var(--mobile-filter-touch-panel-font-size) !important;
    }

    .menu.tpl-navigation .idx0-header-filterlinks {
        display: none !important;
    }

    .tpl-filter,
    .tpl-filter .idx-filterzeile {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
    .tpl-filter {
        --tpl-filter-label-width: 8rem;
    }
    .tpl-filter .idx-filterzeile .idx0-filter-label {
        font-size: var(--mobile-filter-label-font-size) !important;
        width: var(--tpl-filter-label-width) !important;
        min-width: var(--tpl-filter-label-width) !important;
        max-width: var(--tpl-filter-label-width) !important;
    }

    .tpl-filter .idx-filterzeile .idx0-filter-select,
    .tpl-filter .idx-filterzeile .idx0-filter-input,
    .tpl-filter select,
    .tpl-filter select option,
    #filter-panel select,
    #filter-panel select option {
        font-size: var(--mobile-filter-font-size) !important;
        line-height: 1.35 !important;
        min-height: 2.75rem;
        padding: 0.45em 0.55em;
        text-align: left !important;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
    .tpl-filter .idx-filterzeile .idx0-filter-select.idx0-filter-mini,
    .tpl-filter .idx-filterzeile .idx0-filter-input.idx0-filter-mini,
    .tpl-filter #filter-umkreis-group .idx0-filter-select,
    .tpl-filter #filter-umkreis-group select {
        font-size: var(--mobile-filter-font-size) !important;
        max-width: none;
        min-height: 2.75rem;
    }
    .tpl-filter .idx0-filter-select--button,
    .tpl-filter .filter-dropdown-toggle,
    .tpl-filter button.filter-dropdown-toggle {
        font-size: var(--mobile-filter-font-size) !important;
        min-height: 2.75rem;
        padding: 0.5em 0.55em;
    }

    .tpl-filter .idx0-filter-dropdown-panel,
    .tpl-filter .filter-dropdown,
    .tpl-filter #filter-stadtteil-dropdown,
    .tpl-filter #filter-stadtteil-list,
    .tpl-filter .idx0-filter-dropdown-panel label,
    .tpl-filter .filter-dropdown label,
    .tpl-filter .filter-stadtteil-list label,
    .tpl-filter .idx0-filter-dropdown-panel .filter-stadtteil-row,
    .tpl-filter .filter-stadtteil-row,
    .tpl-filter .filter-stadtteil-row label,
    .tpl-filter .idx0-filter-dropdown-panel .filter-hint,
    .tpl-filter .filter-ort-vorschlaege,
    .tpl-filter .filter-ort-vorschlag-item {
        font-size: var(--mobile-filter-dropdown-font-size) !important;
        line-height: 1.4 !important;
    }
    .tpl-filter .idx0-filter-dropdown-panel .filter-stadtteil-count,
    .tpl-filter .filter-stadtteil-count {
        font-size: var(--mobile-filter-label-font-size) !important;
    }
    .tpl-filter .idx0-filter-dropdown-panel input[type="checkbox"],
    .tpl-filter .filter-stadtteil-row input[type="checkbox"] {
        width: 1.2em;
        height: 1.2em;
        min-width: 1.2em;
        vertical-align: middle;
    }

    .idx0-suchfeld-container .idx0-filter-label {
        font-size: max(14px, 0.875rem);
    }
    .idx0-suchfeld-container .idx0-filter-select,
    .idx0-suchfeld-container .idx0-filter-input {
        font-size: max(16px, 1rem);
        line-height: 1.35;
        min-height: 2.75rem;
    }

    .filter-group select,
    .filter-group select option {
        font-size: var(--mobile-filter-font-size) !important;
        padding: 0.5em;
        min-height: 2.5em;
    }
    .filter-dropdown-toggle:not(.idx0-filter-select--button) {
        font-size: var(--mobile-filter-font-size) !important;
        padding: 0.6em;
    }

    .mobile-tab-bar {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        background: var(--mobile-tab);
        border-top: 2px solid #ccc;
        box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
    }
    .mobile-tab-bar button {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0.5em 0.3em;
        border: none;
        background: var(--mobile-tab);
        color: #333;
        font-size: 0.75em;
        font-weight: 600;
        cursor: pointer;
        gap: 0.15em;
        transition: background-color 0.2s ease;
    }
    .mobile-tab-bar button.active {
        background: var(--mobile-active-tab);
    }
    .mobile-tab-bar button .tab-icon {
        font-size: 1.6em;
        line-height: 1;
    }

    body.has-mobile-tabs {
        padding-bottom: 4em;
    }

    body.has-mobile-tabs .index-layout {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        max-width: 100% !important;
        gap: 0.75em !important;
    }
    body.has-mobile-tabs .index-layout > aside {
        display: flex !important;
        flex-direction: column !important;
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;
        order: 1;
    }
    body.has-mobile-tabs .index-layout > aside > .tpl-filter {
        order: 1;
        margin-right: 0;
    }
    body.has-mobile-tabs .index-layout > aside > .tpl-karten {
        order: 2;
    }
    body.has-mobile-tabs .index-layout > aside > *:not(.tpl-filter):not(.tpl-karten) {
        order: 3;
    }
    body.has-mobile-tabs .index-layout > main {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        order: 2;
        min-width: 0;
    }
    body.has-mobile-tabs #filter-panel,
    body.has-mobile-tabs #index-anker-karte,
    body.has-mobile-tabs #angebote {
        scroll-margin-top: 4em;
    }
    body.has-mobile-tabs .mobile-tab-bar .mobile-tab-label {
        font-size: 0.72em;
        line-height: 1.15;
        text-align: center;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-karte-filter-kopien {
        display: none;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien {
        display: flex;
        flex-direction: column;
        gap: 0.5em;
        margin: 0.5em 0 0.75em 0;
        padding: 0 0.25em;
        box-sizing: border-box;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .idx0-filter-box {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        width: 100%;
        min-width: 0;
        border: 1px solid var(--color-border);
        background: #fff;
        box-sizing: border-box;
        min-height: 36px;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .idx0-filter-label {
        font-size: var(--mobile-filter-label-font-size, 14px) !important;
        flex-shrink: 0;
        box-sizing: border-box;
        width: var(--tpl-filter-label-width, 8rem) !important;
        min-width: var(--tpl-filter-label-width, 8rem) !important;
        max-width: var(--tpl-filter-label-width, 8rem) !important;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .idx0-filter-select,
    body.has-mobile-tabs .mobile-karte-filter-kopien .idx0-filter-input {
        font-size: var(--mobile-filter-font-size, 16px) !important;
        line-height: 1.35 !important;
        min-height: 2.75rem;
        flex: 1 1 0%;
        min-width: 0;
        max-width: 100%;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .filter-ort-wrapper {
        display: flex;
        flex: 1 1 0%;
        min-width: 0;
        position: relative;
        align-items: stretch;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .filter-ort-vorschlaege {
        z-index: 2500;
        text-align: left;
    }
    body.has-mobile-tabs .mobile-karte-filter-kopien .immo-touch-select-root {
        flex: 1 1 0%;
        min-width: 0;
        width: 100%;
    }

    .tpl-werbung,
    [class*="WerbungAside"],
    [class*="WerbungMain"],
    .werbung-aside,
    .werbung-main {
        display: none !important;
    }

    body.has-mobile-tabs .uf-minusplus,
    .objekte-liste .uf-minusplus,
    .favoriten-spalte-liste .uf-minusplus {
        display: none !important;
    }

    body.has-mobile-tabs article h4,
    .objekte-liste article h4,
    .favoriten-spalte-liste article h4 {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    body.has-mobile-tabs article .Objekttitel,
    .objekte-liste article .Objekttitel,
    .favoriten-spalte-liste article .Objekttitel {
        position: relative;
        overflow: visible;
    }

    body.has-mobile-tabs article .ObjektData,
    .objekte-liste article .ObjektData,
    .favoriten-spalte-liste article .ObjektData {
    }
    body.has-mobile-tabs article,
    .objekte-liste article,
    .favoriten-spalte-liste article {
        overflow: visible;
    }
    body.has-mobile-tabs article .uf-symbole,
    .objekte-liste article .uf-symbole,
    .favoriten-spalte-liste article .uf-symbole {
        position: absolute;
        top: -1.2em;
        left: 0.3em;
        z-index: 20;
        margin-right: 0;
        transform: translateY(-0.45em);
    }
    body.has-mobile-tabs article .uf-herz,
    .objekte-liste article .uf-herz,
    .favoriten-spalte-liste article .uf-herz {
        font-size: 1.3em;
        text-shadow: 0 0 4px #fff, 0 0 8px #fff;
    }

    body.has-mobile-tabs article .Rating,
    .objekte-liste article .Rating,
    .favoriten-spalte-liste article .Rating {
        position: absolute;
        right: 0.3em;
        z-index: 20;
        font-size: 0.85em;
        transform: translateY(-1.2em);
    }

    .idx-anbieter-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .idx-anbieter-logo {
        width: 100%;
        text-align: center;
    }
    .idx-anbieter-logo img {
        max-width: 120px;
        height: auto;
    }
    .idx-anbieter-info {
        width: 100%;
    }
    .idx-anbieter-stats-row {
        justify-content: center;
        flex-wrap: wrap;
    }
    .idx-anbieter-adresse {
        text-align: center;
    }
    .idx-anbieter-orte {
        text-align: center;
    }

    .filter-result-header a,
    .ObjektData a,
    article.ObjektListeElement a {
        text-decoration: none;
    }

    .idx0-aside article,
    .idx0-favoriten-karte article {
        overflow: visible;
    }
    .idx0-aside article .Objekttitel,
    .idx0-favoriten-karte article .Objekttitel {
        position: relative;
        overflow: visible;
    }
    .idx0-aside article h4,
    .idx0-favoriten-karte article h4 {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .idx0-aside article .uf-minusplus,
    .idx0-favoriten-karte article .uf-minusplus {
        display: none !important;
    }

    body.has-mobile-tabs .filter-toggle-mobile {
        pointer-events: none;
        cursor: default;
    }
    body.has-mobile-tabs .filter-arrow {
        display: none !important;
    }
    body.has-mobile-tabs .filter-body {
        display: block !important;
    }

    .tpl-karten > h3.mobile-karten-treffer {
        cursor: pointer;
        color: var(--color-primary);
    }
    .tpl-karten > h3.mobile-karten-treffer:hover {
        text-decoration: none;
    }

    #slider-container {
        width: 100% !important;
        max-width: 100vw;
    }
    #slider-container img {
        width: 100% !important;
        height: auto !important;
    }
    #slider-main {
        width: 100% !important;
    }
    .exposee-layout main {
        min-width: 0 !important;
        width: 100% !important;
    }
    #slider-thumbnails {
        overflow-x: auto;
    }
    #thumb-track {
        flex-wrap: nowrap;
    }

    body.has-mobile-tabs .index-layout > aside > .aside-block:not(.tpl-filter):not(.tpl-karten) {
        margin-top: 0.5em;
        border-top: 1px solid var(--color-border-light);
        padding-top: 0.5em;
    }

    @media print {
        .mobile-tab-bar,
        .exposee-tab-bar {
            display: none !important;
        }
    }
}

@media (max-width: 950px) {

    .exposee-tab-bar {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        background: var(--mobile-tab);
        border-top: 2px solid #ccc;
        box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
    }
    .exposee-tab-bar button {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0.5em 0.3em;
        border: none;
        background: var(--mobile-tab);
        color: #333;
        font-size: 0.75em;
        font-weight: 600;
        cursor: pointer;
        gap: 0.15em;
        transition: background-color 0.2s ease;
    }
    .exposee-tab-bar button.active {
        background: var(--mobile-active-tab);
    }
    .exposee-tab-bar button .tab-icon {
        font-size: 1.6em;
        line-height: 1;
    }

    body.has-exposee-tabs {
        padding-bottom: 4em;
    }

    body.has-exposee-tabs .exposee-layout a[id] {
        scroll-margin-top: 4em;
    }

    body.has-exposee-tabs .exposee-layout > aside > .share {
        padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
        padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }
    body.has-exposee-tabs .exposee-layout > aside > .share .share-section h3,
    body.has-exposee-tabs .exposee-layout > aside > .share .share-export-section h3 {
        text-align: center;
    }
    body.has-exposee-tabs .exposee-layout > aside > .share .share-icons {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 0.4rem 0.65rem;
        padding: 0.35rem 0.2rem;
    }
    body.has-exposee-tabs .exposee-layout > aside > .share .share-section .share-icons a,
    body.has-exposee-tabs .exposee-layout > aside > .share .share-export-box a {
        padding: 0.55rem;
        min-width: 3rem;
        min-height: 3rem;
        box-sizing: border-box;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    body.has-exposee-tabs .exposee-layout > aside > .share .share-svg {
        width: 2.5rem;
        height: 2.5rem;
    }

    @media print {
        .exposee-tab-bar {
            display: none !important;
        }
    }
}

.tpl-kartensuche-btn-wrap {
    padding: 0.5em 0;
    text-align: center;
}

.kartensuche-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    background: #2563eb;
    color: #fff;
    border-radius: 6px;
    padding: 0.5em 1.1em;
    font-weight: 600;
    font-size: 0.95em;
    text-decoration: none;
    transition: background 0.15s ease;
    white-space: nowrap;
}

.kartensuche-btn:hover,
.kartensuche-btn:focus {
    background: #1d4ed8;
    outline: 2px solid #93c5fd;
    outline-offset: 2px;
}

.ks-body {

    overflow-x: hidden;
}

.ks-wrapper {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 100px);
}

.ks-map-section {
    display: flex;
    flex-direction: row;
    width: 100%;
    height: 70vh;
    min-height: 400px;
    max-height: 85vh;
    flex-shrink: 0;
    overflow: hidden;
}

.ObjektData {
    overflow: hidden;
}

.ks-map-container {
    flex: 1 1 auto;
    position: relative;
    min-width: 0;
    background: #d4c4a8;
}

.ks-map-container.is-loading::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.3);
    z-index: 10;
}

.ks-filter-overlay {
    flex: 0 0 22em;
    width: 22em;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    border-right: 1px solid #e2e8f0;
    box-shadow: 2px 0 8px rgba(0,0,0,0.08);
    z-index: 10;
}

.ks-filter-header {
    padding: 0.5em 0.8em 0;
}

.ks-filter-title {
    margin: 0;
    font-size: 1em;
    font-weight: 700;
}

.ks-filter-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-weight: 700;
    font-size: 1em;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 0.4em;
    color: inherit;
}

.ks-filter-toggle-icon {
    font-size: 0.75em;
    display: inline-block;
    transition: transform 0.15s ease;
}

.ks-filter-body {
    padding: 0.5em 0.8em 0.8em;
}

.ks-timing-panel {
    position: absolute;
    bottom: 2.2em;
    right: 3em;
    z-index: 50;
    background: rgba(0,0,0,0.65);
    color: #e2e8f0;
    font-size: 0.72em;
    padding: 0.3em 0.7em;
    border-radius: 5px;
    pointer-events: none;
    white-space: nowrap;
}

.ks-inc-overlay {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ks-inc-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    cursor: pointer;
}

.ks-inc-container {
    position: relative;
    z-index: 9001;
    background: #fff;
    border-radius: 12px;
    max-width: min(700px, calc(100vw - 2em));
    max-height: calc(100vh - 4em);
    overflow-y: auto;
    padding: 1.2em 1.5em 1em;
    box-shadow: 0 8px 40px rgba(0,0,0,0.3);
}

.ks-exposee-link {
    display: block;
    margin-top: 1em;
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
}

.ks-exposee-link:hover { text-decoration: underline; }

.ks-inc-loading,
.ks-inc-error {
    padding: 2em;
    text-align: center;
    color: #64748b;
}

.ks-cluster-popup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 500;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.2);
    min-width: 16em;
    max-width: min(28em, calc(100vw - 2em));
    max-height: 60vh;
    overflow-y: auto;
    padding: 0.8em;
}

.ks-cluster-popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5em;
    font-weight: 700;
}

.ks-cluster-popup-close {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1em;
    padding: 0 0.2em;
    color: #64748b;
}

.ks-cluster-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ks-cluster-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4em 0;
    border-bottom: 1px solid #e2e8f0;
}

.ks-cluster-item:last-child { border-bottom: none; }

.ks-cluster-preis {
    font-weight: 600;
    font-size: 0.95em;
}

.ks-cluster-view-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1em;
    padding: 0 0.3em;
}

.ks-pin-label {
    background: #1e40af;
    color: #fff;
    border-radius: 6px;
    padding: 0.25em 0.55em;
    font-size: 0.78em;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
    transition: transform 0.1s, box-shadow 0.1s;
    user-select: none;
    line-height: 1.3;
}

.ks-pin-label:hover {
    transform: scale(1.08);
    box-shadow: 0 3px 10px rgba(0,0,0,0.35);
}

.ks-pin-label--cluster {
    background: #0f172a;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1em;
    min-width: 4.5em;
}

.ks-cluster-count {
    font-size: 1.1em;
    font-weight: 800;
}

.ks-cluster-ab {
    font-size: 0.75em;
    font-weight: 500;
    opacity: 0.85;
}

.ks-pin-label--fallback {
    opacity: 0.75;
    border: 1.5px dashed rgba(255,255,255,0.5);
}

.ks-pin-label--favorit {
    background: #dc2626;
}

.ks-pin-herz {
    margin-right: 0.2em;
}

.ks-pin-label--disliked {
    background: #94a3b8;
    opacity: 0.6;
}

.ks-einrast-tooltip {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.75);
    color: #fff;
    border-radius: 6px;
    padding: 0.4em 1em;
    font-weight: 600;
    pointer-events: none;
    z-index: 200;
    white-space: nowrap;
}

.ks-fullscreen-btn {
    position: absolute;
    top: 0.7em;
    right: 0.7em;
    z-index: 150;
    background: rgba(255,255,255,0.9);
    border: none;
    border-radius: 6px;
    padding: 0.4em 0.6em;
    font-size: 1.2em;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.ks-list-section {
    padding: 1.5em 1em;
    max-width: 70em;
    margin: 0 auto;
    width: 100%;
}

.ks-list-heading {
    font-size: 1.1em;
    font-weight: 700;
    margin-bottom: 1em;
}

.ks-object-list {
    display: grid;
    gap: 1em;
}

.ks-list-item {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}

.ks-list-item.is-loading {
    min-height: 8em;
    background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
    background-size: 200% 100%;
    animation: ks-skeleton 1.4s infinite;
}

@keyframes ks-skeleton {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.ks-load-more-btn {
    display: block;
    width: 100%;
    margin-top: 1.5em;
    padding: 0.7em;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.ks-load-more-btn:hover { background: #e2e8f0; }

.ks-overlay-offen {
    overflow: hidden;
}

@media (max-width: 768px) {
    .ks-map-section {
        flex-direction: column;
        height: auto;
        max-height: none;
    }

    .ks-filter-overlay {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        max-height: 40vh;
        border-right: none;
        border-bottom: 1px solid #e2e8f0;
    }

    .ks-map-container {
        height: 55vh;
        min-height: 300px;
    }
}
