/* Template: world-map — local, dependency-free interactive map. */

.world-map {
  flex: 1;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 100%;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
  padding: 84px 0 20px;
}

.world-map__inner { width: 100%; height: 100%; min-height: 0; display: flex; flex-direction: column; }
.world-map__heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: clamp(24px, 4vh, 40px); }
.world-map__eyebrow { color: var(--color-accent); font-size: 10px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; }
.world-map__title { max-width: 13ch; font-size: clamp(26px, 4vw, 48px); font-weight: 500; letter-spacing: -.035em; }
.world-map__frame { position: relative; display: grid; min-height: 0; flex: 1; overflow: hidden; padding: 14px clamp(14px, 2vw, 28px); background: color-mix(in srgb, var(--color-surface) 42%, transparent); border: 1px solid color-mix(in srgb, var(--color-border) 88%, transparent); border-radius: calc(var(--radius-md) + 8px); box-shadow: 0 28px 80px -48px color-mix(in srgb, var(--color-bg) 96%, transparent); -webkit-backdrop-filter: blur(18px) saturate(135%); backdrop-filter: blur(18px) saturate(135%); }
.world-map__svg { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.world-map__svg path { fill: color-mix(in srgb, var(--color-text-secondary) 15%, transparent); stroke: color-mix(in srgb, var(--color-text-primary) 21%, transparent); stroke-width: .55; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .22s ease, stroke .22s ease, filter .22s ease; }
.world-map__svg path:hover, .world-map__svg path:focus-visible { fill: color-mix(in srgb, var(--color-accent) 68%, transparent); stroke: var(--color-accent); filter: drop-shadow(0 0 8px color-mix(in srgb, var(--color-accent) 42%, transparent)); outline: none; }
.world-map__svg path.world-map__country--office { fill: color-mix(in srgb, var(--color-accent) 34%, var(--color-text-secondary)); stroke: color-mix(in srgb, var(--color-accent) 74%, var(--color-text-primary)); stroke-width: .85; filter: drop-shadow(0 0 5px color-mix(in srgb, var(--color-accent) 22%, transparent)); }
.world-map__svg path.world-map__country--office:hover, .world-map__svg path.world-map__country--office:focus-visible { fill: color-mix(in srgb, var(--color-accent) 72%, transparent); stroke: var(--color-accent); }
.world-map__tooltip { position: absolute; z-index: 2; pointer-events: none; padding: 7px 10px; color: var(--color-bg); background: var(--color-accent); border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 8px 24px color-mix(in srgb, var(--color-bg) 55%, transparent); }
.world-map__tooltip[hidden] { display: none; }
.world-map__fallback { min-height: 0; display: grid; place-items: center; color: var(--color-text-secondary); letter-spacing: .16em; text-transform: uppercase; }
.world-map__locations { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0; margin-top: 14px; padding-top: 14px; border-top: 1px solid color-mix(in srgb, var(--color-text-primary) 14%, transparent); }
.world-map__location { color: var(--color-text-secondary); font-size: clamp(9px, 1vw, 12px); letter-spacing: .14em; line-height: 2; text-transform: uppercase; white-space: nowrap; }
.world-map__location:not(:last-child)::after { content: '|'; margin: 0 .8em; color: var(--color-accent); opacity: .7; }

@media (max-width: 767px) {
  .world-map { padding-top: 74px; padding-bottom: 12px; }
  .world-map__frame { margin-inline: -4px; padding: 8px; }
  .world-map__locations { margin-top: 10px; padding-top: 10px; }
  .world-map__locations { justify-content: flex-start; }
  .world-map__location:not(:last-child)::after { margin-inline: .55em; }
}
