/* EngiTools services — one pinned viewport, intro + 3 cards layered over each other. */
.service-stack-section{
  --service-paper:#f3f3ef;
  --service-ink:#0a0a0a;
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:var(--service-paper)!important;
  overflow:visible!important;
  isolation:isolate;
}
.service-stack-scene{
  --service-layer-count:4;
  position:relative;
  height:calc(var(--service-layer-count) * 100svh);
  background:var(--service-paper);
}
.service-stack-viewport{
  position:sticky!important;
  top:0;
  height:100svh;
  overflow:hidden;
  isolation:isolate;
  background:var(--service-paper);
  contain:paint;
}
.service-stack-stage{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(78px,9vh,112px) 0 clamp(20px,3vh,36px);
}
.service-stack-intro,
.service-stack-section .service-cta{
  --stack-enter:0%;
  --stack-scale:1;
  position:absolute!important;
  inset:0!important;
  width:min(1320px,calc(100% - 48px))!important;
  height:calc(100svh - clamp(110px,13vh,154px))!important;
  max-height:760px;
  min-height:560px;
  margin:auto!important;
  transform-origin:50% 10%;
  transform:translate3d(0,var(--stack-enter),0) scale(var(--stack-scale));
  will-change:transform;
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}
.service-stack-intro{
  z-index:10;
  display:grid;
  place-items:center;
  padding:clamp(36px,5vw,70px);
  border:1px solid rgba(10,10,10,.16);
  border-radius:clamp(18px,2.4vw,34px);
  background:var(--service-paper);
  color:var(--service-ink);
  text-align:center;
  box-shadow:0 24px 80px rgba(0,0,0,.06);
  overflow:hidden;
}
.service-stack-intro:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(10,10,10,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.03) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 78%);
}
.service-stack-intro-inner{position:relative;z-index:1;width:min(980px,92%);margin:auto}
.service-stack-eyebrow{display:inline-flex;align-items:center;gap:14px;margin-bottom:28px;font-size:11px;font-weight:650;letter-spacing:.18em;direction:ltr;color:#5f5f5a}
.service-stack-eyebrow:before,.service-stack-eyebrow:after{content:"";width:42px;height:1px;background:#aaa9a3}
.service-stack-title{margin:0!important;font-size:clamp(42px,6.5vw,106px)!important;line-height:1.04!important;letter-spacing:-.04em!important;font-weight:760!important;text-wrap:balance;color:#0a0a0a!important}
.service-stack-subtitle{max-width:680px;margin:24px auto 0;font-size:clamp(15px,1.45vw,20px);line-height:1.95;color:#4d4d49!important}
.service-stack-section .service-cta-grid{display:contents!important}
.service-stack-section .service-cta{
  --stack-index:0;
  z-index:calc(11 + var(--stack-index));
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  grid-template-rows:auto 1fr auto;
  padding:clamp(30px,4vw,58px)!important;
  border:1px solid rgba(10,10,10,.2)!important;
  border-radius:clamp(18px,2.4vw,34px)!important;
  background:var(--service-paper)!important;
  color:#0a0a0a!important;
  box-shadow:0 24px 85px rgba(0,0,0,.09)!important;
  overflow:hidden;
}
.service-stack-section .service-cta:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(10,10,10,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 72%)}
.service-stack-section .service-card-dark{background:#0a0a0a!important;color:#fff!important;border-color:#0a0a0a!important}
.service-stack-section .service-card-dark:before{background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px)}
.service-stack-section .service-card-muted{background:#deded8!important;color:#0a0a0a!important}
.service-stack-section .cta-top{grid-column:1/-1;display:flex!important;justify-content:space-between;align-items:center;position:relative;z-index:2}
.service-stack-section .service-code{font-size:11px!important;letter-spacing:.16em!important;color:#5e5e59!important}
.service-stack-section .companion-icon{font-size:clamp(52px,7vw,100px)!important;line-height:1!important;font-weight:350!important;color:inherit!important}
.service-stack-section .cta-body{grid-column:1/2;align-self:center;position:relative;z-index:2;max-width:760px}
.service-stack-section .cta-body h3{font-size:clamp(48px,7vw,112px)!important;line-height:.98!important;letter-spacing:-.045em!important;font-weight:760!important;margin:0 0 24px!important;color:inherit!important}
.service-stack-section .cta-body p{font-size:clamp(16px,1.55vw,22px)!important;line-height:1.9!important;max-width:600px;color:#343430!important}
.service-stack-section .cta-link{grid-column:2/3;align-self:end;justify-self:end;min-width:220px;display:flex!important;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #7b7b76;padding-top:18px;position:relative;z-index:2;font-weight:650!important;color:inherit!important}
.service-stack-section .cta-arrow{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#0a0a0a;font-style:normal!important;transition:transform .28s ease}
.service-stack-section .cta-arrow:after{content:"↗";color:#fff;font-size:23px}.service-stack-section .cta-link .cta-arrow{font-size:0}
.service-stack-section .service-card-dark .service-code,
.service-stack-section .service-card-dark .cta-body p{color:#e2e2dc!important}
.service-stack-section .service-card-dark .cta-link{border-color:#8f8f89!important;color:#fff!important}
.service-stack-section .service-card-dark .cta-arrow{background:#fff!important}
.service-stack-section .service-card-dark .cta-arrow:after{color:#0a0a0a!important}
.service-stack-section .service-card-clickable{cursor:pointer!important}
.service-stack-section .service-card-clickable:focus-visible{outline:3px solid currentColor;outline-offset:-7px}
.service-stack-section .service-card-clickable:hover .cta-arrow{transform:rotate(45deg)}

@media(max-width:900px){
  .service-stack-stage{padding-top:82px}
  .service-stack-intro,.service-stack-section .service-cta{width:calc(100% - 40px)!important;height:calc(100svh - 112px)!important;min-height:520px}
  .service-stack-section .service-cta{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}
  .service-stack-section .cta-body{grid-column:1;align-self:center}
  .service-stack-section .cta-link{grid-column:1;justify-self:stretch;min-width:0}
}
@media(max-width:640px){
  .service-stack-scene{height:calc(var(--service-layer-count) * 92svh)}
  .service-stack-stage{padding:74px 0 16px}
  .service-stack-intro,.service-stack-section .service-cta{width:calc(100% - 36px)!important;height:calc(100svh - 94px)!important;min-height:500px;border-radius:18px!important}
  .service-stack-intro{padding:32px 24px!important}
  .service-stack-title{font-size:clamp(38px,12vw,62px)!important}
  .service-stack-section .service-cta{padding:28px 24px!important}
  .service-stack-section .cta-body h3{font-size:clamp(44px,14vw,72px)!important}
  .service-stack-section .companion-icon{font-size:58px!important}
}
@media (prefers-reduced-motion: reduce){
  .service-stack-scene{height:auto!important}
  .service-stack-viewport{position:relative!important;height:auto!important;overflow:visible!important}
  .service-stack-stage{position:relative!important;display:block!important;padding:24px 0!important}
  .service-stack-intro,.service-stack-section .service-cta{position:relative!important;inset:auto!important;height:auto!important;min-height:520px!important;transform:none!important;margin:0 auto 24px!important}
  .service-stack-section .service-cta-grid{display:block!important}
}
