
:root{--navy:#081c35;--blue:#1254a0;--sky:#eaf3fc;--ink:#1d3045;--muted:#5d7085;--line:#dce5ef}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.7 Inter,Arial,sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}.wrap{max-width:1190px;margin:auto;padding:0 25px}.top{background:#071b32;color:#dbeaff;font-size:13px}.top .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}.top a:hover{color:white}.nav{background:white;position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line);box-shadow:0 3px 12px #102e4b0a}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:79px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;color:var(--navy);font-size:21px;letter-spacing:-.6px;line-height:1.1}.mark{display:grid;place-items:center;width:44px;height:44px;background:var(--blue);color:white;border-radius:10px;font-size:25px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1.3px;margin-top:6px}.links{display:flex;gap:21px;align-items:center;font-size:13px;font-weight:700}.links a:hover,.links a.active{color:var(--blue)}.button{display:inline-block;background:#1765b6;color:white!important;padding:12px 21px;border-radius:6px;font-weight:750;border:0;cursor:pointer}.button:hover{background:#0c4788}.button.outline{background:transparent;border:1px solid #a7c8ec;color:#fff!important}.hero{background:linear-gradient(110deg,#071b34ed,#0c3762e6),radial-gradient(circle at 90% 10%,#2768a7,#071b34);color:white;padding:95px 0 98px}.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:800;color:#78baff}.hero h1{font-size:clamp(35px,5vw,62px);line-height:1.13;max-width:900px;letter-spacing:-1.7px;margin:15px 0 20px}.hero p{font-size:19px;max-width:730px;color:#d7e5f4}.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:30px}.stats{display:flex;gap:45px;flex-wrap:wrap;margin-top:48px;color:#e5effa;font-size:13px}.stats strong{display:block;color:white;font-size:21px}.section{padding:78px 0}.section.alt{background:#f5f8fc}.kicker{color:var(--blue);font-size:12px;font-weight:800;letter-spacing:1.7px;text-transform:uppercase}.section h2{font-size:clamp(27px,3vw,39px);line-height:1.2;color:var(--navy);letter-spacing:-.8px;margin:10px 0 18px}.lead{color:var(--muted);max-width:780px;font-size:17px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:33px}.service{border:1px solid var(--line);background:white;padding:30px;border-radius:10px;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.service:hover{transform:translateY(-4px);box-shadow:0 15px 35px #0b315017}.service .symbol{display:grid;place-items:center;background:var(--sky);color:var(--blue);border-radius:9px;width:52px;height:52px;font-size:27px}.service h3{font-size:19px;line-height:1.35;color:var(--navy);margin:20px 0 10px}.service p{color:var(--muted);font-size:14px;flex:1}.more{font-weight:800;color:var(--blue);font-size:14px;margin-top:12px}.split{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center}.panel{background:#e9f2fc;border-left:5px solid var(--blue);padding:30px;border-radius:6px}.panel h3{margin-top:0;color:var(--navy)}.checks{padding-left:20px}.checks li{margin-bottom:10px}.cta{background:#0b2a4e;color:white;padding:60px 0}.cta h2{color:white}.cta p{color:#d0e1f3}.footer{background:#06172a;color:#bed0e1;padding:46px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:40px}.footer h3{color:white;margin:0 0 12px}.footer a:hover{color:white}.footlinks{display:flex;flex-direction:column;gap:7px;font-size:14px}.copyright{border-top:1px solid #24405d;padding-top:20px;margin-top:34px;font-size:12px}.pagehero{background:linear-gradient(110deg,#081d37,#124777);color:white;padding:65px 0}.pagehero h1{font-size:clamp(29px,4vw,47px);line-height:1.2;max-width:1000px;margin:10px 0}.pagehero p{color:#d8e7f5;max-width:760px}.detail{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:55px}.article{overflow-wrap:anywhere}.article p{margin:0 0 16px}.article h2{font-size:23px;color:var(--navy);margin:38px 0 13px;padding-top:12px;border-top:1px solid var(--line)}.article h3{font-size:19px;color:var(--navy);margin:27px 0 10px}.article ul{padding-left:25px;margin:12px 0 22px}.article li{margin:6px 0}.side{position:sticky;top:110px;align-self:start;background:#f3f7fc;padding:25px;border-radius:9px}.side h3{margin-top:0}.side a{display:block;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.side a:hover{color:var(--blue)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:50px}.contact-grid input,.contact-grid textarea{width:100%;padding:13px;border:1px solid #cbd8e5;border-radius:5px;font:inherit;margin:7px 0 17px}.contact-grid label{font-weight:700;font-size:14px}.contact-grid textarea{min-height:140px;resize:vertical}.note{font-size:13px;color:var(--muted)}.mobile-toggle{display:none;background:none;border:0;font-size:27px;color:var(--navy);cursor:pointer}@media(max-width:1050px){.links{gap:11px;font-size:12px}.brand{font-size:17px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.mobile-toggle{display:block}.links{display:none;position:absolute;top:79px;left:0;right:0;background:white;flex-direction:column;align-items:stretch;padding:20px 25px;box-shadow:0 12px 25px #0002;gap:15px}.links.open{display:flex}.hero{padding:65px 0}.grid,.split,.detail,.contact-grid,.footer-grid{grid-template-columns:1fr}.side{position:static}.section{padding:55px 0}.stats{gap:22px}.top .wrap{font-size:11px}.brand{font-size:18px}}

/* 2026 bright editorial redesign */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#112b49;--blue:#086ccf;--sky:#eaf6ff;--ink:#21384f;--muted:#62758a;--line:#e0eaf2}
body{font-family:'DM Sans',Arial,sans-serif;background:#fff;color:var(--ink)}h1,h2,h3,.brand{font-family:Manrope,'DM Sans',sans-serif}.wrap{max-width:1250px}.top{background:#eff8ff;color:#285273;border-bottom:1px solid #d8ebf9}.top a{color:#0064ba}.top a:hover{color:#004a8c}.nav{box-shadow:0 7px 24px #1b5a9210}.nav-inner{min-height:87px}.brand{font-size:23px;letter-spacing:-1px}.mark{background:linear-gradient(135deg,#05a8e7,#1262c9);border-radius:13px;width:49px;height:49px;box-shadow:0 6px 15px #087bd03b}.brand small{color:#50819f;font-size:9px;letter-spacing:1.5px}.links{font-size:13px}.links .button{box-shadow:0 5px 13px #086ccf30}.button{background:#0879db;border-radius:8px;padding:14px 23px;box-shadow:0 5px 16px #0879db28;transition:.2s}.button:hover{background:#005cb4;transform:translateY(-1px)}.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(90deg,#f5fbff 0%,#e8f6ff 56%,#c9ebff 100%);color:#123350;padding:100px 0 105px}.hero:before{content:'';position:absolute;inset:0 0 0 45%;background:url('assets/infrastructure.svg') center right/cover no-repeat;opacity:.94;z-index:-1}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5fbff 0%,#f1faff 39%,#effaffb5 55%,transparent 88%);z-index:-1}.hero .wrap{position:relative}.eyebrow{color:#0878c8;background:#dff2ff;border:1px solid #b8e2ff;padding:8px 13px;border-radius:50px;letter-spacing:1.4px;font-size:11px}.hero h1{color:#113453;font-size:clamp(39px,5vw,66px);max-width:750px;letter-spacing:-2.5px;line-height:1.1;margin-top:26px}.hero h1 em{font-style:normal;color:#0879d8}.hero p{color:#48677f;max-width:630px;font-size:18px;line-height:1.8}.hero .button.outline{color:#086ccf!important;border:1px solid #7db6e2;background:#fff9}.stats{color:#52718b;gap:32px;margin-top:52px}.stats>div{padding-left:18px;border-left:3px solid #3da6ed}.stats strong{color:#0e416c;font-size:20px}.section{padding:95px 0}.section.alt{background:#f3f9fe}.kicker{color:#087bcf}.section h2{color:#103758;font-size:clamp(30px,3.5vw,45px);letter-spacing:-1.5px}.lead{color:#61778b}.grid{gap:20px;margin-top:40px}.service{border:1px solid #dceaf5;border-radius:17px;padding:30px;box-shadow:0 7px 22px #135a8710;position:relative;overflow:hidden}.service:before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#1ab4e9,#0874d1)}.service:nth-child(2):before{background:linear-gradient(90deg,#08c7b1,#087bcf)}.service:nth-child(3):before{background:linear-gradient(90deg,#ffba4c,#ed8a21)}.service:nth-child(4):before{background:linear-gradient(90deg,#807bff,#4a73d8)}.service:nth-child(5):before{background:linear-gradient(90deg,#2bc9a1,#1e9bb6)}.service:nth-child(6):before{background:linear-gradient(90deg,#ff9b65,#f06472)}.service:hover{transform:translateY(-7px);box-shadow:0 20px 40px #105a8a1c}.service .symbol{background:#e9f6ff;color:#0c79ce;width:59px;height:59px;border-radius:14px;font-size:30px}.service h3{color:#123a5d;font-size:19px}.service p{line-height:1.7}.more{color:#0879d8}.panel{background:white;border:1px solid #d8ebf9;border-left:5px solid #15a3dc;box-shadow:0 15px 35px #125c8912;border-radius:15px;padding:35px}.checks li::marker{color:#0c9bcf}.cta{background:linear-gradient(110deg,#0c73c7,#0bb3d6);padding:72px 0}.cta p{color:#e8faff}.cta .button{background:white;color:#0866b2!important}.footer{background:#12314e;color:#c6dceb}.footer h3{color:white}.pagehero{background:linear-gradient(105deg,#eaf7ff,#cdeaff);color:#103758;padding:72px 0;border-bottom:1px solid #d0e9f7}.pagehero h1{color:#103758}.pagehero p{color:#4c6a82}.article h2{color:#123a5d}.side{background:#f0f8fe;border:1px solid #d8eafa;border-radius:14px}.contact-grid input,.contact-grid textarea{border-radius:9px;background:#fbfdff}.contact-grid input:focus,.contact-grid textarea:focus{outline:2px solid #a4dfff;border-color:#1c9be6}
@media(max-width:760px){.hero{padding:75px 0 80px}.hero:before{inset:15% -40% 0 10%;opacity:.17}.hero:after{background:linear-gradient(90deg,#f5fbfff0,#f5fbffbb)}.hero h1{letter-spacing:-1.6px}.section{padding:65px 0}.links{top:87px}.stats{gap:18px}}

/* GigaInfra photographic redesign */
:root{--orange:#f57a13;--cyan:#00a5cf}
body{background:#fff}
.nav{background:#fff!important}
.hero{background:linear-gradient(115deg,#f7fcff 0%,#e8f7ff 60%,#fff 100%)!important; color:#0b2444!important;position:relative;overflow:hidden}
.hero .wrap{position:relative;min-height:450px;padding-top:72px;padding-bottom:55px}
.hero h1{color:#102b50!important;position:relative;z-index:1;max-width:750px}
.hero h1 em{color:#078acb!important}
.hero p{color:#294562!important;position:relative;z-index:1;max-width:580px}
.hero .eyebrow{color:#087ab8!important;position:relative;z-index:1}
.hero-photo{position:absolute;right:0;top:45px;width:42%;height:355px;object-fit:cover;border-radius:26px;box-shadow:0 20px 50px #0d4e8d2b}
.hero .actions,.hero .stats{position:relative;z-index:1}
.hero .stats{max-width:650px}
.button{background:var(--orange)!important;color:#fff!important;border-color:var(--orange)!important}
.button.outline{background:#fff!important;color:#0759a5!important;border-color:#0a80d2!important}
.service{overflow:hidden;padding-top:0!important;border-radius:16px!important;transition:transform .2s,box-shadow .2s}
.service:hover{transform:translateY(-5px);box-shadow:0 18px 34px #0b4b8d25}
.service-photo{display:block;width:calc(100% + 48px);height:190px;object-fit:cover;margin:0 -24px 20px}
.service-hero-image{display:block;width:min(1080px,90%);height:330px;object-fit:cover;margin:25px auto 0;border-radius:20px;box-shadow:0 15px 35px #144a7c30}
.faq-items{max-width:900px;margin:25px auto}.faq-items details{background:#f4faff;border:1px solid #d9eaf7;border-radius:12px;margin:12px 0;padding:17px 22px}.faq-items summary{font-weight:700;cursor:pointer;color:#12345b}.faq-items p{line-height:1.7;color:#3c5067}.faq-section{background:#fff}
@media(max-width:900px){.hero-photo{position:relative;top:auto;right:auto;width:100%;height:260px;margin-top:24px}.hero .wrap{padding-top:45px}.hero h1{max-width:none}.service-photo{height:160px}}

/* Six independent service pages in the main navigation */
.services-dropdown{position:relative;display:block}
.services-trigger{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:12px 0;color:#163a5a;font-weight:800;white-space:nowrap}
.services-trigger::-webkit-details-marker{display:none}
.services-trigger:after{content:"";width:7px;height:7px;border-right:2px solid #0879d8;border-bottom:2px solid #0879d8;transform:rotate(45deg);margin-top:-4px}
.services-dropdown[open] .services-trigger:after{transform:rotate(225deg);margin-top:4px}
.services-trigger:hover,.current-service .services-trigger{color:#0879d8}
.services-menu{position:absolute;right:-125px;top:calc(100% + 13px);width:min(700px,90vw);display:grid;grid-template-columns:1fr 1fr;gap:7px;background:white;border:1px solid #d8eafa;box-shadow:0 20px 55px #10375830;border-radius:16px;padding:15px;z-index:30}
.services-menu:before{content:"";position:absolute;top:-15px;left:0;right:0;height:15px}
.links .service-nav-link{display:flex;flex-direction:column;gap:3px;padding:14px 15px;border-radius:10px;line-height:1.35;color:#123a5d}
.links .service-nav-link:hover,.links .service-nav-link.active{background:#eaf6ff;color:#0879d8}
.service-nav-link strong{font-size:13px}
.service-nav-link small{font-size:11px;font-weight:500;color:#61778b}
@media(min-width:761px){.services-dropdown:not([open]):hover .services-menu{display:grid}.services-dropdown:not([open]) .services-menu{display:none}.services-dropdown:hover .services-trigger{color:#0879d8}}
@media(max-width:760px){.links{max-height:calc(100dvh - 95px);overflow-y:auto}.services-dropdown{width:100%}.services-trigger{padding:3px 0}.services-menu{position:static;width:100%;box-shadow:none;border:0;border-left:3px solid #11a5e3;border-radius:0;padding:7px 0 7px 10px;margin-top:8px;grid-template-columns:1fr;gap:2px}.links .service-nav-link{padding:9px 11px}.service-nav-link strong{font-size:13px}.services-menu:before{display:none}}

/* Direct, always-visible standalone service links (desktop) */
@media(min-width:1101px){
 .nav-inner{max-width:1480px;width:calc(100% - 40px);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:12px 0}
 .nav .links{display:flex;flex:1;justify-content:flex-end;flex-wrap:wrap;gap:9px 15px;font-size:12px;line-height:1.35}
 .nav .links>a{white-space:normal;max-width:138px;text-align:center}
 .nav .links>a.direct-service-link{border-bottom:2px solid transparent;padding:5px 0}
 .nav .links>a.direct-service-link:hover,.nav .links>a.direct-service-link.active{border-color:#0b92de}
 .nav .links>a.button{max-width:none;white-space:nowrap}
}
@media(max-width:1100px){.nav .links>a.direct-service-link{display:block;padding:6px 0;border-bottom:1px solid #e9eff5}}

/* Shared navigation and responsive type */
html { scroll-padding-top: 9rem; }
body { font-family: "DM Sans", "Segoe UI", system-ui, sans-serif; font-size: clamp(17px, 1.35vw, 19px); }
p, li { overflow-wrap: anywhere; }
.wrap { width: min(92%, 1280px); }
.nav .nav-inner {
  display: grid; grid-template-columns: 1fr auto; gap: 0 16px;
  padding: 10px 0 0; width: min(94%, 1380px); min-height: auto;
}
.nav .brand { align-self: center; justify-self: start; min-width: 0; }
.brand img { display: block; width: clamp(180px, 23vw, 310px); height: auto; }
.nav .nav-inner .links {
  display: flex; position: static; grid-column: 1 / -1; width: 100%;
  justify-content: space-between; flex-wrap: wrap; gap: 2px 14px;
  padding: 5px 0 0; font-size: 16px; border-top: 1px solid #dbe9f4;
}
.nav .nav-inner .links > a {
  max-width: none; padding: 10px 0; white-space: nowrap; border-bottom: 3px solid transparent;
}
.nav .nav-inner .links > a.active { border-color: #0879db; }
.header-cta { justify-self: end; align-self: center; }
.top a { display: inline-block; overflow-wrap: anywhere; max-width: 100%; }
.button { font-size: clamp(16px, 1.2vw, 18px); max-width: 100%; white-space: normal; }
.skip-link { position: fixed; left: 12px; top: 8px; z-index: 30; transform: translateY(-200%); background: white; padding: 10px 15px; }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid #e87322; outline-offset: 4px; }
.hero { padding: clamp(36px, 6vw, 88px) 0 !important; }
.hero:before { display: none; }
.hero .wrap { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); column-gap: 42px; min-height: 0; padding: 0; align-content: center; }
.hero .wrap > :not(img) { grid-column: 1; }
.hero .hero-photo {
  position: static; grid-column: 2; grid-row: 1 / 7; align-self: stretch;
  width: 100%; height: 100%; min-height: 370px; max-height: 540px; margin: 0;
  object-fit: cover; border-radius: 22px;
}
.hero h1, .pagehero h1 { font-size: clamp(34px, 4vw, 60px); line-height: 1.12; }
.hero h1 { margin: 15px 0; max-width: none; font-size: clamp(34px, 4.15vw, 56px); }
.hero p, .lead, .pagehero p { font-size: clamp(17px, 1.46vw, 20px); }
.section h2, .cta h2 { font-size: clamp(27px, 3vw, 39px); line-height: 1.2; }
.article h3, .panel h3, .side h2 { font-size: clamp(22px, 2.15vw, 28px); line-height: 1.28; }
.article h4 { font-size: clamp(19px, 1.65vw, 23px); }
.section .service h3 { font-size: clamp(20px, 1.8vw, 24px); }
.section .service p, .article p, .article li, .section .side p { font-size: inherit; }
.service-photo { aspect-ratio: 16 / 9; width: 100%; height: auto; object-fit: cover; }
.section .service .more { font-size: 16px; }
.side-photo { display: block; max-width: 100%; height: auto; border-radius: 10px; margin-bottom: 20px; }
.survey-scope { padding: 16px 0; border-bottom: 1px solid #dae9f4; }
.article .survey-scope h2 { font-size: clamp(23px, 2.3vw, 30px); }
.footer-brand { display: inline-block; background: #fff; border-radius: 10px; padding: 8px 10px; max-width: 100%; }
.footer-brand img { display: block; width: min(255px, 100%); height: auto; }
.footer, .footer h3, .footer p, .footer a, .footer .copyright { font-size: 16px; overflow-wrap: anywhere; }
form input, form select, form textarea { font: inherit; }
@media (max-width: 1100px) {
  .nav .nav-inner { grid-template-columns: minmax(0,1fr) auto auto; padding: 8px 0; }
  .nav .mobile-toggle { display: block; justify-self: end; min-width: 44px; min-height: 44px; }
  .nav .nav-inner .links { display: none; max-height: 60dvh; overflow-y: auto; }
  .nav .nav-inner .links.open { display: flex; align-items: stretch; flex-flow: column; background: white; box-shadow: none; }
  .nav .nav-inner .links > a { text-align: left; padding: 8px 10px; margin: 0; white-space: normal; }
}
@media (max-width: 850px) {
  .hero .wrap { grid-template-columns: minmax(0,1fr); }
  .hero .hero-photo { grid-column: 1; grid-row: auto; margin-top: 24px; min-height: 0; height: clamp(220px, 46vw, 360px); }
}
@media (max-width: 580px) {
  .nav .nav-inner { grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; }
  .nav .mobile-toggle { grid-column: 2; grid-row: 1; }
  .nav .header-cta { grid-column: 1 / -1; grid-row: 2; justify-self: start; padding: 8px 13px; }
  .brand img { width: min(225px, 100%); }
  .hero h1 { letter-spacing: -.9px; }
}
.hero .hero-photo { object-position: 36% 50%; }
.side { top: 150px; }
.side a { font-size: 16px; }
.side a.button { display: inline-block; margin-top: 1rem; padding: 11px 14px; }
.detail { grid-template-columns: minmax(0, 1fr) minmax(245px, 28%); }
@media (max-width: 850px) { .detail { grid-template-columns: minmax(0, 1fr); } .side { position: static; } }
@media (max-width: 500px) { .hero .button { padding: 11px 14px; } .hero .eyebrow { letter-spacing: 1px; } }
