/* ================================================================
SIIC DESIGN SYSTEM — responsive, dependency-free website styles
Palette and spacing tokens can be changed here for the whole site.
================================================================ */ :root {
    --navy:#071c2b;
    --navy-2:#102e40;
    --ink:#142c3a;
    --muted:#63747e;
    --gold:#d6b06e;
    --gold-light:#efd7aa;
    --paper:#fff;
    --soft:#f3f5f4;
    --line:#dce3e5;
    --radius:3px;
    --container:1280px;
    --ease:cubic-bezier(.2,.7,.2,1)
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:16px/1.75 "Segoe UI",Arial,Helvetica,sans-serif;
    -webkit-font-smoothing:antialiased
}

body.nav-open {
    overflow:hidden
}

a {
    color:inherit;
    text-decoration:none
}

button,input,textarea {
    font:inherit
}

button,a,input,textarea,summary {
    -webkit-tap-highlight-color:transparent
}

button {
    cursor:pointer
}

img {
    display:block;
    max-width:100%;
    height:auto
}

svg {
    flex-shrink:0
}

p {
    margin:0 0 22px;
    color:var(--muted)
}

h1,h2,h3,h4 {
    font-weight:500;
    line-height:1.15;
    margin:0 0 24px;
    letter-spacing:-.045em
}

h2 {
    font-size:clamp(34px,4vw,54px)
}

h3 {
    font-size:25px;
    letter-spacing:-.025em
}

ul {
    margin:0;
    padding:0;
    list-style:none
}

figure {
    margin:0
}

button {
    border:0
}

::selection {
    background:var(--gold-light);
    color:var(--navy)
}

:focus-visible {
    outline:3px solid #b57f2e;
    outline-offset:5px
}

input:focus-visible,textarea:focus-visible {
    outline-offset:1px
}

a,button {
    touch-action:manipulation
}

[hidden] {
    display:none!important
}

.icon {
    width:23px;
    height:23px;
    vertical-align:middle
}

.container {
    width:calc(100% - 96px);
    max-width:var(--container);
    margin-inline:auto
}

.section {
    padding:110px 0
}

.section-small {
    padding:72px 0
}

.section-soft {
    background:var(--soft)
}

.section-dark {
    background:var(--navy);
    color:#fff
}

.section-dark p {
    color:#b7c5ce
}

.narrow {
    max-width:850px
}

.eyebrow {
    display:block;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.19em;
    color:#99713c;
    margin-bottom:22px;
    line-height:1.5
}

.eyebrow.light {
    color:var(--gold-light)
}

.eyebrow:before {
    content:"";
    display:inline-block;
    width:28px;
    height:1px;
    background:currentColor;
    vertical-align:middle;
    margin-right:12px
}

.lead {
    font-size:20px;
    line-height:1.65;
    color:#41545f
}

.small {
    font-size:13px
}

.muted {
    color:var(--muted)
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    padding:16px 24px;
    min-height:57px;
    background:var(--gold);
    color:var(--navy);
    font-size:14px;
    font-weight:600;
    line-height:1.4;
    border:1px solid var(--gold);
    transition:background .25s,transform .25s,color .25s;
    white-space:normal;
    text-align:center
}

.button:hover {
    background:var(--gold-light);
    border-color:var(--gold-light);
    transform:translateY(-2px)
}

.button .icon {
    width:19px
}

.button-dark {
    background:var(--navy);
    color:white;
    border-color:var(--navy)
}

.button-dark:hover {
    background:var(--navy-2);
    border-color:var(--navy-2);
    color:#fff
}

.button-outline {
    background:transparent;
    border:1px solid #ffffff66;
    color:#fff
}

.button-outline:hover {
    background:#ffffff14;
    border-color:#fff;
    color:#fff
}

.button-small {
    padding:12px 18px;
    min-height:45px
}

.button-row {
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:22px;
    font-size:14px;
    font-weight:600;
    padding:6px 0 10px;
    border-bottom:1px solid var(--gold);
    line-height:1.5;
    transition:gap .25s
}

.text-link:hover {
    gap:30px
}

.text-link .icon {
    width:19px
}

.light-link {
    color:#fff
}

.skip-link {
    position:fixed;
    top:10px;
    left:10px;
    transform:translateY(-200%);
    z-index:100;
    background:#fff;
    color:#000;
    padding:10px 20px
}

.skip-link:focus {
    transform:none
}

.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

.js-only {
    display:none
}

.enhanced .js-only {
    display:flex
}

/* Shared header, accessible dropdown and mobile navigation. */ .topbar {
    background:var(--navy);
    color:#bdc9d0;
    font-size:11px;
    letter-spacing:.02em
}

.topbar-inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:38px
}

.topbar-inner>span,.topbar-inner>div,.topbar a {
    display:flex;
    align-items:center;
    gap:9px
}

.topbar-inner>div {
    gap:30px
}

.topbar .icon {
    width:13px;
    height:13px;
    color:var(--gold)
}

.topbar a:hover {
    color:#fff
}

.site-header {
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,255,255,.98);
    border-bottom:1px solid #e9edef;
    transition:box-shadow .3s
}

.site-header.is-scrolled {
    box-shadow:0 6px 24px #071c2b0d
}

.header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:94px;
    gap:25px
}

.brand {
    display:inline-flex;
    align-items:center;
    gap:14px;
    flex-shrink:0
}

.brand img {
    width:102px;
    height:51px;
    object-fit:contain
}

.brand>span {
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.065em;
    line-height:1.6;
    font-weight:500
}

.brand b {
    font-weight:700
}

.primary-nav {
    display:flex;
    align-items:center;
    gap:24px;
    font-size:13px;
    font-weight:600
}

.primary-nav>a:not(.button),.dropdown-toggle {
    position:relative;
    padding:33px 0;
    transition:color .2s
}

.primary-nav>a:not(.button):after {
    content:"";
    height:2px;
    background:var(--gold);
    position:absolute;
    bottom:20px;
    left:0;
    right:100%;
    transition:right .25s
}

.primary-nav>a:hover:after,.primary-nav>a.is-active:after {
    right:0
}

.primary-nav .is-active {
    color:#9a6b27
}

.dropdown-toggle {
    background:none;
    color:inherit;
    font-size:inherit;
    font-weight:inherit;
    display:flex;
    align-items:center;
    gap:5px
}

.dropdown-toggle .icon {
    width:13px;
    height:13px
}

.nav-dropdown {
    position:relative
}

.dropdown-menu {
    position:absolute;
    top:calc(100% - 5px);
    right:-25px;
    min-width:225px;
    background:#fff;
    padding:12px;
    box-shadow:0 18px 45px #071c2b22;
    visibility:hidden;
    opacity:0;
    transform:translateY(10px);
    transition:all .2s
}

.dropdown-menu a {
    display:block;
    padding:10px 14px;
    color:var(--ink);
    font-size:13px
}

.dropdown-menu a:hover,.dropdown-menu a[aria-current] {
    background:var(--soft);
    color:#916127
}

.nav-dropdown.is-open .dropdown-menu,html:not(.enhanced) .nav-dropdown:focus-within .dropdown-menu {
    visibility:visible;
    opacity:1;
    transform:none
}

.nav-toggle {
    display:none;
    background:var(--navy);
    color:white;
    width:44px;
    height:44px;
    align-items:center;
    justify-content:center
}

.nav-cta {
    margin-left:3px
}

/* Home hero and credential strip. */ .hero {
    position:relative;
    min-height:710px;
    background:var(--navy);
    color:#fff;
    overflow:hidden;
    display:flex;
    align-items:center
}

.hero-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    animation:hero-in 1.7s var(--ease) both
}

.hero:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(4,21,33,.92),rgba(4,21,33,.6) 47%,rgba(4,21,33,.08)),linear-gradient(0deg,#041521aa,transparent 30%);
    pointer-events:none
}

.hero-grid {
    position:absolute;
    inset:0;
    z-index:1;
    background:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),#ffffff0b calc(25% - 1px),#ffffff0b 25%);
    pointer-events:none
}

