
/* ═══════════════════════════════════════════════
   DESIGN SYSTEM
   Palette: Titanium White · Forge Black · Precision Blue · Alloy Gold
   Type: Playfair Display (display) + DM Sans (body) + DM Mono (data)
   Signature: The "tolerance line" — a single 1px line that threads
   through every section, representing ±0.01mm precision
═══════════════════════════════════════════════ */
:root{
  --forge:       #080C10;
  --forge-soft:  #111820;
  --forge-mid:   #1C2835;
  --precision:   #0A4D8C;
  --precision-l: #1565A8;
  --titanium:    #F2F4F7;
  --titanium-d:  #E2E6EB;
  --alloy:       #C4922A;
  --alloy-l:     #D9A93E;
  --alloy-pale:  #F7F0E3;
  --steel:       #4A5568;
  --wire:        #8896A4;
  --white:       #FFFFFF;
  --rule:        rgba(196,146,42,0.2);
  --rule-light:  rgba(0,0,0,0.07);

  --f-display: 'Playfair Display', Georgia, serif;
  --f-body:    'DM Sans', system-ui, sans-serif;
  --f-mono:    'DM Mono', 'Courier New', monospace;

  --ease-out: cubic-bezier(0.16,1,0.3,1);
  --ease-in-out: cubic-bezier(0.45,0,0.55,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ font-size:16px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body{
  font-family: var(--f-body);
  background: var(--white);
  color: var(--forge);
  overflow-x: hidden;
  cursor: none;
}
a{ text-decoration:none; color:inherit; }
img{ display:block; max-width:100%; }
button{ font-family:var(--f-body); cursor:none; }

/* ── CURSOR ── */
#cur,#cur2{
  position:fixed; border-radius:50%; pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
}
#cur{ width:7px; height:7px; background:var(--alloy); transition:transform .1s; }
#cur2{
  width:36px; height:36px; border:1.5px solid rgba(196,146,42,.5);
  transition: left .14s var(--ease-out), top .14s var(--ease-out),
              width .3s, height .3s, opacity .3s;
}
body.hovering #cur{ transform:translate(-50%,-50%) scale(1.8); }
body.hovering #cur2{ width:56px; height:56px; border-color:var(--alloy); opacity:.6; }

/* ── PRELOADER ── */
#pre{
  position:fixed; inset:0; background:var(--forge); z-index:10000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  transition:opacity .8s var(--ease-out), visibility .8s;
}
#pre.gone{ opacity:0; visibility:hidden; pointer-events:none; }
.pre-logo{
  font-family:var(--f-display); font-size:64px; font-weight:900;
  color:var(--white); letter-spacing:12px;
  animation: preGlow 2s ease-in-out infinite alternate;
}
.pre-logo span{ color:var(--alloy); }
@keyframes preGlow{
  from{ text-shadow:0 0 0 transparent; }
  to{ text-shadow:0 0 60px rgba(196,146,42,.4); }
}
.pre-bar{ width:220px; height:1px; background:rgba(255,255,255,.08); margin:28px auto 0; overflow:hidden; }
.pre-fill{ height:100%; width:0; background:var(--alloy); transition:width .04s linear; }
.pre-label{
  font-family:var(--f-mono); font-size:10px; letter-spacing:3px;
  color:rgba(255,255,255,.25); margin-top:16px; text-transform:uppercase;
}

