:root {
  --ink: #172022;
  --ink-2: #273033;
  --paper: #f4f2ec;
  --white: #ffffff;
  --line: #d7d5ce;
  --olive: #7c8155;
  --olive-dark: #62683f;
  --muted: #6c716e;
  --max: 1240px;
  --radius: 4px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; line-height: 1.5; }
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
.container { width: min(calc(100% - 64px), var(--max)); margin-inline: auto; }
.section { padding: 110px 0; }
.section-light { background: var(--white); padding: 100px 0; }
.section-dark { background: var(--ink); color: var(--white); padding: 110px 0; }

.site-header {
  position: sticky; top: 0; z-index: 50; background: rgba(244,242,236,.96);
  border-bottom: 1px solid rgba(23,32,34,.08); backdrop-filter: blur(14px);
}
.header-inner { min-height: 74px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand-mark, .footer-brand { font-size: 23px; letter-spacing: .28em; font-weight: 600; white-space: nowrap; }
.custom-logo { max-height: 44px; width: auto; }
.desktop-nav { display:flex; gap:34px; margin-left:auto; }
.desktop-nav a, .footer-links a { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.desktop-nav a:hover, .footer-links a:hover { color: var(--olive-dark); }
.header-cta { display:inline-flex; align-items:center; gap:10px; background:var(--olive); color:#fff; padding:12px 20px; border-radius:999px; font-size:11px; letter-spacing:.13em; text-transform:uppercase; font-weight:700; }
.header-cta:hover { background:var(--olive-dark); }
.menu-toggle, .mobile-menu { display:none; }

.hero { position:relative; min-height: calc(100vh - 74px); display:flex; align-items:flex-end; overflow:hidden; background:var(--ink); color:#fff; }
.hero-media { position:absolute; inset:0; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(9,17,19,.86) 0%, rgba(9,17,19,.42) 55%, rgba(9,17,19,.18) 100%); }
.image-placeholder { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#253133,#4b5757); color:rgba(255,255,255,.7); letter-spacing:.12em; text-transform:uppercase; font-size:10px; min-height:300px; }
.hero-placeholder { height:100%; }
.hero-content { position:relative; z-index:2; padding-bottom:90px; max-width:1240px; }
.eyebrow { font-size:10px; letter-spacing:.18em; font-weight:700; text-transform:uppercase; margin:0 0 22px; }
.hero h1 { font-size: clamp(48px, 7vw, 94px); line-height:.98; letter-spacing:-.045em; max-width:950px; margin:0 0 30px; font-weight:400; }
.hero-copy { max-width:620px; font-size:18px; color:rgba(255,255,255,.82); margin:0 0 35px; }
.hero-actions { display:flex; align-items:center; gap:28px; }
.btn { display:inline-flex; align-items:center; gap:16px; padding:15px 22px; border:1px solid currentColor; border-radius:999px; font-size:11px; letter-spacing:.13em; text-transform:uppercase; font-weight:700; }
.btn-light { background:#fff; color:var(--ink); border-color:#fff; }
.text-link { display:inline-flex; align-items:center; gap:12px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.text-link span { font-size:18px; line-height:0; transition:transform .2s; }
.text-link:hover span { transform:translateX(4px); }
.light { color:#fff; }

.intro-grid, .about-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:end; }
h2 { font-size:clamp(40px,5vw,68px); line-height:1.02; letter-spacing:-.04em; font-weight:400; margin:0; }
.lead { font-size:20px; line-height:1.5; color:#424a49; }
.service-strip { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); margin-top:80px; }
.service-card { padding:30px 24px 10px 0; border-right:1px solid var(--line); min-height:250px; }
.service-card:not(:first-child) { padding-left:24px; }
.service-card:last-child { border-right:0; }
.service-number { font-size:10px; color:var(--muted); letter-spacing:.15em; }
.service-card h3 { font-size:23px; font-weight:400; margin:65px 0 12px; }
.service-card p { color:#626866; font-size:14px; min-height:62px; }
.service-card a { font-size:10px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }

.split-heading { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:65px; }
.section-dark .split-heading > p { color:rgba(255,255,255,.7); max-width:430px; margin:0 0 4px; }
.industry-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2); }
.industry-grid article { padding:30px 24px 0 0; border-right:1px solid rgba(255,255,255,.2); min-height:270px; }
.industry-grid article:not(:first-child) { padding-left:24px; }
.industry-grid article:last-child { border-right:0; }
.industry-grid span, .capability-list span { font-size:10px; letter-spacing:.15em; opacity:.65; }
.industry-grid h3 { font-size:25px; font-weight:400; margin:55px 0 12px; }
.industry-grid p { color:rgba(255,255,255,.68); font-size:14px; }

.section-heading { margin-bottom:70px; }
.section-heading.center { text-align:center; }
.capability-list { border-top:1px solid var(--line); }
.capability-list > div { display:grid; grid-template-columns:80px 1fr 1.2fr; gap:25px; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }
.capability-list h3 { font-size:28px; font-weight:400; margin:0; }
.capability-list p { margin:0; color:#626866; }

.featured-project { display:grid; grid-template-columns:1.3fr .7fr; gap:0; background:#222b2d; }
.project-image { min-height:480px; }
.project-info { padding:55px; display:flex; flex-direction:column; justify-content:center; }
.project-type, .work-grid p { font-size:10px; letter-spacing:.15em; text-transform:uppercase; opacity:.65; }
.project-info h3 { font-size:clamp(40px,5vw,70px); line-height:1; font-weight:400; margin:20px 0; }
.project-info p:not(.project-type) { color:rgba(255,255,255,.7); font-size:17px; margin-bottom:35px; }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px; }
.work-grid .project-image { min-height:260px; }
.work-grid p { margin:22px 0 5px; }
.work-grid h3 { margin:0; font-size:25px; font-weight:400; }

.about-grid { align-items:start; }
.about-grid .lead { margin-top:0; }
.about-grid p:not(.lead) { color:#5c6461; max-width:620px; }

.logo-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); margin-top:50px; }
.logo-grid div { min-height:120px; display:flex; align-items:center; justify-content:center; text-align:center; border-right:1px solid var(--line); border-bottom:1px solid var(--line); font-size:14px; letter-spacing:.1em; font-weight:700; }

.insight-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; margin-top:55px; }
.insight-grid article { border-top:1px solid var(--line); padding-top:22px; }
.insight-grid span { font-size:10px; letter-spacing:.15em; font-weight:700; color:var(--olive-dark); }
.insight-grid h3 { font-size:29px; font-weight:400; line-height:1.15; margin:45px 0 14px; }
.insight-grid p { color:#646a67; }

.cta-inner { max-width:900px; }
.cta h2 { font-size:clamp(45px,6vw,82px); margin-bottom:30px; }
.cta p:not(.eyebrow) { color:rgba(255,255,255,.72); max-width:600px; font-size:18px; margin-bottom:35px; }

.site-footer { background:#11191b; color:#fff; padding:55px 0 25px; }
.footer-top { display:flex; justify-content:space-between; gap:40px; align-items:flex-start; }
.footer-kicker { font-size:10px; letter-spacing:.15em; opacity:.55; }
.footer-links { display:flex; flex-wrap:wrap; gap:28px; }
.footer-bottom { margin-top:70px; padding-top:20px; border-top:1px solid rgba(255,255,255,.15); display:flex; justify-content:space-between; color:rgba(255,255,255,.5); font-size:11px; letter-spacing:.05em; }

.page-shell { padding:100px 0; }

@media (max-width: 900px) {
  .container { width:min(calc(100% - 40px), var(--max)); }
  .desktop-nav, .header-cta { display:none; }
  .menu-toggle { display:flex; flex-direction:column; gap:5px; border:0; background:transparent; padding:10px; }
  .menu-toggle span { width:24px; height:1px; background:var(--ink); display:block; }
  .mobile-menu { display:flex; position:fixed; inset:74px 0 0; background:var(--paper); flex-direction:column; padding:40px; gap:22px; transform:translateY(-110%); transition:transform .3s ease; z-index:49; }
  .mobile-menu.is-open { transform:translateY(0); }
  .mobile-menu a { font-size:28px; font-weight:400; }
  .hero { min-height:720px; }
  .hero-content { padding-bottom:55px; }
  .hero h1 { font-size:52px; }
  .intro-grid, .about-grid, .split-heading { grid-template-columns:1fr; gap:30px; }
  .service-strip { grid-template-columns:1fr 1fr; }
  .service-card:nth-child(2n) { border-right:0; }
  .industry-grid { grid-template-columns:1fr 1fr; }
  .industry-grid article:nth-child(2n) { border-right:0; }
  .capability-list > div { grid-template-columns:50px 1fr; }
  .capability-list p { grid-column:2; }
  .featured-project { grid-template-columns:1fr; }
  .work-grid, .insight-grid { grid-template-columns:1fr; }
  .logo-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  .section, .section-dark, .section-light { padding:75px 0; }
  .service-strip, .industry-grid, .logo-grid { grid-template-columns:1fr; }
  .service-card, .service-card:not(:first-child), .industry-grid article, .industry-grid article:not(:first-child) { border-right:0; border-bottom:1px solid var(--line); padding:25px 0; min-height:auto; }
  .industry-grid article { border-color:rgba(255,255,255,.2); }
  .service-card h3, .industry-grid h3 { margin:25px 0 10px; }
  .hero h1 { font-size:44px; }
  .hero-copy { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:20px; }
  .project-info { padding:35px 25px; }
  .project-image { min-height:300px; }
  .footer-top, .footer-bottom { flex-direction:column; }
}
