.primary-action {
  position: sticky;
  bottom: 1rem;
  z-index: 1000;
  width: 100%;
  display: flex;
  justify-content: flex-end;

  .primary-action-item {
    width: 59px;
    height: 59px;
    padding: 2px;
    font-size: 1.75rem;
    background-color: rgba($gray-darker, 0.9);
    border: $panel-border-width solid $panel-inner-border;
    border-radius: 50%;
    box-shadow: 0 0 6px rgba(black, 0.5);
    cursor: pointer;
    transition: all ease 0.5s;

    .primary-action-inner {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      color: $text-color;
      border-radius: 50%;
      transition: all $transition-base-speed ease;
    }

    &[disabled] {
      opacity: 0.5;
    }

    &:hover:not([disabled]),
    &.active {
      .primary-action-inner {
        color: invert($text-color);
        background-color: $panel-inner-border;
      }
    }

    &:active:not([disabled]) {
      animation-name: flash;
      animation-duration: 0.5s;
    }
  }
}

@media (max-width: $desktop-breakpoint) {
  .primary-action {
    bottom: $navigation-mobile-height + $navigation-mobile-bottom-offset;
    padding-bottom: 1rem;
  }
}
