.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  transition:background .25s ease,border-color .25s ease;
  border-bottom:1px solid transparent
}

.service-jump {
  position:fixed!important;
  top:100px!important;
  left:50%;
  width:min(calc(100% - 56px),1440px);
  margin-top:0!important;
  transform:translateX(-50%);
  border:1px solid var(--line)!important;
  border-radius:18px;
  box-shadow:0 14px 40px rgba(7,20,38,.07);
  overflow:hidden;
  transition:transform .3s ease,opacity .3s ease,box-shadow .3s ease
}

.service-jump.is-scroll-hidden {
  transform:translate(-50%,-145%);
  opacity:0;
  pointer-events:none
}

.service-intro {
  display:flex;
  min-height:560px;
  align-items:center;
  margin-top:180px;
  padding:80px 0
}

.service-intro-grid {
  align-items:start
}

.service-title h1 {
  max-width:760px;
  margin:0;
  font-size:clamp(48px,4.8vw,70px);
  font-weight:600;
  letter-spacing:-.055em;
  line-height:1.08
}

.service-definition {
  padding-top:52px
}

.service-definition [data-service-description] p {
  margin:0;
  line-height:1.75
}

.service-definition [data-service-description] p+p {
  margin-top:22px
}

.service-detail-header {
  display:none!important
}

html[data-theme="light"] .service-detail {
  background:#fff!important
}

html[data-theme="light"] .service-content-block {
  background:transparent!important
}

html[data-theme="dark"] .service-detail {
  background:#071426!important
}

html[data-theme="dark"] .service-content-block {
  background:transparent!important
}

.service-content-block {
  position:relative;
  isolation:isolate
}

.service-content-block::before {
  content:"";
  position:absolute;
  z-index:-2;
  top:-56px;
  bottom:-56px;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:#e8f0ff
}

.service-content-block::after {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  border-radius:30px;
  background:var(--navy)
}

html[data-theme="dark"] .service-content-block::after {
  background:#050f1e
}

html[data-theme="dark"] .service-content-block::before {
  background:#0b1d34
}

.service-content-block+.detail-columns {
  margin-top:128px
}

.service-detail {
  padding:56px 0 80px!important;
  border-top:0!important
}

#software-deliverables {
  padding:56px 0!important
}

.service-reference-section {
  padding:72px 0 32px!important
}

.delivery-models {
  padding:32px 0 80px!important
}

html[data-theme="light"] .detail-panel {
  background:#fff!important
}

html[data-theme="dark"] .detail-panel {
  background:#102846!important
}

.engagement-list {
  margin-top:26px
}

.engagement-list article {
  padding:13px 0;
  border-bottom:1px solid var(--line)
}

.engagement-list article:last-child {
  border-bottom:0
}

.engagement-list h3 {
  margin:0 0 4px;
  font-size:15px
}

.engagement-list p {
  margin:0;
  color:var(--muted)
}

.delivery-model-grid {
  display:block!important
}

.delivery-models .section-copy {
  position:static!important
}

.model-list {
  display:flex!important;
  flex-wrap:wrap;
  gap:12px!important;
  margin-top:24px
}

.detail-models {
  margin-top:64px!important;
  padding-top:0!important;
  border-top:0!important
}

.detail-models>div {
  gap:12px!important
}

.model-list span,
.detail-models span {
  display:inline-flex!important;
  min-height:46px!important;
  padding:9px 18px!important;
  border:1px solid #aebfd7!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--navy);
  font-size:13px!important;
  font-weight:600
}

.model-list span:hover,
.detail-models span:hover {
  border-color:var(--blue)!important;
  background:var(--blue)!important;
  color:#fff!important
}

html[data-theme="dark"] .model-list span,
html[data-theme="dark"] .detail-models span {
  border-color:#355372!important;
  color:#dce7f6!important
}

html[data-theme="dark"] .model-list span:hover,
html[data-theme="dark"] .detail-models span:hover {
  border-color:var(--blue)!important;
  background:var(--blue)!important;
  color:#fff!important
}

@media(max-width:800px) {
  .model-list,
  .detail-models>div {
    justify-content:center
  }
}

.deliverable-card>span,
.project-list article>span {
  display:none!important
}

@media(max-width:800px) {
  .service-jump {
    top:172px!important;
    width:calc(100% - 28px)
  }

  .service-intro {
    min-height:auto;
    margin-top:244px;
    padding:54px 0
  }

  .service-intro-grid {
    grid-template-columns:1fr;
    gap:34px
  }

  .service-title h1 {
    font-size:clamp(40px,12vw,58px)
  }

  .service-definition {
    padding-top:0
  }

  .service-detail {
    padding:40px 0 56px!important
  }

  #software-deliverables {
    padding:36px 0!important
  }

  .service-reference-section {
    padding:52px 0 24px!important
  }

  .delivery-models {
    padding:24px 0 56px!important
  }

  .service-content-block::before {
    top:-36px;
    bottom:-36px
  }

  .service-content-block+.detail-columns {
    margin-top:104px
  }
}

