/* =========================================================
   LDS ENGINEERING SOLUTIONS — LAND DEFENCE
   Design tokens
   ========================================================= */
:root{
  /* Color */
  --bg-0:#0a0d12;        /* deepest background */
  --bg-1:#10141b;        /* base page background */
  --bg-2:#161b23;        /* panel */
  --bg-3:#1c222c;        /* panel raised / hover */
  --line:#262e39;        /* hairline border */
  --line-soft:#1c222b;
  --brass:#c9962e;       /* primary accent (brass/gold) */
  --brass-hi:#e8b757;    /* accent highlight */
  --brass-dim:#8a6a26;
  --text-0:#eef1f4;      /* primary text */
  --text-1:#aab3bf;      /* secondary text */
  --text-2:#6d7684;      /* tertiary / muted */
  --ok-green:#5a9c6f;

  /* Type */
  --f-display:'Oswald', 'Arial Narrow', sans-serif;
  --f-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --f-mono:'JetBrains Mono', 'Consolas', monospace;

  /* Layout */
  --maxw:1280px;
  --radius:2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg-1);
  color:var(--text-0);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:600;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0;
  color:var(--text-0);
}
p{margin:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

::selection{background:var(--brass);color:#0a0d12;}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--brass-hi);
  outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

/* =========================================================
   EYEBROW / MONO LABELS  (signature: schematic data-tag)
   ========================================================= */
.eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brass);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{
  content:"";
  width:22px;height:1px;background:var(--brass);
  display:inline-block;
}
.eyebrow .idx{color:var(--text-2);}

/* =========================================================
   HEADER / NAV
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(10,13,18,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.brand{display:flex; align-items:center; gap:14px;}
.brand-mark{
  width:44px;height:44px;
  border:1px solid var(--brass);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);
  font-weight:700; color:var(--brass); font-size:15px;
  flex:none;
}
.brand-text .name{
  font-family:var(--f-display); font-size:19px; letter-spacing:.03em; line-height:1;
  color:var(--text-0);
}
.brand-text .tag{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.14em; color:var(--text-2);
  margin-top:4px; text-transform:uppercase;
}
.brand-text .tag2{color:var(--brass);}

.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{
  font-family:var(--f-mono);
  font-size:12.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-1);
  padding:8px 0;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.nav-links a:hover{color:var(--text-0);}
.nav-links a.active{color:var(--brass); border-color:var(--brass);}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--f-mono);
  font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  padding:13px 22px;
  border:1px solid var(--brass);
  color:var(--brass);
  background:transparent;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn:hover{background:var(--brass); color:#0a0d12;}
.btn-solid{background:var(--brass); color:#0a0d12;}
.btn-solid:hover{background:var(--brass-hi); border-color:var(--brass-hi); color:#0a0d12;}
.btn-ghost{border-color:var(--line); color:var(--text-0);}
.btn-ghost:hover{border-color:var(--text-0); background:transparent; color:var(--text-0);}
.btn-block{width:100%; justify-content:center;}

.menu-toggle{display:none; background:none; border:none; color:var(--text-0); cursor:pointer;}

/* Mobile nav */
@media (max-width:960px){
  .nav-links{
    position:fixed; inset:76px 0 0 0; background:var(--bg-0);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:10px 32px 30px;
    border-top:1px solid var(--line);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }
  .nav-links.open{transform:translateY(0); opacity:1; pointer-events:auto;}
  .nav-links a{width:100%; padding:16px 0; border-bottom:1px solid var(--line-soft);}
  .nav-cta{display:none;}
  .menu-toggle{display:block;}
}

/* =========================================================
   HERO (corner-bracket / schematic frame signature)
   ========================================================= */
.hero{
  position:relative;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(ellipse 900px 500px at 82% 20%, rgba(201,150,46,.08), transparent 60%),
    var(--bg-1);
  overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:56px;
  align-items:center;
  padding:96px 0 72px;
}
.hero h1{
  font-size:clamp(34px,4.4vw,58px);
  line-height:1.04;
}
.hero h1 .accent{color:var(--brass);}
.hero .sub{
  font-family:var(--f-mono); font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-1); margin-top:20px;
}
.hero .desc{
  color:var(--text-1); max-width:52ch; margin-top:18px; font-size:16px;
}
.hero-actions{display:flex; gap:16px; margin-top:34px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:36px; margin-top:44px; flex-wrap:wrap;}
.hero-stats .stat{display:flex; align-items:center; gap:10px;}
.hero-stats .stat svg{flex:none; color:var(--brass);}
.hero-stats .stat span{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-1);
}

