/* PRF — restrained motion and responsive interaction feedback. */
.process-number > span { transform-origin: left center; }

@media (prefers-reduced-motion: no-preference) {
  .button .icon,
  .text-button .icon,
  .contact-details a .icon,
  .footer-socials .icon,
  .hero-foot > a .icon {
    transition: transform 240ms cubic-bezier(.22, 1, .36, 1);
  }

  .desktop-nav a:after {
    width: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 280ms cubic-bezier(.22, 1, .36, 1);
  }
  .desktop-nav a:is(:hover, :focus-visible):after { transform: scaleX(1); }

  .button:active { transform: translateY(0) scale(.985); }
  .text-button:focus-visible .icon,
  .contact-details a:focus-visible .icon,
  .footer-socials a:focus-visible .icon { transform: translateX(3px); }

  .faq-list details[open] > p { animation: prf-answer-in 240ms ease-out; }
  .faq-list summary:focus-visible + p { animation: none; }
  dialog[open] { animation: prf-dialog-in 230ms cubic-bezier(.22, 1, .36, 1); }
  dialog[open]::backdrop { animation: prf-backdrop-in 180ms ease-out; }

  @media (hover: hover) and (pointer: fine) {
    .text-button:hover .icon,
    .contact-details a:hover .icon,
    .footer-socials a:hover .icon { transform: translateX(3px); }
    .button:hover .icon { transform: translateX(2px); }
    .hero-foot > a:hover .icon { transform: translateY(3px); }
  }

  @media (max-width: 760px) {
    .mobile-nav:not([hidden]) { animation: prf-menu-in 220ms cubic-bezier(.22, 1, .36, 1); }
    .mobile-nav:not([hidden]) > a { animation: prf-menu-link-in 250ms ease-out both; }
    .mobile-nav:not([hidden]) > a:nth-child(2) { animation-delay: 25ms; }
    .mobile-nav:not([hidden]) > a:nth-child(3) { animation-delay: 50ms; }
    .mobile-nav:not([hidden]) > a:nth-child(4) { animation-delay: 75ms; }
    .mobile-nav:not([hidden]) > a:nth-child(5) { animation-delay: 100ms; }
    .mobile-nav:not([hidden]) > a:focus { animation: none; }
  }
}

@keyframes prf-answer-in {
  from { opacity: .35; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes prf-dialog-in {
  from { opacity: .4; transform: translateY(10px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes prf-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes prf-menu-in {
  from { opacity: .4; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes prf-menu-link-in {
  from { opacity: .3; transform: translateX(-7px); }
  to { opacity: 1; transform: translateX(0); }
}

@media print {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