@media(max-width:800px) {
  .service-cta h2 {
    font-size:20px!important;
  }
}

@media(max-width:480px) {
  .service-cta h2 {
    font-size:18px!important;
  }
}

@media(min-width:801px) {
  .site-header {
    inset:14px 0 auto!important;
    border:0!important;
    background:transparent!important;
    backdrop-filter:none!important
  }

  .nav-wrap {
    height:72px!important;
    padding:0 20px!important;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(255,255,255,.92);
    box-shadow:0 14px 40px rgba(7,20,38,.07);
    backdrop-filter:blur(18px)
  }

  html[data-theme="dark"] .nav-wrap {
    background:rgba(7,20,38,.94)
  }
}

html[data-theme="light"] .service-jump {
  background:rgba(255,255,255,.94)!important
}

html[data-theme="dark"] .service-jump {
  background:rgba(7,20,38,.96)!important
}

.site-header.scrolled {
  background:rgba(247,248,250,.9);
  border-color:var(--line);
  backdrop-filter:blur(18px)
}

.nav-wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:88px
}

.brand {
  display:flex;
  align-items:center;
  flex:0 0 auto
}

.brand-logo {
  display:block;
  width:194px;
  height:68px;
  object-fit:contain;
  object-position:left center
}

.site-nav {
  display:flex;
  align-items:center;
  gap:25px;
  color:#354358;
  font-size:13px;
  font-weight:500
}

.site-nav>a:not(.nav-cta) {
  position:relative;
  padding:8px 0;
  transition:color .2s ease
}

.site-nav>a:not(.nav-cta)::after {
  content:"";
  position:absolute;
  right:0;
  bottom:2px;
  left:0;
  height:1px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .25s ease
}

.site-nav>a:not(.nav-cta):hover,
.site-nav>a.is-current {
  color:var(--blue)
}

.site-nav>a:not(.nav-cta):hover::after,
.site-nav>a.is-current::after {
  transform:scaleX(1);
  transform-origin:left
}

.nav-cta,
.mobile-project-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:var(--blue);
  color:#fff;
  font-weight:600;
  box-shadow:0 12px 28px rgba(23,105,255,.2)
}

.nav-cta {
  min-height:48px;
  margin-left:4px;
  padding:0 18px
}

.mobile-project-cta,
.mobile-nav-actions,
.menu-toggle {
  display:none
}

.language-switch {
  display:inline-grid;
  grid-template-columns:repeat(2,1fr);
  gap:4px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none
}

.language-switch button {
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  padding:0;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#526176;
  font:700 10px var(--font-body);
  letter-spacing:.04em;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,box-shadow .25s ease
}

.language-switch button.is-active {
  background:var(--blue);
  color:#fff;
  box-shadow:0 4px 12px rgba(23,105,255,.24)
}

.theme-switch {
  display:inline-grid;
  grid-template-columns:repeat(2,1fr);
  gap:2px;
  padding:3px;
  border:1px solid #d6dfeb;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 28px rgba(7,20,38,.08);
  backdrop-filter:blur(14px)
}

.theme-switch button {
  display:grid;
  place-items:center;
  width:34px;
  min-width:34px;
  height:30px;
  min-height:30px;
  padding:5px;
  overflow:hidden;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#526176;
  font-size:0;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,box-shadow .25s ease
}

.theme-switch button.is-active {
  background:var(--blue);
  color:#fff;
  box-shadow:0 5px 14px rgba(23,105,255,.25)
}

.theme-switch button::before {
  content:"";
  display:block;
  width:16px;
  height:16px;
  margin:auto;
  background:currentColor;
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-position:center;
  mask-repeat:no-repeat;
  mask-size:contain
}

.theme-switch button[data-theme-option="light"]::before {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.42 1.42M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.42-1.42M17.66 6.34l1.41-1.41' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.42 1.42M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.42-1.42M17.66 6.34l1.41-1.41' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")
}

.theme-switch button[data-theme-option="dark"]::before {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 15.5A8.5 8.5 0 0 1 8.5 4 8.5 8.5 0 1 0 20 15.5Z' fill='black'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 15.5A8.5 8.5 0 0 1 8.5 4 8.5 8.5 0 1 0 20 15.5Z' fill='black'/%3E%3C/svg%3E")
}

.services-hero {
  position:relative;
  padding:190px 0 58px;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(23,105,255,.08) 1px,transparent 1px),
    linear-gradient(rgba(23,105,255,.08) 1px,transparent 1px),
    linear-gradient(145deg,#fbfcfe 0%,#f4f7fc 56%,#eaf1ff 100%);
  background-size:64px 64px,64px 64px,auto
}

