/* Homepage v2: image-led, short copy, strong type. Loaded on index only. */
.h2x{font-size:clamp(34px,6vw,92px);line-height:.98;letter-spacing:-.035em;max-width:14ch}
.kick{font:700 12px/1 var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--green);margin-bottom:24px;display:flex;gap:12px;align-items:center}
.kick::before{content:"";width:32px;height:2px;background:currentColor}
.on-light .kick{color:var(--blue)}
.on-light{background:var(--paper);color:var(--ink)}
/* hero */
.hx{position:relative;height:100svh;min-height:640px;display:grid;grid-template-rows:1fr auto;isolation:isolate;overflow:hidden}
.hx-bg,.hx-bg img,.hx-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hx::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,20,32,.7),rgba(11,20,32,.1) 40%,rgba(11,20,32,.88))}
.hx-main{align-self:end;padding-bottom:clamp(24px,4vw,56px)}
.hx h1{font-size:clamp(46px,10.5vw,170px);line-height:.88;letter-spacing:-.045em;max-width:9ch}
.hx h1 span{display:block;color:var(--green)}
.hx-sub{display:flex;justify-content:space-between;align-items:end;gap:28px;flex-wrap:wrap;margin-top:clamp(22px,3vw,40px)}
.hx-sub p{margin:0;max-width:34ch;font-size:clamp(16px,1.4vw,20px);color:#dbe3ec}
.hx-bar{border-top:1px solid var(--line);background:rgba(11,20,32,.55);backdrop-filter:blur(8px)}
.hx-bar .wrap{display:flex;justify-content:space-between;gap:20px;padding-block:16px;font:600 12px/1.4 var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#cbd5e1;flex-wrap:wrap}
.hx-bar b{color:var(--green);font-weight:700}
/* marquee */
.mq{overflow:hidden;background:var(--green);color:var(--ink);padding-block:18px}
.mq ul{display:flex;width:max-content;margin:0;padding:0;list-style:none;animation:marquee 38s linear infinite}
.mq li{font:800 clamp(18px,2.2vw,30px)/1 var(--font-display);letter-spacing:-.01em;padding-inline:28px;display:flex;align-items:center;gap:56px;white-space:nowrap}
.mq li::after{content:"✦";font-size:.7em}
/* about */
.ab{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,110px);align-items:center}
.ab-t{font:800 clamp(28px,4.4vw,64px)/1.04 var(--font-display);letter-spacing:-.03em}
.ab-t em{font-style:normal;color:var(--blue)}
.ab-i{position:relative;aspect-ratio:1/1.05}
.ab-i figure{position:absolute;margin:0;overflow:hidden}
.ab-i img{width:100%;height:100%;object-fit:cover}
.ab-i .a{inset:0 22% 18% 0}.ab-i .b{inset:34% 0 0 38%;border:8px solid var(--paper)}
.ab-i small{position:absolute;left:0;bottom:0;font:600 11px var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#4a5666}
/* services list */
.sv{margin-top:clamp(32px,5vw,64px);border-top:1px solid var(--line);position:relative}
.sv a{display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center;padding:clamp(18px,2.4vw,34px) 0;border-bottom:1px solid var(--line);transition:padding .5s var(--ease),color .3s}
.sv .n{font:700 13px var(--font-display);color:var(--steel)}
.sv h3{font-size:clamp(26px,4.6vw,72px);letter-spacing:-.03em;line-height:1}
.sv .go{width:52px;height:52px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:all .4s var(--ease)}
.sv a:hover,.sv a:focus-visible{padding-left:22px;color:var(--green)}
.sv a:hover .go{background:var(--green);color:var(--ink);border-color:var(--green);transform:rotate(-45deg)}
.sv-float{position:fixed;left:0;top:0;width:min(300px,24vw);aspect-ratio:4/5;pointer-events:none;z-index:60;opacity:0;overflow:hidden;transition:opacity .3s;will-change:transform}
.sv-float img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.sv-float img.on{opacity:1}
.sv-float.on{opacity:1}
/* horizontal field work */
.hw{background:var(--ink-2);overflow:hidden}
.hw-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;padding-block:clamp(64px,8vw,120px) 36px}
.hw-track{display:flex;gap:clamp(12px,1.6vw,22px);padding:0 var(--gutter) clamp(64px,8vw,110px);width:max-content}
.hw-card{position:relative;width:clamp(260px,26vw,420px);aspect-ratio:3/4;flex:none;overflow:hidden;background:#1a2738;border:0;padding:0;color:inherit;cursor:pointer;text-align:left}
.hw-card:nth-child(even){margin-top:clamp(24px,4vw,64px)}
.hw-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.hw-card:hover img{transform:scale(1.06)}
.hw-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,20,32,.9),transparent 50%)}
.hw-card b{position:absolute;left:18px;bottom:46px;z-index:1;font:700 12px var(--font-display);color:var(--green);letter-spacing:.14em}
.hw-card span{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;font:700 15px/1.25 var(--font-display)}
@media (max-width:900px){.hw{overflow:visible}.hw-track{overflow-x:auto;width:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.hw-card{scroll-snap-align:start;width:72vw}.hw-card:nth-child(even){margin-top:0}}
/* capability bento */
.bt{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(150px,18vw,260px);gap:12px;margin-top:clamp(32px,5vw,64px)}
.bt a{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;isolation:isolate;grid-column:span 4}
.bt a:nth-child(1){grid-column:span 7;grid-row:span 2}.bt a:nth-child(2){grid-column:span 5}.bt a:nth-child(3){grid-column:span 5}
.bt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.bt a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,20,32,.92),rgba(11,20,32,.05) 65%)}
.bt a:hover img{transform:scale(1.07)}
.bt h3{font-size:clamp(20px,2.2vw,32px)}.bt p{margin:6px 0 0;font-size:14px;color:#cbd5e1}
.bt .ar{position:absolute;top:18px;right:18px;width:42px;height:42px;border:1px solid rgba(255,255,255,.4);border-radius:50%;display:grid;place-items:center;transition:all .4s var(--ease)}
.bt a:hover .ar{background:var(--green);color:var(--ink);border-color:var(--green)}
/* process */
.pr{display:grid;grid-template-columns:repeat(6,1fr);margin-top:clamp(40px,6vw,80px);position:relative;border-top:1px solid var(--line-dark)}
.pr::before{content:"";position:absolute;left:0;top:-1px;height:3px;width:calc(var(--p,0) * 100%);background:var(--blue);transition:width 1.6s var(--ease)}
.pr div{padding:26px 18px 0 0}
.pr b{display:block;font:800 clamp(40px,5vw,76px)/1 var(--font-display);letter-spacing:-.04em;color:var(--blue)}
.pr h3{font-size:clamp(17px,1.5vw,22px);margin:18px 0 6px}.pr p{margin:0;font-size:14px;color:#4a5666}
/* safety */
.sf2{display:grid;grid-template-columns:1fr 1fr;min-height:min(86svh,760px)}
.sf2-i{position:relative;overflow:hidden}.sf2-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sf2-b{background:var(--navy);padding:clamp(36px,6vw,100px);display:flex;flex-direction:column;justify-content:center}
.sf2-b ul{list-style:none;margin:32px 0;padding:0}
.sf2-b li{display:flex;gap:16px;align-items:center;padding:17px 0;border-top:1px solid var(--line);font:700 clamp(17px,1.6vw,22px)/1.3 var(--font-display)}
.sf2-b li i{font:700 12px var(--font-display);color:var(--green);font-style:normal}
/* test trio */
.tr3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin-top:clamp(32px,5vw,64px)}
.tr3 figure{margin:0;position:relative;overflow:hidden;aspect-ratio:3/4}
.tr3 figure:first-child{aspect-ratio:auto}
.tr3 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tr3 figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 16px 14px;background:linear-gradient(0deg,rgba(11,20,32,.9),transparent);font:700 12px var(--font-display);letter-spacing:.1em;text-transform:uppercase}
.words{font:800 clamp(40px,8vw,128px)/.92 var(--font-display);letter-spacing:-.045em}
.words span{color:var(--green)}
/* industries + supplies */
.in4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(32px,5vw,64px)}
.in4 a{position:relative;aspect-ratio:3/4.2;overflow:hidden;display:flex;align-items:flex-end;padding:20px;isolation:isolate}
.in4 a:nth-child(even){transform:translateY(clamp(0px,4vw,56px))}
.in4 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.in4 a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,20,32,.9),transparent 60%)}
.in4 a:hover img{transform:scale(1.07)}.in4 h3{font-size:clamp(18px,1.9vw,26px)}
.sp5{display:grid;grid-template-columns:repeat(5,1fr);margin-top:clamp(32px,5vw,64px);border-top:2px solid var(--ink)}
.sp5 div{padding:22px 18px 0 0}
.sp5 svg{width:30px;height:30px;stroke:var(--blue);fill:none;stroke-width:1.7;margin-bottom:16px}
.sp5 h3{font-size:20px;margin-bottom:8px}.sp5 p{margin:0;font-size:14px;color:#4a5666}
/* faq + cta */
.fq{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,100px)}
.fq details{border-bottom:1px solid var(--line)}
.fq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;gap:18px;font:700 clamp(18px,1.9vw,24px)/1.25 var(--font-display)}
.fq summary::-webkit-details-marker{display:none}
.fq summary::after{content:"+";color:var(--green);font-size:28px;line-height:1;transition:transform .4s var(--ease)}
.fq details[open] summary::after{transform:rotate(45deg)}
.fq details p{margin:0 0 22px;color:#b9c4d2;max-width:56ch}
.cx{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(90px,14vw,200px)}
.cx img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cx::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(11,20,32,.92),rgba(11,20,32,.45))}
.cx .h2x{max-width:11ch;margin-bottom:34px}
.pill{position:absolute;right:var(--gutter);top:calc(var(--header-h) + 18px);z-index:2;font:600 10px var(--font-display);letter-spacing:.14em;text-transform:uppercase;padding:6px 9px;border:1px solid rgba(255,255,255,.4);color:#e8edf3}
@media (max-width:1000px){.ab,.fq,.sf2{grid-template-columns:1fr}.sf2-i{min-height:340px}.sp5{grid-template-columns:1fr 1fr}.pr{grid-template-columns:1fr 1fr}.in4{grid-template-columns:1fr 1fr}.tr3{grid-template-columns:1fr 1fr}.tr3 figure:first-child{grid-column:1/-1;aspect-ratio:16/10}}
@media (max-width:640px){.bt{grid-template-columns:1fr 1fr;grid-auto-rows:44vw}.bt a,.bt a:nth-child(n){grid-column:span 1;grid-row:span 1}.bt a:nth-child(1){grid-column:span 2;grid-row:span 2}.sp5,.pr{grid-template-columns:1fr}.in4 a:nth-child(even){transform:none}.sv a{grid-template-columns:36px 1fr 40px}.sv .go{width:40px;height:40px}.hx-bar .wrap span:nth-child(n+3){display:none}.pill{display:none}}
.hx h1{font-size:clamp(42px,8vw,128px);line-height:.92;max-width:11ch}
.hw-head{padding-top:clamp(110px,10vw,150px)}
.brand img{width:auto;height:34px;max-width:none}
.brand{flex:none}
@media (max-width:640px){.hx h1{font-size:clamp(40px,13vw,64px)}.hx-sub .cta-row{width:100%}.hx-sub .btn{flex:1;justify-content:center}.ab-i{aspect-ratio:1}}
@media (min-width:1241px){.nav-link{padding-inline:10px;font-size:13.5px}.site-header .bar{gap:14px}.header-cta{padding:13px 17px}}
@media (max-width:640px){.hx h1{line-height:1}}
