@import url("narrative-base.css?v=6");

.services-shell{
  background:
    radial-gradient(950px circle at 82% 18%,rgba(41,182,210,.12),transparent 48%),
    radial-gradient(800px circle at 54% 74%,rgba(65,121,212,.09),transparent 54%),
    radial-gradient(720px circle at 2% 90%,rgba(105,212,177,.07),transparent 58%),
    linear-gradient(125deg,#050f1b 0%,#071827 52%,#061421 100%);
}
:root[data-theme="light"] .services-shell{
  background:
    radial-gradient(950px circle at 82% 18%,rgba(41,182,210,.13),transparent 48%),
    radial-gradient(800px circle at 54% 74%,rgba(65,121,212,.08),transparent 54%),
    radial-gradient(720px circle at 2% 90%,rgba(18,165,140,.07),transparent 58%),
    linear-gradient(125deg,#eaf0f4 0%,#dfe8ed 52%,#eef3f6 100%);
}

.service-console,.blueprint,.pipeline,.intelligence-lab,.workflow,.delivery-system,.migration-system,.solutions-system,.lakehouse-system,.graph-system,.fde-system{min-width:0}
.capability-map,.blueprint-frame,.pipeline-frame,.question-card,.workflow-shell,.delivery-route{
  position:relative;
  height:min(50vh,430px);
  min-height:350px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(150deg,rgba(12,32,48,.84),rgba(7,20,32,.68));
  box-shadow:0 24px 70px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden;
}
:root[data-theme="light"] .capability-map,:root[data-theme="light"] .blueprint-frame,:root[data-theme="light"] .pipeline-frame,
:root[data-theme="light"] .question-card,:root[data-theme="light"] .workflow-shell,:root[data-theme="light"] .delivery-route{
  background:linear-gradient(150deg,rgba(255,255,255,.92),rgba(240,247,249,.78));
  box-shadow:0 24px 60px rgba(30,60,90,.12),inset 0 1px 0 rgba(255,255,255,.8);
}

.services-dock{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.services-dock button{grid-template-columns:19px 1fr;padding-inline:12px}.services-dock b{font-size:.6rem}.services-dock p{font-size:.51rem}

/* Editorial service detail: the former visual remains as a faint atmospheric layer. */
.service-copy{display:none}
.view__aside{
  position:relative;
  min-height:min(50vh,430px);
  isolation:isolate;
  overflow:hidden;
}
.view__aside> :not(.service-content-panel){
  position:absolute!important;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  opacity:.3;
  filter:saturate(.82) contrast(.92);
  pointer-events:none;
}
.view__aside>.aside-head{
  inset:20px 22px auto;
  width:auto;
  height:auto;
}
.service-content-panel{
  position:relative;
  z-index:3;
  height:min(50vh,430px);
  min-height:350px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:clamp(25px,3vw,46px);
  background:linear-gradient(145deg,rgba(6,21,34,.97),rgba(7,28,41,.88));
  border-radius:6px;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(105,212,177,.5) transparent;
}
.service-content-panel::-webkit-scrollbar{width:5px}.service-content-panel::-webkit-scrollbar-track{background:transparent}.service-content-panel::-webkit-scrollbar-thumb{background:rgba(105,212,177,.42);border-radius:10px}
:root[data-theme="light"] .service-content-panel{
  background:linear-gradient(145deg,rgba(247,250,251,.98),rgba(226,239,243,.92));
}
.content-kicker{
  margin:0 0 12px;
  color:var(--mint);
  font:600 .5rem/1 var(--sans);
  letter-spacing:.15em;
  text-transform:uppercase;
}
.service-content-panel h3{
  max-width:15ch;
  margin:0;
  font:600 clamp(1.55rem,2.35vw,2.35rem)/1.04 var(--sans);
  letter-spacing:-.045em;
}
.service-article{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:25px;
  padding-bottom:5px;
}
.service-article section{
  position:relative;
  min-width:0;
  padding:clamp(14px,1.45vw,22px);
  overflow:hidden;
  background:linear-gradient(140deg,rgba(7,27,41,.88),rgba(7,25,38,.7));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transition:background .25s,transform .25s;
}
.service-article section::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:42px;
  height:2px;
  background:linear-gradient(90deg,var(--mint),var(--cyan));
  opacity:.72;
}
.service-article section:last-child:nth-child(odd){grid-column:1/-1}
.service-article section:hover{
  z-index:1;
  background:linear-gradient(140deg,rgba(10,42,54,.94),rgba(7,29,42,.82));
  transform:translateY(-2px);
}
:root[data-theme="light"] .service-article section{
  background:linear-gradient(140deg,rgba(255,255,255,.88),rgba(230,241,244,.72));
  box-shadow:0 9px 28px rgba(31,66,79,.055),inset 0 1px 0 rgba(255,255,255,.7);
}
:root[data-theme="light"] .service-article section:hover{background:linear-gradient(140deg,rgba(255,255,255,.98),rgba(221,240,239,.9))}
.service-article h4{
  margin:0 0 8px;
  color:var(--mint);
  font:600 .55rem/1.2 var(--sans);
  letter-spacing:.095em;
  text-transform:uppercase;
}
.service-article p,.service-article li{
  color:var(--soft);
  font-size:clamp(.56rem,.66vw,.67rem);
  line-height:1.58;
}
.service-article p{margin:0}.service-article p+p{margin-top:8px}
.service-article ul,.service-article ol{margin:0;padding-left:16px}
.service-article li+li{margin-top:5px}
.service-article b{color:var(--ink);font-weight:600}
.content-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(16px,2.4vw,34px);
  margin-top:24px;
}
.content-columns section{min-width:0}
.content-columns span{
  color:var(--mint);
  font:600 .48rem/1 var(--sans);
  letter-spacing:.11em;
  text-transform:uppercase;
}
.content-columns p{
  margin:8px 0 0;
  color:var(--soft);
  font-size:clamp(.57rem,.68vw,.68rem);
  line-height:1.55;
}
.capability-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  margin-top:20px;
}
.capability-list span{
  padding:8px 10px;
  background:rgba(105,212,177,.055);
  color:#a8bac4;
  font:500 .49rem/1.15 var(--sans);
}
:root[data-theme="light"] .capability-list span{background:rgba(19,129,116,.07);color:#54707a}
.content-outcome{
  max-width:64ch;
  margin:17px 0 0;
  color:var(--soft);
  font-size:.57rem;
  line-height:1.5;
}
.content-outcome b{
  margin-right:7px;
  color:var(--ink);
  font-weight:600;
}

/* FORGE orchestration */
.migration-frame,.solutions-frame,.lakehouse-frame,.graph-frame,.fde-frame{
  position:relative;
  height:min(50vh,430px);
  min-height:350px;
  border-radius:6px;
  background:linear-gradient(150deg,rgba(12,32,48,.78),rgba(7,20,32,.56));
  box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.035);
  overflow:hidden;
}
:root[data-theme="light"] .migration-frame,:root[data-theme="light"] .solutions-frame,:root[data-theme="light"] .lakehouse-frame,:root[data-theme="light"] .graph-frame,:root[data-theme="light"] .fde-frame{background:linear-gradient(150deg,rgba(255,255,255,.9),rgba(240,247,249,.72));box-shadow:0 22px 55px rgba(30,60,90,.1)}
.migration-frame{display:grid;grid-template-columns:25% 43% 32%;gap:14px;padding:18px}
.legacy-stack{display:flex;flex-direction:column;justify-content:center;gap:7px}.legacy-stack>span,.target-system>span{color:var(--mint);font:600 .46rem/1 var(--sans);letter-spacing:.12em}.legacy-stack>b{padding:12px;border-left:2px solid rgba(41,182,210,.45);background:rgba(41,182,210,.055);font:600 .62rem/1 var(--sans)}
.migration-flow{display:grid;grid-template-rows:repeat(4,1fr);align-self:center;gap:7px}.migration-flow article{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px;border-left:1px solid rgba(105,212,177,.35);background:rgba(105,212,177,.045)}.migration-flow article>span{color:var(--mint);font:600 .5rem/1 var(--sans)}.migration-flow b{display:block;font:600 .63rem/1.1 var(--sans)}.migration-flow small{display:block;margin-top:4px;color:var(--soft);font-size:.45rem}.migration-flow article>i{font-style:normal;color:var(--mint)}
.target-system{display:flex;flex-direction:column;justify-content:center;padding:18px;background:linear-gradient(145deg,rgba(15,63,68,.55),rgba(9,32,43,.45))}.target-system strong{margin-top:18px;font:600 clamp(2rem,3.4vw,3.3rem)/1 var(--sans);letter-spacing:-.05em}.target-system p{margin:5px 0 0;color:var(--soft);font-size:.62rem}.target-system>div{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;align-items:end;height:62px;margin-top:18px}.target-system>div i{background:linear-gradient(var(--mint),rgba(105,212,177,.12));height:var(--h,60%)}.target-system>div i:nth-child(1){--h:32%}.target-system>div i:nth-child(2){--h:48%}.target-system>div i:nth-child(3){--h:61%}.target-system>div i:nth-child(4){--h:82%}.target-system>div i:nth-child(5){--h:100%}.target-system small{margin-top:12px;color:var(--mint);font-size:.45rem}