.services-hero::before {
  content:"";
  position:absolute;
  top:-180px;
  right:-160px;
  width:620px;
  height:620px;
  border:1px solid rgba(23,105,255,.17);
  border-radius:50%
}

.services-hero::after {
  content:"";
  position:absolute;
  right:12%;
  bottom:-210px;
  width:440px;
  height:440px;
  border:1px solid rgba(23,105,255,.14);
  border-radius:50%
}

.services-hero-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.55fr);
  gap:90px;
  align-items:end
}

.services-hero .eyebrow,
.section-copy .eyebrow,
.service-title .eyebrow,
.client-input-panel .eyebrow,
.section-heading .eyebrow,
.service-cta .eyebrow {
  margin-bottom:20px
}

.services-hero h1 {
  max-width:800px;
  margin:0;
  font-size:clamp(54px,6vw,86px);
  font-weight:600;
  letter-spacing:-.06em
}

.services-hero-summary {
  padding-bottom:8px
}

.services-hero-summary p {
  margin-bottom:30px;
  color:var(--muted);
  font-size:18px;
  line-height:1.65
}

.services-hero-summary a {
  display:inline-block;
  margin-left:auto;
  border-bottom:1px solid var(--blue);
  color:var(--blue);
  font-weight:600
}

.service-position {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:82px;
  color:var(--blue);
  font-size:11px;
  font-weight:700
}

.service-position,
.service-number,
.service-index {
  display:none
}

.service-position i {
  display:block;
  flex:1;
  height:1px;
  background:linear-gradient(90deg,var(--blue) 12.5%,var(--line) 12.5%)
}

.service-jump {
  position:sticky;
  top:88px;
  z-index:80;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(247,248,250,.92);
  backdrop-filter:blur(16px)
}

.service-jump-inner {
  display:flex;
  align-items:center;
  gap:34px;
  min-height:62px;
  overflow-x:auto;
  scrollbar-width:none
}

.service-jump-inner::-webkit-scrollbar {
  display:none
}

.service-jump a {
  position:relative;
  flex:0 0 auto;
  padding:21px 0;
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  white-space:nowrap
}

.service-jump a::after {
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:2px;
  background:var(--blue);
  transform:scaleX(0);
  transition:transform .25s ease
}

.service-jump a:hover,
.service-jump a.is-active {
  color:var(--blue)
}

.service-jump a.is-active::after {
  transform:scaleX(1)
}

.service-intro {
  background:var(--paper)
}

.service-intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.62fr);
  gap:58px;
  align-items:start
}

.service-number {
  color:var(--blue);
  font-family:var(--font-display);
  font-size:32px;
  font-weight:600
}

.service-number span {
  color:var(--muted);
  font-size:12px
}

.service-title h2 {
  max-width:680px;
  margin:0;
  font-size:clamp(44px,5vw,70px);
  font-weight:600
}

.service-definition {
  padding-top:42px;
  color:var(--muted);
  font-size:17px
}

.question-label {
  margin-bottom:18px;
  color:var(--blue);
  font-size:12px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase
}

.responsibility {
  background:var(--navy)
}

.responsibility h2,
.responsibility h3 {
  color:#fff
}

.responsibility .section-copy>p:last-child {
  color:#aebbd0
}

.responsibility-grid {
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(520px,1fr);
  gap:96px;
  align-items:start
}

.section-copy {
  position:sticky;
  top:190px
}

.section-copy h2 {
  max-width:590px;
  margin:0 0 26px;
  font-size:clamp(42px,4.5vw,64px);
  font-weight:600
}

.section-copy>p:last-child {
  max-width:530px;
  color:var(--muted);
  font-size:17px
}

.delivery-steps {
  margin:0;
  padding:0;
  list-style:none
}

.delivery-steps li {
  display:grid;
  grid-template-columns:54px 1fr;
  gap:26px;
  min-height:132px;
  padding:30px 32px;
  border:1px solid #29405d;
  border-radius:22px;
  background:#0b1d34;
  transition:border-color .25s ease,background .25s ease,transform .25s ease
}

.delivery-steps li+li {
  margin-top:14px
}

.delivery-steps li:hover {
  border-color:#3b75c7;
  background:#102846;
  transform:translateX(-6px)
}

.delivery-steps span {
  color:var(--blue-2);
  font-size:11px;
  font-weight:700
}

.delivery-steps h3 {
  margin:0 0 8px;
  font-size:22px
}

.delivery-steps p {
  margin:0;
  color:#aebbd0
}

.client-input {
  background:#edf3ff
}

.client-input-grid {
  display:grid;
  grid-template-columns:minmax(350px,.72fr) minmax(0,1fr);
  gap:34px
}

.client-input-panel {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:550px;
  padding:52px;
  border-radius:30px;
  background:var(--blue);
  box-shadow:0 26px 70px rgba(23,105,255,.18)
}