/* ── NAV ── */
#nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  transition:background .5s, backdrop-filter .5s, box-shadow .5s;
}
#nav.solid{
  background:rgba(8,12,16,.96); backdrop-filter:blur(20px) saturate(180%);
  box-shadow:0 1px 0 var(--rule), 0 8px 40px rgba(0,0,0,.3);
}
.nav-wrap{
  max-width:1400px; margin:0 auto; padding:0 48px;
  height:76px; display:flex; align-items:center; justify-content:space-between;
}
.nav-brand{ display:flex; align-items:center; gap:14px; }
.nav-emblem{
  width:44px; height:44px; border:1.5px solid var(--alloy); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-display); font-size:13px; font-weight:900;
  color:var(--alloy); letter-spacing:1px; flex-shrink:0;
  transition:background .3s;
}
#nav.solid .nav-emblem{ background:rgba(196,146,42,.08); }
.nav-brand-text{ line-height:1; }
.nav-company{ display:block; font-family:var(--f-display); font-size:14px; font-weight:700; color:var(--white); letter-spacing:.3px; }
.nav-tagline{ display:block; font-size:9px; font-weight:400; color:var(--wire); letter-spacing:2.5px; text-transform:uppercase; margin-top:2px; }
.nav-menu{ display:flex; align-items:center; gap:0; list-style:none; }
.nav-menu > li{ position:relative; }
.nav-menu a{
  display:block; padding:10px 10px;
  font-size:10.5px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase;
  color:rgba(255,255,255,.65); transition:color .2s;
  white-space:nowrap;
}
.nav-menu a:hover, .nav-menu a.active{ color:var(--white); }
.nav-menu a.active::after{
  content:''; position:absolute; bottom:0; left:14px; right:14px;
  height:1px; background:var(--alloy);
}
/* dropdown */
.nav-drop{ position:relative; }
.nav-drop-menu{
  position:absolute; top:calc(100% + 12px); left:50%;
  transform:translateX(-50%) translateY(8px);
  background:rgba(8,12,16,.98); backdrop-filter:blur(20px);
  border:1px solid var(--rule); min-width:220px; padding:8px 0;
  opacity:0; pointer-events:none;
  transition:opacity .25s, transform .25s var(--ease-out);
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.nav-drop:hover .nav-drop-menu{ opacity:1; pointer-events:all; transform:translateX(-50%) translateY(0); }
.nav-drop-menu a{
  display:block; padding:11px 24px;
  font-size:11px; letter-spacing:1px; text-transform:uppercase;
  color:rgba(255,255,255,.5); transition:color .15s, padding .15s;
  border-bottom:none;
}
.nav-drop-menu a:hover{ color:var(--alloy); padding-left:30px; }
.nav-cta{
  padding:11px 26px;
  background:var(--alloy); color:var(--forge);
  font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  transition:background .25s, transform .25s, box-shadow .25s;
  flex-shrink:0;
}
.nav-cta:hover{ background:var(--alloy-l); transform:translateY(-1px); box-shadow:0 8px 24px rgba(196,146,42,.3); }
.nav-burger{ display:none; flex-direction:column; gap:5px; padding:8px; }
.nav-burger span{ display:block; width:22px; height:1.5px; background:var(--white); transition:all .3s; }

/* ── HERO ── */
.hero{
  height:100vh; min-height:740px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end;
}
.hero-reel{
  position:absolute; inset:0; background:var(--forge);
}
.hero-slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transform:scale(1.05);
  transition:opacity 1.4s var(--ease-in-out), transform 8s linear;
}
.hero-slide.on{ opacity:1; transform:scale(1); }
.hero-veil{
  position:absolute; inset:0;
  background:linear-gradient(
    160deg,
    rgba(8,12,16,.92) 0%,
    rgba(8,12,16,.7) 50%,
    rgba(8,12,16,.45) 100%
  );
}
/* Tolerance line — the signature element */
.tol-line{
  position:absolute; top:0; bottom:0; left:calc(58% + 0px); width:1px;
  background:linear-gradient(to bottom, transparent 0%, var(--alloy) 30%, var(--alloy) 70%, transparent 100%);
  opacity:.18; pointer-events:none; z-index:1;
}
.hero-body{
  position:relative; z-index:2; width:100%;
  max-width:1400px; margin:0 auto; padding:0 48px 80px;
  display:grid; grid-template-columns:1fr auto;
  align-items:flex-end; gap:60px;
}
.hero-left{}
.hero-kicker{
  display:flex; align-items:center; gap:14px; margin-bottom:24px;
  opacity:0; transform:translateY(12px);
  animation:fadeUp .9s .6s var(--ease-out) forwards;
}
.kicker-line{ width:40px; height:1px; background:var(--alloy); }
.kicker-text{ font-family:var(--f-mono); font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--alloy); }
.hero-h1{
  font-family:var(--f-display); font-weight:900;
  font-size:clamp(52px,7.5vw,110px);
  color:var(--white); line-height:.95; letter-spacing:-2px;
  margin-bottom:28px; overflow:hidden;
}
.hero-h1 em{ font-style:italic; color:var(--alloy); }
.h1-line{ display:block; overflow:hidden; }
.h1-word{
  display:block; transform:translateY(110%);
  animation:slideUp .9s var(--ease-out) forwards;
}
.h1-line:nth-child(1) .h1-word{ animation-delay:.4s; }
.h1-line:nth-child(2) .h1-word{ animation-delay:.55s; }
.h1-line:nth-child(3) .h1-word{ animation-delay:.7s; }
@keyframes slideUp{ to{ transform:translateY(0); } }
@keyframes fadeUp{ to{ opacity:1; transform:translateY(0); } }
.hero-desc{
  font-size:15px; font-weight:300; color:rgba(255,255,255,.5); line-height:1.8;
  max-width:480px; margin-bottom:40px;
  opacity:0; animation:fadeUp .9s .9s var(--ease-out) forwards;
}
.hero-actions{
  display:flex; gap:16px; align-items:center;
  opacity:0; animation:fadeUp .9s 1.1s var(--ease-out) forwards;
}
.btn-primary{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 32px; background:var(--alloy); color:var(--forge);
  font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  transition:all .3s var(--ease-out);
}
.btn-primary:hover{ background:var(--alloy-l); transform:translateY(-2px); box-shadow:0 12px 40px rgba(196,146,42,.35); }
.btn-primary svg{ transition:transform .3s; }
.btn-primary:hover svg{ transform:translateX(4px); }
.btn-ghost{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; font-weight:500; letter-spacing:2px; text-transform:uppercase;
  color:rgba(255,255,255,.55); transition:color .3s;
  padding:15px 0; border-bottom:1px solid rgba(255,255,255,.15);
}
.btn-ghost:hover{ color:var(--white); border-bottom-color:rgba(255,255,255,.4); }
.hero-right{
  flex-shrink:0;
  opacity:0; animation:fadeUp .9s 1.3s var(--ease-out) forwards;
}
.hero-stats-block{ display:flex; flex-direction:column; gap:0; align-items:flex-end; }
.hstat{
  text-align:right; padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.hstat:last-child{ border-bottom:none; }
.hstat-num{
  font-family:var(--f-display); font-size:52px; font-weight:900; color:var(--white);
  line-height:1; letter-spacing:-2px;
}
.hstat-num sup{ font-size:28px; color:var(--alloy); vertical-align:super; }
.hstat-label{ font-family:var(--f-mono); font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--wire); margin-top:3px; }
.hero-scroll-hint{
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px; z-index:2;
  opacity:0; animation:fadeUp .9s 1.6s var(--ease-out) forwards;
}
.scroll-label{ font-family:var(--f-mono); font-size:9px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,.25); }
.scroll-arrow{ width:1px; height:50px; background:linear-gradient(var(--alloy), transparent); animation:scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse{ 0%,100%{ opacity:.3; } 50%{ opacity:1; } }
/* slide counter */
.hero-counter{
  position:absolute; right:48px; bottom:40px; z-index:2;
  display:flex; align-items:center; gap:12px;
}
.hc-num{ font-family:var(--f-mono); font-size:11px; letter-spacing:1px; color:rgba(255,255,255,.25); }
.hc-dots{ display:flex; gap:6px; }
.hc-dot{ width:20px; height:1px; background:rgba(255,255,255,.2); cursor:pointer; transition:background .3s, width .3s; }
.hc-dot.on{ background:var(--alloy); width:36px; }

/* ── CERT RIBBON ── */
.cert-ribbon{ background:var(--forge-soft); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:0; overflow:hidden; }
.cert-track{
  display:flex; align-items:center; gap:0;
  animation:certScroll 20s linear infinite;
  width:max-content;
}
.cert-item{
  display:flex; align-items:center; gap:16px;
  padding:18px 40px; border-right:1px solid var(--rule);
  white-space:nowrap;
}
.cert-item .ci-icon{ font-size:18px; }
.cert-item .ci-name{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--wire); }
.cert-item .ci-tag{ font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); margin-left:8px; font-weight:600; }
@keyframes certScroll{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── SECTION BASICS ── */
.sec{ padding:120px 0; }
.sec-inner{ max-width:1400px; margin:0 auto; padding:0 48px; }
.eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.eyebrow.center{ justify-content:center; }
.e-line{ width:28px; height:1px; background:var(--alloy); flex-shrink:0; }
.e-text{ font-family:var(--f-mono); font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--alloy); }
.sec-title{
  font-family:var(--f-display); font-weight:900;
  font-size:clamp(36px,4vw,60px); color:var(--forge);
  line-height:1.05; letter-spacing:-1px;
}
.sec-title.center{ text-align:center; }
.sec-title.light{ color:var(--white); }
.sec-title em{ font-style:italic; color:var(--alloy); }
.sec-body{ font-size:15px; font-weight:300; color:var(--steel); line-height:1.85; }