/* Outcome-led solutions */
.solutions-frame{display:grid;grid-template-columns:1fr 1.2fr 1fr;grid-template-rows:1fr 1fr;gap:8px;padding:18px}.solution-core{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;justify-content:center;padding:22px;background:linear-gradient(145deg,rgba(15,63,68,.57),rgba(9,32,43,.48));box-shadow:0 0 45px rgba(105,212,177,.06)}.solution-core span{color:var(--mint);font:600 .46rem/1 var(--sans);letter-spacing:.12em}.solution-core strong{max-width:8ch;margin-top:12px;font:600 clamp(1.5rem,2.5vw,2.35rem)/1 var(--sans);letter-spacing:-.045em}.solution-core p{margin:12px 0 0;color:var(--soft);font-size:.61rem;line-height:1.5}.solutions-frame article{padding:15px;background:rgba(255,255,255,.028);transition:.25s}.solutions-frame article:hover{background:rgba(105,212,177,.08);transform:translateY(-2px)}.solutions-frame article>span{color:var(--mint);font:600 .46rem/1 var(--sans)}.solutions-frame article b{display:block;margin-top:16px;font:600 .68rem/1.15 var(--sans)}.solutions-frame article p{margin:7px 0 0;color:var(--soft);font-size:.5rem;line-height:1.45}

/* Databricks lakehouse */
.lakehouse-frame{padding:18px;display:grid;grid-template-rows:auto repeat(3,1fr) auto;gap:7px}.lake-logo{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px}.lake-logo img{width:auto;height:24px;max-width:115px;object-fit:contain;filter:brightness(0) invert(1);opacity:.82}.lake-logo span{color:var(--mint);font:600 .45rem/1 var(--sans);letter-spacing:.12em}.lakehouse-frame section{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:10px 14px;background:linear-gradient(90deg,rgba(65,121,212,.08),rgba(105,212,177,.035));border-left:2px solid rgba(65,121,212,.5)}.lakehouse-frame section:nth-of-type(1){margin-inline:8%;border-left-color:var(--mint)}.lakehouse-frame section:nth-of-type(2){margin-inline:4%;border-left-color:var(--cyan)}.lakehouse-frame section>span{color:var(--mint);font:600 .52rem/1 var(--sans)}.lakehouse-frame section b{display:block;font:600 .7rem/1.1 var(--sans)}.lakehouse-frame section p{margin:4px 0 0;color:var(--soft);font-size:.5rem}.lakehouse-frame section em{font-style:normal;color:var(--mint);font:600 .47rem/1 var(--sans);text-transform:uppercase}.lake-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.lake-metrics span{padding:9px;background:rgba(255,255,255,.025);color:var(--soft);font-size:.48rem}.lake-metrics b{color:var(--ink)}

/* DataWalk graph */
.graph-frame{isolation:isolate}.graph-frame svg{position:absolute;inset:0;width:100%;height:100%}.graph-links path{fill:none;stroke:rgba(41,182,210,.33);stroke-width:1.5;stroke-dasharray:5 5;animation:dash 18s linear infinite}.graph-node{position:absolute;z-index:2;display:grid;place-content:center;width:72px;height:72px;border:0;border-radius:50%;background:#0d2a3a;color:var(--ink);box-shadow:0 0 0 1px rgba(41,182,210,.28),0 10px 25px rgba(0,0,0,.28);cursor:pointer;transition:.25s}.graph-node:hover{transform:scale(1.08);box-shadow:0 0 0 1px var(--mint),0 0 30px rgba(105,212,177,.18)}.graph-node span{color:var(--cyan);font:600 .47rem/1 var(--sans)}.graph-node b{margin-top:6px;font:600 .59rem/1 var(--sans)}.graph-node.is-risk{width:86px;height:86px;background:linear-gradient(145deg,#164650,#0a2939);box-shadow:0 0 0 1px var(--mint),0 0 40px rgba(105,212,177,.2)}.graph-node.is-risk span{color:var(--mint);font-size:.8rem}.g1{left:8%;top:44%}.g2{left:30%;top:13%}.g3{left:46%;top:40%}.g4{right:22%;top:10%}.g5{right:8%;top:43%}.g6{right:24%;bottom:9%}.graph-alert{position:absolute;z-index:3;left:5%;bottom:7%;width:190px;padding:13px;background:rgba(6,23,34,.92);border-left:2px solid var(--mint)}.graph-alert span{color:var(--mint);font:600 .42rem/1 var(--sans);letter-spacing:.1em}.graph-alert strong{display:block;margin-top:8px;font:600 .65rem/1.2 var(--sans)}.graph-alert p{margin:5px 0 0;color:var(--soft);font-size:.48rem}

/* Forward deployed engineering */
.fde-frame{padding:18px;display:grid;grid-template-rows:auto 1fr auto;gap:13px}.fde-prompt,.fde-result{padding:15px;background:rgba(255,255,255,.028)}.fde-prompt span,.fde-result>span{color:var(--mint);font:600 .45rem/1 var(--sans);letter-spacing:.12em}.fde-prompt p{margin:9px 0 0;font:500 .78rem/1.45 var(--sans)}.agent-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center}.agent-flow article{height:100%;padding:14px;background:linear-gradient(145deg,rgba(41,182,210,.07),rgba(105,212,177,.025))}.agent-flow article span{color:var(--mint);font:600 .46rem/1 var(--sans)}.agent-flow b{display:block;margin-top:14px;font:600 .68rem/1 var(--sans)}.agent-flow small{display:block;margin-top:6px;color:var(--soft);font-size:.47rem;line-height:1.4}.agent-flow>i{font-style:normal;color:var(--mint)}.fde-result{display:grid;grid-template-columns:1fr auto;column-gap:20px}.fde-result>span,.fde-result strong,.fde-result p{grid-column:1}.fde-result strong{margin-top:8px;font:600 .76rem/1.2 var(--sans)}.fde-result p{margin:5px 0 0;color:var(--soft);font-size:.52rem}.fde-result>div{grid-column:2;grid-row:1/4;align-self:center;color:var(--soft);font-size:.5rem}.fde-result>div i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint)}

@keyframes dash{to{stroke-dashoffset:-100}}

/* Eight-service index — a single connected surface, not a card collection */
.service-index{
  height:min(50vh,430px);
  min-height:350px;
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
  background:linear-gradient(150deg,rgba(12,32,48,.72),rgba(7,20,32,.54));
  box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.035);
}
:root[data-theme="light"] .service-index{background:linear-gradient(150deg,rgba(255,255,255,.9),rgba(240,247,249,.72));box-shadow:0 22px 55px rgba(30,60,90,.1)}
.service-index button{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:32px 1fr 18px;
  gap:11px;
  align-items:center;
  padding:12px 14px;
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  transition:background .25s,transform .25s;
}
.service-index button:nth-child(2n){border-right:0}.service-index button:nth-last-child(-n+2){border-bottom:0}
.service-index button::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(var(--mint),var(--cyan));transform:scaleY(0);transition:transform .25s}
.service-index button:hover,.service-index button:focus-visible{z-index:1;background:linear-gradient(90deg,rgba(105,212,177,.12),rgba(41,182,210,.025));outline:1px solid rgba(105,212,177,.36);outline-offset:-1px}
.service-index button:hover::before,.service-index button:focus-visible::before{transform:scaleY(1)}
.service-index button>span{color:var(--mint);font:600 .5rem/1 var(--sans)}.service-index button b{display:block;font:600 .69rem/1.1 var(--sans);letter-spacing:-.01em}.service-index button p{margin:5px 0 0;color:var(--soft);font-size:.5rem;line-height:1.35}.service-index button em{font-style:normal;color:var(--mint);font-size:.7rem;transition:transform .25s}.service-index button:hover em{transform:translate(2px,-2px)}