.hero-content {
    position:relative;
    z-index:2;
    padding-top:40px;
    padding-bottom:115px
}

.hero .eyebrow {
    margin-bottom:28px;
    font-size:11px
}

.hero h1 {
    font-size:clamp(52px,5.75vw,86px);
    font-weight:400;
    letter-spacing:-.055em;
    line-height:1.08;
    max-width:1000px;
    margin-bottom:30px;
    animation:rise-in .8s var(--ease) both
}

.hero h1 em {
    color:var(--gold-light);
    font-style:normal
}

.hero p {
    font-size:19px;
    color:#c5d0d8;
    line-height:1.7;
    margin-bottom:34px;
    animation:rise-in 1s var(--ease) both
}

.hero .button-row {
    animation:rise-in 1.2s var(--ease) both
}

.hero-foot {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:82px;
    border-top:1px solid #ffffff30;
    color:#afc0cb;
    font-size:10px;
    letter-spacing:.13em
}

.hero-foot b {
    padding:0 11px;
    color:var(--gold)
}

.scroll-cue {
    display:flex;
    align-items:center;
    gap:15px;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.14em
}

.scroll-cue>span {
    border:1px solid #ffffff45;
    width:28px;
    height:40px;
    border-radius:18px;
    display:grid;
    place-items:center;
    font-size:17px;
    color:var(--gold-light);
    animation:scroll-hint 2.5s ease infinite
}

.credential-bar {
    border-bottom:1px solid var(--line);
    background:#fff
}

.credentials {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding:29px 0;
    gap:25px
}

.credentials>div {
    display:flex;
    gap:17px;
    align-items:center;
    min-height:54px;
    padding-left:20px;
    border-left:1px solid var(--line)
}

.credentials>div:first-child {
    border-left:0;
    padding-left:0
}

.credential-icon {
    color:#96713d
}

.credential-icon .icon {
    width:29px;
    height:29px
}

.credentials>div>span:last-child {
    font-size:10px;
    color:var(--muted);
    line-height:1.65
}

.credentials strong {
    display:block;
    color:var(--navy);
    font-size:14px;
    letter-spacing:.02em;
    font-weight:600
}

/* Shared section compositions. */ .split-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:90px
}

.split-layout p:last-child {
    margin-bottom:0
}

.image-composition {
    position:relative;
    margin-right:20px
}

.image-composition>img {
    width:100%;
    height:530px;
    object-fit:cover;
    object-position:50%
}

.image-composition:before {
    content:"";
    position:absolute;
    left:-15px;
    top:-15px;
    width:100px;
    height:100px;
    border-left:2px solid var(--gold);
    border-top:2px solid var(--gold);
    z-index:1
}

.image-caption {
    position:absolute;
    left:25px;
    bottom:25px;
    color:#fff;
    font-size:19px;
    line-height:1.5;
    text-shadow:0 2px 18px #000
}

.image-composition:after {
    content:"";
    position:absolute;
    inset:50% 0 0;
    background:linear-gradient(transparent,#071c2baa);
    pointer-events:none
}

.image-caption {
    z-index:1
}

.image-corner {
    position:absolute;
    right:-35px;
    bottom:-30px;
    background:var(--navy);
    color:var(--gold-light);
    font-size:43px;
    line-height:1.1;
    padding:30px 32px;
    z-index:2;
    font-weight:600;
    letter-spacing:-.04em
}

.image-corner span {
    font-size:12px;
    line-height:1.5;
    letter-spacing:0;
    display:block;
    color:#d4dfe5;
    margin-top:10px;
    font-weight:400
}

.inline-highlights {
    display:flex;
    flex-wrap:wrap;
    gap:10px 20px;
    padding:4px 0 25px
}

.inline-highlights span {
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:12px
}

.inline-highlights .icon {
    color:#a37b40;
    width:16px
}

.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:70px;
    margin-bottom:50px
}

.section-heading>div:first-child {
    flex:1
}

.section-heading>p,.section-heading>div:last-child:not(:first-child) {
    max-width:390px;
    flex:1
}

.section-heading h2 {
    margin-bottom:0
}

.section-heading>p {
    margin-bottom:6px
}

.section-heading.compact {
    margin-bottom:35px
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px
}

.service-card {
    display:flex;
    flex-direction:column;
    min-height:305px;
    background:white;
    border:1px solid var(--line);
    padding:31px 30px;
    position:relative;
    transition:background .3s,color .3s,border .3s,transform .3s;
    overflow:hidden
}

.service-card:before {
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:0;
    height:3px;
    background:var(--gold);
    transition:width .4s
}

.service-card:hover {
    background:var(--navy);
    color:#fff;
    transform:translateY(-5px);
    border-color:var(--navy)
}

.service-card:hover:before {
    width:100%
}

.card-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin-bottom:30px
}

.service-icon {
    display:inline-grid;
    place-items:center;
    color:#a37b40
}

.service-icon .icon {
    width:34px;
    height:34px
}

.card-category {
    font-size:9px;
    line-height:1.5;
    letter-spacing:.05em;
    color:var(--muted);
    max-width:120px;
    text-align:right;
    text-transform:uppercase
}

.service-card h3 {
    font-size:24px;
    letter-spacing:-.035em;
    margin-bottom:14px
}

.service-card p {
    font-size:14px;
    line-height:1.75;
    margin-bottom:22px;
    transition:color .3s
}

.card-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    font-size:12px;
    padding-top:18px;
    border-top:1px solid var(--line);
    margin-top:auto
}

.card-link>.icon {
    width:20px;
    transition:transform .25s
}

.service-card:hover .card-link>.icon {
    transform:translateX(4px)
}

.service-card:hover p,.service-card:hover .card-category {
    color:#bfcdd6
}

.service-card:hover .card-link {
    border-color:#ffffff20
}

.service-card:hover .service-icon {
    color:var(--gold)
}

.sector-strip {
    background:var(--navy);
    color:#fff;
    padding:45px 0
}

.sector-strip .eyebrow {
    color:var(--gold);
    margin-bottom:26px
}

.sector-links {
    display:grid;
    grid-template-columns:repeat(5,1fr)
}

.sector-links>a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    border-left:1px solid #ffffff25;
    padding:12px 24px;
    font-size:18px;
    font-weight:400;
    line-height:1.4;
    transition:color .2s
}

.sector-links>a:first-child {
    border-left:0;
    padding-left:0
}

.sector-links>a:hover {
    color:var(--gold)
}

.sector-links .icon {
    color:var(--gold);
    width:17px
}

.equipment-tags {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:25px 0 30px
}

.equipment-tags>span {
    border:1px solid var(--line);
    padding:8px 13px;
    font-size:11px
}

.equipment-image {
    position:relative;
    padding:0 0 35px 25px
}

.equipment-image img {
    width:100%;
    height:440px;
    object-fit:cover
}

.equipment-image:before {
    content:"";
    position:absolute;
    inset:30px 30px 0 0;
    background:var(--soft);
    z-index:-1
}

.equipment-stamp {
    position:absolute;
    bottom:0;
    left:0;
    background:#fff;
    border:1px solid var(--line);
    padding:24px 30px;
    display:flex;
    align-items:center;
    gap:20px;
    box-shadow:0 15px 35px #071c2b0a
}

.equipment-stamp>.icon {
    width:40px;
    height:40px;
    color:#a37b40
}

.equipment-stamp span {
    font-size:12px;
    color:var(--muted)
}

.equipment-stamp b {
    display:block;
    font-weight:500;
    font-size:16px;
    color:var(--navy)
}

.hse-feature {
    position:relative;
    background:var(--navy);
    color:#fff;
    overflow:hidden
}

.hse-feature>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.18
}

.hse-feature:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,var(--navy),transparent);
    pointer-events:none
}

.hse-feature-inner {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1.2fr 1fr;
    align-items:center;
    gap:120px;
    padding-block:95px
}

