.map-rise-stack .map-rise-pinned:has(.cf-vector-stage) { top: var(--cv-header-offset, 90px); }
.map-fullbleed .map-stage.cf-vector-stage {
  background: #fff;
  height: clamp(540px, 80vh, 850px);
  min-height: 540px;
  aspect-ratio: auto;
  cursor: default;
  isolation: isolate;
  font-family: Inter, Arial, sans-serif;
}
.cf-vector-stage .cv-canvas { width: 100%; height: 100%; display: block; touch-action: pan-y; cursor: grab; }
.cf-vector-stage.is-zoomed .cv-canvas { touch-action: none; }
.cf-vector-stage.is-dragging .cv-canvas { cursor: grabbing; }
.cv-land { fill: #f2f1ed; stroke: #d4d3cc; stroke-width: .65; vector-effect: non-scaling-stroke; }
.cv-heading { position: absolute; top: 28px; left: clamp(20px, 4vw, 64px); pointer-events: none; z-index: 2; }
.cv-heading p { margin: 0 0 5px; color: #171717; font-size: clamp(22px, 2.5vw, 34px); font-family: "Neue Haas Display", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 400; letter-spacing: -.035em; }
.cv-heading span { font-size: 12px; color: #66645d; }
.cv-markers { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.cv-marker { position: absolute; display: grid; place-items: center; padding: 0; margin: 0; border: 2px solid #fff; border-radius: 50%; background: #171717; color: #fff; transform: translate(-50%, -50%); pointer-events: auto; cursor: pointer; font: 500 13px/1 Inter, Arial, sans-serif; box-shadow: 0 1px 4px #00000016; }
.cv-marker:hover, .cv-marker:focus-visible, .cv-marker[aria-pressed="true"] { background: #a3503e; z-index: 3; }
.cv-marker:focus-visible, .cv-controls button:focus-visible, .cv-canvas:focus-visible { outline: 2px solid #a3503e; outline-offset: 4px; }
.cv-city { position: absolute; top: calc(100% + 5px); left: 50%; transform: translateX(-50%); color: #171717; font: 400 12px/1.2 Inter, Arial, sans-serif; white-space: nowrap; pointer-events: none; text-shadow: 0 0 5px #fff, 0 0 3px #fff; }
.cv-controls { position: absolute; right: clamp(16px, 3vw, 40px); bottom: 28px; display: flex; flex-direction: column; gap: 6px; z-index: 4; }
.cv-controls button { width: 44px; height: 44px; border: 1px solid #deddd7; border-radius: 50%; background: #fff; color: #171717; font: 300 25px/1 Arial, sans-serif; cursor: pointer; }
.cv-controls button:hover { background: #f2f1ed; }
.cv-controls button:disabled { opacity: .35; cursor: default; }
.cv-controls .cv-reset { font-size: 11px; width: auto; min-width: 44px; padding: 0 12px; border-radius: 24px; }
.cv-status { position: absolute; bottom: 28px; left: clamp(20px, 4vw, 64px); max-width: calc(100% - 150px); margin: 0; padding: 8px 12px; background: #ffffffeb; color: #55534e; font: 400 12px/1.5 Inter, Arial, sans-serif; pointer-events: none; }
.cv-loading { padding: 40px; font: 400 14px/1.5 Inter, Arial, sans-serif; }
@media (max-width: 600px) {
  .map-fullbleed .map-stage.cf-vector-stage { height: 600px; min-height: 600px; }
  .cv-heading { top: 24px; }
  .cv-controls, .cv-status { bottom: 20px; }
}
