/* Interactive MLS map — uses the shared MLSImport section design tokens. */
.mlsimport-elementor-mls-map__module { --mls-map-covered: #f2745b; --mls-map-outside: #d9d5cf; --mls-map-hover: #d8caf2; --mls-map-border: #fbf8f3; max-width: 1080px; margin: 0 auto; }
.mlsimport-elementor-mls-map__head { display: flex; justify-content: space-between; gap: 32px; align-items: flex-end; margin-bottom: 28px; }
.mlsimport-elementor-mls-map__head .mlsimport-elementor-h2 { margin-bottom: 0; }
.mlsimport-elementor-mls-map__head .mlsimport-elementor-lead { margin-top: 10px; }
.mlsimport-elementor-mls-map__meta { display: flex; flex-direction: column; gap: 4px; flex: 0 0 auto; text-align: right; color: var(--mlsimport-elementor-soft); font: 500 12px/1.45 var(--mlsimport-elementor-font-mono); }
.mlsimport-elementor-mls-map__canvas { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--mlsimport-elementor-border); border-radius: var(--mlsimport-elementor-radius-xl); background: var(--mlsimport-elementor-surface); padding: clamp(18px, 4vw, 48px); isolation: isolate; }
.mlsimport-elementor-mls-map__svg { display: block; width: 100%; height: auto; overflow: visible; }
.mlsimport-elementor-mls-map__county { fill: var(--mls-map-outside); stroke: var(--mls-map-border); transition: fill .16s ease, filter .16s ease; vector-effect: non-scaling-stroke; }
.mlsimport-elementor-mls-map__county.is-covered { fill: var(--mls-map-covered); cursor: pointer; outline: none; }
.mlsimport-elementor-mls-map__county.is-covered:hover,
.mlsimport-elementor-mls-map__county.is-covered.is-active,
.mlsimport-elementor-mls-map__county.is-covered:focus { fill: var(--mls-map-hover); filter: drop-shadow(0 3px 5px rgba(28,25,23,.18)); }
.mlsimport-elementor-mls-map__tooltip { position: absolute; z-index: 3; top: 0; left: 0; min-width: 210px; max-width: min(280px, calc(100% - 20px)); display: flex; flex-direction: column; gap: 7px; padding: 16px 18px; border: 1px solid rgba(28,25,23,.08); border-radius: var(--mlsimport-elementor-radius-md); background: rgba(28,25,23,.94); color: #fff; box-shadow: 0 18px 45px -18px rgba(28,25,23,.55); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .12s ease, visibility .12s ease; }
.mlsimport-elementor-mls-map__tooltip.is-visible { opacity: 1; visibility: visible; }
.mlsimport-elementor-mls-map__tooltip-title { font: 600 17px/1.2 var(--mlsimport-elementor-font-heading); }
.mlsimport-elementor-mls-map__tooltip-label { color: rgba(255,255,255,.62); font: 600 10px/1.2 var(--mlsimport-elementor-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.mlsimport-elementor-mls-map__tooltip-cities { color: rgba(255,255,255,.9); font-size: 13px; line-height: 1.45; }
.mlsimport-elementor-mls-map__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 18px; color: var(--mlsimport-elementor-muted); font-size: 13px; }
.mlsimport-elementor-mls-map__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.mlsimport-elementor-mls-map__swatch { width: 12px; height: 12px; border: 1px solid var(--mls-map-border); border-radius: 4px; }
.mlsimport-elementor-mls-map__swatch--covered { background: var(--mls-map-covered); }
.mlsimport-elementor-mls-map__swatch--outside { background: var(--mls-map-outside); }
.mlsimport-elementor-mls-map__legend .mlsimport-elementor-mls-map__hint { margin-left: auto; color: var(--mlsimport-elementor-soft); font-family: var(--mlsimport-elementor-font-mono); }
.mlsimport-elementor-mls-map__error, .mlsimport-elementor-mls-map__noscript { padding: 18px 20px; border: 1px solid var(--mlsimport-elementor-border); border-radius: var(--mlsimport-elementor-radius-md); background: var(--mlsimport-elementor-surface); color: var(--mlsimport-elementor-muted); }
.mlsimport-elementor-mls-map__stage { position: relative; }
/* Reserve space only while D3 hasn't rendered yet — an always-on min-height
   leaves a dead gap under the shorter mobile-width SVG. */
.mlsimport-elementor-mls-map__stage:empty { min-height: 320px; }
.mlsimport-elementor-mls-map__stage svg { touch-action: none; cursor: grab; }
.mlsimport-elementor-mls-map__stage svg:active { cursor: grabbing; }
.mlsimport-elementor-mls-map__county:not(.is-covered):hover { fill: #cdc7bf; }
.mlsimport-elementor-mls-map__state { fill: none; stroke: rgba(28,25,23,.55); stroke-width: 1.1; vector-effect: non-scaling-stroke; pointer-events: none; }
.mlsimport-elementor-mls-map__zoom { position: absolute; top: 14px; right: 14px; z-index: 4; display: flex; flex-direction: column; gap: 8px; }
.mlsimport-elementor-mls-map__zoom-btn { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid rgba(28,25,23,.12); border-radius: 50%; background: #fff; color: var(--mlsimport-elementor-text); font: 600 18px/1 var(--mlsimport-elementor-font-body); cursor: pointer; box-shadow: 0 6px 16px -8px rgba(28,25,23,.35); transition: background .15s ease; }
.mlsimport-elementor-mls-map__zoom-btn:hover { background: var(--mlsimport-elementor-surface); }
/* Bare embed (per-MLS mode): map + legend only, no card frame. */
.mlsimport-elementor-mls-map--bare .mlsimport-elementor-mls-map__canvas { border: 0; border-radius: 0; background: transparent; padding: 0; }

@media (max-width: 640px) {
  .mlsimport-elementor-mls-map__head { display: block; }
  .mlsimport-elementor-mls-map__meta { margin-top: 14px; text-align: left; }
  .mlsimport-elementor-mls-map__canvas { padding: 14px; border-radius: var(--mlsimport-elementor-radius-lg); }
  .mlsimport-elementor-mls-map__legend .mlsimport-elementor-mls-map__hint { width: 100%; margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .mlsimport-elementor-mls-map__county, .mlsimport-elementor-mls-map__tooltip { transition: none; }
}

/* Hero visual slot embed (hero widget `map_slug` control, VER 1.1.7):
   the bare map fills the hero's right column. */
.mlsimport-elementor-hero__map { align-self: stretch; min-height: 440px; display: flex; }
.mlsimport-elementor-hero__map .mlsimport-elementor-mls-map__module { flex: 1; max-width: none; display: flex; flex-direction: column; }
.mlsimport-elementor-hero__map .mlsimport-elementor-mls-map__canvas { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.mlsimport-elementor-hero__map .mlsimport-elementor-mls-map__stage { flex: 1; min-height: 0; }
.mlsimport-elementor-hero__map .mlsimport-elementor-mls-map__stage svg { height: 100%; }
.mlsimport-elementor-hero__map .mlsimport-elementor-mls-map__legend { justify-content: center; margin-top: 10px; }
