/* ============================================================
   WorldMap snippet – styles (scoped: .lwmap / --lwmap-*)
   ============================================================ */
.lwmap {
  --lwmap-land-fill:    #ffffff;
  --lwmap-land-stroke:  #9aa7b2;
  --lwmap-ocean:        transparent;
  --lwmap-dot:          #00578a;          /* primary-blue  */
  --lwmap-dot-hq:       #004570;          /* dark-blue     */
  --lwmap-pill-bg:      #ffffff;
  --lwmap-pill-border:  #00578a;
  --lwmap-pill-text:    #004570;
  --lwmap-pill-hover-bg:   #00578a;
  --lwmap-pill-hover-text: #ffffff;
  --lwmap-focus:        #0097c7;          /* accent-cyan   */
  --lwmap-tip-bg:       #ffffff;
  --lwmap-tip-border:   #00578a;
  --lwmap-tip-text:     #004570;
  --lwmap-tip-muted:    #5b6770;
  --lwmap-font:         'Montserrat', system-ui, sans-serif;

  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  font-family: var(--lwmap-font);
}
.lwmap__svg {
  display: block;
  width: 100%;
  height: auto;
  background: var(--lwmap-ocean);
  overflow: visible;
}
.lwmap__land {
  fill: var(--lwmap-land-fill);
  stroke: var(--lwmap-land-stroke);
  stroke-width: 0.8;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

/* ---- pins ---- */
.lwmap__pin { cursor: pointer; outline: none; }
.lwmap__pin--static { cursor: default; }
.lwmap__dot {
  fill: var(--lwmap-dot);
  transition: transform .18s ease;
  transform-box: fill-box;
  transform-origin: center;
}
.lwmap__pin--hq .lwmap__dot { fill: var(--lwmap-dot-hq); }
.lwmap__leader {
  stroke: var(--lwmap-pill-border);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  fill: none;
}
.lwmap__pill {
  fill: var(--lwmap-pill-bg);
  stroke: var(--lwmap-pill-border);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  transition: fill .18s ease;
}
.lwmap__text {
  fill: var(--lwmap-pill-text);
  font-family: var(--lwmap-font);
  font-weight: 500;
  letter-spacing: .04em;
  dominant-baseline: central;
  text-anchor: middle;
  pointer-events: none;
  transition: fill .18s ease;
}
.lwmap__pin:not(.lwmap__pin--static):hover .lwmap__pill,
.lwmap__pin.is-active .lwmap__pill,
.lwmap__pin:focus-visible .lwmap__pill { fill: var(--lwmap-pill-hover-bg); }
.lwmap__pin:not(.lwmap__pin--static):hover .lwmap__text,
.lwmap__pin.is-active .lwmap__text,
.lwmap__pin:focus-visible .lwmap__text { fill: var(--lwmap-pill-hover-text); }
.lwmap__pin:not(.lwmap__pin--static):hover .lwmap__dot,
.lwmap__pin.is-active .lwmap__dot { transform: scale(1.25); }
.lwmap__pin:focus-visible .lwmap__pill { stroke: var(--lwmap-focus); stroke-width: 3; }

/* ---- hover card ---- */
.lwmap__tip {
  position: absolute;
  z-index: 5;
  left: 0; top: 0;
  min-width: 160px;
  max-width: 260px;
  padding: .7rem .9rem .75rem;
  background: var(--lwmap-tip-bg);
  border: 1.5px solid var(--lwmap-tip-border);
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0, 69, 112, .14);
  color: var(--lwmap-tip-text);
  font-size: .8rem;
  line-height: 1.45;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -100%) translateY(4px);
  transition: opacity .15s ease, transform .15s ease;
}
.lwmap__tip.is-visible { opacity: 1; transform: translate(-50%, -100%) translateY(0); }
.lwmap__tip--below { transform: translate(-50%, 0) translateY(-4px); }
.lwmap__tip--below.is-visible { transform: translate(-50%, 0) translateY(0); }
.lwmap__tip::after {                      /* arrow */
  content: '';
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 12px; height: 12px;
  background: var(--lwmap-tip-bg);
  border-right: 1.5px solid var(--lwmap-tip-border);
  border-bottom: 1.5px solid var(--lwmap-tip-border);
  transform: translateX(-50%) rotate(45deg);
}
.lwmap__tip--below::after { bottom: auto; top: -7px; transform: translateX(-50%) rotate(-135deg); }
.lwmap__tip-title { font-weight: 600; font-size: .9rem; margin: 0 0 .1rem; }
.lwmap__tip-country { color: var(--lwmap-tip-muted); font-weight: 500; margin: 0 0 .35rem; }
.lwmap__tip-line { margin: 0; white-space: pre-line; }
.lwmap__tip-cta {
  margin: .45rem 0 0;
  padding-top: .45rem;
  border-top: 1px solid rgba(0, 87, 138, .18);
  color: var(--lwmap-dot);
  font-weight: 600;
}

/* ---- compact mode (narrow screens): dots only + link list ---- */
.lwmap--compact .lwmap__leader,
.lwmap--compact .lwmap__pill,
.lwmap--compact .lwmap__text,
.lwmap--compact .lwmap__tip { display: none; }
.lwmap__list {
  display: none;
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
  columns: 2;
  column-gap: 1.5rem;
}
.lwmap--compact .lwmap__list { display: block; }
.lwmap__list li { break-inside: avoid; margin: 0 0 .5rem; }
.lwmap__list a, .lwmap__list span {
  display: block;
  color: var(--lwmap-pill-text);
  text-decoration: none;
  font-weight: 600;
  font-size: .9rem;
  line-height: 1.3;
}
.lwmap__list a:hover, .lwmap__list a:focus-visible { color: var(--lwmap-focus); }
.lwmap__list small { display: block; font-weight: 500; font-size: .78rem; color: var(--lwmap-tip-muted); }

@media (prefers-reduced-motion: reduce) {
  .lwmap__dot, .lwmap__pill, .lwmap__text, .lwmap__tip { transition: none; }
}
