/* Production additions: retains the original template palette, fonts, and component design. */
html {scroll-behavior: smooth;}
body {overflow-x:hidden;}
.navbar .navbar-brand h1 {font-size:clamp(1.25rem,2vw,2rem);white-space:nowrap;}
.navbar .navbar-nav .nav-link {font-size:13px;letter-spacing:.015em;}
#header-carousel .carousel-item > img {width:100%;height:640px;object-fit:cover;object-position:center 52%;}
#header-carousel .carousel-caption {background:linear-gradient(90deg,rgba(8,36,31,.80),rgba(9,51,40,.46) 60%,rgba(9,45,36,.50));}
#header-carousel .carousel-caption .display-1 {font-size:clamp(2.15rem,4.6vw,4.55rem);line-height:1.13;}
.hero-subtitle {font-size:clamp(1.02rem,1.6vw,1.22rem);line-height:1.65;max-width:750px;margin-inline:auto;}
.hero-eyebrow {letter-spacing:.23em;font-size:12px;font-weight:700;}
.about-photo {height:460px;width:100%;object-fit:cover;object-position:52% 40%;}
.about-page-photo {max-height:630px;object-fit:cover;}
.page-header {background-position:center 38%;}
.service-item .service-text {min-height:100%;}
.service-item .service-text h4 {font-size:1.26rem;min-height:2.65em;}
.service-item .service-text p {min-height:5.1em;line-height:1.6;}
.service-item .service-text .btn-square {display:flex;align-items:center;justify-content:center;}
.service-item:hover .service-text .btn-square i {color:#348E38!important;}
.portfolio-img {aspect-ratio:1.15/1;object-fit:cover;width:100%;}
.ehs-focus-grid .portfolio-inner {height:100%;background:#fff;box-shadow:0 4px 22px rgba(12,59,38,.09);}
.ehs-focus-grid .portfolio-inner::before,.ehs-focus-grid .portfolio-inner::after {display:none;}
.ehs-focus-grid .portfolio-img {aspect-ratio:1.25/1;display:block;}
.ehs-focus-grid .portfolio-inner .portfolio-text {position:static;width:auto;height:auto;min-height:150px;padding:18px 18px 20px;align-items:flex-start;justify-content:flex-start;opacity:1;transition:none;}
.ehs-focus-grid .portfolio-text h4 {color:var(--dark);font-size:1.1rem;line-height:1.3;}
.ehs-focus-grid .portfolio-text p {color:#52645c;line-height:1.5;flex:1;}
.ehs-focus-grid .portfolio-text .btn {background:var(--primary);color:#fff;width:34px;height:34px;}
.approach-card,.overview-pillar,.process-card {border:1px solid #e8eee9;box-shadow:0 0 35px rgba(0,0,0,.045);border-radius:8px;background:#fff;}
.approach-card {height:100%;}
.overview-pillar {transition:box-shadow .2s ease,transform .2s ease;}
.overview-pillar:hover {box-shadow:0 8px 35px rgba(0,0,0,.08);transform:translateY(-2px);}
.process-card {background:#f6faf6;}
.form-field {min-height:57px;}
/* Keep the consultation form compact on the home and quote pages. */
.quote {padding-top:2rem!important;padding-bottom:2rem!important;}
.quote > .container {padding-top:1rem!important;padding-bottom:1rem!important;}
.quote .row > .col-lg-8 {width:100%;max-width:540px;}
.quote .bg-white {padding:1.5rem!important;}
.quote h2 {font-size:clamp(1.5rem,2vw,2rem);}
.quote .form-field {min-height:40px;}
.quote .form-control,.quote .form-select {font-size:.92rem;padding-top:.45rem;padding-bottom:.45rem;}
.quote .form-label {font-size:.88rem;margin-bottom:.25rem;}
.quote form.row {--bs-gutter-y:.65rem;}
.quote textarea {min-height:75px;}
.quote button[type="submit"] {padding:.55rem 1.25rem!important;}
.hp-field {position:absolute;left:-99999px;width:1px;height:1px;overflow:hidden;}
.content-policy {max-width:950px;line-height:1.8;}
.content-policy h2 {margin-bottom:1rem;}
.content-policy h3 {font-size:1.4rem;margin-top:2rem;}
.content-policy p {margin-bottom:1rem;}
.footer .btn-link {display:block;text-align:left;white-space:normal;line-height:1.45;margin-bottom:9px;}
.footer a:hover {color:#8bdaa7!important;}
#portfolio-flters [role="button"] {cursor:pointer;}
@media(max-width:1199px){.navbar .navbar-nav .nav-link {font-size:12px;padding-left:10px;padding-right:10px;}.navbar .navbar-brand {padding-left:20px!important;padding-right:16px!important;}}
@media(max-width:991.98px){.navbar .navbar-nav .nav-link {font-size:14px;padding:11px 0;}.top-feature {margin-top:0;}#header-carousel .carousel-item>img {height:560px;}.about-photo{height:auto;max-height:490px;}.service-item .service-text p {min-height:0;}}
@media(max-width:767.98px){#header-carousel .carousel-item>img {height:530px;min-height:530px;}#header-carousel .carousel-caption .display-1 {font-size:2.05rem;margin-bottom:1rem!important;}#header-carousel .carousel-caption .row {padding:0 16px;}.hero-subtitle {font-size:1rem;}#header-carousel .carousel-caption .btn {padding:12px 15px!important;font-size:.9rem;}.hero-eyebrow {font-size:10px;}.carousel-control-prev,.carousel-control-next {width:9%;}.carousel-control-prev-icon,.carousel-control-next-icon{width:2rem;height:2rem;border:5px solid var(--primary);} .service-item .service-text h4{min-height:0;} .page-header .display-3 {font-size:2.6rem;}}
@media(prefers-reduced-motion:reduce){html {scroll-behavior:auto;}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}
/* Inline open-source SVG icons: no icon-font network dependency. */
.icon-inline {display:inline-block;width:1em;height:1em;fill:currentColor;vertical-align:-.12em;flex-shrink:0;}
.icon-inline.fa-2x {font-size:2em;}
.icon-inline.fa-3x {font-size:3em;}
.btn-lg-square .icon-inline,.btn-square .icon-inline{vertical-align:middle;}
/* EHS photo treatment works even when the optional parallax library is unavailable. */
.facts,.quote{background-image:linear-gradient(rgba(12,59,38,.77),rgba(12,59,38,.82)),url('../img/carousel-2.jpg')!important;background-size:cover!important;background-position:center!important;background-attachment:scroll!important;}
.wow{visibility:visible!important;}