.client-input-panel h2 {
  max-width:500px;
  margin:0 0 22px;
  color:#fff;
  font-size:clamp(42px,4.2vw,62px)
}

.client-input-panel .eyebrow {
  color:#dce9ff
}

.client-input-panel>p:last-child {
  margin:0;
  color:#e8f0ff;
  font-size:17px
}

.input-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}

.input-list article {
  min-height:268px;
  padding:32px;
  border:1px solid #d5e0f2;
  border-radius:26px;
  background:rgba(255,255,255,.78);
  transition:transform .25s ease,box-shadow .25s ease
}

.input-list article:hover {
  transform:translateY(-4px);
  box-shadow:0 20px 44px rgba(7,20,38,.09)
}

.input-list span,
.deliverable-card span,
.project-list span {
  color:var(--blue);
  font-size:11px;
  font-weight:700
}

.input-list h3 {
  margin:54px 0 12px;
  font-size:22px
}

.input-list p {
  margin:0;
  color:var(--muted)
}

.deliverables {
  background:var(--paper)
}

.deliverable-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px
}

.deliverable-card {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:176px;
  padding:25px 27px;
  border:1px solid var(--line);
  border-radius:22px;
  background:rgba(255,255,255,.66);
  transition:border-color .25s ease,background .25s ease,transform .25s ease
}

.deliverable-card:hover {
  border-color:#9ebbea;
  background:#edf3ff;
  transform:translateY(-3px)
}

.deliverable-card h3 {
  max-width:280px;
  margin:36px 0 0;
  font-size:19px;
  letter-spacing:-.025em
}

.typical-projects {
  background:#e8f0ff
}

.typical-grid {
  display:grid;
  grid-template-columns:minmax(350px,.7fr) minmax(0,1fr);
  gap:90px
}

.project-list {
  border-top:1px solid #c8d6ea
}

.project-list article {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:20px;
  align-items:center;
  min-height:76px;
  border-bottom:1px solid #c8d6ea;
  transition:padding .25s ease,background .25s ease
}

.project-list article:hover {
  padding:0 18px;
  background:rgba(255,255,255,.45)
}

.project-list h3 {
  margin:0;
  font-size:19px
}

.technologies {
  background:var(--navy)
}

.technologies h2,
.technologies h3 {
  color:#fff
}

.technologies .section-heading>p {
  color:#aebbd0
}

.technology-groups {
  border-top:1px solid #29405d
}

.technology-group {
  display:grid;
  grid-template-columns:210px 1fr;
  gap:42px;
  padding:30px 0;
  border-bottom:1px solid #29405d
}

.technology-group h3 {
  margin:8px 0 0;
  font-size:21px
}

.technology-group>div {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}

.technology-group span {
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 15px;
  border:1px solid #304b6d;
  border-radius:999px;
  color:#c7d4e7;
  font-size:13px;
  transition:border-color .2s ease,color .2s ease,background .2s ease
}

.technology-group span:hover {
  border-color:var(--blue-2);
  background:#102846;
  color:#fff
}

.delivery-models {
  background:#fff
}

.delivery-model-grid {
  display:grid;
  grid-template-columns:minmax(380px,.7fr) minmax(0,1fr);
  gap:96px;
  align-items:start
}

.model-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px
}

.model-list span {
  display:flex;
  align-items:center;
  min-height:86px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--paper);
  color:var(--navy);
  font-family:var(--font-display);
  font-weight:600;
  transition:border-color .25s ease,background .25s ease,color .25s ease
}

.model-list span:hover {
  border-color:var(--blue);
  background:var(--blue);
  color:#fff
}

.service-cta {
  padding:64px 0;
  background:var(--blue)
}

.service-cta-grid {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  gap:clamp(64px,9vw,150px);
  align-items:center
}

.service-cta-heading {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px
}

.service-cta .eyebrow {
  color:#dce9ff
}

.service-cta h2 {
  max-width:760px;
  margin:0;
  color:#fff;
  font-size:clamp(24px,2.5vw,34px);
  line-height:1.18
}

.service-cta-copy {
  display:grid;
  gap:24px;
  max-width:430px
}

.service-cta-copy p {
  margin:0;
  color:#e7efff;
  font-size:15px;
  line-height:1.6
}

.site-footer {
  padding:54px 0 26px;
  background:#061120;
  color:#8da0ba
}

.footer-top {
  margin-bottom:32px
}

.footer-title {
  margin:0 0 3px;
  color:#fff;
  font-family:var(--font-display);
  font-weight:700
}

.footer-tagline {
  margin:0;
  font-size:12px
}

.footer-nav {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px 44px;
  max-width:560px;
  margin-bottom:38px;
  color:#d4deec;
  font-size:13px;
  font-weight:600
}

