:root{
  --ink: #15201b;
  --ink-soft: #4a524c;
  --muted: #7a8178;
  --rule: #e2e0d8;
  --paper: #fbfaf7;
  --paper-2: #f4f2ec;
  --accent: #0e5a47;
  --serif: Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1100px; margin:0 auto; padding:0 40px;}
.wrap-narrow{max-width:760px; margin:0 auto; padding:0 40px;}
h1,h2,h3{font-family:var(--serif); font-weight:400; letter-spacing:0; margin:0;}
p{margin:0 0 1.3em;}
p:last-child{margin-bottom:0;}

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:0; z-index:40;
  background:rgba(251,250,247,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}
.navbar{display:flex; align-items:center; justify-content:space-between; padding:26px 40px; max-width:1100px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:9px; font-family:var(--serif); font-size:19px; letter-spacing:0.01em; text-decoration:none; color:var(--ink);}
.brand-icon{height:28px; width:auto; display:block;}
nav.links{display:flex; gap:38px; font-size:13.5px;}
nav.links a{text-decoration:none; color:var(--ink-soft); letter-spacing:0.01em;}
nav.links a:hover{color:var(--accent);}
nav.links a.active{color:var(--ink); border-bottom:1px solid var(--accent); padding-bottom:3px;}
.nav-cta{font-size:13.5px; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px;}
.nav-cta:hover{color:var(--accent); border-color:var(--accent);}
.menu-toggle{display:none;}

/* ---------- Hero ---------- */
.hero{position:relative; min-height:72vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:#101712;}
.hero img, .hero video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.62) saturate(0.92);}
.hero .scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,16,13,0.05) 0%, rgba(8,13,10,0.7) 100%); z-index:1;}
.hero-content{position:relative; z-index:2; padding:80px 0 68px; max-width:1100px; margin:0 auto; width:100%; padding-left:40px; padding-right:40px;}
.eyebrow{font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase; color:#d8e0da; margin-bottom:22px; font-family:var(--sans);}
.hero h1{font-size:42px; line-height:1.28; max-width:680px; margin-bottom:0; font-weight:400;}

/* Page header (non-hero pages) */
.page-header{padding:76px 0 52px; border-bottom:1px solid var(--rule);}
.page-header .eyebrow{color:var(--accent);}
.page-header h1{font-size:38px; color:var(--ink); max-width:680px;}

/* ---------- Sections ---------- */
section{padding:88px 0;}
section.tight{padding:60px 0;}
section.on-paper-2{background:var(--paper-2);}
section + section{border-top:1px solid var(--rule);}
.kicker{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:16px; font-family:var(--sans);}
h2.title{font-size:28px; margin-bottom:22px; color:var(--ink);}
.lead{font-size:18px; line-height:1.65; color:var(--ink-soft); max-width:680px; font-family:var(--serif);}
.body-text{font-size:16px; color:var(--ink-soft); max-width:680px;}
.body-text p{margin-bottom:1.4em;}

/* Two-column editorial layout */
.editorial-row{display:grid; grid-template-columns:0.42fr 0.58fr; gap:64px; align-items:start;}
.editorial-row.reverse{grid-template-columns:0.58fr 0.42fr;}
.editorial-row.reverse .text-col{order:2;}
.editorial-row img{width:100%; height:420px; object-fit:cover;}
.text-col{padding-top:6px;}

/* Simple list rows (no card borders) */
.plain-list{margin-top:8px;}
.plain-list .item{padding:26px 0; border-top:1px solid var(--rule);}
.plain-list .item:last-child{border-bottom:1px solid var(--rule);}
.plain-list .item-head{display:flex; align-items:baseline; gap:18px; margin-bottom:8px;}
.plain-list .num{font-family:var(--serif); font-size:15px; color:var(--muted); min-width:24px;}
.plain-list h3{font-size:19px; color:var(--ink); font-weight:400;}
.plain-list p{font-size:15px; color:var(--ink-soft); margin:0; max-width:620px; padding-left:42px;}

/* Criteria list (definition-list style) */
.criteria{margin-top:8px; border-top:1px solid var(--rule);}
.criteria .row{display:grid; grid-template-columns:200px 1fr; gap:32px; padding:22px 0; border-bottom:1px solid var(--rule);}
.criteria .k{font-size:13px; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); font-family:var(--sans); padding-top:2px;}
.criteria .v{font-size:16px; color:var(--ink-soft);}

