/* Shared orange node / orange-to-teal connector treatment for every process. */
.q-flow{--q-node:56px;--q-line:3px;--q-orange:#ff8a32;--q-teal:#4bc8a6;--q-node-bg:#101417}
.q-flow-step{position:relative;min-width:0}
.pathway-grid.q-flow{border-top:0;padding-top:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.pathway-grid.q-flow>.q-flow-step>.eyebrow,.q-flow-list>.q-flow-step>span,.delivery-lifecycle.q-flow>.q-flow-step>span,.journey-strip.q-flow>.q-flow-step>span{position:relative;z-index:2;display:grid;place-items:center;flex:0 0 var(--q-node);width:var(--q-node);height:var(--q-node);box-sizing:border-box;border:1px solid var(--q-orange);border-radius:50%;background:var(--q-node-bg);color:#ffab64;box-shadow:0 0 0 6px #ff640012;letter-spacing:.04em}
.pathway-grid.q-flow>.q-flow-step>.eyebrow{margin-bottom:24px}
.pathway-grid.q-flow>.q-flow-step:before,.pathway-grid.q-flow>.q-flow-step:after{content:"";position:absolute;top:calc(var(--q-node)/2);left:var(--q-node);width:calc(100% + 24px - var(--q-node));height:var(--q-line);transform-origin:left}
.q-flow-step:before{background:#42615a}
.q-flow-step:after{background:linear-gradient(90deg,var(--q-orange),var(--q-teal));transform:scaleX(0)}
/* Only the outgoing connector ends at the last step; its bullet stays visible. */
.q-flow-step.q-flow-last:after{display:none!important}
.pathway-grid.q-flow>.q-flow-last:before,.q-flow-list>.q-flow-last:before,.delivery-lifecycle.q-flow>.q-flow-last:before,.engine-steps.q-flow>.q-flow-last:before{display:none!important}
.q-flow-list{list-style:none!important;margin:0;padding:0!important;display:flex!important;flex-direction:column;gap:0!important}
.q-flow-list>.q-flow-step{display:flex;align-items:center;gap:22px;border:0!important;padding:0 0 34px!important;min-height:90px}
.q-flow-list>.q-flow-step:before,.q-flow-list>.q-flow-step:after{content:"";position:absolute;left:calc(var(--q-node)/2 - var(--q-line)/2);top:var(--q-node);width:var(--q-line);height:calc(100% - var(--q-node));transform-origin:top}
.q-flow-list>.q-flow-step:after{background:linear-gradient(var(--q-orange),var(--q-teal));transform:scaleY(0)}
.how-we-work.q-flow-list>li>svg{display:none}
.delivery-lifecycle.q-flow:before{display:none}
.delivery-lifecycle.q-flow{padding:24px 0}
.delivery-lifecycle.q-flow>.q-flow-step{padding:0 8px;gap:20px}
.delivery-lifecycle.q-flow>.q-flow-step:before,.delivery-lifecycle.q-flow>.q-flow-step:after{content:"";display:block;position:absolute;left:calc(50% + var(--q-node)/2);top:calc(var(--q-node)/2);width:calc(100% - var(--q-node));height:var(--q-line);border:0;transform-origin:left}
.delivery-lifecycle.q-flow>.q-flow-step:before{background:#42615a}
.delivery-lifecycle.q-flow>.q-flow-step:after{background:linear-gradient(90deg,var(--q-orange),var(--q-teal));transform:scaleX(0)}
/* Contact dots are real start/end nodes, rather than connector pseudo-elements. */
.q-flow-contact>.q-flow-step{position:relative;margin:0;padding:0 0 34px 78px;min-height:90px;display:flex;align-items:center}
.q-flow-contact>.q-flow-step:before{content:"";position:absolute;left:0;top:0;box-sizing:border-box;width:var(--q-node);height:var(--q-node);border:1px solid var(--q-orange);border-radius:50%;background:radial-gradient(circle,var(--q-orange) 0 4px,var(--q-node-bg) 5px);box-shadow:0 0 0 6px #ff640012;z-index:2}
.q-flow-contact>.q-flow-step:after{content:"";position:absolute;left:calc(var(--q-node)/2 - var(--q-line)/2);top:var(--q-node);width:var(--q-line);height:calc(100% - var(--q-node));background:linear-gradient(var(--q-orange),var(--q-teal));transform-origin:top;transform:scaleY(0)}
/* Compact engine nodes use the same palette without crowding its labels. */
.engine-steps.q-flow{--q-node:30px;--q-line:2px;gap:10px}
.engine-steps.q-flow>.q-flow-step>b{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:var(--q-node);height:var(--q-node);box-sizing:border-box;border:1px solid var(--q-orange);border-radius:50%;background:var(--q-node-bg);color:#ffab64;box-shadow:0 0 0 3px #ff640012;margin-bottom:12px}
.engine-steps.q-flow>.q-flow-step:before,.engine-steps.q-flow>.q-flow-step:after{content:"";position:absolute;top:calc(var(--q-node)/2);left:var(--q-node);width:calc(100% + 10px - var(--q-node));height:var(--q-line);transform-origin:left}
.engine-steps.q-flow>.q-flow-step:before{background:#42615a}
.engine-steps.q-flow>.q-flow-step:after{background:linear-gradient(90deg,var(--q-orange),var(--q-teal));transform:scaleX(0)}
.journey-strip.q-flow>.q-flow-step:after{content:"";position:absolute;left:var(--q-node);right:0;top:calc(var(--q-node)/2);height:var(--q-line);transform-origin:left}
@media(prefers-reduced-motion:no-preference){
 .q-flow-step.q-flow-awaiting{opacity:0}
 .q-flow-step.q-flow-reached{animation:q-flow-step-arrive 720ms ease-out both}
 @keyframes q-flow-step-arrive{from{opacity:0}to{opacity:1}}
 .q-flow-reached>h3,.q-flow-reached>p,.q-flow-reached>strong{animation:q-flow-text-arrive 720ms cubic-bezier(.22,1,.36,1) both}
 @keyframes q-flow-text-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
 .pathway-grid.q-flow>.q-flow-reached:after,.delivery-lifecycle.q-flow>.q-flow-reached:after,.engine-steps.q-flow>.q-flow-reached:after,.journey-strip.q-flow>.q-flow-reached:after{animation:q-flow-draw-x 620ms ease-in-out 260ms both}
 .q-flow-list>.q-flow-reached:after,.q-flow-contact>.q-flow-reached:after{animation:q-flow-draw-y 620ms ease-in-out 260ms both}
 @keyframes q-flow-draw-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 @keyframes q-flow-draw-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}
@media(max-width:1000px){
 .pathway-grid.q-flow{display:grid;grid-template-columns:1fr;gap:0}
 .pathway-grid.q-flow>.q-flow-step{padding:0 0 38px 82px;min-height:110px}
 .pathway-grid.q-flow>.q-flow-step>.eyebrow{position:absolute;left:0;top:0;margin:0}
 .pathway-grid.q-flow>.q-flow-step:before,.pathway-grid.q-flow>.q-flow-step:after{left:calc(var(--q-node)/2 - var(--q-line)/2);top:var(--q-node);width:var(--q-line);height:calc(100% - var(--q-node));transform-origin:top}
 .pathway-grid.q-flow>.q-flow-step:after{transform:scaleY(0);background:linear-gradient(var(--q-orange),var(--q-teal))}
 .pathway-grid.q-flow>.q-flow-reached:after{animation-name:q-flow-draw-y}
 .delivery-lifecycle.q-flow{grid-template-columns:1fr;gap:0}
 .delivery-lifecycle.q-flow>.q-flow-step{align-items:center;flex-direction:row;text-align:left;padding:0 0 34px;min-height:90px;gap:22px}
 .delivery-lifecycle.q-flow>.q-flow-step:before,.delivery-lifecycle.q-flow>.q-flow-step:after{left:calc(var(--q-node)/2 - var(--q-line)/2);top:var(--q-node);width:var(--q-line);height:calc(100% - var(--q-node));transform-origin:top}
 .delivery-lifecycle.q-flow>.q-flow-step:after{transform:scaleY(0);background:linear-gradient(var(--q-orange),var(--q-teal))}
 .delivery-lifecycle.q-flow>.q-flow-reached:after{animation-name:q-flow-draw-y}
}
@media(max-width:420px){.q-flow{--q-node:48px}.pathway-grid.q-flow>.q-flow-step{padding-left:70px}.q-flow-contact>.q-flow-step{padding-left:70px}.engine-steps.q-flow{--q-node:28px}}
@media(prefers-reduced-motion:reduce){.q-flow-step{animation:none!important;translate:none!important;opacity:1!important}.q-flow-step>*{animation:none!important;translate:none!important}.q-flow-step:after{animation:none!important;transform:none!important}}
/* Keep all delivery circles consistent through the original active-step cycle. */
.delivery-lifecycle.q-flow>li>span,.delivery-lifecycle.q-flow>li.is-active>span{width:var(--q-node);height:var(--q-node);flex:0 0 var(--q-node);border:1px solid var(--q-orange);border-radius:50%;background:var(--q-node-bg);color:#ffab64;box-shadow:0 0 0 6px #ff640012;transform:none}
.delivery-lifecycle.q-flow>li.is-active>strong{color:inherit}
.delivery-lifecycle.q-flow>li:not(:last-child):after{border:0;right:auto}
/* The base track is static; each coloured overlay draws into the Q once. */
.engine .network-lines>.q-input-track,.engine.q-engine-enter .network-lines>.q-input-track{stroke:#42615a;stroke-width:1.5px;stroke-dasharray:none;animation:none;opacity:.5;clip-path:none}
.engine .network-lines>.q-input-curve,.engine.q-engine-enter .network-lines>.q-input-curve{fill:none;stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:none;opacity:0;clip-path:none}
.engine .network-lines defs path{animation:none;stroke-dasharray:none}
@media(prefers-reduced-motion:no-preference){
 .engine .network-lines.q-input-active>.q-input-curve,.engine.q-engine-enter .network-lines.q-input-active>.q-input-curve{animation:q-input-draw 1100ms ease-in-out both;animation-delay:var(--q-input-delay)}
 @keyframes q-input-draw{0%{stroke-dashoffset:1;opacity:0}12%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
 .q-input-engine.q-engine-enter .network-core{animation-delay:2900ms}
 .q-input-engine.q-engine-enter .engine-result{animation-delay:3400ms}
}
@media(prefers-reduced-motion:reduce){.engine .network-lines>.q-input-curve,.engine.q-engine-enter .network-lines>.q-input-curve{animation:none!important;stroke-dashoffset:0;opacity:1}}
.engine .network-lines defs marker>path{fill:#4bc8a6;stroke:none;animation:none;stroke-dasharray:none}
