/* Nuanced: shared, buildless theme. */
:root{--ink:#20232d;--muted:#616573;--purple:#6354b5;--purple-dark:#4e409b;--lavender:#f2f0f9;--line:#dedfe7;--paper:#fff;--radius:18px;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:5px;border-radius:3px}
::selection{background:#ded7ff;color:var(--ink)}
.container{width:min(var(--max),calc(100% - 80px));margin-inline:auto}
.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:10px 20px;background:var(--ink);color:white;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:relative;z-index:20;background:#fff;border-bottom:1px solid #ececf1}
.header-inner{min-height:100px;display:flex;justify-content:space-between;align-items:center;gap:32px}
.brand{display:inline-block;flex-shrink:0;line-height:1}
.brand img{width:230px;height:auto}
.primary-nav{display:flex;align-items:center;gap:40px;font-size:15px;font-weight:600}
.primary-nav>a{transition:color .15s}
.primary-nav>a:hover,.primary-nav>a[aria-current=page]{color:var(--purple)}
.primary-nav .nav-contact{display:flex;align-items:center;gap:25px;border:1px solid var(--line);border-radius:6px;padding:10px 17px}
.nav-contact span{font-size:22px;line-height:1}
.nav-toggle{display:none}
.hero{background:linear-gradient(110deg,#f8f7fb 5%,#f1eff9 65%,#e9eefb);overflow:hidden}
.hero-grid{min-height:590px;display:grid;grid-template-columns:1.16fr 1fr;align-items:center;gap:44px;padding-block:64px}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;line-height:1.5;font-weight:700;margin:0 0 23px;color:var(--purple)}
.hero .eyebrow{display:flex;align-items:center;gap:10px}
.status-dot{width:7px;height:7px;background:var(--purple);border-radius:50%;box-shadow:0 0 0 4px #6354b510}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:650;line-height:1.12;letter-spacing:-.045em}
h1{font-size:clamp(44px,4.8vw,66px);margin-bottom:24px}
h2{font-size:clamp(32px,3.4vw,44px);margin-bottom:24px}
h3{font-size:24px;letter-spacing:-.025em}
.accent{color:var(--purple)}
.hero-intro{max-width:490px;font-size:18px;line-height:1.75;color:var(--muted);margin-bottom:30px}
.button-row{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 21px;border-radius:6px;font-size:13px;font-weight:650;line-height:1.5;transition:background .15s,transform .15s}
.button span{font-size:21px;line-height:1}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--purple);color:#fff}
.button-primary:hover{background:var(--purple-dark)}
.button-light{background:#fff;color:var(--ink)}
.button-light:hover{background:#f0edf9}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:650;white-space:nowrap}
.text-link:hover{color:var(--purple)}
.text-link span{font-size:19px}
.hero-location{font-size:11px;color:var(--muted);margin:28px 0 0;letter-spacing:.01em}
.hero-art{position:relative;min-width:0;aspect-ratio:1;display:grid;place-items:center;isolation:isolate}
.hero-art:before{content:"";position:absolute;inset:9%;background:linear-gradient(135deg,#dcd5f5,#ccdff1);border-radius:50%;z-index:-2}
.hero-art img{width:72%;max-height:350px;object-fit:contain;filter:drop-shadow(0 18px 22px #3f45691a)}
.art-grid{position:absolute;inset:0;background-image:radial-gradient(#9e9ab545 .8px,transparent .8px);background-size:20px 20px;mask-image:radial-gradient(ellipse,black,transparent 72%);z-index:-3}
.art-orbit{position:absolute;border:1px solid #a5a0c63b;border-radius:50%;z-index:-1}
.orbit-one{inset:0;transform:rotate(-22deg) scaleY(.69)}
.orbit-two{inset:4%;transform:rotate(42deg) scaleY(.8)}
.art-label{position:absolute;z-index:1;font-size:11px;font-weight:600;padding:8px 17px;background:#ffffffed;border:1px solid #fff;border-radius:25px;box-shadow:0 5px 16px #35355308}
.label-software{left:3%;top:21%}.label-marketing{right:0;top:43%}.label-cloud{left:14%;bottom:17%}
.art-caption{position:absolute;bottom:0;text-transform:uppercase;letter-spacing:.16em;font-size:9px;color:#656276}
.expertise-strip{border-bottom:1px solid var(--line)}
.expertise-inner{display:flex;gap:50px;justify-content:space-between;align-items:center;padding-block:25px}
.expertise-inner>p{margin:0;font-size:12px;line-height:1.7;color:var(--muted);flex-shrink:0}
.expertise-inner strong{font-weight:600;color:var(--ink)}
.expertise-list{display:flex;align-items:center;justify-content:space-between;gap:40px;flex:1;max-width:800px;font-size:14px;font-weight:600;letter-spacing:-.02em;color:#535764}
.section{padding-block:88px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:42px}
.section-heading h2{margin-bottom:0}
.section-heading>p{max-width:390px;color:var(--muted);font-size:15px;margin-bottom:3px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-card{padding:29px 28px 25px;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;background:#fff;transition:border-color .2s,box-shadow .2s}
.service-card:hover{border-color:#b5aadf;box-shadow:0 8px 22px #36304f06}
.service-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:37px}
.service-number{font-size:10px;font-weight:650;letter-spacing:.12em;color:var(--muted)}
.service-icon{width:38px;height:38px;fill:none;stroke:var(--purple);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.service-card h3{font-size:24px;line-height:1.22;margin-bottom:19px}
.service-card p{font-size:14px;color:var(--muted);margin-bottom:30px}
.card-link{margin-top:auto;border-top:1px solid #ebebf0;padding-top:19px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:650}
.card-link span{font-size:22px;color:var(--purple);line-height:1}
.card-link:hover{color:var(--purple)}
.partner-section{background:#f7f7f9}
.partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.large-copy{font-size:17px;color:var(--muted);line-height:1.85;margin-bottom:24px;max-width:530px}
.principle-list article{display:flex;gap:24px;padding-block:25px;border-bottom:1px solid var(--line)}
.principle-list article:first-child{padding-top:0}
.principle-list article:last-child{border-bottom:0;padding-bottom:0}
.principle-list article>span{font-size:11px;letter-spacing:.1em;color:var(--purple);padding-top:3px}
.principle-list h3{font-size:19px;margin-bottom:10px;letter-spacing:-.02em}
.principle-list p{font-size:14px;color:var(--muted);margin-bottom:0}
.contact-section{padding-block:64px}
.contact-banner{background:#292735;border-radius:var(--radius);padding:48px 50px;display:flex;justify-content:space-between;gap:38px;align-items:center;color:white;position:relative;overflow:hidden}
.contact-banner .eyebrow{color:#c8bdeb;margin-bottom:14px}
.contact-banner h2{font-size:35px;margin-bottom:15px}
.contact-banner p:last-child{color:#c5c3d0;font-size:14px;margin:0}
.contact-banner .button{flex-shrink:0}
.site-footer{border-top:1px solid var(--line);padding-top:47px}
.footer-main{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:40px}
.footer-brand img{width:175px}
.footer-main p:not(.footer-label){font-size:12px;color:var(--muted);margin:17px 0 0}
.footer-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 15px;color:var(--muted)}
.footer-main>div>a:not(.brand),.footer-main>div>.email-address{display:block;font-size:13px;margin-bottom:6px;line-height:1.8}
.email-address{overflow-wrap:anywhere}
.footer-main a:hover,.footer-bottom a:hover{color:var(--purple)}
.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:22px;padding-block:21px;color:var(--muted);font-size:10px}
.footer-bottom small{font-size:inherit}
/* Inner-page components shared with the homepage. */
.page-hero{padding:70px 0;background:linear-gradient(110deg,#f8f7fb,#eeecf7)}
.page-hero h1{max-width:900px;font-size:clamp(40px,4.8vw,62px)}
.page-hero .hero-intro{max-width:680px;margin-bottom:0}
.breadcrumb{display:flex;gap:10px;color:var(--muted);font-size:11px;margin-bottom:30px}
.breadcrumb a:hover{color:var(--purple)}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start}
.prose{color:var(--muted);max-width:650px}
.prose p:last-child{margin-bottom:0}
.prose a{color:var(--purple);text-decoration:underline;text-underline-offset:4px}
.detail-section{padding-block:65px;border-bottom:1px solid var(--line);scroll-margin-top:30px}
.detail-section:last-child{border-bottom:0}
.detail-layout{display:grid;grid-template-columns:70px .9fr 1.1fr;gap:36px;align-items:start}
.detail-index{font-size:13px;color:var(--purple);letter-spacing:.1em;padding-top:10px}
.detail-layout h2{font-size:34px}
.detail-layout .prose{font-size:15px}
.detail-links{display:flex;flex-wrap:wrap;gap:12px 23px;margin-top:25px}
.detail-links a{font-size:12px;font-weight:600;white-space:normal}
.feature-note{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--lavender)}
.feature-note h3{font-size:22px}
.feature-note p{color:var(--muted);font-size:14px;margin-bottom:0}
.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:80px}
.contact-details{display:grid;gap:26px}
.contact-item{border-bottom:1px solid var(--line);padding-bottom:26px}
.contact-item h2{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--purple);margin-bottom:15px}
.contact-item p{font-size:17px;margin-bottom:6px}
.contact-item a:hover{color:var(--purple)}
.contact-item .small-text,.small-text{font-size:13px;color:var(--muted)}
.location-panel{background:var(--lavender);border-radius:var(--radius);padding:40px;scroll-margin-top:25px}
.location-panel h2{font-size:30px}
.location-panel address{font-style:normal;color:var(--muted);margin-bottom:25px}
.location-mark{width:60px;height:60px;stroke:var(--purple);stroke-width:1.5;fill:none;margin-bottom:26px}
.location-panel .button{margin-top:8px}
.location-panel .small-text{margin:27px 0 0}
.page-jump-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:30px}
.page-jump-links a{font-size:13px;color:var(--purple);font-weight:600}
.page-jump-links a:hover{text-decoration:underline;text-underline-offset:4px}
.error-page{text-align:center;padding:110px 0 130px}
.error-page .hero-intro{margin-inline:auto}
.error-page .button-row{justify-content:center}
@media(min-width:1400px){.hero-grid{min-height:630px}}
@media(max-width:1050px){.container{width:calc(100% - 56px)}.hero-grid{gap:25px;min-height:560px}.hero-intro{font-size:16px}.button-row{gap:19px}.button{font-size:12px;padding:14px 16px}.hero-location{font-size:10px}.expertise-list{gap:24px;font-size:12px}.service-card{padding:25px 22px}.service-card h3{font-size:21px}.partner-grid{gap:55px}.primary-nav{gap:28px}.section-heading{gap:40px}.hero-art img{width:77%}.contact-grid{gap:45px}}
@media(max-width:760px){
  html{scroll-padding-top:30px}
  .container{width:calc(100% - 40px)}
  .header-inner{min-height:80px;flex-wrap:wrap;gap:0;padding-block:18px}
  .brand img{width:185px}
  .primary-nav{width:100%;gap:23px;justify-content:space-between;margin-top:20px;font-size:13px}
  .primary-nav .nav-contact{padding:8px 12px;gap:15px}
  .js .nav-toggle{display:flex;min-height:44px;min-width:80px;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-size:12px;color:var(--ink)}
  .nav-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
  .js .primary-nav{display:none}
  .js .primary-nav.is-open{display:flex}
  .hero-grid{grid-template-columns:1fr;gap:30px;padding:49px 0 30px}
  h1{font-size:clamp(41px,7.8vw,58px);letter-spacing:-.05em}
  .hero-intro{max-width:550px;font-size:16px;line-height:1.7}
  .hero-location{font-size:11px;margin-top:22px}
  .hero-art{width:min(100%,360px);justify-self:center}
  .art-caption{font-size:8px}
  .hero-art img{max-height:280px}
  .expertise-inner{display:block;padding-block:23px}
  .expertise-inner>p{display:none}
  .expertise-list{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;font-size:12px}
  .section{padding-block:56px}
  .section-heading{display:block;margin-bottom:30px}
  .section-heading>p{margin-top:22px;max-width:550px}
  h2{font-size:34px}
  .service-grid{grid-template-columns:1fr;gap:16px}
  .service-top{margin-bottom:20px}
  .service-card h3{font-size:26px}
  .service-card h3 br{display:none}
  .service-card p{font-size:15px;max-width:520px;margin-bottom:22px}
  .service-card{padding:28px}
  .card-link{font-size:13px}
  .partner-grid{grid-template-columns:1fr;gap:38px}
  .large-copy{font-size:16px}
  .contact-section{padding-block:40px}
  .contact-banner{padding:35px 28px;display:block}
  .contact-banner h2{font-size:31px}
  .contact-banner .button{margin-top:26px}
  .footer-main{grid-template-columns:1fr 1fr;gap:28px;padding-bottom:30px}
  .footer-main>div:first-child{grid-column:1/-1}
  .footer-brand img{width:165px}
  .footer-main p:not(.footer-label){margin-top:13px}
  .footer-bottom{flex-direction:column;gap:9px;font-size:10px}
  .page-hero{padding:42px 0}
  .page-hero h1{font-size:42px}
  .page-hero .hero-intro{font-size:16px}
  .two-column,.contact-grid{grid-template-columns:1fr;gap:32px}
  .detail-layout{grid-template-columns:1fr;gap:10px}
  .detail-layout h2{font-size:31px;margin-bottom:12px}
  .detail-section{padding-block:40px}
  .detail-layout .prose{font-size:16px}
  .detail-index{padding-top:0}
  .location-panel{padding:30px}
  .page-jump-links{gap:13px 23px}
}
@media(max-width:370px){.container{width:calc(100% - 32px)}.brand img{width:160px}.primary-nav{gap:10px;font-size:12px}.primary-nav .nav-contact{gap:8px}.hero h1{font-size:39px}.button-row{align-items:flex-start;flex-direction:column}.service-card{padding:23px}.footer-main{grid-template-columns:1fr}.footer-main>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}}
/* Detail pages and the preserved service agreement. */
.service-directory{padding-top:35px;border-top:1px solid var(--line);margin-top:35px}
.service-directory ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 35px}
.service-directory a{font-size:14px;color:var(--purple);text-decoration:underline;text-underline-offset:4px}
.legal-layout{max-width:900px;margin-inline:auto;padding-block:60px}
.legal-document{font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.legal-document h2{font-size:25px;line-height:1.3;letter-spacing:-.02em;margin:42px 0 20px}
.legal-document h3{font-size:20px;line-height:1.4;margin-top:28px}
.legal-document p{margin-bottom:17px}
.legal-document ul,.legal-document ol{padding-left:28px;margin-bottom:25px}
.legal-document li{margin-bottom:10px}
.legal-document a{color:var(--purple);text-decoration:underline}
.legal-document b,.legal-document strong{font-weight:650}
.footer-bottom{flex-wrap:wrap}
@media(max-width:760px){.service-directory ul{grid-template-columns:1fr}.legal-layout{padding-block:38px}.legal-document{font-size:15px}.legal-document h2{font-size:23px}}
@media print{.site-header,.site-footer,.skip-link,.nav-toggle,.contact-banner{display:none!important}.page-hero{background:none;padding:20px 0}.page-hero h1{font-size:30px}.container{width:100%}.legal-layout{max-width:none;padding:0}.legal-document{font-size:10pt}.legal-document h2{break-after:avoid}.legal-document p,.legal-document li{orphans:3;widows:3}}


