:root{
  --navy:#0C2340;
  --navy-deep:#071526;
  --bronze:#B08D57;
  --bronze-deep:#8F6F42;
  --white:#FFFFFF;
  --off-white:#F7F6F3;
  --charcoal:#1C1F24;
  --stone:#6B6E72;
  --stone-light:#8B8D8F;
  --border:#DAD7CF;
  --border-dark:rgba(176,141,87,0.22);
  --max:1240px;
  --gutter:clamp(24px, 5vw, 80px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--white); color:var(--charcoal);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.head{ font-family:'Archivo', sans-serif; font-weight:600; margin:0; letter-spacing:-0.01em; }
p{margin:0;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit;}
img,svg{display:block; max-width:100%;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--bronze); outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
.max{ max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.eyebrow{ font-size:0.78rem; letter-spacing:0.02em; color:var(--bronze-deep); margin-bottom:16px; font-weight:600; }
.eyebrow.on-dark{ color:var(--bronze); }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:rgba(255,255,255,0.94); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);
}
.nav-inner{ max-width:var(--max); margin:0 auto; padding:20px var(--gutter); display:flex; align-items:center; justify-content:space-between; }
.wordmark{
  font-family:'Archivo', sans-serif; font-size:1.55rem; font-weight:700; letter-spacing:0.01em; color:var(--navy);
  position:relative; display:inline-block; padding-bottom:8px;
}
.wordmark::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--bronze);
}
.nav-links{ display:flex; align-items:center; gap:34px; }
.nav-links a{ font-size:0.88rem; color:var(--charcoal); padding:6px 0; border-bottom:1px solid transparent; transition:border-color 0.2s, color 0.2s; }
.nav-links a:hover, .nav-links a.current{ color:var(--bronze-deep); border-color:var(--bronze); }
.lang-toggle{ display:flex; gap:2px; background:none; border:1px solid var(--border); padding:4px; }
.lang-toggle button{ background:none; border:none; padding:4px 9px; font-size:0.78rem; color:var(--stone); cursor:pointer; }
.lang-toggle button.active{ background:var(--navy); color:var(--white); }
.nav-toggle{ display:none; }
@media (max-width:860px){
  .nav-links{ position:fixed; top:64px; left:0; right:0; background:var(--white); flex-direction:column; align-items:flex-start; gap:0; max-height:0; overflow:hidden; transition:max-height 0.3s ease; border-bottom:1px solid var(--border); }
  .nav-links.open{ max-height:460px; }
  .nav-links a{ padding:16px var(--gutter); width:100%; border-bottom:1px solid var(--border); }
  .lang-toggle{ margin:16px var(--gutter) 20px; }
  .nav-toggle{ display:block; background:none; border:none; cursor:pointer; width:26px; height:18px; position:relative; }
  .nav-toggle span, .nav-toggle::before, .nav-toggle::after{ content:""; position:absolute; left:0; right:0; height:2px; background:var(--navy); }
  .nav-toggle::before{ top:0; } .nav-toggle span{ top:8px; } .nav-toggle::after{ top:16px; }
}

/* ---------- HERO (home) ---------- */
.hero{ position:relative; background:var(--navy); color:var(--white); padding:calc(var(--gutter) * 2.6) 0 calc(var(--gutter) * 1.6); overflow:hidden; }
.hero-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); position:relative; z-index:2; }
.hero h1{ font-size:clamp(2.3rem, 4.6vw, 3.9rem); line-height:1.14; max-width:16ch; color:var(--white); }
.hero-sub{ font-size:clamp(1.02rem, 1.5vw, 1.2rem); color:rgba(255,255,255,0.78); max-width:50ch; margin-top:26px; font-weight:400; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; margin-top:40px; }
.btn{ display:inline-block; padding:13px 26px; font-size:0.88rem; font-weight:600; border:1px solid var(--bronze); transition:background 0.2s, color 0.2s; cursor:pointer; }
.btn-solid{ background:var(--bronze); color:var(--navy-deep); }
.btn-solid:hover{ background:var(--bronze-deep); border-color:var(--bronze-deep); }
.btn-outline{ color:var(--white); }
.btn-outline:hover{ background:rgba(255,255,255,0.08); }
.geo{ position:absolute; right:0; top:0; bottom:0; width:52%; opacity:0.5; pointer-events:none; }
@media (max-width:900px){ .geo{ width:100%; opacity:0.2; } }

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{ background:var(--navy); color:var(--white); padding:calc(var(--gutter) * 2.2) 0 calc(var(--gutter) * 1.3); position:relative; overflow:hidden; }
.page-hero-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); position:relative; z-index:2; }
.page-hero h1{ font-size:clamp(2rem, 4vw, 3.1rem); color:var(--white); max-width:20ch; line-height:1.16; }
.page-hero-sub{ font-size:1.05rem; color:rgba(255,255,255,0.75); max-width:54ch; margin-top:20px; }
.geo-small{ position:absolute; right:0; top:0; bottom:0; width:40%; opacity:0.35; pointer-events:none; }
@media (max-width:900px){ .geo-small{ width:80%; opacity:0.15; } }