.footer-nav a:hover,
.footer-legal a:hover {
  color:#fff
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:30px;
  padding-top:20px;
  border-top:1px solid #22324a;
  font-size:11px
}

.footer-legal {
  display:flex;
  gap:24px
}

html[data-theme="dark"] {
  --paper:#071426;
  --white:#0d2037;
  --graphite:#d8e1ed;
  --muted:#98a8bd;
  --line:#28405d;
  --navy:#f6f8fb;
  --navy-2:#dce7f6
}

html[data-theme="dark"] body {
  background:#071426;
  color:#d8e1ed
}

html[data-theme="dark"] .site-header.scrolled {
  background:rgba(7,20,38,.9)
}

html[data-theme="dark"] .site-nav {
  color:#c5d1e0
}

html[data-theme="dark"] .theme-switch {
  border-color:#29435f;
  background:rgba(8,25,43,.9);
  box-shadow:0 10px 30px rgba(0,0,0,.22)
}

html[data-theme="dark"] .language-switch {
  border-color:transparent;
  background:transparent;
  box-shadow:none
}

html[data-theme="dark"] .language-switch button,
html[data-theme="dark"] .theme-switch button {
  color:#bac9da
}

html[data-theme="dark"] .language-switch button.is-active,
html[data-theme="dark"] .theme-switch button.is-active {
  color:#fff
}

