a { transition: color 0.15s; }

.card { transition: background 0.2s; }
.card-img img { transition: filter 0.4s, transform 0.4s; }
.card-heading a { transition: color 0.15s; }

.featured-img img { transition: filter 0.5s; }
.featured-title a { transition: color 0.2s; }

.nav-links a { transition: color 0.15s; }
.nav-cta { transition: opacity 0.15s; }
.nav-toggle { transition: color 0.15s, border-color 0.15s; }
.nav-toggle:hover { color: var(--text); border-color: var(--text-dim); }

.footer-nav a { transition: color 0.15s; }

.footer-nav a {
  position: relative;
}

.footer-nav a::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--text-dim);
  transition: width 0.2s;
}

.footer-nav a:hover::after {
  width: 100%;
}
