/* =========================================================
   ROLLEX VERTRIEBSFINDER v3 - BUNDESLÄNDER
   NACH der bisherigen plz-sales.css laden oder diese ersetzen.
   ========================================================= */

.rf-plz-search {
  width: 100%;
  max-width: 880px;
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}

.rf-plz-search-form {
  display: flex;
  align-items: stretch;
  gap: .75rem;
  width: 100%;
  max-width: 640px;
}

.rf-plz-map-choice {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1rem;
}

.rf-plz-map-button {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border-radius: 999px;
  font-weight: 800;
}

.rf-sales-map-modal {
  overflow: hidden;
  border: 1px solid rgba(0,103,41,.12);
  border-radius: 28px;
  box-shadow: 0 32px 100px rgba(15,40,25,.22);
}

.rf-sales-map-modal .modal-header {
  align-items: flex-start;
  padding: 1.4rem 1.5rem;
  background: radial-gradient(circle at 0 0, rgba(0,103,41,.10), transparent 38%), #fff;
}

.rf-sales-map-kicker {
  color: var(--brand, #006729);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.rf-sales-map-wrap,
.rf-sales-map-result {
  height: 100%;
  padding: 1.25rem;
  border: 1px solid rgba(0,103,41,.10);
  border-radius: 24px;
  background: #fff;
}

.rf-sales-map-wrap {
  background: radial-gradient(circle at 35% 20%, rgba(0,103,41,.08), transparent 42%), linear-gradient(180deg,#fbfdfc,#f4f8f5);
}

.rf-state-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-bottom: .6rem;
  color: #5f6b64;
  font-size: .72rem;
  font-weight: 800;
}

.rf-state-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}

.rf-state-map-legend i {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 4px;
}

.rf-legend-single { background: #dcece2; border: 1px solid #8ab59a; }
.rf-legend-mixed {
  border: 1px solid #8ab59a;
  background: repeating-linear-gradient(45deg,#edf4ef 0 4px,#d1e2d6 4px 8px);
}

.rf-germany-state-map {
  display: block;
  width: min(100%, 520px);
  height: auto;
  margin: 0 auto;
  overflow: visible;
}

.rf-state-group {
  cursor: pointer;
  outline: none;
}

.rf-state-shape {
  fill: #e8f1eb;
  stroke: #547060;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
  transition: fill .18s ease, filter .18s ease, transform .18s ease, stroke .18s ease;
  transform-box: fill-box;
  transform-origin: center;
}

.rf-state-group[data-state-mode="mixed"] .rf-state-shape {
  fill: url(#rfMixedStatePattern);
}

.rf-state-group[data-state-region="zentrale"] .rf-state-shape {
  fill: #e5e8e6;
}

.rf-state-group:hover .rf-state-shape,
.rf-state-group:focus-visible .rf-state-shape,
.rf-state-group.is-active .rf-state-shape {
  fill: color-mix(in srgb, var(--brand, #006729) 28%, white);
  stroke: var(--brand, #006729);
  filter: drop-shadow(0 7px 7px rgba(0,0,0,.16));
  transform: scale(1.015);
}

.rf-state-label {
  fill: #31453a;
  font-family: 'Open Sans', sans-serif;
  font-size: 14px;
  font-weight: 900;
  text-anchor: middle;
  pointer-events: none;
  paint-order: stroke;
  stroke: rgba(255,255,255,.85);
  stroke-width: 3px;
}

.rf-werne-marker circle:first-child {
  fill: #fff;
  stroke: var(--brand, #006729);
  stroke-width: 3;
}

.rf-werne-marker circle:nth-child(2) { fill: var(--brand, #006729); }
.rf-werne-marker text {
  fill: var(--brand, #006729);
  font: 800 12px 'Open Sans', sans-serif;
}

.rf-sales-map-hint {
  display: block;
  margin-top: .7rem;
  color: #748078;
  text-align: center;
  font-size: .72rem;
}

.rf-sales-map-result { min-height: 455px; }

.rf-sales-map-empty {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 400px;
  color: #68766d;
  text-align: center;
}

.rf-sales-map-empty i {
  margin-bottom: .8rem;
  color: var(--brand, #006729);
  font-size: 2.8rem;
}

.rf-state-result-context {
  margin-bottom: .75rem;
  color: var(--brand, #006729);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rf-state-mixed-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.rf-state-mixed-icon {
  margin: 1rem 0 .8rem;
  color: var(--brand, #006729);
  font-size: 2.7rem;
}

.rf-state-mixed-card h3,
.rf-sales-contact-card h3 {
  color: #142015;
  font-weight: 900;
}

.rf-state-region-chips,
.rf-sales-range-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .5rem;
}

.rf-state-region-chip {
  padding: .38rem .58rem;
  border: 1px solid color-mix(in srgb, var(--rf-chip-color) 30%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--rf-chip-color) 10%, white);
  color: #294333;
  font-size: .72rem;
  font-weight: 800;
}

.rf-sales-contact-region {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: 1rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--rf-region-color) 12%, white);
  color: var(--rf-region-color);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rf-sales-contact-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--rf-region-color);
}

.rf-sales-contact-lines {
  display: grid;
  gap: .65rem;
}

.rf-sales-contact-lines a,
.rf-sales-contact-line-static {
  display: grid;
  grid-template-columns: 38px minmax(0,1fr);
  align-items: center;
  gap: .7rem;
  padding: .7rem;
  border: 1px solid rgba(0,103,41,.10);
  border-radius: 15px;
  background: #f8fbf9;
  color: #1d3024;
  text-decoration: none;
}

.rf-sales-contact-lines a > i,
.rf-sales-contact-line-static > i {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--rf-region-color);
  color: #fff;
}

.rf-sales-contact-lines small,
.rf-sales-contact-lines strong,
.rf-sales-contact-line-static small,
.rf-sales-contact-line-static strong { display: block; }

.rf-sales-contact-lines small,
.rf-sales-contact-line-static small {
  color: #7b877f;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
}

.rf-sales-contact-lines strong,
.rf-sales-contact-line-static strong {
  overflow-wrap: anywhere;
  color: #1d3024;
  font-size: .84rem;
}

.rf-sales-head-office-note {
  display: flex;
  gap: .6rem;
  margin-bottom: 1rem;
  padding: .8rem;
  border-radius: 14px;
  background: #f0f2f1;
  color: #465149;
  font-size: .8rem;
}

.rf-sales-contact-ranges {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0,103,41,.10);
}

.rf-sales-range-list span {
  padding: .32rem .5rem;
  border-radius: 9px;
  background: #eef5f0;
  color: #294333;
  font-size: .7rem;
  font-weight: 800;
}

.rf-sales-contact-button {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: 1.2rem;
  border-radius: 999px;
}

@media (max-width: 767px) {
  .rf-plz-search-form { display: grid; grid-template-columns: 1fr; }
  .rf-plz-search-form .btn { width: 100%; }
  .rf-plz-map-choice { flex-direction: column; align-items: stretch; }
  .rf-plz-or { text-align: center; }
  .rf-plz-map-button { justify-content: center; width: 100%; }
  .rf-sales-map-result { min-height: auto; }
  .rf-sales-map-empty { min-height: 190px; }
  .rf-state-label { font-size: 12px; }
}

.rf-state-country-outline {
  fill: none;
  stroke: #31483b;
  stroke-width: 2.8;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}


/* =========================================================
   v3.1 PREMIUM BUNDESLAND-KARTE
   Alte Premium-Anmutung + echte klickbare Bundesländer.
   ========================================================= */
.rf-state-map-body {
  pointer-events: all;
}

.rf-state-group,
.rf-state-group .rf-state-shape {
  pointer-events: all;
}

.rf-state-group[data-state-region="nord-west"] .rf-state-shape {
  fill: color-mix(in srgb, var(--brand, #006729) 32%, #eef6f1);
}

.rf-state-group[data-state-region="sued-west"] .rf-state-shape {
  fill: color-mix(in srgb, #397852 31%, #eef6f1);
}

.rf-state-group[data-state-region="sued-ost"] .rf-state-shape {
  fill: color-mix(in srgb, #76a98a 38%, #eef6f1);
}

.rf-state-group[data-state-region="zentrale"] .rf-state-shape {
  fill: #e7ebe8;
}

.rf-state-group[data-state-mode="mixed"] .rf-state-shape {
  fill: url(#rfMixedStatePattern);
}

.rf-state-group:hover .rf-state-shape,
.rf-state-group:focus-visible .rf-state-shape,
.rf-state-group.is-active .rf-state-shape {
  stroke: var(--brand, #006729);
  stroke-width: 3.2;
  filter: drop-shadow(0 8px 9px rgba(0,0,0,.18));
}

.rf-state-group.is-active .rf-state-shape {
  fill: color-mix(in srgb, var(--brand, #006729) 42%, white);
}

.rf-state-label {
  pointer-events: none !important;
}

.rf-state-country-outline,
.rf-werne-marker {
  pointer-events: none !important;
}

.rf-state-choice-list {
  display: grid;
  gap: .65rem;
  width: 100%;
  margin-top: 1rem;
}

.rf-state-choice-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  width: 100%;
  padding: .8rem .9rem;
  border: 1px solid rgba(0,103,41,.14);
  border-radius: 14px;
  background: #f8fbf9;
  color: #1d3024;
  text-align: left;
  font-weight: 800;
}

.rf-state-choice-button:hover {
  border-color: var(--brand, #006729);
  background: color-mix(in srgb, var(--brand, #006729) 8%, white);
}

.rf-state-choice-button span {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}

.rf-state-choice-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--rf-choice-color, #006729);
}

/* =========================================================
   v3.2 REALISTISCHERE KARTENPROPORTION + MITARBEITERFOTOS
   ========================================================= */

.rf-sales-map-modal .modal-body {
  overflow-x: hidden;
}

.rf-sales-map-wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 610px;
}

.rf-germany-state-map {
  display: block;
  width: 100% !important;
  max-width: 520px;
  height: auto !important;
  aspect-ratio: auto;
  margin: .25rem auto 0;
  overflow: visible;
}

.rf-state-shape,
.rf-state-country-outline {
  vector-effect: non-scaling-stroke;
}

.rf-state-shape {
  stroke-width: 1.9;
}

.rf-state-group:hover .rf-state-shape,
.rf-state-group:focus-visible .rf-state-shape,
.rf-state-group.is-active .rf-state-shape {
  stroke-width: 2.7;
}

.rf-state-label {
  font-size: 12px;
}

.rf-werne-marker text {
  font-size: 11px;
}

.rf-sales-map-footer {
  justify-content: flex-end;
  padding: .9rem 1.5rem 1.1rem;
  border-top: 1px solid rgba(0,103,41,.10);
  background: #fbfdfc;
}

.rf-sales-map-footer .btn {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  border-radius: 999px;
}

.rf-sales-contact-person {
  display: grid;
  grid-template-columns: 108px minmax(0,1fr);
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}

.rf-sales-contact-person-copy {
  min-width: 0;
}

.rf-sales-contact-person .rf-sales-contact-region {
  margin-bottom: .45rem;
}

.rf-sales-contact-person h3 {
  margin: 0;
}

.rf-sales-contact-photo,
.rf-plz-result-photo {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(0,103,41,.12);
  background: linear-gradient(145deg,#eef6f1,#dce9e0);
  box-shadow: 0 10px 26px rgba(15,40,25,.10);
}

.rf-sales-contact-photo {
  width: 108px;
  height: 108px;
  border-radius: 20px;
}

.rf-sales-contact-photo img,
.rf-plz-result-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.rf-sales-contact-photo-fallback,
.rf-plz-result-photo-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--brand, #006729);
  font-weight: 900;
  letter-spacing: .04em;
}

.rf-sales-contact-photo-fallback {
  font-size: 1.65rem;
}

.rf-plz-result-person {
  display: grid;
  grid-template-columns: 82px minmax(0,1fr);
  gap: .9rem;
  align-items: center;
  margin-bottom: .75rem;
}

.rf-plz-result-photo {
  width: 82px;
  height: 82px;
  border-radius: 16px;
}

.rf-plz-result-photo-fallback {
  font-size: 1.3rem;
}

.rf-plz-result-person .rf-plz-result-region {
  display: block;
  margin-bottom: .25rem;
}

.rf-plz-result-person h3 {
  margin: 0;
}

@media (max-width: 991.98px) {
  .rf-sales-map-wrap {
    min-height: 0;
  }

  .rf-germany-state-map {
    max-width: 430px;
  }
}

@media (max-width: 575.98px) {
  .rf-sales-contact-person {
    grid-template-columns: 76px minmax(0,1fr);
    gap: .8rem;
  }

  .rf-sales-contact-photo {
    width: 76px;
    height: 76px;
    border-radius: 15px;
  }

  .rf-sales-contact-photo-fallback {
    font-size: 1.2rem;
  }

  .rf-plz-result-person {
    grid-template-columns: 68px minmax(0,1fr);
  }

  .rf-plz-result-photo {
    width: 68px;
    height: 68px;
  }

  .rf-sales-map-footer {
    padding: .75rem 1rem 1rem;
  }

  .rf-sales-map-footer .btn {
    width: 100%;
    justify-content: center;
  }
}