/* ---------- CHALLENGE ---------- */
.challenge{ padding:calc(var(--gutter) * 1.7) 0; border-bottom:1px solid var(--border); }
.challenge-grid{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:start; }
.challenge h2{ font-size:clamp(1.5rem, 2.8vw, 2.15rem); line-height:1.28; max-width:20ch; }
.risk-list{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--border); }
.risk-list li{ font-size:0.92rem; color:var(--stone); padding:13px 0; border-bottom:1px solid var(--border); }
.risk-list li:nth-child(odd){ padding-right:20px; }
@media (max-width:820px){ .challenge-grid{ grid-template-columns:1fr; gap:32px; } .risk-list{ grid-template-columns:1fr; } }

/* ---------- WHAT WE DO / SERVICES ---------- */
.services{ padding:calc(var(--gutter) * 1.7) 0; background:var(--off-white); border-bottom:1px solid var(--border); }
.services-head{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); margin-bottom:44px; }
.services-head h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:22ch; }
.services-grid{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border); }
.svc{ background:var(--off-white); padding:30px 22px; display:flex; flex-direction:column; gap:14px; }
.svc .idx{ font-size:0.78rem; color:var(--bronze-deep); font-weight:600; }
.svc h3{ font-size:1rem; letter-spacing:0.01em; }
.svc p{ font-size:0.85rem; color:var(--stone); }
@media (max-width:1080px){ .services-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .services-grid{ grid-template-columns:1fr; } }
.chips{ max-width:var(--max); margin:36px auto 0; padding:0 var(--gutter); display:flex; flex-wrap:wrap; gap:9px; }
.chip{ font-size:0.76rem; color:var(--stone); border:1px solid var(--border); padding:7px 13px; }

/* ---------- CAPABILITY DETAIL (Expertise hub page) ---------- */
.cap-detail{ border-top:1px solid var(--border); padding:44px 0; }
.cap-detail:last-child{ border-bottom:1px solid var(--border); }
.cap-detail-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:0.5fr 1fr; gap:48px; }
.cap-detail .num{ font-family:'Archivo', sans-serif; font-size:0.8rem; color:var(--bronze-deep); font-weight:700; }
.cap-detail h3{ font-size:1.3rem; margin-top:10px; }
.cap-detail p{ font-size:0.96rem; color:var(--stone); max-width:56ch; margin-top:6px; }
.cap-detail .includes{ margin-top:18px; display:flex; flex-wrap:wrap; gap:8px; }
@media (max-width:820px){ .cap-detail-inner{ grid-template-columns:1fr; gap:16px; } }

/* ---------- WHY MOCS ---------- */
.why{ padding:calc(var(--gutter) * 1.7) 0; }
.why-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.why-top{ display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-bottom:48px; align-items:start; }
.why h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:16ch; }
.why-top p{ font-size:1.02rem; color:var(--stone); max-width:42ch; }
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); border:1px solid var(--border); }
.pillar{ background:var(--white); padding:26px 22px; }
.pillar .idx{ width:28px; height:2px; background:var(--bronze); margin-bottom:16px; }
.pillar h4{ font-size:0.86rem; letter-spacing:0.02em; margin-bottom:8px; }
.pillar p{ font-size:0.84rem; color:var(--stone); }
@media (max-width:900px){ .why-top{ grid-template-columns:1fr; gap:28px; } .pillars{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .pillars{ grid-template-columns:1fr; } }

/* ---------- INDUSTRIES ---------- */
.industries{ padding:calc(var(--gutter) * 1.7) 0; background:var(--navy); color:var(--white); }
.industries-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.industries h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:20ch; margin-bottom:44px; color:var(--white); }
.ind-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.14); }
.ind{ background:var(--navy); padding:28px 22px; min-height:180px; display:flex; flex-direction:column; justify-content:space-between; }
.ind h3{ font-size:0.98rem; color:var(--white); letter-spacing:0.01em; }
.ind p{ font-size:0.84rem; color:rgba(255,255,255,0.65); margin-top:14px; }
.ind a{ display:block; }
@media (max-width:900px){ .ind-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ind-grid{ grid-template-columns:1fr; } }

