/* V2.2 refinement: more of the company in view, with readable type and deliberate motion.
   Loaded last. Existing responsive grids, navigation offsets and input sizing stay intact. */

/* Adjust display scale and vertical rhythm; never scale the whole page. */
.section { padding-block:98px; }
.section-heading { gap:72px; margin-bottom:40px; }
.section-heading h2,
.review-offer-heading h2,
.ai-feature-copy h2,
.perspective-grid h2,
.finder-grid>div>h2,
.faq-grid>div>h2 { font-size:clamp(34px,3.5vw,49px); }
.section-heading>p { line-height:1.7; }
.eyebrow { margin-bottom:17px; }
.lead { font-size:20px; }
.tech-hero-shell { padding:20px 22px 22px; }
.tech-hero { min-height:640px; }
.tech-hero .hero-content { padding-top:72px; padding-bottom:80px; }
.tech-hero .hero-content h1 { font-size:clamp(58px,5.9vw,88px); margin-bottom:23px; }
.tech-hero .hero-content .eyebrow { padding:9px 12px; margin-bottom:23px; }
.tech-hero .hero-lead { font-size:20px; line-height:1.55; }
.tech-hero .hero-description { margin-bottom:24px; }
.tech-hero .button-row { margin-top:26px; }
.tech-hero.ai-hero .hero-content { padding-top:62px; padding-bottom:66px; }
.tech-hero.ai-hero .hero-content h1 { font-size:clamp(55px,5vw,74px); }
.hero-command { width:304px; right:37px; bottom:50px; padding:20px 21px 18px; }
.hero-command>strong { font-size:26px; }
.command-nodes { margin:18px 0 14px; }
.command-action { margin-top:14px; padding-top:14px; }
.quick-services>.container { padding-block:19px; }
.ai-feature { padding-bottom:90px; }
.domain-panel { min-height:402px; }
.domain-image { min-height:402px; }
.domain-copy { padding:37px 39px 34px; }
.domain-copy h3 { font-size:31px; }
.pain-grid { margin-top:30px; }
.review-offer-heading { gap:62px; }
.review-offer-grid { gap:72px; margin-top:44px; }
.delivery-path { margin-top:48px; padding-top:26px; }
.cta-section { padding-bottom:80px; }
.cta-copy { padding:54px 49px; }
.cta-copy h2 { font-size:43px; }
.cta-photo { min-height:380px; }
.contact-copy h1 { font-size:58px; }
.contact-form { padding:35px; }

/* Supporting service pages retain their photographic, spacious character. */
.sp-kicker { margin-bottom:20px; }
.sp-service-hero,.sp-hero-photo { min-height:620px; }
.sp-hero-copy { padding:64px clamp(32px,4.3vw,82px) 47px; }
.sp-hero-copy h1 { font-size:clamp(45px,4.8vw,77px); margin-bottom:25px; }
.sp-hero-actions { margin-top:29px; }
.sp-hero-footnote { margin-top:38px; }
.sp-intro { padding-block:82px; }
.sp-intro-grid { gap:76px; }
.sp-intro h2 { font-size:clamp(31px,2.85vw,43px); }
.sp-capabilities { padding:82px 0 86px; }
.sp-capability-grid { gap:80px; }
.sp-capability-visual>h2 { font-size:clamp(29px,2.7vw,40px); margin-bottom:28px; }
.sp-capability-content>h2 { font-size:32px; }
.sp-accordion summary { min-height:76px; padding-block:18px; }
.sp-acc-title { font-size:22px; }
.sp-section-heading { gap:60px; margin-bottom:40px; }
.sp-section-heading h2 { font-size:clamp(33px,3.4vw,49px); }
.sp-outcomes { min-height:522px; }
.sp-outcome-media { min-height:505px; }
.sp-outcome-overlay { padding:65px clamp(34px,5.4vw,86px) 36px; }
.sp-outcome-overlay h2 { font-size:clamp(35px,3.7vw,54px); margin-bottom:36px; }
.sp-outcome-content { padding:56px clamp(34px,4.5vw,78px) 48px; }
.sp-outcome-content li { font-size:25px; padding-block:20px; }
.sp-connected { padding-block:86px; }
.sp-about-hero { padding:66px 0 76px; }
.sp-about-hero-grid { gap:57px; }
.sp-about-hero h1 { font-size:clamp(47px,5vw,78px); }
.sp-about-collage { height:545px; }
.sp-services-hero { padding:62px 0 49px; }
.sp-services-hero-grid { gap:56px; }
.sp-services-hero h1 { font-size:clamp(45px,4.7vw,73px); }
.sp-services-photo { height:420px; }
.sp-catalogue { padding-bottom:70px; }
.sp-service-tile { min-height:540px; padding:32px 36px 34px; }
.sp-relationship { padding-block:75px; }
.sp-relationship-grid { gap:76px; }
.sp-relationship h2 { font-size:clamp(34px,3.6vw,51px); }

