/* Short, user-triggered feedback. No looping or scroll-triggered animation. */
.navigation a:not(.button), .text-link { position:relative; }
.navigation a:not(.button)::after {
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:4px;
  height:2px;
  background:var(--green);
  transform:scaleX(0);
  transform-origin:left;
}
.navigation a:not(.button):is(:hover,:focus-visible)::after { transform:scaleX(1); }
.text-link:is(:hover,:focus-visible) { color:var(--green); }
.button > span[aria-hidden=true], .text-link > span[aria-hidden=true] { display:inline-block; }
@media(hover:hover) and (pointer:fine) {
  .service:hover, .workload-summary:hover { background:var(--soft); }
  .person-card:hover .person-caption { border-color:var(--green); }
}
@media(prefers-reduced-motion:no-preference) {
  .button { transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease; }
  .button > span[aria-hidden=true], .text-link > span[aria-hidden=true] { transition:transform .22s ease; }
  .navigation a:not(.button)::after { transition:transform .22s ease; }
  .service-top svg { transition:transform .28s ease,color .28s ease; }
  .person-caption { transition:border-color .24s ease; }
  .button:focus-visible > span[aria-hidden=true], .text-link:focus-visible > span[aria-hidden=true] { transform:translate(3px,-3px); }
  @media(hover:hover) and (pointer:fine) {
    .button:hover { transform:translateY(-3px); box-shadow:0 7px 18px #00172714; }
    .button:hover > span[aria-hidden=true], .text-link:hover > span[aria-hidden=true] { transform:translate(3px,-3px); }
    .service:hover .service-top svg { transform:translateY(-4px) rotate(-5deg); color:var(--green); }
    .button:active { transform:translateY(0); box-shadow:none; }
  }
}
@media(prefers-reduced-motion:reduce) {
  .button, .button > span[aria-hidden=true], .text-link > span[aria-hidden=true],
  .service, .service-top svg, .workload-summary, .person-caption,
  .navigation a:not(.button)::after { transition:none; }
}