.hse-feature p {
    color:#bbcbd6;
    max-width:550px
}

.hse-pillars {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:35px
}

.hse-pillars>div {
    padding:18px 5px;
    border-top:1px solid #ffffff38
}

.hse-pillars .icon {
    display:block;
    color:var(--gold);
    width:34px;
    height:34px;
    margin:5px 0 20px
}

.hse-pillars span {
    font-size:15px
}

.partner-strip {
    display:grid;
    grid-template-columns:repeat(6,1fr);
    align-items:center;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:35px 0
}

.partner-strip span {
    text-align:center;
    padding:0 20px;
    border-right:1px solid var(--line);
    color:#526571;
    font-size:20px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:-.04em
}

.partner-strip span:last-child {
    border-right:0
}

/* Shared banners, closing CTA and footer. */ .page-banner {
    position:relative;
    background:var(--navy);
    color:#fff;
    overflow:hidden
}

.banner-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 45%;
    opacity:.45
}

.page-banner:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#071c2be8,#071c2b44)
}

.banner-content {
    position:relative;
    z-index:1;
    padding-top:36px
}

.breadcrumbs {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    font-size:11px;
    color:#c9d4dc;
    margin-bottom:52px
}

.breadcrumbs a:hover {
    color:var(--gold)
}

.breadcrumbs>span[aria-current] {
    color:var(--gold-light)
}

.page-banner h1 {
    font-size:clamp(43px,5vw,69px);
    font-weight:400;
    line-height:1.12;
    max-width:900px;
    margin:0 0 48px
}

.page-banner .eyebrow {
    margin-bottom:20px
}

.banner-bottom {
    display:flex;
    justify-content:space-between;
    gap:30px;
    border-top:1px solid #ffffff35;
    padding:19px 0;
    color:#bacad4;
    font-size:11px
}

.location-label {
    font-size:10px;
    letter-spacing:.15em
}

.cta-section {
    background:var(--navy-2);
    color:#fff;
    position:relative;
    overflow:hidden
}

.cta-section:before {
    content:"";
    position:absolute;
    right:-70px;
    top:-250px;
    width:600px;
    height:600px;
    border:1px solid #d6b06e20;
    border-radius:50%;
    box-shadow:0 0 0 80px #ffffff03,0 0 0 160px #ffffff02;
    pointer-events:none
}

.cta-inner {
    display:flex;
    position:relative;
    justify-content:space-between;
    align-items:center;
    gap:50px;
    padding-block:75px
}

.cta-inner h2 {
    font-size:clamp(38px,4.2vw,62px);
    font-weight:400;
    margin-bottom:20px
}

.cta-inner p {
    color:#bfd0db;
    margin:0
}

.cta-actions {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:23px
}

.site-footer {
    background:#f5f6f4;
    padding:70px 0 0
}

.footer-grid {
    display:grid;
    grid-template-columns:1.45fr .65fr .85fr 1.25fr;
    gap:55px;
    padding-bottom:58px
}

.footer-brand .brand {
    margin-bottom:24px
}

.footer-brand p {
    font-size:13px;
    line-height:1.8;
    margin-bottom:16px
}

.footer-brand p:not(.muted) {
    color:var(--navy)
}

.footer-brand .text-link {
    font-size:12px
}

.site-footer h3 {
    font-size:13px;
    font-weight:700;
    margin:9px 0 24px;
    letter-spacing:0
}

.footer-links li {
    margin-bottom:10px;
    font-size:12px;
    color:#62717a
}

.footer-links a:hover,.footer-contact a:hover {
    color:#916127
}

.footer-contact {
    font-size:12px;
    color:#62717a
}

.footer-contact li {
    display:flex;
    align-items:flex-start;
    gap:11px;
    margin-bottom:16px;
    overflow-wrap:anywhere
}

.footer-contact .icon {
    width:16px;
    height:16px;
    color:#99713c;
    margin-top:4px
}

.footer-bottom {
    border-top:1px solid var(--line);
    display:flex;
    gap:28px;
    align-items:center;
    justify-content:space-between;
    padding-block:24px;
    font-size:10px;
    color:var(--muted)
}

.social-link {
    display:inline-flex;
    margin:10px 15px 0 0;
    gap:6px;
    font-size:12px
}

.social-link .icon {
    width:13px
}

.quick-contact {
    position:fixed;
    right:25px;
    bottom:25px;
    z-index:45
}

.quick-toggle {
    display:flex;
    gap:10px;
    align-items:center;
    justify-content:center;
    background:var(--gold);
    color:var(--navy);
    padding:15px 20px;
    min-height:52px;
    box-shadow:0 5px 25px #071c2b26;
    font-size:12px;
    font-weight:700;
    border:1px solid #ffffff55
}

.quick-toggle .icon {
    width:19px
}

.quick-options {
    position:absolute;
    bottom:calc(100% + 10px);
    right:0;
    min-width:215px;
    background:#fff;
    padding:10px;
    box-shadow:0 6px 40px #071c2b2b;
    border:1px solid var(--line)
}

.quick-options a {
    display:flex;
    align-items:center;
    gap:12px;
    padding:11px 10px;
    font-size:12px
}

.quick-options a:hover {
    background:var(--soft)
}

.quick-options .icon {
    width:17px;
    color:#99713c
}

/* Company, vision, credentials and partner pages. */ .image-panel>img {
    width:100%;
    height:420px;
    object-fit:cover
}

.panel-note {
    padding:28px 35px;
    background:var(--navy);
    color:#fff
}

.panel-note>span {
    display:block;
    color:var(--gold);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.16em;
    margin-bottom:12px
}

.panel-note strong {
    font-size:22px;
    line-height:1.45;
    font-weight:400
}

.vision-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px
}

.vision-card {
    padding:50px;
    background:#fff;
    border:1px solid var(--line);
    position:relative
}

.vision-card h2 {
    font-size:38px
}

.vision-card p {
    margin:0;
    font-size:17px
}

.large-number {
    display:block;
    color:var(--gold);
    font-size:58px;
    line-height:1;
    margin-bottom:40px;
    font-weight:300;
    letter-spacing:-.05em
}

.dark-card {
    background:var(--navy);
    color:#fff;
    border-color:var(--navy)
}

.dark-card p {
    color:#bdcdd6
}

.advantage-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 50px
}

.advantage {
    display:flex;
    align-items:center;
    gap:23px;
    border-bottom:1px solid var(--line);
    padding:25px 0
}

.advantage>span {
    font-size:12px;
    color:#9d7a43
}

.advantage h3 {
    font-size:19px;
    margin:0;
    letter-spacing:-.02em;
    flex:1
}

.advantage .icon {
    color:#99713c;
    width:18px
}

.three-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px
}

.plain-card {
    border-top:1px solid #ffffff33;
    padding:30px 8px 0
}

.plain-card>.icon {
    color:var(--gold);
    width:35px;
    height:35px;
    margin-bottom:26px
}

.plain-card h3 {
    font-size:26px
}

.plain-card p {
    font-size:14px;
    margin-bottom:0
}

.financial-note {
    margin-top:65px;
    border-left:2px solid var(--gold);
    padding-left:30px;
    max-width:850px
}

.financial-note .eyebrow {
    margin-bottom:15px
}

.financial-note h3 {
    font-size:30px
}

.financial-note p {
    font-size:15px;
    margin:0
}

.cert-card {
    background:var(--soft);
    padding:30px;
    border:1px solid var(--line)
}

.cert-card>.service-icon {
    margin-bottom:25px
}

.cert-card>.eyebrow {
    margin-bottom:15px;
    font-size:10px
}

.cert-card>.eyebrow:before {
    display:none
}

.cert-card h3 {
    font-size:24px;
    min-height:55px;
    margin-bottom:15px
}

.cert-card>p {
    font-size:14px;
    min-height:51px
}

.certificate-preview {
    display:block;
    border:1px solid var(--line);
    background:#fff;
    overflow:hidden
}

