/* Progressive enhancement: content is visible without this file or JavaScript. */
.home-page :is(.button, .text-link):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .home-page .home-reveal-pending {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
  }
  .home-page #site-services-success[open] { animation: home-success-in .3s ease-out; }
  @keyframes home-success-in { from { opacity: .6; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
}
@media (prefers-reduced-motion: reduce) {
  html:has(body.home-page) { scroll-behavior: auto; }
  .home-page :is(.button, .text-link, .button span, .text-link span, #projects .media-bg picture, #benefits .progress span) { transition: none; }
}

/* Clip only the service photographs, preserving links and Bitrix edit wrappers. */
.home-page #services .asset-picture { overflow: hidden; }
/* The JS animates complete visual groups; these hints keep the reveal on the compositor. */
@media (prefers-reduced-motion: no-preference) {
  .home-page .hero-body > .stack,
  .home-page .hero-aside,
  .home-page #mission .split > .stack,
  .home-page #services article,
  .home-page #benefits > .split,
  .home-page #projects .project-copy,
  .home-page .stats .stat,
  .home-page #awards .card > .stack,
  .home-page #awards .award-visual { will-change: opacity, transform; }
  .home-page #awards .award-visual { will-change: opacity, transform, clip-path; }
  .home-page .stats .stat strong { font-variant-numeric: tabular-nums; }
}
@media (prefers-reduced-motion: no-preference) {
  .home-page #projects .media-bg picture img { scale: 1.025; transition: scale 1.2s cubic-bezier(.22, 1, .36, 1); }
  .home-page #projects .media-bg picture.is-active img { scale: 1; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .home-page :is(.button, .text-link) { transition: background .2s ease, color .2s ease, translate .2s ease; }
  .home-page :is(.button, .text-link):hover:not(:disabled) { translate: 0 -2px; }
}
