/* A shared family of contrasting page introductions, each with its own artwork. */
.brand-stage {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#09172f;
  color:#fff
}
.brand-stage::before,.brand-stage::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:-1
}
.brand-stage::before {
  background:radial-gradient(ellipse at 89% 45%,#254dba70,transparent 56%),linear-gradient(115deg,#071324,#102a58)
}
.brand-stage::after {
  background-image:linear-gradient(#91b6ff0c 1px,transparent 1px),linear-gradient(90deg,#91b6ff0c 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:linear-gradient(90deg,transparent 15%,#000)
}
.brand-stage--industries::before {
  background:radial-gradient(ellipse at 86% 30%,#3285ff,transparent 65%),linear-gradient(115deg,#102b8c,#2153d8 60%,#1363d0)
}
.brand-stage--about::before {
  background:radial-gradient(ellipse at 85% 50%,#294bc170,transparent 52%),linear-gradient(110deg,#101c30,#0b1732)
}
.brand-stage--about::after {
  background:repeating-linear-gradient(130deg,transparent 0 94px,#9bb5ff08 95px 96px);
  mask-image:linear-gradient(90deg,transparent 25%,#000)
}
.brand-stage .brand-stage-inner {
  padding-block:38px 64px;
  border:0
}
.brand-stage .breadcrumb {
  color:#c0cee9;
  flex-wrap:wrap;
  row-gap:5px;
  margin-bottom:45px
}
.brand-stage .breadcrumb a:hover {
  color:#fff;
  text-decoration:underline;
  text-underline-offset:4px
}
.brand-stage-layout,.brand-stage .service-detail-hero {
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);
  gap:46px;
  align-items:center
}
.brand-stage-copy {
  min-width:0
}
.brand-stage .eyebrow {
  color:#c1d4ff;
  font-size:14px;
  letter-spacing:.11em;
  margin-bottom:24px
}
.brand-stage h1,.brand-stage .service-detail-hero h1 {
  font-size:clamp(46px,4.8vw,70px);
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.06em;
  max-width:780px;
  margin-bottom:28px;
  text-wrap:balance
}
.brand-stage .muted-heading {
  color:#9fc1ff
}
.brand-stage--industries .muted-heading {
  color:#b6e7ff
}
.brand-stage p:not(.eyebrow),.brand-stage .service-detail-hero p:not(.eyebrow) {
  color:#d0ddf4;
  font-size:20px;
  line-height:1.75;
  max-width:620px;
  margin-bottom:27px
}
.brand-stage--industries p:not(.eyebrow) {
  color:#e0eaff
}
.brand-stage .button {
  margin-top:5px;
  background:#f8f6f2;
  color:#14213d;
  border-color:#f8f6f2
}
.brand-stage .button:hover {
  background:#dce8ff;
  border-color:#dce8ff
}
.brand-stage a:focus-visible {
  outline-color:#c4e1ff
}
.brand-stage-note {
  display:flex;
  gap:16px;
  align-items:center;
  border-top:1px solid #adc9ff35;
  margin-top:46px;
  padding-top:20px;
  color:#cfddf5;
  font-size:14px;
  letter-spacing:.035em
}
.brand-stage-note>span:last-child {
  margin-left:auto;
  text-align:right
}
.brand-stage-note .note-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#a5d1ff;
  box-shadow:0 0 18px #a5d1ff90;
  flex:none
}
.brand-visual {
  position:relative;
  width:100%;
  max-width:500px;
  aspect-ratio:1;
  justify-self:center;
  color:#fff;
  user-select:none;
  animation:brand-arrive .9s ease-out both
}
.brand-visual-art {
  display:block;
  width:100%;
  height:100%;
  transition:transform .7s ease
}
.brand-visual:hover .brand-visual-art {
  transform:rotate(4deg) scale(1.025)
}
.visual-center {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  pointer-events:none
}
.visual-center small {
  font-size:14px;
  font-weight:500;
  margin-bottom:10px;
  color:#c1d4ff
}
.visual-center strong {
  font-family:var(--heading);
  font-size:clamp(21px,2.1vw,30px);
  letter-spacing:-.05em;
  line-height:1.15
}
.visual-tag {
  position:absolute;
  display:flex;
  align-items:center;
  gap:20px;
  white-space:nowrap;
  font-size:15px;
  font-weight:500;
  padding:12px 17px;
  background:#142b56;
  border:1px solid #85a9ff70;
  border-radius:8px;
  box-shadow:0 14px 30px #03112b55
}
.visual-tag>span {
  color:#a6ceff
}
.visual-tag--top { top:10%; left:50%; transform:translateX(-50%) }
.visual-tag--right { top:50%; right:-1%; transform:translateY(-50%) }
.visual-tag--bottom { bottom:9%; left:50%; transform:translateX(-50%) }
.visual-tag--left { top:50%; left:-1%; transform:translateY(-50%) }
.network-label {
  position:absolute;
  padding:10px 17px;
  border:1px solid #bbdcff60;
  border-radius:50px;
  background:#153aaf;
  font-size:15px;
  font-weight:500;
  box-shadow:0 10px 28px #0c28893b
}
.network-label--one { top:14%; left:0 }
.network-label--two { right:0; top:18% }
.network-label--three { bottom:13%; left:6% }
.brand-visual--about .visual-center strong {
  font-size:clamp(20px,1.8vw,27px)
}
.visual-signature {
  position:absolute;
  inset:auto 0 3%;
  text-align:center;
  color:#c1d4ff;
  font-size:14px
}
@keyframes brand-arrive {
  from { opacity:0; transform:translateY(18px) }
  to { opacity:1; transform:translateY(0) }
}
.collection-heading {
  display:flex;
  gap:24px;
  align-items:end;
  justify-content:space-between;
  margin-bottom:40px
}
.collection-heading h2 {
  font-size:clamp(32px,3vw,44px);
  margin-bottom:0
}
.collection-heading .eyebrow {
  margin-bottom:14px
}
.collection-heading>p {
  max-width:320px;
  margin:0;
  font-size:18px
}
.services-index .service-card-featured {
  background:linear-gradient(140deg,#254fdf,#153388);
  border-color:#254fdf;
  color:#fff
}
.services-index .service-card-featured>p {
  color:#e0e8ff
}
.services-index .service-card-featured .card-index {
  color:#c7d7ff
}
.services-index .service-card-featured .card-link,.services-index .service-card-featured .service-icon {
  border-color:#b9ceff65
}
.industry-card>.arrow {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#e1e9ff;
  color:#244cd0;
  transition:background .2s,color .2s
}
.industry-card:hover>.arrow {
  background:#315bff;
  color:#fff
}
.about-graphic--blue {
  background:linear-gradient(140deg,#234ae3,#142d88)
}
.about-graphic--blue .eyebrow,.about-graphic--blue .about-graphic-bottom {
  color:#e3ebff
}
.about-graphic--blue::before,.about-graphic--blue::after {
  border-color:#b2d3ff66
}
.cta-band {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(110deg,#101f43,#19367d 66%,#315bdf)
}
.cta-band::before {
  content:'';
  position:absolute;
  z-index:-1;
  width:660px;
  height:350px;
  right:-170px;
  top:-95px;
  border:1px solid #a7caff38;
  border-radius:50%;
  box-shadow:0 0 0 38px #adcfff0b,0 0 0 77px #adcfff08,0 0 0 118px #adcfff06;
  transform:rotate(-35deg)
}
.cta-band p {
  color:#d0dcf2
}
/* FAQ becomes a clear destination within the homepage. */
.faq-contrast {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#0b1934;
  color:#fff;
  padding-block:105px
}
.faq-contrast::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(ellipse at 5% 45%,#315bff35,transparent 55%)
}
.faq-contrast .faq-layout {
  gap:80px
}
.faq-contrast .eyebrow {
  color:#bacfff
}
.faq-contrast .muted-heading {
  color:#9fc1ff
}
.faq-contrast h2 {
  font-size:clamp(40px,4vw,58px)
}
.faq-contrast .faq-intro {
  color:#d0dcf2;
  max-width:350px
}
.faq-contrast .text-link {
  border-color:#9bb5ff75;
  font-size:18px
}
.faq-contrast a:focus-visible {
  outline-color:#c1dbff
}
.faq-emblem {
  display:block;
  margin-top:40px;
  width:120px;
  height:120px;
  color:#9bb5ff;
  opacity:.9
}
.faq-contrast .faq-list {
  border:0;
  display:flex;
  flex-direction:column;
  gap:12px
}
.faq-contrast .faq-list details {
  border:1px solid #c8d7f245;
  border-radius:10px;
  background:#13274b;
  color:#f4f7ff;
  overflow:hidden;
  transition:background .2s,border-color .2s
}
.faq-contrast .faq-list details:hover {
  border-color:#8eafff
}
.faq-contrast .faq-list details[open] {
  background:#f8f6f2;
  color:#14213d;
  border-color:#f8f6f2
}
.faq-contrast .faq-list summary {
  padding:23px 25px;
  font-size:18px;
  gap:20px
}
.faq-contrast .faq-list summary::after {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border:1px solid #aac6ff60;
  border-radius:50%;
  color:#a8c8ff
}
.faq-contrast .faq-list details[open] summary::after {
  color:#3153d6;
  border-color:#3153d650
}
.faq-contrast .faq-list summary:focus-visible {
  outline:3px solid #7298ff;
  outline-offset:-5px
}
.faq-contrast .faq-list details p {
  color:#46536b;
  max-width:none;
  font-size:18px;
  padding:0 25px 25px;
  line-height:1.75
}
@media(min-width:1001px) {
  .brand-stage-layout { min-height:435px }
}
@media(max-width:1150px) and (min-width:1001px) {
  .brand-stage-layout,.brand-stage .service-detail-hero { gap:28px; grid-template-columns:1.2fr 1fr }
  .visual-tag { gap:10px; padding:10px 12px; font-size:14px }
  .visual-center strong { font-size:23px }
  .visual-center small { font-size:14px }
  .network-label { font-size:14px; padding:9px 12px }
}
@media(max-width:1000px) {
  .brand-stage-layout,.brand-stage .service-detail-hero { grid-template-columns:1fr; gap:35px }
  .brand-stage .brand-stage-inner { padding-block:28px 35px }
  .brand-stage .breadcrumb { margin-bottom:35px }
  .brand-stage h1,.brand-stage .service-detail-hero h1 { font-size:clamp(43px,7.4vw,66px); max-width:750px }
  .brand-stage p:not(.eyebrow),.brand-stage .service-detail-hero p:not(.eyebrow) { font-size:20px; max-width:660px }
  .brand-visual { max-width:440px }
  .visual-center strong { font-size:28px }
  .brand-visual--about .visual-center strong { font-size:24px }
  .brand-stage-note { margin-top:30px }
  .faq-contrast { padding-block:75px }
  .faq-contrast .faq-layout { grid-template-columns:1fr; gap:36px }
  .faq-emblem { display:none }
  .faq-contrast .faq-intro { max-width:520px }
}
@media(max-width:600px) {
  .brand-stage h1,.brand-stage .service-detail-hero h1 { font-size:43px }
  .brand-stage .eyebrow { font-size:14px; letter-spacing:.07em }
  .brand-stage p:not(.eyebrow),.brand-stage .service-detail-hero p:not(.eyebrow) { font-size:18px }
  .brand-stage .button { width:100%; gap:18px; padding-inline:18px }
  .brand-visual { max-width:370px }
  .visual-center strong { font-size:24px }
  .visual-center small { font-size:14px }
  .visual-tag { font-size:14px; padding:9px 10px; gap:0 }
  .visual-tag>span { display:none }
  .network-label--two { top:14% }
  .network-label { font-size:14px; padding:8px 12px }
  .brand-visual--about .visual-center strong { font-size:21px }
  .visual-signature { font-size:14px; bottom:0 }
  .brand-stage-note { flex-wrap:wrap; gap:10px; font-size:14px; line-height:1.5 }
  .brand-stage-note>span:last-child { width:100%; text-align:left; margin-left:16px }
  .collection-heading { flex-direction:column; align-items:start; gap:20px; margin-bottom:30px }
  .collection-heading>p { max-width:none }
  .faq-contrast { padding-block:62px }
  .faq-contrast h2 { font-size:40px }
  .faq-contrast .faq-list summary { padding:20px 18px; gap:14px; font-size:17px }
  .faq-contrast .faq-list details p { padding:0 18px 23px; font-size:18px }
  .faq-contrast .faq-list summary::after { width:25px; height:25px }
}
@media(max-width:380px) {
  .brand-stage h1,.brand-stage .service-detail-hero h1 { font-size:39px }
  .visual-center strong { font-size:20px }
  .visual-center small { font-size:14px }
  .visual-tag { padding:8px 10px; gap:6px }
  .network-label { font-size:14px; padding:7px 9px }
  .brand-visual--about .visual-center strong { font-size:18px }
}
@media(prefers-reduced-motion:reduce) {
  .brand-visual { animation:none }
  .brand-visual:hover .brand-visual-art { transform:none }
}

/* A distinct, high-contrast destination for every inquiry form. */
.contact-section {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:radial-gradient(ellipse at 90% 15%,#386aff 0%,transparent 55%),linear-gradient(125deg,#10265c,#1c43bd 65%,#244bcd);
  color:#fff;
  border-top:1px solid #7098ff55
}
.contact-section::before,.contact-section::after {
  content:'';
  position:absolute;
  z-index:-1;
  pointer-events:none;
  border:1px solid #b5d1ff25;
  border-radius:50%;
  width:920px;
  height:620px;
  left:-490px;
  bottom:-270px;
  transform:rotate(-35deg)
}
.contact-section::after {
  width:1100px;
  height:780px;
  left:-560px;
  bottom:-350px
}
.contact-copy h2 {
  color:#fff
}
.contact-copy h2 em {
  color:#b8dcff
}
.contact-copy .eyebrow,.contact-copy>p:not(.eyebrow),.contact-promise p {
  color:#d9e5ff
}
.contact-copy .status-dot {
  background:#b8dcff;
  box-shadow:0 0 0 4px #b8dcff25
}
.contact-promise>.arrow {
  color:#b8dcff
}
.contact-promise strong {
  color:#fff;
  font-size:17px
}
.contact-copy .phone-link {
  color:#d9e5ff;
  font-size:16px
}
.contact-copy .phone-link strong {
  color:#fff;
  font-weight:700
}
.contact-copy a:focus-visible {
  outline-color:#d1e7ff
}
.contact-card {
  position:relative;
  background:#fff;
  color:#14213d;
  border:1px solid #dce7ff;
  border-top:6px solid #9bc3ff;
  border-radius:18px;
  box-shadow:0 28px 70px #06164155,0 0 0 7px #b9d2ff12
}
.contact-card .form-progress li {
  color:#52617d
}
.contact-card .form-progress li>span {
  width:34px;
  height:34px;
  border-color:#9bafd4;
  background:#fff;
  color:#52617d;
  font-weight:700
}
.contact-card .form-progress li.is-current {
  color:#244bcd
}
.contact-card .form-progress li.is-current>span {
  background:#315bff;
  border-color:#315bff;
  color:#fff;
  box-shadow:0 0 0 4px #315bff15
}
.contact-card .form-progress li.is-complete>span {
  background:#173a9e;
  border-color:#173a9e;
  color:#fff
}
.contact-card .progress-track {
  height:4px;
  background:#e0e9fb
}
.contact-card .progress-track>span {
  background:#315bff
}
.contact-card .form-step legend {
  font-size:28px;
  color:#14213d
}
.contact-card .step-description {
  color:#52617d
}
.contact-card .goal-option {
  border:1px solid #9baed2;
  border-radius:10px;
  background:#fff;
  color:#14213d;
  transition:background .18s,border-color .18s,box-shadow .18s
}
.contact-card .goal-icon {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:8px;
  color:#2a51dc;
  background:#e9efff
}
.contact-card .goal-option>span:not(.goal-icon):not(.radio-mark) {
  font-weight:700
}
.contact-card .radio-mark {
  width:18px;
  height:18px;
  border-color:#7c90b6;
  background:#fff
}
.contact-card .goal-option:hover {
  border-color:#315bff;
  background:#f0f4ff;
  box-shadow:0 0 0 1px #315bff
}
.contact-card .goal-option:has(input:checked) {
  border-color:#284fe0;
  background:#284fe0;
  color:#fff;
  box-shadow:0 6px 16px #284fe025
}
.contact-card .goal-option:has(input:checked) .goal-icon {
  color:#fff;
  background:#ffffff24
}
.contact-card .goal-option:has(input:checked) .radio-mark {
  border:5px solid #fff;
  background:#284fe0
}
.contact-card .goal-option:has(input:focus-visible) {
  outline:3px solid #315bff;
  outline-offset:4px
}
.contact-card .field input,.contact-card .field select,.contact-card .field textarea {
  background:#fff;
  border-color:#879ec6;
  border-radius:8px
}
.contact-card .field input:focus-visible,.contact-card .field select:focus-visible,.contact-card .field textarea:focus-visible {
  border-color:#315bff;
  outline:3px solid #315bff30;
  outline-offset:2px
}
.contact-card .field [aria-invalid=true] {
  border-color:#b94d3d
}
.contact-card .form-controls .button {
  min-height:58px;
  border-radius:9px;
  background:#315bff;
  color:#fff;
  box-shadow:0 8px 18px #315bff26
}
.contact-card .form-controls .button:hover {
  background:#2347d6
}
.contact-card .form-back {
  color:#173a9e;
  font-weight:700
}
.contact-card .form-note,.contact-card .form-privacy {
  color:#52617d
}
@media(max-width:600px) {
  .contact-card { border-radius:15px }
  .contact-card .form-step legend { font-size:25px }
  .contact-copy .phone-link strong { display:inline-block; margin-left:0 }
  .contact-copy .phone-link { display:flex; flex-wrap:wrap; gap:4px 9px }
}