/* Genuine process controls: a shorter control band, without smaller hit targets. */
.process-explorer.sp-process { padding-block:70px; }
.process-explorer .sp-section-heading { margin-bottom:27px; }
.process-stage { min-height:128px; padding:18px 22px 20px; gap:13px; }
.process-stage-number { font-size:38px; }
.process-stage-title { font-size:18px; }
.process-stage-action { top:21px; }
.process-panel { padding:27px 31px; gap:40px; min-height:214px; }
.process-panel-copy h3 { font-size:27px; }
.process-panel-copy p { font-size:14px; line-height:1.7; }
.process-panel-outputs li { font-size:13px; }
.process-panel-outputs ul { gap:11px; }

/* Give data security its own setting and a clear visual hierarchy. */
#knowledge.security-section {
  position:relative;
  background:radial-gradient(ellipse at 4% 12%,#dfedfa 0%,transparent 50%),linear-gradient(160deg,#f2f7fd,#fff 76%);
  border-top:1px solid #dbe7f2;
  border-bottom:1px solid #e1eaf3;
}
.security-intro { display:grid; grid-template-columns:.96fr 1.04fr; gap:65px; align-items:start; margin-bottom:33px; }
.security-intro>div { min-width:0; }
.security-intro h2 { font-size:clamp(34px,3.55vw,49px); margin-bottom:0; line-height:1.12; }
.security-intro .eyebrow { margin-bottom:18px; }
.security-intro p { font-size:15px; line-height:1.75; color:#4e687e; margin-bottom:16px; }
.security-intro p.lead { font:500 20px/1.4 Outfit,Inter,sans-serif; letter-spacing:-.01em; color:#13354f; margin-bottom:13px; }
.security-intro .check-list { display:grid; gap:9px; margin:19px 0 0; padding:0; }
.security-intro .check-list li { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.55; color:#3e5f78; margin:0; }
.security-intro .check-list .icon { width:17px; height:17px; margin-top:1px; color:#377fba; }
.security-section .security-explorer { box-shadow:0 20px 65px #0b29411c,0 0 0 1px #b8dcf440; }
.security-policy-detail { transition:background .25s ease,border-color .25s ease; }
.security-explorer[data-security-route=unapproved] .security-policy-detail { background:#fff8f4; border-color:#dfbdab; }

/* Dense research cards keep their reading text, even as display headings shrink. */
.tool-option p { font-size:12px; }
.tool-option button { font-size:11px; min-height:40px; }
.catalogue-team-intro { font-size:13px; }
.catalogue-principle p { font-size:13px; }

/* Motion has a shorter travel distance and a slower, more considered finish. */
.motion-reveal { transition-timing-function:cubic-bezier(.16,.72,.22,1); }
html[data-motion="on"] .motion-reveal.is-pending { translate:0 14px; }
.motion-sheen { background:radial-gradient(360px circle at var(--motion-x,50%) var(--motion-y,50%),#a2e8ff20 0%,#57cfff08 43%,transparent 74%); }
.hero-command::before { background-size:210% 100%; background-position:50% 50%; }
html[data-motion="on"][data-page-visible="true"] .hero-command::before { animation:cs-edge-light 9s ease-in-out infinite; }
.button>.icon,.text-link>.icon,.command-action>.icon { transition:transform .3s cubic-bezier(.2,.7,.2,1); }
@keyframes cs-edge-light { 0%,100%{background-position:0% 50%}50%{background-position:100% 50%} }
@media(hover:hover) and (pointer:fine) {
  html[data-motion="on"][data-page-visible="true"] .button:hover>.icon,
  html[data-motion="on"][data-page-visible="true"] .text-link:hover>.icon,
  html[data-motion="on"][data-page-visible="true"] .hero-command:hover .command-action>.icon { transform:translateX(3px); }
  html[data-motion="on"] .service-card>img,
  html[data-motion="on"] .case-image>img,
  html[data-motion="on"] .sp-service-tile>.sp-tile-photo { transition:transform .85s cubic-bezier(.16,.65,.2,1); }
}

@media(min-width:1680px) {
  .tech-hero { min-height:710px; }
  .tech-hero .hero-content { padding-top:91px; padding-bottom:106px; }
  .tech-hero.ai-hero .hero-content { padding-top:78px; padding-bottom:86px; }
  .hero-command { width:322px; right:max(42px,calc((100vw - 1480px)/2)); bottom:61px; }
}
@media(min-width:761px) and (max-width:1180px) {
  .section { padding-block:77px; }
  .section-heading { gap:45px; }
  .section-heading h2,.review-offer-heading h2 { font-size:43px; }
  .tech-hero { min-height:615px; }
  .tech-hero .hero-content { padding-top:64px; padding-bottom:73px; }
  .tech-hero .hero-content h1 { font-size:70px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:62px; }
  .hero-command { width:268px; right:24px; bottom:39px; padding:18px; }
  .hero-command>strong { font-size:24px; }
  .tech-hero .hero-lead { font-size:19px; }
  .domain-copy { padding:33px; }
  .review-offer-grid { gap:45px; }
  .cta-copy { padding:45px 38px; }
  .cta-copy h2 { font-size:40px; }
  .contact-copy h1 { font-size:51px; }
  .sp-service-hero,.sp-hero-photo { min-height:579px; }
  .sp-hero-copy { padding:51px 36px 42px; }
  .sp-hero-copy h1 { font-size:57px; }
  .sp-intro-grid,.sp-capability-grid,.sp-section-heading,.sp-relationship-grid { gap:47px; }
  .sp-intro,.sp-connected { padding-block:73px; }
  .sp-capabilities { padding-block:74px; }
  .sp-outcome-content { padding:43px 38px; }
  .sp-outcome-content li { font-size:23px; }
  .sp-outcome-overlay { padding:49px 38px 31px; }
  .sp-about-hero h1 { font-size:60px; }
  .sp-about-collage { height:470px; }
  .sp-services-hero h1 { font-size:55px; }
  .sp-services-photo { height:390px; }
  .sp-service-tile { padding:28px 29px; }
  .process-stage { padding:17px 18px 19px; min-height:123px; }
  .process-stage-title { font-size:17px; }
  .process-panel { padding:25px 27px; gap:30px; }
  .process-panel-copy h3 { font-size:26px; }
  .security-intro { gap:43px; }
  .security-intro h2 { font-size:42px; }
}
@media(min-width:761px) and (max-width:1000px) {
  .tech-hero .hero-content h1 { font-size:62px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:54px; }
  .tech-hero .hero-content,.tech-hero.ai-hero .hero-content { padding-bottom:78px; }
  .hero-command { width:210px; right:20px; bottom:35px; padding:16px; }
  .hero-command>strong { font-size:22px; }
  .tech-hero .hero-lead { max-width:415px; }
  .tech-hero .hero-description { max-width:395px; }
  .domain-panel,.domain-image { min-height:395px; }
  .domain-copy { padding:29px; }
  .contact-copy h1 { font-size:46px; }
  .sp-hero-copy { padding-inline:28px; }
  .sp-hero-copy h1 { font-size:49px; }
  .sp-intro-grid,.sp-capability-grid,.sp-section-heading { gap:35px; }
  .sp-about-hero h1 { font-size:54px; }
  .sp-about-collage { height:432px; }
  .sp-services-hero h1 { font-size:49px; }
  .sp-services-photo { height:360px; }
  .process-stage-title { font-size:16px; }
  .process-stage-number { font-size:35px; }
  .process-panel { gap:25px; }
  .process-panel-outputs { padding-left:23px; }
  .security-intro { gap:34px; }
  .security-intro h2 { font-size:37px; }
  .security-intro p { font-size:14px; }
  .security-intro p.lead { font-size:19px; }
  .security-intro .check-list li { font-size:12px; }
}
@media(max-width:760px) {
  .section { padding-block:60px; }
  .section-heading { gap:22px; margin-bottom:30px; }
  .section-heading h2,.review-offer-heading h2,.ai-feature-copy h2,
  .perspective-grid h2,.finder-grid>div>h2,.faq-grid>div>h2 { font-size:36px; }
  .lead { font-size:18px; }
  .tech-hero-shell { padding:11px 10px 14px; }
  .tech-hero,.tech-hero.ai-hero { min-height:0; }
  .tech-hero .hero-image,.tech-hero.ai-hero .hero-image { height:288px; }
  .tech-hero .hero-shade,.tech-hero.ai-hero .hero-shade { background:linear-gradient(180deg,#06182a00 125px,#081c3040 200px,#081c30 286px); }
  .tech-hero .hero-content,.tech-hero.ai-hero .hero-content { padding:276px 0 25px; }
  .tech-hero .hero-content h1 { font-size:clamp(46px,9.5vw,67px); margin-bottom:20px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:clamp(42px,8.8vw,61px); }
  .tech-hero .hero-content .eyebrow { padding:8px 10px; margin-bottom:21px; }
  .tech-hero .hero-lead { font-size:18px; }
  .tech-hero .button-row { margin-top:21px; }
  .hero-command { width:calc(100% - 38px); right:auto; bottom:auto; margin:0 auto 22px; padding:15px 17px; }
  .hero-command>strong { font-size:21px; }
  .command-nodes { margin:4px 0; }
  .command-action { padding-top:11px; margin-top:3px; }
  .quick-services>.container { padding-block:12px; }
  .ai-feature { padding-bottom:60px; }
  .domain-panel { min-height:0; }
  .domain-image { min-height:254px; height:254px; }
  .domain-copy { padding:27px 25px; }
  .domain-copy h3 { font-size:29px; }
  .review-offer-heading { gap:23px; }
  .review-offer-grid { gap:30px; margin-top:30px; }
  .delivery-path { margin-top:34px; }
  .cta-section { padding-bottom:56px; }
  .cta-copy { padding:36px 27px; }
  .cta-copy h2 { font-size:36px; }
  .cta-photo { height:255px; min-height:0; }
  .contact-section { padding-top:40px; }
  .contact-copy h1 { font-size:47px; }
  .contact-form { padding:27px 23px; }
  .sp-service-hero { min-height:0; }
  .sp-service-hero .sp-hero-copy { padding:39px 25px 39px; }
  .sp-hero-copy h1 { font-size:clamp(42px,8.1vw,61px); margin-bottom:22px; }
  .sp-hero-photo { min-height:342px; height:342px; }
  .sp-hero-actions { margin-top:26px; }
  .sp-hero-footnote { margin-top:30px; }
  .sp-intro,.sp-connected { padding-block:53px; }
  .sp-intro-grid { gap:24px; }
  .sp-intro h2 { font-size:33px; }
  .sp-capabilities { padding:51px 0 55px; }
  .sp-capability-grid { gap:33px; }
  .sp-capability-visual>h2 { font-size:33px; }
  .sp-capability-content>h2 { font-size:30px; }
  .sp-section-heading { gap:22px; margin-bottom:30px; }
  .sp-section-heading h2 { font-size:36px; }
  .sp-acc-title { font-size:21px; }
  .sp-outcomes { min-height:0; }
  .sp-outcome-media { min-height:345px; }
  .sp-outcome-overlay { padding:49px 27px 26px; }
  .sp-outcome-overlay h2 { font-size:40px; margin-bottom:23px; }
  .sp-outcome-content { padding:36px 27px; }
  .sp-outcome-content li { font-size:23px; padding-block:20px; }
  .sp-about-hero { padding:40px 0 58px; }
  .sp-about-hero-grid { gap:36px; }
  .sp-about-hero h1 { font-size:clamp(44px,8.7vw,64px); }
  .sp-about-collage { height:446px; }
  .sp-services-hero { padding:40px 0 35px; }
  .sp-services-hero-grid { gap:30px; }
  .sp-services-hero h1 { font-size:clamp(43px,8.5vw,60px); }
  .sp-services-photo { height:306px; }
  .sp-catalogue { padding-bottom:53px; }
  .sp-service-tile { min-height:490px; padding:28px; }
  .sp-relationship { padding-block:53px; }
  .sp-relationship-grid { gap:28px; }
  .sp-relationship h2 { font-size:38px; }
  .process-explorer.sp-process { padding-block:53px; }
  .process-stage { min-height:124px; padding:17px 16px; }
  .process-stage-title { font-size:16px; }
  .process-stage-number { font-size:35px; }
  .process-panel { padding:24px; min-height:0; gap:24px; }
  .process-panel-copy h3 { font-size:27px; }
  .process-panel-outputs { padding-left:0; }
  .security-intro { grid-template-columns:1fr; gap:23px; margin-bottom:26px; }
  .security-intro h2 { font-size:36px; }
  .security-intro p { font-size:15px; }
  .security-intro p.lead { font-size:20px; }
  .security-intro .check-list { margin-top:17px; gap:10px; }
  .security-intro .check-list li { font-size:13px; }
  .security-policy-detail p,.security-policy-detail dd { font-size:12px; }
  .tool-option button { min-height:44px; }
}
@media(max-width:480px) {
  .process-stage { flex-direction:row; align-items:center; min-height:63px; padding:13px 15px; }
  .process-stage-number { font-size:30px; }
  .process-stage-title { font-size:17px; }
  .process-stage-action { top:calc(50% - 8px); }
  .process-panel { padding:23px 21px; }
  .tool-option p { font-size:13px; }
  .sp-about-collage { height:365px; }
  .sp-services-photo { height:284px; }
  .sp-service-tile { min-height:515px; padding:25px; }
}
@media(max-width:390px) {
  .section-heading h2,.review-offer-heading h2,.security-intro h2 { font-size:34px; }
  .tech-hero .hero-content h1 { font-size:44px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:41px; }
  .hero-command { width:calc(100% - 32px); padding-inline:14px; }
  .hero-command>strong { font-size:20px; }
  .contact-copy h1 { font-size:43px; }
  .contact-form { padding:25px 21px; }
  .cta-copy { padding:33px 25px; }
  .cta-copy h2 { font-size:34px; }
  .sp-service-hero .sp-hero-copy { padding:35px 22px; }
  .sp-hero-copy h1,.sp-services-hero h1 { font-size:41px; }
  .sp-about-hero h1 { font-size:43px; }
  .sp-hero-photo { height:300px; min-height:300px; }
  .sp-outcome-overlay h2 { font-size:37px; }
  .sp-relationship h2 { font-size:35px; }
}

/* Explicit pause is immediate, and background tabs never keep decorative motion running. */
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after {
  transition:none!important;
  animation-play-state:paused!important;
}
html[data-motion="off"] .button>.icon,html[data-motion="off"] .text-link>.icon,
html[data-motion="off"] .command-action>.icon,html[data-motion="off"] .sp-service-tile>.sp-tile-photo { transform:none; }
html[data-page-visible="false"] *,html[data-page-visible="false"] *::before,html[data-page-visible="false"] *::after { animation-play-state:paused!important; }
@media(hover:none),(pointer:coarse) {
  html[data-motion="on"] .motion-reveal.is-pending { translate:none; }
}
@media(prefers-reduced-motion:reduce) {
  html:not([data-motion="on"]) *,html:not([data-motion="on"]) *::before,html:not([data-motion="on"]) *::after { animation:none!important; transition:none!important; }
}
@media print {
  .section,.sp-intro,.sp-capabilities,.sp-connected,.process-explorer.sp-process { padding-block:28px; }
  .security-section .security-explorer { box-shadow:none; }
}
