/* Option 6 — layout modelled on a classic rebar-detailing firm site: full-screen hero, split about, icon services, figures, photo banners, filterable work grid */
:root{--ink:#14261c;--text:#56605a;--green:#2e7d32;--green-l:#2e7d32;--accent:#2e7d32;--grey:#eceff3;--dark:#262a33;--darker:#1c1f26;--fd:"League Spartan",Arial,sans-serif;--f:"Mulish",Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:400 16px/1.7 var(--f);color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1,h2,h3,h4{font-family:var(--fd);color:var(--ink);line-height:1.08;font-weight:700}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--green);color:#fff;padding:8px 14px}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{width:min(1200px,calc(100% - 48px));margin:0 auto}
.ac{color:var(--accent)}
.center{text-align:center}

/* header: transparent over hero, white on scroll */
.hdr{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s}
.nav{height:88px;display:flex;align-items:center;gap:24px;transition:height .3s}
.logo img{height:46px;width:auto}
.lg-color{display:none}
.links{display:flex;gap:30px;margin-left:auto;font:700 13.5px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:#fff}
.links a{position:relative;padding:6px 0}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .25s}
.links a:hover::after,.links a.on::after{transform:none}
.hdr.solid{background:#fff;box-shadow:0 2px 18px rgba(0,0,0,.08)}
.hdr.solid .nav{height:76px}
.hdr.solid .links{color:var(--ink)}
.hdr.solid .lg-white{display:none}.hdr.solid .lg-color{display:block}
.burger{display:none;margin-left:auto;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:.3s}
.burger span:first-child{top:17px}.burger span:last-child{top:26px}
.hdr.solid .burger span{background:var(--ink)}
.burger[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}

/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:-4%;background:linear-gradient(rgba(14,20,34,.55),rgba(14,20,34,.62)),var(--bg) center/cover;animation:kb 18s ease-out forwards}
.hero h1{max-width:1100px;font-size:clamp(40px,6vw,86px)!important}
.hero-in{max-width:1100px}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-in{position:relative;padding:0 24px;max-width:900px}
.hero h1{color:#fff;font-size:clamp(46px,7.6vw,104px);font-weight:800;letter-spacing:-.01em;line-height:1;margin-bottom:26px;animation:up 1s .2s both}
.hero p{font-size:clamp(17px,1.6vw,21px);max-width:640px;margin:0 auto;color:#eef1f6;animation:up 1s .45s both}
@keyframes up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.down{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:#fff;animation:bob 2s infinite}
.down svg{width:30px;height:30px}
@keyframes bob{50%{transform:translate(-50%,8px)}}

.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;animation:up 1s .65s both}
.btn-ghost{display:inline-flex;align-items:center;padding:16px 32px;border:1.5px solid rgba(255,255,255,.85);border-radius:4px;color:#fff;font:700 14px var(--fd);letter-spacing:.08em;text-transform:uppercase;transition:.25s}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.nav-cta{margin-left:6px;padding:11px 20px!important;border-radius:4px;background:var(--green);color:#fff!important}
.nav-cta::after{display:none}
.nav-cta:hover{background:#236127}
.vis-img{margin-top:30px;border-radius:12px;overflow:hidden;border:1px solid #e3e7e4;background:#fff}
.vis-img img{width:100%;height:auto}
.why{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0 0 40px;text-align:left}
.why li{padding:22px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.06)}
.why b{display:block;font:700 18px var(--fd);color:#fff;margin-bottom:8px}
.why span{font-size:15px;color:#dfe6e1;line-height:1.55}

/* inner page hero */
.page-hero{position:relative;min-height:440px;display:flex;align-items:flex-end;color:#fff;background:linear-gradient(rgba(10,22,14,.45),rgba(10,22,14,.72)),var(--bg) var(--pos,center)/cover}
.ph-in{padding:150px 0 64px}
.page-hero h1{color:#fff;font-size:clamp(44px,6vw,80px);font-weight:800;text-transform:uppercase;margin-bottom:12px}
.page-hero p{font-size:19px;color:#e4ebe6;max-width:620px}
.eyebrow{font:800 13px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.ticks{list-style:none;display:grid;gap:9px;margin:18px 0 26px;font-weight:600;color:var(--ink)}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks li::before{content:"";width:18px;height:18px;margin-top:4px;border-radius:50%;flex:none;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
.note{margin-top:14px;font-size:14.5px}.note a{color:var(--green);font-weight:700}

/* what we detail */
.detail{padding:100px 0}.detail.grey{background:var(--grey)}
.det-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.detail h2{font-size:clamp(32px,3.4vw,48px);text-transform:uppercase;margin-bottom:16px}
.det-img{margin-top:28px;border-radius:12px;overflow:hidden;border:1px solid #e3e7e4;background:#fff}
.det-img img{width:100%;height:auto}
.detail-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.detail-cols h3{font-size:17px;text-transform:uppercase;letter-spacing:.04em;padding-bottom:12px;border-bottom:2px solid var(--green);margin-bottom:4px}
.detail-cols ul{list-style:none}
.detail-cols li{padding:10px 0;border-bottom:1px solid #e3e7e4;font-size:15px;color:var(--ink)}
.detail .figs{margin-top:44px;padding-top:30px;border-top:1px solid #e3e7e4}

/* service rows */
.srows{padding:90px 0 40px}
.srow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-bottom:80px}
.srow.flip .srow-img{order:2}
.srow-img{border-radius:12px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 20px 40px -22px rgba(0,0,0,.35);background:#fff}
.srow-img img{width:100%;height:100%;object-fit:cover}
.srow-n{font:800 15px var(--fd);color:var(--green);letter-spacing:.1em}
.srow h2{font-size:clamp(28px,3vw,40px);text-transform:uppercase;margin:10px 0 16px}
.spec-sec{padding:80px 0;background:var(--grey)}
.spec-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.spec-sec h2{font-size:clamp(28px,3vw,40px);text-transform:uppercase}
.spec{border-top:2px solid var(--ink)}
.spec div{display:grid;grid-template-columns:190px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid #d6dbd7}
.spec dt{font:700 13px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--text);padding-top:3px}
.spec dd{color:var(--ink);font-size:16px}

/* process stacking cards */
.process{background:#0f2418;color:#fff;padding:90px 0 80px}
.proc-head{max-width:640px;margin-bottom:40px}
.proc-head h2{color:#fff;font-size:clamp(34px,4vw,56px);text-transform:uppercase;margin-bottom:12px}
.proc-head p{color:#cdd8d0}
.process .eyebrow{color:#9fd39a}
.dark-t h2{color:var(--ink)}.dark-t .eyebrow{color:var(--green)}
.stack{display:grid;gap:20px}
.pc{position:sticky;top:calc(100px + var(--i,0) * 16px);display:grid;grid-template-columns:1fr .9fr;height:clamp(260px,38vh,340px);border-radius:14px;overflow:hidden;background:#f7f8f6;color:var(--ink);box-shadow:0 -10px 40px -18px rgba(0,0,0,.6);transform-origin:50% 0;will-change:transform}
.pc-t{padding:clamp(26px,3.4vw,44px);display:flex;flex-direction:column}
.pc-n{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:8px;background:var(--green);color:#fff;font:800 16px var(--fd);margin-bottom:auto}
.pc-t h3{font-size:clamp(30px,3.4vw,48px);margin:24px 0 10px;text-transform:uppercase;font-weight:800}
.pc-t p{font-size:17px;max-width:440px}
.pc img{width:100%;height:100%;object-fit:cover}

/* 3D models */
.models{padding:90px 0}
.model-grid{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:16px}
.model-grid figure{border:1px solid #e3e7e4;border-radius:12px;overflow:hidden;background:#fff}
.model-grid figure:first-child{grid-row:span 2;display:grid;place-items:center}
.model-grid img{width:100%;height:100%;object-fit:contain}

/* about photo + offices */
.about-photo{border-radius:14px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 22px 40px -18px rgba(0,0,0,.35)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.offices{padding:90px 0}
.off-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.off{padding:34px;border:1px solid #e3e7e4;border-radius:12px}
.off h3{font-size:28px;margin-bottom:12px}
.off p{margin-bottom:10px}
.off a{color:var(--green);font-weight:700}
.ct-info .clist{display:grid;gap:18px;margin-top:28px}
.ct-info dt{font:800 12.5px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:4px}
.ct-info dd{color:var(--ink)}
.ct-info a{color:var(--green);font-weight:700}
.ft-addr{margin-bottom:14px}.ft-addr b{color:#fff}

/* about */
.about{padding:100px 0}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center}
.about h2{font-size:clamp(30px,3.2vw,44px);text-transform:uppercase;letter-spacing:-.01em}
.rule{display:block;width:60px;height:3px;background:var(--accent);margin:26px 0}
.about p{margin-bottom:16px}
.about .strong{color:var(--ink);font-weight:700;text-align:left}
.btn-line{display:inline-flex;align-items:center;gap:12px;margin-top:12px;padding:15px 34px;border:1.5px solid var(--green);border-radius:40px;font:700 14px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--green);transition:.25s}
.btn-line:hover{background:var(--green);color:#fff}
.slider{position:relative;aspect-ratio:21/20;border-radius:14px;overflow:hidden;box-shadow:0 22px 40px -18px rgba(0,0,0,.35)}
.slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}
.slider img.on{opacity:1}
.slider .dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:7px}
.dots i{width:9px;height:9px;border-radius:9px;background:rgba(255,255,255,.6);transition:.3s}
.dots i.on{width:24px;background:#fff}

/* services */
.services{background:var(--grey);padding:90px 0 80px}
.services h2{font-size:clamp(40px,4.6vw,64px);margin-bottom:56px}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.svc{text-align:center}
.svc svg{width:72px;height:72px;color:var(--green);stroke-width:2.4;margin:0 auto 22px}
.svc h3{font-size:21px;text-transform:uppercase;letter-spacing:.02em;margin-bottom:16px}
.svc p{font-size:15.5px}
.btn-text{display:flex;align-items:center;gap:8px;width:max-content;margin:44px auto 0;padding-bottom:6px;border-bottom:2px solid var(--green);font:700 15px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.btn-text:hover{gap:14px}

/* vision */
.vision{padding:100px 0}
.vis-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:56px;align-items:start}
.rot{font-size:clamp(44px,5vw,70px);font-weight:800;text-transform:uppercase;line-height:1}
.rot span{display:block;color:var(--accent);transition:opacity .4s,transform .4s}
.rot span.out{opacity:0;transform:translateY(12px)}
.vision p{margin-bottom:18px}
.figs{display:flex;flex-wrap:wrap;gap:24px 48px;margin-top:30px}
.figs b{display:block;font:800 clamp(32px,3.2vw,48px)/1 var(--fd);color:var(--accent);white-space:nowrap}
.figs span{display:block;margin-top:10px;font:700 12.5px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:#56605a}

/* banners */
.banner{position:relative;color:#fff;background-size:cover;background-position:center}
.banner-in{position:relative;max-width:980px;margin:0 auto;padding:120px 24px;text-align:center}
.banner h2{color:#fff;text-transform:uppercase;font-size:clamp(32px,4.4vw,60px);font-weight:800;margin:14px 0 34px}
.lab{font:800 14px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:#fff}
.team{background-image:linear-gradient(rgba(12,24,16,.78),rgba(12,24,16,.78)),var(--bg)}
.btn-solid{display:inline-flex;align-items:center;gap:12px;padding:17px 34px;background:var(--accent);color:#fff;border-radius:4px;font:700 14px var(--fd);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 24px -10px rgba(46,125,50,.6);transition:.25s}
.btn-solid:hover{transform:translateY(-2px);background:#236127}

/* work */
.work{padding:100px 0}
.work-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:40px}
.work h2{font-size:clamp(40px,4.4vw,60px)}
.filters{display:flex;gap:22px;flex-wrap:wrap;font:700 13.5px var(--fd);letter-spacing:.08em;text-transform:uppercase}
.filters button{color:#56605a;padding-bottom:6px;border-bottom:2px solid transparent;transition:.2s}
.filters button.on,.filters button:hover{color:var(--ink);border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid figure{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;box-shadow:0 10px 26px -14px rgba(0,0,0,.35)}
.grid figure.hide{display:none}



.grid img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.grid figure:hover img{transform:scale(1.06)}
.grid figcaption{position:absolute;inset:auto 0 0;padding:60px 22px 20px;background:linear-gradient(transparent,rgba(16,20,30,.85));color:#fff;transform:translateY(12px);opacity:.92;transition:.35s}
.grid figure:hover figcaption{transform:none;opacity:1}
.grid figcaption b{display:block;font:700 20px var(--fd)}
.grid figcaption span{font-size:13px;color:#cfd4dd}
.center-btn{margin-top:44px}

/* drawings banner */
.drawings{background-image:linear-gradient(rgba(14,26,20,.86),rgba(14,26,20,.9)),var(--bg)}
.dr-in{padding:110px 0;display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.drawings h2{text-align:left;margin:12px 0 14px;font-size:clamp(30px,3.4vw,46px)}
.dr-p{color:#d8e2dc}
.dr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dr-grid button{position:relative;border-radius:10px;overflow:hidden;background:#fff;aspect-ratio:4/3;cursor:zoom-in}
.dr-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.dr-grid button:hover img{transform:scale(1.05)}
.dr-grid span{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font:700 15px var(--fd);text-align:left}

/* careers */
.careers{background-image:linear-gradient(rgba(10,40,22,.86),rgba(10,40,22,.86)),url("assets/img/bms-photos/pt-tendons-column.jpg")}
.careers h2{text-transform:none;font-size:clamp(32px,4vw,56px);margin:0 0 20px}
.careers p{max-width:640px;margin:0 auto 34px;font-size:18px;color:#e6e9f5}
.btn-pill{display:inline-block;padding:16px 38px;border-radius:40px;background:#fff;color:var(--green)!important;color:#fff;font:700 14px var(--fd);letter-spacing:.08em;text-transform:uppercase;transition:.25s}
.btn-pill:hover{background:#e6f1e7}

/* cta */
.cta{background:var(--dark);padding:56px 0}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta h2{color:#fff;text-transform:uppercase;font-size:clamp(26px,3vw,40px);font-weight:800}

/* contact */
.contact{padding:90px 0;background:var(--grey)}
.ct-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.contact h2{font-size:clamp(34px,3.6vw,50px);margin-bottom:16px;text-transform:uppercase}
.quote{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;background:#fff;padding:30px;border-radius:12px;box-shadow:0 18px 40px -24px rgba(0,0,0,.3)}
.quote label{display:grid;gap:6px;font:600 13.5px var(--f);color:var(--ink)}
.quote .full{grid-column:1/-1}
.quote input,.quote textarea{width:100%;min-width:0;font:400 15.5px var(--f);color:var(--ink);border:1px solid #d7dbe2;border-radius:6px;padding:12px 13px;background:#fbfbfc}
.quote textarea{min-height:110px;resize:vertical}
.quote input:focus,.quote textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(60,122,43,.15)}
.hp{position:absolute;left:-9999px}
.form-done{grid-column:1/-1;color:var(--green);font-weight:700}.form-done.err{color:#b3261e}

/* footer */
.ftr{background:var(--darker);color:#a4a9b5;font-size:15px}
.ft-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr 1.2fr;gap:36px;padding:70px 0 54px}
.ftr img{height:46px;width:auto}
.ft-tag{margin-top:16px;max-width:240px}
.ftr h4{color:#fff;font-size:15px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px}
.ftr h4.mt{margin-top:22px}
.ftr a{display:block;margin-bottom:10px;transition:color .2s}
.ftr p a{display:inline;margin:0}
.ftr a:hover{color:#fff}
.ft-big{color:#fff;font-size:38px;text-transform:uppercase;margin-bottom:18px;font-weight:800}
.ft-big+p{position:relative;padding-bottom:24px}
.ft-big+p::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:2px;background:var(--accent)}
.ft-bottom{background:#141619;text-align:center;padding:20px 24px;font:600 12px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:#7b808b}
.totop{position:fixed;right:22px;bottom:22px;z-index:40;width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;box-shadow:0 8px 20px -8px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.3s}
.totop.show{opacity:1;pointer-events:auto}

/* reveal */
.js .rv{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}
.js .rv.in{opacity:1;transform:none}

/* lightbox */
.lb{position:fixed;inset:0;z-index:90;background:rgba(12,14,20,.95);display:grid;grid-template-rows:auto 1fr auto;opacity:0;pointer-events:none;transition:opacity .3s;color:#fff}
.lb.open{opacity:1;pointer-events:auto}
.lb-bar{display:flex;align-items:center;gap:14px;padding:14px 18px}
.lb-bar h2{color:#fff;font-size:20px;margin-right:auto}
.lb-n{font-size:13px;opacity:.7}
.lb-bar button,.lb-nav button{height:38px;padding:0 14px;border-radius:6px;border:1px solid rgba(255,255,255,.3);font-size:14px}
.lb-stage{overflow:auto;display:grid;place-items:center;padding:10px}
.lb-stage img{max-width:100%;max-height:calc(100vh - 140px);background:#fff;cursor:zoom-in}
.lb-stage.zoom{place-items:start}
.lb-stage.zoom img{max-width:none;max-height:none;width:2600px;cursor:zoom-out}
.lb-nav{display:flex;justify-content:center;gap:10px;padding:12px}

/* responsive */
@media (max-width:1020px){
  .burger{display:block}
  .links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;color:var(--ink);padding:8px 24px 18px;box-shadow:0 12px 24px rgba(0,0,0,.12);display:none}
  .links.open{display:flex}
  .links a{padding:14px 0;border-bottom:1px solid #eef0f3}
  .about-grid,.vis-grid,.dr-in,.ct-grid,.det-grid,.srow,.spec-grid,.off-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .srow.flip .srow-img{order:0}
  .srow{margin-bottom:56px}
  .pc{grid-template-columns:1fr;height:auto;top:calc(86px + var(--i,0) * 10px)}
  .pc img{height:160px;order:-1}
  .pc-t h3{margin-top:14px}
  .model-grid{grid-template-columns:1fr}.model-grid figure:first-child{grid-row:auto}
  .svc-grid{grid-template-columns:1fr;gap:48px}
  .grid{grid-template-columns:1fr 1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .why{grid-template-columns:1fr}
  .nav-cta{margin:12px 0 0;text-align:center}
}
@media (max-width:600px){
  .wrap{width:calc(100% - 32px)}
  .about,.vision,.work,.detail,.srows,.models,.offices{padding:64px 0}
  .detail-cols{grid-template-columns:1fr}
  .spec div{grid-template-columns:1fr;gap:4px}
  .page-hero{min-height:340px}
  .hero-bg{background-image:linear-gradient(rgba(14,20,34,.55),rgba(14,20,34,.62)),var(--bgs,var(--bg))}
  .page-hero{background-image:linear-gradient(rgba(10,22,14,.45),rgba(10,22,14,.72)),var(--bgs,var(--bg))}
  .about-photo{aspect-ratio:4/3}
  .about p,.svc p{text-align:left}
  .grid{grid-template-columns:1fr}
  .grid figure{aspect-ratio:4/3}
  .dr-grid{grid-template-columns:1fr 1fr;gap:10px}
  .banner-in{padding:90px 20px}
  .quote{grid-template-columns:minmax(0,1fr);padding:20px}
  .ft-grid{grid-template-columns:1fr}
  .cta-in{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}

/* ===== revision 2 (client content) ===== */
.ph-eyebrow{font:800 13px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:#a9dba3;margin-bottom:14px}
.page-hero h1{font-size:clamp(36px,4.8vw,66px);max-width:1000px;text-transform:none}
.page-hero p{max-width:760px}
.eyebrow.center{text-align:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.stats-strip{background:#0f2418;color:#fff}
.ss-in{display:grid;grid-template-columns:repeat(6,1fr)}
.ss-in div{padding:26px 18px;border-left:1px solid rgba(255,255,255,.12)}
.ss-in div:first-child{border-left:0;padding-left:0}
.ss-in b{display:block;font:800 clamp(20px,1.9vw,28px)/1.1 var(--fd);color:#fff}
.ss-in span{display:block;margin-top:6px;font:700 11.5px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:#a9c4b0}
.svc-grid.four{grid-template-columns:repeat(4,1fr);gap:24px}
.svc-grid.three{grid-template-columns:repeat(3,1fr);gap:24px}
.services.white{background:#fff}
a.svc,.svc-grid.four .svc,.svc-grid.three .svc{display:block;background:#fff;border:1px solid #e1e6e2;border-radius:12px;padding:32px 26px;transition:transform .3s,box-shadow .3s,border-color .3s}
a.svc:hover{transform:translateY(-4px);box-shadow:0 18px 34px -20px rgba(0,0,0,.3);border-color:var(--green)}
.svc-grid.four h3,.svc-grid.three h3{font-size:18px}
.center-cta{text-align:center;margin-top:44px}
.about-photo.wide{aspect-ratio:16/10}
.about-grid.flip{grid-template-columns:1fr 1.2fr}
.why.four{grid-template-columns:repeat(4,1fr)}
.btn-text.inline{margin:0}
.work-head{align-items:center}
.grid figcaption .tag{display:inline-block;background:var(--green);color:#fff;font:700 12px var(--fd);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:4px}
.grid figcaption{padding:50px 18px 18px}
.beliefs{padding:80px 0;background:var(--grey)}
.bel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:18px}
.bel{background:#fff;border-radius:12px;padding:32px;border-top:4px solid var(--green)}
.bel h3{font-size:24px;text-transform:uppercase;margin-bottom:10px}
.offices.grey{background:var(--grey)}
.off .addr{color:var(--ink)}
.tz{text-align:center;max-width:680px;margin:30px auto 0;font-size:17px;color:var(--ink)}
.whysec{padding:90px 0;background:#0f2418;color:#fff}
.whysec .eyebrow{color:#9fd39a}
.why-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:w}
.why-grid li{counter-increment:w;padding:26px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.04)}
.why-grid li::before{content:"0" counter(w);display:block;font:800 14px var(--fd);color:#9fd39a;margin-bottom:14px}
.why-grid b{display:block;font:700 19px var(--fd);margin-bottom:8px;color:#fff}
.why-grid span{color:#cdd8d0;font-size:15px;line-height:1.55}
.subnav{position:sticky;top:76px;z-index:30;background:#fff;border-bottom:1px solid #e3e7e4}
.subnav .wrap{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;padding:16px 0}
.subnav a{white-space:nowrap;font:700 13px var(--fd);letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.subnav a:hover{color:var(--green)}
.srow{scroll-margin-top:150px}
.srow-hl{font:700 20px var(--fd);color:var(--green);margin:-6px 0 12px}
.bticks{list-style:none;display:grid;gap:10px;margin-top:18px}
.bticks li{position:relative;padding-left:28px;font-size:15.5px}
.bticks li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/11px no-repeat}
.bticks b{color:var(--ink)}
.structs{margin-top:20px;padding:16px 18px;background:var(--grey);border-radius:10px;font-size:15px}
.structs b{color:var(--ink)}
.srow-img.est{display:flex;flex-direction:column;gap:12px;aspect-ratio:auto;box-shadow:none;background:none;overflow:visible}
.est-open{position:relative;display:block;width:100%;border-radius:12px;overflow:hidden;border:1px solid #d9dfdb;background:#fff;cursor:zoom-in;box-shadow:0 20px 40px -22px rgba(0,0,0,.35)}
.est-open img{width:100%;height:auto}
.est-open span{position:absolute;right:14px;bottom:14px;background:var(--green);color:#fff;font:700 13px var(--fd);letter-spacing:.06em;text-transform:uppercase;padding:9px 14px;border-radius:4px}
.est-dl{align-self:flex-start;font:700 14px var(--fd);color:var(--green);border-bottom:2px solid var(--green);padding-bottom:3px}
.qc-wrap{margin-top:56px}
.qc-title{color:#fff;font-size:28px;text-transform:uppercase;margin-bottom:22px}
.qc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.qc-l{padding:26px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16)}
.qc-l span{font:800 13px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:#9fd39a}
.qc-l h3{color:#fff;font-size:21px;margin:10px 0 8px}
.qc-l p{color:#cdd8d0;font-size:15px}
.promise{margin-top:26px;font:700 clamp(20px,2vw,26px)/1.3 var(--fd);color:#fff;text-align:center}
.sw{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.sw li{padding:10px 16px;border:1px solid #cfd6d1;border-radius:8px;background:#fff;font:700 14px var(--fd);color:var(--ink)}
.cta-in p{color:#b9c6bd;margin-top:8px}
.cta h2{font-size:clamp(22px,2.4vw,32px)}
.cta2{padding:60px 0;background:var(--grey)}
.cta2 h2{font-size:clamp(24px,2.6vw,36px);text-transform:uppercase}
.roles{padding:90px 0}
.table-wrap{overflow-x:auto}
.rtable{width:100%;border-collapse:collapse;font-size:16px}
.rtable th,.rtable td{text-align:left;padding:16px 14px;border-bottom:1px solid #e3e7e4}
.rtable thead th{font:800 12.5px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--text);border-bottom:2px solid var(--ink)}
.rtable tbody th{font:700 17px var(--fd);color:var(--ink)}
.rtable td a{color:var(--green);font-weight:700}
.apply{margin-top:50px;padding:36px;background:var(--grey);border-radius:12px}
.apply h3{font-size:24px;margin-bottom:10px;text-transform:uppercase}
.apply p{margin-bottom:20px;max-width:720px}.apply p a{color:var(--green);font-weight:700}
.ct-off{margin-top:24px}
.ct-off h3{font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--green);margin-bottom:6px}
.ct-off p{color:var(--ink);margin-bottom:4px}.ct-off a{color:var(--green);font-weight:700}
.quote select{width:100%;font:400 15.5px var(--f);color:var(--ink);border:1px solid #d7dbe2;border-radius:6px;padding:12px 13px;background:#fbfbfc}
.ft-social a{display:inline-flex!important;align-items:center;gap:8px;margin-top:14px}
.ft-social svg{width:18px;height:18px;fill:currentColor;stroke:none}
@media (max-width:1180px){.ss-in{grid-template-columns:repeat(3,1fr)}.ss-in div:nth-child(4){border-left:0;padding-left:0}.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1020px){.svc-grid.four,.svc-grid.three,.why.four{grid-template-columns:1fr 1fr}.bel-grid,.qc{grid-template-columns:1fr}.about-grid.flip{grid-template-columns:minmax(0,1fr)}.subnav{top:76px}}
@media (max-width:600px){.ss-in{grid-template-columns:1fr 1fr}.ss-in div{border-left:0;padding:16px 8px 16px 0}.svc-grid.four,.svc-grid.three,.why.four,.why-grid{grid-template-columns:1fr}.rtable{font-size:14.5px}.rtable th,.rtable td{padding:12px 8px}.apply{padding:24px}}
.pc{height:auto!important;min-height:clamp(260px,36vh,320px)}
.pc img{contain:size}
.pc-t h3{font-size:clamp(26px,2.8vw,40px)}
@media (max-width:1020px){.pc img{contain:none}}

/* ===== revision 3 ===== */
.pc-art{display:grid;place-items:center;background:linear-gradient(135deg,#f1f6f1,#e3ede4);padding:20px}
.pc-art svg{width:100%;max-width:440px;height:auto}
.pc img{display:none}
/* sub navigation as numbered tabs */
.subnav{top:76px;background:#0f2418;border:0;box-shadow:0 8px 20px -14px rgba(0,0,0,.5)}
.sn-in{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:12px 0}
.sn-in::-webkit-scrollbar{display:none}
.sn-in a{display:flex;align-items:center;gap:10px;flex:none;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.16);color:#d9e4dc;font:700 13px var(--fd);letter-spacing:.04em;text-transform:uppercase;transition:.2s}
.sn-in a b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.1);font-size:11px;color:#a9dba3}
.sn-in a:hover,.sn-in a.on{background:#2e7d32;border-color:#2e7d32;color:#fff}
.sn-in a:hover b,.sn-in a.on b{background:#fff;color:#2e7d32}
/* BIM gallery */
.srow-img.bim{aspect-ratio:auto;box-shadow:none;background:none;overflow:visible;display:grid;gap:12px}
.bim-main,.bim-t{position:relative;display:block;width:100%;border-radius:12px;overflow:hidden;background:#fff;border:1px solid #d9dfdb;cursor:zoom-in}
.bim-main img{width:100%;aspect-ratio:16/10;object-fit:contain;padding:10px}
.bim-main span{position:absolute;right:12px;bottom:12px;background:var(--green);color:#fff;font:700 13px var(--fd);letter-spacing:.06em;text-transform:uppercase;padding:9px 14px;border-radius:4px}
.bim-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bim-t img{width:100%;aspect-ratio:16/10;object-fit:cover}
.est-note{font-size:13.5px;color:var(--text);margin-top:4px}
/* more services cards with photos */
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mcard{background:#fff;border:1px solid #e1e6e2;border-radius:12px;overflow:hidden;scroll-margin-top:150px}
.mcard img{width:100%;aspect-ratio:16/10;object-fit:cover}
.mcard-t{padding:24px 24px 28px;position:relative}
.mcard-i{position:absolute;top:-28px;left:24px;width:56px;height:56px;border-radius:12px;background:#fff;display:grid;place-items:center;box-shadow:0 8px 20px -10px rgba(0,0,0,.3)}
.mcard-i svg{width:36px;height:36px;color:var(--green);stroke-width:3}
.mcard h3{font-size:20px;text-transform:uppercase;margin:24px 0 10px}
.mcard p{font-size:15.5px}
/* software logos */
.sw{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sw li{padding:12px;display:grid;place-items:center;aspect-ratio:2/1;background:#fff;border:1px solid #dfe5e0;border-radius:10px}
.sw img{max-width:100%;max-height:52px;object-fit:contain}
/* project sector tiles */
.cats{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:36px}
.cat{position:relative;aspect-ratio:1/1.05;border-radius:12px;overflow:hidden;padding:0!important;border:3px solid transparent!important;background:#14261c;text-align:left}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(10,22,14,.88))}
.cat span{position:absolute;left:12px;right:10px;bottom:10px;z-index:1;color:#fff;font:700 13.5px/1.2 var(--fd);text-transform:uppercase;letter-spacing:.03em}
.cat:hover img{transform:scale(1.06)}
.cat.on{border-color:var(--green)!important;box-shadow:0 10px 24px -12px rgba(46,125,50,.8)}
.cat.on::before{content:"";position:absolute;top:8px;right:8px;z-index:2;width:22px;height:22px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/14px no-repeat}
.cat-all{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:var(--green);left:0!important;right:0!important;bottom:0!important}
.cat-all b{font:800 30px var(--fd);color:#fff}.cat-all i{font-style:normal;font-size:13px;color:#d7ecd7;text-transform:uppercase;letter-spacing:.1em}
.cat:has(.cat-all)::after{display:none}
.filters.cats button{color:#fff}
@media (max-width:1100px){.cats{grid-template-columns:repeat(4,1fr)}}
@media (max-width:1020px){.mgrid{grid-template-columns:1fr}.sw{grid-template-columns:repeat(3,1fr)}.pc-art{order:-1;padding:14px}.pc-art svg{max-height:150px}}
@media (max-width:600px){.cats{display:flex;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}.cat{flex:0 0 120px;aspect-ratio:1/1.1}.sw{grid-template-columns:repeat(2,1fr)}}
.srow-img.tagimg{background:#fff;display:grid;place-items:center;padding:24px;border:1px solid #e1e6e2}
.srow-img.tagimg img{object-fit:contain;height:auto;max-height:100%}
.mcard img{object-fit:cover;background:#fff}
.drawings .dr-in{grid-template-columns:1fr;gap:32px}
.drawings h2{margin-bottom:10px}
.drawings .dr-grid{grid-template-columns:repeat(4,1fr)}
@media (max-width:1020px){.drawings .dr-grid{grid-template-columns:repeat(2,1fr)}}
.ft-follow{margin-top:26px}
.ft-follow h4{margin-bottom:12px}
.ftr a.li-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;margin:0;border-radius:8px;background:#fff;color:#0A66C2;font:700 15px var(--fd);transition:transform .2s,box-shadow .2s}
.li-btn svg{width:30px;height:30px;stroke:none}
.ftr a.li-btn:hover{color:#0A66C2;transform:translateY(-2px);box-shadow:0 8px 18px -8px rgba(10,102,194,.8)}
.ft-logo{display:inline-block;background:#fff;border-radius:10px;padding:10px 14px}
.ft-logo img{height:44px;width:auto;display:block}
.ftr h4{color:#9fd39a}
.ft-big{color:#9fd39a!important}
.ft-addr b{color:#fff}
.ft-big+p::after{background:#9fd39a}

/* ===== colour accents ===== */
:root{--g-dark:#1f5f25;--g-light:#9fd39a}
.hero h1 .hl{color:var(--g-light)}
/* dark bands */
.lab,.process .eyebrow,.whysec .eyebrow{color:var(--g-light)}
.ss-in b{color:var(--g-light)}
.why b,.why-grid b{color:var(--g-light)}
.qc-l h3{color:#fff}
.qc-title{color:var(--g-light)}
.promise{color:#fff}
.cta h2{color:#fff}
.cta h2::first-line{color:#fff}
.page-hero .ph-eyebrow{color:var(--g-light)}
/* light sections: titles in deep brand green */
.svc h3,.mcard h3,.bel h3,.detail-cols h3,.off h3,.apply h3,.rtable tbody th{color:var(--g-dark)}
.bticks b,.ticks li b{color:var(--g-dark)}
.about h2 .ac,.detail h2 .ac{color:var(--green)}
.srow h2{color:var(--ink)}
.srow-hl{color:var(--green)}
.figs b{color:var(--green)}
.structs b{color:var(--g-dark)}
.tz{color:var(--g-dark);font-weight:600}
.grid figcaption .tag{background:var(--green)}
.p-index .hero-bg{background:linear-gradient(rgba(6,20,12,.25),rgba(6,20,12,.45)),var(--bg) center/cover}
.p-services .page-hero{background:linear-gradient(rgba(6,20,12,.2),rgba(6,20,12,.55)),var(--bg) center/cover}
@media (max-width:600px){.p-index .hero-bg{background-image:linear-gradient(rgba(6,20,12,.25),rgba(6,20,12,.45)),var(--bgs,var(--bg))}}
.p-index .hero-bg{background:linear-gradient(rgba(6,22,12,.62),rgba(6,22,12,.72)),var(--bg) center/cover}
.p-services .page-hero{background:linear-gradient(90deg,rgba(6,22,12,.92) 0%,rgba(6,22,12,.75) 45%,rgba(6,22,12,.35) 100%),var(--bg) center/cover}
@media (max-width:600px){.p-index .hero-bg{background-image:linear-gradient(rgba(6,22,12,.62),rgba(6,22,12,.72)),var(--bgs,var(--bg))}.p-services .page-hero{background-image:linear-gradient(rgba(6,22,12,.8),rgba(6,22,12,.85)),var(--bgs,var(--bg))}}
.team.shine{background-image:linear-gradient(rgba(6,22,12,.55),rgba(6,22,12,.7)),var(--bg);background-position:center 40%}
.team.shine .why li{background:rgba(6,22,12,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.team.shine{background-image:linear-gradient(rgba(6,22,12,.25),rgba(6,22,12,.25)),var(--bg)}
.team.shine h2,.team.shine .lab{text-shadow:0 2px 14px rgba(0,0,0,.75),0 0 2px rgba(0,0,0,.6)}
.team.shine .why li{background:rgba(6,22,12,.72)}
.team.shine h2{text-shadow:0 3px 18px rgba(0,0,0,.95),0 1px 3px rgba(0,0,0,.9)}
.team.shine .lab{display:inline-block;background:rgba(6,22,12,.8);padding:7px 14px;border-radius:999px;text-shadow:none}
.team.shine{background-image:linear-gradient(rgba(6,22,12,.1),rgba(6,22,12,.1)),var(--bg)}
/* about hero: 3D rebar model — clear image, fade only behind the title */
.p-about .page-hero{min-height:500px;background:linear-gradient(90deg,rgba(6,22,12,.92) 0%,rgba(6,22,12,.82) 30%,rgba(6,22,12,.45) 48%,rgba(6,22,12,0) 62%),linear-gradient(180deg,rgba(6,22,12,.6) 0,rgba(6,22,12,0) 110px),var(--bg) right center/cover}
.p-about .page-hero h1{max-width:680px;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.p-about .page-hero p{max-width:560px}
@media (max-width:600px){.p-about .page-hero{background-image:linear-gradient(rgba(6,22,12,.55),rgba(6,22,12,.8)),var(--bgs,var(--bg))}}
/* services: keep software logos inside their column */
.spec-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.sw{grid-template-columns:repeat(4,minmax(0,1fr))}
.sw li{min-width:0;overflow:hidden}
.sw img{width:auto;height:auto;max-width:100%;max-height:44px}
@media (max-width:1280px){.sw{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.sw{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* software logos: own full-width row below the spec table */
.sw-row{margin-top:48px}
.sw-row .sw{grid-template-columns:repeat(8,minmax(0,1fr));margin-top:14px}
.sw-row .sw img{max-height:48px}
@media (max-width:1100px){.sw-row .sw{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:600px){.sw-row .sw{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* home hero: steel bars shown as-is; title on its own dark panel */
.p-index .hero-bg{background:linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 150px),var(--bg) center/cover}
.p-index .hero-in{background:rgba(6,22,12,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(159,211,154,.25);border-radius:18px;padding:44px 52px 48px;box-shadow:0 24px 60px rgba(0,0,0,.35);max-width:960px;margin:0 20px}
.p-index .hero h1{font-size:clamp(38px,5.6vw,76px)!important}
@media (max-width:600px){.p-index .hero-bg{background-image:linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 120px),var(--bgs,var(--bg))}.p-index .hero-in{padding:28px 22px 30px;margin:0 14px}}
/* home hero v2: no box — soft fade only behind the text */
.p-index .hero-in{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;box-shadow:none;padding:0 24px}
.p-index .hero-bg{background:radial-gradient(ellipse 46% 42% at 50% 52%,rgba(6,22,12,.88) 0%,rgba(6,22,12,.78) 45%,rgba(6,22,12,.35) 75%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 150px),var(--bg) center/cover}
.p-index .hero h1,.p-index .hero p{text-shadow:0 2px 16px rgba(0,0,0,.55)}
@media (max-width:600px){.p-index .hero-bg{background-image:radial-gradient(ellipse 90% 48% at 50% 50%,rgba(6,22,12,.88) 0%,rgba(6,22,12,.75) 55%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 120px),var(--bgs,var(--bg))}}
/* page heroes (all inner pages): image shown as-is, fade only behind the title text — same as home */
body .page-hero.page-hero{min-height:500px;background:radial-gradient(ellipse 52% 80% at 26% 62%,rgba(6,22,12,.86) 0%,rgba(6,22,12,.74) 42%,rgba(6,22,12,.32) 72%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 130px),var(--bg) var(--pos,center)/cover}
body .page-hero.page-hero h1{max-width:760px;text-shadow:0 2px 16px rgba(0,0,0,.55)}
body .page-hero.page-hero p{max-width:620px;text-shadow:0 1px 10px rgba(0,0,0,.6)}
@media (max-width:600px){body .page-hero.page-hero{min-height:420px;background-image:radial-gradient(ellipse 100% 60% at 35% 65%,rgba(6,22,12,.86) 0%,rgba(6,22,12,.7) 55%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 110px),var(--bgs,var(--bg))}}
/* about hero: show more of the original cage photo */
body.p-about .page-hero.page-hero{min-height:clamp(500px,44vw,680px)}
/* services hero: show more of the 3D model */
body.p-services .page-hero.page-hero{min-height:clamp(500px,44vw,680px)}
body.p-services .page-hero.page-hero{background:radial-gradient(ellipse 38% 48% at 22% 72%,rgba(6,22,12,.85) 0%,rgba(6,22,12,.7) 45%,rgba(6,22,12,.25) 75%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.5) 0,rgba(6,22,12,0) 110px),var(--bg) var(--pos,center)/cover}
@media (max-width:600px){body.p-services .page-hero.page-hero{background-image:radial-gradient(ellipse 100% 60% at 35% 65%,rgba(6,22,12,.86) 0%,rgba(6,22,12,.7) 55%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.55) 0,rgba(6,22,12,0) 110px),var(--bgs,var(--bg))}}
/* services hero v3: image as it is (no fade); text carries its own dark glow */
body.p-services .page-hero.page-hero{background:linear-gradient(180deg,rgba(6,22,12,.45) 0,rgba(6,22,12,0) 100px),var(--bg) var(--pos,center)/cover}
body.p-services .page-hero.page-hero h1,body.p-services .page-hero.page-hero .ph-eyebrow{text-shadow:0 0 28px rgba(0,0,0,.9),0 0 10px rgba(0,0,0,.75),0 2px 3px rgba(0,0,0,.7)}
body.p-services .page-hero.page-hero p{text-shadow:0 0 18px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.85),0 1px 2px rgba(0,0,0,.9);font-weight:600}
body.p-services .page-hero.page-hero .ph-eyebrow{color:#b9e6b4}
@media (max-width:600px){body.p-services .page-hero.page-hero{background-image:linear-gradient(180deg,rgba(6,22,12,.45) 0,rgba(6,22,12,0) 100px),var(--bgs,var(--bg))}}
@media (max-width:600px){body.p-services .page-hero.page-hero{background-image:linear-gradient(180deg,rgba(6,22,12,.45) 0,rgba(6,22,12,0) 100px),linear-gradient(0deg,rgba(6,22,12,.7) 0,rgba(6,22,12,.45) 45%,rgba(6,22,12,0) 70%),var(--bgs,var(--bg))}}
/* services hero v4: image as-is, soft fade only behind the text block */
body.p-services .page-hero.page-hero{background:radial-gradient(ellipse 34% 30% at 24% 76%,rgba(6,22,12,.78) 0%,rgba(6,22,12,.6) 45%,rgba(6,22,12,.22) 75%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.45) 0,rgba(6,22,12,0) 100px),var(--bg) var(--pos,center)/cover}
body.p-services .page-hero.page-hero p{font-weight:500}
@media (max-width:600px){body.p-services .page-hero.page-hero{background-image:radial-gradient(ellipse 95% 38% at 40% 66%,rgba(6,22,12,.8) 0%,rgba(6,22,12,.6) 50%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.45) 0,rgba(6,22,12,0) 100px),var(--bgs,var(--bg))}}
/* services hero v5: colourful 3D mat — slightly larger fade behind text */
body.p-services .page-hero.page-hero{background:radial-gradient(ellipse 40% 38% at 23% 74%,rgba(6,22,12,.86) 0%,rgba(6,22,12,.72) 45%,rgba(6,22,12,.28) 78%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.5) 0,rgba(6,22,12,0) 110px),var(--bg) var(--pos,center)/cover}
@media (max-width:600px){body.p-services .page-hero.page-hero{background-image:radial-gradient(ellipse 110% 42% at 40% 66%,rgba(6,22,12,.85) 0%,rgba(6,22,12,.68) 50%,rgba(6,22,12,0) 100%),linear-gradient(180deg,rgba(6,22,12,.5) 0,rgba(6,22,12,0) 100px),var(--bgs,var(--bg));background-position:center}}

/* careers table on phones: all roles are in Salem, so drop the Location column so Apply fits */
@media (max-width:600px){.rtable th:nth-child(3),.rtable td:nth-child(3){display:none}.rtable th,.rtable td{padding:12px 6px}.rtable td:last-child{text-align:right;white-space:nowrap}}

/* footer social icons: LinkedIn, Instagram, Facebook, WhatsApp (icons only) */
.soc-row{display:flex;flex-wrap:wrap;gap:12px}
.ftr .soc-row a.li-btn{padding:0;gap:0;background:none;border-radius:8px;line-height:0}
.ftr .soc-row a.li-btn:hover{box-shadow:0 8px 18px -8px rgba(10,102,194,.8)}
.ftr .soc-row a.li-btn.ig:hover{box-shadow:0 8px 18px -8px rgba(214,41,118,.85)}
.ftr .soc-row a.li-btn.fb:hover{box-shadow:0 8px 18px -8px rgba(24,119,242,.85)}
.ftr .soc-row a.li-btn.wa:hover{box-shadow:0 8px 18px -8px rgba(37,211,102,.85)}
.soc-row .li-btn svg{width:40px;height:40px}
/* floating WhatsApp chat button (sits above the back-to-top button) */
.wa-float{position:fixed;right:20px;bottom:80px;z-index:45;width:52px;height:52px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 22px -8px rgba(0,0,0,.45);transition:transform .2s,box-shadow .2s}
.wa-float:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 26px -8px rgba(37,211,102,.9)}
.wa-float svg{width:30px;height:30px;stroke:none}
@media print{.wa-float{display:none}}
