/* Two signature chapters, built around the services rather than decoration. */
.service-explorer{grid-template-columns:1.12fr 1fr;gap:40px;align-items:stretch}
.service-map{position:relative;min-height:620px;background:#0b2038;color:#fff;overflow:hidden;border:1px solid #203c58}
.map-caption{position:absolute;top:25px;left:26px;right:26px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.3px;color:#a1b5ce;z-index:2}
.map-caption span:last-child{letter-spacing:.5px;color:#c9d7e9}
.map-connections{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#4d6885;stroke-width:1;vector-effect:non-scaling-stroke}
.map-route{stroke:#a1c3ff;stroke-width:2;stroke-dasharray:280;stroke-dashoffset:0;transition:d .6s}
.map-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;background:#0b2038;padding:18px 9px;width:188px}
.map-hub>span{display:grid;place-items:center;width:43px;height:43px;margin:0 auto 15px;border:1px solid #6a88ae;color:#bfd3f0;font-size:16px;font-weight:700}
.map-hub strong{display:block;font-size:20px;font-weight:500;letter-spacing:-.6px}.map-hub small{font-size:10px;color:#9db0c9}
.service-selector{position:absolute;inset:0;display:block;border:0}
.service-selector button{position:absolute;width:37%;height:90px;padding:14px!important;display:flex;flex-direction:column;justify-content:center;gap:4px;border:1px solid #3a526c;background:#102941;color:#c3d1e1;font-size:13px;text-align:center;z-index:3;transition:background .35s,border-color .35s,box-shadow .35s,transform .35s}
.service-selector button>span{color:#91a9c9;font-size:10px}.service-selector button i{display:none}
.service-selector button:nth-child(odd){left:5%}.service-selector button:nth-child(even){right:5%}
.service-selector button:nth-child(-n+2){top:13%}.service-selector button:nth-child(3),.service-selector button:nth-child(4){top:43%}.service-selector button:nth-child(n+5){top:73%}
.service-selector button:nth-child(3){left:2%;width:29%}.service-selector button:nth-child(4){right:2%;width:29%}
.service-selector button[aria-selected=true],.service-selector button:hover{background:#234974;border-color:#90b5eb;color:#fff;box-shadow:0 8px 28px #0002}
.service-selector button[aria-selected=true]>span{color:#d7e7ff}
.service-panels{background:#f4f6f8;border:0;border-top:2px solid #163b65;padding:44px 34px;min-height:620px}
.service-panels h3{font-size:clamp(30px,3vw,44px);margin-top:36px}.service-context{border-top:1px solid #d6dee8;padding-top:20px}
.security-inner{display:block;padding-bottom:65px}.security-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:0 90px}.security-copy .section-kicker{grid-column:1/-1}.security-copy h2{grid-row:2/5;font-size:clamp(40px,4.6vw,66px)}.security-copy>p{margin:0 0 18px}.security-copy>p+p{margin:0 0 24px}.security-copy .light-link{justify-self:start}.security-footnote{grid-column:2}
.security-journey{max-width:1380px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:0 6% 80px}
.security-model{position:sticky;top:105px;align-self:start;height:580px;border-top:1px solid #59718d;border-bottom:1px solid #314861;perspective:1100px}
.model-caption{display:flex;justify-content:space-between;padding-top:22px;color:#90a8c8;font-size:10px;letter-spacing:1.4px}.model-count{font-variant-numeric:tabular-nums}
.layer-stack{position:absolute;left:12%;right:12%;top:75px;height:330px;transform-style:preserve-3d}
.security-layer{position:absolute;inset:0;height:190px;padding:24px;border:1px solid #6789b2;background:#173d62;transform:translateY(var(--layer-y)) rotateX(48deg) rotateZ(-25deg);opacity:.17;transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .65s,background .65s;box-shadow:10px 18px 0 #06152855}
.security-layer>span{font-size:12px;color:#a8c2e4}.security-layer strong{display:block;font-size:28px;font-weight:500;letter-spacing:-1px;margin-top:23px}.security-layer i{font-size:9px;font-style:normal;letter-spacing:1.3px;color:#adbfda}
.layer-1{--layer-y:165px;z-index:4}.layer-2{--layer-y:110px;z-index:3}.layer-3{--layer-y:55px;z-index:2}.layer-4{--layer-y:0px;z-index:1}
.security-layer.is-built{opacity:1;background:#245886;transform:translateY(var(--layer-y)) rotateX(48deg) rotateZ(-25deg)}
.security-layer:not(.is-built){transform:translateY(calc(var(--layer-y) - 40px)) translateX(25px) rotateX(48deg) rotateZ(-25deg)}
.model-note{position:absolute;bottom:20px;font-size:29px;line-height:1.25;letter-spacing:-1px}.model-note span{color:#8ba8ce}
.security-chapters article{min-height:440px;display:flex;flex-direction:column;justify-content:center;border-top:1px solid #314861;padding:60px 0;opacity:.72;transition:opacity .5s}
.security-chapters article.is-current{opacity:1}.chapter-number{font-size:10px;color:#91add3;letter-spacing:1.5px}.security-chapters h3{font-size:clamp(32px,3.5vw,48px);font-weight:500;letter-spacing:-1.7px;line-height:1.15;margin:24px 0}.security-chapters p{font-size:16px;line-height:1.85;color:#b7c7db;margin:0 0 25px}.chapter-outcome{font-size:12px;color:#94b7e3;border-left:2px solid #719dd9;padding-left:14px}.security-chapters .light-link{align-self:start}
@media(min-width:1000px){.client-section{padding-top:115px;padding-bottom:115px}.client-quote blockquote{font-size:36px;line-height:1.45;letter-spacing:-1.2px}.quote-stage{position:relative}.quote-stage:before{content:'“';position:absolute;top:-76px;left:48px;font-family:Georgia,serif;font-size:125px;line-height:1;color:#c4d2e5}}
@media(max-width:1000px){.service-explorer{grid-template-columns:1fr}.service-map{min-height:540px}.service-panels{min-height:0}.security-journey{gap:35px}.security-copy{gap:0 35px}.security-model{height:520px}.security-layer{padding:16px}.security-layer strong{font-size:22px}}
@media(max-width:760px){.service-map{min-height:480px}.map-caption{left:15px;right:15px;font-size:8px}.map-caption span:last-child{max-width:95px;text-align:right}.map-hub{width:120px;padding:12px 4px}.map-hub strong{font-size:15px}.map-hub small{display:none}.map-hub>span{width:30px;height:30px;font-size:12px;margin-bottom:9px}.service-selector button{font-size:11px;padding:10px!important;height:78px}.service-selector button:nth-child(3),.service-selector button:nth-child(4){width:28%;font-size:11px}.service-panels{padding:30px 24px}.service-panels h3{margin-top:22px}.security-copy{display:block}.security-copy h2{font-size:40px;margin-bottom:28px}.security-copy>p{font-size:15px}.security-inner{padding-bottom:40px}.security-journey{display:block;padding-bottom:50px}.security-model{position:relative;top:auto;height:430px;max-width:460px;margin:auto}.layer-stack{top:45px;left:16%;right:16%;height:250px}.security-layer{height:145px;padding:14px}.security-layer strong{font-size:21px;margin-top:13px}.security-layer i{font-size:7px}.layer-1{--layer-y:130px}.layer-2{--layer-y:86px}.layer-3{--layer-y:43px}.model-note{font-size:24px;bottom:12px}.security-chapters article{min-height:0;padding:45px 0;opacity:1}.security-chapters h3{font-size:35px}.security-model .security-layer{opacity:1;background:#245886;transform:translateY(var(--layer-y)) rotateX(48deg) rotateZ(-25deg)}}
@media(prefers-reduced-motion:reduce){.security-layer,.security-chapters article{transition:none;opacity:1}.map-route{transition:none}.security-layer{transform:translateY(var(--layer-y)) rotateX(48deg) rotateZ(-25deg)!important}}

/* A measured service directory with a single connected spine. */
.service-map{min-height:630px;background:#0c2035;border-color:#23394f}
.map-caption{top:30px;left:28px;right:28px;font-size:10px;letter-spacing:1.1px}
.map-caption span:last-child{font-size:9px;color:#8197b0}
.map-hub{left:19%;top:50%;width:120px;padding:18px 0;background:transparent}
.map-hub>span{width:44px;height:44px;border-color:#7f9aba;background:#18334f}
.map-hub strong{font-size:17px;line-height:1.35;letter-spacing:-.4px}
.map-hub small{display:block;font-size:10px;line-height:1.6;margin-top:8px;color:#8da5c0}
.map-connections{stroke:#344f69;stroke-width:1}
.map-route{stroke:#a7c9f3;stroke-width:1.5;stroke-dasharray:600;transition:none}
.service-selector{inset:95px 6% 65px 43%;display:grid;grid-template-rows:repeat(6,1fr);gap:0}
.service-selector button:nth-child(n){position:relative;inset:auto;width:100%;height:auto;min-height:64px;display:grid;grid-template-columns:20px 1fr 16px;gap:9px;padding:14px 12px!important;border:0;border-bottom:1px solid #ffffff1c;background:transparent;box-shadow:none;text-align:left;font-size:14px;line-height:1.5;color:#aebed1}
.service-selector button:before{content:'';position:absolute;left:-4px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#617e9e;box-shadow:0 0 0 4px #0c2035;transition:background .3s}
.service-selector button:nth-child(n)[aria-selected=true]{background:#1b3652;color:#fff;box-shadow:inset 0 -1px #91afd2}
.service-selector button[aria-selected=true]:before{background:#d1e3fa}
.service-selector button:nth-child(n):hover{color:#fff;background:#162d45}
.service-selector button i{display:block;font-size:14px;opacity:0;transform:translateX(-4px);color:#d5e5fa}
.service-selector button[aria-selected=true] i{opacity:1;transform:none}
.service-selector button>span{font-size:10px;color:#7f99b7}
.service-panels{min-height:630px;background:#f7f8fa;border-top:1px solid #b6c5d7;padding:42px 38px}
.service-panels h3{margin-top:27px;font-size:clamp(30px,3vw,42px)}
.security-chapters article{min-height:580px;opacity:.8;padding:85px 0}
.security-layer.is-built:not(.is-active){background:#1b4265;border-color:#567b9e}
.security-layer.is-active{background:#2f6997;border-color:#c0d8f2;box-shadow:10px 18px 0 #06152855,inset 0 0 0 1px #c0d8f233}
@media(max-width:1000px){.service-map{min-height:580px}.service-panels{min-height:0}.security-chapters article{min-height:520px}.map-hub{left:20%;width:145px}.service-selector button:nth-child(n){font-size:16px}}
@media(max-width:760px){.service-map{min-height:535px}.map-caption{top:23px;left:18px;right:18px;font-size:8px}.map-caption span:last-child{font-size:8px;max-width:95px}.map-hub{left:18%;width:77px}.map-hub>span{width:35px;height:35px}.map-hub strong{font-size:13px}.map-hub small{font-size:9px}.service-selector{inset:75px 5% 35px 39%}.service-selector button:nth-child(n){font-size:12px;grid-template-columns:15px 1fr;gap:6px;padding:12px 10px!important;min-height:65px}.service-selector button i{display:none}.service-panels{padding:30px 24px}.security-chapters article{min-height:0;padding:45px 0;opacity:1}.model-count{display:none}.security-model .security-layer{background:#245886;border-color:#6789b2}}

/* The entire security scene holds: one model, one chapter, one shared scroll clock. */
.security-journey{display:block}
.security-stage{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.is-pinned-scene.security-journey{height:calc(580px + var(--chapter-distance) * 4);padding-bottom:0}
.is-pinned-scene .security-stage{position:sticky;top:max(96px,calc((100svh - 580px + 74px)/2));height:580px;align-items:stretch}
.is-pinned-scene .security-model{position:relative;top:0;height:580px}
.is-pinned-scene .security-chapters{position:relative;height:580px;border-block:1px solid #314861;display:grid;align-items:center}
.is-pinned-scene .security-chapters article{grid-area:1/1;min-height:0;height:auto;padding:36px 0;border:0;opacity:1}
.is-pinned-scene .security-chapters article[hidden]{display:none!important}
@media(max-width:1000px){.security-stage{gap:35px}}
@media(max-width:760px){.security-stage{display:block}.security-journey{height:auto}}
@media(prefers-reduced-motion:reduce){.security-stage{position:static}.security-chapters article{opacity:1}}
