:root{--navy:#061A2C;--turquoise:#2AC2A7;--yellow:#FFC72C;--technical:#7C8996;--graphite:#465460;--pale:#EEF2F4;--white:#FFFFFF;--line:#D8E0E5;--max:1200px;font-family:Montserrat,"Segoe UI",Arial,sans-serif;color:var(--navy);color-scheme:light dark;font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:110px}
*{box-sizing:border-box}body{margin:0;background:var(--white);font-size:1rem;line-height:1.75}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.2;letter-spacing:-.035em}h1{font-size:clamp(2.625rem,4.2vw,3.75rem);font-weight:700;line-height:1.13;letter-spacing:-.045em}h2{font-size:clamp(2.125rem,3.4vw,2.875rem);font-weight:700}h3{font-size:1.25rem;font-weight:600}em{font-style:normal;color:var(--turquoise)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--turquoise);outline-offset:5px}[hidden]{display:none!important}.container{max-width:var(--max);width:calc(100% - 100px);margin:0 auto}.section{padding:100px 0}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:600;line-height:1.7}.skip-link{position:fixed;top:-80px;left:15px;background:white;color:var(--navy);padding:12px 18px;z-index:100}.skip-link:focus{top:15px}

.header{position:sticky;top:0;z-index:20;background:var(--navy);color:white;border-bottom:1px solid #FFFFFF20}.nav-shell{min-height:96px;display:flex;justify-content:space-between;align-items:center;gap:32px}.brand{display:flex;flex-shrink:0;align-items:center}.brand img{width:185px;height:auto}#navigation{display:flex;align-items:center;gap:27px;font-size:.875rem;font-weight:500}#navigation>a:not(.button){padding:8px 0}#navigation>a:not(.button):hover,#navigation>a[aria-current=page]{color:var(--turquoise)}.menu-toggle{display:none}.menu-toggle span{display:block;background:white;width:24px;height:2px}.menu-toggle span+span{margin-top:7px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:14px 23px;border:1px solid transparent;border-radius:3px;font-size:.875rem;line-height:1.5;font-weight:600;text-align:center;-webkit-appearance:none;appearance:none;transition:background .2s,transform .2s}.button-yellow,.button-yellow:visited{background:var(--yellow);border-color:transparent;color:var(--navy)}.button-dark{background:var(--navy);color:white}.button-dark:hover{background:var(--graphite)}.button-turquoise{background:var(--turquoise);color:var(--navy)}.button-turquoise:hover{background:#64D4C0}.button-outline{background:transparent;border-color:#FFFFFF60;color:white}.button-outline:hover{background:#FFFFFF10}.nav-cta{min-height:44px;padding:11px 17px}.text-link{font-size:.875rem;border-bottom:1px solid #B7C6D1;padding:8px 0}.text-link:hover{color:var(--turquoise)}.underlined-link{font-size:.875rem;font-weight:600;display:inline-block;border-bottom:2px solid var(--turquoise);padding-bottom:3px;line-height:1.6}.underlined-link:hover{color:var(--graphite)}
@media(hover:hover){.button:hover{transform:translateY(-2px)}.button-yellow:hover{background:#FFD65B}}
/* Keep the authored corporate palette in light and dark app containers.
   WebView requires both schemes in the meta tag to honor author theme styling. */
.button-label{min-width:0}
.contact-form{color-scheme:light}
@media(prefers-color-scheme:dark){
  :root{color-scheme:dark}
  body{background:var(--white);color:var(--navy)}
  .hero,.header,.structural-hero{background:var(--navy);color:var(--white)}
  .hero-description,.hero-support,.structural-lead{color:#CDD7DF}
  .button-yellow,.button-yellow:visited{background:var(--yellow);color:var(--navy)}
}
@media(forced-colors:active){
  .button-yellow,.button-yellow:visited{background:ButtonFace;color:ButtonText;border-color:ButtonText}
}

.hero{background:var(--navy);color:white;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;padding-top:55px;padding-bottom:54px}.hero-copy>.eyebrow{display:flex;align-items:center;gap:12px;color:#CDD7DF;letter-spacing:.08em}.little-line{width:24px;height:2px;background:var(--turquoise);flex-shrink:0}.hero h1{margin-top:24px}.hero-description{color:#CDD7DF;font-size:1rem;line-height:1.8;max-width:530px;margin-top:28px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:33px}.hero-support{color:#CDD7DF;font-size:.875rem;line-height:1.8;margin-top:30px}.hero-photo{height:510px;position:relative;isolation:isolate}.hero-photo:before{content:"";position:absolute;inset:-12px -12px 28px 28px;border:1px solid #2AC2A750;border-radius:3px;z-index:-1}.hero-photo>img{height:100%;width:100%;object-fit:cover;object-position:50% 36%;border-radius:3px}.hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;border-radius:0 0 3px 3px;background:linear-gradient(transparent,#061A2CF2);padding:55px 25px 23px}.hero-photo figcaption>span{display:block}.hero-photo figcaption>span:last-child{font-size:.875rem;margin-top:5px;color:#CDD7DF}.hero-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 22px;padding:22px 0;border-top:1px solid #FFFFFF25;color:#CDD7DF;font-size:.875rem}.hero-foot>span{display:flex;align-items:center;gap:9px}.hero-foot>span:before{content:"";height:4px;width:4px;background:var(--turquoise);flex-shrink:0}

.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:46px}.section-heading>div:first-child{max-width:690px}.section-heading .eyebrow{color:var(--graphite);margin-bottom:18px}.section-heading>p,.heading-aside{max-width:350px;color:var(--graphite);font-size:1rem;line-height:1.8}.heading-aside .button{margin-top:21px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.service{padding:29px 28px 33px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}.service:nth-child(3n+1){padding-left:0}.service:nth-child(3n){padding-right:0}.service:not(:nth-child(3n+1)){border-left:1px solid var(--line)}.service-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:25px;color:var(--graphite);font-size:.75rem}.service-top img{width:29px;height:auto}.service h3{font-size:1.25rem;line-height:1.35}.service>p{color:var(--graphite);margin-top:17px;font-size:1rem;line-height:1.8}.service-tag{display:block;color:var(--graphite);font-size:.75rem;font-weight:600;letter-spacing:.035em;line-height:1.8;margin:22px 0 20px}.service>.underlined-link{margin-top:auto}

.portfolio-preview,.pale{background:var(--pale)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.project-preview-image{display:block;width:100%;height:350px;border:1px solid var(--line);border-radius:3px;position:relative;overflow:hidden;background:white}.project-preview-image>img{width:100%;height:100%;object-fit:contain;padding:17px 30px;transition:transform .3s}.project-preview-image:hover>img{transform:scale(1.035)}.project-preview-image.technical>img{padding:0;object-fit:cover;object-position:50% 48%;transform:scale(1.3)}.project-preview-image.technical:hover>img{transform:scale(1.34)}.image-label{position:absolute;top:17px;left:17px;max-width:calc(100% - 34px);padding:6px 10px;background:#FFFFFFF2;border:1px solid var(--line);font-size:.75rem;font-weight:600;line-height:1.7;color:var(--graphite)}.project-preview-copy{padding-top:24px}.project-preview-copy .eyebrow{color:var(--graphite)}.project-preview-copy h3{font-size:1.375rem;margin:10px 0 12px}.project-preview-copy>p:not(.eyebrow){color:var(--graphite);font-size:1rem}.project-preview-copy>.underlined-link{margin-top:18px}

.method{background:var(--navy);color:white}.method-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}.method-intro>.eyebrow{color:#CDD7DF;margin-bottom:22px}.method-intro>p:not(.eyebrow){color:#CDD7DF;font-size:1rem;max-width:430px;line-height:1.8;margin-top:27px}.tool-line{margin-top:35px;border-top:1px solid #FFFFFF25;padding-top:20px}.tool-line>span{font-size:.875rem;color:#CDD7DF}.tool-line>p{font-size:1rem;margin-top:7px;font-weight:500}.method-intro>.button{margin-top:30px}.steps{list-style:none;margin:0;padding:0}.steps li{display:flex;gap:25px;padding:27px 0;border-top:1px solid #FFFFFF25}.steps li:first-child{padding-top:0;border-top:0}.steps li:last-child{padding-bottom:0}.step-number{font-size:.875rem;color:var(--turquoise);min-width:30px;margin-top:3px}.steps h3{font-size:1.25rem}.steps p{color:#CDD7DF;font-size:1rem;line-height:1.8;margin-top:10px}

.company-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:95px;align-items:center}.company-photo{height:580px;background:var(--navy);color:white;position:relative;border-radius:3px;overflow:hidden}.company-photo>img{height:100%;width:100%;object-fit:cover;object-position:50% 40%}.company-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:65px 25px 24px;background:linear-gradient(transparent,#061A2CF2)}.company-photo figcaption>strong{display:block;font-size:1rem;font-weight:600}.company-photo figcaption>span{display:block;color:#CDD7DF;font-size:.875rem;margin-top:4px}.company-copy>.eyebrow{color:var(--graphite);margin-bottom:18px}.company-lead{font-size:1.25rem;font-weight:500;line-height:1.6;margin-top:23px;margin-bottom:22px}.company-copy>p:not(.eyebrow):not(.company-lead){color:var(--graphite);font-size:1rem;line-height:1.8;margin-top:17px}.company-details{display:flex;gap:30px;margin:28px 0 25px;padding-top:22px;border-top:1px solid var(--line);font-size:.875rem}.company-details small{display:block;font-size:.75rem;font-weight:600;letter-spacing:.06em;color:var(--graphite);margin-bottom:7px}

.contact{background:var(--pale);border-top:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:1fr .95fr;gap:95px;align-items:start}.contact-copy>.eyebrow{color:var(--graphite);margin-bottom:22px}.contact-copy h2 em{color:var(--navy);text-decoration:underline;text-decoration-color:var(--turquoise);text-decoration-thickness:3px;text-underline-offset:8px}.contact-copy>p:not(.eyebrow){color:var(--graphite);font-size:1rem;line-height:1.8;margin-top:24px;max-width:450px}.contact-copy>.button{margin-top:28px}.contact-email{display:block;font-size:1rem;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:var(--turquoise);text-underline-offset:6px;margin-top:28px}.contact-phone{display:inline-block;font-size:1rem;color:var(--graphite);margin-top:12px}.contact-copy>.contact-location{font-size:.875rem;margin-top:23px}.contact-form{background:white;border:1px solid var(--line);border-radius:3px;padding:32px 35px}.contact-form h3{font-size:1.375rem;margin-bottom:24px}.contact-form label{display:block;font-size:.875rem;font-weight:600;margin:18px 0 7px}.optional{font-weight:400;color:var(--graphite)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;background:white;border:1px solid #B4C0C9;border-radius:3px;color:var(--navy);padding:11px 12px;font-size:1rem;line-height:1.5}.contact-form textarea{resize:vertical;min-height:112px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--graphite);opacity:1}.contact-form .button{width:100%;margin-top:20px}.form-hint{color:var(--graphite);font-size:.75rem;line-height:1.7;text-align:center;margin-top:13px}

.footer{background:var(--navy);color:white;padding:33px 0 22px}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:28px}.footer-links{display:flex;align-items:center;gap:27px;font-size:.875rem;color:#CDD7DF}.footer-links>a:hover{color:var(--turquoise)}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;border-top:1px solid #FFFFFF25;padding-top:19px;color:#CDD7DF;font-size:.75rem}

.portfolio-hero{background:var(--navy);color:white;padding:35px 0 62px}.breadcrumb{display:flex;align-items:center;gap:15px;color:#CDD7DF;font-size:.875rem;margin-bottom:38px}.breadcrumb>a{text-decoration:underline;text-underline-offset:4px}.portfolio-hero .eyebrow{color:#CDD7DF}.portfolio-hero h1{margin-top:21px;font-size:clamp(2.625rem,4.1vw,3.625rem)}.page-description{max-width:705px;color:#CDD7DF;font-size:1rem;line-height:1.8;margin-top:25px}.portfolio-index{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}.portfolio-index>a{font-size:.875rem;border:1px solid #FFFFFF50;border-radius:3px;padding:10px 17px}.portfolio-index>a:hover{border-color:var(--turquoise);color:var(--turquoise)}.work-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:70px;align-items:center}.work-image{width:100%;height:450px;border:1px solid var(--line);border-radius:3px;overflow:hidden;padding:0;background:white;display:block;position:relative;text-align:left}.work-image>img{width:100%;height:100%;object-fit:contain;padding:22px;transition:transform .3s}.work-image:hover>img{transform:scale(1.025)}.work-image.hydraulic>img{padding:0}.image-action{position:absolute;bottom:17px;right:17px;display:flex;gap:23px;align-items:center;background:var(--navy);color:white;font-size:.875rem;font-weight:500;padding:10px 15px;border-radius:3px}.image-action>span{font-size:1.3rem;color:var(--turquoise);line-height:1}.image-caption{font-size:.75rem;color:var(--graphite);margin-top:13px;line-height:1.7}.work-copy>.eyebrow{color:var(--graphite);margin-bottom:17px}.work-copy>h2{font-size:clamp(2rem,2.8vw,2.625rem)}.work-copy>p:not(.eyebrow){color:var(--graphite);font-size:1rem;line-height:1.8;margin-top:23px}.work-status{display:inline-block;margin-top:20px;font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--graphite);border:1px solid #B4C0C9;padding:5px 9px;border-radius:2px}.work-details{margin:26px 0 28px;border-top:1px solid var(--line)}.work-details>div{border-bottom:1px solid var(--line);padding:13px 0}.work-details dt{font-size:.875rem;font-weight:600;color:var(--graphite)}.work-details dd{font-size:1rem;margin:4px 0 0;line-height:1.7}.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.related-grid>article{border:1px solid var(--line);padding:30px;border-radius:3px}.related-grid .eyebrow{color:var(--graphite)}.related-grid h3{font-size:1.375rem;margin-top:13px}.related-grid p{font-size:1rem;color:var(--graphite);margin-top:16px}.related-grid .underlined-link{margin-top:22px}.portfolio-cta{background:var(--navy);color:white;padding:65px 0}.portfolio-cta>.container{display:flex;justify-content:space-between;align-items:center;gap:55px}.portfolio-cta .eyebrow{color:#CDD7DF;margin-bottom:17px}.portfolio-cta p:not(.eyebrow){color:#CDD7DF;font-size:1rem;margin-top:18px}.portfolio-cta .button{flex-shrink:0}

dialog{width:min(1200px,calc(100% - 40px));max-height:92vh;padding:0;border:0;border-radius:4px;background:white;color:var(--navy);box-shadow:0 25px 100px #0004}dialog::backdrop{background:#061A2CE6;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 23px;border-bottom:1px solid var(--line)}.dialog-top h2{font-size:1.375rem;letter-spacing:-.02em}.dialog-close{width:44px;height:44px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;background:white;font-size:1.5rem;line-height:1}.dialog-image{display:flex;justify-content:center;align-items:center;background:var(--pale);padding:20px;min-height:250px}.dialog-image img{max-width:100%;width:auto;max-height:58vh;object-fit:contain}.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:22px 25px}.dialog-bottom>p{max-width:700px;color:var(--graphite);font-size:.875rem;line-height:1.7}.dialog-bottom>.button{flex-shrink:0}

@media(min-width:1500px){.hero-grid{padding-top:68px;padding-bottom:62px}.hero-photo{height:545px}}
/* Keep long labels and enlarged text inside their columns. */
h1,h2,h3{overflow-wrap:break-word}.hero-grid>*,.services-grid>*,.project-grid>*,.method-grid>*,.company-grid>*,.contact-grid>*,.work-grid>*{min-width:0}
@media(max-width:1100px){.container{width:calc(100% - 64px)}#navigation{gap:19px}.hero-grid{gap:40px}.hero-photo{height:505px}h1{font-size:3.125rem}.method-grid,.company-grid,.contact-grid{gap:55px}.company-photo{height:640px}.company-details{flex-direction:column;gap:15px}.service{padding:26px 22px}.work-grid{gap:45px}.work-image{height:400px}.section-heading{gap:35px}.section-heading>p,.heading-aside{max-width:310px}}
@media(max-width:900px){.brand img{width:165px}#navigation{gap:16px}.nav-cta{padding:10px 13px}.hero-grid{grid-template-columns:1.08fr .92fr;gap:28px}h1{font-size:2.75rem}.hero-photo{height:520px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.hero-copy>.eyebrow{letter-spacing:.035em}.hero-foot{justify-content:flex-start;gap:12px 24px}.section{padding:80px 0}.services-grid{grid-template-columns:repeat(2,1fr)}.service,.service:nth-child(3n),.service:nth-child(3n+1){padding:26px}.service:not(:nth-child(3n+1)){border-left:0}.service:nth-child(odd){padding-left:0;border-left:0}.service:nth-child(even){padding-right:0;border-left:1px solid var(--line)}.method-grid,.company-grid,.contact-grid{gap:38px}.company-grid{grid-template-columns:.8fr 1.2fr}.company-photo{height:690px}.contact-form{padding:26px}.contact-copy h2{font-size:2.125rem}.work-grid{gap:35px}.work-copy>h2{font-size:2rem}.footer-links{flex-direction:column;align-items:flex-start;gap:10px}.portfolio-cta>.container{gap:35px}}
@media(max-width:760px){:root{scroll-padding-top:100px}.container{width:calc(100% - 40px)}.nav-shell{min-height:84px}.brand img{width:165px}.menu-toggle{display:block;border:0;background:transparent;padding:14px;margin-right:-14px;min-height:44px}#navigation{display:none;position:absolute;top:84px;left:0;right:0;background:var(--navy);padding:20px 20px 28px;border-top:1px solid #FFFFFF25;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 12px 20px #0002}#navigation.is-open{display:flex}#navigation>a:not(.button){padding:12px 10px;font-size:1rem}#navigation>.nav-cta{margin-top:12px}.hero-grid{grid-template-columns:1fr;padding-top:38px;gap:37px;padding-bottom:32px}.hero h1{font-size:clamp(2.625rem,7.8vw,3.5rem);max-width:600px}.hero-description{max-width:560px}.hero-actions{flex-direction:row;align-items:center;gap:22px;margin-top:28px}.hero-photo{height:min(490px,120vw);max-width:550px;width:calc(100% - 12px)}.hero-photo>img{object-position:50% 32%}.hero-support{margin-top:25px}.hero-foot{font-size:.875rem;padding:19px 0}.section{padding:65px 0}h2{font-size:2.25rem}.section-heading{display:block;margin-bottom:32px}.section-heading .eyebrow{margin-bottom:15px}.section-heading>p,.heading-aside{max-width:560px;margin-top:20px}.service,.service:nth-child(3n),.service:nth-child(3n+1){padding:24px 18px}.service:nth-child(odd){padding-left:0}.service:nth-child(even){padding-right:0}.service h3{font-size:1.125rem}.service-tag{font-size:.75rem}.project-grid{grid-template-columns:1fr;gap:35px}.project-preview-image{height:350px}.method-grid{grid-template-columns:1fr;gap:38px}.method-intro>p:not(.eyebrow){max-width:560px}.tool-line{margin-top:26px}.steps li{padding:24px 0}.company-grid{grid-template-columns:1fr;gap:35px}.company-photo{height:520px;max-width:550px}.company-photo>img{object-position:50% 35%}.company-details{flex-direction:row;gap:25px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-copy h2{font-size:2.375rem}.contact-copy>p:not(.eyebrow){max-width:560px}.footer-main{flex-direction:column;align-items:flex-start;gap:25px}.footer-links{flex-direction:row;flex-wrap:wrap;gap:14px 25px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}.portfolio-hero{padding-bottom:45px}.breadcrumb{margin-bottom:28px}.portfolio-hero h1{font-size:clamp(2.625rem,7.8vw,3.5rem)}.work-grid{grid-template-columns:1fr;gap:32px}.work-image{height:420px}.work-copy>h2{font-size:2.25rem}.related-grid{grid-template-columns:1fr;gap:22px}.portfolio-cta>.container{flex-direction:column;align-items:flex-start;gap:27px}.portfolio-cta{padding:55px 0}.dialog-top{padding:15px 18px}.dialog-top h2{font-size:1.125rem}.dialog-image{padding:10px}.dialog-bottom{flex-direction:column;align-items:stretch;gap:20px;padding:20px}.dialog-bottom .button{width:100%}}
@media(max-width:420px){.hero-actions{flex-direction:column;align-items:flex-start;gap:12px}.hero-photo figcaption{padding-left:18px;padding-right:18px}.services-grid{grid-template-columns:1fr}.service,.service:nth-child(3n),.service:nth-child(3n+1),.service:nth-child(even),.service:nth-child(odd){padding:25px 0;border-left:0}.service h3{font-size:1.25rem}.service-top{margin-bottom:18px}.project-preview-image{height:300px}.company-photo{height:430px}.company-details{flex-direction:column}.contact-form{padding:24px 20px}.work-image{height:320px}.related-grid>article{padding:25px}.portfolio-index{gap:12px}.portfolio-index>a{width:100%;text-align:center}.hero-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button:hover{transform:none}}
@media print{.header,.contact-form,.hero-actions,.image-action,.footer-links,.button{display:none}.section{padding:30px 0}.container{width:95%}.hero,.method,.portfolio-hero,.portfolio-cta,.footer{background:white;color:var(--navy)}.hero p,.method p,.portfolio-hero p,.portfolio-cta p,.footer-bottom{color:var(--graphite)}.hero-photo figcaption{display:none}.hero-grid{padding-top:25px}.hero-photo{height:350px}.contact-grid{grid-template-columns:1fr}.project-preview-image{height:260px}}
