:root{--ink:#414141;--ink2:#252525;--sand:#f7f8f6;--gold:#17663d;--orange:#2d8a57;--line:rgba(65,65,65,.16);--muted:#647169}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--sand);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6}
.skip-link{position:absolute;left:-999px}
.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,28px);background:#fff;position:sticky;top:0;z-index:10}
.brand{display:block;width:230px}
.brand img,footer img{width:100%;display:block}
.site-nav{display:flex;align-items:center;gap:28px}
.site-nav a{color:var(--ink);text-decoration:none;font-size:13px;font-weight:600}
.site-nav a:hover,.button-link:hover,.text-link:hover{color:var(--gold)}
.nav-cta{border:1px solid var(--gold);padding:9px 16px}
.menu-toggle{display:none;background:transparent;border:0}
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.1fr .9fr;position:relative;overflow:hidden;background:var(--ink2);color:#f5f2e9}
.hero-content{padding:clamp(80px,12vw,160px) max(5vw,28px);max-width:820px}
.eyebrow,.section-label{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:var(--orange);margin:0 0 20px}
.hero h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.08;margin:0}
.hero h1{font-size:clamp(45px,6.2vw,88px);letter-spacing:-3px;max-width:760px}
.hero h1 em{color:var(--gold);font-style:normal}
.hero-copy{max-width:540px;color:#c5d0d2;margin:28px 0;font-size:18px}
.hero-actions{display:flex;align-items:center;gap:27px}
.button{display:inline-flex;gap:21px;align-items:center;padding:14px 20px;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.3px}
.button-primary{background:var(--gold);color:var(--ink)}
.button-primary:hover{background:#f2d588}
.button span,.text-link span{font-size:20px;line-height:0}
.button-link{padding:0;color:#f5f2e9}
.hero-visual{background:linear-gradient(145deg,#1f4650,#143740);position:relative;overflow:hidden}
.grid-line{position:absolute;inset:-20%;background-image:linear-gradient(rgba(233,196,106,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(233,196,106,.18) 1px,transparent 1px);background-size:75px 75px;transform:rotate(-20deg)}
.hero-card{position:absolute;bottom:12%;left:12%;right:12%;padding:28px;border:1px solid rgba(245,242,233,.35);background:rgba(10,32,40,.63);backdrop-filter:blur(5px)}
.hero-card span{color:var(--gold);font-weight:bold}
.hero-card strong{display:block;font-family:Manrope;margin-top:42px;font-size:24px}
.hero-card p{color:#c5d0d2;margin:4px 0 0;font-size:13px}
.scroll-note{position:absolute;bottom:25px;left:max(5vw,28px);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#a7b7ba;display:flex;align-items:center;gap:12px}
.scroll-note span{width:55px;height:1px;background:var(--gold)}
.section{padding:clamp(75px,10vw,140px) max(5vw,28px)}
.section-label{display:flex;gap:14px;align-items:center}
.section-label span{color:var(--ink);font-size:13px}
.about{border-bottom:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;max-width:1200px;margin:auto}
.about h2,.section-heading h2,.projects h2,.safety h2{font-size:clamp(35px,4.5vw,63px);letter-spacing:-2px}
.lead{font-size:22px;line-height:1.45;margin-top:0}
.about p:not(.lead){color:var(--muted)}
.text-link{color:var(--ink);font-weight:bold;text-decoration:none;display:inline-flex;align-items:center;gap:16px;margin-top:18px}
.services{background:#fff}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.service-card{background:#fff;padding:36px;min-height:340px;display:flex;flex-direction:column}
.service-card.accent{background:var(--gold)}
.service-number{font:700 13px Manrope;color:var(--orange);margin-bottom:auto}
.service-card h3{font-size:26px;letter-spacing:-1px}
.service-card p{color:var(--muted);font-size:14px}
.service-card a{color:var(--ink);text-decoration:none;font-weight:bold;font-size:13px;margin-top:auto}
.service-card a span{float:right;font-size:19px}
.projects{background:#e5e4dd}
.projects-intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-bottom:45px}
.projects-intro p{max-width:500px;color:var(--muted);align-self:end}
.project-placeholders{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.project-placeholders>div{min-height:210px;padding:30px;background:var(--ink);color:#f5f2e9}
.project-placeholders span{color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:1.5px}
.project-placeholders strong{font:700 33px Manrope;display:block;margin-top:34px}
.project-placeholders p{font-size:13px;color:#bdc9cc}
.placeholder-note{font-size:12px;color:var(--muted);margin:18px 0 0}
.contracting{background:var(--ink);color:#f5f2e9;display:grid;grid-template-columns:.8fr 1.2fr;gap:12%;align-items:center}
.contracting h2{font-size:clamp(35px,4.5vw,60px);letter-spacing:-2px}
.contracting p{color:#c1ced0;max-width:600px}
.light span{color:var(--gold)}
.contracting-art{height:390px;border:1px solid rgba(233,196,106,.4);display:grid;place-items:center;position:relative;color:var(--gold);font:700 13px Manrope;letter-spacing:2px;text-align:center}
.circle{position:absolute;width:210px;height:210px;border-radius:50%;border:38px solid var(--orange);opacity:.9}
.contracting ul{padding-left:0;list-style:none;margin:28px 0}
.contracting li{border-top:1px solid rgba(245,242,233,.25);padding:9px 0;color:#e4e6e1;font-size:14px}
.button-outline{color:#f5f2e9;border:1px solid var(--gold);margin-top:9px}
.button-outline:hover{background:var(--gold);color:var(--ink)}
.safety{display:grid;grid-template-columns:1fr 1fr;gap:10%}
.safety-list article{display:flex;gap:25px;padding:23px 0;border-top:1px solid var(--line)}
.safety-list span{color:var(--orange);font-weight:bold}
.safety-list h3{font-size:21px}
.safety-list p{margin:6px 0 0;color:var(--muted);font-size:14px}
.contact{background:var(--orange);color:var(--ink);padding:clamp(75px,10vw,130px) max(5vw,28px);display:grid;grid-template-columns:1fr 1fr;gap:10%}
.contact h2{font-size:clamp(38px,4.5vw,63px);letter-spacing:-2px}
.contact .eyebrow{color:var(--ink)}
.contact .button-primary{background:var(--ink);color:#f5f2e9;margin-top:24px}
.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:28px 38px;align-content:start}
.detail-label{font-size:10px;text-transform:uppercase;font-weight:bold;letter-spacing:1.5px;margin:0 0 6px}
.contact a{color:var(--ink);font-weight:bold;text-decoration:none}
address{font-style:normal;font-size:14px;line-height:1.55}
small,.muted{font-size:12px}
.muted{margin:4px 0;color:#613921}
footer{background:var(--gold);padding:45px max(5vw,28px);color:#fff;display:grid;grid-template-columns:230px 1fr auto;align-items:center;gap:30px;font-size:12px}
footer p{margin:0}
footer img{width:230px}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.site-nav{gap:14px}
.site-nav a{font-size:11px}
.hero{grid-template-columns:1fr}
.hero-visual{min-height:310px}
.hero-content{padding-bottom:80px}
.scroll-note{display:none}
.about-grid,.projects-intro,.contracting,.safety,.contact{grid-template-columns:1fr;gap:40px}
.contracting-art{height:260px}
.section-heading{display:block}
.section-heading h2{margin-top:22px}
.contact-details{grid-template-columns:1fr 1fr}
footer{grid-template-columns:1fr;gap:15px}
}
@media(max-width:620px){.site-header{height:76px}
.brand{width:190px}
.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:8px}
.menu-toggle span:not(.sr-only){height:2px;width:24px;background:var(--ink)}
.site-nav{display:none;position:absolute;top:76px;left:0;right:0;padding:20px 28px;background:#fff;flex-direction:column;align-items:flex-start}
.site-nav.open{display:flex}
.site-nav a{font-size:13px}
.hero{min-height:calc(100vh - 76px)}
.service-grid,.project-placeholders{grid-template-columns:1fr}
.service-card{min-height:250px}
.contact-details{grid-template-columns:1fr}
.hero-actions{flex-wrap:wrap}
.hero h1{letter-spacing:-2px}
}
