@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#102d48;--muted:#5b6b79;--paper:#ffffff;--green:#c4e7ff;--line:#dce5ee}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #1e73be;outline-offset:5px}.skip{position:absolute;top:-100px;left:20px;background:var(--green);padding:10px;z-index:10}.skip:focus{top:10px}.header{max-width:1440px;margin:auto;padding:26px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,Arial,sans-serif;font-size:18px;font-weight:800;letter-spacing:.8px}.brand small{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:8px;letter-spacing:2.4px;font-weight:500}.brand-mark{width:44px;height:44px;background:var(--ink);color:var(--green);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:25px;letter-spacing:-4px;padding-right:5px}.brand-mark span{transform:translateY(3px)}nav{display:flex;align-items:center;gap:32px;font-size:13px;font-weight:600}.button{background:var(--ink);color:white;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:16px 22px;border-radius:4px;font-size:13px;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#1e73be;transform:translateY(-2px)}.button.small{padding:12px 19px}.menu-toggle{display:none}.hero{max-width:1440px;margin:auto;padding:78px 5% 70px;display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 26px}.eyebrow>span{display:inline-block;width:6px;height:6px;background:#1e73be;border-radius:50%;margin-right:7px;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;font-weight:500}h1{font-size:clamp(42px,4.9vw,72px);line-height:1.08;letter-spacing:-3.6px;margin-bottom:26px}em{font-style:normal;color:#1e73be}h2{font-size:clamp(32px,3.2vw,45px);line-height:1.2;letter-spacing:-1.8px;margin-bottom:22px}.intro{font-size:16px;max-width:470px;color:var(--muted);line-height:1.8}.actions{display:flex;gap:25px;align-items:center;margin-top:30px}.text-link{display:inline-flex;align-items:center;gap:18px;font-size:12px;font-weight:700}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.hero-note{font-size:9px;letter-spacing:1.6px;color:var(--muted);margin:34px 0 0}.hero-note span{padding:0 10px;color:#9aaa9d}.path-visual{background:#102d48;position:relative;border-radius:8px;overflow:hidden;min-height:510px;color:#fff}.path-visual svg{width:100%;position:absolute;inset:20px 0 0;height:calc(100% - 30px)}.visual-top,.visual-bottom{position:absolute;left:25px;right:25px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.4px}.visual-top{top:25px}.live-dot{letter-spacing:0;color:#b7cee2}.live-dot:before{content:'';display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%;margin-right:6px}.visual-bottom{bottom:25px;letter-spacing:.5px;color:#b7cee2;font-size:10px}.platform-chip{position:absolute;background:#ffffff;color:var(--ink);display:flex;gap:13px;align-items:center;padding:18px 20px;border-radius:5px;box-shadow:0 15px 30px #001b242b;width:230px;transform:rotate(-5deg)}.chip-one{top:100px;left:35px}.chip-two{right:26px;bottom:102px;transform:rotate(4deg)}.chip-icon{display:grid;place-items:center;border:1px solid #bed8ef;width:39px;height:39px;border-radius:8px;font-size:20px;font-weight:500}.platform-chip small{font-size:7px;letter-spacing:1.1px;display:block;color:var(--muted)}.platform-chip strong{font-size:19px;font-weight:500;display:block}.platform-chip>span:last-child{margin-left:auto}.principles{border-block:1px solid var(--line);max-width:1296px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:27px 0;gap:20px;font-size:13px}.principles p{margin:0;font-size:12px;color:var(--muted)}.principles strong{color:var(--ink);font-weight:600}.principles>span:before{content:'↗';color:#1e73be;margin-right:16px}.section{max-width:1440px;padding:90px 5%;margin:auto}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:40px}.section-heading h2{margin:0}.section-heading>p{max-width:330px;color:var(--muted);font-size:14px;margin:0 0 4px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service{padding:36px;background:#f0f7fd;border:1px solid #d4e5f3;border-radius:6px}.munis{background:#f4f7fa;border-color:#dce5ee}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.platform-label{font-size:9px;letter-spacing:1.5px;font-weight:700}.service h3{font-size:30px;line-height:1.25;letter-spacing:-1px;margin-bottom:16px}.service>p{color:var(--muted);font-size:14px;max-width:420px}.service ul{padding:0;margin:24px 0 30px;list-style:none}.service li{border-top:1px solid #cbdde9;padding:15px 0;display:grid;grid-template-columns:145px 1fr;gap:18px;font-size:12px}.service li strong{font-weight:650}.service li span{color:var(--muted)}.approach{border-top:1px solid var(--line)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:50px}.steps article{border-top:1px solid #a4c6df;padding-top:20px}.steps article>span{font-size:11px;color:#1e73be}.steps h3{font-size:23px;margin:23px 0 12px}.steps p{font-size:14px;color:var(--muted);max-width:325px}.about{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid var(--line);gap:60px}.about>div>p{max-width:640px;font-size:16px;color:var(--muted)}.about .text-link{margin-top:12px}.contact{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1.5fr 1fr;gap:70px;padding:70px max(5%,calc((100% - 1296px)/2));margin:0 auto}.contact .eyebrow{color:#b7d8f1}.contact h2{font-size:48px}.contact em{color:var(--green)}.contact>div>p:not(.eyebrow){max-width:430px;color:#bdd1e2;font-size:14px}.light{background:var(--green);color:var(--ink);margin-top:10px}.light:hover{background:#94d0ff}.contact-details{padding-top:12px}.contact-details p{border-bottom:1px solid #36536c;padding-bottom:20px;margin-bottom:22px;font-size:9px;letter-spacing:1.6px;color:#b9cde0}.contact-details a,.contact-details p>span{display:block;font-size:20px;letter-spacing:0;color:var(--paper);margin-top:8px}.contact-details a:hover{color:var(--green)}footer{max-width:1440px;margin:auto;padding:33px 5%;display:flex;justify-content:space-between;gap:25px;align-items:center;font-size:10px;color:var(--muted)}.footer-brand{color:var(--ink);font-size:13px;letter-spacing:1px;font-weight:700}.footer-brand span{display:block;font-size:10px;letter-spacing:0;font-weight:400}footer p{margin:0}.trademark{font-size:9px;margin-top:4px}footer>a:last-child{white-space:nowrap}@media(min-width:1440px){.principles{margin-inline:auto}}@media(max-width:1439px){.principles{margin-inline:5%}}@media(max-width:1000px){nav{gap:18px}.hero{gap:28px;padding-top:55px}h1{letter-spacing:-2px}.actions{flex-wrap:wrap;gap:18px}.path-visual{min-height:480px}.chip-one{left:20px}.chip-two{right:20px}.principles>span{font-size:11px}.service{padding:25px}.service li{grid-template-columns:1fr;gap:5px}.steps{gap:25px}}@media(max-width:700px){html{scroll-padding-top:20px}.header{padding:20px 6%;flex-wrap:wrap}.brand{font-size:15px}.brand-mark{width:36px;height:36px}.menu-toggle{display:flex;gap:12px;background:transparent;border:1px solid #c4d6e7;padding:7px 10px;border-radius:4px;font-size:12px;color:var(--ink)}nav{display:none;width:100%;align-items:stretch;padding-top:15px;gap:18px}nav.open{display:flex;flex-direction:column}.hero{grid-template-columns:1fr;padding:43px 6%;gap:35px}h1{font-size:49px;letter-spacing:-2.5px}.intro{font-size:15px}.eyebrow{font-size:9px}.path-visual{min-height:420px}.path-visual svg{top:0}.chip-one{top:84px}.chip-two{bottom:80px}.principles{margin:0 6%;display:grid;grid-template-columns:1fr 1fr;gap:20px}.principles>span:before{margin-right:8px}.section{padding:58px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:22px}.service-grid,.steps,.about,.contact{grid-template-columns:1fr}.service{padding:27px}.service h3{font-size:28px}.service li{grid-template-columns:125px 1fr;font-size:12px}.steps{gap:25px;margin-top:35px}.steps h3{margin-top:14px}.steps p{max-width:none}.about{gap:0}.about .eyebrow{margin-bottom:25px}.contact{padding:48px 6%;gap:35px}.contact h2{font-size:38px}footer{padding:28px 6%;flex-wrap:wrap}footer>div{order:3;width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.brand img{display:block;width:270px;height:auto;max-width:100%}@media(max-width:700px){.brand img{width:210px}}

