.o-interactive-map {
  &__wrapper {
    position: relative;
  }

  &__container {
    border-radius: var(--border-radius-m);
    box-shadow: var(--box-shadow);
    width: 100%;
    aspect-ratio: 1 / 1;

    svg {
      width: 100%;
      height: 100%;
    }
  }

  &__controls {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 3;

    @media print {
      display: none;
    }
  }

  .o-interactive-map__country--available {
    path,
    circle {
      fill: var(--link-default) !important;
      transition: all 0.2s ease;
      cursor: pointer;
    }

    &:hover path,
    &:hover circle {
      fill: var(--link-hovered) !important;
    }
  }

  .o-interactive-map__country--unavailable {
    path,
    circle {
      fill: var(--bg-neutral) !important;
      transition: all 0.2s ease;
      cursor: not-allowed;
    }
  }

  .o-interactive-map--loading {
    padding: 1rem;
  }

  .o-interactive-map__controls button {
    background-color: var(--link-default);
    color: var(--bg-neutral);
    border-radius: var(--border-radius-m);
    border: 0;
    width: 4rem;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    transition: all 0.2s ease;

    &:hover {
      background-color: var(--link-hovered);
    }
  }

  &__legend {
    display: flex;
    column-gap: 2rem;
    row-gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
  }

  &__legend-item {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  &__legend-color {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: var(--border-radius-s);
    border: var(--border);

    &--available {
      background-color: var(--link-default);
    }

    &--unavailable {
      background-color: var(--bg-neutral);
    }

    &--pending {
      background-color: #c0c1c5;
    }
  }
}
