.c-link {
  color: var(--si-color-black);
  display: inline-block;
  font-family: var(--si-ff-sans);
  text-decoration: none;
  position: relative;
  word-break: break-word;
  font-size: var(--si-fs-body-18);
  line-height: var(--si-lh-body-18);
}
.c-link:hover, .c-link:focus {
  color: var(--si-color-black);
  text-decoration: none;
}

.c-link.c-link--inherit {
  font-size: inherit;
  line-height: inherit;
}

a.c-link {
  cursor: pointer;
}
a.c-link span {
  background-image: linear-gradient(180deg, transparent 0, transparent calc(100% - 1px), currentColor calc(100% - 1px), currentColor 100%);
  background-position: 0 calc(100% - 0px);
  background-repeat: no-repeat;
  background-size: 0;
  display: inline;
  padding-bottom: 2px;
  position: relative;
  text-decoration: none;
  transition: background-size 0.2s cubic-bezier(0.37, 0, 0.63, 1);
}
a.c-link span:hover, a.c-link span:focus {
  background-size: 100%;
  text-decoration: none;
}
a.c-link.inverse span:not(.icon) {
  background-image: linear-gradient(180deg, transparent 0, transparent calc(100% - 1px), currentColor calc(100% - 1px), currentColor 100%);
  background-position: 0 calc(100% - 0px);
  background-repeat: no-repeat;
  background-size: 0;
  display: inline;
  padding-bottom: 2px;
  position: relative;
  text-decoration: none;
  transition: background-size 0.2s cubic-bezier(0.37, 0, 0.63, 1);
  background-size: 100%;
}
a.c-link.inverse span:not(.icon):hover, a.c-link.inverse span:not(.icon):focus {
  background-size: 100%;
  text-decoration: none;
}
a.c-link.inverse span:not(.icon):hover, a.c-link.inverse span:not(.icon):focus {
  background-size: 0;
}

.c-link.has-icon-prefix {
  display: inline-block;
}

.c-link.has-icon-prefix {
  padding-inline-start: 1.5rem;
}

.c-link.has-icon-suffix {
  padding-inline-end: 1.875rem;
  display: block;
}
@media (min-width: 768px) {
  .c-link.has-icon-suffix {
    padding-inline-end: 2rem;
  }
}

.c-link .icon {
  inline-size: 1.375rem;
  block-size: 1.375rem;
  display: inline-flex;
  inset-block: initial;
  margin-block: auto;
  position: absolute;
  transition: all 0.2s cubic-bezier(0.37, 0, 0.63, 1);
  transform: translateX(0);
}
.c-link .icon.icon--refresh, .c-link .icon.icon--rss-rounded {
  block-size: 1rem;
}
.c-link .icon:first-child {
  inset-inline-start: 0;
}
.c-link .icon:last-child {
  margin-inline-start: 0.3125rem;
  inset-block-end: 0;
}
@media (min-width: 768px) {
  .c-link .icon {
    inline-size: 1.5rem;
    block-size: 1.5rem;
  }
}

.c-link:hover .icon,
.c-link:focus .icon {
  background-color: var(--si-color-black);
}
.c-link:hover .icon:last-child,
.c-link:focus .icon:last-child {
  transform: translateX(4px);
}