/* Decorative frontend motion. Information is visible before/without JS. */
/* Horizontal flights stay inside their full-width section without clipping vertically. */
.tt-infrastructure, .infrastructure-section, .tt-profile, .profile-section { overflow-x:clip; }
.tt-motion-image { display:block; position:relative; overflow:hidden; border-radius:4px; }
.tt-motion-image img { display:block; width:100%; }
.tt-motion-curtain { position:absolute; inset:0; background:#1a2980; visibility:hidden; pointer-events:none; z-index:2; }
.tt-motion-frame { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:3; fill:none; stroke:#2c65de; stroke-width:2; }
.tt-motion-frame rect { vector-effect:non-scaling-stroke; }
.tt-motion-service-line { position:absolute; left:0; right:0; top:-2px; height:2px; background:#1a2980; transform-origin:left; pointer-events:none; }
.tt-services .tt-item, .services-list article { position:relative; }
/* Outrank site.css's later .tt-services .tt-item border shorthand only on enhanced cards. */
.tt-services .tt-item.tt-motion-service, .services-list .tt-motion-service { border-top-color:transparent; }
.tt-motion-process { position:relative; }
.tt-motion-route { position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; pointer-events:none; }
.tt-motion-route path { stroke:#2c65de; stroke-width:4; stroke-linejoin:round; stroke-linecap:round; }
.tt-motion-route circle { fill:#fff; stroke:#1a2980; stroke-width:3; }
.tt-motion-contact-line { display:block; width:72px; height:4px; margin-top:20px; background:#2c65de; pointer-events:none; }
@media(min-width:782px) and (max-width:850px) { .process-list.tt-motion-process { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:781px) {
  .tt-motion-process { padding-left:28px; }
  .tt-motion-process > .wp-block-column, .tt-motion-process > li { position:relative; }
}
@media(prefers-reduced-motion:reduce) { .tt-motion-curtain { visibility:hidden !important; } }