/* ── ABOUT STRIP ── */
.about-strip{ background:var(--white); }
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.about-image{ position:relative; }
.about-img-wrap{
  position:relative; overflow:hidden;
  aspect-ratio:4/5;
}
.about-img-wrap img{ width:100%; height:100%; object-fit:cover; transition:transform 6s linear; }
.about-img-wrap:hover img{ transform:scale(1.04); }
/* tolerance line on image */
.img-tol-line{
  position:absolute; top:0; bottom:0; left:60%; width:1px;
  background:linear-gradient(transparent, var(--alloy), transparent);
  opacity:.3; pointer-events:none;
}
.about-gold-frame{
  position:absolute; top:-16px; left:-16px; right:16px; bottom:16px;
  border:1px solid var(--alloy); opacity:.4; pointer-events:none; z-index:-1;
}
.about-badge{
  position:absolute; bottom:-20px; right:-20px;
  background:var(--forge); padding:24px 28px; z-index:2;
}
.badge-n{ font-family:var(--f-display); font-size:52px; font-weight:900; color:var(--white); line-height:1; }
.badge-n span{ color:var(--alloy); }
.badge-l{ font-family:var(--f-mono); font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--wire); margin-top:4px; }
.about-text-side{ padding-left:12px; }
.about-text-side .sec-title{ margin-bottom:24px; }
.about-text-side .sec-body{ margin-bottom:36px; }
.about-facts{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule-light); border:1px solid var(--rule-light); margin-bottom:36px; }
.af{ background:var(--white); padding:22px 20px; }
.af-n{ font-family:var(--f-display); font-size:34px; font-weight:900; color:var(--forge); }
.af-n span{ color:var(--alloy); font-size:24px; }
.af-l{ font-family:var(--f-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--wire); margin-top:3px; }
.btn-forge{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 30px; background:var(--forge); color:var(--white);
  font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase;
  transition:all .3s;
}
.btn-forge:hover{ background:var(--forge-mid); transform:translateY(-2px); }
.btn-forge svg{ transition:transform .3s; }
.btn-forge:hover svg{ transform:translateX(4px); }

