:root{--ink:#11283a;--navy:#092d42;--teal:#0b5368;--cyan:#20a9c3;--muted:#526778;--line:#d5e3e9;--ice:#eef6f9;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.7;color:var(--ink);background:#fff}h1,h2,h3{line-height:1.13;letter-spacing:-.035em;margin:0 0 24px}h1{font-size:clamp(42px,5vw,70px);font-weight:600}h2{font-size:clamp(30px,3.2vw,44px);font-weight:600}h3{font-size:23px;letter-spacing:-.02em;font-weight:600;margin-bottom:14px}p{margin:0 0 22px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #09748c;outline-offset:4px}img{max-width:100%;height:auto;display:block}.wrap{width:min(1260px,calc(100% - 80px));margin:0 auto}.skip{position:absolute;top:-80px;left:12px;background:#fff;padding:14px;z-index:99}.skip:focus{top:10px}.topbar{background:var(--navy);color:#d6ebf3;font-size:12px}.topbar .wrap{display:flex;justify-content:space-between;gap:20px;padding-top:10px;padding-bottom:10px}.topbar span{letter-spacing:1.3px}.topbar a{font-size:13px}header{background:#fff;border-bottom:1px solid var(--line)}.navigation{display:flex;justify-content:space-between;align-items:center;min-height:96px;gap:35px}.logo{display:inline-block;flex-shrink:0;width:205px}.logo img{width:100%;height:auto}.navigation nav{display:flex;gap:30px;align-items:center;font-size:14px;font-weight:600}.menu{display:none}.button{display:inline-block;background:var(--teal);color:#fff;border:1px solid var(--teal);border-radius:2px;font-size:14px;font-weight:700;padding:15px 23px;text-decoration:none!important;line-height:1.45;transition:background .15s}.button:hover{background:#083d4f}.button.secondary{background:transparent;color:var(--teal);border-color:#98b4c3}.button.secondary:hover{background:#eef7fa}.button.light{background:#fff;color:var(--teal);border-color:#fff}.button.small{padding:12px 18px}.button:disabled{opacity:.7;cursor:wait}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.6px;line-height:1.55;color:var(--teal);margin-bottom:22px}.lead{font-size:20px;line-height:1.6;color:var(--muted);max-width:780px}.hero{background:#edf6fa;padding:70px 0 74px}.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center}.hero h1{font-size:clamp(44px,4.65vw,67px);line-height:1.07}.hero h1 span{color:var(--teal)}.hero .lead{font-size:19px;max-width:500px}.actions{display:flex;flex-wrap:wrap;gap:13px;margin:32px 0}.hero-sub{font-size:11px;font-weight:700;letter-spacing:1.1px;color:#496574;margin-bottom:0}.hero-media{background:var(--navy);position:relative;border-radius:3px;overflow:hidden;box-shadow:0 20px 40px #0b3a4e18}.hero-media img{width:100%;height:460px;object-fit:cover;object-position:center}.image-label{display:flex;justify-content:space-between;gap:15px;padding:20px 22px;border-top:1px solid #24708c;font-size:10px;letter-spacing:1.6px;color:#d6edf7;background:#082c41}.practice-ribbon{border-bottom:1px solid var(--line);background:#fff}.practice-ribbon .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;font-size:14px;font-weight:700;color:var(--teal)}.section{padding-top:90px;padding-bottom:90px}.top-zero{padding-top:0}.section-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end;margin-bottom:44px}.section-heading h2{margin-bottom:0}.section-heading>p{margin-bottom:0;color:var(--muted);max-width:470px}.engagement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.engagement-grid article{border-top:2px solid var(--cyan);padding-top:24px}.number{display:inline-block;font-size:13px;letter-spacing:1.5px;color:#17778b;font-weight:700;margin-bottom:25px}.engagement-grid h3{font-size:25px}.engagement-grid p{color:var(--muted);font-size:15px}.text-link{font-size:14px;font-weight:700;color:var(--teal);border-bottom:1px solid #39a1b5;display:inline-block;padding-bottom:3px}.practice-section,.soft-section{background:var(--ice)}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.practice-card{display:flex;flex-direction:column;background:#fff;padding:30px;border:1px solid var(--line);min-height:315px;text-decoration:none!important;transition:transform .15s,border-color .15s}.practice-card:hover{transform:translateY(-3px);border-color:var(--cyan)}.practice-card p{font-size:15px;color:var(--muted)}.practice-card .number{margin-bottom:20px}.practice-card .text-link{align-self:start;margin-top:auto}.image-split,.category-overview{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.image-split img,.category-overview img{width:100%;aspect-ratio:1.16;object-fit:cover;border-radius:3px}.image-split p{color:var(--muted)}.check-list{margin:28px 0}.check-list p{border-top:1px solid var(--line);padding:12px 0;margin:0;font-size:15px;font-weight:600;color:var(--teal)}.dark-section{background:var(--navy);color:#fff}.dark-section .eyebrow{color:#72cfdf}.dark-section .number{color:#6fcfe4}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;margin-top:42px}.process-grid article{border-top:1px solid #31556a;padding-top:23px}.process-grid p{color:#c1d7e2;font-size:15px}.cta{background:var(--teal);color:#fff;padding:70px 0}.cta-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:center}.cta-grid>div:last-child{text-align:right}.cta h2{max-width:760px}.cta p{max-width:700px;color:#d5ebf3}.cta .eyebrow{color:#8bd5e4}.phone-link{display:block;margin-top:18px;font-size:19px}.page-intro{padding-top:70px;padding-bottom:62px}.page-intro h1{max-width:1000px}.service-controls{display:grid;grid-template-columns:1.5fr 1fr auto;gap:25px;align-items:end;background:var(--ice);padding:25px;margin-bottom:32px}.service-controls label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.service-controls p{font-size:14px;margin-bottom:14px;color:var(--muted)}input,select,textarea{width:100%;background:#fff;border:1px solid #9db6c5;color:var(--ink);border-radius:2px;font-size:16px;min-height:47px;padding:11px 12px}textarea{resize:vertical;min-height:120px}select{padding-right:24px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.service-card{border:1px solid var(--line);padding:29px;display:flex;flex-direction:column;background:#fff;min-height:310px}.service-card[hidden]{display:none}.service-card h3{font-size:24px}.service-card h3 a:hover{color:var(--teal)}.service-card .eyebrow{font-size:11px;margin-bottom:23px}.service-card p:not(.eyebrow){font-size:15px;color:var(--muted)}.service-card .text-link{margin-top:auto;align-self:start}.category-overview{padding-bottom:20px}.category-overview p{color:var(--muted)}.technology-line{background:var(--ice);padding:18px;font-size:14px;border-left:3px solid var(--cyan)}.breadcrumbs{padding-top:28px;display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted)}.breadcrumbs a{text-decoration:underline}.service-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:60px;align-items:center;padding-top:45px;padding-bottom:70px}.service-hero h1{font-size:clamp(37px,3.75vw,53px)}.service-hero h2{font-size:24px;color:var(--teal);line-height:1.35;letter-spacing:-.02em}.service-hero .lead{font-size:18px}.service-hero .actions{margin-bottom:0}.service-image img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px}.service-body{display:grid;grid-template-columns:1.6fr 1fr;gap:75px;align-items:start}.service-main>h2{font-size:34px}.service-main>p:not(.eyebrow){color:var(--muted)}.detail-scope{margin-top:45px}.detail-scope article{display:flex;gap:25px;padding:24px 0;border-top:1px solid var(--line)}.detail-scope article .number{flex-shrink:0;min-width:22px;margin-top:5px}.detail-scope p{color:var(--muted);margin-bottom:0}.detail-scope h3{font-size:23px;line-height:1.3}.scope-aside{background:var(--ice);border-top:3px solid var(--cyan);padding:32px;position:sticky;top:25px}.scope-aside h3{font-size:18px;margin-top:25px;margin-bottom:12px}.scope-aside p{font-size:15px;color:var(--muted)}.scope-aside .button{width:100%;margin-top:10px}.deliverable-block{border-left:3px solid var(--cyan);background:var(--ice);padding:28px;margin-top:28px}.deliverable-block h2{font-size:28px}.deliverable-block ul{padding-left:21px;margin:0 0 22px}.deliverable-block li{padding:5px 0}.deliverable-block p{font-size:14px;color:var(--muted);margin-bottom:0}.faq-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:65px}details{padding:23px 0;border-top:1px solid #b8cfdc}summary{font-size:18px;font-weight:600;line-height:1.4;cursor:pointer}details p{margin:18px 0 0;color:var(--muted)}.form-section-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:65px;align-items:start}.form-section-grid>div p{color:var(--muted)}.form-section-grid h2{font-size:36px}.contact-detail{display:block;overflow-wrap:anywhere;font-size:20px;color:var(--teal);line-height:1.7;margin-bottom:6px}.lead-form{padding:34px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #0b3a4e06}.form-heading h2{font-size:29px}.form-heading p:not(.eyebrow){font-size:15px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .wide{grid-column:1/-1}label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.consent{display:flex;align-items:start;gap:12px;font-weight:400;margin:24px 0;font-size:14px;line-height:1.55}.consent input{width:18px;min-height:18px;height:18px;margin:3px 0 0;flex-shrink:0;accent-color:var(--teal)}.consent a{text-decoration:underline}.form-note{font-size:13px;color:var(--muted);line-height:1.65;margin:16px 0 0}.form-status{font-size:15px;line-height:1.5;margin:18px 0 0}.form-status:empty{display:none}.form-status.error{color:#a32232}.form-status.success{color:#11634f;border-left:3px solid #178767;padding:12px 15px;background:#eefaf6}.trap{position:absolute;width:1px;height:1px;overflow:hidden;left:-10000px}.offices{margin-top:40px}.offices article{padding:24px 0;border-top:1px solid var(--line)}.offices .eyebrow{margin-bottom:10px}.offices p{font-size:15px;margin-bottom:0}.callout{padding:25px;background:var(--ice);margin-top:30px}.callout h3{font-size:21px}.callout p{font-size:15px}.jobs article{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:28px 0;border-top:1px solid var(--line)}.jobs h3{margin-bottom:12px}.jobs .eyebrow{font-size:11px;margin-bottom:10px}.jobs p:last-child{font-size:15px;color:var(--muted);margin-bottom:0}.jobs .button{flex-shrink:0}.industry-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.industry-grid article{background:var(--ice);padding:34px}.industry-grid h2{font-size:29px}.industry-grid p{color:var(--muted)}.related-link{display:block;border-top:1px solid #bdd4df;padding:12px 0;font-size:14px;font-weight:600;color:var(--teal)}.prose{max-width:820px}.prose h2{font-size:27px;margin-top:38px}.prose p{color:var(--muted)}footer{background:#fff;border-top:1px solid var(--line);padding-top:65px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1.1fr;gap:80px;padding-bottom:45px}.footer-grid .logo{margin-bottom:25px}.footer-grid p{font-size:14px;color:var(--muted)}.footer-grid h3{font-size:16px;letter-spacing:0;margin-bottom:20px}.footer-grid a:not(.logo){display:block;font-size:14px;margin-bottom:9px;overflow-wrap:anywhere}.footer-base{padding-top:23px;padding-bottom:23px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:28px;font-size:12px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:1050px){.wrap{width:calc(100% - 50px)}.navigation nav{gap:18px}.hero-grid{gap:30px}.hero h1{font-size:50px}.hero-media img{height:420px}.section-heading,.image-split,.category-overview{gap:40px}.service-body{gap:40px}.form-section-grid{gap:35px}.footer-grid{gap:40px}.service-grid,.practice-grid{grid-template-columns:repeat(2,1fr)}.engagement-grid,.process-grid{grid-template-columns:repeat(2,1fr);gap:35px}}@media(max-width:900px){.wrap{width:calc(100% - 36px)}.topbar .wrap{padding-top:9px;padding-bottom:9px}.topbar span{display:none}.topbar a{font-size:12px}.navigation{min-height:85px;flex-wrap:wrap;gap:20px;padding-top:19px;padding-bottom:19px}.logo{width:170px}.menu{display:block;background:#fff;color:var(--teal);border:1px solid #9db6c5;font-size:14px;padding:9px 14px;border-radius:2px}.navigation nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}.navigation nav.open{display:flex}.navigation nav a{padding:13px 4px;border-top:1px solid var(--line)}.navigation nav .button{margin-top:10px}.hero{padding:46px 0}.hero-grid,.section-heading,.image-split,.category-overview,.cta-grid,.service-hero,.service-body,.faq-grid,.form-section-grid{grid-template-columns:1fr;gap:32px}.hero h1{font-size:clamp(40px,10vw,54px)}.hero-media img{height:auto;aspect-ratio:1.35}.image-label{font-size:9px;padding:16px}.hero-sub{font-size:10px;letter-spacing:.8px}.hero .lead{font-size:18px}.actions{margin-top:26px}.practice-ribbon .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;font-size:13px}.section{padding-top:56px;padding-bottom:56px}.top-zero{padding-top:0}.section-heading{margin-bottom:32px}.section-heading>p{max-width:none}.section-heading h2{font-size:34px}.engagement-grid,.process-grid{grid-template-columns:1fr;gap:26px}.engagement-grid article{padding-top:19px}.engagement-grid .number{margin-bottom:14px}.service-grid,.practice-grid{grid-template-columns:1fr;gap:18px}.practice-card{min-height:270px}.service-card{min-height:265px}.image-split img,.category-overview img{aspect-ratio:1.35}.cta{padding:52px 0}.cta-grid>div:last-child{text-align:left}.cta h2{font-size:35px}.page-intro{padding-top:45px;padding-bottom:40px}.page-intro h1{font-size:43px}.lead{font-size:18px}.service-controls{grid-template-columns:1fr;padding:20px;gap:15px}.service-controls p{margin:0}.category-overview{padding-bottom:0}.service-hero{padding-top:30px;padding-bottom:45px}.service-hero h1{font-size:40px}.service-hero h2{font-size:23px}.service-image img{aspect-ratio:1.5}.service-main>h2{font-size:30px}.scope-aside{position:static;padding:25px}.detail-scope{margin-top:32px}.detail-scope article{gap:18px}.detail-scope h3{font-size:22px}.deliverable-block{padding:22px}.deliverable-block h2{font-size:26px}.form-section-grid h2{font-size:32px}.lead-form{padding:24px}.form-heading h2{font-size:27px}.form-grid{grid-template-columns:1fr;gap:17px}.contact-detail{font-size:18px}.jobs article{align-items:start;flex-direction:column;gap:20px}.industry-grid{grid-template-columns:1fr;gap:22px}.industry-grid article{padding:25px}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-base{flex-direction:column;gap:12px}.breadcrumbs{font-size:12px;gap:8px}h1,h2,h3{overflow-wrap:break-word}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.practice-card{transition:none}}
:where(input,select,textarea,.lead-form,.form-grid>div,.service-controls>div,.hero-copy,.service-main){min-width:0}

/* Mobile usability: prevent grid overflow and retain comfortable touch targets. */
:where(.hero-grid,.section-heading,.image-split,.category-overview,.cta-grid,.service-hero,.service-body,.faq-grid,.form-section-grid,.footer-grid,.service-grid,.practice-grid,.industry-grid)>*{min-width:0}
:where(p,li,label,summary,.form-status){overflow-wrap:anywhere}
input[type="file"]{max-width:100%;white-space:normal}
.menu,.button{min-height:44px}
@media(max-width:900px){
.navigation nav a{min-height:44px}
.practice-ribbon a{display:flex;align-items:center;min-height:44px}
.image-label{flex-wrap:wrap;line-height:1.5}
input,select,textarea{font-size:16px}
}
@media(max-width:380px){
.hero h1,.page-intro h1,.service-hero h1{font-size:2.125rem;line-height:1.16}
.section-heading h2,.cta h2,.form-section-grid h2{font-size:1.875rem}
.lead-form{padding:18px}
.actions{flex-direction:column;align-items:stretch}
.actions .button{text-align:center}
}
