:root{--navy:#102a43;--navy-2:#132f49;--navy-3:#17324d;--gold:#d49a2a;--gold-light:#f0b84b;--blue:#2878a8;--ink:#172b3a;--muted:#607383;--bg:#eef3f6;--surface:#fff;--line:#d8e1e7;--danger:#b94a48;--radius:10px;--shadow:0 16px 42px rgba(4,16,27,.14);--shell:min(1160px,calc(100% - 2.5rem))}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--bg);font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.65}img{display:block;max-width:100%}a{color:var(--blue)}a:hover{color:var(--navy)}h1,h2,h3{margin:0 0 .7em;color:var(--navy);font-weight:700;line-height:1.12}h1{font-size:clamp(2.45rem,6vw,4.8rem);letter-spacing:-.045em}h2{font-size:clamp(1.75rem,3vw,2.6rem);letter-spacing:-.025em}h3{font-size:1.18rem}p{margin:0 0 1.25rem}.shell{width:var(--shell);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:1rem;z-index:9999;padding:.6rem 1rem;color:#fff;background:var(--navy)}.skip-link:focus{top:1rem}.eyebrow{margin:0 0 .9rem;color:var(--gold);font-size:.76rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.25rem;color:#fff;background:var(--gold);border:1px solid var(--gold);border-radius:8px;font-weight:700;text-decoration:none;box-shadow:0 6px 18px rgba(212,154,42,.25);transition:transform .15s ease,background .15s ease}.button:hover{color:#fff;background:#bc8219;transform:translateY(-1px)}.button-small{min-height:40px;padding:.5rem .9rem;font-size:.86rem}.button-outline{color:var(--navy);background:transparent;border-color:var(--navy);box-shadow:none}.button-outline:hover{color:#fff;background:var(--navy)}.text-link{color:#fff;font-weight:700;text-decoration:none}.text-link span{display:inline-block;margin-left:.35rem;transition:transform .15s}.text-link:hover{color:var(--gold-light)}.text-link:hover span{transform:translateX(4px)}
.site-header{position:sticky;top:0;z-index:1000;box-shadow:0 5px 20px rgba(5,18,30,.18)}.utility-bar{color:#dce8f2;background:#0d2133;font-size:.78rem}.utility-inner{display:flex;align-items:center;justify-content:space-between;min-height:34px}.utility-contact{display:flex;gap:1.4rem}.utility-bar a{color:inherit;text-decoration:none}.utility-contact span{color:#8fb7d5}.employee-link{font-weight:700}.main-bar{height:68px;color:#f7fafc;background:var(--navy)}.nav-shell{display:flex;align-items:center;justify-content:space-between;height:100%}.brand{display:flex;align-items:center;width:174px;height:54px}.brand img{width:100%;max-height:50px;object-fit:contain}.primary-nav{display:flex;align-items:center;gap:1.35rem}.primary-nav ul{display:flex;align-items:center;gap:.2rem;margin:0;padding:0;list-style:none}.primary-nav li a{display:block;padding:.8rem .85rem;color:#dce8f2;border-radius:7px;font-size:.9rem;font-weight:650;text-decoration:none}.primary-nav li a:hover,.primary-nav li a.active{color:#fff;background:rgba(119,173,211,.16)}.primary-nav li a.active{box-shadow:inset 0 -3px var(--gold)}.menu-toggle{display:none;width:44px;height:44px;padding:11px;background:transparent;border:0}.menu-toggle span:not(.sr-only){display:block;height:2px;margin:5px 0;background:#fff}
.home-hero{position:relative;min-height:720px;overflow:hidden;color:#fff;background:#07131f}.carousel-track,.carousel-slide,.carousel-slide img{position:absolute;inset:0;width:100%;height:100%}.carousel-slide{margin:0;opacity:0;transition:opacity 1s ease}.carousel-slide.active{opacity:1}.carousel-slide img{object-fit:cover}.hero-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,19,31,.96) 0%,rgba(16,42,67,.84) 48%,rgba(16,42,67,.22) 100%)}.hero-backdrop:after{position:absolute;inset:0;background:linear-gradient(120deg,transparent 55%,rgba(212,154,42,.18));content:""}.hero-content{position:relative;z-index:1;padding-top:clamp(7rem,14vw,11rem)}.hero-content h1{max-width:800px;color:#fff}.hero-content h1 span{color:var(--gold-light)}.hero-content>p:not(.eyebrow){max-width:660px;color:#d6e4ee;font-size:clamp(1.05rem,2vw,1.25rem)}.hero-actions{display:flex;align-items:center;gap:1.5rem;margin-top:2rem}.carousel-controls{position:absolute;right:max(1.25rem,calc((100% - 1160px)/2));bottom:92px;z-index:4;display:flex;align-items:center;gap:.25rem;padding:.3rem;color:#dce8f2;background:rgba(7,19,31,.74);border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(8px)}.carousel-controls button{display:grid;width:36px;height:36px;padding:0;place-items:center;color:#fff;background:transparent;border:0;border-radius:6px;font:700 1.5rem/1 "Segoe UI",sans-serif;cursor:pointer}.carousel-controls button:hover,.carousel-controls button:focus-visible{background:rgba(255,255,255,.12)}.carousel-controls span{min-width:54px;text-align:center;font-size:.76rem}.carousel-controls .carousel-pause{font-size:.8rem}.hero-proof{position:absolute;right:0;bottom:0;left:0;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(13,33,51,.9);border:1px solid rgba(255,255,255,.09);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;backdrop-filter:blur(8px)}.hero-proof div{display:flex;align-items:center;gap:.85rem;padding:1.25rem 1.5rem;border-right:1px solid rgba(255,255,255,.1)}.hero-proof div:last-child{border:0}.hero-proof strong{color:var(--gold-light);font-size:1.65rem}.hero-proof span{color:#d6e4ee;font-size:.84rem;font-weight:650}.platform-bar{color:#dce8f2;background:var(--navy-2);border-top:1px solid rgba(255,255,255,.08)}.platform-bar>.shell{display:grid;grid-template-columns:auto 1fr;align-items:stretch}.platform-label{display:flex;align-items:center;margin:0;padding-right:1.5rem;color:#8fb7d5;border-right:1px solid rgba(255,255,255,.09);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.platform-grid{display:grid;grid-template-columns:repeat(4,1fr)}.platform{display:flex;align-items:center;gap:.85rem;min-height:104px;padding:1rem 1.25rem;color:#fff;border-right:1px solid rgba(255,255,255,.09);text-decoration:none}.platform:hover{color:#fff;background:rgba(119,173,211,.1)}.platform-mark{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;color:var(--gold-light);background:rgba(240,184,75,.1);border-radius:9px}.platform-mark svg{width:26px;height:26px;fill:currentColor}.platform span:last-child{display:flex;min-width:0;flex-direction:column}.platform strong{font-size:.86rem}.platform small{color:#8fb7d5;font-size:.7rem}
.section{padding:clamp(4rem,8vw,7rem) 0}.section-white{background:#fff}.section-dark{color:#d6e4ee;background:var(--navy)}.section-dark h2,.section-dark h3{color:#fff}.section-heading{max-width:700px;margin-bottom:2.6rem}.section-heading p:last-child{color:var(--muted);font-size:1.08rem}.section-dark .section-heading p:last-child{color:#a9bdca}.intro-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(3rem,8vw,7rem);align-items:center}.image-frame{position:relative}.image-frame img{width:100%;min-height:440px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.image-frame:after{position:absolute;right:-18px;bottom:-18px;width:45%;height:45%;z-index:-1;background:var(--gold);border-radius:var(--radius);content:""}.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0}.feature-item{padding:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.feature-item strong{display:block;color:var(--navy)}.feature-item span{color:var(--muted);font-size:.88rem}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.service-card{display:flex;min-height:300px;flex-direction:column;padding:1.45rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(4,16,27,.06);text-decoration:none;transition:transform .2s,box-shadow .2s}.service-card:hover{color:var(--ink);box-shadow:var(--shadow);transform:translateY(-5px)}.card-icon{display:grid;width:46px;height:46px;margin-bottom:2rem;place-items:center;color:#fff;background:var(--navy);border-radius:9px;font-size:1.25rem}.service-card p{color:var(--muted);font-size:.92rem}.service-card .card-link{margin-top:auto;color:var(--blue);font-size:.86rem;font-weight:750}.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.reason{padding:1.5rem;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);border-radius:var(--radius)}.reason .number{display:block;margin-bottom:1.2rem;color:var(--gold-light);font-size:.75rem;font-weight:800;letter-spacing:.1em}.reason p{margin:0;color:#a9bdca;font-size:.92rem}.work-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:220px 220px;gap:1rem}.work-grid figure{position:relative;margin:0;overflow:hidden;border-radius:var(--radius)}.work-grid figure:first-child{grid-row:1/3}.work-grid figure:nth-child(4){grid-column:2/4}.work-grid img{width:100%;height:100%;object-fit:cover}.work-grid figcaption{position:absolute;right:.65rem;bottom:.65rem;padding:.35rem .6rem;color:#fff;background:rgba(7,19,31,.78);border-radius:5px;font-size:.7rem;font-weight:700}.clients-section{overflow:hidden;padding:4rem 0;background:var(--bg)}.client-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem}.client-logo{display:grid;min-height:112px;padding:1.15rem;place-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.client-logo img{max-width:100%;max-height:68px;filter:grayscale(1);opacity:.78;transition:filter .2s,opacity .2s}.client-logo:hover img{filter:none;opacity:1}.cta-band{padding:3.2rem 0;color:#fff;background:var(--teal)}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-band h2{margin:0;color:#fff}.cta-band p{margin:.4rem 0 0;color:#d9f0ed}
.page-hero{position:relative;display:flex;min-height:390px;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(7,19,31,.96),rgba(16,42,67,.7)),var(--hero-image,url('../images/banner.jpg')) center/cover}.page-hero h1{color:#fff}.page-hero .lede{max-width:660px;color:#d6e4ee;font-size:1.15rem}.page-content{padding-block:clamp(3.5rem,7vw,6rem)}.prose{max-width:1000px}.prose>p:first-child{font-size:1.18rem}.prose h2{margin-top:2.5rem}.prose h3{margin-top:2rem}.content-grid,.service-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.content-card,.service-detail>div{padding:1.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.service-detail{margin:2rem 0}.service-detail>div{scroll-margin-top:130px}.service-detail ul{padding-left:1.2rem}.contact-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:2rem;margin-top:2rem}.contact-card,.contact-form{padding:clamp(1.5rem,4vw,2.5rem);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.contact-card a{font-weight:700;text-decoration:none}.alert{padding:1rem 1.1rem;color:#702e2c;background:#fff4f3;border-left:4px solid var(--danger);border-radius:6px}.contact-form label{display:block;margin-bottom:.35rem;color:var(--navy);font-size:.84rem;font-weight:700}.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:.75rem .85rem;color:var(--ink);background:#fff;border:1px solid #bdcbd5;border-radius:7px;font:inherit}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:3px solid rgba(40,120,168,.2);border-color:var(--blue)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-field{margin-bottom:1rem}.contact-form small{display:block;margin-top:1rem;color:var(--muted)}
.site-footer{padding-top:4rem;color:#a9bdca;background:#081827}.footer-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:3rem}.footer-grid h2{color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase}.footer-grid ul{margin:0;padding:0;list-style:none}.footer-grid a{color:#d6e4ee;text-decoration:none}.footer-grid a:hover{color:var(--gold-light)}.footer-brand img{width:190px;margin-bottom:1.3rem}.footer-grid address{font-style:normal}.footer-bottom{display:flex;justify-content:space-between;margin-top:3rem;padding:1.2rem 0;border-top:1px solid #294052;font-size:.75rem}
@media(max-width:900px){.utility-contact span:last-child{display:none}.menu-toggle{display:block}.primary-nav{position:absolute;top:68px;right:0;left:0;display:none;align-items:stretch;flex-direction:column;padding:1rem 1.25rem 1.25rem;background:var(--navy-2);box-shadow:0 14px 28px rgba(4,16,27,.28)}.primary-nav.open{display:flex}.primary-nav ul{align-items:stretch;flex-direction:column}.primary-nav li a{padding:.75rem 1rem}.primary-nav .button{width:100%}.intro-grid,.contact-panel{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.home-hero{min-height:760px}.platform-bar>.shell{display:block;width:100%}.platform-label{padding:.7rem 1rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}.platform-grid{grid-template-columns:repeat(2,1fr)}.work-grid{grid-template-columns:1fr 1fr}.work-grid figure:first-child{grid-row:auto}.work-grid figure:nth-child(4){grid-column:1/3}.client-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){:root{--shell:min(100% - 1.5rem,1160px)}.utility-contact{gap:.7rem}.utility-contact a:nth-child(2){display:none}.brand{width:145px}.hero-content{padding-top:5rem}.hero-content h1{font-size:2.7rem}.hero-actions{align-items:flex-start;flex-direction:column}.carousel-controls{right:.75rem;bottom:157px}.hero-proof{grid-template-columns:1fr}.hero-proof div{padding:.65rem 1rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}.hero-proof strong{font-size:1.15rem}.platform-grid{grid-template-columns:1fr}.platform{min-height:82px}.feature-list,.card-grid,.reasons,.content-grid,.service-detail,.form-row{grid-template-columns:1fr}.work-grid{grid-template-columns:1fr;grid-template-rows:repeat(4,210px)}.work-grid figure:nth-child(4){grid-column:auto}.client-strip{grid-template-columns:repeat(2,1fr)}.cta-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr;gap:2rem}.footer-bottom{flex-direction:column;gap:.4rem}.image-frame:after{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Compact partner, client, and project presentation */
.partner-platforms{padding:1.15rem 0;background:#fff;border-bottom:1px solid var(--line)}
.partner-platforms>.shell{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2rem}
.partner-platforms .platform-label{display:block;margin:0;padding:0;color:var(--navy);border:0;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.platform-logo-grid{display:grid;grid-template-columns:repeat(4,1fr);align-items:center}
.platform-logo-grid a{display:grid;min-height:74px;padding:.8rem 1.25rem;place-items:center;border-left:1px solid var(--line);border-radius:6px;transition:background .2s}
.platform-logo-grid a:hover,.platform-logo-grid a:focus-visible{background:var(--bg)}
.platform-logo-grid img{width:auto;max-width:150px;max-height:48px;object-fit:contain}
.platform-logo{overflow:hidden}
.platform-logo img{transform-origin:center}
.platform-logo-corrigo img{transform:scale(1.55)}
.platform-logo-ecotrak img{transform:scale(1.28)}
.platform-logo-resq img{transform:scale(1.04)}
.platform-logo-servicechannel img{transform:scale(.92)}
.field-work-link{display:inline-block;margin-top:1.4rem;color:var(--blue)}
.field-work-link:hover{color:var(--navy)}
.relationship-image img{object-position:32% center}
.work-grid figure>a{display:block;width:100%;height:100%;color:#fff}
.work-grid figcaption{display:flex;max-width:calc(100% - 1.3rem);flex-direction:column;align-items:flex-end;text-align:right}
.work-grid figcaption strong{overflow:hidden;max-width:100%;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
.work-grid figcaption span{color:#d6e4ee;font-size:.62rem;font-weight:600}
.client-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.client-track{display:flex;width:max-content;animation:client-scroll 50s linear infinite}
.client-marquee:hover .client-track,.client-marquee:focus-within .client-track{animation-play-state:paused}
.client-group{display:flex;flex-shrink:0;gap:1rem;padding-right:1rem}
.client-marquee .client-logo{width:170px;min-height:104px}
@keyframes client-scroll{to{transform:translateX(-50%)}}
.cta-band{background:linear-gradient(110deg,var(--navy),var(--navy-3))}
.cta-band p{color:#dce8f2}
.project-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}
.project-filter{padding:.58rem .9rem;color:var(--navy);background:#fff;border:1px solid #bdcbd5;border-radius:999px;font:700 .82rem/1.2 inherit;cursor:pointer}
.project-filter:hover,.project-filter.active{color:#fff;background:var(--navy);border-color:var(--navy)}
.project-filter:focus-visible{outline:3px solid rgba(40,120,168,.25)}
.project-count{margin:0 0 1.5rem;color:var(--muted);font-size:.86rem}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.project-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(4,16,27,.06)}
.project-card[hidden]{display:none}
.project-card-image{display:block;height:235px;overflow:hidden;background:var(--navy)}
.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.project-card:hover .project-card-image img{transform:scale(1.025)}
.project-card-body{display:flex;min-height:285px;flex-direction:column;padding:1.3rem}
.project-card-body h2{font-size:1.28rem}
.project-card-body h2 a{color:var(--navy);text-decoration:none}
.project-card-body>p:not(.project-tags){color:var(--muted);font-size:.91rem}
.project-tags{margin-bottom:.55rem;color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-card-link{margin-top:auto;font-size:.84rem;font-weight:750;text-decoration:none}
.project-empty{padding:2rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.project-hero{background:linear-gradient(90deg,rgba(7,19,31,.97),rgba(16,42,67,.72)),var(--hero-image,url('../images/banner.jpg')) center/cover}
.project-back{display:inline-block;margin-bottom:1.5rem;font-weight:700;text-decoration:none}
.project-draft-note{padding:1rem;color:#6d4d0e;background:#fff6df;border-left:4px solid var(--gold);border-radius:6px}
.project-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 2.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.project-facts div{padding:1.2rem 1.4rem;border-right:1px solid var(--line)}
.project-facts div:last-child{border:0}
.project-facts dt{color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.project-facts dd{margin:.25rem 0 0;color:var(--navy);font-weight:700}
.project-story{margin-bottom:3rem}
.project-gallery h2{margin-top:0}
.project-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.project-gallery-grid a{height:230px;overflow:hidden;border-radius:var(--radius)}
.project-gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.project-gallery-grid a:hover img{transform:scale(1.03)}
.project-service-link{margin-top:2.5rem;padding:1.2rem 1.4rem;background:#fff;border-left:4px solid var(--gold);border-radius:var(--radius)}
.project-service-link p{margin:0}.project-service-link a{font-weight:750}
@media(max-width:900px){.partner-platforms>.shell{grid-template-columns:1fr;gap:.5rem}.platform-logo-grid a:first-child{border-left:0}.project-grid,.project-gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.platform-logo-grid{grid-template-columns:repeat(2,1fr)}.platform-logo-grid a:nth-child(odd){border-left:0}.client-marquee .client-logo{width:145px}.project-grid,.project-facts,.project-gallery-grid{grid-template-columns:1fr}.project-facts div{border-right:0;border-bottom:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.client-track{animation:none}.client-marquee{overflow-x:auto;mask-image:none}.client-group[aria-hidden="true"]{display:none}}
.contact-form .form-intro{color:var(--muted)}
.contact-form .form-wrapper{margin-top:1.5rem}
.contact-form .buttons{margin-top:.5rem}
.contact-form .form-message,.contact-form .notices{padding:.8rem 1rem;border-radius:6px}
.contact-form .notices.green,.contact-form .alert-success{color:#174f35;background:#e9f7ef;border-left:4px solid #2d8159}
.contact-form .notices.red,.contact-form .alert-danger{color:#702e2c;background:#fff4f3;border-left:4px solid var(--danger)}
