@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap');

:root { --ink:#111820; --ink-2:#1a242d; --paper:#f3f1eb; --white:#fff; --muted:#aeb7bd; --orange:#f36b21; --line:rgba(255,255,255,.16); --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; line-height:1.6; }
body.menu-open { overflow:hidden; }
img { display:block; width:100%; }
a { color:inherit; }
.container { width:min(var(--max), calc(100% - 48px)); margin-inline:auto; }
.section { padding:110px 0; }
.skip-link { position:absolute; left:-9999px; top:8px; background:#fff; padding:10px; z-index:100; }
.skip-link:focus { left:8px; }
.site-header { position:absolute; inset:0 0 auto; z-index:10; color:#fff; border-bottom:1px solid var(--line); }
.site-header.scrolled { position:fixed; background:rgba(13,20,27,.96); backdrop-filter:blur(15px); }
.nav-wrap { min-height:86px; width:min(1320px,calc(100% - 48px)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:flex; align-items:center; gap:14px; text-decoration:none; }
.brand-logo { width:96px; height:58px; display:grid; place-items:center; flex:0 0 auto; }
.brand-logo img { width:100%; height:100%; object-fit:contain; }
.brand-name { font:600 15px/1.2 "Manrope"; letter-spacing:.02em; }
.brand-name small { display:block; margin-top:5px; color:#aab2b8; font:400 9px/1 "DM Sans"; letter-spacing:.12em; text-transform:uppercase; }
nav { display:flex; align-items:center; gap:30px; }
nav a { font-size:13px; text-decoration:none; color:#dce1e4; }
nav a:hover,nav a:focus-visible { color:#fff; }
.nav-cta { border:1px solid #68727a; padding:11px 16px; }
.menu-toggle { display:none; }
.hero { position:relative; min-height:760px; height:94vh; color:#fff; display:flex; align-items:center; overflow:hidden; background:#0b1116; }
.hero-image,.hero-shade { position:absolute; inset:0; }
.hero-image { background:url('assets/cnc-turning.jpg') center/cover no-repeat; }
.hero-shade { background:linear-gradient(90deg,rgba(7,12,17,.97) 0%,rgba(7,12,17,.84) 32%,rgba(7,12,17,.14) 72%,rgba(7,12,17,.12)),linear-gradient(0deg,rgba(7,12,17,.6),transparent 40%); }
.hero-content { position:relative; z-index:2; padding-top:74px; }
.eyebrow { margin:0 0 22px; color:#bac2c7; font:600 11px/1.2 "Manrope"; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow::before { content:""; display:inline-block; width:29px; border-top:2px solid var(--orange); vertical-align:middle; margin-right:12px; }
.eyebrow.dark { color:#59646c; }
h1,h2,h3 { font-family:"Manrope",sans-serif; margin-top:0; }
h1 { margin-bottom:24px; font-size:clamp(56px,7.4vw,108px); line-height:.91; letter-spacing:-.065em; font-weight:500; }
h1 em { color:var(--orange); font-style:normal; }
.hero-copy { max-width:600px; font-size:19px; line-height:1.6; color:#cbd1d5; }
.hero-actions { display:flex; gap:12px; margin-top:38px; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; padding:0 23px; text-decoration:none; font:600 12px/1 "Manrope"; letter-spacing:.04em; transition:.2s; }
.button-primary { background:var(--orange); color:#111; }
.button-primary:hover { background:#ff8040; transform:translateY(-2px); }
.button-ghost { border:1px solid #606a72; color:#fff; }
.button-ghost:hover { border-color:#fff; }
.hero-proof { position:absolute; z-index:2; bottom:0; right:0; display:flex; background:rgba(11,17,22,.9); border-top:1px solid var(--line); }
.hero-proof span { min-width:170px; padding:20px 26px; color:#9fa9af; font-size:11px; text-transform:uppercase; letter-spacing:.08em; border-left:1px solid var(--line); }
.hero-proof strong { display:block; color:#fff; font:500 23px/1.3 "Manrope"; text-transform:none; letter-spacing:-.02em; }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; }
h2 { font-size:clamp(38px,4.6vw,66px); line-height:1.04; letter-spacing:-.05em; font-weight:500; }
.intro-copy { padding-top:22px; font-size:18px; color:#4e5961; }
.intro-copy p:first-child { margin-top:0; color:var(--ink); }
.capabilities,.sectors,.contact { color:#fff; background:var(--ink); }
.section-head { display:grid; grid-template-columns:1.25fr .75fr; gap:100px; align-items:end; margin-bottom:60px; }
.section-head h2 { margin-bottom:0; }
.section-head>p { color:#aeb7bd; margin:0 0 8px; font-size:17px; }
.section-head.light>p { color:#5a646b; }
.capability-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; background:#2a333a; }
.cap-card { position:relative; min-height:530px; overflow:hidden; background:#111; }
.cap-card img { width:100%; height:100%; object-fit:cover; opacity:.7; transition:transform .6s,opacity .6s; }
.cap-card:hover img { transform:scale(1.025); opacity:.85; }
.cap-card-copy { position:absolute; inset:auto 0 0; padding:38px; background:linear-gradient(transparent,rgba(7,12,17,.95)); }
.cap-card-copy span { color:var(--orange); font-size:11px; }
.cap-card h3 { margin:8px 0; font-size:29px; font-weight:500; }
.cap-card p { max-width:500px; margin:0; color:#c1c8cc; }
.process-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #c9c7c0; }
.process-list li { padding:28px 28px 10px 0; border-right:1px solid #c9c7c0; min-height:230px; }
.process-list li+li { padding-left:28px; }
.process-list li:last-child { border-right:0; }
.process-list span { color:var(--orange); font-size:12px; }
.process-list h3 { margin:50px 0 10px; font-size:20px; }
.process-list p { font-size:14px; color:#5c656c; }
.sectors-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; }
.sectors-copy { position:sticky; top:140px; align-self:start; }
.sectors-copy>p:last-child { color:#aeb7bd; font-size:17px; }
.sector-list>div { display:grid; grid-template-columns:170px 1fr; gap:30px; border-top:1px solid var(--line); padding:34px 0; }
.sector-list span { font:500 18px "Manrope"; }
.sector-list p { margin:0; color:#aeb7bd; }
.software-card { display:grid; grid-template-columns:.7fr 1.3fr; gap:100px; align-items:center; }
.software-card>div:last-child { max-width:680px; }
.software-card p:not(.eyebrow) { color:#566169; font-size:17px; }
.text-link { display:inline-block; margin-top:15px; color:var(--ink); text-decoration-color:var(--orange); text-underline-offset:5px; font-weight:600; }
.software-kicker { aspect-ratio:1; background:var(--ink); display:grid; grid-template-columns:1fr 1fr; gap:2px; padding:22%; transform:rotate(45deg); }
.software-kicker span { border:1px solid #52606a; position:relative; }
.software-kicker span:first-child,.software-kicker span:last-child { background:var(--orange); border-color:var(--orange); }
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:120px; }
.contact-grid>div>p:not(.eyebrow) { color:#b0b9be; max-width:590px; font-size:18px; }
.contact-grid .button { margin-top:22px; }
.contact-details { font-style:normal; border-top:1px solid var(--line); }
.contact-details>div { padding:25px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:130px 1fr; }
.contact-details span { color:#89949b; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.contact-details a,.contact-details p { margin:0; color:#fff; font-size:15px; text-decoration:none; }
footer { background:#090e12; color:#fff; padding:55px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr auto; gap:40px; align-items:center; }
.footer-grid>p { color:#8d989f; font-size:13px; }
.footer-links { display:flex; gap:25px; font-size:13px; }
.footer-bottom { border-top:1px solid var(--line); padding-top:20px; margin-top:40px; display:flex; justify-content:space-between; color:#68747b; font-size:11px; }
.legal { min-height:70vh; padding-top:150px; }
.legal article { max-width:760px; }
.legal h1 { color:var(--ink); font-size:clamp(48px,7vw,78px); }
.legal h2 { font-size:25px; margin-top:40px; letter-spacing:-.02em; }
.legal-header { position:relative; background:var(--ink); }
@media (max-width:800px) {
  .container,.nav-wrap { width:min(100% - 32px,var(--max)); }
  .section { padding:76px 0; }
  .menu-toggle { display:block; color:#fff; border:1px solid #66717a; background:none; padding:9px 13px; }
  nav { display:none; position:fixed; inset:78px 0 auto; padding:24px; background:#101820; flex-direction:column; align-items:stretch; }
  nav.open { display:flex; }
  .brand-name small { display:none; }
  .hero { min-height:720px; height:100svh; }
  .hero-image { background-position:60% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(7,12,17,.95),rgba(7,12,17,.53)),linear-gradient(0deg,rgba(7,12,17,.8),transparent); }
  .hero-proof { left:0; right:0; overflow:auto; }
  .hero-proof span { min-width:145px; padding:14px 17px; }
  .hero-proof strong { font-size:18px; }
  .intro,.section-head,.sectors-layout,.software-card,.contact-grid { grid-template-columns:1fr; gap:35px; }
  .capability-grid { grid-template-columns:1fr; }
  .cap-card { min-height:430px; }
  .process-list { grid-template-columns:1fr 1fr; }
  .process-list li:nth-child(2) { border-right:0; }
  .process-list li:nth-child(3),.process-list li:nth-child(4) { border-top:1px solid #c9c7c0; }
  .sectors-copy { position:static; }
  .software-kicker { max-width:380px; margin:auto; }
  .footer-grid { grid-template-columns:1fr; }
}
@media (max-width:500px) {
  h1 { font-size:52px; }
  .hero-actions { align-items:stretch; flex-direction:column; max-width:270px; }
  .process-list { grid-template-columns:1fr; }
  .process-list li,.process-list li+li { border-right:0; border-top:1px solid #c9c7c0; padding:24px 0; min-height:0; }
  .process-list h3 { margin:24px 0 8px; }
  .sector-list>div,.contact-details>div { grid-template-columns:1fr; gap:8px; }
  .footer-bottom { flex-direction:column; gap:8px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
