@font-face{font-family:Astra;src:url('../fonts/astra.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-regular.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-semibold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
:root{--green:#9bc900;--blue:#0877b9;--navy:#001b3d;--charcoal:#4f4f51;--text:#616264;--white:#fff;--danger:#b42318;--success:#237a3b;--font-primary:Montserrat,Arial,sans-serif;--font-light:300;--container:1140px;--source-content-width:1140px;--source-text-width:1120px;--intro-space-top:40px;--intro-space-between:60px;--intro-space-bottom:60px;--shadow:0 10px 32px rgba(0,27,61,.12);--transition:220ms ease}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);background:#fff;font-family:var(--font-primary);font-size:16px;line-height:1.55;font-weight:400;overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
button,input,textarea{font:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:#454648;font-weight:400;line-height:1.2}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}
.container--text{max-width:1040px;text-align:center}
.section-pad{padding:76px 0}
.screen-reader-text{position:absolute!important;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;left:16px;top:-100px;z-index:9999;padding:12px 18px;background:var(--navy);color:#fff}
.skip-link:focus{top:16px}
:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}
.site-header{height:128.6px;background:#fff;border-bottom:5px solid #a0c515;position:relative;z-index:100;font-weight:300}
.site-header__inner{width:min(100%,1240px);height:100%;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:0}
.site-logo{display:block;flex:0 0 270px}
.site-logo img{width:270px;height:auto}
.primary-navigation{margin-left:auto}
.primary-navigation .menu{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.primary-navigation li{position:relative}
.primary-navigation a{display:flex;align-items:center;height:64px;min-height:64px;padding:0 16px;color:#616264;font-size:16px;font-weight:300;line-height:64px;white-space:nowrap}
.primary-navigation a:hover,.primary-navigation a:focus,.primary-navigation .current-menu-item>a,.primary-navigation .current-menu-ancestor>a{color:#0066b3;text-decoration:none}
.primary-navigation .menu-item-has-children>a::after{content:'\e900';display:block;margin-left:10px;color:inherit;font-family:Astra;font-size:9.6px;font-style:normal;font-weight:bold;line-height:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased}
.primary-navigation .sub-menu{display:none;position:absolute;top:100%;left:0;z-index:99999;width:240px;min-width:240px;margin:0;padding:0;background:#fff;border-top:3px solid #a1c32e;border-right:1px solid #a1c32e;border-bottom:3px solid #a1c32e;border-left:1px solid #a1c32e;list-style:none;box-shadow:0 4px 10px -2px rgba(0,0,0,.1)}
.primary-navigation li:hover>.sub-menu,.primary-navigation li:focus-within>.sub-menu{display:block}
.primary-navigation .sub-menu a{display:block;height:auto;min-height:0;padding:14.4px 16px;color:#616264;border-bottom:.8px solid #eaeaea;font-size:16px;font-weight:300;line-height:23.2px;white-space:normal}
.primary-navigation .sub-menu li:last-child>a{border-bottom:0}
.primary-navigation .sub-menu a:hover,.primary-navigation .sub-menu a:focus{color:#0066b3;background:#fff}
.menu-toggle{display:none;width:48px;height:48px;padding:12px;background:transparent;border:0;cursor:pointer}
.menu-toggle span[aria-hidden]{display:block;height:2px;margin:5px 0;background:var(--green);transition:transform var(--transition),opacity var(--transition)}
.hero{position:relative;min-height:409.4px;overflow:hidden;background:url('../media/hero-poster.jpg') center/cover no-repeat}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__overlay{position:absolute;inset:0;background:#000;opacity:.4}
.hero__content{position:relative;z-index:1;display:flex;justify-content:center;width:min(calc(100% - 40px),1140px);min-height:409.4px;padding:250px 10px 110px;text-align:center}
.hero h1{width:100%;margin:0;color:#fff;font-size:38px;font-weight:500;line-height:1.3;letter-spacing:normal;text-shadow:none}
.intro{padding:var(--intro-space-top) 0 var(--intro-space-bottom);background:#fff;color:var(--text);font-family:var(--font-primary);font-weight:var(--font-light);text-align:center}
.intro>.container{width:min(calc(100% - 40px),var(--source-content-width));max-width:var(--source-content-width);padding-inline:10px}
.intro__lead{width:100%;max-width:var(--source-text-width);margin:0 auto var(--intro-space-between);font-size:25px;font-weight:var(--font-light);line-height:24px;letter-spacing:normal;text-align:center}
.intro__body{width:100%;max-width:var(--source-text-width);margin:auto;font-size:20px;font-weight:var(--font-light);line-height:24px;letter-spacing:normal;text-align:center}
.intro__body p{margin:0 0 32px}
.accreditation{padding-top:35px}
.accreditation__grid{display:grid;grid-template-columns:180px 260px 1fr;gap:36px;align-items:center}
.accreditation__logo img{width:180px}
.accreditation__copy h2{font-size:28px;margin-bottom:24px}
.accreditation__copy p{font-size:14px;line-height:1.7}
.text-link,.card-link{font-weight:600}
.accreditation__image img{width:100%;aspect-ratio:1.5;object-fit:cover}
.services{padding:45px 0 80px;background:var(--green);color:var(--navy)}
.section-title{text-align:center;margin:0 0 40px;color:inherit;font-size:40px}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 28px}
.service-card{text-align:center;display:flex;flex-direction:column;align-items:center}
.service-card__image{position:relative;width:100%;aspect-ratio:1.5;overflow:hidden;background:#333;--service-parallax-y:0px}
.service-card__image::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.38);transition:background 250ms ease}
.service-card__image:hover::after,.service-card__image:focus-visible::after{background:rgba(0,105,183,.78)}
.service-card__image img{position:absolute;top:-15%;left:0;width:100%;height:130%;max-width:none;object-fit:cover;transform:translate3d(0,var(--service-parallax-y),0);will-change:transform}
.service-card__image span{position:absolute;z-index:1;left:20px;right:20px;bottom:22px;color:#fff;font-size:27px;line-height:1.05;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.service-card p{margin:22px 0 14px;font-size:14px;line-height:1.6;color:var(--navy);flex:1}
.service-card .card-link{color:var(--navy)}
.projects{padding:48px 0 74px;background:var(--charcoal);color:#fff}
.project-card{text-align:center;display:flex;flex-direction:column}
.has-project-reveal .project-card{opacity:0;transform:translate3d(0,44px,0);transition:opacity 400ms ease-out,transform 400ms cubic-bezier(.22,1,.36,1)}
.has-project-reveal .project-card:nth-child(2){transition-delay:50ms}
.has-project-reveal .project-card:nth-child(3){transition-delay:100ms}
.has-project-reveal .project-card.is-visible{opacity:1;transform:translate3d(0,0,0)}
@media (prefers-reduced-motion:reduce){.has-project-reveal .project-card{opacity:1;transform:none;transition:none}}
.project-card img{width:100%;aspect-ratio:1.5;object-fit:cover}
.project-card h3{font-size:21px;margin:25px 0 14px}
.project-card h3 a,.project-card .card-link{color:#fff}
.project-card p{font-size:14px;color:#fff;flex:1}
.empty-message{grid-column:1/-1;text-align:center;color:inherit}
.contact{padding:70px 0 80px}
.contact__grid{display:grid;grid-template-columns:1fr 1.75fr;gap:80px}
.contact h2{font-size:40px;margin-bottom:28px}
.contact address{font-style:normal;margin-bottom:35px}
.contact__details a{color:var(--text)}
.contact-form{position:relative}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:20px}
.field label{display:block;margin-bottom:7px;color:#454648;font-size:14px;font-weight:600}
.field input,.field textarea{width:100%;min-height:48px;border:1px solid #cfd2d4;background:#fff;padding:11px 13px;color:#333;border-radius:0}
.field textarea{resize:vertical;min-height:150px}
.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}
.field-error{display:block;margin-top:6px;color:var(--danger);font-size:13px}
.form-notice{padding:13px 16px;border-left:4px solid;margin-bottom:20px}
.form-notice--success{background:#eaf6ed;border-color:var(--success);color:#165b29}
.form-notice--error{background:#fff1f0;border-color:var(--danger);color:#8d1d15}
.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.button{min-height:48px;padding:11px 28px;border:0;background:#e6e6e6;color:#555;cursor:pointer;transition:background var(--transition),color var(--transition)}
.button:hover{background:var(--blue);color:#fff}
.map iframe{display:block;width:100%;height:430px;border:0}
.brand-swoosh{height:148px;overflow:hidden;background:#fff}
.brand-swoosh img{width:100%;height:100%;object-fit:cover;object-position:center}
.site-footer{background:var(--navy);border-top:14px solid var(--green);color:#fff;padding:58px 0}
.site-footer__inner{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.site-footer__brand img{box-sizing:border-box;width:190px;margin-bottom:24px;padding:8px;background:#fff;border-radius:2px}
.site-footer .menu{list-style:none;padding:0;margin:0}
.site-footer a{color:#fff}
.footer-policy::before,.site-footer .menu a::before{content:'›';margin-right:10px;color:var(--green)}
.site-footer__meta{text-align:right}
.site-footer__meta img{width:72px;margin:0 0 20px auto}
.site-footer__meta p{margin:0;font-size:13px;color:#fff}
.post-thumbnail{margin-bottom:28px}

@media (min-width:922px) and (max-width:1100px){
 .site-header__inner{width:calc(100% - 24px)}.site-logo{flex-basis:200px}.site-logo img{width:200px}.primary-navigation a{padding-inline:7px;font-size:14px}.primary-navigation .menu-item-has-children>a::after{margin-left:6px}
}
@media (max-width:921px){
 .site-header{height:88px}.site-header__inner{width:min(calc(100% - 40px),1240px)}.site-logo{flex-basis:190px}.site-logo img{width:190px}.menu-toggle{display:block}.primary-navigation{display:none;position:absolute;left:0;right:0;top:83px;background:#fff;border-bottom:3px solid var(--green);box-shadow:var(--shadow)}.primary-navigation.is-open{display:block}.primary-navigation .menu{display:block;padding:12px 20px 20px}.primary-navigation a{height:auto;min-height:48px;font-size:16px;line-height:1.45}.primary-navigation .menu-item-has-children>a::after{display:none}.primary-navigation .sub-menu{display:block;position:static;width:auto;min-width:0;border:0;box-shadow:none;padding:0 0 0 20px}.primary-navigation .sub-menu a{font-size:14px}.menu-toggle[aria-expanded=true] span[aria-hidden]:nth-of-type(2){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span[aria-hidden]:nth-of-type(3){opacity:0}.menu-toggle[aria-expanded=true] span[aria-hidden]:nth-of-type(4){transform:translateY(-7px) rotate(-45deg)}
 .accreditation__grid{grid-template-columns:150px 1fr}.accreditation__image{grid-column:1/-1}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact__grid{grid-template-columns:1fr 1.6fr;gap:45px}
}
@media (max-width:600px){
 body{font-size:16px}.container{width:min(calc(100% - 32px),var(--container))}.section-pad{padding:52px 0}.site-header{height:76px}.site-header__inner{width:min(calc(100% - 32px),1240px)}.site-logo{flex-basis:155px}.site-logo img{width:155px}.primary-navigation{top:71px}.hero{min-height:409.4px}.hero__content{width:min(calc(100% - 32px),1140px);min-height:409.4px;padding:225px 8px 90px}.hero h1{font-size:30px;line-height:1.3}.intro__lead{font-size:18px;margin-bottom:38px}.intro__body{text-align:left}.intro__body p{margin-bottom:24px}.accreditation{padding-top:10px}.accreditation__grid{display:flex;flex-direction:column;text-align:center;gap:30px}.accreditation__logo img{width:155px}.accreditation__copy{max-width:360px}.accreditation__copy h2{font-size:25px}.section-title{font-size:30px;margin-bottom:30px}.card-grid{grid-template-columns:1fr;gap:45px}.services{padding:38px 0 60px}.service-card__image span{font-size:26px}.projects{padding:40px 0 60px}.project-card h3{font-size:21px}.contact__grid{grid-template-columns:1fr;gap:38px}.contact h2{font-size:32px}.form-row{grid-template-columns:1fr;gap:0}.map iframe{height:360px}.brand-swoosh{height:90px}.site-footer{padding:45px 0}.site-footer__inner{display:block}.site-footer__meta{text-align:left;margin-top:45px}.site-footer__meta img{margin:0 0 20px}.site-footer__brand img{width:170px}
}
@media (max-width:600px){.intro{padding:var(--intro-space-top) 0 var(--intro-space-bottom)}.intro>.container{width:min(calc(100% - 32px),var(--source-content-width));padding-inline:8px}.intro__lead{font-size:25px;line-height:24px;margin-bottom:var(--intro-space-between)}.intro__body{font-size:20px;line-height:24px;text-align:center}.intro__body p{margin-bottom:32px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero__video{display:none}}
@media (prefers-reduced-motion:reduce){.service-card__image img{transform:none;will-change:auto}}

/* Source-matched home sections. */
.accreditation{min-height:444.2px;padding:0 0 50px;background:#fff;font-weight:300}
.accreditation__grid{min-height:394.2px;grid-template-columns:25% 25% 50%;gap:0;align-items:start}
.accreditation__grid>div{padding:10px}
.accreditation__logo img{width:203px;height:auto;margin:0 auto}
.accreditation__copy h2{margin:0 0 20px;color:#3a3a3a;font-size:30px;font-weight:400;line-height:39px}
.accreditation__copy p{margin:0 0 25.6px;font-size:16px;font-weight:300;line-height:24px}
.accreditation__copy .text-link{color:#0066b3;font-size:16px;font-weight:700;line-height:24px}
.accreditation__image img{width:550px;height:366.66px;aspect-ratio:auto;object-fit:cover}
.services{padding:50px 0;background:#a0c515;color:#fff;font-weight:300}
.section-title{margin:0 0 20px;color:#fff;font-size:42px;font-weight:400;line-height:42px}
.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px;row-gap:0}
.service-card{min-width:0;color:#fff}
.service-card__image{width:100%;height:auto;aspect-ratio:1.5}
.service-card__image span{bottom:20px;font-size:32px;font-weight:400;line-height:32px;text-shadow:none}
.service-card p{margin:20px 0 25.6px;color:#fff;font-size:16px;font-weight:300;line-height:24px}
.service-card .card-link{margin-bottom:25.6px;color:#fff;font-size:16px;font-weight:700;line-height:24px}
.projects{padding:50px 0;background:#4d4d4f;color:#fff;font-weight:300}
.projects .card-grid{padding:10px;column-gap:30px}
.project-card{color:#fff}
.project-card img{aspect-ratio:1.5}
.project-card h3{margin:30px 0 24px;font-size:22px;font-weight:400;line-height:33px}
.project-card p{margin:0;color:#fff;font-size:16px;font-weight:300;line-height:24px}
.project-card .card-link{margin-top:9px;color:#fff;font-size:16px;font-weight:700;line-height:56px}
.contact{min-height:542.4px;padding:50px 0 30px;font-weight:300}
.contact__grid{min-height:462.4px;grid-template-columns:1fr 1fr;gap:0}
.contact__grid>div,.contact__grid>form{padding:10px}
.contact h2{margin:0 0 20px;color:#3a3a3a;font-size:42px;font-weight:400;line-height:42px}
.contact address,.contact__details p{margin:0 0 28.8px;font-size:18px;font-weight:300;line-height:24px}
.contact-form{margin-top:24px}
.contact-form .field label{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.form-row{grid-template-columns:1fr 1fr;gap:20px}
.field{margin-bottom:20px}
.field input,.field textarea{min-height:38px;padding:6px 10px;border:.8px solid #ccc;color:#333;font-size:16px;font-weight:300;line-height:20.8px}
.field textarea{height:120px;min-height:120px}
.button{min-height:45.6px;padding:10px 15px;border:.8px solid #ddd;background:#eee;color:#333;font-size:16px;font-weight:300;line-height:24px}
.map iframe{height:380px}
.brand-swoosh{height:400.8px;padding:10px 0;background:#fff}
.brand-swoosh img{width:min(calc(100% - 40px),1120px);height:380.8px;margin:auto;object-fit:contain}
.site-footer{min-height:279.8px;padding:30px 0 10px;border-top:0;background:#01193c;font-weight:300}
.site-footer__inner{align-items:start}
.site-footer__brand img{width:220px;margin-bottom:20px}
.site-footer .menu,.footer-policy{font-size:16px;line-height:24px}
.site-footer__meta img{width:70px;margin:0 0 20px auto}
.site-footer__meta p{font-size:16px;font-weight:300;line-height:24px}
@media (max-width:921px){.accreditation{min-height:0}.accreditation__grid{min-height:0;grid-template-columns:35% 65%}.accreditation__image{grid-column:1/-1}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.contact{min-height:0}.contact__grid{min-height:0;grid-template-columns:1fr 1.4fr}.brand-swoosh{height:auto}.brand-swoosh img{height:auto}}
@media (max-width:600px){.accreditation__grid{display:flex;flex-direction:column;align-items:center;text-align:center}.accreditation__image img{width:100%;height:auto}.card-grid{grid-template-columns:1fr;row-gap:45px}.services,.projects{padding:40px 0 50px}.section-title{font-size:36px;line-height:42px}.contact__grid{grid-template-columns:1fr}.contact-form{margin-top:0}.brand-swoosh{padding:10px 0}.site-footer{min-height:0;padding:30px 0 20px}.site-footer__inner{display:block}.site-footer__meta{margin-top:35px;text-align:left}.site-footer__meta img{margin-left:0}}
.services .card-grid{padding:0 10px}
.contact-form{margin-top:34px}
.service-card{padding-bottom:20px}
.projects{padding-bottom:48.65px}
.contact-form .field--captcha{margin:0 0 25px;text-align:left}
.contact-form .field--captcha>label{position:static!important;display:block;width:auto;height:auto;margin:0 0 6px;overflow:visible;clip:auto;white-space:normal;color:#555;font-size:16px;font-weight:600;line-height:24px}
.contact-form .field--captcha .cptch_wrap{display:flex;align-items:center;gap:8px;min-height:48px}
.contact-form .field--captcha .cptch_input{width:86px!important;min-height:48px;padding:8px 10px;border:1px solid #ccc;font-size:16px}
.contact-form .field--captcha .field-error{margin-top:6px}
.contact-form .field--captcha .cptch_label{position:static!important;display:inline-flex;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;align-items:center;color:#555;font-size:16px;font-weight:300;line-height:24px}
.site-footer__inner{padding:10px}
.site-footer__brand,.site-footer__meta{padding-top:16px}
.contact-form .field--captcha>label span[aria-hidden="true"]{color:#d71920}
.site-footer{position:relative;border-top:16px solid #a0c515}
.footer-policy::before,.site-footer .menu a::before{content:'›';display:inline-block;margin-right:16px;color:rgba(255,255,255,.6);font-size:25px;font-weight:300;line-height:1;vertical-align:-2px}
.site-footer a.site-footer__credit,.site-footer a.site-footer__credit:visited{color:rgba(255,255,255,.6)}
.site-footer a.site-footer__credit:hover,.site-footer a.site-footer__credit:focus{color:#fff}
.back-to-top{position:fixed;right:38px;bottom:38px;z-index:90;display:grid;width:2.1em;height:2.1em;padding:0;place-items:center;border:0;border-radius:2px;background:#0877b9;color:#fff;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity 220ms ease,transform 220ms ease,background-color 220ms ease}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{background:#00669f}
.back-to-top:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media (max-width:600px){.back-to-top{right:16px;bottom:16px}}
@media (prefers-reduced-motion:reduce){.back-to-top{transition:none}}

/* About page: measured against the source at 1440px, with shared home chrome. */
.about-page{font-weight:var(--font-light)}
.about-container{width:min(100% - 40px,var(--source-text-width));margin-inline:auto}
.about-hero{position:relative;isolation:isolate;overflow:hidden;padding:150px 0 30px;background:#51422c}
.about-hero::before{content:'';position:absolute;z-index:-2;inset:-32px 0 -79px;background-image:var(--page-hero-image,url('../media/about-hero.jpg'));background-position:var(--page-hero-position,center bottom);background-size:cover;background-repeat:no-repeat}
.about-hero::after{content:'';position:absolute;z-index:-1;inset:0;background:rgba(0,0,0,.5)}
.about-hero h1{margin:0;color:#fff;font-size:52px;font-weight:400;line-height:1.3;text-align:center}
.about-intro{padding:30px 0 10px}
.about-copy{display:flow-root;font-size:20px;font-weight:300;line-height:24px;text-align:center}
.about-copy p{margin:0 0 32px}
.about-copy strong{font-weight:700}
.about-copy a{color:#0066b3}
.about-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:10px 0 30px}
.about-gallery figure{margin:0;min-width:0}
.about-gallery img{width:100%;height:auto;aspect-ratio:1024/683;object-fit:cover}
.about-gallery figcaption{margin-top:20px;color:#3a3a3a;font-size:20px;font-weight:400;line-height:24px}
.about-customer{padding:30px 0 10px;background:#a0c515;color:#fff}
.about-customer h2{margin:0 0 20px;color:inherit;font-size:42px;font-weight:400;line-height:42px}
.about-services{padding:40px 0 50px;background:#54595f;color:#fff}
.about-services h2{margin:0 0 30px;color:inherit;font-size:30px;font-weight:400;line-height:30px;text-align:center}
.about-services__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.about-services__card{position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:center;min-height:150px;padding:20px 10px 19px;overflow:hidden;background:#333;color:#fff;text-align:center}
.about-services__card img{position:absolute;z-index:-2;inset:0;width:100%;height:160%;object-fit:cover;object-position:center top}
.about-services__card::after{content:'';position:absolute;z-index:-1;inset:0;background:rgba(0,0,0,.45);transition:background var(--transition)}
.about-services__card:hover,.about-services__card:focus-visible{text-decoration:none}
.about-services__card:hover::after,.about-services__card:focus-visible::after{background:rgba(0,105,183,.78)}
.about-services__card h3{margin:0;color:inherit;font-size:18px;font-weight:400;line-height:18px;overflow-wrap:anywhere}
@media(max-width:1024px){.about-services__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){
 .about-hero .about-container{width:calc(100% - 20px)}
 .about-intro{padding:20px 0}
 .about-copy{line-height:24px}
 .about-gallery{grid-template-columns:1fr;padding:20px 0 30px;gap:40px}
 .about-customer{padding:20px 0 10px}
 .about-customer h2{font-size:25px;line-height:30px}
 .about-services h2{font-size:20px;line-height:24px}
 .about-services__grid{grid-template-columns:1fr}
 .about-services__card{min-height:150px}
}
/* NATA content, with the shared About banner, gallery and service strip. */
.nata-intro{padding:30px 0 10px}
.nata-intro__grid{display:grid;grid-template-columns:minmax(0,740fr) minmax(0,360fr);gap:20px;align-items:start}
.nata-intro__copy{text-align:left;min-width:0}
.nata-intro__badge{text-align:center;font-size:16px;line-height:24px}
.nata-intro__badge img{width:100%;height:auto}
.nata-intro__badge p{margin:20px 0 25.6px}
.nata-gallery{padding-bottom:60px}
@media(max-width:767px){
 .nata-intro{padding:20px 0 10px}
 .nata-intro__grid{grid-template-columns:1fr}
 .nata-intro__badge{width:min(100%,360px);margin-inline:auto}
 .nata-gallery{padding-bottom:50px}
}
@media(max-width:767px){.nata-intro__badge img{width:50%;margin-inline:auto}.nata-page .about-hero h1{overflow-wrap:break-word}}

/* Project Experience: source-matched four-column lists and gallery. */
.experience-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:10px 0 40px}
.experience-category{min-width:0}
.experience-category h2{margin:0 0 20px;color:#3a3a3a;font-size:30px;font-weight:400;line-height:30px}
.experience-category ul{list-style:none;margin:0;padding:0;font-size:16px;font-weight:300;line-height:24px}
.experience-category li{display:flex;align-items:center;margin:0;padding:0}
.experience-category li+li{margin-top:12px}
.experience-category li::before{content:'';flex:0 0 17.5px;width:17.5px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Crect x='1' y='1' width='14' height='14' rx='1.5' fill='%23616264'/%3E%3Cpath d='m4 8 3 3 5-6' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") left center/17.5px 14px no-repeat}
.experience-category li>span{min-width:0;padding-left:5px}
.experience-gallery{grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:60px}
@media(max-width:1024px){.experience-grid,.experience-gallery{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}}
@media(max-width:600px){.experience-grid,.experience-gallery{grid-template-columns:1fr}.experience-category h2{font-size:28px;line-height:34px}.experience-page .about-hero h1{overflow-wrap:break-word}}

/* Geotechnical service detail. */
.soils-page .about-copy h2{margin:0 0 20px;color:#3a3a3a;font-size:24px;font-weight:400;line-height:28.8px}
.soils-tests{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:10px 0}
.soils-tests ul{margin:0 0 24px 48px;padding:0;font-size:16px;font-weight:300;line-height:24px}
.soils-gallery{padding:40px 0 60px}
@media(max-width:921px){.soils-tests{grid-template-columns:repeat(2,minmax(0,1fr))}.soils-tests ul{margin-left:28px}}
@media(max-width:600px){.soils-tests{grid-template-columns:1fr;gap:0}.soils-gallery{padding:30px 0 50px}.soils-page .about-hero h1{font-size:clamp(32px,10vw,52px)}}

/* Concrete and Cores uses the shared service lists and gallery. */
.concrete-tests,.quarry-tests{padding-bottom:20px}
.concrete-gallery,.quarry-gallery{padding-bottom:60px}
@media(max-width:600px){.concrete-page .about-hero h1,.quarry-page .about-hero h1{font-size:clamp(32px,10vw,52px)}}

/* Proppants uses bold, smaller photo captions in the source. */
.proppants-tests{padding-bottom:20px}
.proppants-gallery,.research-gallery{padding-bottom:65.6px}
.proppants-gallery figcaption,.research-gallery figcaption{color:var(--text);font-size:16px;line-height:24px}
.proppants-gallery figcaption strong,.research-gallery figcaption strong{font-weight:700}

@media(max-width:600px){.research-page .about-hero h1{font-size:clamp(30px,9vw,52px);overflow-wrap:break-word}}
/* Drilling detail sections measured against the source. */
.drilling-intro{padding:40px 0}
.drilling-gallery{padding-bottom:60px}
.drilling-environment{padding:40px 0 30px;background:#a0c515;color:#fff}
.drilling-percolation{padding:40px 0 20px}
.drilling-environment h2,.drilling-percolation h2{margin:0 0 20px;color:inherit;font-size:42px;font-weight:400;line-height:42px}
.drilling-percolation h2{color:#3a3a3a}
@media(max-width:767px){.drilling-intro{padding:20px 0}.drilling-environment,.drilling-percolation{padding:30px 0 20px}.drilling-environment h2,.drilling-percolation h2{font-size:30px;line-height:36px}}
/* Sustainability: 740px copy / 360px imagery at the reference desktop width. */
.sustainability-intro{padding:30px 0 10px}
.sustainability-grid{display:grid;grid-template-columns:minmax(0,37fr) minmax(0,18fr);gap:20px;align-items:start}
.sustainability-grid .about-copy{text-align:start}
.sustainability-grid img{width:100%;height:auto}
.sustainability-environment{padding:40px 0 30px;background:#a0c515;color:#fff}
.sustainability-environment h2{margin:0 0 30px;color:inherit;font-size:42px;font-weight:400;line-height:42px;text-align:center}
@media(max-width:767px){.sustainability-grid{grid-template-columns:1fr}.sustainability-intro{padding:20px 0 30px}.sustainability-environment{padding:30px 0}.sustainability-environment h2{font-size:30px;line-height:36px}.sustainability-page .about-hero h1{font-size:clamp(32px,10vw,52px)}}
/* Contact page shares the home form and map with source-specific spacing. */
.contact-page .contact{min-height:0;padding:20px 0}
.contact-page .contact__grid{min-height:0}
.contact-page .map iframe{height:420px}
.contact-page .field--captcha{margin-bottom:21px}
.contact-page .field--captcha .cptch_wrap{min-height:38px}
.contact-page .field--captcha .cptch_input{min-height:38px;padding:6px 10px}
.contact-page .contact-form{padding-bottom:34px}
.contact-page .field textarea{display:block}
.contact-page .field--captcha{margin-bottom:20px}
.contact-page .field--captcha>label{line-height:20.8px;margin-bottom:4px}
.contact-page .field--captcha .cptch_label{margin:0!important}
.contact-page .field--captcha .cptch_input{width:70px!important;font-size:16px}
/* Employment application, measured at the source desktop viewport. */
.employment-intro{padding:40px 0 10px;font-size:24px;font-weight:300;line-height:24px}
.employment-intro p{margin:0 0 38.4px}
.employment-layout{display:grid;grid-template-columns:minmax(0,703.8fr) minmax(0,356.2fr);gap:60px;padding:10px 0 74px;align-items:start}
.employment-form{margin-top:24px;padding-top:10px;font-size:16px;font-weight:300;line-height:24px;min-width:0}
.employment-images{display:grid;gap:20px}
.employment-images img{width:100%;height:auto}
.employment-field{border:0;padding:0;margin:0 0 20px;min-width:0}
.employment-field>label:not(.employment-choice),.employment-field legend,.employment-label{display:block;padding:0;margin:0 0 4px;font-size:16px;font-weight:700;line-height:20.8px}
.employment-field>label>span,.employment-field legend span,.employment-label span{color:#d71920}
.employment-field input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.employment-field textarea{display:block;width:100%;height:38px;min-height:38px;border:1px solid #ccc;padding:6px 10px;background:#fff;color:#333;font:300 16px/20.8px Montserrat,Arial,sans-serif;border-radius:0}
.employment-field textarea{height:120px;resize:vertical}
.employment-choice{display:flex;align-items:center;gap:10px;font-weight:400;line-height:24px;margin-bottom:5px}
.employment-choice:last-of-type{margin-bottom:0}
.employment-choice input{width:14px;height:14px;margin:0 0 0 3px;flex:none}
.employment-captcha .cptch_block{margin:0}
.employment-captcha .cptch_wrap,.employment-captcha .cptch_label{display:flex;align-items:center;gap:5px;min-height:38px}
.employment-captcha .cptch_label{margin:0!important;font-weight:300}
.employment-captcha input.cptch_input{width:70px!important;font-size:16px}
@media(max-width:767px){.employment-layout{grid-template-columns:1fr;gap:35px;padding-bottom:40px}.employment-intro{font-size:20px;line-height:26px;padding-top:30px}.employment-intro p{margin-bottom:20px}.employment-form{margin-top:0}.employment-page .about-hero h1{font-size:42px}}
/* Featured projects listing: three published project records. */
.featured-page .about-hero{padding-top:190px}
.featured-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 30px;padding:40px 0 50px}
.featured-card{display:flex;flex-direction:column;min-width:0;text-align:center}
.featured-card__image{display:block;overflow:hidden;aspect-ratio:100/66;margin-bottom:30px}
.featured-card__image img{width:100%;height:100%;object-fit:cover}
.featured-card h2{margin:0 0 24px;font-size:22px;font-weight:400;line-height:33px}
.featured-card h2 a{color:var(--text)}
.featured-card p{flex:1;margin:0;color:#777;font-size:16px;font-weight:300;line-height:24px}
.featured-card__more{margin-top:10px;color:#0066b3;font-size:16px;font-weight:700;line-height:56px}
@media(max-width:921px){.featured-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.featured-list{grid-template-columns:1fr}.featured-page .about-hero h1{font-size:38px}}
/* Project detail: source post layout, separate from full-width page banners. */
.project-detail{width:min(calc(100% - 40px),1200px);margin:64px auto;font-size:16px;font-weight:300;line-height:24px}
.project-detail-header h1{margin:0 0 10px;color:#3a3a3a;font-size:26px;font-weight:400;line-height:31.2px}
.project-detail-meta{color:#0066b3;line-height:23.2px}
.project-detail-hero{height:361px;background-size:cover;background-position:center}
.project-detail-columns{display:grid;grid-template-columns:minmax(0,780fr) minmax(0,400fr);gap:20px;margin-top:30px}
.project-detail-copy{display:flow-root}
.project-detail-copy h2{margin:0 0 20px;color:#3a3a3a;font-size:30px;font-weight:400;line-height:39px}
.project-detail-copy p{margin:0 0 25.6px}
.project-detail-side{display:grid;gap:30px;align-content:start}
.project-detail-side img,.project-detail-gallery img{width:100%;height:auto}
.project-detail-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:10px;margin-top:30px}
.project-detail-navigation{margin-top:24px;padding-top:32px;padding-bottom:8px;line-height:34.3333px}
@media(max-width:767px){.project-detail{margin:35px auto}.project-detail-columns{grid-template-columns:1fr}.project-detail-copy h2{font-size:24px;line-height:31px}.project-detail-gallery{grid-template-columns:1fr;padding:0}.project-detail-hero{height:260px}}
/* Northridge variant of the shared project detail layout. */
.northridge-detail .project-detail-hero{height:261px}
.northridge-detail .project-detail-columns{margin-top:20px}
.northridge-detail .project-detail-gallery{margin-top:0}
.project-detail-copy ul{margin:0 0 24px 48px;padding:0}
.project-detail-navigation--both{display:flex;justify-content:space-between;gap:20px}
/* Onkaparinga keeps space below the taller side photographs. */
.onkaparinga-detail .project-detail-columns{margin-top:20px;margin-bottom:20px}
.onkaparinga-detail .project-detail-gallery{margin-top:0}
.project-detail-navigation--next{display:flex;justify-content:flex-end}
/* Policies links retain the source spacing without empty editor paragraphs. */
.policies-content{padding:30px 0 270px}
.policies-copy{width:calc((100% - 20px)*2/3 + 20px/3);text-align:start}
.policies-copy p:first-child{margin-bottom:88px}
@media(max-width:767px){.policies-copy{width:100%}.policies-content{padding:30px 0 90px}.policies-copy p:first-child{margin-bottom:50px}}
/* Mobile header and collapsible navigation measured against the source. */
.submenu-toggle{display:none}
@media(max-width:921px){
 .site-header{height:auto;font-size:16px}
 .site-header__inner{width:100%;height:auto;padding:0 20px;flex-wrap:wrap}
 .site-logo{flex:1 1 0%;min-width:0;padding:1em 2em 1em 0}
 .site-logo img{width:270px;max-width:100%;height:auto}
 .menu-toggle{display:grid;place-items:center;flex:0 0 3.4em;width:3.4em;height:3.57em;padding:0;color:#a0c515;font-size:inherit}
 .menu-toggle span[aria-hidden]{display:none}
 .menu-toggle::after{content:'\e5d2';font-family:Astra;font-size:1.7em;line-height:1}
 .menu-toggle[aria-expanded=true]::after{content:'\e5cd'}
 .primary-navigation{position:static;flex:0 0 calc(100% + 40px);width:calc(100% + 40px);margin:0 -20px;display:none;background:#f9f9f9;border:0;box-shadow:none}
 .primary-navigation.is-open{display:block}
 .primary-navigation .menu{display:block;margin:0;padding:0;border-top:1px solid #ddd}
 .primary-navigation a,.primary-navigation .sub-menu a{display:block;height:auto;min-height:0;padding:0 20px;font-size:inherit;font-weight:300;line-height:3;border-bottom:1px solid #ddd;white-space:normal;background:transparent}
 .primary-navigation .menu-item-has-children>a{padding-right:70px}
 .primary-navigation .menu-item-has-children>a::after{display:none}
 .primary-navigation .sub-menu,.primary-navigation li:hover>.sub-menu,.primary-navigation li:focus-within>.sub-menu{display:none;position:static;width:100%;min-width:0;margin:0;padding:0;border:0;background:#f9f9f9;box-shadow:none}
 .primary-navigation li.submenu-open>.sub-menu{display:block}
 .primary-navigation .sub-menu a{padding-left:30px}
 .primary-navigation .sub-menu li:last-child>a{border-bottom:1px solid #ddd}
 .primary-navigation .sub-menu a:hover,.primary-navigation .sub-menu a:focus{background:transparent}
 .submenu-toggle{display:grid;place-items:center;position:absolute;right:20px;top:0;width:3em;height:calc(3em + 1px);padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font-size:inherit}
 .submenu-toggle::after{content:'\e900';font-family:Astra;font-size:1em;line-height:1}
 .submenu-toggle[aria-expanded=true]::after{transform:rotate(180deg)}
}
@media(max-width:768px){.site-header{font-size:14.592px}}
