/**
 *
 * @group link
 */
$v-link-font-color: $v-focus-color !default;

/**
 *
 * @group link
 */
$v-link-text-decoration: underline !default;

/**
 *
 * @group link
 */
$v-link-cursor: pointer !default;


/**
 *
 *
 * @param {string} $primary-stylename (v-link) -
 * @param {bool} $include-additional-styles -
 *
 * @group link
 */
@mixin valo-link ($primary-stylename: v-link, $include-additional-styles: contains($v-included-additional-styles, link)) {
  .#{$primary-stylename} {
    @include valo-link-style;

    a {
      cursor: inherit;
      color: inherit;
      text-decoration: inherit;
      @if $v-animations-enabled {
        @include transition(inherit);
      }
    }

    .v-icon {
      cursor: inherit;
    }
  }

  @if $include-additional-styles {
    .#{$primary-stylename}-small {
      font-size: $v-font-size--small;
    }

    .#{$primary-stylename}-large {
      font-size: $v-font-size--large;
    }
  }
}


/**
 *
 *
 *
 * @group link
 */
@mixin valo-link-style {
  cursor: $v-link-cursor;
  color: $v-link-font-color;
  text-decoration: $v-link-text-decoration;
  font-weight: inherit;

  @if $v-animations-enabled {
    @include transition(color 140ms);
  }

  &:hover {
    color: lighten($v-link-font-color, 10%);
  }

  &.v-disabled {
    @include opacity($v-disabled-opacity);
  }
}