.hero-visual{position:relative;}
.frame{
  position:relative; border:1px solid var(--line); background:var(--bg-2);
  padding:10px;
}
.frame img{width:100%; height:420px; object-fit:cover; filter:saturate(.92) contrast(1.05);}
.frame::before,.frame::after,
.frame .c-tl,.frame .c-br{
  content:""; position:absolute; width:22px; height:22px; border-color:var(--brass); border-style:solid;
}
.frame::before{top:-1px; left:-1px; border-width:2px 0 0 2px;}
.frame::after{bottom:-1px; right:-1px; border-width:0 2px 2px 0;}
.hud-tag{
  position:absolute; font-family:var(--f-mono); font-size:10px; letter-spacing:.1em;
  color:var(--brass); background:rgba(10,13,18,.82); border:1px solid var(--line);
  padding:6px 10px; text-transform:uppercase;
}
.hud-tl{top:24px; left:24px;}
.hud-br{bottom:24px; right:24px; text-align:right;}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr; padding:56px 0 48px;}
  .frame img{height:280px;}
}

/* =========================================================
   SECTION HELPERS
   ========================================================= */
section{padding:88px 0;}
.section-alt{background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:48px; flex-wrap:wrap;}
.section-head h2{font-size:clamp(26px,3vw,38px); line-height:1.1;}
.section-head .lead{color:var(--text-1); max-width:56ch; margin-top:14px; font-size:15.5px;}
.link-arrow{
  font-family:var(--f-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--brass); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
}
.link-arrow:hover{color:var(--brass-hi);}

/* Page header (interior pages) */
.page-hero{
  padding:64px 0 48px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--bg-2), var(--bg-1));
}
.page-hero .eyebrow{margin-bottom:18px;}
.page-hero h1{font-size:clamp(30px,4vw,46px);}
.page-hero .desc{color:var(--text-1); max-width:70ch; margin-top:16px; font-size:15.5px;}
.breadcrumb{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-2); margin-bottom:22px;
}
.breadcrumb a{color:var(--text-2);}
.breadcrumb a:hover{color:var(--brass);}
.breadcrumb .sep{margin:0 8px; color:var(--line);}
.breadcrumb .here{color:var(--brass);}

/* =========================================================
   CAPABILITY / FEATURE CARDS
   ========================================================= */
.grid-5{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}

.cap-card{
  background:var(--bg-1); padding:34px 28px; transition:background .15s ease;
}
.cap-card:hover{background:var(--bg-2);}
.cap-icon{
  width:46px; height:46px; border:1px solid var(--brass-dim); color:var(--brass);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
}
.cap-card h3{font-size:15.5px; margin-bottom:12px; line-height:1.3;}
.cap-card p{color:var(--text-1); font-size:14px; line-height:1.6; margin-bottom:18px;}
.cap-card .link-arrow{font-size:11px;}

@media (max-width:1100px){ .grid-5{grid-template-columns:repeat(3,1fr);} .grid-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:680px){ .grid-5,.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;} }

/* =========================================================
   PROCESS STRIP
   ========================================================= */
.process-row{display:flex; align-items:flex-start; gap:0; overflow-x:auto; padding-bottom:8px;}
.process-step{flex:1 1 0; min-width:110px; text-align:center; position:relative; padding:0 6px;}
.process-step .node{
  width:56px; height:56px; border-radius:50%; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
  color:var(--brass); background:var(--bg-2);
}
.process-step .num{font-family:var(--f-mono); color:var(--brass); font-size:13px; letter-spacing:.06em;}
.process-step .lbl{font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-1); margin-top:4px;}
.process-arrow{align-self:center; color:var(--text-2); flex:none; margin-top:22px;}
@media (max-width:900px){ .process-row{flex-direction:column; align-items:stretch;} .process-arrow{display:none;} .process-step{display:flex; align-items:center; gap:16px; text-align:left; padding:14px 0; border-bottom:1px solid var(--line-soft);} .process-step .node{margin:0;} }

/* =========================================================
   VEHICLE / PROJECT CARDS
   ========================================================= */