/* ── CAPABILITIES ── */
.capabilities-sec{ background:var(--forge); position:relative; overflow:hidden; }
.cap-bg-line{
  position:absolute; top:0; bottom:0; left:33%; width:1px;
  background:linear-gradient(transparent, var(--rule), transparent); opacity:.5;
}
.cap-bg-line2{
  position:absolute; top:0; bottom:0; left:66%; width:1px;
  background:linear-gradient(transparent, var(--rule), transparent); opacity:.3;
}
.cap-top{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px; }
.cap-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:rgba(255,255,255,.04);
}
.cap-card{
  background:var(--forge); padding:44px 36px; position:relative; overflow:hidden;
  transition:background .4s; display:block; color:inherit;
}
.cap-card::before{
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--alloy); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease-out);
}
.cap-card:hover{ background:rgba(255,255,255,.03); }
.cap-card:hover::before{ transform:scaleX(1); }
.cap-num{
  font-family:var(--f-mono); font-size:10px; letter-spacing:2px;
  color:rgba(196,146,42,.25); margin-bottom:28px; display:block;
}
.cap-icon-wrap{ width:52px; height:52px; margin-bottom:24px; }
.cap-icon-wrap svg{ width:100%; height:100%; }
.cap-name{
  font-family:var(--f-display); font-size:22px; font-weight:700; color:var(--white);
  margin-bottom:12px; line-height:1.2;
}
.cap-desc{ font-size:13px; color:rgba(255,255,255,.38); line-height:1.75; font-weight:300; margin-bottom:24px; }
.cap-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.cap-tag{
  font-family:var(--f-mono); font-size:9px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--alloy); border:1px solid rgba(196,146,42,.2); padding:4px 10px;
}
.cap-arrow{
  position:absolute; top:36px; right:36px;
  width:32px; height:32px; border:1px solid rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.2); font-size:14px;
  transition:all .3s;
}
.cap-card:hover .cap-arrow{ border-color:var(--alloy); color:var(--alloy); transform:translate(3px,-3px); }

/* ── PRODUCT SHOWCASE ── */
.products-sec{ background:var(--titanium); padding:120px 0; }
.prod-header{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:52px; }
.prod-filter-bar{ display:flex; gap:0; border-bottom:1px solid var(--rule-light); }
.pf-btn{
  padding:12px 24px; background:none; border:none;
  font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase;
  color:var(--wire); cursor:none; position:relative;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color .2s;
}
.pf-btn.on,.pf-btn:hover{ color:var(--forge); }
.pf-btn.on{ border-bottom-color:var(--alloy); }
.prod-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:3px;
  background:var(--rule-light);
}
.prod-item{
  position:relative; overflow:hidden; aspect-ratio:1;
  cursor:none;
}
.prod-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s var(--ease-out), filter .4s;
  filter:saturate(0.8);
}
.prod-item:hover img{ transform:scale(1.08); filter:saturate(1); }
.prod-overlay{
  position:absolute; inset:0;
  background:linear-gradient(transparent 50%, rgba(8,12,16,.88));
  opacity:0; transition:opacity .35s;
  display:flex; flex-direction:column; justify-content:flex-end; padding:20px;
}
.prod-item:hover .prod-overlay{ opacity:1; }
.po-cat{ font-family:var(--f-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); margin-bottom:4px; }
.po-name{ font-family:var(--f-display); font-size:17px; font-weight:700; color:var(--white); }
.prod-item.tall{ grid-row:span 2; aspect-ratio:auto; }
.prod-item.tall img{ height:100%; }

/* ── INDUSTRIES ── */
.industries-sec{ background:var(--white); padding:120px 0; }
.ind-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--rule-light); margin-top:64px; }
.ind-card{
  background:var(--white); padding:0; overflow:hidden; display:block;
  color:inherit; position:relative; transition:transform .4s var(--ease-out);
}
.ind-card:hover{ transform:translateY(-6px); z-index:2; box-shadow:0 24px 80px rgba(0,0,0,.12); }
.ind-img{ height:240px; overflow:hidden; }
.ind-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s; filter:grayscale(30%); }
.ind-card:hover .ind-img img{ transform:scale(1.06); filter:grayscale(0); }
.ind-body{ padding:32px 28px; border-top:2px solid var(--titanium-d); }
.ind-icon{ font-size:28px; margin-bottom:16px; }
.ind-name{ font-family:var(--f-display); font-size:24px; font-weight:700; color:var(--forge); margin-bottom:10px; }
.ind-text{ font-size:13px; color:var(--steel); line-height:1.75; font-weight:300; margin-bottom:20px; }
.ind-arrow{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); display:flex; align-items:center; gap:8px; transition:gap .3s; }
.ind-card:hover .ind-arrow{ gap:14px; }

