/* Brand, typography and shared interaction details. */
h1,h2,h3{font-weight:600}.hero h1{font-weight:500}.site-header nav,.menu{font-weight:600}.home-expertise h2,.expertise-slide h3{font-weight:600}
.home-expertise{background:#fff;color:var(--navy)}.home-expertise .eyebrow{color:var(--orange-dark)}
.button-arrow,.line-link .button-arrow,.outline .button-arrow{display:inline-block;flex:none;font-family:Arial,sans-serif;font-size:19px;font-weight:700;line-height:1;transform:rotate(45deg);letter-spacing:0;color:inherit}
.outline,.line-link{gap:16px}.back-top{font-weight:600}
.footer-nav>div{gap:32px;font-size:16px;font-weight:600}.footer-nav{justify-content:space-between}.legal{border-top:1px solid #3f5d74;padding-top:24px}
.company .site-header{position:absolute;inset:0 0 auto;background:transparent;color:#fff}.company .brand img{filter:brightness(0) invert(1)}.company .site-header .contact-nav{background:var(--orange);color:var(--navy);border:0}
.company .hero-title h1{font-size:clamp(62px,6.5vw,105px);line-height:1.02}.company .hero-img{object-position:center}.company .hero-shade{background:linear-gradient(180deg,#0c2c4699,#0c2c4633 35%,#0c2c46bb)}
.company-introduction{display:grid;grid-template-columns:1fr 1fr;gap:32px var(--content-gap)}.company-introduction>.eyebrow{grid-column:1/-1;margin:0}.company-introduction>p:last-child{max-width:560px;margin:0;color:var(--muted);font-size:18px}
.contact-hero{background:var(--navy);color:#fff}.contact-hero .eyebrow{color:var(--orange)}.contact-hero h1{font-size:clamp(44px,5.7vw,88px);max-width:1100px;line-height:1.08;letter-spacing:-.05em}.contact-lead{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-top:48px}.contact-lead p{max-width:520px;font-size:18px;margin:0;color:#fff}.contact-lead .outline{flex:none}
.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap)}.contact-option{position:relative;padding:32px 0;border-top:2px solid var(--blue);border-bottom:1px solid var(--line);transition:border-color .2s}.contact-option:hover{border-top-color:var(--orange)}.contact-option .eyebrow{display:block}.contact-option h2{font-size:27px;margin-bottom:40px;letter-spacing:-.035em}.contact-value{display:block;overflow-wrap:anywhere;padding-right:32px;font-size:16px}.contact-option>.button-arrow{position:absolute;right:0;bottom:36px}
.contact-location{display:grid;grid-template-columns:1fr 1fr;gap:var(--content-gap);align-items:center;padding-top:0}.contact-location address{font-style:normal;margin:32px 0;color:var(--muted);font-size:18px}.contact-location img{height:440px}.contact-location h2{line-height:1.18}
.reveal-pending{opacity:0;transform:translateY(28px)}.reveal-ready{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1)}.reveal-visible{opacity:1;transform:none}
@media(max-width:1000px){.contact-options{gap:24px}.contact-option h2{font-size:23px}.contact-value{font-size:15px}}
@media(max-width:700px){.company .site-header.menu-open{background:#fff;color:var(--navy)}.company .menu-open .brand img{filter:none}.company .hero-title h1{font-size:clamp(46px,10vw,64px)}.company-introduction{grid-template-columns:1fr}.company-introduction>p:last-child{font-size:16px}.contact-lead{display:block;margin-top:32px}.contact-lead .outline{margin-top:28px}.contact-options{grid-template-columns:1fr;gap:32px}.contact-option{padding:24px 0}.contact-option h2{font-size:28px;margin-bottom:24px}.contact-option>.button-arrow{bottom:28px}.contact-value{font-size:16px}.contact-location{grid-template-columns:1fr}.contact-location img{height:320px}.footer-nav>div{order:0;width:auto;gap:20px;font-size:15px}.footer-nav{align-items:flex-start}.footer-nav .back-top{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.reveal-pending,.reveal-ready{opacity:1;transform:none;transition:none}}
.expertise-controls button span{display:inline-block;font:700 19px/1 Arial,sans-serif}.expertise-prev span{transform:rotate(-90deg)}.expertise-next span{transform:rotate(90deg)}
/* Restore the original light typography, retaining bold header navigation. */
h1,h2,h3{font-weight:400}.hero h1{font-weight:300}.home-expertise h2,.expertise-slide h3{font-weight:400}
.site-header nav,.menu{font-weight:600}
.home .site-header .brand img,.company .site-header .brand img{filter:none}
.home .site-header .brand,.company .site-header .brand{display:flex;align-items:center;background:#fff;padding:5px 12px}
.expertise-subservices{list-style:none;margin:20px 0 0;padding:0;color:var(--muted);font-size:15px;line-height:1.55;letter-spacing:0}
.expertise-subservices li{padding:9px 0;border-top:1px solid var(--line)}
@media(max-width:700px){.expertise-subservices{font-size:16px;margin-top:16px}}
/* Alternating homepage surfaces separate the introduction and expertise. */
.home .intro-section{background:#f3f4f5}
.home .home-expertise{background:#fff}
.home-expertise h2{margin-bottom:24px}
.home-expertise .expertise-controls{margin:0 0 32px}
.expertise-all{margin-top:40px}
.expertise-all .outline{background:var(--navy);color:#fff;border-color:var(--navy)}
.expertise-all .outline:hover{background:var(--blue);border-color:var(--blue)}
@media(max-width:700px){.home-expertise .expertise-controls{margin-bottom:24px}.expertise-all{margin-top:32px}}
/* One shared palette and photographic treatment across the four pages. */
:root{--pale:#f3f4f5}
.company .values,.services .service-detail:nth-of-type(even){background:var(--pale)}
.company .sectors{background:var(--navy)}
.company .sectors .eyebrow,.contact-hero .eyebrow,.safety>.eyebrow,.process .eyebrow{color:#ffa259}
.company .values>img,.services .split-intro>img,.services .service-detail-image,.contact .contact-location img{aspect-ratio:2/3;height:auto;max-height:720px;object-fit:cover;object-position:center;filter:none;border-radius:0}
.services .service-photo img{aspect-ratio:16/7;height:auto;max-height:590px;filter:none;border-radius:0}
.contact .contact-location{padding-top:var(--section-space);background:var(--pale)}
.contact .contact-options{background:#fff}
.services .service-detail-image{max-width:100%}
@media(max-width:700px){.company .values>img,.services .split-intro>img,.services .service-detail-image,.contact .contact-location img{max-height:560px}.services .service-photo img{aspect-ratio:4/3}}
/* Use the Back to top arrow glyph and typeface for every directional control. */
.site-arrow,.line-link .site-arrow,.outline .site-arrow,.expertise-controls button .site-arrow{display:inline-block;font-family:'DM Sans',Arial,sans-serif;font-size:20px;font-weight:600;line-height:1;letter-spacing:0;color:inherit;flex:none}
.back-top{display:inline-flex;align-items:center;gap:7px}.arrow-up{transform:none}.line-link .arrow-down{transform:rotate(180deg)}
/* Opaque homepage header with brand-colour navigation. */
.home .site-header{background:#fff;color:var(--navy)}
.home .site-header .brand{padding:0;background:transparent}
/* Screenshot-led brand corrections. */
.home .numbers,.home .numbers strong,.home .numbers span{color:#fff}
.home .numbers>div{border-left-color:rgba(255,255,255,.4)}
.company .site-header{background:#fff;color:var(--navy)}
.company .site-header .brand{padding:0;background:transparent}
.company .person h3,.company .person p{color:var(--navy)}
.services .service-detail{background:#fff;color:var(--navy)}
.services .service-detail h2,.services .service-detail h3,.services .service-detail p,.services .service-detail li{color:var(--navy)}
.services .service-detail .eyebrow,.services .service-detail .line-link span{color:var(--orange-dark)}
.services #civil,.services #mechanical,.services #management{background:var(--navy);color:#fff;border-color:var(--navy)}
.services #civil h2,.services #civil h3,.services #civil p,.services #civil li,.services #mechanical h2,.services #mechanical h3,.services #mechanical p,.services #mechanical li,.services #management h2,.services #management h3,.services #management p,.services #management li{color:#fff}
.services #civil .eyebrow,.services #mechanical .eyebrow,.services #management .eyebrow{color:var(--orange)}
.services #civil .line-link,.services #mechanical .line-link,.services #management .line-link{color:#fff}
.services #civil .line-link span,.services #mechanical .line-link span,.services #management .line-link span{color:var(--orange)}
.services #civil li,.services #mechanical li,.services #management li{border-color:rgba(255,255,255,.25)}
.services .safety{background:var(--orange);color:var(--navy)}
.services .safety>.eyebrow,.services .safety h2,.services .safety>div{color:var(--navy)}
/* Stable arrow geometry and a single restrained hover treatment. */
.services .safety{background:#09263c;color:#fff}
.services .safety h2,.services .safety>div{color:#fff}
.services .safety>.eyebrow{color:var(--orange)}
.site-arrow svg{display:block;width:22px;height:22px;overflow:visible}
.site-arrow{vertical-align:middle;text-decoration:none}
.line-link:hover,.line-link:focus-visible{ text-decoration:none }
.line-link{transition:opacity .2s ease}
.line-link:hover{opacity:.8}
.outline,.site-header nav .contact-nav,.expertise-controls button{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}
.outline:hover{box-shadow:0 3px 10px #0c2c461a}
.outline:active,.expertise-controls button:active:not(:disabled){box-shadow:none}
.reveal-ready{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-pending{opacity:0;transform:translateY(24px)}
.reveal-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal-ready,.line-link,.outline,.site-header nav .contact-nav,.expertise-controls button{transition:none}.reveal-pending{opacity:1;transform:none}}
.company .sectors{background:#09263c}