.certificate-preview>img {
    width:100%;
    height:310px;
    object-fit:contain;
    object-position:top;
    padding:10px;
    transition:transform .4s
}

.certificate-preview:hover>img {
    transform:scale(1.025)
}

.certificate-preview>span {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:15px 18px;
    font-size:12px;
    border-top:1px solid var(--line)
}

.certificate-preview .icon {
    width:16px
}

.document-note {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    margin-top:40px;
    padding-top:35px;
    border-top:1px solid var(--line)
}

.document-note>div {
    display:flex;
    align-items:center;
    gap:20px;
    max-width:700px
}

.document-note p {
    font-size:13px;
    margin:0
}

.document-note>.text-link {
    flex-shrink:0
}

.document-note .icon {
    color:#99713c
}

.vendor-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px
}

.vendor-card {
    padding:30px;
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    align-items:flex-start
}

.vendor-card>.icon {
    color:#99713c;
    width:29px;
    height:29px;
    margin-bottom:30px
}

.vendor-card h3 {
    font-size:22px;
    flex:1;
    margin-bottom:30px
}

.vendor-card>span {
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--muted)
}

.vendor-card>strong {
    font-size:16px;
    font-weight:500;
    margin-top:5px
}

.client-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    margin-top:45px;
    border-top:1px solid var(--line);
    border-left:1px solid var(--line)
}

.client-name {
    padding:30px 20px;
    display:grid;
    place-items:center;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    font-size:21px;
    font-weight:600;
    letter-spacing:-.04em;
    min-height:100px;
    text-align:center;
    background:#fff
}

/* Service detail and equipment catalogue. */ .filter-toolbar {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:35px
}

.filter-chip {
    background:transparent;
    border:1px solid var(--line);
    padding:11px 17px;
    line-height:1.4;
    color:var(--muted);
    font-size:12px;
    transition:all .2s
}

.filter-chip:hover {
    border-color:var(--navy);
    color:var(--navy)
}

.filter-chip.is-selected {
    background:var(--navy);
    color:#fff;
    border-color:var(--navy)
}

.detail-layout {
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:65px;
    align-items:start
}

.service-sidebar {
    background:var(--soft);
    padding:25px
}

.service-sidebar>h2 {
    font-size:20px;
    letter-spacing:-.02em;
    padding:8px 5px 15px;
    border-bottom:1px solid var(--line);
    margin-bottom:0
}

.service-sidebar nav a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    font-size:12px;
    line-height:1.5;
    padding:14px 5px;
    border-bottom:1px solid var(--line);
    transition:color .2s
}

.service-sidebar nav .icon {
    width:15px;
    height:15px
}

.service-sidebar nav a:hover,.service-sidebar nav .is-current {
    color:#926126
}

.service-sidebar nav .is-current {
    font-weight:700
}

.sidebar-contact {
    background:var(--navy);
    color:#fff;
    padding:28px 23px;
    margin:30px -5px -5px
}

.sidebar-contact h3 {
    font-size:25px;
    margin-bottom:15px
}

.sidebar-contact p {
    font-size:13px;
    color:#b9c9d3
}

.sidebar-contact .text-link {
    font-size:12px
}

.detail-content>h2 {
    font-size:40px
}

.detail-image {
    width:100%;
    height:390px;
    object-fit:cover;
    margin:32px 0 40px
}

.scope-block {
    border-bottom:1px solid var(--line);
    padding-bottom:28px;
    margin-bottom:35px
}

.scope-block h3 {
    font-size:25px
}

.check-list {
    display:grid;
    gap:12px
}

.check-list li {
    display:flex;
    align-items:flex-start;
    gap:12px;
    color:#526873;
    font-size:15px
}

.check-list .icon {
    color:#a37b40;
    width:18px;
    height:18px;
    margin-top:5px
}

.enquiry-box {
    margin-top:40px;
    padding:30px;
    background:var(--soft);
    border-left:3px solid var(--gold)
}

.enquiry-box h3 {
    font-size:26px;
    margin-bottom:12px
}

.enquiry-box p {
    font-size:14px
}

.enquiry-box .button {
    font-size:12px
}

.catalog-intro {
    display:grid;
    grid-template-columns:1fr 1fr;
    background:var(--soft);
    margin-bottom:50px;
    align-items:center
}

.catalog-intro>img {
    width:100%;
    height:320px;
    object-fit:cover
}

.catalog-intro>div {
    padding:35px 45px
}

.catalog-intro h3 {
    font-size:35px;
    margin-bottom:20px
}

.catalog-intro p {
    font-size:14px
}

.catalog-controls {
    flex-direction:column;
    gap:0;
    align-items:stretch
}

.catalog-controls .filter-toolbar {
    margin-bottom:20px
}

.search-field {
    display:flex;
    align-items:center;
    gap:12px;
    border:1px solid var(--line);
    padding:0 15px;
    max-width:440px;
    margin-bottom:15px
}

.search-field .icon {
    width:18px;
    color:#9c7a42
}

.search-field input {
    border:0;
    padding:13px 0;
    min-width:0;
    flex:1;
    background:transparent;
    outline:none!important;
    font-size:14px;
    color:var(--ink)
}

.search-field:focus-within {
    outline:2px solid var(--gold)
}

.results-count {
    font-size:11px;
    color:var(--muted);
    margin:8px 0 15px;
    gap:4px
}

.equipment-catalog {
    border-top:1px solid var(--line)
}

.equipment-row {
    display:grid;
    grid-template-columns:45px 1fr minmax(180px,300px) 48px;
    align-items:center;
    gap:25px;
    padding:25px 18px;
    border-bottom:1px solid var(--line);
    transition:background .2s
}

.equipment-row:hover {
    background:var(--soft)
}

.equipment-number {
    font-size:11px;
    color:#a37b40
}

.item-category {
    font-size:10px;
    letter-spacing:.1em;
    color:#8c713f;
    text-transform:uppercase
}

.equipment-row h3 {
    font-size:21px;
    margin:6px 0 0;
    line-height:1.3
}

.equipment-spec {
    font-size:12px;
    line-height:1.6;
    color:var(--muted)
}

.round-link {
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    width:44px;
    height:44px;
    transition:background .25s,color .25s
}

.round-link:hover {
    background:var(--navy);
    color:#fff;
    border-color:var(--navy)
}

.round-link .icon {
    width:19px
}

.empty-state {
    background:var(--soft);
    padding:40px;
    text-align:center
}

.industry-list {
    display:grid;
    gap:70px
}

.industry-card {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:65px;
    align-items:center;
    scroll-margin-top:130px
}

.industry-card:nth-child(even) .industry-photo {
    order:2
}

.industry-card h2 {
    font-size:42px
}

.industry-photo>img {
    width:100%;
    height:380px;
    object-fit:cover
}

.industry-services {
    border-top:1px solid var(--line);
    margin-top:27px
}

.industry-services li {
    border-bottom:1px solid var(--line)
}

.industry-services a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:13px 0;
    font-size:13px;
    line-height:1.5
}

.industry-services a:hover {
    color:#926126
}

.industry-services .icon {
    width:17px;
    color:#a37b40
}

/* HSE, gallery and FAQ. */ .hse-statement {
    background:var(--navy);
    color:#fff;
    padding:45px
}

.statement-icon>.icon {
    color:var(--gold);
    width:50px;
    height:50px;
    margin-bottom:30px
}

.hse-statement h3 {
    font-size:31px
}

.hse-statement p {
    color:#bfced8
}

.hse-statement strong {
    font-weight:400;
    font-size:27px;
    line-height:1.4;
    color:var(--gold-light)
}

.hse-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:25px
}

.hse-card {
    padding:35px;
    border:1px solid var(--line);
    background:#fff
}

.hse-card>.icon {
    color:#99713c;
    width:34px;
    height:34px;
    margin-bottom:30px
}

.hse-card h3 {
    font-size:26px
}

.hse-card p {
    font-size:14px;
    margin-bottom:0
}

.hse-footer {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    margin-top:40px;
    padding-top:28px
}