/* ---------- INDUSTRY DETAIL (Industries page) ---------- */
.ind-detail{ border-top:1px solid var(--border); padding:48px 0; }
.ind-detail:last-child{ border-bottom:1px solid var(--border); }
.ind-detail-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:0.5fr 1fr; gap:48px; }
.ind-detail h3{ font-size:1.35rem; }
.ind-detail .msg{ font-size:1rem; color:var(--navy); margin-top:10px; font-weight:500; }
.subcats{ margin-top:20px; display:flex; flex-wrap:wrap; gap:8px; }
.subcat{ font-size:0.78rem; color:var(--stone); border:1px solid var(--border); padding:6px 12px; }
@media (max-width:820px){ .ind-detail-inner{ grid-template-columns:1fr; gap:16px; } }

/* ---------- TRACK RECORD ---------- */
.track{ padding:calc(var(--gutter) * 1.7) 0; border-bottom:1px solid var(--border); }
.track-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.track h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:20ch; margin-bottom:12px; }
.track-sub{ font-size:0.95rem; color:var(--stone); max-width:52ch; margin-bottom:40px; }
.stat-box{ border:1px dashed var(--bronze); padding:22px 26px; display:inline-flex; flex-direction:column; gap:6px; margin-bottom:48px; }
.stat-box .num{ font-family:'Archivo', sans-serif; font-size:1.6rem; font-weight:700; color:var(--navy); }
.stat-box .lbl{ font-size:0.82rem; color:var(--stone); }
.stat-box .flag{ font-size:0.72rem; color:var(--bronze-deep); font-weight:600; margin-top:4px; }
.cases{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--border); border:1px solid var(--border); }
.case{ background:var(--white); padding:30px clamp(18px,3vw,32px); }
.case .client{ font-size:0.8rem; color:var(--bronze-deep); margin-bottom:10px; font-weight:600; }
.case h4{ font-size:1.02rem; margin-bottom:16px; font-weight:600; }
.case dl{ display:flex; flex-direction:column; gap:12px; margin:0; }
.case dt{ font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--stone-light); font-weight:600; }
.case dd{ margin:2px 0 0; font-size:0.88rem; color:var(--stone); }
@media (max-width:820px){ .cases{ grid-template-columns:1fr; } }

/* ---------- APPROACH ---------- */
.approach{ padding:calc(var(--gutter) * 1.7) 0; background:var(--off-white); border-bottom:1px solid var(--border); }
.approach-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.approach h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:20ch; margin-bottom:44px; }
.steps{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--border); }
.step{ background:var(--off-white); padding:22px 16px; }
.step .num{ font-family:'Archivo', sans-serif; font-size:0.82rem; color:var(--bronze-deep); font-weight:700; margin-bottom:14px; }
.step h4{ font-size:0.86rem; margin-bottom:10px; letter-spacing:0.01em; }
.step p{ font-size:0.78rem; color:var(--stone); }
@media (max-width:980px){ .steps{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .steps{ grid-template-columns:1fr 1fr; } }

/* ---------- SRI ---------- */
.sri{ padding:calc(var(--gutter) * 1.9) 0; background:var(--navy); color:var(--white); position:relative; overflow:hidden; }
.sri-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:center; }
.sri h2{ font-size:clamp(1.7rem, 3.2vw, 2.5rem); color:var(--white); max-width:16ch; line-height:1.2; }
.sri p{ font-size:1rem; color:rgba(255,255,255,0.75); max-width:44ch; margin-top:20px; }
.sri-result{ font-family:'Archivo', sans-serif; font-size:1.1rem; color:var(--bronze); margin-top:28px; font-weight:600; }
@media (max-width:860px){ .sri-inner{ grid-template-columns:1fr; gap:24px; } }