/* ── QUALITY STRIP ── */
.quality-sec{ background:var(--forge-mid); padding:120px 0; position:relative; overflow:hidden; }
.q-decor{
  position:absolute; top:0; right:0; width:40%; height:100%;
  background:linear-gradient(to left, rgba(196,146,42,.03), transparent);
}
.quality-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.q-left .sec-title{ margin-bottom:24px; }
.q-left .sec-body{ margin-bottom:36px; color:rgba(255,255,255,.45); }
.cert-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; }
.c-chip{
  font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:var(--alloy); border:1px solid rgba(196,146,42,.3); padding:9px 18px; font-weight:600;
}
.q-steps{ display:flex; flex-direction:column; }
.q-step{ display:grid; grid-template-columns:44px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.05); align-items:start; }
.q-step:last-child{ border-bottom:none; }
.qs-n{ font-family:var(--f-display); font-size:30px; font-weight:900; color:rgba(196,146,42,.18); line-height:1; }
.qs-title{ font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--white); margin-bottom:5px; }
.qs-text{ font-size:12px; color:rgba(255,255,255,.35); line-height:1.7; font-weight:300; }

/* ── COUNTERS ── */
.counters-sec{ background:var(--forge); padding:80px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.counters-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:0; }
.cnt-item{
  text-align:center; padding:40px 24px;
  border-right:1px solid var(--rule);
}
.cnt-item:last-child{ border-right:none; }
.cnt-num{
  font-family:var(--f-display); font-size:52px; font-weight:900; color:var(--white);
  line-height:1; letter-spacing:-2px;
}
.cnt-num sup{ font-size:28px; color:var(--alloy); }
.cnt-label{ font-family:var(--f-mono); font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--wire); margin-top:8px; }

/* ── CTA BAND ── */
.cta-sec{
  padding:100px 0; background:var(--alloy);
  position:relative; overflow:hidden;
}
.cta-sec::before{
  content:'PRECISION'; position:absolute; top:50%; left:-40px;
  transform:translateY(-50%); font-family:var(--f-display); font-size:180px;
  font-weight:900; color:rgba(0,0,0,.06); white-space:nowrap; pointer-events:none;
  letter-spacing:-5px;
}
.cta-inner{ display:flex; justify-content:space-between; align-items:center; gap:60px; position:relative; z-index:1; }
.cta-title{ font-family:var(--f-display); font-size:clamp(32px,3.5vw,52px); font-weight:900; color:var(--forge); line-height:1.1; }
.cta-sub{ font-size:14px; color:rgba(8,12,16,.6); margin-top:10px; }
.cta-actions{ display:flex; gap:16px; align-items:center; flex-shrink:0; }
.btn-dark-solid{
  padding:15px 32px; background:var(--forge); color:var(--white);
  font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  display:inline-block; transition:all .3s;
}
.btn-dark-solid:hover{ background:var(--forge-mid); transform:translateY(-2px); }
.cta-tel{ font-size:15px; font-weight:600; color:var(--forge); opacity:.7; display:flex; align-items:center; gap:6px; transition:opacity .2s; }
.cta-tel:hover{ opacity:1; }

/* ── FOOTER ── */
footer{
  background:var(--forge); padding:80px 0 0;
  border-top:1px solid var(--rule);
}
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.05); }
.footer-logo{ font-family:var(--f-display); font-size:28px; font-weight:900; color:var(--white); letter-spacing:4px; margin-bottom:6px; }
.footer-logo span{ color:var(--alloy); }
.footer-tagline{ font-family:var(--f-mono); font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--wire); margin-bottom:18px; }
.footer-about{ font-size:13px; color:rgba(255,255,255,.28); line-height:1.8; font-weight:300; max-width:280px; margin-bottom:24px; }
.footer-cert-line{ font-family:var(--f-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); opacity:.7; }
.footer-h{ font-family:var(--f-mono); font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--alloy); margin-bottom:22px; opacity:.8; }
.footer-ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-ul a,.footer-ul span{ font-size:12px; color:rgba(255,255,255,.3); transition:color .2s; font-weight:300; line-height:1.5; display:block; }
.footer-ul a:hover{ color:var(--white); }
.footer-bottom{ padding:24px 0; display:flex; justify-content:space-between; align-items:center; }
.fb-copy{ font-size:11px; color:rgba(255,255,255,.15); letter-spacing:.5px; }
.fb-made{ font-size:11px; color:rgba(255,255,255,.15); }

/* ── MOBILE OVERLAY ── */
.mob-menu{
  position:fixed; inset:0; background:var(--forge); z-index:999;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .4s;
}
.mob-menu.open{ opacity:1; pointer-events:all; }
.mob-ul{ list-style:none; text-align:center; }
.mob-ul li{ margin:18px 0; }
.mob-ul a{ font-family:var(--f-display); font-size:36px; font-weight:700; color:rgba(255,255,255,.6); transition:color .2s; }
.mob-ul a:hover{ color:var(--white); }

