.ct-icon{width:21px;height:21px;display:inline-block;vertical-align:middle;flex-shrink:0;stroke:currentColor}
.brand-logo{display:block;width:min(230px,42vw);height:56px;object-fit:contain;object-position:left center}.brand-fallback{display:flex;flex-direction:column;font-weight:800;letter-spacing:.08em}.brand-fallback[hidden]{display:none!important}.brand-fallback small{font-size:10px}
.ct-menu-icon{margin-right:7px;width:18px;height:18px}
header nav{gap:16px}header nav>a{white-space:nowrap}
.service-heading{display:flex;width:100%;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--blue)}
.service-heading .number{margin:0}.service-heading>.ct-icon,.solution-symbol>.ct-icon{width:32px;height:32px}
.solution-symbol{display:flex;align-items:center;justify-content:center;width:56px;height:56px;color:var(--blue);background:#eef3ff;margin-bottom:22px;border:1px solid #d9e5ff;border-radius:14px}
.ct-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px;padding:16px 6px 12px;margin:0 0 24px;border-top:1px solid #dce5f4;border-bottom:1px solid #dce5f4;isolation:isolate;pointer-events:none}
.ct-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;min-width:0;color:#52627b}
.ct-stage:not(:last-child):after{content:'';position:absolute;left:calc(50% + 19px);right:calc(-50% + 11px);height:2px;top:18px;background:linear-gradient(90deg,#a6bfe9,#165dff);transform-origin:left;z-index:-1}
.ct-stage>.ct-icon{width:38px;height:38px;padding:7px;border-radius:11px;background:#edf3ff;color:var(--blue);border:1px solid #d5e2fa}
.ct-stage small{font-size:14px;line-height:1.35;overflow-wrap:anywhere;font-weight:600}
.ct-flow.ct-playing .ct-stage>.ct-icon{animation:ct-step 1.5s ease both;animation-delay:calc(var(--step)*1.5s)}
.ct-flow.ct-playing .ct-stage:not(:last-child):after{animation:ct-signal 1.5s ease both;animation-delay:calc(var(--step)*1.5s + .35s)}
.ct-flow.ct-playing[data-kind="1"] .ct-stage:last-child>.ct-icon{animation-name:ct-protect}
.ct-flow.ct-playing[data-kind="4"] .ct-stage:first-child>.ct-icon{animation-name:ct-arrive}
.ct-flow.ct-playing[data-kind="6"] .ct-stage:first-child>.ct-icon{animation-name:ct-ring}
.ct-flow.ct-playing[data-kind="7"] .ct-stage:nth-child(2)>.ct-icon{animation-name:ct-repair}
.hotspot span>.ct-icon{width:16px;height:16px;margin-right:5px}.hotspot span{display:flex;align-items:center}
.solution-copy>.ct-flow{max-width:490px;margin-top:24px}.app-card>.solution-symbol{margin-bottom:18px}
#detail>.ct-flow{margin-top:24px}#detail{max-height:calc(100dvh - 32px);overflow-y:auto}
@keyframes ct-step{0%{transform:scale(.92);background:#edf3ff}38%,70%{transform:translateY(-4px) scale(1.1);background:#165dff;color:#fff;box-shadow:0 5px 14px #165dff30}100%{transform:none}}
@keyframes ct-signal{0%,12%{transform:scaleX(0);opacity:.3}75%,100%{transform:scaleX(1);opacity:1}}
@keyframes ct-protect{0%{transform:scale(.85)}45%,70%{transform:scale(1.15);background:#165dff;color:white;box-shadow:0 0 0 6px #165dff1a}100%{transform:none}}
@keyframes ct-arrive{0%{transform:translateX(-12px);opacity:.3}65%{transform:translateX(3px);background:#165dff;color:#fff}100%{transform:none;opacity:1}}
@keyframes ct-ring{0%,100%{transform:none}20%,50%{transform:rotate(-12deg);background:#165dff;color:#fff}35%,65%{transform:rotate(12deg)}}
@keyframes ct-repair{0%,100%{transform:none}35%{transform:rotate(-25deg);background:#165dff;color:#fff}65%{transform:rotate(20deg)}}
@media(min-width:701px) and (max-width:1450px){header nav{gap:12px;font-size:13px}header nav .button{display:none}}
@media(max-width:700px){.service-heading{margin-bottom:18px}.ct-flow{gap:5px;padding-left:0;padding-right:0}.service-grid:not(.communication-detail .service-grid){grid-template-columns:repeat(2,minmax(0,1fr))}.service .ct-stage small{font-size:14px}.hotspot span{font-size:12px;padding:8px}.h2{left:39%}.h4 span{width:175px}}
@media(max-width:420px){#services{grid-template-columns:1fr}.service .ct-flow{max-width:320px}.h2{left:32%}.h4{left:10%}}
@media(prefers-reduced-motion:reduce){.ct-flow *, .ct-flow *:after{animation:none!important;transition:none!important}}