/* ---------- INSIGHTS ---------- */
.insights{ padding:calc(var(--gutter) * 1.7) 0; border-bottom:1px solid var(--border); }
.insights-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.insights-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:40px; flex-wrap:wrap; }
.insights h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); max-width:20ch; }
.insights-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); }
.article{ background:var(--white); padding:26px 22px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between; }
.article .tag{ font-size:0.72rem; color:var(--bronze-deep); font-weight:600; }
.article h4{ font-size:0.96rem; margin-top:14px; line-height:1.35; font-weight:600; }
.filter-row{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
@media (max-width:860px){ .insights-grid{ grid-template-columns:1fr; } }

/* ---------- ABOUT ---------- */
.about{ padding:calc(var(--gutter) * 1.7) 0; }
.about-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:center; }
.about h2{ font-size:clamp(1.6rem, 3vw, 2.3rem); max-width:14ch; }
.about-copy p{ font-size:1rem; color:var(--stone); max-width:48ch; }
.about-link{ display:inline-block; margin-top:20px; font-size:0.88rem; font-weight:600; color:var(--navy); border-bottom:1px solid var(--bronze); padding-bottom:2px; }
@media (max-width:860px){ .about-inner{ grid-template-columns:1fr; gap:24px; } }

.prose{ max-width:72ch; }
.prose p{ font-size:1.02rem; color:var(--stone); margin-bottom:20px; }
.prose p:last-child{ margin-bottom:0; }
.concept-row{ display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.concept{ font-size:0.8rem; color:var(--navy); border:1px solid var(--border); padding:8px 14px; }
.section{ padding:calc(var(--gutter) * 1.6) 0; border-bottom:1px solid var(--border); }
.section-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }
.section h2{ font-size:clamp(1.5rem, 2.6vw, 2rem); max-width:20ch; margin-bottom:24px; }
.quote-block{ border-left:2px solid var(--bronze); padding-left:24px; margin-top:32px; }
.quote-block p{ font-family:'Archivo', sans-serif; font-size:1.15rem; font-weight:500; color:var(--navy); line-height:1.4; max-width:44ch; }
.quote-block cite{ display:block; margin-top:14px; font-style:normal; font-size:0.85rem; color:var(--stone); }

/* ---------- CONTACT ---------- */
.contact{ padding:calc(var(--gutter) * 1.9) 0; background:var(--off-white); border-top:1px solid var(--border); }
.contact-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; }
.contact h2{ font-size:clamp(1.7rem, 3.2vw, 2.4rem); max-width:14ch; color:var(--navy); }
.contact-sub{ font-size:0.98rem; color:var(--stone); max-width:38ch; margin-top:18px; }
.confid{ font-size:0.82rem; color:var(--stone-light); margin-top:28px; }
.contact-meta{ margin-top:32px; display:flex; flex-direction:column; gap:10px; }
.contact-meta a{ font-size:0.92rem; color:var(--navy); border-bottom:1px solid transparent; }
.contact-meta a:hover{ border-color:var(--bronze); }
form{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.full{ grid-column:1 / -1; }
label{ font-size:0.78rem; color:var(--stone); font-weight:500; }
input, select, textarea{
  font-family:inherit; font-size:0.92rem; padding:12px 14px; border:1px solid var(--border);
  background:var(--white); color:var(--charcoal);
}
textarea{ resize:vertical; min-height:100px; }
.contact .btn{ grid-column:1 / -1; justify-self:start; margin-top:8px; }
@media (max-width:720px){ .contact-inner{ grid-template-columns:1fr; gap:32px; } form{ grid-template-columns:1fr; } }

/* ---------- FOOTER ---------- */
.foot{ background:var(--navy-deep); color:rgba(255,255,255,0.72); padding:calc(var(--gutter) * 1.4) 0 calc(var(--gutter) * 0.8); }
.foot-inner{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px; }
.foot-word{ font-family:'Archivo', sans-serif; font-size:1.1rem; font-weight:700; color:var(--white); }
.foot-desc{ font-size:0.85rem; margin-top:10px; max-width:30ch; }
.foot h5{ font-family:'Archivo', sans-serif; font-size:0.76rem; letter-spacing:0.04em; color:var(--bronze); font-weight:600; margin-bottom:16px; }
.foot ul{ display:flex; flex-direction:column; gap:10px; }
.foot ul a{ font-size:0.86rem; }
.foot ul a:hover{ color:var(--white); }
.foot-bottom{ max-width:var(--max); margin:48px auto 0; padding:22px var(--gutter) 0; border-top:1px solid rgba(255,255,255,0.12); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.78rem; }
.foot-tagline{ font-family:'Archivo', sans-serif; letter-spacing:0.03em; color:var(--bronze); }
@media (max-width:720px){ .foot-inner{ grid-template-columns:1fr; gap:28px; } }