html[data-theme="dark"] .services-hero {
  background:
    linear-gradient(90deg,rgba(100,163,255,.06) 1px,transparent 1px),
    linear-gradient(rgba(100,163,255,.06) 1px,transparent 1px),
    linear-gradient(145deg,#071426 0%,#0b1d34 58%,#102b4c 100%);
  background-size:64px 64px,64px 64px,auto
}

html[data-theme="dark"] .service-jump {
  background:rgba(7,20,38,.92)
}

html[data-theme="dark"] .client-input {
  background:#08182c
}

html[data-theme="dark"] .input-list article,
html[data-theme="dark"] .deliverable-card {
  border-color:#28405d;
  background:#0d2037
}

html[data-theme="dark"] .input-list article:hover,
html[data-theme="dark"] .deliverable-card:hover {
  border-color:#3d6fac;
  background:#102846
}

html[data-theme="dark"] .typical-projects {
  background:#0b1d34
}

html[data-theme="dark"] .project-list,
html[data-theme="dark"] .project-list article {
  border-color:#29405d
}

html[data-theme="dark"] .project-list article:hover {
  background:#102846
}

html[data-theme="dark"] .delivery-models {
  background:#08182c
}

html[data-theme="dark"] .model-list span {
  border-color:#28405d;
  background:#0d2037;
  color:#f6f8fb
}

html[data-theme="dark"] .model-list span:hover {
  background:var(--blue);
  color:#fff
}

html[data-theme="dark"] .responsibility,
html[data-theme="dark"] .technologies {
  background:#050f1e
}

@media(max-width:1100px) {
  .site-nav {
    gap:15px
  }

  .brand-logo {
    width:168px
  }

  .services-hero-grid {
    gap:54px
  }

  .service-intro-grid {
    grid-template-columns:1fr;
    gap:38px
  }

  .service-definition {
    grid-column:auto;
    padding-top:0
  }

  .responsibility-grid,
  .typical-grid,
  .delivery-model-grid {
    gap:54px
  }

  .service-cta-grid {
    grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
    gap:56px
  }
}

@media(max-width:800px) {
  .site-header {
    position:fixed;
    padding:12px 0 0
  }

  .site-header.scrolled {
    border-color:transparent;
    background:transparent;
    backdrop-filter:none
  }

  .nav-wrap {
    position:relative;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:auto auto;
    gap:8px 10px;
    height:148px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:22px;
    background:rgba(255,255,255,.92);
    box-shadow:0 16px 46px rgba(7,20,38,.08);
    backdrop-filter:blur(16px)
  }

  html[data-theme="dark"] .nav-wrap {
    background:rgba(7,20,38,.94)
  }

  .brand-logo {
    width:202px;
    height:72px
  }

  .mobile-nav-actions {
    display:contents
  }

  .mobile-project-cta {
    display:inline-flex;
    align-self:center;
    min-height:52px;
    padding:0 16px;
    font-size:14px
  }

  .mobile-nav-tools {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:1fr 48px 1fr;
    align-items:center
  }

  .language-switch-mobile {
    justify-self:start
  }

  .theme-switch-mobile {
    justify-self:end
  }

  .menu-toggle {
    position:relative;
    display:block;
    justify-self:center;
    width:44px;
    height:42px;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer
  }

  .menu-toggle span {
    position:absolute;
    left:8px;
    width:28px;
    height:2px;
    background:var(--navy);
    transition:transform .25s ease,opacity .2s ease,top .25s ease
  }

  .menu-toggle span:nth-child(1) {
    top:12px
  }

  .menu-toggle span:nth-child(2) {
    top:20px
  }

  .menu-toggle span:nth-child(3) {
    top:28px
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    top:20px;
    transform:rotate(45deg)
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity:0
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    top:20px;
    transform:rotate(-45deg)
  }

  .site-nav {
    position:fixed;
    top:172px;
    right:16px;
    left:16px;
    z-index:99;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    max-height:calc(100vh - 188px);
    padding:18px 24px;
    overflow:auto;
    border:1px solid var(--line);
    border-radius:24px;
    background:var(--white);
    box-shadow:0 24px 70px rgba(7,20,38,.18);
    opacity:0;
    visibility:hidden;
    transform:translateY(-12px);
    transition:opacity .25s ease,transform .25s ease,visibility .25s
  }

  .site-nav.open {
    opacity:1;
    visibility:visible;
    transform:none
  }

  .site-nav>a:not(.nav-cta) {
    padding:15px 4px;
    border-bottom:1px solid var(--line);
    font-size:17px
  }

  .site-nav>a:not(.nav-cta)::after {
    display:none
  }

  .site-nav .language-switch-desktop,
  .site-nav .theme-switch-desktop-nav,
  .site-nav .nav-cta {
    display:none
  }

  .services-hero {
    padding:210px 0 48px;
    background-size:38px 38px,38px 38px,auto
  }

  .services-hero-grid {
    grid-template-columns:1fr;
    gap:42px
  }

  .services-hero h1 {
    font-size:clamp(44px,13vw,62px)
  }

  .services-hero-summary p {
    font-size:17px
  }

  .services-hero-summary a {
    margin-left:0
  }

  .service-position {
    margin-top:54px
  }

  .service-jump {
    top:172px
  }

  .service-jump-inner {
    gap:24px;
    min-height:54px
  }

  .service-jump a {
    padding:17px 0;
    font-size:11px
  }

  .service-intro-grid,
  .responsibility-grid,
  .client-input-grid,
  .typical-grid,
  .delivery-model-grid {
    grid-template-columns:1fr
  }

  .service-intro-grid {
    gap:28px
  }

  .service-number {
    font-size:25px
  }

  .service-title h2,
  .section-copy h2,
  .client-input-panel h2 {
    font-size:40px
  }

  .service-definition {
    grid-column:auto;
    padding-top:4px
  }

  .section-copy {
    position:static
  }

  .responsibility-grid,
  .typical-grid,
  .delivery-model-grid {
    gap:44px
  }

  .delivery-steps li {
    grid-template-columns:38px 1fr;
    min-height:0;
    padding:24px 20px
  }

  .delivery-steps li:hover {
    transform:none
  }

  .client-input-panel {
    min-height:430px;
    padding:32px 26px;
    border-radius:24px
  }

  .input-list {
    grid-template-columns:1fr
  }

  .input-list article {
    min-height:200px;
    padding:26px
  }

  .input-list h3 {
    margin-top:38px
  }

  .deliverable-grid {
    grid-template-columns:1fr 1fr;
    gap:10px
  }

  .deliverable-card {
    min-height:150px;
    padding:20px
  }

  .deliverable-card h3 {
    font-size:16px
  }

  .technology-group {
    grid-template-columns:1fr;
    gap:18px;
    padding:26px 0
  }

  .technology-group h3 {
    margin:0
  }

  .technology-group>div {
    gap:8px
  }

  .model-list {
    grid-template-columns:1fr
  }

  .model-list span {
    min-height:70px
  }

  .service-cta {
    padding:52px 0
  }

  .service-cta-grid {
    grid-template-columns:1fr;
    gap:38px
  }

  .service-cta-heading {
    gap:20px
  }

  .service-cta-copy {
    gap:18px;
    max-width:none
  }

  .service-cta h2 {
    font-size:20px
  }

  .footer-nav {
    grid-template-columns:1fr 1fr
  }

  .footer-bottom {
    flex-direction:column
  }
}

@media(max-width:480px) {
  .container {
    width:min(100% - 28px,1180px)
  }

  .nav-wrap {
    width:calc(100% - 28px)
  }

  .brand-logo {
    width:190px
  }

  .mobile-project-cta {
    padding:0 13px;
    font-size:12px
  }

  .services-hero h1 {
    font-size:42px
  }

  .service-title h2,
  .section-copy h2,
  .client-input-panel h2,
  .service-cta h2 {
    font-size:18px
  }

  .deliverable-grid {
    grid-template-columns:1fr
  }

  .deliverable-card {
    min-height:126px
  }

  .project-list article {
    grid-template-columns:38px 1fr
  }

  .project-list h3 {
    font-size:16px
  }
}

@media(prefers-reduced-motion:reduce) {
  .delivery-steps li,
  .deliverable-card,
  .input-list article,
  .project-list article,
  .technology-group span,
  .model-list span {
    transition:none
  }
}

.service-detail {
  position:relative;
  display:none;
  border-top:1px solid var(--line);
  background:var(--paper)
}

.service-detail.is-active-service {
  display:block
}

[data-service-panel][hidden] {
  display:none!important
}

.service-detail.alt {
  background:#edf3ff
}

.service-detail-header {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.55fr);
  gap:74px;
  align-items:end;
  margin-bottom:58px
}