/* Capability field */
.capability-map{isolation:isolate}
.map-grid{position:absolute;inset:0;opacity:.32;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at center,#000 10%,transparent 72%)}
.map-core{position:absolute;z-index:3;left:50%;top:50%;width:42%;min-height:132px;padding:22px;display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(105,212,177,.42);border-radius:14px;background:rgba(8,28,42,.88);box-shadow:0 0 60px rgba(41,182,210,.12);transform:translate(-50%,-50%)}
:root[data-theme="light"] .map-core{background:rgba(255,255,255,.9)}
.map-core::before,.map-core::after{content:"";position:absolute;inset:-26px;border:1px solid rgba(105,212,177,.11);border-radius:50%;z-index:-1}.map-core::after{inset:-70px;border-style:dashed;animation:spin 32s linear infinite}
.map-core span{color:var(--mint);font:600 .48rem/1 var(--sans);letter-spacing:.14em}.map-core strong{margin-top:10px;font:600 1.22rem/1.14 var(--sans);letter-spacing:-.03em}.map-core p{margin:9px 0 0;color:var(--soft);font-size:.68rem;line-height:1.5}
.cap-node{position:absolute;z-index:4;padding:9px 12px;border:1px solid var(--line);border-radius:99px;background:rgba(8,25,38,.86);color:#9fb0ba;font:600 .58rem/1 var(--sans);cursor:pointer;transition:.25s}
:root[data-theme="light"] .cap-node{background:rgba(255,255,255,.9);color:#536b78}
.cap-node span{margin-right:7px;color:#58717d;font-size:.48rem}.cap-node:hover,.cap-node.is-active{border-color:rgba(105,212,177,.58);background:rgba(21,68,74,.9);color:#fff;transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.25),0 0 22px rgba(105,212,177,.11)}
:root[data-theme="light"] .cap-node:hover,:root[data-theme="light"] .cap-node.is-active{background:#dff5ee;color:#17343a}
.n-strategy{left:8%;top:13%}.n-engineering{right:7%;top:15%}.n-platform{left:4%;top:49%}.n-intelligence{right:4%;top:50%}.n-apps{left:12%;bottom:11%}.n-delivery{right:10%;bottom:10%}

/* Blueprint */
.blueprint-frame{padding:18px;display:grid;grid-template-rows:auto repeat(4,1fr) auto;gap:7px}
.bp-header{display:flex;justify-content:space-between;color:#718894;font:500 .46rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}.bp-header i{font-style:normal;color:var(--mint)}
.bp-layer{position:relative;display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:9px 13px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025);color:var(--ink);text-align:left;cursor:pointer;transition:.25s}
.bp-layer::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--mint);opacity:.25;transition:.25s}.bp-layer:hover,.bp-layer.is-active{background:linear-gradient(90deg,rgba(105,212,177,.12),rgba(41,182,210,.025));border-color:rgba(105,212,177,.32);transform:translateX(4px)}.bp-layer.is-active::before{opacity:1}
.bp-layer>span{display:grid;place-content:center;width:30px;height:30px;border-radius:50%;background:rgba(105,212,177,.1);color:var(--mint);font:600 .55rem/1 var(--sans)}.bp-layer b{display:block;font:600 .74rem/1.1 var(--sans)}.bp-layer small{display:block;margin-top:4px;color:var(--soft);font-size:.53rem}.bp-layer>i{font-style:normal;color:var(--mint);font:600 .48rem/1 var(--sans);text-transform:uppercase}
.bp-detail{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;padding:7px 3px 0;color:var(--soft);font-size:.59rem}.bp-detail span{color:var(--mint);font:600 .52rem/1.2 var(--sans);text-transform:uppercase}.bp-detail p{margin:0;line-height:1.35}

/* Integration field */
.pipeline-frame{display:grid;grid-template-columns:31% 19% 50%;padding:18px}
.source-stack{display:grid;grid-template-rows:repeat(4,1fr);gap:7px;z-index:2}
.source-chip{display:grid;grid-template-columns:36px 1fr;grid-template-rows:1fr 1fr;column-gap:9px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025);color:var(--ink);text-align:left;cursor:pointer;opacity:.38;transition:.25s}.source-chip.is-on{opacity:1;border-color:rgba(41,182,210,.25)}.source-chip:hover{transform:translateX(3px)}
.source-chip span{grid-row:1/3;display:grid;place-content:center;width:32px;height:32px;border-radius:7px;background:rgba(41,182,210,.1);color:var(--cyan);font:600 .5rem/1 var(--sans)}.source-chip b{align-self:end;font:600 .67rem/1 var(--sans)}.source-chip i{align-self:start;margin-top:3px;color:var(--soft);font:400 .46rem/1 var(--sans);font-style:normal}
.flow-field{position:relative}.flow-field>i{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--cyan),var(--mint));transform-origin:left;animation:flow 2.4s ease-in-out infinite}.flow-field>i:nth-child(1){top:13%}.flow-field>i:nth-child(2){top:38%;animation-delay:.25s}.flow-field>i:nth-child(3){top:63%;animation-delay:.5s}.flow-field>i:nth-child(4){top:87%;animation-delay:.75s}.flow-pulse{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px var(--cyan);animation:pulseAcross 3s linear infinite}.p1{top:12%;left:0}.p2{top:62%;left:0;animation-delay:1s}.p3{top:86%;left:0;animation-delay:1.8s}
.trusted-stream{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:24px;border:1px solid rgba(105,212,177,.3);border-radius:12px;background:linear-gradient(150deg,rgba(15,57,65,.72),rgba(9,31,43,.8))}
:root[data-theme="light"] .trusted-stream{background:linear-gradient(150deg,rgba(210,244,235,.8),rgba(235,247,249,.9))}
.trusted-stream>span{color:var(--mint);font:600 .48rem/1 var(--sans);letter-spacing:.14em}.trusted-stream strong{max-width:9ch;margin-top:13px;font:600 clamp(1.6rem,2.5vw,2.35rem)/.98 var(--sans);letter-spacing:-.05em}.quality-meter{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;height:58px;align-items:end;margin-top:22px}.quality-meter i{height:var(--h,70%);background:linear-gradient(var(--mint),rgba(105,212,177,.15));border-radius:2px 2px 0 0}.quality-meter i:nth-child(1){--h:34%}.quality-meter i:nth-child(2){--h:47%}.quality-meter i:nth-child(3){--h:42%}.quality-meter i:nth-child(4){--h:68%}.quality-meter i:nth-child(5){--h:62%}.quality-meter i:nth-child(6){--h:82%}.quality-meter i:nth-child(7){--h:91%}.quality-meter i:nth-child(8){--h:100%}.trusted-stream small{margin-top:15px;color:var(--soft);font-size:.5rem}.trusted-stream small b{color:var(--mint)}

/* Intelligence */
.intelligence-lab{position:relative}.question-card{height:min(43vh,365px);min-height:300px;padding:22px;display:flex;flex-direction:column}
.question-card>span{color:var(--mint);font:600 .48rem/1 var(--sans);letter-spacing:.14em}.question-card>strong{margin-top:12px;font:600 clamp(1.05rem,1.5vw,1.35rem)/1.2 var(--sans);letter-spacing:-.025em}
.chart{position:relative;flex:1;min-height:130px;margin-top:14px;border-bottom:1px solid var(--line);overflow:hidden}.chart::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 37px,var(--line) 38px)}
.chart-bars{position:absolute;inset:0 0 0;display:flex;align-items:flex-end;gap:9px;padding:14px 8% 0}.chart-bars i{flex:1;height:var(--v);background:linear-gradient(180deg,rgba(41,182,210,.3),rgba(41,182,210,.07));border-radius:3px 3px 0 0;transition:height .45s}.chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.chart path{fill:none;stroke:var(--mint);stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(105,212,177,.32));transition:d .55s}
.confidence{display:grid;grid-template-columns:auto auto 1fr;gap:11px;align-items:center;padding-top:14px;color:var(--soft);font-size:.5rem;text-transform:uppercase}.confidence b{color:var(--mint)}.confidence>i{height:3px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}.confidence em{display:block;width:94.8%;height:100%;background:linear-gradient(90deg,var(--mint),var(--cyan))}
.question-switcher{display:flex;gap:7px;margin-top:9px}.question-switcher button{flex:1;padding:9px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.025);color:var(--soft);font:600 .53rem/1 var(--sans);cursor:pointer}.question-switcher button:hover,.question-switcher button.is-active{border-color:rgba(105,212,177,.4);background:rgba(105,212,177,.1);color:var(--ink)}