/* ── SCROLL REVEAL ── */
[data-reveal]{
  opacity:0; transform:translateY(32px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
[data-reveal="left"]{ transform:translateX(-32px); }
[data-reveal="right"]{ transform:translateX(32px); }
[data-reveal].revealed{ opacity:1; transform:none; }

/* ── RESPONSIVE ── */
@media(max-width:1300px){
  .nav-tagline{ display:none; }
  .nav-menu a{ padding:10px 8px; font-size:10px; }
  .nav-cta{ padding:11px 18px; }
}
@media(max-width:1180px){
  .nav-menu,.nav-cta{ display:none; }
  .nav-burger{ display:flex; }
}
@media(max-width:1100px){
  .hero-body{ grid-template-columns:1fr; }
  .hero-right{ display:none; }
  .about-grid{ grid-template-columns:1fr; gap:60px; }
  .cap-grid{ grid-template-columns:1fr 1fr; }
  .counters-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:40px; }
}
@media(max-width:768px){
  .nav-menu,.nav-cta{ display:none; }
  .nav-burger{ display:flex; }
  .hero-h1{ font-size:52px; }
  .ind-grid{ grid-template-columns:1fr; }
  .cap-grid{ grid-template-columns:1fr; }
  .quality-grid{ grid-template-columns:1fr; }
  .cta-inner{ flex-direction:column; }
  .counters-grid{ grid-template-columns:1fr 1fr; }
  .prod-grid{ grid-template-columns:1fr 1fr; }
  .sec-inner{ padding:0 24px; }
  .footer-grid{ grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════
   INTERIOR PAGE ADDITIONS
══════════════════════════════════════════════════════ */

/* ── PAGE HERO (for all interior pages) ── */
.page-hero{
  position:relative; background:var(--forge); overflow:hidden;
  padding:200px 0 90px; min-height:0;
}
.page-hero .tol-line{ opacity:.14; }
.ph-grid{ position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:64px 64px;
}
.breadcrumb{ display:flex; align-items:center; gap:8px; margin-bottom:26px; position:relative; z-index:2; }
.breadcrumb a{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--wire); transition:color .2s; }
.breadcrumb a:hover{ color:var(--alloy); }
.breadcrumb-sep{ color:rgba(255,255,255,.2); font-size:10px; }
.breadcrumb-current{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); }
.ph-eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:22px; position:relative; z-index:2; }
.ph-title{
  font-family:var(--f-display); font-weight:900; color:var(--white);
  font-size:clamp(40px,5.5vw,76px); line-height:1; letter-spacing:-2px;
  position:relative; z-index:2; max-width:900px;
}
.ph-title em{ font-style:italic; color:var(--alloy); }
.ph-sub{ font-size:15px; font-weight:300; color:rgba(255,255,255,.5); line-height:1.8; max-width:620px; margin-top:22px; position:relative; z-index:2; }
.ph-corner{ position:absolute; width:26px; height:26px; border:1px solid rgba(196,146,42,.5); z-index:2; }
.ph-corner.tl{ top:150px; left:48px; border-right:none; border-bottom:none; }
.ph-corner.br{ bottom:40px; right:48px; border-left:none; border-top:none; }

/* ── TWO COL BODY (text + side panel) ── */
.split-sec{ display:grid; grid-template-columns:1.5fr 1fr; gap:80px; }
.split-sec .sec-body + .sec-body{ margin-top:18px; }
.side-panel{ background:var(--titanium); padding:36px 32px; border-left:2px solid var(--alloy); align-self:start; }
.side-panel-h{ font-family:var(--f-mono); font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--alloy); margin-bottom:18px; }
.side-list{ list-style:none; display:flex; flex-direction:column; gap:14px; }
.side-list li{ font-size:13px; color:var(--steel); display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--rule-light); padding-bottom:12px; }
.side-list li:last-child{ border-bottom:none; padding-bottom:0; }
.side-list b{ color:var(--forge); font-weight:600; font-family:var(--f-mono); font-size:12px; }

/* ── TIMELINE (About) ── */
.timeline{ position:relative; margin-top:40px; }
.timeline::before{ content:''; position:absolute; left:100px; top:0; bottom:0; width:1px; background:var(--rule-light); }
.tl-item{ display:grid; grid-template-columns:100px 1fr; gap:40px; position:relative; padding-bottom:56px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-year{ font-family:var(--f-display); font-size:22px; font-weight:900; color:var(--alloy); text-align:right; padding-top:2px; }
.tl-dot{ position:absolute; left:96px; top:8px; width:9px; height:9px; border-radius:50%; background:var(--alloy); box-shadow:0 0 0 4px var(--white),0 0 0 5px var(--rule-light); }
.tl-body{ padding-left:36px; }
.tl-title{ font-family:var(--f-display); font-size:20px; font-weight:700; color:var(--forge); margin-bottom:8px; }
.tl-text{ font-size:13px; color:var(--steel); line-height:1.8; font-weight:300; max-width:560px; }

/* ── VALUES / FEATURE GRID ── */
.value-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule-light); margin-top:56px; }
.value-card{ background:var(--white); padding:40px 32px; }
.value-num{ font-family:var(--f-mono); font-size:11px; color:var(--alloy); letter-spacing:2px; margin-bottom:20px; display:block; }
.value-title{ font-family:var(--f-display); font-size:19px; font-weight:700; color:var(--forge); margin-bottom:12px; }
.value-text{ font-size:13px; color:var(--steel); line-height:1.75; font-weight:300; }

