/**
 * Findar Discovery Map V46128 FULL SAFE
 * Redfin/Idealista-inspired exploration UI, scoped to /carte/ only.
 */
body.fmp-map-open {
  height: 100vh !important;
  overflow: hidden !important;
}

body.fmp-map-open footer,
body.fmp-map-open .site-footer,
body.fmp-map-open #colophon {
  display: none !important;
}

.fmp-osm-page {
  --fmp-blue: #1557ff;
  --fmp-blue-dark: #0c3ed9;
  --fmp-ink: #101828;
  --fmp-muted: #667085;
  --fmp-border: #e4e7ec;
  --fmp-soft: #f7f9fc;
  --fmp-success: #07966b;
  position: fixed;
  inset: var(--fmp-osm-top, 76px) 0 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: #f8fafc;
  color: var(--fmp-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.fmp-osm-page *,
.fmp-osm-page *::before,
.fmp-osm-page *::after {
  box-sizing: border-box;
}

.fmp-osm-page button,
.fmp-osm-page input,
.fmp-osm-page select {
  font: inherit;
}

.fmp-osm-page button {
  -webkit-tap-highlight-color: transparent;
}

.fmp-discovery-toolbar {
  position: relative;
  z-index: 30;
  flex: 0 0 auto;
  border-bottom: 1px solid var(--fmp-border);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 4px 18px rgba(16, 24, 40, .06);
  backdrop-filter: blur(18px);
}

.fmp-discovery-mainbar {
  display: flex;
  gap: 12px;
  align-items: center;
  min-height: 72px;
  padding: 10px 18px;
}

.fmp-discovery-view {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--fmp-border);
  border-radius: 13px;
  background: var(--fmp-soft);
}

.fmp-discovery-view button {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  height: 42px;
  min-width: 82px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #344054;
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
}

.fmp-discovery-view button.is-active {
  background: var(--fmp-blue);
  color: #fff;
  box-shadow: 0 7px 18px rgba(21, 87, 255, .22);
}

.fmp-discovery-form {
  display: flex;
  flex: 1 1 auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
  margin: 0;
}

.fmp-osm-field {
  position: relative;
  display: block;
  flex: 0 0 auto;
  margin: 0;
}

.fmp-osm-field > span.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.fmp-conversation-field {
  flex: 1 1 430px;
  min-width: 280px;
}

.fmp-conversation-field input {
  width: 100%;
  height: 46px;
  padding: 0 112px 0 43px;
  border: 1px solid #d6dae2;
  border-radius: 12px;
  outline: 0;
  background: #fff;
  color: var(--fmp-ink);
  font-size: 14px;
  font-weight: 650;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.fmp-conversation-field input::placeholder {
  color: #8a94a6;
  font-weight: 550;
}

.fmp-conversation-field input:focus {
  border-color: var(--fmp-blue);
  box-shadow: 0 0 0 4px rgba(21, 87, 255, .09);
}

.fmp-search-icon {
  position: absolute;
  top: 50%;
  left: 15px;
  z-index: 2;
  transform: translateY(-50%);
  color: #667085;
  font-size: 22px;
  pointer-events: none;
}

.fmp-conversation-submit {
  position: absolute;
  top: 5px;
  right: 5px;
  height: 36px;
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: #edf3ff;
  color: var(--fmp-blue-dark);
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
}

.fmp-conversation-submit:hover {
  background: var(--fmp-blue);
  color: #fff;
}

.fmp-conversation-suggestions {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: 0;
  z-index: 100;
  padding: 13px;
  border: 1px solid var(--fmp-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(16, 24, 40, .18);
}

.fmp-conversation-suggestions[hidden] {
  display: none !important;
}

.fmp-conversation-suggestions > strong {
  display: block;
  margin-bottom: 8px;
  color: #344054;
  font-size: 12px;
}

.fmp-conversation-suggestions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.fmp-conversation-suggestions span,
.fmp-conversation-suggestions button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid #dbe5ff;
  border-radius: 999px;
  background: #f3f6ff;
  color: #1749cb;
  font-size: 12px;
  font-weight: 800;
}

.fmp-conversation-suggestions button {
  cursor: pointer;
}

.fmp-add-zone,
.fmp-more-filters,
.fmp-save-search,
.fmp-osm-field select {
  height: 46px;
  border: 1px solid #d6dae2;
  border-radius: 12px;
  outline: 0;
  background: #fff;
  color: #1d2939;
  cursor: pointer;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.fmp-osm-field select {
  min-width: 116px;
  padding: 0 32px 0 13px;
}

.fmp-osm-field select:focus {
  border-color: var(--fmp-blue);
  box-shadow: 0 0 0 3px rgba(21, 87, 255, .08);
}

.fmp-add-zone {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  padding: 0 12px;
  border-color: #cbd8ff;
  color: var(--fmp-blue-dark);
}

.fmp-add-zone small {
  display: grid;
  place-items: center;
  min-width: 31px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: #edf3ff;
  font-size: 10px;
  font-weight: 900;
}

.fmp-more-filters {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  padding: 0 13px;
}

.fmp-save-search {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-width: 126px;
  padding: 0 15px;
  border-color: var(--fmp-blue);
  background: var(--fmp-blue);
  color: #fff;
  box-shadow: 0 8px 20px rgba(21, 87, 255, .18);
}

.fmp-save-search:hover,
.fmp-save-search.is-saved {
  background: var(--fmp-blue-dark);
}

.fmp-zone-rail {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 48px;
  padding: 7px 18px 9px;
  border-top: 1px solid #edf0f5;
  background: #fff;
}

.fmp-zone-rail[hidden] {
  display: none !important;
}

.fmp-zone-rail > strong {
  flex: 0 0 auto;
  color: #475467;
  font-size: 12px;
  font-weight: 850;
}

.fmp-zone-chips {
  display: flex;
  flex: 1 1 auto;
  gap: 7px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.fmp-zone-chips::-webkit-scrollbar {
  display: none;
}

.fmp-zone-chip {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 7px;
  align-items: center;
  min-height: 32px;
  padding: 0 5px 0 12px;
  border: 1px solid #cbd8ff;
  border-radius: 999px;
  background: #f2f6ff;
  color: #1845b8;
  font-size: 12px;
  font-weight: 850;
}

.fmp-zone-chip button {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border: 0;
  border-radius: 999px;
  background: rgba(21, 87, 255, .1);
  color: inherit;
  cursor: pointer;
  font-size: 15px;
}

.fmp-zone-chip-2 { border-color: #b9ead9; background: #effbf7; color: #08745a; }
.fmp-zone-chip-3 { border-color: #f4d2a5; background: #fff8ed; color: #a65005; }
.fmp-zone-chip-4 { border-color: #dfc5fa; background: #faf4ff; color: #7b2fb4; }
.fmp-zone-chip-5 { border-color: #f3c5cf; background: #fff3f5; color: #a8314d; }

.fmp-zone-rail > button {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: var(--fmp-blue);
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
}

.fmp-zone-panel {
  position: fixed;
  z-index: 10020;
  top: calc(var(--fmp-osm-top, 76px) + 68px);
  left: 188px;
  width: min(430px, calc(100vw - 32px));
  max-height: min(650px, calc(100vh - var(--fmp-osm-top, 76px) - 92px));
  padding: 18px;
  overflow: auto;
  border: 1px solid var(--fmp-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(16, 24, 40, .24);
}

.fmp-zone-panel[hidden] {
  display: none !important;
}

.fmp-zone-panel-head {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.fmp-zone-panel-head strong,
.fmp-zone-panel-head span {
  display: block;
}

.fmp-zone-panel-head strong {
  color: var(--fmp-ink);
  font-size: 18px;
  font-weight: 950;
}

.fmp-zone-panel-head span {
  margin-top: 4px;
  color: var(--fmp-muted);
  font-size: 12px;
  line-height: 1.45;
}

.fmp-zone-panel-head button {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--fmp-border);
  border-radius: 10px;
  background: #fff;
  color: #344054;
  cursor: pointer;
  font-size: 21px;
}

.fmp-zone-search {
  position: relative;
  display: block;
}

.fmp-zone-search > span {
  position: absolute;
  top: 50%;
  left: 13px;
  transform: translateY(-50%);
  color: #667085;
  font-size: 20px;
}

.fmp-zone-search input {
  width: 100%;
  height: 44px;
  padding: 0 13px 0 39px;
  border: 1px solid #d6dae2;
  border-radius: 11px;
  outline: 0;
  font-size: 13px;
}

.fmp-zone-search input:focus {
  border-color: var(--fmp-blue);
  box-shadow: 0 0 0 3px rgba(21, 87, 255, .08);
}

.fmp-zone-suggestions {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.fmp-zone-suggestions > button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 52px;
  padding: 8px 11px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: #fff;
  color: var(--fmp-ink);
  cursor: pointer;
  text-align: left;
}

.fmp-zone-suggestions > button:hover {
  border-color: #dbe5ff;
  background: #f5f8ff;
}

.fmp-zone-suggestions strong,
.fmp-zone-suggestions small {
  display: block;
}

.fmp-zone-suggestions strong {
  font-size: 13px;
  font-weight: 850;
}

.fmp-zone-suggestions small {
  margin-top: 2px;
  color: var(--fmp-muted);
  font-size: 11px;
}

.fmp-zone-draw-launch {
  display: flex;
  gap: 12px;
  align-items: center;
  width: 100%;
  margin-top: 14px;
  padding: 13px;
  border: 1px dashed #9eb7ff;
  border-radius: 13px;
  background: #f5f8ff;
  color: #1749cb;
  cursor: pointer;
  text-align: left;
}

.fmp-zone-draw-launch > span:first-child {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: #fff;
  font-size: 20px;
}

.fmp-zone-draw-launch strong,
.fmp-zone-draw-launch small {
  display: block;
}

.fmp-zone-draw-launch strong { font-size: 13px; }
.fmp-zone-draw-launch small { margin-top: 3px; color: #667085; font-size: 11px; line-height: 1.35; }

.fmp-osm-layout {
  display: grid;
  grid-template-columns: 430px minmax(0, 1fr);
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.fmp-osm-map-side {
  position: relative;
  grid-column: 2;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #dbeafe;
}

.fmp-osm-map {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: #dbeafe;
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.fmp-osm-map.is-dragging { cursor: grabbing; }
.fmp-osm-map.is-drawing-zone { cursor: crosshair; }

.fmp-osm-tiles,
.fmp-osm-markers,
.fmp-zone-overlay {
  position: absolute;
  inset: 0;
}

.fmp-osm-tiles,
.fmp-osm-markers {
  overflow: hidden;
  will-change: transform;
}

.fmp-osm-tiles img {
  position: absolute;
  width: 256px;
  height: 256px;
  max-width: none !important;
  background: #dbeafe;
  image-rendering: auto;
}

.fmp-zone-overlay {
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.fmp-zone-shape {
  fill: rgba(21, 87, 255, .12);
  stroke: #1557ff;
  stroke-width: 3;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.fmp-zone-shape-2 { fill: rgba(7, 150, 107, .11); stroke: #07966b; }
.fmp-zone-shape-3 { fill: rgba(239, 128, 22, .11); stroke: #e6750d; }
.fmp-zone-shape-4 { fill: rgba(137, 61, 191, .11); stroke: #8a3dbf; }
.fmp-zone-shape-5 { fill: rgba(190, 55, 87, .10); stroke: #bb3455; }

.fmp-zone-drawing-line {
  fill: rgba(21, 87, 255, .12);
  stroke: #1557ff;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 8 6;
  vector-effect: non-scaling-stroke;
}

.fmp-osm-markers {
  z-index: 3;
  pointer-events: none;
}

.fmp-osm-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
}

.fmp-osm-cluster {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 58px;
  padding: 0 8px;
  border: 3px solid rgba(255, 255, 255, .95);
  border-radius: 999px;
  background: var(--fmp-blue);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 15px 36px rgba(21, 87, 255, .34), 0 0 0 12px rgba(21, 87, 255, .09);
}

.fmp-osm-cluster strong {
  font-size: 17px;
  font-weight: 950;
  line-height: 1;
}

.fmp-osm-cluster span {
  max-width: 82px;
  margin-top: 3px;
  overflow: hidden;
  font-size: 9px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fmp-osm-price {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #07966b;
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
  box-shadow: 0 10px 24px rgba(7, 150, 107, .26);
  transition: transform .14s ease, background-color .14s ease, box-shadow .14s ease;
}

.fmp-osm-price:is(:hover, .is-active) {
  z-index: 2;
  transform: translateY(-2px) scale(1.04);
  background: var(--fmp-blue);
  box-shadow: 0 14px 30px rgba(21, 87, 255, .32);
}

.fmp-search-this-area {
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 10;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  height: 43px;
  padding: 0 18px;
  transform: translate(-50%, -8px);
  border: 0;
  border-radius: 11px;
  background: var(--fmp-blue);
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  opacity: 0;
  box-shadow: 0 12px 30px rgba(21, 87, 255, .28);
  transition: opacity .16s ease, transform .16s ease;
}

.fmp-search-this-area.is-visible {
  transform: translate(-50%, 0);
  opacity: 1;
}

.fmp-map-insight {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 7;
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 43px;
  padding: 0 14px;
  border: 1px solid rgba(228, 231, 236, .88);
  border-radius: 12px;
  background: rgba(255, 255, 255, .95);
  color: #475467;
  font-size: 12px;
  font-weight: 750;
  box-shadow: 0 10px 26px rgba(16, 24, 40, .13);
  backdrop-filter: blur(10px);
}

.fmp-map-insight strong {
  color: var(--fmp-ink);
  font-size: 13px;
  font-weight: 950;
}

.fmp-insight-divider {
  width: 1px;
  height: 20px;
  background: #e4e7ec;
}

.fmp-osm-tabs {
  position: absolute;
  top: 72px;
  left: 18px;
  z-index: 7;
  display: flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--fmp-border);
  border-radius: 12px;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 10px 26px rgba(16, 24, 40, .12);
  backdrop-filter: blur(10px);
}

.fmp-osm-tabs button {
  height: 34px;
  padding: 0 11px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #344054;
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.fmp-osm-tabs button.is-active {
  background: var(--fmp-ink);
  color: #fff;
}

.fmp-map-tools {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 8;
  display: flex;
  gap: 8px;
}

.fmp-map-tools button {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  height: 43px;
  padding: 0 14px;
  border: 1px solid var(--fmp-border);
  border-radius: 11px;
  background: rgba(255, 255, 255, .96);
  color: #344054;
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
  box-shadow: 0 10px 26px rgba(16, 24, 40, .13);
}

.fmp-map-tools button:hover {
  border-color: #b8c8ff;
  color: var(--fmp-blue);
}

.fmp-layer-menu {
  position: absolute;
  top: 69px;
  right: 18px;
  z-index: 12;
  display: grid;
  gap: 6px;
  width: 210px;
  padding: 12px;
  border: 1px solid var(--fmp-border);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(16, 24, 40, .18);
}

.fmp-layer-menu[hidden] { display: none !important; }
.fmp-layer-menu strong { padding: 3px 5px 7px; font-size: 12px; }
.fmp-layer-menu button {
  min-height: 38px;
  padding: 0 10px;
  border: 0;
  border-radius: 9px;
  background: #f7f9fc;
  color: #344054;
  cursor: pointer;
  text-align: left;
  font-size: 12px;
  font-weight: 800;
}

.fmp-osm-controls {
  position: absolute;
  right: 18px;
  bottom: 24px;
  z-index: 8;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fmp-osm-controls button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--fmp-border);
  border-radius: 11px;
  background: #fff;
  color: var(--fmp-ink);
  cursor: pointer;
  font-size: 20px;
  font-weight: 900;
  box-shadow: 0 9px 24px rgba(16, 24, 40, .14);
}

.fmp-osm-switch {
  position: absolute;
  right: 72px;
  bottom: 24px;
  z-index: 8;
  display: flex;
  overflow: hidden;
  border: 1px solid var(--fmp-border);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(16, 24, 40, .14);
}

.fmp-osm-switch button {
  height: 44px;
  padding: 0 15px;
  border: 0;
  background: #fff;
  color: #344054;
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
}

.fmp-osm-switch button.is-active {
  background: var(--fmp-ink);
  color: #fff;
}

.fmp-draw-help {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(390px, calc(100% - 36px));
  padding: 16px 18px;
  transform: translate(-50%, -50%);
  border: 1px solid #b9caff;
  border-radius: 15px;
  background: rgba(255, 255, 255, .96);
  color: var(--fmp-ink);
  text-align: center;
  box-shadow: 0 22px 55px rgba(16, 24, 40, .24);
  pointer-events: none;
}

.fmp-draw-help[hidden] { display: none !important; }
.fmp-draw-help strong { font-size: 14px; font-weight: 950; }
.fmp-draw-help span { margin-top: 4px; color: var(--fmp-muted); font-size: 11px; }
.fmp-draw-help button {
  min-height: 32px;
  margin-top: 10px;
  padding: 0 13px;
  border: 0;
  border-radius: 9px;
  background: var(--fmp-ink);
  color: #fff;
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  pointer-events: auto;
}

.fmp-osm-attribution {
  position: absolute;
  right: 18px;
  bottom: 4px;
  z-index: 7;
  padding: 3px 6px;
  border-radius: 6px;
  background: rgba(255, 255, 255, .82);
  color: #667085;
  font-size: 9px;
  line-height: 1.2;
}

.fmp-osm-attribution a {
  color: inherit;
  text-decoration: none;
}

.fmp-osm-popup {
  position: absolute;
  bottom: 24px;
  left: 24px;
  z-index: 15;
  display: none;
  grid-template-columns: minmax(180px, 42%) minmax(0, 1fr);
  width: min(550px, calc(100% - 170px));
  min-height: 178px;
  overflow: hidden;
  border: 1px solid var(--fmp-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 25px 65px rgba(16, 24, 40, .25);
}

.fmp-osm-popup.is-visible {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.fmp-osm-popup img,
.fmp-osm-popup-photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 178px;
  background: #e9edf4;
  object-fit: cover;
}

.fmp-osm-popup-photo {
  display: grid;
  place-items: center;
  color: #98a2b3;
  font-size: 12px;
  font-weight: 850;
}

.fmp-osm-popup-body {
  position: relative;
  padding: 18px 17px 15px;
}

.fmp-popup-actions {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  gap: 6px;
}

.fmp-popup-actions button {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  border: 1px solid var(--fmp-border);
  border-radius: 999px;
  background: #fff;
  color: #344054;
  cursor: pointer;
  font-size: 18px;
  font-weight: 850;
}

.fmp-popup-actions .fmp-popup-favorite.is-active {
  color: #d52e58;
}

.fmp-osm-popup-price {
  padding-right: 78px;
  color: var(--fmp-blue-dark);
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -.025em;
}

.fmp-osm-popup-title {
  margin-top: 5px;
  color: #1d2939;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.fmp-osm-popup-meta {
  margin-top: 5px;
  color: var(--fmp-muted);
  font-size: 11px;
}

.fmp-osm-popup-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin-top: 9px;
  color: #475467;
  font-size: 11px;
  font-weight: 750;
}

.fmp-popup-links {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.fmp-popup-links a,
.fmp-popup-links button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 13px;
  border: 0;
  border-radius: 9px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.fmp-popup-links a {
  background: var(--fmp-blue);
  color: #fff !important;
}

.fmp-popup-links button {
  background: #eef2f7;
  color: #344054;
}

.fmp-osm-side-panel {
  position: absolute;
  top: 118px;
  right: 18px;
  z-index: 13;
  display: none;
  width: min(350px, calc(100% - 36px));
  max-height: calc(100% - 175px);
  padding: 17px;
  overflow: auto;
  border: 1px solid var(--fmp-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 20px 52px rgba(16, 24, 40, .2);
}

.fmp-osm-side-panel.is-visible { display: block; }

.fmp-osm-panel-close {
  position: sticky;
  top: 0;
  float: right;
  width: 32px;
  height: 32px;
  margin: -6px -6px 4px 8px;
  border: 1px solid var(--fmp-border);
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  font-size: 18px;
}

.fmp-osm-side-panel h3 { margin: 0 0 6px; font-size: 18px; font-weight: 950; }
.fmp-osm-side-panel p { margin: 0 0 13px; color: var(--fmp-muted); font-size: 12px; line-height: 1.45; }
.fmp-osm-side-panel ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fmp-osm-side-panel li { padding: 10px 11px; border: 1px solid #edf0f5; border-radius: 11px; background: var(--fmp-soft); font-size: 12px; font-weight: 800; }
.fmp-osm-side-panel small { display: block; margin-top: 2px; color: var(--fmp-muted); font-weight: 650; }

.fmp-osm-list {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  overflow: auto;
  border-right: 1px solid var(--fmp-border);
  background: #fff;
  scrollbar-color: #cbd1dc transparent;
  scrollbar-width: thin;
}

.fmp-osm-list-head {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 13px 15px;
  border-bottom: 1px solid #edf0f5;
  background: rgba(255, 255, 255, .98);
  backdrop-filter: blur(12px);
}

.fmp-osm-list-head strong,
.fmp-osm-list-head span {
  display: block;
}

.fmp-osm-list-head strong {
  color: var(--fmp-ink);
  font-size: 16px;
  font-weight: 950;
}

.fmp-osm-list-head span {
  margin-top: 2px;
  color: var(--fmp-muted);
  font-size: 10px;
}

.fmp-list-actions {
  display: flex;
  gap: 7px;
  align-items: center;
}

.fmp-list-actions > button {
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--fmp-border);
  border-radius: 9px;
  background: #fff;
  color: #475467;
  cursor: pointer;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.fmp-osm-list-close {
  display: none;
  width: 34px;
  padding: 0 !important;
  font-size: 18px !important;
}

.fmp-osm-list-body {
  display: grid;
  gap: 0;
}

.fmp-osm-card {
  display: grid;
  grid-template-columns: 172px minmax(0, 1fr);
  min-height: 168px;
  padding: 12px;
  border-bottom: 1px solid #edf0f5;
  background: #fff;
  cursor: pointer;
  transition: background-color .14s ease, box-shadow .14s ease;
}

.fmp-osm-card[hidden] { display: none !important; }

.fmp-osm-card:is(:hover, .is-active) {
  position: relative;
  z-index: 1;
  background: #f4f7ff;
  box-shadow: inset 3px 0 0 var(--fmp-blue);
}

.fmp-card-media {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: 11px;
  background: #e9edf4;
}

.fmp-card-media > a {
  display: block;
  height: 100%;
}

.fmp-card-media img,
.fmp-card-media .fmp-osm-card-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 144px;
  border-radius: 11px;
  background: #e9edf4;
  color: #98a2b3;
  object-fit: cover;
  transition: transform .2s ease;
}

.fmp-osm-card:hover .fmp-card-media img {
  transform: scale(1.025);
}

.fmp-card-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(7, 150, 107, .94);
  color: #fff;
  font-size: 8px;
  font-weight: 950;
  text-transform: uppercase;
}

.fmp-card-favorite {
  position: absolute;
  top: 7px;
  right: 7px;
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  color: #344054;
  cursor: pointer;
  font-size: 19px;
  line-height: 1;
  box-shadow: 0 5px 14px rgba(16, 24, 40, .12);
}

.fmp-card-favorite.is-active {
  color: #d52e58;
}

.fmp-card-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 3px 0 2px 12px;
}

.fmp-card-price-row {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.fmp-card-price-row a {
  color: var(--fmp-blue-dark);
  text-decoration: none;
}

.fmp-card-price-row strong {
  display: block;
  overflow: hidden;
  font-size: 16px;
  font-weight: 950;
  letter-spacing: -.025em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fmp-card-price-row > span {
  flex: 0 0 auto;
  padding: 3px 6px;
  border-radius: 999px;
  background: #eef2f7;
  color: #475467;
  font-size: 8px;
  font-weight: 900;
  text-transform: uppercase;
}

.fmp-card-title {
  display: -webkit-box;
  margin-top: 7px;
  overflow: hidden;
  color: #1d2939;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: none;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.fmp-card-copy > small {
  display: block;
  margin-top: 5px;
  overflow: hidden;
  color: var(--fmp-muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fmp-card-specs {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 9px;
  margin-top: 9px;
  color: #475467;
  font-size: 10px;
  font-weight: 750;
}

.fmp-card-foot {
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 8px;
  color: #98a2b3;
  font-size: 9px;
}

.fmp-card-foot label {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  color: #475467;
  cursor: pointer;
  font-weight: 750;
}

.fmp-card-foot input {
  accent-color: var(--fmp-blue);
}

.fmp-osm-empty,
.fmp-no-results {
  padding: 34px 22px;
  color: var(--fmp-muted);
  text-align: center;
}

.fmp-no-results[hidden] { display: none !important; }
.fmp-osm-empty strong,
.fmp-no-results strong { display: block; color: var(--fmp-ink); font-size: 17px; font-weight: 950; }
.fmp-osm-empty p,
.fmp-no-results p { margin: 8px auto 0; max-width: 310px; font-size: 12px; line-height: 1.5; }
.fmp-no-results button { min-height: 38px; margin-top: 14px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--fmp-blue); color: #fff; cursor: pointer; font-size: 11px; font-weight: 850; }

.fmp-osm-list-toggle {
  display: none;
  position: absolute;
  bottom: 18px;
  left: 50%;
  z-index: 12;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 20px;
  transform: translateX(-50%);
  border: 0;
  border-radius: 999px;
  background: var(--fmp-ink);
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 15px 34px rgba(16, 24, 40, .28);
}

.fmp-comparison-tray {
  position: fixed;
  right: 24px;
  bottom: 22px;
  z-index: 10010;
  display: flex;
  gap: 10px;
  align-items: center;
  width: min(590px, calc(100vw - 48px));
  min-height: 64px;
  padding: 10px 12px 10px 16px;
  border: 1px solid #cfd9ff;
  border-radius: 15px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 22px 60px rgba(16, 24, 40, .24);
  backdrop-filter: blur(14px);
}

.fmp-comparison-tray[hidden] { display: none !important; }
.fmp-comparison-tray > div { flex: 1 1 auto; min-width: 0; }
.fmp-comparison-tray strong,
.fmp-comparison-tray span { display: block; }
.fmp-comparison-tray strong { font-size: 13px; font-weight: 950; }
.fmp-comparison-tray span { margin-top: 2px; overflow: hidden; color: var(--fmp-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.fmp-comparison-tray > button { height: 38px; padding: 0 13px; border: 1px solid var(--fmp-border); border-radius: 9px; background: #fff; color: #475467; cursor: pointer; font-size: 11px; font-weight: 850; }
.fmp-comparison-tray > button:last-child { border-color: var(--fmp-blue); background: var(--fmp-blue); color: #fff; }
.fmp-comparison-tray > button:disabled { border-color: var(--fmp-border); background: #eef2f7; color: #98a2b3; cursor: not-allowed; }

.fmp-compare-panel {
  position: fixed;
  inset: calc(var(--fmp-osm-top, 76px) + 22px) 22px 22px;
  z-index: 10030;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--fmp-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 35px 90px rgba(16, 24, 40, .32);
}

.fmp-compare-panel[hidden] { display: none !important; }

.fmp-compare-head {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--fmp-border);
}

.fmp-compare-head strong,
.fmp-compare-head span { display: block; }
.fmp-compare-head strong { font-size: 19px; font-weight: 950; }
.fmp-compare-head span { margin-top: 3px; color: var(--fmp-muted); font-size: 11px; }
.fmp-compare-head button { width: 38px; height: 38px; border: 1px solid var(--fmp-border); border-radius: 10px; background: #fff; cursor: pointer; font-size: 22px; }

.fmp-compare-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  padding: 18px;
  overflow: auto;
}

.fmp-compare-grid article {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--fmp-border);
  border-radius: 15px;
  background: #fff;
}

.fmp-compare-grid img,
.fmp-compare-ph { display: grid; place-items: center; width: 100%; height: 190px; background: #e9edf4; color: #98a2b3; object-fit: cover; }
.fmp-compare-grid article > strong,
.fmp-compare-grid article > h3,
.fmp-compare-grid article > p,
.fmp-compare-grid article > dl { margin-right: 16px; margin-left: 16px; }
.fmp-compare-grid article > strong { display: block; margin-top: 15px; color: var(--fmp-blue-dark); font-size: 19px; font-weight: 950; }
.fmp-compare-grid h3 { margin-top: 6px; margin-bottom: 0; font-size: 14px; line-height: 1.35; }
.fmp-compare-grid p { margin-top: 5px; color: var(--fmp-muted); font-size: 11px; }
.fmp-compare-grid dl { margin-top: 15px; margin-bottom: 15px; border-top: 1px solid #edf0f5; }
.fmp-compare-grid dl > div { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf0f5; font-size: 11px; }
.fmp-compare-grid dt { color: var(--fmp-muted); }
.fmp-compare-grid dd { margin: 0; color: var(--fmp-ink); font-weight: 850; }
.fmp-compare-grid article > a { display: flex; align-items: center; justify-content: center; height: 42px; margin: 0 16px 16px; border-radius: 10px; background: var(--fmp-blue); color: #fff !important; font-size: 12px; font-weight: 900; text-decoration: none; }

.fmp-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  z-index: 10050;
  max-width: min(520px, calc(100vw - 32px));
  padding: 12px 17px;
  transform: translate(-50%, 12px);
  border-radius: 11px;
  background: var(--fmp-ink);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  opacity: 0;
  box-shadow: 0 16px 40px rgba(16, 24, 40, .27);
  transition: opacity .16s ease, transform .16s ease;
}

.fmp-toast[hidden] { display: none !important; }
.fmp-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }

body.fmp-map-open .fmp-search-top,
body.fmp-map-open .fmp-filter-shell,
body.fmp-map-open .fmp-filter-compact-row,
body.fmp-map-open .fmp-crexi-filter-row,
body.fmp-map-open .fmp-view-toggle,
body.fmp-map-open .fmp-results-toolbar,
body.fmp-map-open .findar-search-filters,
body.fmp-map-open .findar-results-filters,
body.fmp-map-open .findar-location-first-search,
body.fmp-map-open .findar-location-search-form,
body.fmp-map-open .flfs-search,
body.fmp-map-open .flfs-form {
  display: none !important;
}

body.fmp-map-open form:not(.fmp-discovery-form):has(input[name="max_price"]):has(select[name="statut"]) {
  display: none !important;
}

.fmp-osm-page-v45185 .fmp-osm-map,
.fmp-osm-page-v45185 .fmp-osm-markers,
.fmp-osm-page-v45185 .fmp-osm-marker,
.fmp-osm-page-v45185 .fmp-osm-price,
.fmp-osm-page-v45185 .fmp-osm-cluster,
.fmp-osm-page-v45185 .fmp-osm-popup,
.fmp-osm-page-v45185 .fmp-osm-popup * {
  pointer-events: auto !important;
}

body.fmp-lang-ar .fmp-discovery-map-v46128 {
  direction: rtl;
}

body.fmp-lang-ar .fmp-discovery-map-v46128 .fmp-osm-map,
body.fmp-lang-ar .fmp-discovery-map-v46128 .fmp-osm-popup,
body.fmp-lang-ar .fmp-discovery-map-v46128 .fmp-osm-markers,
body.fmp-lang-ar .fmp-discovery-map-v46128 .fmp-zone-overlay {
  direction: ltr;
}

body.fmp-lang-ar .fmp-conversation-field input { padding-right: 43px; padding-left: 112px; text-align: right; }
body.fmp-lang-ar .fmp-search-icon { right: 15px; left: auto; }
body.fmp-lang-ar .fmp-conversation-submit { right: auto; left: 5px; }
body.fmp-lang-ar .fmp-card-copy { padding-right: 12px; padding-left: 0; }
body.fmp-lang-ar .fmp-osm-card:is(:hover, .is-active) { box-shadow: inset -3px 0 0 var(--fmp-blue); }

@media (max-width: 1320px) {
  .fmp-discovery-mainbar { align-items: flex-start; }
  .fmp-discovery-form { flex-wrap: wrap; }
  .fmp-conversation-field { flex-basis: calc(100% - 165px); }
  .fmp-add-zone { flex: 0 0 155px; }
  .fmp-osm-field select,
  .fmp-more-filters,
  .fmp-save-search { height: 40px; }
  .fmp-osm-layout { grid-template-columns: 390px minmax(0, 1fr); }
}

@media (max-width: 1080px) {
  .fmp-discovery-view { display: none; }
  .fmp-conversation-field { flex-basis: calc(100% - 165px); }
  .fmp-osm-layout { grid-template-columns: 355px minmax(0, 1fr); }
  .fmp-osm-card { grid-template-columns: 135px minmax(0, 1fr); min-height: 148px; }
  .fmp-card-media img,
  .fmp-card-media .fmp-osm-card-ph { min-height: 124px; }
  .fmp-osm-tabs { display: none; }
  .fmp-map-insight { top: 16px; }
}

@media (max-width: 820px) {
  .fmp-osm-page {
    inset: var(--fmp-osm-top, 64px) 0 0;
  }

  .fmp-discovery-mainbar {
    display: block;
    min-height: 0;
    padding: 9px 10px;
  }

  .fmp-discovery-form {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 7px;
  }

  .fmp-conversation-field {
    grid-column: 1 / -1;
    min-width: 0;
  }

  .fmp-conversation-field input {
    height: 44px;
    padding-right: 93px;
    font-size: 12px;
  }

  .fmp-conversation-submit {
    padding: 0 10px;
    font-size: 10px;
  }

  .fmp-add-zone {
    height: 39px;
    min-width: 0;
    padding: 0 10px;
    font-size: 11px;
  }

  .fmp-osm-field-status select,
  .fmp-osm-field-price select {
    height: 39px;
    min-width: 100px;
    font-size: 11px;
  }

  .fmp-osm-field-type,
  .fmp-osm-field-rooms,
  .fmp-more-filters,
  .fmp-save-search {
    display: none;
  }

  .fmp-discovery-map-v46128.is-more-filters-open .fmp-osm-field-type,
  .fmp-discovery-map-v46128.is-more-filters-open .fmp-osm-field-rooms,
  .fmp-discovery-map-v46128.is-more-filters-open .fmp-more-filters,
  .fmp-discovery-map-v46128.is-more-filters-open .fmp-save-search {
    display: block;
  }

  .fmp-zone-rail {
    min-height: 42px;
    padding: 5px 10px 7px;
  }

  .fmp-zone-rail > strong { display: none; }

  .fmp-zone-panel {
    top: auto;
    right: 10px;
    bottom: 10px;
    left: 10px;
    width: auto;
    max-height: 70vh;
    border-radius: 20px;
  }

  .fmp-osm-layout {
    position: relative;
    display: block;
    min-height: 0;
  }

  .fmp-osm-map-side {
    position: absolute;
    inset: 0;
  }

  .fmp-osm-list {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    max-height: 72vh;
    transform: translateY(105%);
    border-top: 1px solid var(--fmp-border);
    border-right: 0;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -22px 60px rgba(16, 24, 40, .22);
    transition: transform .22s ease;
  }

  .fmp-osm-list.is-open,
  .fmp-discovery-map-v46128.is-list-view .fmp-osm-list {
    transform: translateY(0);
  }

  .fmp-osm-list-close,
  .fmp-osm-list-toggle {
    display: flex;
  }

  .fmp-osm-list-head {
    min-height: 64px;
    padding: 12px 14px;
  }

  .fmp-osm-card {
    grid-template-columns: 128px minmax(0, 1fr);
    min-height: 140px;
    padding: 10px;
  }

  .fmp-card-media img,
  .fmp-card-media .fmp-osm-card-ph {
    min-height: 120px;
  }

  .fmp-map-insight {
    top: 12px;
    left: 12px;
    min-height: 38px;
    padding: 0 11px;
  }

  .fmp-map-tools {
    top: 12px;
    right: 12px;
  }

  .fmp-map-tools button {
    width: 42px;
    height: 42px;
    padding: 0;
    font-size: 0;
  }

  .fmp-map-tools button span {
    font-size: 18px;
  }

  .fmp-search-this-area {
    top: 64px;
    height: 40px;
    font-size: 11px;
  }

  .fmp-layer-menu {
    top: 61px;
    right: 12px;
  }

  .fmp-osm-popup {
    bottom: 76px;
    left: 12px;
    width: min(550px, calc(100% - 24px));
  }

  .fmp-osm-switch {
    right: 66px;
    bottom: 15px;
  }

  .fmp-osm-controls {
    right: 12px;
    bottom: 15px;
  }

  .fmp-osm-controls button,
  .fmp-osm-switch button {
    height: 42px;
  }

  .fmp-osm-controls button { width: 42px; }

  .fmp-comparison-tray {
    right: 12px;
    bottom: 70px;
    left: 12px;
    width: auto;
  }

  .fmp-compare-panel {
    inset: calc(var(--fmp-osm-top, 64px) + 8px) 8px 8px;
    border-radius: 16px;
  }

  .fmp-compare-grid {
    grid-template-columns: repeat(3, 280px);
  }
}

@media (max-width: 520px) {
  .fmp-discovery-form {
    grid-template-columns: 1fr 1fr;
  }

  .fmp-add-zone {
    grid-column: 1 / -1;
    justify-content: center;
  }

  .fmp-osm-field-status,
  .fmp-osm-field-price {
    width: 100%;
  }

  .fmp-osm-field-status select,
  .fmp-osm-field-price select {
    width: 100%;
  }

  .fmp-zone-rail > button {
    display: none;
  }

  .fmp-map-insight {
    max-width: calc(100% - 118px);
    gap: 6px;
    overflow: hidden;
    font-size: 10px;
  }

  .fmp-map-insight span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fmp-insight-divider { display: none; }

  .fmp-osm-popup {
    bottom: 0;
    left: 0;
    grid-template-columns: 112px minmax(0, 1fr);
    width: 100%;
    min-height: 142px;
    border-radius: 19px 19px 0 0;
  }

  .fmp-osm-popup img,
  .fmp-osm-popup-photo {
    min-height: 142px;
  }

  .fmp-osm-popup-body {
    padding: 13px 11px;
  }

  .fmp-osm-popup-price {
    padding-right: 68px;
    font-size: 15px;
  }

  .fmp-osm-popup-title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 11px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .fmp-popup-links {
    margin-top: 8px;
  }

  .fmp-popup-links a,
  .fmp-popup-links button {
    height: 32px;
    padding: 0 9px;
    font-size: 9px;
  }

  .fmp-osm-card {
    grid-template-columns: 112px minmax(0, 1fr);
    min-height: 130px;
  }

  .fmp-card-media img,
  .fmp-card-media .fmp-osm-card-ph {
    min-height: 110px;
  }

  .fmp-card-price-row strong { font-size: 14px; }
  .fmp-card-title { font-size: 11px; }
  .fmp-card-foot > span { display: none; }

  .fmp-comparison-tray {
    display: grid;
    grid-template-columns: 1fr auto auto;
    min-height: 58px;
    padding: 8px 9px 8px 12px;
  }

  .fmp-comparison-tray span { display: none; }
  .fmp-comparison-tray > button { height: 34px; padding: 0 10px; font-size: 10px; }

  .fmp-compare-grid {
    grid-template-columns: repeat(3, 250px);
    padding: 12px;
  }

  .fmp-compare-grid img,
  .fmp-compare-ph { height: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  .fmp-osm-page *,
  .fmp-osm-page *::before,
  .fmp-osm-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
  }
}

/* ============================================================
 * V46129 — REAL NEARBY POI / OpenStreetMap Overpass
 * Scoped to the discovery map. Property pins and routes stay untouched.
 * ============================================================ */
.fmp-discovery-map-v46128 .fmp-poi-markers {
  position: absolute;
  inset: 0;
  z-index: 5;
  overflow: hidden;
  pointer-events: none;
  will-change: transform;
}

.fmp-discovery-map-v46128 .fmp-poi-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
}

.fmp-discovery-map-v46128 .fmp-poi-marker > button {
  position: relative;
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  padding: 0;
  border: 3px solid #fff;
  border-radius: 999px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 950;
  box-shadow: 0 9px 24px rgba(16, 24, 40, .25), 0 0 0 7px rgba(255, 255, 255, .26);
  transition: transform .15s ease, box-shadow .15s ease;
}

.fmp-discovery-map-v46128 .fmp-poi-marker--schools > button,
.fmp-discovery-map-v46128 .fmp-poi-panel-icon--schools { background: #1557ff; }
.fmp-discovery-map-v46128 .fmp-poi-marker--shops > button,
.fmp-discovery-map-v46128 .fmp-poi-panel-icon--shops { background: #e6750d; }
.fmp-discovery-map-v46128 .fmp-poi-marker--health > button,
.fmp-discovery-map-v46128 .fmp-poi-panel-icon--health { background: #dc2f4f; }
.fmp-discovery-map-v46128 .fmp-poi-marker--mosques > button,
.fmp-discovery-map-v46128 .fmp-poi-panel-icon--mosques { background: #07966b; }
.fmp-discovery-map-v46128 .fmp-poi-marker--transport > button,
.fmp-discovery-map-v46128 .fmp-poi-panel-icon--transport { background: #6d28d9; }

.fmp-discovery-map-v46128 .fmp-poi-marker:is(:hover, .is-active) > button {
  z-index: 3;
  transform: translateY(-2px) scale(1.1);
  box-shadow: 0 14px 32px rgba(16, 24, 40, .30), 0 0 0 8px rgba(255, 255, 255, .38);
}

.fmp-discovery-map-v46128 .fmp-poi-marker small {
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  z-index: 4;
  display: none;
  width: max-content;
  max-width: 210px;
  padding: 7px 9px;
  transform: translateX(-50%);
  border: 1px solid #e4e7ec;
  border-radius: 9px;
  background: #fff;
  color: #1d2939;
  text-align: left;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
  box-shadow: 0 12px 28px rgba(16, 24, 40, .20);
}

.fmp-discovery-map-v46128 .fmp-poi-marker small em {
  display: block;
  margin-top: 2px;
  color: #667085;
  font-style: normal;
  font-weight: 700;
}

.fmp-discovery-map-v46128 .fmp-poi-marker:is(:hover, .is-active) small { display: block; }

.fmp-discovery-map-v46128 .fmp-osm-tabs {
  max-width: calc(100% - 36px);
  overflow-x: auto;
  scrollbar-width: none;
}
.fmp-discovery-map-v46128 .fmp-osm-tabs::-webkit-scrollbar { display: none; }

.fmp-discovery-map-v46128 .fmp-osm-side-panel {
  width: min(390px, calc(100% - 36px));
}

.fmp-discovery-map-v46128 .fmp-poi-panel-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding-right: 34px;
}

.fmp-discovery-map-v46128 .fmp-poi-panel-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #fff;
  font-size: 15px;
  font-weight: 950;
  box-shadow: 0 9px 20px rgba(16, 24, 40, .16);
}

.fmp-discovery-map-v46128 .fmp-poi-panel-head h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.2;
}

.fmp-discovery-map-v46128 .fmp-poi-panel-head p {
  margin: 5px 0 0;
  overflow: hidden;
  color: #344054;
  font-size: 11px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fmp-discovery-map-v46128 .fmp-poi-panel-head p small {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: #667085;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fmp-discovery-map-v46128 .fmp-poi-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 14px 0 10px;
  padding: 9px 11px;
  border: 1px solid #e9edf4;
  border-radius: 11px;
  background: #f7f9fc;
}

.fmp-discovery-map-v46128 .fmp-poi-summary strong { font-size: 12px; font-weight: 950; }
.fmp-discovery-map-v46128 .fmp-poi-summary span { color: #667085; font-size: 10px; font-weight: 800; }

.fmp-discovery-map-v46128 .fmp-poi-list {
  display: grid;
  gap: 7px;
}

.fmp-discovery-map-v46128 .fmp-poi-row {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  width: 100%;
  min-height: 56px;
  padding: 9px 10px;
  border: 1px solid #e9edf4;
  border-radius: 11px;
  background: #fff;
  color: #1d2939;
  cursor: pointer;
  text-align: left;
  transition: border-color .14s ease, background-color .14s ease, transform .14s ease;
}

.fmp-discovery-map-v46128 .fmp-poi-row:hover,
.fmp-discovery-map-v46128 .fmp-poi-row.is-active {
  transform: translateY(-1px);
  border-color: #9db5ff;
  background: #f5f8ff;
}

.fmp-discovery-map-v46128 .fmp-poi-row-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
}

.fmp-discovery-map-v46128 .fmp-poi-row strong,
.fmp-discovery-map-v46128 .fmp-poi-row small { display: block; }
.fmp-discovery-map-v46128 .fmp-poi-row strong { font-size: 11px; font-weight: 900; line-height: 1.25; }
.fmp-discovery-map-v46128 .fmp-poi-row small { margin-top: 3px; color: #667085; font-size: 9px; font-weight: 700; }
.fmp-discovery-map-v46128 .fmp-poi-row em { color: #344054; font-size: 10px; font-style: normal; font-weight: 900; white-space: nowrap; }

.fmp-discovery-map-v46128 .fmp-poi-loading,
.fmp-discovery-map-v46128 .fmp-poi-empty {
  display: grid;
  justify-items: center;
  margin-top: 14px;
  padding: 24px 15px;
  border: 1px dashed #cfd6e4;
  border-radius: 13px;
  background: #f8fafc;
  text-align: center;
}

.fmp-discovery-map-v46128 .fmp-poi-loading > span {
  width: 28px;
  height: 28px;
  margin-bottom: 11px;
  border: 3px solid #dbe4ff;
  border-top-color: #1557ff;
  border-radius: 999px;
  animation: fmpPoiSpin .75s linear infinite;
}

.fmp-discovery-map-v46128 .fmp-poi-loading strong,
.fmp-discovery-map-v46128 .fmp-poi-empty strong { color: #1d2939; font-size: 12px; font-weight: 900; }
.fmp-discovery-map-v46128 .fmp-poi-empty span { max-width: 290px; margin-top: 6px; color: #667085; font-size: 10px; line-height: 1.5; }
.fmp-discovery-map-v46128 .fmp-poi-loading i { width: 100%; height: 8px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: linear-gradient(90deg, #edf1f7 25%, #f8fafc 50%, #edf1f7 75%); background-size: 200% 100%; animation: fmpPoiShimmer 1.15s infinite; }
.fmp-discovery-map-v46128 .fmp-poi-loading i:nth-of-type(2) { width: 84%; }
.fmp-discovery-map-v46128 .fmp-poi-loading i:nth-of-type(3) { width: 66%; }

.fmp-discovery-map-v46128 .fmp-poi-empty button {
  min-height: 36px;
  margin-top: 12px;
  padding: 0 14px;
  border: 0;
  border-radius: 9px;
  background: #101828;
  color: #fff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 850;
}

.fmp-discovery-map-v46128 .fmp-poi-source {
  margin-top: 11px;
  color: #98a2b3;
  text-align: right;
  font-size: 9px;
  font-weight: 650;
}

.fmp-discovery-map-v46128 .fmp-popup-nearby {
  margin-top: 11px;
  padding-top: 9px;
  border-top: 1px solid #edf0f5;
}

.fmp-discovery-map-v46128 .fmp-popup-nearby > span {
  display: block;
  margin-bottom: 6px;
  color: #667085;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.fmp-discovery-map-v46128 .fmp-popup-nearby > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.fmp-discovery-map-v46128 .fmp-popup-nearby button {
  min-height: 29px;
  padding: 0 9px;
  border: 1px solid #dfe5ef;
  border-radius: 8px;
  background: #f7f9fc;
  color: #344054;
  cursor: pointer;
  font-size: 9px;
  font-weight: 850;
}

@keyframes fmpPoiSpin { to { transform: rotate(360deg); } }
@keyframes fmpPoiShimmer { to { background-position: -200% 0; } }

@media (max-width: 760px) {
  .fmp-discovery-map-v46128 .fmp-osm-tabs {
    display: flex;
    top: 62px;
    left: 12px;
    max-width: calc(100% - 24px);
  }
  .fmp-discovery-map-v46128 .fmp-osm-tabs button { height: 32px; padding: 0 10px; }
  .fmp-discovery-map-v46128 .fmp-osm-side-panel {
    top: auto;
    right: 10px;
    bottom: 72px;
    left: 10px;
    width: auto;
    max-height: min(56vh, 520px);
    border-radius: 17px;
  }
  .fmp-discovery-map-v46128 .fmp-poi-marker small { display: none !important; }
  .fmp-discovery-map-v46128 .fmp-osm-popup { min-height: 205px; }
}

@media (prefers-reduced-motion: reduce) {
  .fmp-discovery-map-v46128 .fmp-poi-loading > span,
  .fmp-discovery-map-v46128 .fmp-poi-loading i { animation: none; }
}

.fmp-discovery-map-v46128 .fmp-poi-precision {
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid #f3d08a;
  border-radius: 9px;
  background: #fff8e8;
  color: #7a4d00;
  font-size: 9px;
  font-weight: 750;
  line-height: 1.4;
}

/* === V46148 — one stable map filter system === */
.fmp-stable-map-v46148 .fmp-map-price-menu > button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:150px;
  height:46px;
  padding:0 13px;
  border:1px solid #d6dae2;
  border-radius:12px;
  background:#fff;
  color:#1d2939;
  cursor:pointer;
  font-size:13px;
  font-weight:800;
}

.fmp-stable-map-v46148 .fmp-map-price-popover {
  position:absolute;
  top:calc(100% + 9px);
  right:0;
  z-index:180;
  width:min(380px,calc(100vw - 24px));
  padding:16px;
  border:1px solid #dfe5ee;
  border-radius:16px;
  background:#fff;
  box-shadow:0 22px 55px rgba(7,19,39,.18);
}

.fmp-stable-map-v46148 .fmp-map-price-popover[hidden],
.fmp-stable-map-v46148 .fmp-map-filter-backdrop[hidden],
.fmp-stable-map-v46148 .fmp-map-filter-drawer[hidden] {
  display:none!important;
}

.fmp-stable-map-v46148 .fmp-filter-popover__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.fmp-stable-map-v46148 .fmp-filter-popover__head strong {
  color:#071327;
  font-size:15px;
  font-weight:900;
}

.fmp-stable-map-v46148 .fmp-filter-popover__head button {
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#f3f5f8;
  color:#071327;
  cursor:pointer;
  font-size:22px;
}

.fmp-stable-map-v46148 .fmp-map-price-popover .fmp-range-fields,
.fmp-stable-map-v46148 .fmp-map-range {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:end;
  gap:9px;
}

.fmp-stable-map-v46148 .fmp-map-price-popover .fmp-range-fields label,
.fmp-stable-map-v46148 .fmp-map-range label {
  display:grid;
  gap:7px;
  min-width:0;
}

.fmp-stable-map-v46148 .fmp-map-price-popover .fmp-range-fields label > span,
.fmp-stable-map-v46148 .fmp-map-range label > span {
  color:#475569;
  font-size:12px;
  font-weight:800;
}

.fmp-stable-map-v46148 .fmp-map-price-popover select,
.fmp-stable-map-v46148 .fmp-map-range :is(select,input),
.fmp-stable-map-v46148 .fmp-map-filter-select select {
  width:100%;
  height:46px;
  min-width:0;
  padding:0 12px;
  border:1px solid #d6dde7;
  border-radius:11px;
  outline:0;
  background:#fff;
  color:#071327;
  font-size:13px;
  font-weight:750;
}

.fmp-stable-map-v46148 .fmp-map-price-popover select:focus,
.fmp-stable-map-v46148 .fmp-map-range :is(select,input):focus,
.fmp-stable-map-v46148 .fmp-map-filter-select select:focus {
  border-color:#1857ff;
  box-shadow:0 0 0 4px rgba(24,87,255,.11);
}

.fmp-stable-map-v46148 .fmp-map-filter-backdrop {
  position:absolute;
  inset:0;
  z-index:310;
  background:rgba(5,15,30,.46);
  opacity:0;
  transition:opacity .18s ease;
}

.fmp-stable-map-v46148 .fmp-map-filter-backdrop.is-open {
  opacity:1;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer {
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  z-index:320;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(440px,100%);
  overflow:hidden;
  border-left:1px solid #dfe5ee;
  background:#f7f9fc;
  box-shadow:-24px 0 60px rgba(7,19,39,.18);
  transform:translateX(102%);
  transition:transform .2s cubic-bezier(.22,1,.36,1);
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer.is-open {
  transform:translateX(0);
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:86px;
  padding:16px 20px;
  border-bottom:1px solid #dfe5ee;
  background:#fff;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__head span {
  color:#1857ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__head h2 {
  margin:3px 0 1px;
  color:#071327;
  font-size:22px;
  font-weight:950;
  line-height:1;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__head small {
  color:#627086;
  font-size:12px;
  font-weight:700;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__head > button {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border:1px solid #dfe5ee;
  border-radius:50%;
  background:#fff;
  color:#071327;
  cursor:pointer;
  font-size:25px;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__body {
  display:grid;
  align-content:start;
  gap:12px;
  padding:14px;
  overflow-y:auto;
  overscroll-behavior:contain;
}

.fmp-stable-map-v46148 .fmp-map-filter-card {
  padding:16px;
  border:1px solid #dfe5ee;
  border-radius:16px;
  background:#fff;
}

.fmp-stable-map-v46148 .fmp-map-filter-card h3 {
  margin:0 0 13px;
  padding-bottom:11px;
  border-bottom:1px solid #e6ebf2;
  color:#071327;
  font-size:14px;
  font-weight:900;
}

.fmp-stable-map-v46148 .fmp-map-choice-grid {
  display:grid;
  gap:8px;
}

.fmp-stable-map-v46148 .fmp-map-choice-grid--transaction {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.fmp-stable-map-v46148 .fmp-map-choice-grid--rooms {
  grid-template-columns:repeat(6,minmax(0,1fr));
}

.fmp-stable-map-v46148 .fmp-map-choice-grid button {
  min-width:0;
  min-height:44px;
  padding:0 8px;
  border:1px solid #cfd7e3;
  border-radius:10px;
  background:#fff;
  color:#243044;
  cursor:pointer;
  font-size:12px;
  font-weight:850;
}

.fmp-stable-map-v46148 .fmp-map-choice-grid button.is-selected {
  border-color:#1857ff;
  background:#edf3ff;
  color:#1047dc;
  box-shadow:inset 0 0 0 1px #1857ff;
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__foot {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:10px;
  padding:13px 14px;
  border-top:1px solid #dfe5ee;
  background:#fff;
  box-shadow:0 -8px 24px rgba(7,19,39,.05);
}

.fmp-stable-map-v46148 .fmp-map-filter-drawer__foot button {
  min-height:48px;
  border-radius:11px;
  cursor:pointer;
  font-size:13px;
  font-weight:900;
}

.fmp-stable-map-v46148 .fmp-map-filter-reset {
  border:1px solid #1857ff;
  background:#fff;
  color:#1047dc;
}

.fmp-stable-map-v46148 .fmp-map-filter-apply {
  border:1px solid #1857ff;
  background:#1857ff;
  color:#fff;
  box-shadow:0 9px 22px rgba(24,87,255,.20);
}

.fmp-stable-map-v46148 .fmp-more-filters.is-active {
  border-color:#1857ff;
  background:#edf3ff;
  color:#1047dc;
}

@media (max-width:820px) {
  .fmp-stable-map-v46148 .fmp-more-filters {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:94px;
    height:39px;
  }

  .fmp-stable-map-v46148.is-more-filters-open .fmp-osm-field-type,
  .fmp-stable-map-v46148.is-more-filters-open .fmp-osm-field-rooms,
  .fmp-stable-map-v46148.is-more-filters-open .fmp-save-search {
    display:none;
  }
}

@media (max-width:520px) {
  .fmp-stable-map-v46148 .fmp-more-filters {
    grid-column:1 / -1;
    width:100%;
  }

  .fmp-stable-map-v46148 .fmp-map-filter-drawer {
    width:100%;
    border-left:0;
  }

  .fmp-stable-map-v46148 .fmp-map-choice-grid--rooms {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

html[dir="rtl"] .fmp-stable-map-v46148 .fmp-map-filter-drawer,
body.fmp-lang-ar .fmp-stable-map-v46148 .fmp-map-filter-drawer {
  right:auto;
  left:0;
  border-right:1px solid #dfe5ee;
  border-left:0;
  transform:translateX(-102%);
}

html[dir="rtl"] .fmp-stable-map-v46148 .fmp-map-filter-drawer.is-open,
body.fmp-lang-ar .fmp-stable-map-v46148 .fmp-map-filter-drawer.is-open {
  transform:translateX(0);
}
