.geo-map {
  --geo-ink: #f7f7f8;
  --geo-muted: #d4d4d8;
  position: relative;
  min-height: 500px;
  overflow: hidden;
  border: 1px solid rgba(247,247,248,.1);
  border-radius: 24px;
  isolation: isolate;
  background: #1a1c1f;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 24px 80px rgba(0,0,0,.22);
}
.geo-map__surface { position: absolute; inset: 0; min-height: inherit; }
.geo-map__canvas, .geo-map__surface svg { display:block; width:100%; height:100%; min-height:inherit; }
.geo-map__canvas { cursor: zoom-in; }
.geo-map__canvas:active { cursor: grabbing; }
.geo-map__surface svg { background: #1a1c1f; cursor: zoom-in; touch-action: none; }
.geo-map__surface svg:focus-visible { outline: 2px solid #f7f7f8; outline-offset: -5px; }
.geo-map.is-dragging .geo-map__surface svg { cursor: grabbing; }
.geo-map.is-pinning .geo-map__surface svg, .geo-map.is-pinning .geo-map__canvas { cursor: crosshair; }
.geo-map__land { fill: #30343a; stroke: #6b7280; stroke-width: .65; vector-effect: non-scaling-stroke; }
.geo-map__marker { fill: #e5e7eb; fill-opacity: .74; stroke: #1a1c1f; stroke-width: .6; vector-effect: non-scaling-stroke; cursor: inherit; }
.geo-map__marker:hover, .geo-map__marker:focus { fill: #fff; fill-opacity: 1; outline: none; stroke: #fff; stroke-width: 2; }
.geo-map__selected { fill: #1a1c1f; stroke: #fff; stroke-width: 3; vector-effect: non-scaling-stroke; pointer-events: none; }
.geo-map__ring { fill: rgba(247,247,248,.1); stroke: #f7f7f8; stroke-width: 1.5; vector-effect: non-scaling-stroke; pointer-events: none; }
.geo-map__controls { position: absolute; top: 18px; left: 18px; z-index: 2; display: flex; flex-wrap: wrap; max-width: calc(100% - 36px); gap: 5px; padding: 4px; border: 1px solid rgba(247,247,248,.12); border-radius: 12px; background: rgba(26,28,31,.78); backdrop-filter: blur(16px); }
.geo-map__control { min-height: 30px; border: 0; border-radius: 8px; padding: 0 11px; color: var(--geo-muted); background: transparent; font:600 14px/1 ui-sans-serif, system-ui, sans-serif; letter-spacing: .02em; cursor: pointer; transition: color .2s, background .2s; }
.geo-map__control:hover { color: var(--geo-ink); background: rgba(247,247,248,.1); }
.geo-map__control:focus-visible { color: var(--geo-ink); background: rgba(247,247,248,.1); outline: 2px solid #d4d4d8; outline-offset: 2px; }
.geo-map__control.is-active { color: #1a1c1f; background: #f7f7f8; }
.geo-map__pin-mode.is-active { color: #1a1c1f; background: #f7f7f8; }
.geo-map__zoom { width: 29px; padding: 0; font-size: 17px; }
.geo-map__reset { margin-left: 4px; border-left: 1px solid rgba(247,247,248,.12); border-radius: 0 8px 8px 0; }
.geo-map__legend { position: absolute; right: 18px; bottom: 18px; z-index: 2; display: flex; align-items: center; gap: 8px; color: var(--geo-muted); font:500 14px/1 ui-sans-serif, system-ui, sans-serif; letter-spacing: .02em; }
.geo-map__legend-dot { width: 7px; height: 7px; border-radius: 50%; background: #e5e7eb; }
.geo-map__loading { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; color: var(--geo-muted); font:500 16px/1 ui-sans-serif, system-ui, sans-serif; letter-spacing: .02em; pointer-events: none; }
.geo-map__help { position: absolute; left: 20px; bottom: 18px; z-index: 2; color: var(--geo-muted); max-width: calc(100% - 190px); font: 500 13px/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .01em; pointer-events: none; }
@media (max-width: 640px) {
  .geo-map { min-height: 360px; border-radius: 18px; }
  .geo-map__controls { top: 12px; left: 12px; }
  .geo-map__legend { right: 13px; bottom: 13px; }
  .geo-map__help { left: 13px; bottom: 42px; max-width: calc(100% - 26px); }
  .geo-map__control { padding-inline: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .geo-map__control { transition: none; }
}

.geo-map__control{min-height:40px;font-size:14px;line-height:1.4}.geo-map__zoom{width:36px;font-size:20px}.geo-map__legend,.geo-map__loading{font-size:14px;line-height:1.5}

.geo-map__boundary{fill:none;stroke:#4b5563;stroke-width:.65;vector-effect:non-scaling-stroke;pointer-events:none}
.geo-map__pin-label{fill:#fff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:600;paint-order:stroke;stroke:#1a1c1f;stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.geo-map__radius-label { pointer-events:none; }
.geo-map__radius-label rect { fill:#ffffff; stroke:#d4d4d8; stroke-width:1; vector-effect:non-scaling-stroke; }
.geo-map__radius-label text { fill:#4b5563; font:600 11px/1 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing:.01em; }


.geo-map__place-labels { position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.geo-map__place-label { position:absolute; display:block; white-space:nowrap; pointer-events:none; user-select:none; font:500 12px/18px Inter,ui-sans-serif,system-ui,sans-serif; color:#f7f7f8; text-shadow:0 1px 3px #1a1c1f,1px 0 3px #1a1c1f,-1px 0 3px #1a1c1f; }
.geo-map__place-label--city { padding:0 4px 0 12px; border-radius:4px; background:rgba(26,28,31,.65); }
.geo-map__place-label--city::before { content:""; position:absolute; left:4px; top:7px; width:3px; height:3px; border-radius:50%; background:#e5e7eb; }
.geo-map__place-label--region { color:#9ca3af; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; }
.geo-map__place-label--country { color:#d4d4d8; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; }
.geo-map__place-label--selected { transform:translateX(-50%); color:#fff; font-size:14px; font-weight:600; }

/* The concierge audience preview uses the quiet, neutral cartography from
   the product experience: the interactive map remains data-driven while the
   map itself recedes behind the firms and radius. */
.geo-map--audience {
  --geo-ink:#1a1c1f;
  --geo-muted:#6b7280;
  min-height:360px;
  border-color:#e5e7eb;
  border-radius:0;
  background:#f7f7f8;
  box-shadow:none;
}
.geo-map--audience .geo-map__surface svg { background:#f7f7f8; }
.geo-map--audience .geo-map__tile { opacity:.58; filter:grayscale(1) contrast(.94); }
.geo-map--audience .geo-map__tiles-attribution { position:absolute; right:9px; bottom:8px; z-index:2; color:#6b7280; background:rgba(247,247,248,.78); padding:2px 4px; border-radius:3px; font:500 9px/1.2 ui-sans-serif,system-ui,sans-serif; text-decoration:none; }
.geo-map--audience .geo-map__tiles-attribution:hover { color:#4b5563; text-decoration:underline; }
.geo-map--audience .geo-map__land { fill:#f0f0f2; stroke:#d4d4d8; stroke-width:.7; }
.geo-map--audience .geo-map__boundary { stroke:#e5e7eb; stroke-width:.55; }
.geo-map--audience .geo-map__marker { fill:#1a1c1f; fill-opacity:.94; stroke:#f7f7f8; stroke-width:1.2; }
.geo-map--audience .geo-map__marker:hover,
.geo-map--audience .geo-map__marker:focus { fill:#000; stroke:#fff; stroke-width:2; }
.geo-map--audience .geo-map__selected { fill:#1a1c1f; stroke:#ffffff; stroke-width:2; }
.geo-map--audience .geo-map__ring { fill:rgba(156,163,175,.08); stroke:#9ca3af; stroke-width:1.15; }
.geo-map--audience .geo-map__place-label { color:#6b7280; text-shadow:0 1px 2px #f7f7f8,1px 0 2px #f7f7f8,-1px 0 2px #f7f7f8; font-size:11px; }
.geo-map--audience .geo-map__place-label--city { color:#6b7280; background:rgba(247,247,248,.72); }
.geo-map--audience .geo-map__place-label--city::before { background:#6b7280; }
.geo-map--audience .geo-map__place-label--region { color:#9ca3af; }
.geo-map--audience .geo-map__pin-label { fill:#1a1c1f; stroke:#f7f7f8; }
.geo-map--audience .geo-map__controls { top:10px; left:10px; padding:3px; gap:2px; border-color:#e5e7eb; border-radius:9px; background:rgba(255,255,255,.9); backdrop-filter:none; }
.geo-map--audience .geo-map__control { min-height:28px; padding:0 8px; color:#6b7280; font-size:11px; }
.geo-map--audience .geo-map__control:hover { color:#1a1c1f; background:#f0f0f2; }
.geo-map--audience .geo-map__control.is-active { color:#1a1c1f; background:#e5e7eb; }
.geo-map--audience .geo-map__zoom { width:28px; font-size:17px; }
.geo-map--audience .geo-map__help { left:12px; bottom:10px; color:#6b7280; font-size:10px; }
.geo-map--audience .geo-map__legend { display:none; }
.geo-map--audience .geo-map__loading { color:#6b7280; font-size:13px; }