/* ── SPEC TABLE ── */
.spec-table{ width:100%; border-collapse:collapse; margin-top:8px; }
.spec-table tr{ border-bottom:1px solid var(--rule-light); }
.spec-table tr:last-child{ border-bottom:none; }
.spec-table td{ padding:18px 8px; font-size:13px; color:var(--steel); font-weight:300; }
.spec-table td:first-child{ font-family:var(--f-mono); font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--forge); font-weight:600; width:44%; }
.spec-table.dark tr{ border-bottom-color:rgba(255,255,255,.07); }
.spec-table.dark td{ color:rgba(255,255,255,.45); }
.spec-table.dark td:first-child{ color:var(--white); }

/* ── PROCESS STEPS (horizontal) ── */
.hproc{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:60px; position:relative; }
.hproc::before{ content:''; position:absolute; top:26px; left:6%; right:6%; height:1px; background:var(--rule-light); }
.hproc-step{ text-align:center; padding:0 20px; position:relative; }
.hproc-n{ width:52px; height:52px; border-radius:50%; background:var(--white); border:1px solid var(--alloy); color:var(--alloy);
  font-family:var(--f-display); font-weight:900; font-size:18px; display:flex; align-items:center; justify-content:center; margin:0 auto 24px; position:relative; z-index:1; }
.hproc-t{ font-family:var(--f-display); font-size:16px; font-weight:700; color:var(--forge); margin-bottom:10px; }
.hproc-d{ font-size:12px; color:var(--steel); line-height:1.7; font-weight:300; }

/* ── MATERIAL / TAG PILL GRID ── */
.pill-grid{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.pill{ font-family:var(--f-mono); font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--forge); border:1px solid var(--rule-light); padding:10px 18px; font-weight:600; }
.pill.dark{ color:var(--white); border-color:rgba(255,255,255,.12); }

/* ── APPLICATIONS GRID (industry pages) ── */
.app-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--rule-light); margin-top:56px; }
.app-card{ background:var(--white); padding:36px 30px; }
.app-icon{ font-size:24px; margin-bottom:18px; }
.app-title{ font-family:var(--f-display); font-size:17px; font-weight:700; color:var(--forge); margin-bottom:10px; }
.app-text{ font-size:12.5px; color:var(--steel); line-height:1.7; font-weight:300; }

/* ── CERT BADGE (Certifications page) ── */
.badge-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--rule-light); margin-top:56px; }
.badge-card{ background:var(--forge-soft); padding:48px 36px; text-align:center; }
.badge-ring{ width:96px; height:96px; border:1.5px solid var(--alloy); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 28px; position:relative; }
.badge-ring::before{ content:''; position:absolute; inset:8px; border:1px solid rgba(196,146,42,.3); border-radius:50%; }
.badge-ring span{ font-family:var(--f-display); font-weight:900; font-size:13px; color:var(--alloy); letter-spacing:.5px; }
.badge-name{ font-family:var(--f-display); font-size:19px; font-weight:700; color:var(--white); margin-bottom:10px; }
.badge-text{ font-size:12.5px; color:rgba(255,255,255,.4); line-height:1.75; font-weight:300; }

/* ── GALLERY ── */
.gal-filter{ display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--rule-light); margin-bottom:2px; }
.gal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:3px; background:var(--rule-light); }
.gal-item{ position:relative; overflow:hidden; aspect-ratio:4/3; cursor:none; background:var(--forge-mid); }
.gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease-out); }
.gal-item:hover img{ transform:scale(1.08); }
.gal-overlay{ position:absolute; inset:0; background:linear-gradient(transparent 40%,rgba(8,12,16,.9)); opacity:0; transition:opacity .35s; display:flex; flex-direction:column; justify-content:flex-end; padding:22px; }
.gal-item:hover .gal-overlay{ opacity:1; }
.gal-cat{ font-family:var(--f-mono); font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--alloy); margin-bottom:5px; }
.gal-name{ font-family:var(--f-display); font-size:16px; font-weight:700; color:var(--white); }

/* ── CLIENTS ── */
.logo-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule-light); margin-top:56px; }
.logo-card{ background:var(--white); height:140px; display:flex; align-items:center; justify-content:center; padding:20px; transition:background .3s; }
.logo-card:hover{ background:var(--titanium); }
.logo-mark{ font-family:var(--f-display); font-weight:700; font-size:20px; color:var(--steel); letter-spacing:1px; text-align:center; }
.testi-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--rule-light); margin-top:24px; }
.testi-card{ background:var(--white); padding:44px 40px; }
.testi-mark{ font-family:var(--f-display); font-size:56px; color:rgba(196,146,42,.25); line-height:1; margin-bottom:10px; }
.testi-text{ font-size:15px; color:var(--forge); line-height:1.85; font-weight:400; font-style:italic; margin-bottom:26px; }
.testi-name{ font-size:13px; font-weight:700; color:var(--forge); }
.testi-role{ font-family:var(--f-mono); font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--alloy); margin-top:3px; }