/* Workflow */
.workflow-shell{padding:18px;display:grid;grid-template-rows:auto 1fr auto;gap:15px}
.work-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.work-status>div{padding:11px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.025)}.work-status span,.work-status small{display:block;color:var(--soft);font-size:.48rem}.work-status strong{display:block;margin:6px 0 3px;color:var(--mint);font:600 1.3rem/1 var(--sans)}
.work-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;min-height:0}.work-board section{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.02)}.work-board section>span{color:#718894;font:600 .47rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}.work-board button{position:relative;flex:1;padding:13px;border:1px solid rgba(41,182,210,.18);border-radius:7px;background:linear-gradient(150deg,rgba(41,182,210,.09),rgba(105,212,177,.03));color:var(--ink);text-align:left;cursor:pointer;transition:.25s}.work-board button::after{content:"";position:absolute;right:10px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint)}.work-board button:hover,.work-board button.is-active{transform:translateY(-3px);border-color:rgba(105,212,177,.45);box-shadow:0 12px 28px rgba(0,0,0,.18)}.work-board b{display:block;font:600 .68rem/1.25 var(--sans)}.work-board small{display:block;margin-top:8px;color:var(--soft);font-size:.48rem;line-height:1.35}
.automation-line{display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;padding:10px 12px;border:1px solid rgba(105,212,177,.2);border-radius:8px;color:var(--soft);font-size:.53rem}.automation-line i{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px var(--mint)}.automation-line b{color:var(--mint)}

/* Delivery */
.delivery-proof{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.delivery-proof span{padding:8px 10px;border:1px solid var(--line);border-radius:99px;color:var(--soft);font-size:.56rem}.delivery-proof b{color:var(--ink)}
.delivery-route{height:min(43vh,370px);min-height:320px;padding:18px;display:grid;grid-template-rows:repeat(4,1fr);gap:8px;overflow:visible}.route-line{position:absolute;left:39px;top:45px;bottom:45px;width:1px;background:rgba(105,212,177,.2)}.route-line i{display:block;width:1px;height:100%;background:linear-gradient(var(--mint),var(--cyan));transform-origin:top;animation:routeGrow 2s ease both}
.route-step{position:relative;z-index:1;display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:center;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:rgba(8,25,38,.88)}
:root[data-theme="light"] .route-step{background:rgba(255,255,255,.88)}
.route-step>span{display:grid;place-content:center;width:34px;height:34px;border-radius:50%;background:#0f3540;border:1px solid rgba(105,212,177,.35);color:var(--mint);font:600 .56rem/1 var(--sans)}.route-step b{display:block;font:600 .7rem/1.1 var(--sans)}.route-step p{margin:4px 0 0;color:var(--soft);font-size:.54rem}.route-step em{font-style:normal;color:var(--mint);font:600 .47rem/1 var(--sans);text-transform:uppercase}
.partner-strip{display:flex;align-items:center;justify-content:flex-end;gap:17px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;color:var(--soft);font-size:.48rem}.partner-strip span{margin-right:auto;text-transform:uppercase;letter-spacing:.1em}.partner-strip img{width:auto;max-width:82px;height:18px;object-fit:contain;filter:grayscale(1) brightness(1.8);opacity:.75}.partner-strip b{color:var(--ink);font-size:.53rem}
:root[data-theme="light"] .partner-strip img{filter:grayscale(1);opacity:.8}

@keyframes spin{to{transform:rotate(360deg)}}@keyframes flow{0%,100%{opacity:.25;transform:scaleX(.2)}50%{opacity:1;transform:scaleX(1)}}@keyframes pulseAcross{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}@keyframes routeGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}

@media(max-height:720px) and (min-width:901px){
  .capability-map,.service-index,.blueprint-frame,.pipeline-frame,.question-card,.workflow-shell,.delivery-route,.migration-frame,.solutions-frame,.lakehouse-frame,.graph-frame,.fde-frame{height:355px;min-height:0}
  .map-core{min-height:112px;padding:17px}.map-core::after{inset:-50px}.blueprint-frame,.workflow-shell{padding:13px}.pipeline-frame{padding:13px}.question-card{padding:17px}.delivery-route{padding:13px}
  .partner-strip{margin-top:6px;padding-block:7px}.delivery-proof{margin-top:15px}
  .view__aside,.service-content-panel{height:355px;min-height:0}
  .service-content-panel{padding:23px 30px}.content-kicker{margin-bottom:9px}.service-content-panel h3{font-size:1.72rem}.content-columns{margin-top:16px;gap:22px}.content-columns p{font-size:.55rem;line-height:1.45}.capability-list{margin-top:13px}.capability-list span{padding:6px 8px;font-size:.44rem}.content-outcome{margin-top:12px;font-size:.5rem}
  .service-article{margin-top:17px;gap:7px}.service-article h4{font-size:.48rem}.service-article p,.service-article li{font-size:.51rem;line-height:1.48}
}

@media(max-width:900px){
  .view{grid-template-columns:1fr;gap:16px;align-content:center;padding-top:24px;padding-bottom:24px}
  .lead-intro{font-size:.82rem;line-height:1.5;margin-top:14px}.lead-cta,.lead-link{margin-top:18px}.tags{margin-top:15px}
  .aside-head{margin-bottom:9px}
  .capability-map,.service-index,.blueprint-frame,.pipeline-frame,.question-card,.workflow-shell,.delivery-route,.migration-frame,.solutions-frame,.lakehouse-frame,.graph-frame,.fde-frame{height:270px;min-height:270px;border-radius:7px}
  .service-index button{grid-template-columns:22px 1fr 12px;padding:8px}.service-index button p{display:none}.service-index button b{font-size:.57rem}
  .map-core{width:50%;min-height:92px;padding:12px}.map-core::before{inset:-14px}.map-core::after{inset:-38px}.map-core strong{font-size:.8rem}.map-core p{font-size:.52rem}.cap-node{padding:7px 8px;font-size:.47rem}.cap-node span{display:none}
  .blueprint-frame{padding:10px;gap:4px}.bp-layer{padding:5px 8px;grid-template-columns:26px 1fr auto}.bp-layer>span{width:24px;height:24px}.bp-layer b{font-size:.58rem}.bp-layer small{display:none}.bp-detail{display:none}
  .pipeline-frame{grid-template-columns:34% 14% 52%;padding:10px}.source-stack{gap:4px}.source-chip{grid-template-columns:1fr;padding:5px}.source-chip span{display:none}.source-chip b{font-size:.55rem}.source-chip i{font-size:.4rem}.trusted-stream{padding:12px}.trusted-stream strong{font-size:1.25rem}.quality-meter{height:40px;margin-top:12px}.trusted-stream small{font-size:.4rem}
  .question-card{padding:13px}.question-card>strong{font-size:.9rem}.chart{min-height:90px}.question-switcher button{padding:7px}
  .workflow-shell{padding:10px;gap:8px}.work-status>div{padding:7px}.work-status strong{font-size:.8rem}.work-status small{display:none}.work-board{gap:5px}.work-board section{padding:6px}.work-board button{padding:8px}.work-board b{font-size:.52rem}.work-board small{font-size:.4rem}
  .delivery-route{padding:9px;gap:5px}.route-step{grid-template-columns:30px 1fr auto;padding:5px 8px}.route-step>span{width:26px;height:26px}.route-step p{font-size:.46rem}.partner-strip{display:none}.delivery-proof{margin-top:14px}
  .migration-frame{grid-template-columns:24% 46% 30%;gap:5px;padding:9px}.legacy-stack{gap:4px}.legacy-stack>b{padding:7px;font-size:.5rem}.migration-flow{gap:4px}.migration-flow article{grid-template-columns:20px 1fr;padding:6px}.migration-flow article>i{display:none}.migration-flow small{font-size:.38rem}.target-system{padding:9px}.target-system strong{font-size:1.45rem}.target-system>div{height:36px;margin-top:10px}
  .solutions-frame{padding:9px;gap:4px}.solution-core{padding:12px}.solution-core strong{font-size:1.15rem}.solution-core p{font-size:.43rem}.solutions-frame article{padding:8px}.solutions-frame article b{margin-top:8px;font-size:.52rem}.solutions-frame article p{font-size:.4rem}
  .lakehouse-frame{padding:9px;gap:4px}.lake-logo img{height:18px}.lakehouse-frame section{grid-template-columns:24px 1fr;padding:6px 8px}.lakehouse-frame section em{display:none}.lakehouse-frame section p{font-size:.4rem}.lake-metrics span{padding:5px;font-size:.4rem}
  .graph-node{width:48px;height:48px}.graph-node.is-risk{width:58px;height:58px}.graph-node b{font-size:.43rem}.g1{left:6%}.g2{left:27%}.g3{left:44%}.g4{right:20%}.g5{right:6%}.g6{right:22%}.graph-alert{width:145px;padding:8px}.graph-alert strong{font-size:.52rem}
  .fde-frame{padding:9px;gap:7px}.fde-prompt,.fde-result{padding:9px}.fde-prompt p{font-size:.58rem}.agent-flow{gap:4px}.agent-flow article{padding:8px}.agent-flow b{margin-top:8px;font-size:.52rem}.agent-flow small{font-size:.38rem}.fde-result>div{display:none}
  .services-dock{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(142px,1fr)}
  .view__aside,.service-content-panel{height:350px;min-height:350px}
  .service-content-panel{padding:24px 20px;justify-content:flex-start}
  .service-content-panel h3{font-size:1.65rem}.content-columns{margin-top:18px}.content-columns p{font-size:.56rem}.capability-list{grid-template-columns:repeat(2,1fr);margin-top:15px}.content-outcome{margin-top:14px}
  .service-article{grid-template-columns:1fr;margin-top:18px;gap:7px}.service-article p,.service-article li{font-size:.6rem}
}

@media(max-width:520px){
  .capability-map,.service-index,.blueprint-frame,.pipeline-frame,.question-card,.workflow-shell,.delivery-route,.migration-frame,.solutions-frame,.lakehouse-frame,.graph-frame,.fde-frame{height:245px;min-height:245px}
  .view h1,.view h2{font-size:clamp(1.82rem,8vw,2.35rem)}.eyebrow{margin-bottom:11px}.view__lead br{display:none}
  .work-status{gap:4px}.work-status span{font-size:.4rem}.automation-line{padding:7px;font-size:.43rem}
}

/* Use the full narrative viewport on service pages. */
@media(min-width:901px){
  .services-shell .view{
    align-items:stretch;
    padding-top:clamp(30px,4.5vh,58px);
    padding-bottom:clamp(30px,4.5vh,58px);
  }
  .services-shell .view__lead{
    align-self:center;
  }
  .services-shell .view__aside,
  .services-shell .service-content-panel{
    height:100%;
    min-height:0;
  }
  .services-shell .service-content-panel{
    padding:clamp(30px,3.6vw,58px);
  }
  .services-shell .service-content-panel h3{
    max-width:20ch;
    font-size:clamp(1.9rem,2.55vw,2.75rem);
  }
  .services-shell .service-article{
    margin-top:clamp(24px,3vh,38px);
    gap:8px;
  }
  .services-shell .service-article h4{font-size:.58rem}
  .services-shell .service-article p,
  .services-shell .service-article li{font-size:clamp(.59rem,.7vw,.72rem)}
}

@media(min-width:1500px){
  .services-shell .view{grid-template-columns:.92fr 1.08fr}
  .services-shell .view__aside> :not(.service-content-panel){opacity:.43}
  .services-shell .service-content-panel h3{max-width:13ch}
}

@media(max-height:720px) and (min-width:901px){
  .services-shell .view{padding-top:24px;padding-bottom:24px}
  .services-shell .view__aside,
  .services-shell .service-content-panel{height:100%;min-height:0}
  .services-shell .service-content-panel{padding:25px 32px}
  .services-shell .service-content-panel h3{font-size:1.8rem}
  .services-shell .service-article{margin-top:18px;gap:7px}
  .services-shell .service-article h4{font-size:.49rem}
  .services-shell .service-article p,
  .services-shell .service-article li{font-size:.52rem;line-height:1.48}
}

/* One atmospheric canvas per service: the visual belongs to the full narrative view. */
.services-shell .view{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.services-shell .view::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-9%;
  pointer-events:none;
  opacity:.2;
  transform:translate3d(0,0,0);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.58),#000 48%,rgba(0,0,0,.82));
  animation:serviceSignalDrift 15s ease-in-out infinite alternate;
  transition:opacity .7s ease;
}
.services-shell .view.is-active::before{opacity:.42}
.services-shell .view__lead,
.services-shell .view__aside{position:relative;z-index:1}
.services-shell .view__aside{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
}
.services-shell .view__aside> :not(.service-content-panel){display:none!important}
.services-shell .view__aside::after{
  position:relative;
  z-index:1;
  grid-row:2;
  justify-self:end;
  align-self:center;
  margin:9px clamp(18px,2.7vw,46px) 10px;
  pointer-events:none;
  color:var(--ink);
  opacity:.38;
  font:650 clamp(.64rem,.78vw,.82rem)/1 var(--sans);
  letter-spacing:.13em;
  text-transform:uppercase;
  filter:grayscale(1);
  text-shadow:0 1px 18px rgba(0,0,0,.35);
}
.services-shell .view[data-view="4"]::before{
  background:
    radial-gradient(circle at 15% 72%,rgba(105,212,177,.72) 0 3px,transparent 4px),
    radial-gradient(circle at 42% 47%,rgba(41,182,210,.67) 0 4px,transparent 5px),
    radial-gradient(circle at 77% 31%,rgba(65,121,212,.7) 0 3px,transparent 4px),
    conic-gradient(from 214deg at 53% 60%,transparent 0 61%,rgba(105,212,177,.17) 61.5% 62.5%,transparent 63% 100%),
    repeating-linear-gradient(0deg,transparent 0 54px,rgba(116,199,214,.08) 55px 56px);
}
/* Retired: this used to label services.html's Business App Development
   view "Analytics / TDC" — removed at the requester's ask, and it was also
   incorrectly bleeding onto technology.html's DataWalk view (data-view="4"
   after adding Claude) and who-we-are.html's own view 4 via the same
   shared, unscoped index. */
.services-shell .view[data-view="4"] .view__aside::after{content:none}
.services-shell .view[data-view="5"]::before{
  background:
    linear-gradient(90deg,transparent 12%,rgba(105,212,177,.2) 12.2% 12.5%,transparent 12.7% 100%),
    linear-gradient(90deg,transparent 38%,rgba(41,182,210,.18) 38.2% 38.5%,transparent 38.7% 100%),
    linear-gradient(90deg,transparent 65%,rgba(65,121,212,.17) 65.2% 65.5%,transparent 65.7% 100%),
    linear-gradient(90deg,transparent 88%,rgba(105,212,177,.15) 88.2% 88.5%,transparent 88.7% 100%),
    repeating-linear-gradient(0deg,transparent 0 62px,rgba(105,212,177,.09) 63px 65px);
}
.services-shell .view[data-view="5"] .view__aside::after{content:"Microsoft Azure  ·  AWS  ·  Databricks"}
.services-shell .view[data-view="1"]::before{
  background:
    radial-gradient(circle at 54% 53%,transparent 0 9%,rgba(105,212,177,.14) 9.3% 9.8%,transparent 10.1% 18%,rgba(41,182,210,.12) 18.3% 18.8%,transparent 19.1% 29%,rgba(65,121,212,.11) 29.3% 29.8%,transparent 30.1%),
    linear-gradient(90deg,transparent 5%,rgba(105,212,177,.09),transparent 95%);
}
/* This rule used to paint the FORGE wordmark here via a bare data-view
   index, shared (with no page scoping) across every page using the
   .services-shell view system. Since the index no longer lines up with
   FORGE's actual view on any current page, it was showing the wrong
   partner logo on whichever view happened to sit at this index instead
   (see git history for the specific instances found and removed). */
.services-shell .view[data-view="1"] .view__aside::after{
  content:none;
}
.services-shell .view[data-view="6"]::before{
  background:
    radial-gradient(circle at 18% 36%,rgba(105,212,177,.18) 0 28px,transparent 29px),
    radial-gradient(circle at 52% 58%,rgba(41,182,210,.16) 0 38px,transparent 39px),
    radial-gradient(circle at 84% 31%,rgba(65,121,212,.16) 0 31px,transparent 32px),
    linear-gradient(23deg,transparent 0 52%,rgba(105,212,177,.11) 52.2% 52.6%,transparent 52.8% 100%);
}
.services-shell .view[data-view="6"] .view__aside::after{
  content:"Agentic AI in the SDLC";
  letter-spacing:.04em;
  text-transform:none;
}
.services-shell .view[data-view="7"]::before{
  background:
    linear-gradient(90deg,transparent 0 50%,rgba(105,212,177,.1) 50.2% 50.5%,transparent 50.7%),
    linear-gradient(0deg,transparent 0 49%,rgba(41,182,210,.1) 49.2% 49.5%,transparent 49.7%),
    radial-gradient(circle at 50% 49%,rgba(105,212,177,.14),transparent 34%);
}
.services-shell .view[data-view="7"] .view__aside::after{content:"Outcome-led delivery"}
.services-shell .view[data-view="2"]::before{
  background:
    linear-gradient(164deg,transparent 0 38%,rgba(65,121,212,.14) 38.5% 43%,transparent 43.5%),
    linear-gradient(164deg,transparent 0 49%,rgba(41,182,210,.12) 49.5% 54%,transparent 54.5%),
    linear-gradient(164deg,transparent 0 60%,rgba(105,212,177,.1) 60.5% 65%,transparent 65.5%);
}
/* See the data-view="1" comment above — same stray-logo issue. */
.services-shell .view[data-view="2"] .view__aside::after{
  content:none;
}
/* Same reason: the in-panel logo is white, which would vanish on light. */
:root[data-theme="light"] .lake-logo img{filter:brightness(0);opacity:.7}
.services-shell .view[data-view="3"]::before{
  background:
    radial-gradient(circle at 16% 64%,rgba(105,212,177,.2) 0 5px,transparent 6px),
    radial-gradient(circle at 48% 35%,rgba(41,182,210,.18) 0 7px,transparent 8px),
    radial-gradient(circle at 82% 61%,rgba(65,121,212,.18) 0 6px,transparent 7px),
    linear-gradient(23deg,transparent 0 53%,rgba(105,212,177,.11) 53.2% 53.6%,transparent 53.8%),
    linear-gradient(157deg,transparent 0 61%,rgba(41,182,210,.11) 61.2% 61.6%,transparent 61.8%);
}
/* See the data-view="1" comment above — same stray-logo issue. */
.services-shell .view[data-view="3"] .view__aside::after{
  content:none;
}
:root[data-theme="light"] .services-shell .view__aside::after{
  opacity:.42;
  filter:grayscale(1) brightness(.5);
  text-shadow:none;
  mix-blend-mode:multiply;
}
:root[data-theme="light"] .services-shell .view[data-view="1"] .view__aside::after{
  filter:grayscale(1) invert(1);
  mix-blend-mode:normal;
  opacity:.34;
}
.services-shell .view[data-view="0"]::before{
  background:
    repeating-linear-gradient(90deg,transparent 0 74px,rgba(105,212,177,.075) 75px 76px),
    repeating-linear-gradient(0deg,transparent 0 58px,rgba(41,182,210,.07) 59px 60px),
    radial-gradient(circle at 53% 47%,rgba(105,212,177,.13),transparent 34%);
}
.services-shell .view[data-view="0"] .view__aside::after{content:"Embedded AI engineering"}
/* Same shared-index issue as the data-view="1"/"2"/"3" rules above: this
   text is services.html's Forward Deployed Engineers view, but the bare
   index also matches technology.html's FORGE view (also data-view="0"). */
.services-shell .view#forge .view__aside::after{content:none}

/* The data-view-indexed watermark rules above (forge/databricks/datawalk
   wordmarks) were authored for technology.html's own 3 product views, but
   .services-shell .view[data-view="N"] has no page scoping, so they were
   also landing on services.html's Data Analytics / Data Engineering /
   Cloud & DevOps views purely by coincidental index overlap — showing
   partner logos unrelated to those sections' actual content. Services.html
   view ids are unique to that page, so targeting them here removes the
   stray watermarks without touching technology.html. */
.services-shell .view#data-analytics .view__aside::after,
.services-shell .view#data-engineering .view__aside::after,
.services-shell .view#cloud-platforms-devops .view__aside::after{
  content:none;
  background:none;
}
.services-shell .service-content-panel{
  --panel-gutter:clamp(18px,2.7vw,46px);
  width:100%;
  height:auto;
  min-height:0;
  grid-row:1;
  padding-left:var(--panel-gutter);
  padding-right:var(--panel-gutter);
  background:transparent!important;
  border-radius:0;
}
:root[data-theme="light"] .services-shell .service-content-panel{
  background:transparent!important;
}
.services-shell .service-content-panel h3{max-width:18ch}
.services-shell .service-article{
  display:grid;
  width:100%;
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:clamp(26px,3vw,52px);
  row-gap:clamp(22px,2.5vh,34px);
  counter-reset:service-section;
}
.services-shell .service-article section,
.services-shell .service-article section:hover{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  background:transparent;
  box-shadow:none;
  transform:none;
  counter-increment:service-section;
}
.services-shell .service-article section:first-child{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(118px,2fr) minmax(0,7fr);
  column-gap:clamp(28px,4vw,64px);
  align-items:start;
  padding:clamp(19px,2.3vh,29px) clamp(20px,2.2vw,34px);
  background:linear-gradient(105deg,rgba(105,212,177,.085),rgba(41,182,210,.035) 62%,transparent);
}
.services-shell .service-article section:nth-child(2),
.services-shell .service-article section:nth-child(3){
  grid-column:span 6;
}
.services-shell .service-article section:nth-child(n+4){
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(118px,2fr) minmax(0,7fr);
  column-gap:clamp(28px,4vw,64px);
}
.services-shell .service-article section::before{
  content:counter(service-section,decimal-leading-zero);
  position:static;
  display:block;
  width:auto;
  height:auto;
  margin:0 0 9px;
  background:none;
  color:rgba(105,212,177,.48);
  font:500 .52rem/1 var(--mono);
  letter-spacing:.12em;
}
.services-shell .service-article section:first-child::before,
.services-shell .service-article section:nth-child(n+4)::before{
  grid-column:1;
  grid-row:1;
}
.services-shell .service-article section:first-child h4,
.services-shell .service-article section:nth-child(n+4) h4{
  grid-column:1;
  margin-top:20px;
}
.services-shell .service-article section:first-child p,
.services-shell .service-article section:first-child ul,
.services-shell .service-article section:nth-child(n+4) p,
.services-shell .service-article section:nth-child(n+4) ul{
  grid-column:2;
}
.services-shell .service-article section:first-child p,
.services-shell .service-article section:first-child li{
  color:#afc2ca;
  font-size:clamp(.68rem,.76vw,.79rem);
  line-height:1.68;
}
.services-shell .service-article h4{
  margin-bottom:10px;
  color:var(--ink);
  font-size:clamp(.7rem,.82vw,.88rem);
  letter-spacing:-.015em;
  text-transform:none;
}
.services-shell .service-article p,
.services-shell .service-article li{
  color:#8da2ae;
  font-size:clamp(.61rem,.7vw,.72rem);
  line-height:1.62;
}
:root[data-theme="light"] .services-shell .service-article p,
:root[data-theme="light"] .services-shell .service-article li{color:#5f747e}
:root[data-theme="light"] .services-shell .service-article section:first-child p,
:root[data-theme="light"] .services-shell .service-article section:first-child li{color:#405b66}
@media(min-width:901px){
  .services-shell .service-content-panel{
    padding-top:clamp(38px,4.4vh,58px);
  }
  .services-shell .service-content-panel h3{
    max-width:27ch;
    font-size:clamp(1.72rem,2.15vw,2.25rem);
    line-height:1.02;
  }
  .services-shell .service-article{
    margin-top:clamp(24px,2.8vh,36px);
  }
}
@media(max-width:900px){
  .services-shell .service-article{display:block}
  .services-shell .service-article section,
  .services-shell .service-article section:first-child,
  .services-shell .service-article section:nth-child(n+4){
    display:block;
    margin-bottom:28px;
    padding:0;
    background:transparent;
  }
  .services-shell .service-article section:first-child{
    padding:18px;
    background:linear-gradient(105deg,rgba(105,212,177,.085),rgba(41,182,210,.035));
  }
  .services-shell .service-article section:first-child h4,
  .services-shell .service-article section:nth-child(n+4) h4{margin-top:0}
}

@keyframes serviceSignalDrift{
  0%{transform:translate3d(-1.3%,.8%,0) scale(1.01) rotate(-.12deg)}
  100%{transform:translate3d(1.4%,-1%,0) scale(1.035) rotate(.12deg)}
}

/* Semantic full-screen motion diagrams. The SVGs are injected by what-we-do.js. */
.services-shell .view[data-view]::before{
  background:
    radial-gradient(850px circle at 56% 50%,rgba(41,182,210,.055),transparent 67%),
    repeating-linear-gradient(90deg,transparent 0 95px,rgba(116,199,214,.026) 96px 97px),
    repeating-linear-gradient(0deg,transparent 0 76px,rgba(116,199,214,.022) 77px 78px);
  opacity:.16;
  animation:none;
}
.services-shell .view.is-active[data-view]::before{opacity:.22}
.service-motion{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:0;
  color:var(--mint);
  transition:opacity .8s ease .12s;
  overflow:visible;
  mask-image:
    linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.78) 34%,#000 62%,rgba(0,0,0,.72)),
    linear-gradient(0deg,transparent,black 13%,black 88%,transparent);
}
.view.is-active .service-motion{opacity:.135}
.service-motion svg{width:100%;height:100%;overflow:visible}
.service-motion .m-line,
.service-motion .m-branch,
.service-motion .m-frame{
  fill:none;
  stroke:currentColor;
  vector-effect:non-scaling-stroke;
}
.service-motion .m-line{stroke-width:1.1;stroke-opacity:.3}
.service-motion .m-branch{stroke-width:.7;stroke-opacity:.15}
.service-motion .m-frame{stroke-width:.85;stroke-opacity:.21}
.service-motion .m-fill{fill:currentColor;fill-opacity:.035;stroke:currentColor;stroke-opacity:.17}
.service-motion .m-node{fill:#69d4b1;fill-opacity:.72}
.service-motion .m-node.-cyan{fill:#29b6d2}
.service-motion .m-node.-blue{fill:#4179d4}
.service-motion text{
  fill:#a9c1c8;
  fill-opacity:.26;
  font:500 10px var(--sans);
  letter-spacing:1.8px;
}
.service-motion .m-dash{
  stroke-dasharray:7 15;
  animation:motionRoute 7s linear infinite;
}
.service-motion .m-draw{
  stroke-dasharray:900;
  stroke-dashoffset:900;
  animation:motionDraw 8s cubic-bezier(.65,0,.25,1) infinite;
}
.service-motion .m-rise{
  transform-box:fill-box;
  transform-origin:center bottom;
  animation:motionRise 6s cubic-bezier(.45,0,.2,1) infinite;
}
.service-motion .m-rise:nth-of-type(2){animation-delay:.6s}
.service-motion .m-rise:nth-of-type(3){animation-delay:1.2s}
.service-motion .m-rise:nth-of-type(4){animation-delay:1.8s}
.service-motion .m-stage{animation:motionStage 8s steps(1,end) infinite}
.service-motion .m-stage.-s2{animation-delay:2s}
.service-motion .m-stage.-s3{animation-delay:4s}
.service-motion .m-stage.-s4{animation-delay:6s}
.service-motion--analytics{color:#69d4b1}
.service-motion--engineering{color:#29b6d2}
.service-motion--migration{color:#69d4b1}
.service-motion--apps{color:#29b6d2}
.service-motion--solutions{color:#69d4b1}
.service-motion--lakehouse{color:#4179d4}
.service-motion--graph{color:#29b6d2}
.service-motion--fde{color:#69d4b1}
@keyframes motionRoute{to{stroke-dashoffset:-132}}
@keyframes motionDraw{
  0%,8%{stroke-dashoffset:900}
  55%,82%{stroke-dashoffset:0}
  100%{stroke-dashoffset:-900}
}
@keyframes motionRise{
  0%,12%{transform:scaleY(.08);opacity:.15}
  44%,82%{transform:scaleY(1);opacity:.82}
  100%{transform:scaleY(.08);opacity:.15}
}
@keyframes motionStage{
  0%,24%{fill-opacity:.04;stroke-opacity:.18}
  25%,49%{fill-opacity:.18;stroke-opacity:.72}
  50%,100%{fill-opacity:.04;stroke-opacity:.18}
}

/* Generated editorial imagery replaces the diagram animation system. */
.services-shell .view[data-view="4"]{--service-image:url("assets/img/services/analytics.webp")}
.services-shell .view[data-view="5"]{--service-image:url("assets/img/services/engineering.webp")}
.services-shell .view[data-view="1"]{--service-image:url("assets/img/services/migration.webp")}
.services-shell .view[data-view="6"]{--service-image:url("assets/img/services/business-apps.webp")}
.services-shell .view[data-view="7"]{--service-image:url("assets/img/services/solutions.webp")}
.services-shell .view[data-view="2"]{--service-image:url("assets/img/services/databricks.webp")}
.services-shell .view[data-view="3"]{--service-image:url("assets/img/services/datawalk.webp")}
.services-shell .view[data-view="0"]{--service-image:url("assets/img/services/forward-deployed.webp")}
.services-shell .view[data-view]::before{
  inset:-2%;
  background-image:
    linear-gradient(90deg,rgba(5,15,27,.82) 0%,rgba(5,15,27,.62) 38%,rgba(5,15,27,.52) 100%),
    linear-gradient(0deg,rgba(5,15,27,.56),rgba(5,15,27,.22) 68%,rgba(5,15,27,.48)),
    var(--service-image);
  background-size:cover;
  background-position:50% 100%;
  background-repeat:no-repeat;
  opacity:.08;
  filter:saturate(.76) contrast(.96);
  animation:serviceImageDrift 34s ease-in-out infinite alternate;
}
.services-shell .view.is-active[data-view]::before{opacity:.5}
.service-motion{display:none!important}
:root[data-theme="light"] .services-shell .view[data-view]::before{
  background-image:
    linear-gradient(90deg,rgba(232,238,242,.88),rgba(232,238,242,.72) 46%,rgba(232,238,242,.64)),
    linear-gradient(0deg,rgba(232,238,242,.58),rgba(232,238,242,.28),rgba(232,238,242,.62)),
    var(--service-image);
  opacity:.46;
  filter:grayscale(.18) saturate(.62) contrast(.85);
}
@keyframes serviceImageDrift{
  from{background-position:49.25% 100%}
  to{background-position:50.75% 98.5%}
}

/* Generated service imagery is intentionally parked while a new art direction is developed. */
.services-shell .view[data-view]::before,
:root[data-theme="light"] .services-shell .view[data-view]::before{
  inset:0;
  background:
    radial-gradient(900px circle at 72% 38%,rgba(41,182,210,.055),transparent 64%),
    radial-gradient(760px circle at 28% 76%,rgba(105,212,177,.035),transparent 68%);
  opacity:1;
  filter:none;
  animation:none;
}

/* Data Analytics prototype: editorial service dossier, built from the content itself. */
.service-dossier{
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  gap:clamp(20px,2.5vh,34px);
  padding-bottom:clamp(24px,3.2vh,44px)!important;
}
.service-dossier::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:none;
}
.service-dossier>*{position:relative;z-index:1}
.dossier-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.4fr);
  gap:clamp(28px,3.5vw,58px);
  align-items:end;
}
.services-shell .service-dossier .dossier-head h3{
  max-width:24ch;
  font-size:clamp(1.78rem,2.15vw,2.38rem);
}
.dossier-promise{margin:0 0 3px}
.dossier-promise span,
.thread-end span,
.dossier-proof b{
  display:block;
  margin-bottom:8px;
  color:var(--mint);
  font:600 .48rem/1 var(--sans);
  letter-spacing:.135em;
  text-transform:uppercase;
}
.dossier-promise strong{
  display:block;
  color:#a9bbc4;
  font:500 clamp(.63rem,.72vw,.74rem)/1.52 var(--body);
}
.decision-thread{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(110px,1.25fr) minmax(0,.82fr);
  gap:clamp(18px,2.2vw,34px);
  align-items:center;
  margin-top:0;
  min-height:clamp(86px,10vh,112px);
  padding:clamp(19px,2.2vh,27px) clamp(19px,2vw,32px);
  background:linear-gradient(105deg,rgba(105,212,177,.075),rgba(41,182,210,.027) 58%,transparent);
}
.thread-end{min-width:0}
.thread-end strong{
  display:block;
  color:var(--ink);
  font:600 clamp(.66rem,.78vw,.82rem)/1.38 var(--sans);
  overflow-wrap:anywhere;
}
.thread-end.-result{text-align:right}
.thread-end.-result span{color:var(--cyan)}
.thread-end em{
  display:block;
  margin-top:9px;
  color:#7e99a5;
  font:500 .48rem/1 var(--sans);
  font-style:normal;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.thread-signal{position:relative;height:66px;display:flex;align-items:flex-end;gap:6px}
.thread-signal::before{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg,rgba(105,212,177,.16),rgba(41,182,210,.35),rgba(65,121,212,.16));
}
.thread-signal i{
  flex:1;
  height:var(--h);
  background:linear-gradient(180deg,rgba(41,182,210,.27),rgba(41,182,210,.045));
}
.thread-signal svg{position:absolute;inset:0;width:100%;height:100%}
.thread-signal path{fill:none;stroke:var(--mint);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dossier-body{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  align-content:space-between;
  row-gap:clamp(28px,4vh,54px);
  min-height:0;
}
.dossier-feature{
  display:grid;
  grid-template-columns:34px minmax(145px,.46fr) minmax(0,1.55fr);
  gap:clamp(16px,2vw,34px);
  align-items:start;
}
.dossier-feature>div{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);
  gap:clamp(24px,3vw,48px);
}
.dossier-feature>div p+p{margin-top:0}
.dossier-number{
  display:block;
  padding-top:3px;
  color:rgba(105,212,177,.54);
  font:600 .5rem/1 var(--sans);
  letter-spacing:.1em;
}
.service-dossier h4{
  margin:0;
  color:var(--ink);
  font:600 clamp(.72rem,.84vw,.9rem)/1.35 var(--sans);
  letter-spacing:-.012em;
}
.service-dossier p{
  margin:0;
  color:#8fa4ae;
  font-size:clamp(.63rem,.72vw,.76rem);
  line-height:1.62;
}
.service-dossier p+p{margin-top:8px}
.dossier-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,66px);
  margin-top:0;
  padding-left:calc(34px + clamp(16px,2vw,34px));
  align-self:end;
}
.dossier-columns section{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  column-gap:14px;
  align-content:start;
}
.dossier-columns h4,
.dossier-columns p{grid-column:2}
.dossier-columns h4{margin-bottom:11px}
.dossier-proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,2.5vw,38px);
  margin-top:0;
  padding:clamp(16px,1.8vh,22px) clamp(18px,1.8vw,28px);
  background:linear-gradient(90deg,rgba(65,121,212,.055),rgba(105,212,177,.055),transparent);
}
.dossier-proof span{
  color:#879ca7;
  font:500 clamp(.51rem,.58vw,.61rem)/1.45 var(--body);
}
.dossier-proof b{margin-bottom:6px}
:root[data-theme="light"] .dossier-promise strong,
:root[data-theme="light"] .service-dossier p{color:#526a75}
:root[data-theme="light"] .dossier-proof span{color:#5b717b}

/* Let the dossier's real content establish the vertical rhythm; never compress its rows. */
.service-dossier{display:block}
.service-dossier .decision-thread{margin-top:clamp(22px,2.7vh,34px)}
.service-dossier .dossier-body{display:block;margin-top:clamp(26px,3.2vh,42px)}
.service-dossier .dossier-columns{margin-top:clamp(28px,3.5vh,46px)}
.service-dossier .dossier-proof{margin-top:clamp(28px,3.5vh,46px)}

@media(min-width:901px){
  .service-dossier{
    --dossier-gap:clamp(14px,1.45vw,24px);
    display:block;
  }
  .service-dossier .dossier-head,
  .service-dossier .decision-thread,
  .service-dossier .dossier-feature,
  .service-dossier .dossier-columns,
  .service-dossier .dossier-proof{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:var(--dossier-gap);
  }
  .dossier-head>div{grid-column:1/9}
  .dossier-head .dossier-promise{grid-column:9/13}
  .service-dossier .decision-thread{
    margin-inline:calc(var(--panel-gutter) * -1);
    padding-inline:var(--panel-gutter);
  }
  .decision-thread>.thread-end:first-child{grid-column:1/4}
  .decision-thread>.thread-signal{grid-column:4/10}
  .decision-thread>.thread-end.-result{grid-column:10/13}
  .service-dossier .dossier-feature{
    align-items:start;
  }
  .dossier-feature>.dossier-number{grid-column:1/2}
  .dossier-feature>h4{grid-column:2/5}
  .service-dossier .dossier-feature>div{
    grid-column:5/13;
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:var(--dossier-gap);
  }
  .dossier-feature>div>p:first-child{grid-column:1/5}
  .dossier-feature>div>p:last-child{grid-column:5/9}
  .service-dossier .dossier-columns{
    padding-left:0;
  }
  .dossier-columns>section{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    column-gap:var(--dossier-gap);
  }
  .dossier-columns>section:first-child{grid-column:1/7}
  .dossier-columns>section:last-child{grid-column:7/13}
  .dossier-columns section>.dossier-number{grid-column:1/2}
  .dossier-columns section>h4,
  .dossier-columns section>p{grid-column:2/7}
  .service-dossier .dossier-proof{
    padding-inline:0;
    margin-top:clamp(28px,3.5vh,46px);
  }
  .dossier-proof>span:nth-child(1){grid-column:1/5}
  .dossier-proof>span:nth-child(2){grid-column:5/9}
  .dossier-proof>span:nth-child(3){grid-column:9/13}
}

@media(max-width:1150px) and (min-width:901px){
  .service-dossier .dossier-head{grid-template-columns:1fr}
  .dossier-head>div{grid-column:1/-1}
  .dossier-promise{display:none}
  .service-dossier .decision-thread{
    grid-template-columns:minmax(0,.82fr) minmax(150px,1.35fr) minmax(0,.82fr);
    gap:13px;
  }
  .decision-thread>.thread-end:first-child,
  .decision-thread>.thread-signal,
  .decision-thread>.thread-end.-result{grid-column:auto}
  .thread-end strong{font-size:.61rem}
  .thread-end em{font-size:.42rem}
  .dossier-feature{grid-template-columns:28px minmax(105px,.55fr) minmax(0,1.35fr)}
  .dossier-feature>div{grid-template-columns:1fr}
  .dossier-feature>div p+p{margin-top:8px}
  .dossier-columns{padding-left:0}
}
@media(max-height:820px) and (min-width:901px){
  .service-dossier{display:block}
  .decision-thread{margin-top:20px;min-height:82px}
  .dossier-body{display:block;margin-top:24px}
  .dossier-feature>div{grid-template-columns:1fr}
  .dossier-feature>div p+p{margin-top:8px}
  .dossier-columns{margin-top:26px;padding-left:0}
  .dossier-proof{margin-top:26px}
}
@media(max-width:900px){
  .dossier-head,.decision-thread,.dossier-feature,.dossier-columns,.dossier-proof{grid-template-columns:1fr}
  .dossier-head{gap:18px}
  .decision-thread{gap:16px}
  .thread-end.-result{text-align:left}
  .dossier-feature{gap:10px}
  .dossier-feature>div{grid-template-columns:1fr}
  .dossier-feature>div p+p{margin-top:8px}
  .dossier-columns{padding-left:0}
  .dossier-columns section{grid-template-columns:28px 1fr}
}

/* ============================================================
   FINISHED SERVICE COMPOSITION
   Concise context stays with the lead; complete source content
   reads as an editorial dossier rather than a stack of cards.
   ============================================================ */
@media(min-width:901px){
  .services-shell .view{
    grid-template-columns:minmax(390px,.78fr) minmax(0,1.22fr);
    gap:clamp(42px,5vw,88px);
  }
  .services-shell .view__lead{max-width:620px}

  .services-shell .service-copy{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(20px,2vw,32px);
    width:min(100%,680px);
    margin-top:clamp(28px,3.5vh,42px);
  }
  .services-shell .service-copy>div{
    min-width:0;
    padding:16px 2px 0;
    border-top:1px solid rgba(105,212,177,.2);
  }
  .services-shell .service-copy span{
    display:block;
    margin-bottom:10px;
    color:var(--mint);
    font:600 .58rem/1 var(--sans);
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .services-shell .service-copy p{
    margin:0;
    color:#8399a4;
    font-size:clamp(.82rem,.95vw,.95rem);
    line-height:1.6;
  }
  :root[data-theme="light"] .services-shell .service-copy p{color:#526a75}

  .services-shell .service-content-panel:not(.service-dossier){
    padding-top:clamp(35px,4.2vh,54px);
    padding-bottom:clamp(28px,3.5vh,46px);
  }
  .services-shell .service-content-panel:not(.service-dossier)>h3{
    max-width:24ch;
    padding-bottom:clamp(20px,2.4vh,30px);
    border-bottom:1px solid rgba(145,190,198,.16);
    font-size:clamp(1.9rem,2.3vw,2.5rem);
    line-height:.98;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article{
    display:block;
    margin-top:0;
    padding-bottom:18px;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article section,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(2),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(3),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:hover{
    display:grid;
    grid-template-columns:34px minmax(130px,.48fr) minmax(0,1.52fr);
    column-gap:clamp(18px,2vw,32px);
    row-gap:7px;
    align-items:start;
    width:100%;
    margin:0;
    padding:clamp(18px,2.15vh,27px) 0;
    background:transparent;
    box-shadow:none;
    transform:none;
    transition:background .25s;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child{
    background:linear-gradient(90deg,rgba(105,212,177,.065),rgba(41,182,210,.025) 58%,transparent);
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:hover{
    background:linear-gradient(90deg,rgba(105,212,177,.05),transparent 72%);
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article section::before,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child::before,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4)::before{
    grid-column:1;
    grid-row:1;
    margin:3px 0 0;
    color:rgba(105,212,177,.62);
    font-size:.5rem;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article h4,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child h4,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4) h4{
    grid-column:2;
    grid-row:1;
    margin:0;
    padding-right:8px;
    font-size:clamp(.72rem,.82vw,.88rem);
    line-height:1.32;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article p,
  .services-shell .service-content-panel:not(.service-dossier) .service-article ul,
  .services-shell .service-content-panel:not(.service-dossier) .service-article ol,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child p,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child ul,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4) p,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4) ul{
    grid-column:3;
    margin-top:0;
    font-size:clamp(.64rem,.72vw,.75rem);
    line-height:1.62;
  }
  .services-shell .service-content-panel:not(.service-dossier) .service-article p+p{margin-top:0}

  :root[data-theme="light"] .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child{
    background:linear-gradient(90deg,rgba(18,165,140,.075),rgba(41,182,210,.03) 58%,transparent);
  }
  :root[data-theme="light"] .services-shell .service-content-panel:not(.service-dossier) .service-article section:hover{
    background:linear-gradient(90deg,rgba(18,165,140,.055),transparent 72%);
  }
}

@media(max-width:1150px) and (min-width:901px){
  .services-shell .service-content-panel:not(.service-dossier) .service-article section,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:first-child,
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(2),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(3),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:nth-child(n+4),
  .services-shell .service-content-panel:not(.service-dossier) .service-article section:hover{
    grid-template-columns:28px minmax(92px,.4fr) minmax(0,1.6fr);
    column-gap:clamp(12px,1.6vw,32px);
  }
}

@media(prefers-reduced-motion:reduce){
  .map-core::after,.flow-field>i,.flow-pulse,.route-line i,
  .services-shell .view::before,
  .service-motion *,
  .services-shell .view[data-view]::before{animation:none!important}
}
