/* AutoScan service experience: all UI colours inherit the live theme. */
.sx-page{padding-block:clamp(24px,4vw,64px);min-width:0}.sx-page *, .sx-card *{box-sizing:border-box}.sx-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);margin-bottom:28px}.sx-breadcrumb a{min-height:32px;display:inline-flex;align-items:center}.sx-breadcrumb span{align-self:center}.sx-hero{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,70px);align-items:center}.sx-hero h1{font-size:clamp(28px,3.5vw,52px);line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere;margin:16px 0 22px}.sx-lead{font-size:clamp(15px,1.25vw,18px);line-height:1.8;color:var(--muted);max-width:620px}.sx-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.sx-caption{font-size:12px;color:var(--muted);margin-top:20px}.sx-visual{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:3/2;background:#10131b;border-radius:18px;width:100%;contain:layout paint}.sx-hardware{position:absolute;inset:0;background-image:url('/assets/service-components-r1.png');background-size:300% 200%;background-repeat:no-repeat}.sx-filter .sx-hardware{background-position:0 0}.sx-valve .sx-hardware{background-position:50% 0}.sx-scr .sx-hardware{background-position:100% 0}.sx-sensor .sx-hardware{background-position:0 100%}.sx-turbo .sx-hardware{background-position:50% 100%}.sx-ecu .sx-hardware{background-position:100% 100%}.sx-halo{position:absolute;inset:8%;border-radius:50%;box-shadow:inset 0 -24px 45px -40px var(--blue);opacity:.65;pointer-events:none}.sx-flow{position:absolute;inset:0;width:100%;height:100%;color:var(--blue);opacity:.68;pointer-events:none}.sx-flow-track{stroke:currentColor;stroke-width:1;opacity:.22}.sx-flow-pulse{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:4 22;animation:sx-stream 6s linear infinite}.sx-scan{position:absolute;inset:20% 12%;background:linear-gradient(90deg,transparent,rgba(177,204,255,.12),transparent);clip-path:inset(0 92% 0 0);animation:sx-sweep 7s ease-in-out infinite}.sx-node{position:absolute;width:6px;height:6px;border:1px solid #bdd7ff;border-radius:50%;box-shadow:0 0 15px #bdd7ff;animation:sx-signal 4s ease-in-out infinite}.sx-node-a{left:33%;top:48%}.sx-node-b{left:66%;top:57%;animation-delay:2s}.sx-sensor .sx-flow-pulse{stroke-dasharray:25 10 2 10;animation-duration:3s}.sx-scr .sx-flow-pulse{stroke-dasharray:1 24;stroke-width:4;animation-duration:9s}.sx-valve .sx-flow-pulse{animation:sx-stream 6s linear infinite,sx-valve 6s ease-in-out infinite}.sx-turbo .sx-flow{transform:rotate(-12deg);transform-origin:center}.sx-turbo .sx-flow-pulse{animation-duration:2s;stroke-dasharray:10 30}.sx-ecu .sx-flow-pulse{stroke-dasharray:1 12 18 28;animation-duration:4s}.sx-filter .sx-node{animation-duration:6s}.sx-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;overflow:hidden;min-width:0;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}.sx-card:hover{border-color:var(--blue);box-shadow:var(--shadow)}.sx-card .sx-visual{border-radius:0;flex-shrink:0}.sx-card-copy{padding:24px;display:flex;flex:1;flex-direction:column;gap:14px}.sx-card h3{font-size:21px;line-height:1.3;margin:0;overflow-wrap:anywhere}.sx-card p{font-size:14px;line-height:1.75;color:var(--muted);margin:0 0 8px}.sx-card .btn{margin-top:auto;align-self:start;white-space:normal;min-height:44px}.sp-service.sx-card{padding:0;transform:none}.sp-service.sx-card>h3,.sp-service.sx-card>p{margin:20px 24px 0}.sp-service.sx-card>a{margin:24px;align-self:start}.sx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.sx-options,.sx-related,.sx-workflow{margin-top:clamp(40px,7vw,88px);scroll-margin-top:100px}.sx-section-heading{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:20px;margin-bottom:24px}.sx-page h2{font-size:clamp(22px,2.2vw,32px);line-height:1.25;letter-spacing:-.025em}.sx-search{display:grid;gap:8px;color:var(--muted);font-size:12px;width:min(100%,320px)}.sx-search input{background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--text);font:inherit;font-size:16px;padding:12px 16px;min-height:48px;min-width:0;width:100%}.sx-explanation{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(24px,5vw,70px);margin-top:64px;padding-block:36px;border-block:1px solid var(--line)}.sx-explanation p,.sx-workflow p,.sx-cta p{color:var(--muted);line-height:1.8;font-size:15px}.sx-explanation aside{padding:26px;background:var(--soft);border:1px solid var(--line);border-radius:18px}.sx-option-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sx-option-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:52px;overflow-wrap:anywhere;font-size:14px}.sx-option-links a:hover{border-color:var(--blue)}.sx-option-links span{color:var(--blue)}.sx-workflow ol{list-style:none;counter-reset:sx-step;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0;margin:0}.sx-workflow li{counter-increment:sx-step;border-top:1px solid var(--line);padding-top:24px}.sx-workflow li:before{content:'0' counter(sx-step);display:block;color:var(--blue);font-size:12px;letter-spacing:.15em;margin-bottom:18px}.sx-workflow h3{font-size:18px}.sx-note{margin-top:32px;border-left:2px solid var(--line);padding-left:18px;color:var(--muted);font-size:12px;line-height:1.8}.sx-cta{margin-top:48px;padding:clamp(24px,4vw,48px);border:1px solid var(--line);border-radius:20px;background:var(--surface);display:flex;gap:24px;align-items:center;justify-content:space-between}.sx-cta p{margin-bottom:0;max-width:640px}.sx-cta .btn{flex-shrink:0}.sx-page :is(a,input):focus-visible{outline:3px solid var(--blue);outline-offset:4px}.sx-page [hidden],.sp-directory [hidden]{display:none!important}.sx-visual:not(.sx-running) *{animation-play-state:paused!important}@keyframes sx-stream{to{stroke-dashoffset:-260}}@keyframes sx-sweep{0%,15%{clip-path:inset(0 100% 0 0)}65%,100%{clip-path:inset(0 0 0 100%)}}@keyframes sx-signal{0%,100%{opacity:.2;transform:scale(.8)}50%{opacity:.85;transform:scale(1.2)}}@keyframes sx-valve{0%,35%,100%{opacity:.2}55%,75%{opacity:.8}}@media(min-width:1900px){.sx-hero>.sx-visual{max-width:820px}.sx-grid{gap:28px}}@media(max-width:1000px){.sx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sx-option-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.sx-hero,.sx-explanation,.sx-grid,.sx-workflow ol{grid-template-columns:1fr}.sx-hero{gap:24px}.sx-hero>.sx-visual{max-height:330px}.sx-explanation{margin-top:32px}.sx-cta{align-items:start;flex-direction:column}.sx-option-links{grid-template-columns:1fr}.sx-cta .btn{width:100%}.sx-card-copy{padding:20px}.sx-breadcrumb{font-size:11px}.sx-workflow ol{gap:16px}.sx-actions .btn{flex:1;min-width:135px;white-space:normal}.sx-page h1{font-size:32px}}@media(prefers-reduced-motion:reduce){.sx-visual *{animation:none!important}.sx-scan,.sx-node{display:none}.sx-card{transition:none}.sx-flow{opacity:.15}}
/* Preserve square sprite cells inside a wide studio frame. */
.sx-hardware{inset:0 16.6667%;background-size:300% 200%}
