.cbp-link {
  &:link {
    color: var(--cbp-color-interactive-primary-dark);
  }

  &:visited {
    color:  var(--cbp-color-interactive-visited-dark);
  }

  &:hover:not(:focus):not(:disabled) {
    color:  var(--cbp-color-interactive-primary-darker);
  }
  
  &:focus {
    color: var(--cbp-color-interactive-focus-dark);
    outline: var(--cbp-border-size-md) solid var(--cbp-color-interactive-focus-dark);
    outline-offset: var(--cbp-border-size-sm);
  }

  &[aria-disabled=true] {
    color: var(--cbp-color-interactive-disabled-dark);
    font-style: italic;
    text-decoration: underline;
  
    &:hover:not(:focus):not(:disabled) {
      color: var(--cbp-color-interactive-secondary-dark);
    }
  }
}

.cbp-link--definition:link {
  text-decoration-style: dotted;
}

[data-cbp-theme="dark"] .cbp-link {
  &:link {
    color: var(--cbp-color-interactive-primary-light);
  }
  
  &:visited {
    color: var(--cbp-color-interactive-visited-light);
  }

  &:hover:not(:focus):not(:disabled) {
    color:  var(--cbp-color-interactive-primary-base);
  }

  &:focus {
    color: var(--cbp-color-interactive-focus-light);
    outline-color: var(--cbp-color-interactive-focus-light);
  }


  &[aria-disabled=true] {
    color: var(--cbp-color-interactive-disabled-light);
  
    &:hover:not(:focus):not(:disabled) {
      color: var(--cbp-color-interactive-secondary-light);
    }
  }
}