/* Motion complements the established navy / gold visual system. */
:root {
  --fount-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --fount-motion-feedback: 220ms;
}
[data-count-up] {
  display: inline-grid;
  vertical-align: baseline;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
[data-count-up]::after {
  content: attr(data-count-final);
  visibility: hidden;
  grid-area: 1 / 1;
  pointer-events: none;
}
[data-count-display] { grid-area: 1 / 1; justify-self: start; }
.fount-count[data-count-up][data-count-final],
[data-count-up] > [data-count-display][aria-hidden] {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
}
.fount-count > .fount-count-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  margin: -1px;
}
[data-grow] { backface-visibility: hidden; }

@media (prefers-reduced-motion: no-preference) {
  :is(.header, .siteHeader) nav > a:not(.nav-cta):not(.mobileContact) {
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 8px;
    text-decoration-thickness: 1px;
    transition: color var(--fount-motion-feedback), text-decoration-color var(--fount-motion-feedback), text-underline-offset var(--fount-motion-feedback);
  }
  :is(.header, .siteHeader) nav > a:hover,
  :is(.header, .siteHeader) nav > a:focus-visible {
    text-decoration-color: currentColor;
    text-underline-offset: 5px;
  }
  :is(.button, .primaryBtn, .outlineBtn, .headerCta, .nav-cta) {
    transition: transform var(--fount-motion-feedback) var(--fount-motion-ease), background-color var(--fount-motion-feedback), box-shadow var(--fount-motion-feedback);
  }
  :is(.button, .primaryBtn, .outlineBtn, .headerCta, .nav-cta):active { transform: translateY(1px) scale(0.98); }
  :is(.button, .tool-card, .text-link) :is(b, i, span[aria-hidden="true"]) {
    transition: transform 300ms var(--fount-motion-ease);
  }
  :is(.team-image, .aboutTeamImage) { overflow: hidden; }
  :is(.team-image, .aboutTeamImage) img { transition: transform 850ms var(--fount-motion-ease); }
  :is(.tool-card, .toolsGateGrid > a, .expert-folder, .aboutPrincipleGrid > *) {
    transition: transform 380ms var(--fount-motion-ease), box-shadow 380ms var(--fount-motion-ease), border-color var(--fount-motion-feedback);
  }
  .process-list li, .solution-rows article { transition: border-color 350ms, background-color 350ms; }
  @media (hover: hover) and (pointer: fine) {
    :is(.button, .primaryBtn, .headerCta, .nav-cta):hover { transform: translateY(-3px); box-shadow: 0 10px 24px #00000012; }
    :is(.tool-card, .toolsGateGrid > a, .expert-folder):hover { transform: translateY(-7px); }
    :is(.button, .tool-card, .text-link):hover :is(b, i, span[aria-hidden="true"]) { transform: translate(3px, -2px); }
    :is(.team-image, .aboutTeamImage):hover img { transform: scale(1.035); }
    .process-list li:hover { border-color: var(--gold-dark, #856635); }
    .solution-rows article:hover { background-color: #ffffff05; }
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  [data-count-up], [data-grow] { animation: none !important; transition: none !important; }
}