.service-detail-header>div {
  grid-column:1
}

.service-detail-header>p:last-child {
  grid-column:2;
  margin:0;
  color:var(--muted);
  font-size:17px
}

.service-detail-header h2 {
  max-width:820px;
  margin:0;
  font-size:clamp(44px,4.7vw,68px);
  font-weight:600
}

.service-answers {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-bottom:72px
}

.answer-card {
  min-height:310px;
  padding:32px;
  border:1px solid var(--line);
  border-radius:26px;
  background:rgba(255,255,255,.7);
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease
}

.answer-card:hover {
  border-color:#9ebbea;
  transform:translateY(-4px);
  box-shadow:0 20px 44px rgba(7,20,38,.08)
}

.answer-card h3 {
  margin:44px 0 15px;
  font-size:23px
}

.answer-card>p:last-child {
  margin:0;
  color:var(--muted)
}

.service-note {
  max-width:950px;
  margin:-38px 0 64px auto;
  padding:20px 24px;
  border-left:3px solid var(--blue);
  background:rgba(23,105,255,.08);
  color:var(--muted)
}

.service-content-block {
  padding:46px;
  border-radius:30px;
  background:var(--navy)
}

.block-heading {
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:42px;
  margin-bottom:38px
}

.block-heading h3 {
  max-width:720px;
  margin:0;
  color:#fff;
  font-size:clamp(30px,3.2vw,44px)
}

.item-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px
}

.item-grid span {
  display:flex;
  align-items:center;
  min-height:62px;
  padding:15px 18px;
  border:1px solid #29405d;
  border-radius:16px;
  background:#0b1d34;
  color:#d9e4f2;
  font-size:14px;
  transition:border-color .2s ease,background .2s ease
}

.item-grid span:hover {
  border-color:#4a7dbe;
  background:#102846
}

.detail-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:16px
}

.detail-panel {
  padding:38px;
  border:1px solid var(--line);
  border-radius:26px;
  background:rgba(255,255,255,.62)
}

.detail-panel ul {
  margin:26px 0 0;
  padding:0;
  list-style:none
}

.detail-panel li {
  padding:13px 0;
  border-bottom:1px solid var(--line);
  color:var(--navy);
  font-weight:500
}

.detail-panel li:last-child {
  border-bottom:0
}

.detail-panel dl {
  margin:26px 0 0
}

.detail-panel dl>div {
  padding:13px 0;
  border-bottom:1px solid var(--line)
}

.detail-panel dl>div:last-child {
  border-bottom:0
}

.detail-panel dt {
  margin-bottom:4px;
  color:var(--navy);
  font-family:var(--font-display);
  font-size:14px;
  font-weight:700
}

.detail-panel dd {
  margin:0;
  color:var(--muted);
  font-size:14px
}

.coverage-copy {
  margin:20px 0 0;
  color:var(--muted)
}

.detail-models {
  margin-top:52px;
  padding-top:34px;
  border-top:1px solid var(--line)
}

.detail-models>div {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px
}

.detail-models span {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:9px 17px;
  border:1px solid #aebfd7;
  border-radius:999px;
  color:var(--navy);
  font-size:12px;
  font-weight:600;
  transition:border-color .2s ease,background .2s ease,color .2s ease
}

.detail-models span:hover {
  border-color:var(--blue);
  background:var(--blue);
  color:#fff
}

.engagements {
  margin-top:16px;
  padding:42px;
  border-radius:28px;
  background:#e8f0ff
}

.engagements>div {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin-top:28px
}

.engagements article {
  min-height:170px;
  padding:28px;
  border:1px solid #c8d6ea;
  border-radius:20px;
  background:rgba(255,255,255,.55)
}

.engagements article:last-child {
  grid-column:1 / -1
}

.engagements h3 {
  margin:0 0 10px;
  font-size:19px
}

.engagements p {
  margin:0;
  color:var(--muted)
}

.technology-coverage {
  margin-top:0
}

.delivery-steps li {
  grid-template-columns:1fr
}

.delivery-steps>li>span,
.input-list article>span,
.deliverable-card>span,
.project-list span {
  display:none
}

.input-list h3 {
  margin-top:26px
}

.deliverable-card {
  justify-content:center
}

.deliverable-card h3 {
  margin:0
}

.project-list article {
  grid-template-columns:1fr
}

html[data-theme="dark"] .service-detail {
  background:#071426
}

