/* "Where we work" clients map (partials/map.html, generated by _map/build.mjs). All classes prefixed cm-. */
#clients-map{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.cm-eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:#1d4ed8;margin:0 0 8px}

/* map card */
.cm-card{position:relative;max-width:1040px;margin:1.75rem auto 0;padding:10px 10px 14px;background:#fff;border-radius:1.25rem;box-shadow:0 20px 27px rgba(0,0,0,.05)}
.cm-map{display:block;width:100%;height:auto}
.cm-map text{font-family:inherit}
.cm-states path{vector-effect:non-scaling-stroke}

/* dots: scaled up on small screens so they stay visible when the map shrinks */
.cm-dot{vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;transform:scale(2);filter:drop-shadow(0 1px 1.5px rgba(15,23,42,.3))}
.cm-hq-dot,.cm-hq-tag{transform-box:view-box;transform-origin:0 0}  /* scale around the HQ point */
.cm-hq-dot{transform:scale(2)}
.cm-hq-tag{transform:scale(2.6)}
.cm-hq-tag rect{filter:drop-shadow(0 2px 3px rgba(33,82,255,.35))}
.cm-hq-tag text{font-size:11.5px;font-weight:800;letter-spacing:.06em}
.cm-pulse{transform-box:fill-box;transform-origin:center;opacity:0;animation:cm-pulse 2.6s cubic-bezier(.2,.6,.35,1) infinite}
@keyframes cm-pulse{0%{transform:scale(1);opacity:.5}80%,100%{transform:scale(3.4);opacity:0}}
@media (prefers-reduced-motion:reduce){.cm-pulse{animation:none;transform:scale(1.9);opacity:.2}}

/* city labels: hidden on phones (HQ tag stays) */
.cm-labels{display:none;font-size:19px;font-weight:600;fill:#1e293b;paint-order:stroke;stroke:#fff;stroke-width:4.5px;stroke-linejoin:round}
.cm-labels .cm-lbl-hq{font-weight:800}

/* legend */
.cm-legend{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;font-size:12.5px;font-weight:500;line-height:1.3}
.cm-legend li{display:flex;align-items:center;gap:7px;color:#475569}
.cm-lg{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none}
.cm-lg-st{border-radius:3px;background:linear-gradient(310deg,#2152ff,#21d4fd)}
.cm-lg-dot{background:#fff;border:2.25px solid #2152ff}
.cm-lg-hq{background:#2152ff;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(33,82,255,.25)}

/* chip lists (also the text version of the map) */
.cm-lists{max-width:1040px;margin:1.75rem auto 0;text-align:center}
.cm-h3{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4b5563;margin:0 0 12px}
.cm-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.cm-chips+.cm-h3{margin-top:1.5rem}
.cm-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:6px 12px 6px 10px;background:#fff;border:1px solid #e5e7eb;border-radius:999px;box-shadow:0 4px 12px rgba(15,23,42,.05);font-size:.84rem;line-height:1.35;color:#475569;text-align:left}
.cm-st{font-weight:700;color:#1e293b}
.cm-ct{color:#475569;padding-left:7px;border-left:1px solid #e2e8f0}
.cm-sw{width:10px;height:10px;border-radius:50%;flex:none;background:linear-gradient(310deg,#2152ff,#21d4fd)}
.cm-globe{width:16px;height:16px;flex:none;fill:none;stroke:#2152ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cm-hqb{display:inline-block;margin-left:2px;padding:1px 6px;border-radius:999px;background:#2152ff;color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.05em;line-height:1.4;vertical-align:1px}
.cm-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (min-width:768px){
  .cm-card{margin-top:2.25rem;padding:20px}
  .cm-labels{display:inline}
  .cm-dot,.cm-hq-dot,.cm-hq-tag{transform:scale(1.35)}
  .cm-legend{position:absolute;left:5%;bottom:7%;flex-direction:column;align-items:flex-start;gap:8px;margin:0;font-size:13px}
  .cm-chip{gap:8px;font-size:.9rem;padding:8px 16px 8px 13px}
  .cm-ct{padding-left:8px}
  .cm-chips{gap:10px}
}
@media (min-width:992px){
  .cm-card{padding:24px}
  .cm-labels{font-size:13.5px;stroke-width:3.5px}
  .cm-dot,.cm-hq-dot,.cm-hq-tag{transform:none}
}
.cm-inset{fill:#fff;stroke:#e3e9f3;stroke-width:1.5}
.cm-inset-t{font:800 15px Inter,system-ui,sans-serif;fill:#1e293b;letter-spacing:.02em}
.cm-inset-c{font:600 12px Inter,system-ui,sans-serif;fill:#1e293b;paint-order:stroke;stroke:#fff;stroke-width:3px}
