/* LINK / Creative Motion — additive styling; uses only existing brand colors. */
@media (prefers-reduced-motion: no-preference) {
  .link-cm--entered.link-cm--copy { animation: link-cm-rise .75s cubic-bezier(.2,.8,.2,1) both; }
  .link-cm--entered.link-cm--heading { animation: link-cm-rise .85s cubic-bezier(.2,.8,.2,1) both; }
  .link-cm--entered.link-cm--card { animation: link-cm-rise .68s cubic-bezier(.2,.8,.2,1) both; }
  .link-cm--entered.link-cm--media { animation: link-cm-clarity 1s ease-out both; }
  .hero3-copy .link-cm--entered:nth-child(2),
  .services-hero-copy .link-cm--entered:nth-child(2) { animation-delay: 100ms; }
  .hero3-copy .link-cm--entered:nth-child(3),
  .services-hero-copy .link-cm--entered:nth-child(3) { animation-delay: 175ms; }
  .hero3-copy .link-cm--entered:nth-child(4),
  .services-hero-copy .link-cm--entered:nth-child(4) { animation-delay: 240ms; }
  .link-cm--entered { animation-delay: calc(var(--link-cm-order, 0) * 70ms); }
  @keyframes link-cm-rise {
    from { opacity: .2; translate: 0 17px; filter: blur(3px); }
    to { opacity: 1; translate: 0 0; filter: blur(0); }
  }
  @keyframes link-cm-clarity {
    from { opacity: .55; filter: saturate(.8) blur(2px); }
    to { opacity: 1; filter: saturate(1) blur(0); }
  }
  /* A signal glides across the existing hero image; non-interactive and clipped. */
  .link-cm-hero-signal { isolation: isolate; }
  .link-cm-hero-signal::before {
    content: ''; position: absolute; z-index: 2; inset: 0; pointer-events: none;
    background: linear-gradient(112deg, transparent 43%, rgba(236,30,40,.085) 49%, rgba(255,255,255,.07) 50%, transparent 56%);
    background-size: 240% 100%; animation: link-cm-sweep 12s ease-in-out infinite;
  }
  @keyframes link-cm-sweep { 0%,58% { background-position: 110% 0; } 86%,100% { background-position: -110% 0; } }
  /* Pulse inside the connector that is already rendered by the template. */
  .link-cm-workflow-active .step-connector > span {
    animation: link-cm-connector-glow 3.4s ease-in-out infinite;
  }
  .link-cm-workflow-active li:nth-child(2n) .step-connector > span { animation-delay: 1.1s; }
  .link-cm-workflow-active li:nth-child(3n) .step-connector > span { animation-delay: 2.2s; }
  @keyframes link-cm-connector-glow { 0%,100% { opacity: .75; } 45% { opacity: 1; filter: drop-shadow(0 0 4px rgba(236,30,40,.5)); } }
  .link-cm-journey .lpd-journey-stage { transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .6s ease; }
  .link-cm-journey .lpd-step-marker, .link-cm-journey .lpd-journey-icon { transition: border-color .45s ease, color .45s ease, box-shadow .45s ease; }
  .link-cm-journey .lpd-journey-stage.is-link-stage-active { animation: link-cm-stage-arrive .62s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--link-stage-order, 0) * 145ms); }
  .link-cm-journey .lpd-journey-stage.is-link-stage-active .lpd-step-marker, .link-cm-journey .lpd-journey-stage.is-link-stage-active .lpd-journey-icon { animation: link-cm-node-confirm .7s ease both; animation-delay: calc(180ms + var(--link-stage-order, 0) * 145ms); }
  .link-cm-journey-signal { position:absolute; z-index:4; top:23px; inset-inline-start:5%; width:12px; height:12px; border-radius:50%; background:#ad222b; border:3px solid #fff; box-shadow:0 0 0 4px rgba(173,34,43,.16),0 0 14px rgba(173,34,43,.42); opacity:0; pointer-events:none; }
  .link-cm-journey-active .link-cm-journey-signal { animation:link-cm-journey-travel 5.4s cubic-bezier(.45,0,.25,1) infinite; }
  @keyframes link-cm-journey-travel { 0%,8%{inset-inline-start:5%;opacity:0} 13%{opacity:1} 87%{opacity:1} 94%,100%{inset-inline-start:94%;opacity:0} }
  @keyframes link-cm-stage-arrive { from{opacity:.5;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
  @keyframes link-cm-node-confirm { 0%{box-shadow:0 0 0 0 rgba(173,34,43,.2)} 55%{border-color:#ad222b;color:#ad222b;box-shadow:0 0 0 9px rgba(173,34,43,0)} 100%{box-shadow:none} }
}
@media (prefers-reduced-motion: no-preference) and (max-width:1050px) { .link-cm-journey-signal { display:none; } }
@media (prefers-reduced-motion: reduce) {
  .link-cm, .link-cm-hero-signal::before, .link-cm-workflow .step-connector > span,
  .link-cm-journey-signal, .link-cm-journey-stage, .lpd-step-marker, .lpd-journey-icon {
    animation: none !important; translate: none !important; filter: none !important;
  }
}