html[data-theme="dark"] .service-detail.alt {
  background:#0b1d34
}

html[data-theme="dark"] .answer-card,
html[data-theme="dark"] .detail-panel {
  border-color:#28405d;
  background:#0d2037
}

html[data-theme="dark"] .answer-card:hover {
  border-color:#3d6fac;
  background:#102846
}

html[data-theme="dark"] .detail-panel li,
html[data-theme="dark"] .detail-panel dl>div {
  border-color:#28405d
}

html[data-theme="dark"] .service-content-block {
  background:#050f1e
}

html[data-theme="dark"] .service-note {
  background:#102846
}

html[data-theme="dark"] .detail-models span {
  border-color:#355372;
  color:#dce7f6
}

html[data-theme="dark"] .engagements {
  background:#102846
}

html[data-theme="dark"] .engagements article {
  border-color:#355372;
  background:#0d2037
}

@media(max-width:1000px) {
  .service-detail-header {
    grid-template-columns:1fr;
    gap:24px
  }

  .service-detail-header>div,
  .service-detail-header>p:last-child {
    grid-column:auto
  }

  .service-answers {
    grid-template-columns:1fr
  }

  .answer-card {
    min-height:0
  }

  .answer-card h3 {
    margin-top:28px
  }

  .item-grid {
    grid-template-columns:repeat(2,1fr)
  }
}

@media(max-width:800px) {
  .service-detail-header {
    margin-bottom:42px
  }

  .service-detail-header h2 {
    font-size:40px
  }

  .service-answers {
    margin-bottom:50px
  }

  .answer-card {
    padding:26px
  }

  .service-content-block {
    padding:28px 20px;
    border-radius:24px
  }

  .block-heading {
    grid-template-columns:1fr;
    gap:12px
  }

  .block-heading h3 {
    font-size:30px
  }

  .item-grid {
    grid-template-columns:1fr
  }

  .item-grid span {
    min-height:54px
  }

  .detail-columns {
    grid-template-columns:1fr
  }

  .detail-panel {
    padding:28px 22px
  }

  .engagements {
    padding:28px 20px
  }

  .engagements>div {
    grid-template-columns:1fr
  }

  .engagements article:last-child {
    grid-column:auto
  }

  .detail-models>div {
    justify-content:center
  }

  .detail-models span {
    justify-content:center;
    text-align:center
  }

  .service-note {
    margin:-18px 0 48px
  }
}

.service-jump {
  width:min(1180px,calc(100% - 48px))!important
}

.service-jump-shell {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 42px;
  align-items:center;
  min-height:62px;
  padding:0 8px
}

.service-jump-inner {
  width:100%;
  min-height:62px;
  padding:0 8px;
  scroll-behavior:smooth
}

.service-jump-arrow {
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  justify-self:center;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--navy);
  font-size:0;
  cursor:pointer;
  transform:translateY(3px);
  transition:border-color .2s ease,color .2s ease,background .2s ease,opacity .2s ease
}

.service-jump-arrow::before {
  content:"";
  display:block;
  width:7px;
  height:7px;
  border-top:1.8px solid currentColor;
  border-right:1.8px solid currentColor;
  border-radius:1px
}

.service-jump-arrow-left::before {
  transform:rotate(-135deg)
}

.service-jump-arrow-right::before {
  transform:rotate(45deg)
}

.service-jump-arrow:hover,
.service-jump-arrow:focus-visible {
  background:transparent;
  color:var(--blue);
  outline:0
}

.service-jump-arrow.is-unavailable {
  visibility:hidden;
  opacity:0;
  pointer-events:none
}

.service-jump-select-wrap {
  display:none
}

html[data-theme="dark"] .service-jump-arrow {
  color:#dce7f6
}

@media(max-width:800px) {
  .service-jump {
    width:min(1180px,calc(100% - 28px))!important
  }

  .service-jump-shell {
    display:block;
    min-height:64px;
    padding:8px
  }

  .service-jump-inner,
  .service-jump-arrow {
    display:none
  }

  .service-jump-select-wrap {
    display:block
  }

  .service-jump-select-wrap>span {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap
  }

  .service-jump-select {
    width:100%;
    height:48px;
    padding:0 44px 0 16px;
    border:1px solid var(--line);
    border-radius:13px;
    background:var(--paper);
    color:var(--navy);
    font:600 14px/1 var(--font-display);
    cursor:pointer
  }

  html[data-theme="dark"] .service-jump-select {
    border-color:#355372;
    background:#102846;
    color:#fff
  }
}

@media(prefers-reduced-motion:reduce) {
  .service-jump {
    transition:none
  }

  .service-jump-inner {
    scroll-behavior:auto
  }

  .service-jump-arrow {
    transition:none
  }
}

@media(min-width:1101px) {
  .service-intro-grid {
    align-items:center
  }

  .service-definition {
    padding-top:0
  }
}
