/* Shared link motion: keep labels, spacing and underlines stationary. */
:root .has-link-arrow .link-arrow {
  display: inline-block;
  flex: none;
  font-style: normal;
  transform: translate(0, 0);
  transition: transform .2s ease;
}
:root .has-link-arrow .link-arrow[data-arrow-direction="right"] { --arrow-x: 4px; --arrow-y: 0px; }
:root .has-link-arrow .link-arrow[data-arrow-direction="down"] { --arrow-x: 0px; --arrow-y: 4px; }
:root .has-link-arrow .link-arrow[data-arrow-direction="external"] { --arrow-x: 4px; --arrow-y: -4px; }
:root .has-link-arrow .link-arrow[data-arrow-direction="left"] { --arrow-x: -4px; --arrow-y: 0px; }
:root .has-link-arrow .link-arrow[data-arrow-direction="up"] { --arrow-x: 0px; --arrow-y: -4px; }
:root .has-link-arrow .link-arrow[data-arrow-direction="down-right"] { --arrow-x: 4px; --arrow-y: 4px; }
:root .has-link-arrow:hover .link-arrow,
:root .has-link-arrow:focus-visible .link-arrow {
  transform: translate(var(--arrow-x), var(--arrow-y));
}
.news-pagination a.has-link-arrow { gap: .4em; }
/* Header underlines appear at their full width without growing on hover. */
.header .nav > a.has-link-arrow::after { right: 0; visibility: hidden; transition: none; }
.header .nav > a.has-link-arrow:hover::after,
.header .nav > a.has-link-arrow:focus-visible::after { visibility: visible; }
@media (prefers-reduced-motion: reduce) {
  :root .has-link-arrow .link-arrow { transition: none; }
  :root .has-link-arrow:hover .link-arrow,
  :root .has-link-arrow:focus-visible .link-arrow { transform: none; }
}
