/* Shared text-only underline: reveal left to right, retract right to left. */
.link-underline {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  transition: background-size .28s ease;
}
a:is(:hover, :focus-visible) > .link-underline { background-size: 100% 1px; }
/* The existing directory span rule is for the service number only. */
.service-directory a > .link-underline { font: inherit; color: inherit; }
footer a:has(> .link-underline) { text-decoration: none; }
@media (prefers-reduced-motion: reduce) {
  .link-underline { transition: none; }
}

/* Main header labels and rounded actions use their own hover treatment. */
#hd > .wrap > nav > a,
#hd > .wrap > nav > .nav-item > a,
#hd .hd-about,
:is(.btn-pill, .bd-btn, .pm-links > a) { text-decoration:none; }
#hd > .wrap > nav > a .link-underline,
#hd > .wrap > nav > .nav-item > a .link-underline,
#hd .hd-about .link-underline,
:is(.btn-pill, .bd-btn, .pm-links > a) .link-underline {
 background-image:none;
 text-decoration:none;
}
