/* Blurred expanding color, shared by navigation and content links. */
body .soft-action {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --wash: #f2bfd2;
  transition: color 0.4s cubic-bezier(0.075, 0.82, 0.165, 1);
}
.soft-wash {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  z-index: -1;
  pointer-events: none;
}
.soft-wash::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 115%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--wash);
  filter: blur(20px);
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.3);
  transition:
    transform 0.6s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.6s cubic-bezier(0.39, 0.575, 0.565, 1);
}
body .soft-action.soft-active,
body .soft-action:focus-visible {
  color: #48283f;
  transition-delay: 0.1s;
}
.soft-active > .soft-wash::before,
.soft-action:focus-visible > .soft-wash::before {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1.25);
}
body
  :is(
    .news-row,
    .hero-news,
    .text-link,
    .main-nav a,
    .footer-top nav a
  ).soft-action {
  --wash: #f9e0e9;
}
body :is(.main-nav a, .footer-top nav a).soft-action {
  padding-inline: 7px;
  margin-inline: -7px;
  border-radius: 3px;
}
body .company-photo-action.soft-action {
  --wash: #f2bfd2;
}
body .header-contact:hover,
body .button:hover {
  background: var(--ink);
}
body.home-page .growth-link:hover > span {
  background: transparent;
  transform: none;
  color: inherit;
}
body.home-page .personal-banner:hover .banner-arrow {
  background: #fff9;
  transform: none;
  color: #48283f;
}
body .text-link:hover > span:not(.soft-wash) {
  transform: none;
}
body .company-photo-link:hover .company-photo-action > span:not(.soft-wash) {
  transform: none;
}
body .text-link > .soft-wash {
  font-size: inherit;
  transform: none;
  transition: none;
}
body .pointer-orbit,
body .pointer-orbit.is-link {
  background: transparent;
}
@media (prefers-reduced-motion: reduce) {
  body .soft-action,
  .soft-wash::before {
    transition: none;
  }
}

/* Use a consistent drawn arrow instead of a font-dependent glyph. */
.link-arrow-icon {
  display: block;
  flex: none;
  width: 22px;
  height: 22px;
  overflow: visible;
}
body .text-link > span:not(.soft-wash),
body .company-photo-action > span:not(.soft-wash),
body .button-arrow,
body .header-contact > span:not(.soft-wash) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body .hero-news-arrow,
body .news-row-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
}
body .header-contact .link-arrow-icon {
  width: 19px;
  height: 19px;
}
