/* Device layouts: desktop >=1200, tablet 701–1199, phone <=700. */
:root{--header-height:88px}html{scroll-padding-top:calc(var(--header-height) + 24px)}.wrap{width:min(1200px,calc(100% - 80px))}.header{height:var(--header-height)}.header-inner>*{min-width:0}main,section,article,.city-info,.service-detail>div,.contact-layout>*,.about-grid>*,.nodi-section>*{min-width:0}h1,h2,h3,p,a,summary{overflow-wrap:break-word}button,a,input,select,textarea{touch-action:manipulation}summary{min-height:56px}.button{min-height:50px}.specialty img{aspect-ratio:16/10;height:auto;object-fit:cover}.hero{height:auto;min-height:min(760px,calc(100svh - var(--header-height)));max-height:none}.hero-content{padding-block:100px 140px}.hero-bottom{bottom:24px}.area-dialog{overscroll-behavior:contain}.dialog-close{z-index:1}.dialog-content .eyebrow{padding-right:42px}.dialog-content .button{white-space:normal}.footer a{display:inline-flex;align-items:center;min-height:44px}.summary-label{min-width:0}.disclosure-hint{flex-shrink:0}.contact-layout input,.contact-layout select,.contact-layout textarea{max-width:100%}
@media(min-width:1200px){.solution-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.steps{grid-template-columns:repeat(4,minmax(0,1fr))}.service-showcase{grid-template-columns:repeat(3,minmax(0,1fr))}.section{padding-block:96px}.hero-description{max-width:560px}.hero h1{max-width:1000px}.city-map{min-height:380px}.page-hero{max-width:1200px}.nodi-section img{max-height:570px}}
@media(max-width:1199px){:root{--header-height:80px}.wrap{width:calc(100% - 56px)}.brand{width:185px}.menu-toggle{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 15px;background:#0b1c2e;color:white;border:1px solid #466078;border-radius:6px;font-size:16px}.header-inner{gap:18px}nav{display:none;position:absolute;top:var(--header-height);left:0;right:0;padding:20px 28px;background:#071727;border-bottom:1px solid #294158;box-shadow:0 18px 28px #0005;max-height:calc(100dvh - var(--header-height));overflow-y:auto;align-items:stretch;gap:8px;font-size:18px}nav.open{display:flex;flex-direction:column}nav>a{padding:14px 16px;min-height:48px;border-radius:5px}nav>a:not(.nav-cta)::after{display:none}nav>a[aria-current]{background:#153047}nav .nav-cta{text-align:center;margin-top:8px}.section{padding-block:72px}.section-heading{align-items:start;gap:32px}.section-heading>p{max-width:330px}.solution-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.solution-card{min-height:255px}.hero-content{padding-block:82px 125px}.hero h1{font-size:clamp(3rem,6vw,4.6rem)}.hero-description{max-width:520px}.city-explorer{grid-template-columns:1fr}.city-map{min-height:0;aspect-ratio:16/8}.city-info{padding:28px 32px}.city-info h3{margin:16px 0;font-size:2rem}.city-info p{max-width:680px}.steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.service-showcase{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.specialty:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.specialty:last-child img{height:100%;min-height:240px}.specialty h2{font-size:2rem}.service-detail{grid-template-columns:1fr;gap:28px}.service-detail>div:first-child{max-width:720px}.capabilities{width:100%}.about-grid{grid-template-columns:1fr 1fr;gap:35px}.nodi-section{grid-template-columns:1fr 1fr;gap:35px}.nodi-section img{max-height:510px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-layout>div{max-width:700px}.contact-note{margin-top:22px}.contact-layout form{max-width:800px;width:100%}.cta{padding:48px;margin-bottom:64px}.network i:nth-child(n+6){display:none}}
@media(max-width:700px){:root{--header-height:72px}.wrap{width:calc(100% - 36px)}.brand{width:160px}.menu-toggle{font-size:14px;padding:9px 12px;min-height:44px}nav{padding:16px 18px}.section{padding-block:48px}.hero{min-height:0}.hero-content{padding-block:62px 100px}.hero h1{font-size:clamp(2.3rem,9.3vw,3.8rem);line-height:1.09;letter-spacing:-.04em;margin-bottom:24px}.hero-description{font-size:17px;line-height:1.6;margin-bottom:26px}.hero-img{object-position:65% center}.hero-shade{background:linear-gradient(90deg,#030c18ef,#030c1888),linear-gradient(0deg,#040a12,transparent)}.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.12em;margin-bottom:18px}.hero .eyebrow{max-width:290px}.hero .actions{display:grid;grid-template-columns:1fr;gap:12px;max-width:400px}.hero .button{width:100%}.hero-bottom{justify-content:flex-start;bottom:18px}.hero-bottom>span:first-child{display:none}.hero-bottom .explore-cue{display:inline-flex;font-size:11px}.pillars{grid-template-columns:1fr;padding-block:14px;gap:0}.pillars>div,.pillars>div+div{display:flex;align-items:center;gap:22px;padding:17px 4px;border-left:0}.pillars>div+div{border-top:1px solid var(--line)}.pillars strong{font-size:2rem;min-width:36px}.pillars p{font-size:14px;margin:0}.section-heading{display:block;margin-bottom:26px}.section-heading>p{max-width:none;margin-bottom:0}.section-heading h2,h2{font-size:clamp(1.9rem,7vw,2.65rem);line-height:1.13}.solution-grid{grid-template-columns:1fr;gap:14px}.solution-card{min-height:0;padding:25px}.solution-card h3{font-size:1.6rem;margin:18px 0 14px}.solution-card p{font-size:16px;margin-bottom:22px}.solution-card .text-link{min-height:30px}.city-map{aspect-ratio:4/3;min-height:0}.city-info{padding:25px 22px}.city-info h3{font-size:1.75rem}.hotspot{width:48px;height:48px;box-shadow:0 0 0 5px #39bfff25}.hotspot.active{outline-offset:2px}.hotspot:hover,.hotspot.active{box-shadow:0 0 0 6px #ffa32325}.h3{left:73%}.map-label{font-size:10px;left:10px;bottom:8px}.steps{grid-template-columns:1fr;gap:22px;margin-top:32px}.steps article{padding-top:18px}.steps h3{margin:12px 0;font-size:1.55rem}.steps p{font-size:16px;margin-bottom:0}.cta{padding:30px 24px;margin-bottom:45px}.cta .button{width:100%}.page-hero{padding-block:48px 34px}.page-hero h1{font-size:clamp(2.25rem,8.5vw,3.5rem);line-height:1.12}.page-hero>p:last-of-type{font-size:17px}.chips{gap:9px;margin-top:25px}.chips a,.chips span{padding:10px 14px;font-size:14px}.service-showcase{grid-template-columns:1fr;margin-bottom:45px;gap:20px}.specialty:last-child{display:block;grid-column:auto}.specialty img,.specialty:last-child img{height:auto;min-height:0;aspect-ratio:16/10}.specialty>div{padding:24px}.specialty h2{font-size:2rem}.specialty .text-link{display:block;text-align:center;min-height:46px}.service-detail{gap:24px}.service-lead{font-size:19px}.capabilities summary{gap:12px;padding:18px 10px;align-items:flex-start}.summary-label{font-size:16px;line-height:1.5}.disclosure-hint{font-size:12px;padding-top:4px}.about-grid,.nodi-section{grid-template-columns:1fr;gap:24px}.about-image img{height:230px}.nodi-section img{max-height:460px;max-width:100%;width:auto}.contact-layout{padding-top:0}.contact-layout form{padding:22px 18px}.contact-note{padding:20px}.contact-layout .actions{display:flex;flex-direction:column}.contact-layout .button{width:100%}.footer{display:block;padding-block:28px}.footer>div:nth-child(2){display:flex;gap:10px 24px;margin:15px 0}.footer small{display:block;margin-top:14px}.area-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);border-radius:12px}.dialog-content{padding:64px 22px 26px}.dialog-content .eyebrow{padding-right:0}.dialog-content .button{width:100%}.dialog-close{width:48px;height:48px;right:10px;top:10px}.network i:nth-child(n+4){display:none}.network i{animation-duration:6s}.build-intro{display:none}.hero-content,.page-hero{animation:none}}
@media(max-width:360px){.wrap{width:calc(100% - 28px)}.brand{width:143px}.hero h1{font-size:2.2rem}.capabilities summary{flex-direction:column;gap:5px}.disclosure-hint{align-self:flex-end}.specialty>div{padding:20px}}
@media(max-height:500px) and (orientation:landscape){.hero-content{padding-block:42px 80px}.hero{min-height:0}.hero h1{font-size:2.6rem}.area-dialog{max-height:calc(100dvh - 20px)}.dialog-content{padding:56px 28px 25px}.build-intro{display:none}}
@media(hover:none){.solution-card:hover,.specialty:hover,.button:hover{transform:none}}

.nodi-section img{width:100%;max-width:480px;height:auto;max-height:none;border-radius:0;object-fit:contain}@media(max-width:700px){.nodi-section img{width:min(100%,330px);justify-self:center}}