.hse-footer span {
    font-size:10px;
    letter-spacing:.03em;
    color:#8b6b39;
    text-transform:uppercase
}

.gallery-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px 28px
}

.gallery-open {
    display:block;
    position:relative;
    overflow:hidden;
    background:var(--navy)
}

.gallery-open img {
    width:100%;
    height:350px;
    object-fit:cover;
    transition:transform .7s var(--ease),opacity .5s
}

.gallery-open:hover img {
    transform:scale(1.045);
    opacity:.85
}

.gallery-zoom {
    position:absolute;
    right:20px;
    bottom:20px;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    background:#fff;
    color:var(--navy)
}

.gallery-zoom .icon {
    width:20px
}

.gallery-card figcaption {
    padding-top:22px
}

.gallery-card figcaption>span {
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#9c7a42
}

.gallery-card h3 {
    font-size:26px;
    margin:7px 0 0
}

.lightbox {
    width:min(1100px,94vw);
    max-height:94vh;
    background:var(--navy);
    color:#fff;
    border:1px solid #ffffff30;
    padding:20px 25px
}

.lightbox::backdrop {
    background:#020b14e8;
    backdrop-filter:blur(5px)
}

.lightbox-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:15px
}

.lightbox-toolbar h2 {
    font-size:20px;
    margin:0;
    letter-spacing:-.02em
}

.lightbox button {
    background:transparent;
    color:#fff;
    min-width:44px;
    min-height:44px
}

.lightbox>img {
    max-height:65vh;
    width:100%;
    object-fit:contain
}

.lightbox>p {
    font-size:12px;
    color:#c4d4df;
    margin:15px 0 0
}

.lightbox-navigation {
    display:flex;
    justify-content:space-between;
    margin-top:8px
}

.lightbox-navigation button {
    font-size:12px;
    padding:10px
}

.faq-layout {
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:90px
}

.faq-layout>div:first-child p {
    max-width:300px
}

.faq-item {
    border-bottom:1px solid var(--line)
}

.faq-item:first-child {
    border-top:1px solid var(--line)
}

.faq-item summary {
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding:26px 0;
    font-size:19px;
    font-weight:500;
    line-height:1.5;
    letter-spacing:-.02em
}

.faq-item summary::-webkit-details-marker {
    display:none
}

.faq-item summary>span {
    font-size:24px;
    color:#99713c;
    font-weight:300;
    transition:transform .2s
}

.faq-item[open] summary>span {
    transform:rotate(45deg)
}

.faq-item>div {
    padding:0 25px 26px 0
}

.faq-item p {
    font-size:14px;
    margin:0;
    line-height:1.85
}

/* Contact, privacy and error pages. */ .contact-card-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:30px
}

.contact-card {
    padding:32px;
    border:1px solid var(--line);
    overflow-wrap:anywhere
}

.contact-card>.icon {
    width:30px;
    height:30px;
    color:#99713c;
    margin-bottom:30px
}

.contact-card>.eyebrow {
    font-size:10px;
    margin-bottom:17px
}

.contact-card>.eyebrow:before {
    display:none
}

.contact-card h2 {
    font-size:29px;
    min-height:70px;
    margin-bottom:22px;
    letter-spacing:-.035em
}

.contact-card p {
    font-size:13px;
    margin-bottom:13px
}

.contact-card>a:not(.text-link) {
    font-size:13px;
    display:inline-block;
    margin-bottom:12px;
    border-bottom:1px solid var(--line)
}

.contact-card>.text-link {
    font-size:13px
}

.contact-layout {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:100px;
    align-items:start
}

.contact-layout>div:first-child>p {
    max-width:390px
}

.contact-aside-note {
    display:flex;
    align-items:center;
    gap:18px;
    margin:35px 0
}

.contact-aside-note>.icon {
    width:35px;
    height:35px;
    color:#99713c
}

.contact-aside-note p {
    font-size:12px;
    margin:0
}

.contact-aside-note strong {
    color:var(--ink);
    font-weight:500
}

.enquiry-form {
    position:relative
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:23px
}

.form-grid label {
    font-size:12px;
    font-weight:600;
    display:flex;
    flex-direction:column;
    gap:8px
}

.form-grid label>span {
    display:contents;
    color:#a05931
}

.form-grid input,.form-grid textarea {
    background:#fff;
    border:1px solid #d6dfe2;
    color:var(--ink);
    padding:14px 16px;
    width:100%;
    border-radius:0;
    font-size:14px;
    font-weight:400;
    line-height:1.6;
    transition:border-color .2s
}

.form-grid textarea {
    resize:vertical;
    min-height:150px
}

.form-grid input:hover,.form-grid textarea:hover {
    border-color:#98a9b2
}

.form-grid input::placeholder,.form-grid textarea::placeholder {
    color:#86949b;
    font-size:12px
}

.full-width {
    grid-column:1/-1
}

.consent-field {
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:11px;
    color:var(--muted);
    margin:24px 0 28px;
    line-height:1.7
}

.consent-field>input {
    margin-top:4px;
    width:15px;
    height:15px;
    accent-color:var(--navy);
    flex-shrink:0
}

.consent-field a {
    text-decoration:underline;
    color:var(--ink)
}

.form-bottom {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}

.form-bottom>span {
    font-size:10px;
    color:var(--muted)
}

.form-bottom .button {
    font-size:13px
}

.form-notice {
    background:#fff8ea;
    border:1px solid #e6c98f;
    padding:26px;
    margin-bottom:30px;
    scroll-margin-top:120px
}

.form-notice h3 {
    font-size:23px;
    margin-bottom:15px
}

.form-notice p,.form-notice li {
    font-size:13px
}

.form-notice p:last-child {
    margin-bottom:0
}

.form-notice .button {
    margin:4px 0 15px
}

.form-notice.error {
    background:#fff1ee;
    border-color:#dcaaa0
}

.form-notice.error ul {
    padding-left:17px;
    list-style:disc;
    color:#854232
}

.form-notice.success {
    background:#edf8f0;
    border-color:#97c3a3
}

.honeypot {
    position:absolute;
    left:-10000px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden
}

.prose h3 {
    font-size:26px;
    margin-top:40px;
    margin-bottom:15px
}

.prose a {
    color:#8a642a;
    text-decoration:underline
}

.prose p {
    font-size:15px
}

.error-page {
    text-align:center
}

.error-code {
    font-size:110px;
    line-height:1;
    color:var(--gold);
    font-weight:300;
    letter-spacing:-.06em;
    display:block;
    margin-bottom:35px
}

.error-page p {
    max-width:560px;
    margin:0 auto 30px
}

.error-page .button-row {
    justify-content:center
}

/* Motion is opt-in to the observer, and respects the visitor's preference. */ .reveal {
    transition:opacity .65s var(--ease),transform .65s var(--ease)
}

.reveal.reveal-wait {
    opacity:0;
    transform:translateY(22px)
}

.reveal.is-visible {
    opacity:1;
    transform:none
}

@keyframes hero-in {
    from {
        transform:scale(1.045)
    }
    to {
        transform:scale(1)
    }
}

@keyframes rise-in {
    from {
        opacity:0;
        transform:translateY(24px)
    }
    to {
        opacity:1;
        transform:translateY(0)
    }
}

@keyframes scroll-hint {
    0%,100% {
        transform:translateY(0)
    }
    50% {
        transform:translateY(4px)
    }
}

/* Tablet and laptop layouts. */ @media(min-width:1181px) {
    html:not(.enhanced) .nav-dropdown:hover .dropdown-menu {
        visibility:visible;
        opacity:1;
        transform:none
    }
}

@media(max-width:1250px) {
    .primary-nav {
        gap:17px;
        font-size:12px
    }
    .brand>span {
        font-size:10px
    }
    .brand {
        gap:10px
    }
    .brand img {
        width:90px
    }
    .split-layout {
        gap:60px
    }
    .hse-feature-inner {
        gap:70px
    }
    .footer-grid {
        gap:30px
    }
    .detail-layout {
        gap:40px
    }
}