.veh-card{background:var(--bg-1); border:1px solid var(--line); overflow:hidden; display:flex; flex-direction:column;}
.veh-card .thumb{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--bg-3);}
.veh-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.veh-card:hover .thumb img{transform:scale(1.05);}
.veh-card .thumb .tag{position:absolute; top:12px; left:12px; background:rgba(10,13,18,.85); border:1px solid var(--brass-dim); color:var(--brass); font-family:var(--f-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:5px 9px;}
.veh-card .body{padding:22px 22px 26px;}
.veh-card h3{font-size:15px; margin-bottom:8px;}
.veh-card p{color:var(--text-1); font-size:13.5px; line-height:1.55;}

.cards-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:1100px){ .cards-row{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .cards-row{grid-template-columns:1fr;} }

/* =========================================================
   LOGOS / TOOLS STRIP
   ========================================================= */
.logo-strip{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:36px; padding:36px 0;}
.logo-strip .lg{
  font-family:var(--f-display); letter-spacing:.06em; color:var(--text-2); font-size:20px; text-transform:uppercase;
  transition:color .15s ease;
}
.logo-strip .lg:hover{color:var(--text-0);}

/* =========================================================
   STAT BLOCKS
   ========================================================= */
.stat-block{padding:34px 28px; background:var(--bg-1); text-align:left;}
.stat-block .num{font-family:var(--f-display); font-size:44px; color:var(--brass); line-height:1;}
.stat-block .lbl{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-1); margin-top:10px;}

/* =========================================================
   TABLE-STYLE SPEC LIST (about / capability detail)
   ========================================================= */
.spec-list{border-top:1px solid var(--line);}
.spec-row{display:flex; justify-content:space-between; gap:24px; padding:16px 0; border-bottom:1px solid var(--line);}
.spec-row .k{font-family:var(--f-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-2);}
.spec-row .v{color:var(--text-0); font-size:14.5px; text-align:right; max-width:60%;}

/* =========================================================
   TIMELINE (about page)
   ========================================================= */
.timeline{border-left:1px solid var(--line); margin-left:6px;}
.tl-item{position:relative; padding:0 0 44px 34px;}
.tl-item::before{content:""; position:absolute; left:-6px; top:2px; width:11px; height:11px; background:var(--bg-1); border:2px solid var(--brass); border-radius:50%;}
.tl-item .yr{font-family:var(--f-mono); color:var(--brass); font-size:13px; letter-spacing:.08em; margin-bottom:6px; display:block;}
.tl-item h4{font-size:16px; margin-bottom:8px;}
.tl-item p{color:var(--text-1); font-size:14px; max-width:60ch;}

/* =========================================================
   VALUES / TEAM GRID (about page)
   ========================================================= */
.value-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:800px){ .value-grid{grid-template-columns:1fr;} }

/* =========================================================
   FORMS (contact / careers)
   ========================================================= */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:20px;}
.field.full{grid-column:1/-1;}
.field label{font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-1);}
.field input, .field select, .field textarea{
  background:var(--bg-2); border:1px solid var(--line); color:var(--text-0);
  padding:13px 14px; font-family:var(--f-body); font-size:14.5px; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--brass); outline:none;}
.field textarea{resize:vertical; min-height:120px;}
@media (max-width:700px){ .form-grid{grid-template-columns:1fr;} }

/* =========================================================
   JOB LISTINGS (careers page)
   ========================================================= */
.job-row{
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:26px 0; border-bottom:1px solid var(--line); flex-wrap:wrap;
}
.job-row .meta{display:flex; gap:14px; margin-top:8px; flex-wrap:wrap;}
.job-row .meta span{font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-2); border:1px solid var(--line); padding:4px 9px;}
.job-row h3{font-size:16.5px;}

/* =========================================================
   CTA BAND
   ========================================================= */
.cta-band{
  background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:64px 0;
}
.cta-band .row{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;}
.cta-band h2{font-size:clamp(22px,2.8vw,32px); max-width:20ch;}

/* =========================================================
   FOOTER
   ========================================================= */
footer{background:var(--bg-0); border-top:1px solid var(--line); padding:64px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line);}
.foot-brand .brand{margin-bottom:16px;}
.foot-brand p{color:var(--text-2); font-size:13.5px; max-width:34ch;}
.foot-col h4{font-family:var(--f-mono); font-size:11.5px; letter-spacing:.1em; color:var(--text-1); margin-bottom:18px; text-transform:uppercase;}
.foot-col ul li{margin-bottom:11px;}
.foot-col a{color:var(--text-2); font-size:13.5px;}
.foot-col a:hover{color:var(--brass);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:12px;}
.foot-bottom p{color:var(--text-2); font-family:var(--f-mono); font-size:11.5px;}
.foot-bottom .legal{display:flex; gap:20px;}
@media (max-width:900px){ .foot-grid{grid-template-columns:1fr 1fr; gap:32px;} }
@media (max-width:560px){ .foot-grid{grid-template-columns:1fr;} }