/* Sector blocks */
.sector-block{padding:72px 0; border-top:1px solid var(--rule);}
.sector-block:first-of-type{border-top:none;}
.sector-eyebrow{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:14px; font-family:var(--sans);}
.sub-sector{margin-top:28px; padding-top:20px; border-top:1px solid var(--rule);}
.sub-sector h4{font-family:var(--serif); font-size:17px; font-weight:400; margin-bottom:6px;}
.sub-sector p{font-size:14.5px; color:var(--ink-soft); margin:0;}

/* Quote / pull line */
.pull{font-family:var(--serif); font-size:24px; line-height:1.5; color:var(--ink); max-width:700px; margin:0;}

/* Footer */
footer.site{background:var(--ink); color:#cfd6d0; padding:64px 0 32px; margin-top:0;}
footer .wrap{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px;}
footer h4{font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:#8aa297; margin-bottom:16px; font-family:var(--sans); font-weight:600;}
footer p, footer a{font-size:14px; color:#d6dcd8; text-decoration:none; line-height:1.9;}
footer .brand-foot{display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:19px; color:#fff; margin-bottom:14px;}
footer .brand-foot-icon{height:32px; width:auto; display:block;}
footer .bottom{max-width:1100px; margin:48px auto 0; padding:22px 40px 0; border-top:1px solid rgba(255,255,255,0.12); font-size:12px; color:#7d9387;}

.note{background:var(--paper-2); border-left:2px solid var(--rule); padding:14px 20px; font-size:13px; color:var(--muted); margin-top:28px;}

/* Team grid */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:44px 32px; margin-top:12px;}
.team-grid .person .name{font-family:var(--serif); font-size:17px; color:var(--ink); margin-bottom:3px;}
.team-grid .person .role{font-size:12.5px; letter-spacing:0.03em; color:var(--muted); font-family:var(--sans); margin-bottom:14px;}
.team-grid .person .li-link{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; border:1px solid var(--rule); color:var(--ink-soft); text-decoration:none; transition:border-color .15s, color .15s;}
.team-grid .person .li-link:hover{border-color:var(--accent); color:var(--accent);}
.team-grid .person .li-link svg{width:15px; height:15px;}

/* Contact form-ish layout */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact-item{padding:22px 0; border-top:1px solid var(--rule);}
.contact-item .k{font-size:12.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--muted); margin-bottom:6px; font-family:var(--sans);}
.contact-item .v{font-size:16px;}
.contact-item a{color:var(--accent); text-decoration:none; border-bottom:1px solid rgba(14,90,71,0.3);}

@media (max-width: 900px){
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .editorial-row, .editorial-row.reverse{grid-template-columns:1fr;}
  .editorial-row.reverse .text-col{order:0;}
  .criteria .row{grid-template-columns:1fr; gap:6px;}
  footer .wrap{grid-template-columns:1fr; gap:32px;}
  .navbar{flex-wrap:wrap; row-gap:14px; padding:20px 24px;}
  nav.links{
    display:flex; flex-wrap:wrap; gap:16px 20px;
    width:100%; order:3;
    padding-top:14px; border-top:1px solid var(--rule);
    font-size:13px;
  }
  .wrap, .wrap-narrow{padding-left:24px; padding-right:24px;}
  .hero h1{font-size:28px;}
  .hero-content{padding-left:24px; padding-right:24px;}
  .contact-grid{grid-template-columns:1fr; gap:0;}
}