@media(max-width:1180px) {
    .container {
        width:calc(100% - 64px)
    }
    .header-inner {
        min-height:82px
    }
    .brand img {
        width:99px
    }
    .brand>span {
        font-size:11px
    }
    .nav-toggle {
        display:flex
    }
    .primary-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:#fff;
        max-height:calc(100dvh - 82px);
        overflow-y:auto;
        border-top:1px solid var(--line);
        padding:18px 32px 30px;
        box-shadow:0 20px 30px #071c2b20;
        align-items:stretch;
        gap:0;
        font-size:15px
    }
    .primary-nav.is-open {
        display:flex;
        flex-direction:column
    }
    .primary-nav>a:not(.button),.dropdown-toggle {
        padding:14px 0;
        width:100%;
        text-align:left;
        border-bottom:1px solid var(--line)
    }
    .primary-nav>a:not(.button):after {
        display:none
    }
    .dropdown-toggle {
        justify-content:space-between
    }
    .dropdown-menu {
        display:none;
        position:static;
        opacity:1;
        visibility:visible;
        transform:none;
        box-shadow:none;
        padding:7px 10px 10px;
        background:var(--soft)
    }
    .nav-dropdown.is-open .dropdown-menu,html:not(.enhanced) .nav-dropdown:focus-within .dropdown-menu {
        display:block
    }
    .nav-cta {
        margin-top:20px;
        align-self:flex-start
    }
    .hero {
        min-height:650px
    }
    .hero h1 {
        font-size:69px
    }
    .hero-coordinates {
        display:none
    }
    .section {
        padding:85px 0
    }
    .section-small {
        padding:60px 0
    }
    .split-layout {
        gap:50px
    }
    .image-composition>img {
        height:490px
    }
    .service-grid {
        gap:18px
    }
    .service-card {
        padding:27px 24px
    }
    .card-category {
        font-size:8px
    }
    .service-card h3 {
        font-size:22px
    }
    .sector-links>a {
        padding:10px 18px;
        font-size:16px
    }
    .footer-grid {
        grid-template-columns:1.4fr .8fr 1fr
    }
    .footer-grid>div:last-child {
        grid-column:1/-1;
        border-top:1px solid var(--line);
        padding-top:25px
    }
    .footer-grid>div:last-child .footer-contact {
        display:flex;
        flex-wrap:wrap;
        gap:20px
    }
    .footer-grid>div:last-child .footer-contact li {
        margin:0
    }
    .vendor-grid {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .contact-layout {
        gap:55px
    }
    .contact-card {
        padding:27px
    }
    .contact-card h2 {
        font-size:25px
    }
    .hse-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .detail-layout {
        grid-template-columns:260px 1fr
    }
    .equipment-row {
        grid-template-columns:30px 1fr minmax(140px,240px) 44px;
        gap:17px
    }
    .gallery-open img {
        height:300px
    }
    .faq-layout {
        gap:55px
    }
    .industry-card {
        gap:45px
    }
    .industry-photo>img {
        height:340px
    }
    .section-heading {
        gap:50px
    }
}

