/* Uniform card image height with zoom-crop */
.card-img-top {
  position: relative;
  overflow: hidden;
  padding-top: 66.67%; /* 3:2 aspect ratio */
}

.card-img-top > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* CSP-safe replacements for inline styles */
.hero-bg {
  background-image: url('../images/bg-head.jpg');
}

.logo-width-120 {
  width: 120px;
}

.map-height-620 {
  height: 620px;
}

.map-height-550 {
  height: 550px;
}

#immo-split-map {
  position: sticky;
  top: 80px;
  height: calc(100vh - 100px);
}

@media (max-width: 991px) {
  #immo-split-map {
    position: relative;
    top: 0;
    height: 350px;
    margin-bottom: 1rem;
  }
}

.svg-sprite-hidden {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* ── Bewertung multi-step wizard ── */
.bewertung-steps { gap: 2rem; }

.bewertung-step { text-align: center; position: relative; }

.bewertung-step + .bewertung-step::before {
  content: '';
  position: absolute;
  top: 22px;
  right: calc(50% + 26px);
  width: calc(100% - 12px);
  height: 2px;
  background: #dee2e6;
}

.bewertung-step.done + .bewertung-step::before,
.bewertung-step.done + .bewertung-step.active::before {
  background: var(--primary, #0061df);
}

.bewertung-step-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 auto 6px;
  border-radius: 50%;
  background: #dee2e6;
  color: #6c757d;
  font-size: 18px;
  transition: background .25s, color .25s;
}

.bewertung-step.active .bewertung-step-circle {
  background: var(--primary, #0061df);
  color: #fff;
}

.bewertung-step.done .bewertung-step-circle {
  background: var(--primary, #0061df);
  color: #fff;
}

.bewertung-step-label {
  display: block;
  font-size: 13px;
  color: #6c757d;
}

.bewertung-step.active .bewertung-step-label,
.bewertung-step.done .bewertung-step-label {
  color: #333;
  font-weight: 600;
}

/* Fixed min-height so steps don't jump */
.bewertung-fieldset {
  min-height: 260px;
}
