.company-profile-map {
  --company-profile-paper: var(--group-structure-background, #f3f7fd);
  --company-profile-blue: var(--group-structure-blue, #184d98);
  position: relative;
  isolation: isolate;
  padding: 0;
  background: var(--company-profile-paper);
}

.company-profile-map__title {
  position: absolute;
  z-index: 4;
  top: clamp(26px, 3.2vw, 52px);
  left: clamp(24px, 3.6vw, 64px);
  max-width: 7ch;
  margin: 0;
  color: var(--company-profile-blue);
  text-transform: uppercase;
  pointer-events: none;
}

.company-profile-map > .report-canvas {
  width: 100vw;
  max-width: none;
}

.company-profile-map__figure {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.company-profile-map__stage {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 1190.5511811 / 841.8897638;
  overflow: clip;
}

.company-profile-map__visual {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
}

.company-profile-map__visual--base {
  position: relative;
  z-index: 1;
}

.company-profile-map__visual--overlay {
  position: absolute;
  z-index: 2;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

@media (min-width: 50.01rem) {
  .company-profile-map > .report-canvas {
    width: min(
      calc(100vw - clamp(48px, 6vw, 120px)),
      calc((100svh - clamp(76px, 8vh, 112px)) * 1.4142135624)
    );
    max-width: 1800px;
    left: auto;
    margin-inline: auto;
    transform: none;
  }
}

@media (max-width: 50rem) {
  .company-profile-map__title {
    position: relative;
    top: auto;
    left: auto;
    padding: 38px 24px 12px;
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .company-profile-map__stage.is-motion-running .company-profile-map__visual--overlay {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .company-profile-map__visual--overlay {
    display: none !important;
  }

  .company-profile-map__visual--base {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
}