/* Small tablets and phones. */ @media(max-width:900px) {
    .hero {
        min-height:620px
    }
    .hero h1 {
        font-size:60px
    }
    .hero p {
        font-size:17px
    }
    .hero-foot {
        font-size:9px
    }
    .credentials {
        grid-template-columns:1fr 1fr;
        gap:25px 35px;
        padding-block:27px
    }
    .credentials>div:nth-child(3) {
        border-left:0;
        padding-left:0
    }
    .credentials>div {
        padding-left:25px
    }
    .credentials strong {
        font-size:13px
    }
    .split-layout {
        grid-template-columns:1fr;
        gap:55px
    }
    .image-composition {
        max-width:650px;
        margin-right:35px
    }
    .image-composition>img {
        height:470px
    }
    .split-layout>div:not(.image-composition) {
        max-width:100%
    }
    .section-heading {
        align-items:flex-start;
        gap:35px
    }
    .section-heading>p {
        font-size:14px
    }
    .service-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .sector-links {
        grid-template-columns:repeat(3,1fr);
        gap:20px 0
    }
    .sector-links>a:nth-child(4) {
        border-left:0;
        padding-left:0
    }
    .equipment-image {
        max-width:680px;
        width:100%;
        margin-top:0
    }
    .equipment-image img {
        height:400px
    }
    .hse-feature-inner {
        grid-template-columns:1fr;
        gap:50px;
        padding-block:70px
    }
    .hse-pillars {
        grid-template-columns:repeat(4,1fr);
        gap:25px
    }
    .hse-pillars span {
        font-size:13px
    }
    .hse-pillars .icon {
        width:28px;
        height:28px
    }
    .partner-strip {
        grid-template-columns:repeat(3,1fr);
        gap:25px 0
    }
    .partner-strip span:nth-child(3) {
        border-right:0
    }
    .partner-strip span {
        font-size:22px
    }
    .cta-inner {
        padding-block:65px;
        gap:30px
    }
    .cta-actions {
        max-width:300px
    }
    .three-grid {
        grid-template-columns:1fr;
        gap:25px
    }
    .plain-card {
        padding-top:25px
    }
    .plain-card h3 {
        margin-bottom:15px
    }
    .plain-card>.icon {
        margin-bottom:15px
    }
    .cert-card {
        display:grid;
        grid-template-columns:1fr 200px;
        gap:0 25px
    }
    .cert-card>.service-icon {
        justify-self:start
    }
    .cert-card>.certificate-preview {
        grid-column:2;
        grid-row:1/5
    }
    .cert-card>h3,.cert-card>p {
        min-height:0
    }
    .certificate-preview>img {
        height:230px
    }
    .cert-card>.eyebrow {
        grid-column:1
    }
    .cert-card>p {
        margin-bottom:0
    }
    .document-note {
        flex-direction:column;
        align-items:flex-start;
        gap:25px
    }
    .vendor-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .client-grid {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .detail-layout {
        grid-template-columns:1fr
    }
    .service-sidebar {
        order:2
    }
    .service-sidebar nav {
        display:grid;
        grid-template-columns:1fr 1fr;
        column-gap:25px
    }
    .sidebar-contact {
        margin:30px 0 0
    }
    .detail-image {
        height:400px
    }
    .catalog-intro>div {
        padding:30px
    }
    .catalog-intro h3 {
        font-size:29px
    }
    .catalog-intro .eyebrow {
        font-size:9px
    }
    .catalog-intro>img {
        height:100%;
        min-height:300px
    }
    .industry-card {
        gap:30px
    }
    .industry-card h2 {
        font-size:34px
    }
    .industry-card p {
        font-size:14px
    }
    .industry-photo>img {
        height:370px
    }
    .industry-services a {
        font-size:12px
    }
    .gallery-open img {
        height:250px
    }
    .contact-card-grid {
        grid-template-columns:1fr
    }
    .contact-card {
        display:grid;
        grid-template-columns:40px 1fr;
        column-gap:25px
    }
    .contact-card>.icon {
        grid-column:1;
        grid-row:1/5
    }
    .contact-card>*:not(.icon) {
        grid-column:2;
        min-height:0
    }
    .contact-card>.eyebrow {
        margin-bottom:15px
    }
    .contact-card h2 {
        font-size:29px;
        max-width:400px
    }
    .contact-card a {
        justify-self:start
    }
    .contact-layout {
        grid-template-columns:1fr
    }
    .contact-layout>div:first-child>p {
        max-width:650px
    }
    .contact-aside-note {
        margin:25px 0
    }
    .faq-layout {
        grid-template-columns:1fr;
        gap:45px
    }
    .faq-layout>div:first-child p {
        max-width:100%
    }
    .vision-card {
        padding:35px
    }
    .vision-card h2 {
        font-size:34px
    }
    .vision-card p {
        font-size:15px
    }
    .large-number {
        font-size:50px
    }
    .footer-bottom {
        flex-wrap:wrap;
        gap:12px 25px
    }
}

@media(max-width:600px) {
    .container {
        width:calc(100% - 40px)
    }
    body {
        font-size:15px
    }
    .section {
        padding:65px 0
    }
    .section-small {
        padding:45px 0
    }
    h2 {
        font-size:36px;
        letter-spacing:-.045em
    }
    .eyebrow {
        font-size:9px;
        letter-spacing:.14em;
        margin-bottom:19px
    }
    .eyebrow:before {
        width:20px;
        margin-right:9px
    }
    .topbar {
        display:none
    }
    .header-inner {
        min-height:76px;
        gap:12px
    }
    .brand img {
        width:82px;
        height:43px
    }
    .brand>span {
        font-size:9px;
        letter-spacing:.035em;
        line-height:1.5
    }
    .brand {
        gap:9px
    }
    .nav-toggle {
        width:40px;
        height:40px
    }
    .primary-nav {
        padding:15px 20px 25px;
        max-height:calc(100dvh - 76px)
    }
    .hero {
        min-height:650px;
        align-items:flex-start
    }
    .hero-content {
        padding-top:83px;
        padding-bottom:115px
    }
    .hero-image {
        object-position:65% center
    }
    .hero:after {
        background:linear-gradient(90deg,#041521e8,#04152188),linear-gradient(0deg,#041521aa,transparent)
    }
    .hero h1 {
        font-size:46px;
        font-weight:400;
        line-height:1.12;
        margin-bottom:24px;
        letter-spacing:-.055em
    }
    .hero .eyebrow {
        font-size:9px;
        margin-bottom:25px
    }
    .hero p {
        font-size:16px;
        line-height:1.7;
        margin-bottom:28px
    }
    .hero .button-row {
        align-items:flex-start;
        gap:12px
    }
    .hero .button {
        font-size:12px;
        padding:13px 17px;
        min-height:50px;
        gap:16px
    }
    .hero-foot {
        min-height:72px
    }
    .hero-foot>span {
        font-size:8px;
        letter-spacing:.06em;
        max-width:155px;
        text-align:right;
        line-height:1.7
    }
    .hero-foot b {
        padding:0 5px
    }
    .scroll-cue {
        font-size:8px;
        gap:9px
    }
    .scroll-cue>span {
        height:33px;
        width:23px;
        font-size:14px
    }
    .credentials {
        gap:22px 15px;
        padding:25px 0
    }
    .credentials>div {
        gap:10px;
        padding-left:13px;
        min-height:45px
    }
    .credentials>div>span:last-child {
        font-size:8px
    }
    .credentials strong {
        font-size:11px;
        margin-top:3px
    }
    .credential-icon .icon {
        width:23px;
        height:23px
    }
    .split-layout {
        gap:44px
    }
    .image-composition {
        margin-left:9px;
        margin-right:25px
    }
    .image-composition:before {
        left:-9px;
        top:-9px;
        width:70px;
        height:70px
    }
    .image-composition>img {
        height:360px;
        object-position:45%
    }
    .image-corner {
        padding:20px 23px;
        right:-25px;
        bottom:-20px;
        font-size:34px
    }
    .image-corner span {
        font-size:10px
    }
    .image-caption {
        left:17px;
        bottom:20px;
        font-size:15px;
        max-width:180px
    }
    .lead {
        font-size:18px
    }
    .inline-highlights {
        gap:9px;
        font-size:11px
    }
    .inline-highlights span {
        font-size:11px
    }
    .section-heading {
        display:block;
        margin-bottom:32px
    }
    .section-heading>p,.section-heading>div:last-child:not(:first-child) {
        margin-top:24px;
        max-width:100%
    }
    .section-heading>p {
        font-size:14px
    }
    .section-heading.compact {
        display:block
    }
    .section-heading.compact>.text-link {
        margin-top:20px
    }
    .service-grid {
        grid-template-columns:1fr;
        gap:16px
    }
    .service-card {
        min-height:270px;
        padding:27px
    }
    .service-card h3 {
        font-size:25px
    }
    .card-top {
        margin-bottom:23px
    }
    .card-category {
        font-size:9px
    }
    .service-icon .icon {
        width:32px;
        height:32px
    }
    .sector-strip {
        padding:35px 0
    }
    .sector-links {
        grid-template-columns:1fr 1fr;
        gap:15px 0
    }
    .sector-links>a {
        padding:9px 16px;
        font-size:16px
    }
    .sector-links>a:nth-child(odd) {
        padding-left:0;
        border-left:0
    }
    .sector-links>a:nth-child(4) {
        border-left:1px solid #ffffff25;
        padding-left:16px
    }
    .equipment-image {
        padding-left:12px;
        padding-bottom:30px
    }
    .equipment-image img {
        height:320px
    }
    .equipment-stamp {
        padding:18px 22px;
        gap:15px
    }
    .equipment-stamp>.icon {
        width:31px
    }
    .equipment-stamp b {
        font-size:14px
    }
    .equipment-tags>span {
        font-size:10px
    }
    .hse-feature-inner {
        padding-block:60px;
        gap:35px
    }
    .hse-pillars {
        grid-template-columns:1fr 1fr;
        gap:20px
    }
    .hse-pillars>div {
        padding:17px 0 0
    }
    .hse-pillars .icon {
        margin-bottom:14px
    }
    .partner-strip span {
        font-size:17px;
        padding:0 11px
    }
    .partner-strip {
        padding-block:25px;
        gap:24px 0
    }
    .banner-content {
        padding-top:25px
    }
    .breadcrumbs {
        font-size:10px;
        margin-bottom:38px;
        gap:8px
    }
    .page-banner h1 {
        font-size:43px;
        margin-bottom:36px;
        line-height:1.12
    }
    .page-banner .eyebrow {
        font-size:9px
    }
    .banner-bottom {
        font-size:9px;
        padding:16px 0
    }
    .banner-bottom .location-label {
        display:none
    }
    .cta-inner {
        display:block;
        padding-block:55px
    }
    .cta-inner h2 {
        font-size:43px
    }
    .cta-inner p {
        font-size:14px
    }
    .cta-actions {
        margin-top:30px;
        gap:20px;
        max-width:100%
    }
    .cta-actions .button {
        font-size:12px;
        gap:17px
    }
    .cta-actions .text-link {
        font-size:12px
    }
    .site-footer {
        padding-top:50px
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:35px;
        padding-bottom:35px
    }
    .footer-brand {
        grid-column:1/-1
    }
    .footer-brand p {
        max-width:350px
    }
    .footer-grid>div:last-child .footer-contact {
        display:block
    }
    .footer-grid>div:last-child .footer-contact li {
        margin-bottom:15px
    }
    .footer-grid h3 {
        margin-top:0;
        margin-bottom:20px
    }
    .footer-bottom {
        padding-block:22px 85px;
        font-size:9px;
        gap:10px 18px;
        justify-content:flex-start
    }
    .footer-bottom>span:first-child {
        width:100%
    }
    .footer-bottom>a:last-child {
        margin-left:auto
    }
    .quick-contact {
        right:16px;
        bottom:16px
    }
    .quick-toggle {
        padding:13px 17px;
        min-height:47px;
        font-size:11px
    }
    .quick-options {
        min-width:210px
    }
    .vision-grid {
        grid-template-columns:1fr;
        gap:20px
    }
    .vision-card {
        padding:32px
    }
    .vision-card h2 {
        font-size:32px
    }
    .large-number {
        font-size:45px;
        margin-bottom:25px
    }
    .image-panel>img {
        height:300px
    }
    .panel-note {
        padding:25px
    }
    .panel-note strong {
        font-size:21px
    }
    .advantage-grid {
        grid-template-columns:1fr
    }
    .advantage {
        padding:20px 0;
        gap:18px
    }
    .advantage h3 {
        font-size:18px
    }
    .financial-note {
        padding-left:20px;
        margin-top:40px
    }
    .financial-note h3 {
        font-size:27px
    }
    .vendor-grid {
        gap:12px
    }
    .vendor-card {
        padding:20px 17px
    }
    .vendor-card h3 {
        font-size:18px;
        margin-bottom:23px
    }
    .vendor-card>.icon {
        width:24px;
        margin-bottom:20px
    }
    .vendor-card>strong {
        font-size:13px;
        overflow-wrap:anywhere
    }
    .vendor-card>span {
        font-size:8px
    }
    .client-grid {
        grid-template-columns:1fr 1fr;
        margin-top:30px
    }
    .client-name {
        font-size:20px;
        padding:22px 13px;
        min-height:88px
    }
    .cert-card {
        display:block;
        padding:25px
    }
    .cert-card>.service-icon {
        margin-bottom:20px
    }
    .cert-card h3 {
        font-size:27px
    }
    .cert-card>.certificate-preview {
        margin-top:25px
    }
    .certificate-preview>img {
        height:330px
    }
    .document-note>div {
        align-items:flex-start;
        gap:15px
    }
    .document-note>div .icon {
        margin-top:5px
    }
    .document-note .text-link {
        font-size:12px
    }
    .filter-toolbar {
        gap:7px;
        margin-bottom:25px
    }
    .filter-chip {
        font-size:10px;
        padding:10px 13px
    }
    .detail-content>h2 {
        font-size:33px
    }
    .detail-image {
        height:260px;
        margin-block:27px 30px
    }
    .scope-block h3 {
        font-size:24px
    }
    .check-list li {
        font-size:14px
    }
    .scope-block {
        padding-bottom:24px;
        margin-bottom:27px
    }
    .enquiry-box {
        padding:25px
    }
    .enquiry-box .button {
        font-size:11px;
        gap:15px;
        padding:14px 17px
    }
    .service-sidebar {
        padding:20px
    }
    .service-sidebar nav {
        grid-template-columns:1fr
    }
    .catalog-intro {
        grid-template-columns:1fr
    }
    .catalog-intro>img {
        height:260px;
        min-height:0
    }
    .catalog-intro>div {
        padding:28px
    }
    .catalog-intro h3 {
        font-size:31px
    }
    .catalog-controls .filter-toolbar {
        margin-bottom:20px
    }
    .equipment-row {
        grid-template-columns:25px minmax(0,1fr) 40px;
        gap:12px;
        padding:21px 4px
    }
    .equipment-row h3 {
        font-size:19px;
        margin-top:5px
    }
    .equipment-row .round-link {
        grid-column:3;
        grid-row:1/3;
        width:38px;
        height:38px
    }
    .equipment-spec {
        grid-column:2;
        font-size:11px
    }
    .equipment-number {
        grid-row:1/3;
        align-self:start;
        padding-top:6px;
        font-size:10px
    }
    .item-category {
        font-size:8px
    }
    .industry-list {
        gap:45px
    }
    .industry-card {
        grid-template-columns:1fr;
        gap:27px
    }
    .industry-card:nth-child(even) .industry-photo {
        order:0
    }
    .industry-photo>img {
        height:280px
    }
    .industry-card h2 {
        font-size:34px
    }
    .industry-services {
        margin-top:22px
    }
    .hse-statement {
        padding:32px
    }
    .statement-icon>.icon {
        width:42px;
        height:42px;
        margin-bottom:25px
    }
    .hse-statement h3 {
        font-size:29px
    }
    .hse-statement strong {
        font-size:26px
    }
    .hse-grid {
        grid-template-columns:1fr;
        gap:18px
    }
    .hse-card {
        padding:28px
    }
    .hse-card>.icon {
        margin-bottom:22px
    }
    .hse-card h3 {
        font-size:26px
    }
    .hse-footer {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:16px
    }
    .hse-footer span {
        font-size:8px;
        line-height:1.6
    }
    .gallery-grid {
        grid-template-columns:1fr;
        gap:35px
    }
    .gallery-open img {
        height:275px
    }
    .gallery-card figcaption {
        padding-top:16px
    }
    .gallery-card h3 {
        font-size:25px
    }
    .lightbox {
        padding:15px;
        max-height:95dvh
    }
    .lightbox-toolbar h2 {
        font-size:17px
    }
    .lightbox>img {
        max-height:60dvh
    }
    .faq-item summary {
        font-size:17px;
        padding:22px 0;
        gap:20px
    }
    .faq-item p {
        font-size:13px
    }
    .faq-item>div {
        padding-bottom:23px
    }
    .contact-card-grid {
        gap:18px
    }
    .contact-card {
        padding:26px;
        grid-template-columns:28px 1fr;
        gap:0 17px
    }
    .contact-card>.icon {
        width:25px;
        height:25px
    }
    .contact-card h2 {
        font-size:25px
    }
    .contact-card p,.contact-card>a:not(.text-link) {
        font-size:12px
    }
    .contact-card>.text-link {
        font-size:12px;
        gap:10px
    }
    .contact-layout {
        gap:40px
    }
    .form-grid {
        grid-template-columns:1fr;
        gap:20px
    }
    .form-grid label {
        font-size:11px
    }
    .form-grid input,.form-grid textarea {
        font-size:16px;
        padding:13px 14px
    }
    .form-bottom {
        align-items:flex-start;
        gap:18px;
        flex-direction:column
    }
    .form-bottom .button {
        width:100%;
        font-size:13px
    }
    .consent-field {
        font-size:10px
    }
    .form-notice {
        padding:23px
    }
    .error-code {
        font-size:90px
    }
    .error-page h2 {
        font-size:34px
    }
}

@media(max-width:360px) {
    .container {
        width:calc(100% - 32px)
    }
    .brand>span {
        font-size:8px
    }
    .hero h1 {
        font-size:41px
    }
    .hero .button-row {
        flex-direction:column
    }
    .hero {
        min-height:690px
    }
    .hero-content {
        padding-top:65px
    }
    .credentials strong {
        font-size:10px
    }
    .credential-icon .icon {
        width:20px
    }
    .credentials>div {
        gap:7px
    }
    .contact-card {
        padding:22px
    }
    .contact-card h2 {
        font-size:23px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important
    }
    .reveal.reveal-wait {
        opacity:1;
        transform:none
    }
}

/* Without JavaScript, keep the complete mobile navigation available. */ @media(max-width:1180px) {
    html:not(.enhanced) .header-inner {
        flex-wrap:wrap;
        padding-block:15px
    }
    html:not(.enhanced) .nav-toggle {
        display:none
    }
    html:not(.enhanced) .primary-nav {
        display:flex;
        position:static;
        flex-direction:column;
        width:100%;
        max-height:none;
        box-shadow:none;
        padding:10px 0
    }
    html:not(.enhanced) .dropdown-menu {
        display:block
    }
    html:not(.enhanced) .dropdown-toggle {
        pointer-events:none
    }
}

@media print {
    .topbar,.site-header,.quick-contact,.cta-section,.site-footer,.js-only {
        display:none!important
    }
    .hero,.page-banner {
        background:#fff;
        color:#000
    }
    .hero-image,.hero-grid,.banner-image,.hero:after,.page-banner:after {
        display:none
    }
    .hero {
        min-height:auto
    }
    .hero-content {
        padding:30px 0
    }
    .hero h1 {
        font-size:42px
    }
    .hero h1 em,.hero p {
        color:#333
    }
    .hero-foot {
        display:none
    }
    .section {
        padding:30px 0
    }
    .container {
        width:100%
    }
    .reveal {
        opacity:1!important;
        transform:none!important
    }
    a {
        color:#000
    }
    .service-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .service-card {
        break-inside:avoid
    }
    .page-banner h1 {
        font-size:38px
    }
    .banner-bottom {
        color:#444
    }
    .breadcrumbs {
        color:#444
    }
}

/* Retain card motion after its entrance reveal completes. */ .service-card.reveal {
    transition:opacity .65s var(--ease),transform .3s var(--ease),background .3s,color .3s,border-color .3s
}

.service-card.reveal.is-visible:hover {
    transform:translateY(-5px)
}