/* ── CAREERS ── */
.job-list{ display:flex; flex-direction:column; margin-top:24px; }
.job-item{ display:grid; grid-template-columns:1fr auto auto auto; align-items:center; gap:28px; padding:28px 32px; border-bottom:1px solid var(--rule-light); transition:background .25s; }
.job-item:hover{ background:var(--titanium); }
.job-title{ font-family:var(--f-display); font-size:18px; font-weight:700; color:var(--forge); }
.job-dept{ font-family:var(--f-mono); font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--wire); }
.job-type{ font-family:var(--f-mono); font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--alloy); border:1px solid rgba(196,146,42,.3); padding:6px 14px; white-space:nowrap; }
.job-apply{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--forge); display:flex; align-items:center; gap:8px; white-space:nowrap; }
.perk-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule-light); margin-top:56px; }
.perk-card{ background:var(--white); padding:36px 26px; text-align:center; }
.perk-icon{ font-size:26px; margin-bottom:16px; }
.perk-title{ font-family:var(--f-display); font-size:15px; font-weight:700; color:var(--forge); margin-bottom:8px; }
.perk-text{ font-size:12px; color:var(--steel); line-height:1.6; font-weight:300; }

/* ── CONTACT ── */
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:0; background:var(--white); }
.contact-info{ padding:80px 64px; background:var(--forge); }
.ci-block{ margin-bottom:36px; }
.ci-label{ font-family:var(--f-mono); font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--alloy); margin-bottom:10px; }
.ci-value{ font-size:16px; color:var(--white); font-weight:400; line-height:1.6; }
.ci-value a{ color:var(--white); border-bottom:1px solid rgba(255,255,255,.2); transition:border-color .2s; }
.ci-value a:hover{ border-color:var(--alloy); }
.contact-form-wrap{ padding:80px 64px; }
.f-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.f-group{ margin-bottom:24px; }
.f-label{ font-family:var(--f-mono); font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--wire); margin-bottom:10px; display:block; }
.f-input,.f-textarea,.f-select{
  width:100%; border:none; border-bottom:1px solid var(--rule-light); padding:12px 4px;
  font-family:var(--f-body); font-size:14px; color:var(--forge); background:transparent;
  transition:border-color .3s;
}
.f-input:focus,.f-textarea:focus,.f-select:focus{ outline:none; border-bottom-color:var(--alloy); }
.f-textarea{ resize:vertical; min-height:100px; }
.f-submit{
  padding:16px 40px; background:var(--forge); color:var(--white); border:none;
  font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; cursor:none;
  transition:all .3s; margin-top:8px;
}
.f-submit:hover{ background:var(--alloy); color:var(--forge); }
.map-frame{ width:100%; height:420px; border:0; filter:grayscale(.3) contrast(1.05); display:block; }
.hours-strip{ display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.06); font-size:13px; }
.hours-strip span:first-child{ color:rgba(255,255,255,.4); }
.hours-strip span:last-child{ color:var(--white); font-family:var(--f-mono); font-size:12px; }
.wa-btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 26px; background:#25D366; color:#08120C; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin-top:8px; }

/* ── NAV LABEL (dropdown parent without own page) ── */
.nav-drop > span.nav-parent-label{
  display:block; padding:10px 14px; cursor:none;
  font-size:11px; font-weight:500; letter-spacing:1.5px; text-transform:uppercase;
  color:rgba(255,255,255,.65); transition:color .2s;
}
.nav-drop:hover span.nav-parent-label{ color:var(--white); }

/* ── RESPONSIVE ADDITIONS ── */
@media(max-width:1100px){
  .split-sec{ grid-template-columns:1fr; gap:48px; }
  .value-grid{ grid-template-columns:1fr 1fr; }
  .app-grid{ grid-template-columns:1fr 1fr; }
  .badge-grid{ grid-template-columns:1fr 1fr; }
  .gal-grid{ grid-template-columns:1fr 1fr; }
  .logo-grid{ grid-template-columns:1fr 1fr; }
  .testi-grid{ grid-template-columns:1fr; }
  .perk-grid{ grid-template-columns:1fr 1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr 1fr; }
}
@media(max-width:768px){
  .value-grid,.app-grid,.badge-grid,.gal-grid,.logo-grid,.perk-grid{ grid-template-columns:1fr; }
  .timeline::before{ left:60px; }
  .tl-item{ grid-template-columns:60px 1fr; gap:20px; }
  .tl-dot{ left:56px; }
  .hproc{ grid-template-columns:1fr; gap:40px; }
  .hproc::before{ display:none; }
  .f-row{ grid-template-columns:1fr; }
  .contact-info,.contact-form-wrap{ padding:56px 28px; }
  .job-item{ grid-template-columns:1fr; text-align:left; gap:10px; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
