/* Quiet movement, with no looping or scroll-driven effects. */
@media (prefers-reduced-motion: no-preference) {
  .button { transition: background-color 450ms ease, color 450ms ease, transform 450ms ease, box-shadow 450ms ease; }
  .button span { transition: transform 450ms ease; }
  .text-link, nav a { transition: color 450ms ease, border-color 450ms ease; }
  .hero-photo > img { transition: transform 1800ms cubic-bezier(.22, 1, .36, 1); }
  .portrait img, .space > img { transition: filter 1100ms ease; }
  .care-grid article, .steps article { transition: border-color 550ms ease; }
  input, textarea, select { transition: border-color 350ms ease, background-color 350ms ease; }
  input:focus, textarea:focus, select:focus { border-color: var(--olive); background-color: #f6f5ec; }
  progress::-webkit-progress-value { transition: width 600ms ease; }
  progress::-moz-progress-bar { transition: width 600ms ease; }
  fieldset[data-step]:not([hidden]) { animation: step-enter 700ms cubic-bezier(.25, .46, .45, .94); }
  @keyframes step-enter { from { opacity: .3; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover { box-shadow: 0 5px 15px #30362216; }
  .button:hover span { transform: translate(2px, -2px); }
  .hero-photo:hover > img { transform: scale(1.025); }
  .portrait img:hover, .space > img:hover { filter: brightness(1.035); }
  .care-grid article:hover, .steps article:hover { border-color: var(--copper); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:hover { transform: none; }
}
@media print {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
