.inner-page main { overflow: clip; }
.inner-page .site-header { background: linear-gradient(180deg,rgba(8,10,12,.69),transparent); }
.inner-page .site-header.is-scrolled { background: rgba(16,19,21,.95); }
.inner-page .primary-navigation a[aria-current="page"] { color: #fff; }
.nav-dropdown { position: relative; color: #fff; }
.nav-dropdown summary { display: inline-flex; align-items: center; gap: 5px; padding: 12px 0; color: rgba(255,255,255,.77); cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .11em; list-style: none; text-transform: uppercase; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary > span { color: #84a9de; font-size: 14px; }
.nav-dropdown[open] summary, .nav-dropdown summary:hover { color: white; }
.nav-submenu { position: absolute; top: calc(100% + 8px); left: -17px; min-width: 185px; display: grid; padding: 8px 15px; border: 1px solid rgba(255,255,255,.16); background: rgba(13,16,18,.97); opacity: 0; transform: translateY(-5px); transition: opacity .18s ease, transform .18s ease; }
.nav-dropdown[open] .nav-submenu { opacity: 1; transform: translateY(0); }
.nav-submenu a { padding: 12px 3px; border-bottom: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.75); font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.nav-submenu a:last-child { border-bottom: 0; }
.nav-submenu a:hover, .nav-submenu a[aria-current="page"] { color: #8db4ee; }

.inner-hero { position: relative; min-height: max(700px, 92svh); display: flex; align-items: center; overflow: hidden; background-color: #202529; color: white; }
.inner-hero::before { position: absolute; inset: 0; content: ""; background-position: center; background-size: cover; animation: hero-arrive 1.4s cubic-bezier(.2,.7,.2,1) both; }
.inner-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(8,11,13,.88),rgba(8,11,13,.64) 50%,rgba(8,11,13,.25)),linear-gradient(0deg,rgba(8,11,13,.65),transparent 52%,rgba(8,11,13,.2)); }
.inner-hero-services::before { background-image: url("https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-construction::before { background-image: url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-infrastructure::before { background-image: url("https://images.unsplash.com/photo-1513828583688-c52646db42da?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-projects::before { background-image: url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-capabilities::before { background-image: url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-machinery::before { background-image: url("https://images.unsplash.com/photo-1580901368919-7738efb0f87e?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-clients::before { background-image: url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-contact::before { background-image: url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=2200&q=88"); }
.inner-hero-content { position: relative; padding-top: 145px; padding-bottom: 105px; }
.inner-hero-content > .eyebrow { margin-bottom: 27px; }
.inner-hero h1 { max-width: 1000px; margin: 0; font-family: var(--display); font-size: clamp(82px, 12vw, 160px); font-weight: 600; letter-spacing: -.035em; line-height: .83; text-transform: uppercase; }
.inner-hero h1 span { color: #78a1db; }
.inner-hero-bottom { display: flex; align-items: end; justify-content: space-between; gap: 32px; max-width: 975px; margin-top: 35px; }
.inner-hero-bottom p { max-width: 485px; margin: 0; color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.9; }
.inner-hero-bottom .button { flex: 0 0 auto; }
.editorial-intro { padding: clamp(91px, 10vw, 140px) 0; }
.editorial-split { display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: clamp(48px, 8vw, 115px); }
.editorial-reverse { grid-template-columns: 1.14fr .86fr; }
.editorial-reverse .editorial-copy { order: 2; }
.editorial-reverse .editorial-image { order: 1; }
.editorial-copy h2, .page-section-head h2, .portfolio-heading h2, .project-note-layout h2, .technical-layout h2, .contact-details-layout h2, .map-placeholder h2, .quote-aside h2 { margin: 0; font-family: var(--display); font-size: clamp(60px, 7.8vw, 103px); font-weight: 600; letter-spacing: -.025em; line-height: .86; text-transform: uppercase; }
.editorial-copy h2 em, .page-section-head h2 em, .portfolio-heading h2 em, .technical-layout h2 em, .contact-details-layout h2 em, .map-placeholder h2 em, .quote-aside h2 em { color: var(--blue); font-style: normal; }
.editorial-copy > p:not(.eyebrow) { max-width: 440px; margin: 22px 0 0; color: var(--body); font-size: 11px; line-height: 1.95; }
.editorial-image { position: relative; height: clamp(360px, 43vw, 555px); margin: 0; overflow: hidden; background: #c5c9c7; }
.editorial-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg,rgba(8,11,13,.48),transparent 31%); }
.editorial-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
.editorial-image:hover img { transform: scale(1.035); }
.editorial-image figcaption { position: absolute; z-index: 1; bottom: 19px; left: 20px; color: white; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.page-section-head { max-width: 750px; margin-bottom: 48px; }
.page-section-head .eyebrow { margin-bottom: 22px; }
.page-section-head h2 { font-size: clamp(64px, 8.3vw, 110px); }
.page-section-head > p:last-child:not(.eyebrow) { max-width: 410px; margin: 19px 0 0; color: var(--body); font-size: 10px; line-height: 1.85; }
.section-dark .page-section-head > p:last-child:not(.eyebrow) { color: #b3b8ba; }
.service-index, .discipline-section, .equipment-section { padding: clamp(91px, 10vw, 142px) 0; }
.service-index .page-section-head, .discipline-section .page-section-head, .equipment-section .page-section-head { margin-bottom: 52px; }
.page-list { border-top: 1px solid var(--line-dark); }
.page-list-row { display: grid; grid-template-columns: 57px 1fr 23px; gap: 18px; align-items: start; padding: 23px 0; border-bottom: 1px solid var(--line-dark); color: inherit; transition: padding .25s ease; }
.page-list-row:hover { padding-right: 8px; padding-left: 8px; }
.page-list-row > span { padding-top: 5px; color: #86a9d8; font-family: var(--display); font-size: 20px; }
.page-list-row h3 { margin: 0; font-family: var(--display); font-size: clamp(25px, 3vw, 39px); font-weight: 600; line-height: .97; text-transform: uppercase; transition: color .2s ease; }
.page-list-row:hover h3 { color: #a7c4e9; }
.page-list-row p { max-width: 545px; margin: 8px 0 0; color: #aeb4b6; font-size: 10px; line-height: 1.8; }
.page-list-row > i { padding-top: 4px; color: #81a7dc; font-size: 17px; font-style: normal; opacity: 0; transform: translate(-5px,5px); transition: opacity .2s ease, transform .2s ease; }
.page-list-row:hover > i { opacity: 1; transform: none; }
.process-band { padding: clamp(87px, 10vw, 135px) 0; }
.process-band .page-section-head { margin-bottom: 46px; }
.process-band-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.process-band-grid > div { min-height: 117px; display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 14px 14px 14px 20px; border-right: 1px solid var(--line-light); }
.process-band-grid > div:first-child { padding-left: 0; }
.process-band-grid > div:last-child { border-right: 0; }
.process-band-grid span { color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.process-band-grid h3 { margin: 0; font-family: var(--display); font-size: clamp(20px, 2.7vw, 33px); font-weight: 600; text-transform: uppercase; }
.process-five { grid-template-columns: repeat(5,1fr); }
.page-cta { position: relative; min-height: 540px; display: flex; align-items: center; overflow: hidden; background: #202529; color: white; }
.page-cta-image, .page-cta-shade { position: absolute; inset: 0; }
.page-cta-image { background: url("https://images.unsplash.com/photo-1487958449943-2429e8be8625?auto=format&fit=crop&w=2200&q=85") center / cover; }
.page-cta-shade { background: linear-gradient(90deg,rgba(8,11,13,.88),rgba(8,11,13,.58) 70%,rgba(8,11,13,.35)); }
.page-cta-content { position: relative; padding-block: 80px; }
.page-cta-content h2 { margin: 0 0 29px; font-family: var(--display); font-size: clamp(70px, 10vw, 130px); font-weight: 600; letter-spacing: -.025em; line-height: .85; text-transform: uppercase; }
.page-cta-content h2 span { color: #78a1db; }
.discipline-section { background: var(--ink-soft); }
.discipline-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-dark); }
.discipline-item { min-height: 188px; padding: 23px 27px 25px 0; border-bottom: 1px solid var(--line-dark); }
.discipline-item:nth-child(even) { padding-left: 27px; border-left: 1px solid var(--line-dark); }
.discipline-item > span { color: #87aadd; font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.discipline-item h3 { margin: 22px 0 8px; font-family: var(--display); font-size: clamp(27px, 3.2vw, 39px); font-weight: 600; text-transform: uppercase; }
.discipline-item p { max-width: 400px; margin: 0; color: #aab0b2; font-size: 10px; line-height: 1.8; }
.timeline-section { padding: clamp(88px, 10vw, 136px) 0; }
.quality-safety { padding: clamp(89px, 10vw, 139px) 0; }
.quality-grid { display: grid; grid-template-columns: 1fr 1fr; }
.quality-grid article { padding-right: 8%; }
.quality-grid article + article { padding-right: 0; padding-left: 9%; border-left: 1px solid var(--line-dark); }
.quality-grid h2 { margin: 0; font-family: var(--display); font-size: clamp(60px, 8vw, 100px); font-weight: 600; line-height: .86; text-transform: uppercase; }
.quality-grid h2 span { color: #79a1d9; }
.quality-grid article > p:not(.eyebrow) { max-width: 390px; margin: 19px 0; color: #b4b9bb; font-size: 10px; line-height: 1.9; }
.placeholder-tag { color: #727a7e; font-size: 8px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.quality-grid .placeholder-tag { color: #8c9699; }
.infrastructure-areas { padding: clamp(90px, 10vw, 140px) 0; }
.infrastructure-list { border-top: 1px solid var(--line-dark); }
.technical-system { padding: clamp(90px, 10vw, 140px) 0; }
.technical-layout { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 9%; }
.technical-layout > div:first-child > p:last-child { max-width: 340px; color: var(--body); font-size: 10px; line-height: 1.85; }
.technical-orbit { min-height: 390px; position: relative; display: grid; place-items: center; border: 1px solid var(--line-light); background-image: linear-gradient(rgba(16,19,21,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(16,19,21,.045) 1px,transparent 1px); background-size: 32px 32px; }
.technical-orbit::before, .technical-orbit::after { position: absolute; width: 65%; aspect-ratio: 1; border: 1px solid rgba(20,87,184,.27); border-radius: 50%; content: ""; }
.technical-orbit::after { width: 42%; }
.technical-orbit > i { z-index: 1; width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid var(--blue); color: var(--blue); font-family: var(--display); font-size: 30px; font-style: normal; }
.technical-orbit > span { position: absolute; z-index: 2; padding: 7px 10px; background: var(--paper); color: var(--ink); font-size: 8px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.technical-orbit > span:nth-child(1) { top: 12%; left: 39%; }.technical-orbit > span:nth-child(2) { top: 36%; right: 5%; }.technical-orbit > span:nth-child(3) { right: 20%; bottom: 12%; }.technical-orbit > span:nth-child(4) { bottom: 18%; left: 8%; }.technical-orbit > span:nth-child(5) { top: 38%; left: 5%; }.technical-orbit > span:nth-child(6) { top: 14%; right: 9%; }
.infrastructure-stats { padding: 60px 0; }
.infra-stat-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line-dark); }
.infra-stat-grid > div { display: flex; flex-direction: column; gap: 9px; padding: 23px 22px; border-right: 1px solid var(--line-dark); }
.infra-stat-grid > div:first-child { padding-left: 0; }.infra-stat-grid > div:last-child { border-right: 0; }
.infra-stat-grid strong { font-family: var(--display); font-size: clamp(43px, 6vw, 72px); font-weight: 600; }.infra-stat-grid sup { color: #7fa6dd; font-size: .5em; }
.infra-stat-grid span { color: #aab0b2; font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.projects-portfolio { padding: clamp(90px, 10vw, 140px) 0 90px; }
.portfolio-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 33px; }
.portfolio-heading .eyebrow { margin-bottom: 20px; }.portfolio-heading .placeholder-tag { max-width: 250px; margin-bottom: 7px; line-height: 1.8; }
.project-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 25px; border-bottom: 1px solid var(--line-light); }
.project-filter button { padding: 12px 17px; border: 0; border-bottom: 2px solid transparent; background: none; color: #666e71; cursor: pointer; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-filter button.is-active, .project-filter button:hover { border-bottom-color: var(--blue); color: var(--ink); }
.portfolio-grid { display: grid; grid-template-columns: 1.16fr .84fr; gap: 14px; }
.project-item { position: relative; min-height: 350px; display: block; overflow: hidden; background: #303538; color: white; }
.project-item::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg,rgba(8,11,13,.84),transparent 60%); }
.project-item img { position: absolute; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
.project-item:hover img { transform: scale(1.04); }.project-feature { min-height: 530px; grid-row: span 2; }.project-wide { min-height: 370px; grid-column: 1 / -1; }
.project-meta { position: absolute; z-index: 1; right: 23px; bottom: 23px; left: 23px; display: grid; gap: 7px; }
.project-meta small, .project-meta > span { color: rgba(255,255,255,.75); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.project-meta strong { font-family: var(--display); font-size: clamp(27px, 4vw, 49px); font-weight: 600; text-transform: uppercase; }.project-item > i { position: absolute; z-index: 2; top: 17px; right: 17px; color: #fff; font-size: 19px; font-style: normal; transition: transform .2s ease; }.project-item:hover > i { transform: translate(3px,-3px); }
.project-item[hidden] { display: none; }
.project-note-section { padding: 76px 0; }.project-note-layout { display: grid; grid-template-columns: .4fr .8fr 1fr; gap: 5%; align-items: start; }.project-note-layout h2 { color: white; font-size: clamp(44px, 6vw, 74px); }.project-note-layout > p:last-child { max-width: 390px; margin: 0; color: #afb5b7; font-size: 10px; line-height: 1.9; }
.project-detail-hero { position: relative; min-height: max(650px,85svh); display: flex; align-items: end; overflow: hidden; background: #202529; color: white; }.detail-hero-image { position: absolute; inset: 0; background: url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=2400&q=90") center / cover; animation: hero-arrive 1.4s cubic-bezier(.2,.7,.2,1) both; }.detail-hero-content { position: relative; padding-top: 160px; padding-bottom: 83px; }.detail-hero-content h1 { margin: 0; font-family: var(--display); font-size: clamp(80px, 13vw, 170px); line-height: .86; text-transform: uppercase; }.detail-location { margin: 18px 0 0; color: rgba(255,255,255,.8); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }.detail-location span { color: #7ca5dc; padding-inline: 6px; }
.project-facts { padding: 27px 0; border-bottom: 1px solid var(--line-light); }.project-facts-grid { display: grid; grid-template-columns: repeat(5,1fr); }.project-facts-grid > div { padding: 9px 16px; border-right: 1px solid var(--line-light); }.project-facts-grid > div:first-child { padding-left: 0; }.project-facts-grid > div:last-child { border: 0; }.project-facts-grid span, .project-facts-grid strong { display: block; }.project-facts-grid span { color: #737b7d; font-size: 7px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.project-facts-grid strong { margin-top: 8px; font-family: var(--display); font-size: 20px; font-weight: 600; text-transform: uppercase; }
.project-overview { padding: 90px 0; }.project-overview-grid { display: grid; grid-template-columns: .45fr .9fr 1fr; gap: 5%; align-items: start; }.project-overview-grid h2 { margin: 0; font-family: var(--display); font-size: clamp(58px, 7vw, 89px); line-height: .86; text-transform: uppercase; }.project-overview-grid h2 em { color: var(--blue); font-style: normal; }.project-overview-grid > div p { margin: 0 0 15px; color: var(--body); font-size: 10px; line-height: 1.9; }
.project-scope { padding: 88px 0; }.project-scope-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; }.project-scope h2 { margin: 0; font-family: var(--display); font-size: clamp(60px, 8vw, 98px); line-height: .87; text-transform: uppercase; }.project-scope h2 span { color: #7ca3da; }.project-scope ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }.project-scope li { display: flex; gap: 18px; align-items: center; min-height: 48px; border-bottom: 1px solid var(--line-dark); font-family: var(--display); font-size: 22px; text-transform: uppercase; }.project-scope li span { color: #85a9dc; font-family: var(--sans); font-size: 8px; }
.project-gallery { padding: 87px 0; }.detail-gallery { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: 250px 250px; gap: 12px; }.detail-gallery button { min-width: 0; padding: 0; border: 0; overflow: hidden; background: #252a2d; cursor: zoom-in; }.detail-gallery button:first-child { grid-row: span 2; }.detail-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }.detail-gallery button:hover img { transform: scale(1.04); }.lightbox { width: min(90vw,1100px); max-width: none; max-height: 90vh; padding: 15px; border: 1px solid rgba(255,255,255,.22); background: #101315; }.lightbox::backdrop { background: rgba(0,0,0,.88); }.lightbox img { max-height: calc(90vh - 40px); object-fit: contain; }.lightbox button { position: absolute; top: 13px; right: 13px; width: 38px; height: 38px; border: 1px solid white; background: rgba(0,0,0,.6); color: #fff; cursor: pointer; font-size: 24px; }.related-projects { padding: 64px 0; }.related-projects .project-note-layout { grid-template-columns: .45fr 1fr auto; align-items: center; }.related-projects .project-note-layout h2 { font-size: 37px; }
.capability-areas { padding: 92px 0; }.capability-page-layout { display: grid; grid-template-columns: .73fr 1.27fr; gap: 10%; }.capability-page-layout .page-section-head { position: sticky; top: 125px; align-self: start; }.capability-accordion { border-top: 1px solid var(--line-light); }.expertise-row { border-bottom: 1px solid var(--line-light); }.expertise-row summary { display: grid; grid-template-columns: 38px 1fr 20px; gap: 15px; align-items: center; min-height: 72px; cursor: pointer; list-style: none; }.expertise-row summary::-webkit-details-marker { display: none; }.expertise-row summary > span { color: var(--blue); font-size: 8px; }.expertise-row summary strong { font-family: var(--display); font-size: clamp(24px, 3vw, 36px); font-weight: 600; text-transform: uppercase; }.expertise-row summary i { color: var(--blue); font-style: normal; transition: transform .2s ease; }.expertise-row[open] summary i { transform: rotate(45deg); }.expertise-row > p { max-width: 550px; margin: 0 20px 20px 53px; color: var(--body); font-size: 10px; line-height: 1.8; }.technical-approach { padding: 88px 0; }.technical-flow { display: grid; grid-template-columns: repeat(5,1fr); margin-top: 51px; border-block: 1px solid var(--line-dark); }.technical-flow > div { position: relative; min-height: 124px; display: flex; flex-direction: column; justify-content: center; gap: 11px; padding: 14px 17px; border-right: 1px solid var(--line-dark); }.technical-flow > div:first-child { padding-left: 0; }.technical-flow > div:last-child { border: 0; }.technical-flow span { color: #83a8dd; font-size: 8px; }.technical-flow strong { font-family: var(--display); font-size: clamp(22px,3vw,34px); text-transform: uppercase; }.technical-caption { color: #aab0b2; font-size: 8px; }
.machinery-intro { padding: 89px 0; }.equipment-section { padding: 90px 0; }.equipment-row { border-top: 1px solid var(--line-dark); }.equipment-row:last-child { border-bottom: 1px solid var(--line-dark); }.equipment-row summary { display: grid; grid-template-columns: 55px 1fr 22px; align-items: center; gap: 15px; min-height: 83px; cursor: pointer; list-style: none; }.equipment-row summary::-webkit-details-marker { display: none; }.equipment-row summary > span { color: #86aadd; font-family: var(--display); font-size: 20px; }.equipment-row summary strong { font-family: var(--display); font-size: clamp(29px,4vw,47px); font-weight: 600; }.equipment-row summary i { color: #86aadd; font-style: normal; }.equipment-row[open] summary { color: #a9c6ed; }.equipment-row > div { display: grid; grid-template-columns: minmax(220px,.8fr) 1fr; gap: 27px; padding: 0 0 25px 70px; }.equipment-row img { width: 100%; height: 220px; object-fit: cover; }.equipment-row dl { display: grid; grid-template-columns: 130px 1fr; align-content: start; gap: 0; margin: 0; }.equipment-row dt, .equipment-row dd { padding: 12px 8px; border-bottom: 1px solid var(--line-dark); color: #b4b9bb; font-size: 9px; }.equipment-row dt { color: #82a8dd; font-weight: 700; text-transform: uppercase; }
.client-logos { padding: 90px 0; }.client-logos .page-section-head > p:last-child { max-width: 420px; }.logo-placeholder-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line-light); border-left: 1px solid var(--line-light); }.logo-placeholder-grid > div { min-height: 155px; display: grid; place-items: center; border-right: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); color: #8a9294; font-family: var(--display); font-size: 24px; font-weight: 600; letter-spacing: .04em; transition: color .2s ease, background .2s ease; }.logo-placeholder-grid > div:hover { background: #e8e9e6; color: var(--blue); }.client-types { padding: 87px 0; }.client-type-list { border-top: 1px solid var(--line-dark); }.client-type-list article { display: grid; grid-template-columns: 55px .65fr 1fr; gap: 18px; align-items: center; min-height: 105px; border-bottom: 1px solid var(--line-dark); }.client-type-list article > span { color: #81a6dc; font-family: var(--display); font-size: 22px; }.client-type-list h3 { margin: 0; font-family: var(--display); font-size: 33px; text-transform: uppercase; }.client-type-list p { max-width: 430px; color: #aeb4b6; font-size: 9px; line-height: 1.8; }.trust-statement { padding: 100px 0; background: var(--blue); color: white; }.trust-statement h2 { margin: 0; font-family: var(--display); font-size: clamp(66px,11vw,140px); font-weight: 600; line-height: .83; text-transform: uppercase; }.trust-statement h2 span { color: rgba(255,255,255,.63); }
.contact-details-section { padding: 89px 0; }.contact-details-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10%; }.contact-details-layout .page-section-head > p:last-child { max-width: 300px; }.contact-detail-list { border-top: 1px solid var(--line-light); }.contact-detail-list > div { display: grid; grid-template-columns: .5fr 1fr; gap: 20px; align-items: center; min-height: 66px; border-bottom: 1px solid var(--line-light); }.contact-detail-list span { color: #737b7d; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.contact-detail-list strong { font-family: var(--display); font-size: 25px; font-weight: 600; }.contact-form-section { padding: 89px 0; }.contact-form-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 11%; }.contact-form-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(65px,8vw,105px); font-weight: 600; line-height: .85; text-transform: uppercase; }.contact-form-copy h2 span { color: #79a1d9; }.contact-form-copy > p:last-child { max-width: 340px; color: #aeb4b6; font-size: 10px; line-height: 1.9; }.site-form, .quote-form { min-width: 0; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }.site-form label, .quote-form label { display: block; margin: 0 0 20px; color: #e3e5e3; font-size: 9px; font-weight: 700; letter-spacing: .06em; }.site-form label > span, .quote-form label > span { color: #8ab0e7; }.site-form input, .site-form select, .site-form textarea, .quote-form input, .quote-form select, .quote-form textarea { width: 100%; display: block; min-height: 41px; margin-top: 8px; padding: 10px 2px; border: 0; border-bottom: 1px solid rgba(255,255,255,.34); border-radius: 0; outline: none; background: transparent; color: #fff; font-size: 11px; }.site-form select option, .quote-form select option { color: #111; }.site-form textarea, .quote-form textarea { resize: vertical; }.site-form input:focus, .site-form select:focus, .site-form textarea:focus, .quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color: #82a8dd; outline: 2px solid #82a8dd; outline-offset: 3px; }.form-full { grid-column: 1 / -1; }.form-feedback { margin: 14px 0 0; color: #9fa7aa; font-size: 9px; line-height: 1.8; }.form-feedback.is-ready { color: #b9d1f3; }
.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-feedback.is-error { color: #ffb7ac; }
.form-feedback.is-sending { color: #b9d1f3; }
.site-form button:disabled, .quote-form button:disabled { cursor: wait; opacity: .65; }
.map-placeholder { padding: 83px 0; }.map-placeholder-inner { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8%; align-items: center; }.map-placeholder h2 { font-size: clamp(54px,7vw,88px); }.map-placeholder-inner > div:first-child > p:last-child { color: var(--body); font-size: 10px; }.map-embed { display: block; width: 100%; min-height: 300px; border: 0; }
.quote-intro { position: relative; min-height: 540px; display: flex; align-items: center; overflow: hidden; background: #202529; color: white; }.quote-hero-image { position: absolute; inset: 0; background: url("https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=2200&q=88") center / cover; }.quote-hero-content { position: relative; padding-top: 130px; padding-bottom: 68px; }.quote-hero-content h1 { margin: 0; font-family: var(--display); font-size: clamp(78px,10vw,130px); font-weight: 600; line-height: .84; text-transform: uppercase; }.quote-hero-content h1 span { color: #78a1db; }.quote-hero-content > p:last-child { max-width: 500px; margin: 20px 0 0; color: rgba(255,255,255,.78); font-size: 10px; line-height: 1.85; }
.quote-main { padding: 79px 0 100px; }.quote-layout { display: grid; grid-template-columns: .68fr 1.32fr; gap: 10%; align-items: start; }.quote-aside { position: sticky; top: 105px; }.quote-aside h2 { font-size: clamp(60px,7vw,91px); }.quote-aside > p:not(.eyebrow) { max-width: 310px; color: var(--body); font-size: 10px; line-height: 1.85; }.quote-steps-indicator { display: grid; margin-top: 29px; border-top: 1px solid var(--line-light); }.quote-steps-indicator > span { display: flex; gap: 13px; padding: 11px 0; border-bottom: 1px solid var(--line-light); color: #92999b; font-size: 8px; font-weight: 700; }.quote-steps-indicator > span.is-active { color: var(--blue); }.quote-steps-indicator > span.is-complete { color: #333b3e; }.quote-steps-indicator i { color: inherit; font-style: normal; text-transform: uppercase; }.quote-form { padding: 28px; background: var(--ink); color: white; }.quote-step { min-width: 0; margin: 0; padding: 0; border: 0; animation: rise-in .35s ease both; }.quote-step[hidden], .quote-success[hidden] { display: none; }.quote-step legend { display: flex; flex-direction: column; gap: 7px; margin-bottom: 9px; font-family: var(--display); font-size: 37px; font-weight: 600; text-transform: uppercase; }.quote-step legend span { color: #8ab0e7; font-family: var(--sans); font-size: 8px; letter-spacing: .14em; }.quote-step-intro { margin: 0 0 23px; color: #abb2b4; font-size: 10px; }.quote-form label small { display: block; margin-top: 7px; color: #8c9699; font-size: 8px; font-weight: 400; }.field-error { min-height: 17px; margin: 0; color: #ffb7ac; font-size: 9px; }.quote-form-actions { display: flex; align-items: center; gap: 15px; margin-top: 16px; }.quote-form-actions [hidden] { display: none; }.quote-back { border: 0; background: transparent; color: #d5d9d8; cursor: pointer; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.quote-form-status { flex: 1; color: #98a2a5; font-size: 8px; text-align: right; }.quote-success { padding: 40px; border-left: 2px solid var(--blue); background: #e9eae7; }.quote-success h2 { margin: 0; font-family: var(--display); font-size: 76px; line-height: .9; text-transform: uppercase; }.quote-success > p:not(.eyebrow) { max-width: 500px; color: var(--body); font-size: 11px; line-height: 1.9; }

@media (max-width: 980px) {
  .header-inner { width: min(100% - var(--gutter) * 2,1440px); }
  .primary-navigation { gap: 13px; }.primary-navigation > a:not(.nav-cta), .nav-dropdown summary { font-size: 8px; }.nav-cta { padding: 12px; font-size: 8px; }
  .inner-hero h1 { font-size: clamp(75px,11vw,120px); }
  .editorial-split, .editorial-reverse { gap: 6%; }
  .project-facts-grid strong { font-size: 17px; }
  .quote-layout { gap: 6%; }
}
@media (max-width: 1100px) {
  .inner-page .primary-navigation { gap: 0; }
}
@media (max-width: 720px) {
  .inner-page .site-header.is-scrolled { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .inner-page .primary-navigation { overflow-y: auto; justify-content: flex-start; padding-top: 88px; padding-bottom: 35px; }
  .inner-page .primary-navigation > a:not(.nav-cta), .inner-page .nav-dropdown { flex: 0 0 auto; }
  .inner-page .primary-navigation > a:not(.nav-cta) { padding: 18px 0; font-family: var(--display); font-size: clamp(33px,10vw,48px); font-weight: 600; letter-spacing: .02em; }
  .inner-page .nav-dropdown { border-bottom: 1px solid rgba(255,255,255,.15); }
  .inner-page .nav-dropdown summary { width: 100%; justify-content: space-between; padding: 13px 0; color: white; font-family: var(--display); font-size: clamp(33px,10vw,48px); letter-spacing: .02em; }
  .inner-page .nav-submenu { position: static; min-width: 0; gap: 0; padding: 0 0 9px 13px; border: 0; background: transparent; opacity: 1; transform: none; }
  .inner-page .nav-submenu a { padding: 9px 3px; border: 0; font-size: 8px; }
  .inner-page .primary-navigation .nav-cta { flex: 0 0 auto; }
  .inner-hero { min-height: max(700px,93svh); }.inner-hero-content { padding-top: 125px; padding-bottom: 95px; }.inner-hero h1 { font-size: clamp(68px,13vw,98px); }.inner-hero-bottom { align-items: flex-start; flex-direction: column; gap: 20px; margin-top: 25px; }.inner-hero-bottom p { font-size: 10px; }
  .editorial-intro { padding: 81px 0; }.editorial-split, .editorial-reverse { grid-template-columns: 1fr; gap: 31px; }.editorial-reverse .editorial-copy, .editorial-reverse .editorial-image { order: initial; }.editorial-copy h2, .page-section-head h2, .portfolio-heading h2 { font-size: clamp(59px,12vw,84px); }.editorial-image { height: clamp(300px,80vw,440px); }
  .page-section-head { margin-bottom: 34px; }.page-list-row { grid-template-columns: 31px 1fr 18px; gap: 10px; padding: 19px 0; }.page-list-row h3 { font-size: clamp(23px,7vw,31px); }.page-list-row p { font-size: 9px; }.page-list-row > i { opacity: 1; transform: none; }
  .service-index, .discipline-section, .equipment-section, .infrastructure-areas, .capability-areas { padding: 81px 0; }.process-band, .timeline-section { padding: 80px 0; }.process-band-grid, .process-five { grid-template-columns: 1fr 1fr; }.process-band-grid > div { min-height: 83px; padding-left: 15px; border-bottom: 1px solid var(--line-light); }.process-band-grid > div:nth-child(odd) { padding-left: 0; }.process-band-grid > div:nth-child(even) { border-right: 0; }.process-band-grid > div:last-child { border-bottom: 0; }
  .page-cta { min-height: 470px; }.page-cta-content { padding-block: 70px; }.page-cta-content h2 { font-size: clamp(67px,14vw,95px); }
  .discipline-grid { grid-template-columns: 1fr; }.discipline-item { min-height: 148px; padding: 19px 0; }.discipline-item:nth-child(even) { padding-left: 0; border-left: 0; }.discipline-item h3 { margin: 15px 0 7px; font-size: 31px; }
  .quality-grid { grid-template-columns: 1fr; gap: 36px; }.quality-grid article, .quality-grid article + article { padding: 0; border: 0; }.quality-grid article + article { padding-top: 31px; border-top: 1px solid var(--line-dark); }.quality-grid h2 { font-size: 68px; }
  .technical-layout { grid-template-columns: 1fr; gap: 29px; }.technical-orbit { min-height: 305px; }.technical-orbit > span { font-size: 6px; }.infra-stat-grid strong { font-size: 48px; }
  .portfolio-heading { align-items: flex-start; flex-direction: column; gap: 14px; }.project-filter { gap: 0; }.project-filter button { padding-inline: 10px; font-size: 7px; }.portfolio-grid { grid-template-columns: 1fr; }.project-feature, .project-wide { min-height: 350px; grid-row: auto; grid-column: auto; }.project-item { min-height: 310px; }.project-note-layout, .related-projects .project-note-layout { grid-template-columns: 1fr; gap: 17px; }
  .project-detail-hero { min-height: 630px; }.detail-hero-content h1 { font-size: clamp(66px,13vw,100px); }.project-facts-grid { grid-template-columns: 1fr 1fr; }.project-facts-grid > div { min-height: 74px; padding: 12px; border-bottom: 1px solid var(--line-light); }.project-facts-grid > div:nth-child(odd) { padding-left: 0; }.project-facts-grid > div:nth-child(even) { border-right: 0; }.project-facts-grid > div:last-child { border-bottom: 0; }.project-overview-grid, .project-scope-grid { grid-template-columns: 1fr; gap: 19px; }.project-overview { padding: 75px 0; }.project-scope { padding: 75px 0; }.detail-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 225px 155px; }.detail-gallery button:first-child { grid-column: 1/-1; grid-row: auto; }
  .capability-page-layout { grid-template-columns: 1fr; gap: 27px; }.capability-page-layout .page-section-head { position: static; }.expertise-row summary { grid-template-columns: 28px 1fr 16px; gap: 10px; min-height: 64px; }.expertise-row summary strong { font-size: clamp(22px,6vw,29px); }.expertise-row > p { margin-left: 38px; }
  .technical-flow { grid-template-columns: 1fr 1fr; }.technical-flow > div { min-height: 80px; padding-left: 12px; border-bottom: 1px solid var(--line-dark); }.technical-flow > div:nth-child(odd) { padding-left: 0; }.technical-flow > div:nth-child(even) { border-right: 0; }.technical-flow > div:last-child { border-bottom: 0; }
  .equipment-row summary { grid-template-columns: 32px 1fr 17px; gap: 10px; min-height: 71px; }.equipment-row summary strong { font-size: 29px; }.equipment-row > div { grid-template-columns: 1fr; gap: 14px; padding-left: 42px; }.equipment-row img { height: 210px; }.equipment-row dl { grid-template-columns: 100px 1fr; }
  .logo-placeholder-grid { grid-template-columns: 1fr 1fr; }.logo-placeholder-grid > div { min-height: 110px; font-size: 18px; }.client-type-list article { grid-template-columns: 29px 1fr 17px; gap: 10px; padding-block: 13px; }.client-type-list h3 { font-size: 28px; }.client-type-list p { grid-column: 2 / -1; margin: -5px 0 8px; }.trust-statement { padding: 77px 0; }.trust-statement h2 { font-size: clamp(64px,13vw,94px); }
  .contact-details-layout, .contact-form-layout, .map-placeholder-inner { grid-template-columns: 1fr; gap: 27px; }.contact-details-section, .contact-form-section { padding: 78px 0; }.contact-detail-list > div { grid-template-columns: .4fr 1fr; min-height: 59px; }.contact-detail-list strong { font-size: 21px; }.form-grid { grid-template-columns: 1fr; }.form-full { grid-column: auto; }.map-graphic { min-height: 235px; }
  .quote-intro { min-height: 510px; }.quote-hero-content { padding-top: 115px; padding-bottom: 59px; }.quote-hero-content h1 { font-size: clamp(70px,14vw,100px); }.quote-main { padding: 67px 0 80px; }.quote-layout { grid-template-columns: 1fr; gap: 28px; }.quote-aside { position: static; }.quote-aside h2 { font-size: 66px; }.quote-aside > p:not(.eyebrow) { max-width: 400px; }.quote-steps-indicator { grid-template-columns: 1fr 1fr; margin-top: 19px; }.quote-steps-indicator > span { gap: 7px; font-size: 7px; }.quote-form { padding: 20px 16px; }.quote-step legend { font-size: 32px; }.quote-form-actions { gap: 10px; }.quote-form-actions .button { gap: 10px; padding-inline: 12px; font-size: 8px; }.quote-success { padding: 27px 20px; }.quote-success h2 { font-size: 61px; }
}
@media (max-width: 390px) {
  .inner-hero h1 { font-size: 64px; }.inner-hero-bottom .button { min-height: 47px; }
  .detail-gallery { grid-template-rows: 185px 125px; }.technical-orbit > span:nth-child(6) { right: 3%; }
}
@media (prefers-reduced-motion: reduce) {
  .inner-hero::before, .detail-hero-image { animation: none; }
  .nav-submenu, .editorial-image img, .project-item img, .industry-panel img { transition-duration: .01ms; }
}

.portfolio-intro { max-width: 350px; margin: 0; color: var(--body); font-size: 10px; line-height: 1.85; }
.portfolio-records { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; border: 1px solid var(--line-light); background: var(--line-light); }
.portfolio-record { min-width: 0; padding: 22px 20px 24px; background: #f7f7f5; }
.portfolio-category { margin: 0 0 12px; color: #5d7fac; font-size: 8px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.portfolio-record h3 { margin: 0 0 13px; font-family: var(--display); font-size: clamp(22px,2.2vw,30px); font-weight: 600; line-height: 1; text-transform: uppercase; }
.portfolio-record > p:not(.portfolio-category) { margin: 7px 0 0; color: var(--body); font-size: 9px; line-height: 1.8; overflow-wrap: anywhere; }
.portfolio-record > p strong { color: var(--ink); font-weight: 800; }
.record-separator { padding: 0 3px; color: #7898c1; }
.portfolio-detail-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 13px; color: #466c9d; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.portfolio-detail-link:hover { color: #243e63; }

@media (max-width: 1000px) {
  .portfolio-records { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .portfolio-records { grid-template-columns: 1fr; }
  .portfolio-record { padding: 20px 17px 22px; }
  .portfolio-record h3 { font-size: 29px; }
}

.client-logo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.client-logo-grid li { min-width: 0; border: 1px solid var(--line-light); background: #fff; }
.client-logo-grid figure { height: 100%; min-height: 156px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; margin: 0; padding: 17px 16px 14px; }
.client-logo-grid img { width: 100%; height: 96px; object-fit: contain; }
.client-logo-grid figcaption { min-height: 34px; display: flex; align-items: center; justify-content: center; color: #343b3e; font-family: var(--display); font-size: 17px; font-weight: 600; line-height: 1.1; text-align: center; text-transform: uppercase; }
@media (max-width: 900px) {
  .client-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
}
@media (max-width: 620px) {
  .client-logo-grid { gap: 8px; }
  .client-logo-grid figure { min-height: 145px; gap: 9px; padding: 12px 10px 11px; }
  .client-logo-grid img { height: 82px; }
  .client-logo-grid figcaption { min-height: 32px; font-size: 15px; }
}