.practice-nav{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 45px;padding:0}
.practice-nav a{padding:12px 18px;border:1px solid #cbdde9;border-radius:4px;font-size:12px;background:#fff}
.practice-nav a:hover{background:#e9f4fc}
.practice-heading{scroll-margin-top:30px;margin-bottom:25px}
.practice-heading .eyebrow{margin-bottom:9px}
.practice-heading h3{font-size:25px;letter-spacing:-.6px;margin:0}
.practice-section{border-top:1px solid var(--line)}
.practice-section .section-heading>p{max-width:390px}
.practice-intro{max-width:850px;color:var(--muted);font-size:16px;margin-bottom:35px}
.capability-list{margin:0 0 32px}
.capability-list article{display:grid;grid-template-columns:65px 1fr;border-top:1px solid var(--line);padding:25px 0;gap:15px}
.capability-list article>span{font-size:12px;color:#1e73be;padding-top:4px}
.capability-list h3{font-size:22px;line-height:1.35;margin-bottom:10px;letter-spacing:-.5px}
.capability-list p{max-width:880px;color:var(--muted);font-size:14px;margin-bottom:0}
.observability{background:#f3f8fc}
@media(max-width:700px){.practice-nav{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-bottom:32px}.capability-list article{grid-template-columns:30px 1fr;gap:10px}.capability-list h3{font-size:20px}.practice-intro{font-size:15px}}

/* Two primary service menus */
.nav-group{position:relative}
.nav-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px;padding:10px 0;font-size:13px;font-weight:600}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:focus-visible{outline:3px solid #1e73be;outline-offset:5px}
.nav-group[open] summary{color:#1e73be}
.nav-group[open] summary>span{transform:rotate(180deg)}
.nav-dropdown{position:absolute;top:100%;left:0;min-width:245px;padding:10px;background:white;border:1px solid #dce5ee;border-radius:6px;box-shadow:0 14px 35px #102d481c;z-index:20}
.nav-dropdown a{display:block;padding:11px 12px;border-radius:3px;font-size:12px;white-space:nowrap}
.nav-dropdown a:hover{background:#edf6fd;color:#1e73be}
.practice-nav>a>span{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.practice-nav>a{min-width:230px;font-size:16px}
.cyber-overview{padding-bottom:55px;border-top:1px solid var(--line)}
.cyber-overview>p:not(.eyebrow){max-width:780px;color:var(--muted)}
#peoplesoft,#tyler-munis{scroll-margin-top:30px}
@media(max-width:1000px) and (min-width:701px){.header{gap:16px}.header .brand img{width:215px}#navigation{gap:15px}}
@media(max-width:700px){.nav-group{width:100%}.nav-group summary{justify-content:space-between;padding:9px 0}.nav-dropdown{position:static;margin-top:5px;box-shadow:none;min-width:0}.nav-dropdown a{white-space:normal}.cyber-overview{padding-bottom:35px}}
/* Dedicated service pages */
.page-intro{padding-top:55px;padding-bottom:55px}
.page-intro h1{font-size:clamp(38px,4.5vw,64px);letter-spacing:-2.5px;max-width:1050px;margin-bottom:25px}
.page-intro .intro{max-width:720px}
.breadcrumb{display:inline-block;font-size:11px;color:var(--muted);margin-bottom:30px}
.breadcrumb:hover{text-decoration:underline}
.erp-services{padding-top:0}
.nav-dropdown a[aria-current="page"]{background:#edf6fd;color:#1e73be;font-weight:700}
@media(max-width:700px){.page-intro{padding-top:35px;padding-bottom:40px}.page-intro h1{font-size:39px;letter-spacing:-1.8px}.breadcrumb{margin-bottom:25px}}