:root { --anwalt-accent: #CB3522; }

.anwaltssuche {
  font-family: var(--e-global-typography-text-font-family, inherit);
  font-size: var(--e-global-typography-text-font-size, inherit);
  line-height: var(--e-global-typography-text-line-height, 1.4);
  color: var(--e-global-color-text, inherit);
}

/* =========================
   Filterleiste
   ========================= */
.anwaltssuche-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-bottom: 10px;
}

.anwaltssuche-row-sort { margin-top: -2px; }

.anwaltssuche-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 190px;
}

.anwaltssuche-field-sort { min-width: 320px; }

.anwaltssuche-label {
  font-family: var(--e-global-typography-text-font-family, inherit);
  font-size: 12px;
  font-weight: 600;
  color: var(--e-global-color-text, #111);
  letter-spacing: 0.02em;
}

.anwaltssuche input,
.anwaltssuche select {
  min-height: 40px;
  border: 1px solid #d7d7d7;
  border-radius: 6px;
  padding: 8px 10px;
  background: #fff;
  color: #111;
  font-family: var(--e-global-typography-text-font-family, inherit);
  font-size: 14px;
}

.anwaltssuche input:focus,
.anwaltssuche select:focus {
  outline: none;
  border-color: var(--anwalt-accent);
  box-shadow: 0 0 0 2px rgba(203,53,34,0.12);
}

.anwaltssuche-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-left: auto;
}

/* Buttons: hart gegen Theme/Elementor überschreiben */
.anwaltssuche .anwaltssuche-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  background: var(--anwalt-accent) !important;
  border: 2px solid var(--anwalt-accent) !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: 10px 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
  font-family: var(--e-global-typography-text-font-family, inherit) !important;
}

.anwaltssuche .anwaltssuche-btn:hover {
  background: #fff !important;
  color: var(--anwalt-accent) !important;
}

.anwaltssuche .anwaltssuche-btn:focus {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(203,53,34,0.12) !important;
}

.anwaltssuche .anwaltssuche-btn[disabled] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  background: #eee !important;
  color: #999 !important;
  border-color: #ddd !important;
}

/* Links */
.anwaltssuche a { color: var(--anwalt-accent); }
.anwaltssuche a:hover { text-decoration: underline; }

/* =========================
   Ergebnisse
   ========================= */
.anwaltssuche-topbar {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 10px 0 10px 0;
}

.anwaltssuche-count strong {
  font-family: var(--e-global-typography-primary-font-family, inherit);
  font-weight: 600;
}

.anwaltssuche-loading { color: #555; }
.anwaltssuche-error { color: #b00; }
.anwaltssuche-empty { color: #555; padding: 8px 0; }

.anwaltssuche-idle {
  color: #555;
  padding: 10px 0;
}

.anwaltssuche-list-flat {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.anwaltssuche-card {
  display: flex;
  gap: 14px;
  padding: 14px;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  background: #fff;
}

/* =========================
   Bild/Logo: feste Kachel + contain
   - Box ist fix (gleich groß für alle Ergebnisse)
   - Logo wird IMMER eingepasst, nie abgeschnitten
   ========================= */

/* Bild-Kachel (Container) */
.anwaltssuche-img {
  width: 160px;          /* breiter als vorher */
  height: 110px;         /* fixierte Höhe */
  flex: 0 0 160px;       /* fixierte Breite */
  border-radius: 10px;
  background: #f6f6f6;
  overflow: hidden;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* Bild selbst: immer einpassen */
.anwaltssuche-img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
}

/* Platzhalter, wenn kein Bild */
.anwaltssuche-noimg {
  width: 100%;
  height: 100%;
  background: #f2f2f2;
}

/* Body */
.anwaltssuche-body { flex: 1; min-width: 0; }

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

.anwaltssuche-head-left { min-width: 0; }

/* Kanzlei: grau, gleiche Größe wie Name */
.anwaltssuche-firm {
  font-family: var(--e-global-typography-primary-font-family, inherit);
  font-size: 16px;
  font-weight: 600;
  color: #666;
  line-height: 1.25;
  margin-bottom: 2px;
}

.anwaltssuche-title {
  font-family: var(--e-global-typography-primary-font-family, inherit);
  font-size: 16px;
  font-weight: 800;
  color: #111;
  line-height: 1.25;
}

.anwaltssuche-distance {
  white-space: nowrap;
  font-weight: 700;
  color: #111;
  margin-top: 2px;
}

.anwaltssuche-addr {
  margin-top: 6px;
  color: #333;
  font-size: 14px;
}

.anwaltssuche-contact {
  margin-top: 8px;
  display: grid;
  gap: 2px;
  font-size: 14px;
}

/* Pagination */
.anwaltssuche-pagination {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
}

.anwaltssuche-pages {
  font-weight: 600;
  color: #333;
}

/* Mobile */
@media (max-width: 820px) {
  .anwaltssuche-actions { margin-left: 0; width: 100%; }
  .anwaltssuche .anwaltssuche-btn { width: 100% !important; text-align: center !important; }
  .anwaltssuche-field { min-width: 100%; }
  .anwaltssuche-field-sort { min-width: 100%; }
}

@media (max-width: 600px) {
  .anwaltssuche-card { flex-direction: column; }

  /* Auf sehr kleinen Screens wieder full-width Bildbereich */
  .anwaltssuche-img {
    width: 100%;
    height: 180px;
    flex: 0 0 auto;
  }
}
