:root{
  --navy:#1F3864;
  --navy-deep:#132340;
  --navy-tint:#E7ECF3;
  --gold:#827C26;
  --gold-tint:#F1EFDE;
  --paper:#F6F3EC;
  --card:#FCFAF5;
  --ink:#22201B;
  --ink-soft:#57544B;
  --line:#DAD3C2;
  --line-strong:#C4BB9F;
  --serif:'Newsreader', 'Georgia', serif;
  --sans:Calibri, Carlito, 'Segoe UI', Arial, sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--gold-tint); color:var(--navy-deep);}
a:focus-visible, button:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

/* ---------- layout shell ---------- */
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

header.site{
  position:sticky; top:0; z-index:40;
  background:transparent;
  border-bottom:1px solid var(--line);
}
header.site::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(246,243,236,0.92);
  backdrop-filter:saturate(150%) blur(6px);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.wordmark{
  display:flex; align-items:center;
}
.wordmark img.logo-img{height:46px; width:auto; display:block;}
nav.primary{display:flex; align-items:center; gap:2px;}
nav.primary a{
  font-size:14.5px; padding:9px 15px; border-radius:2px;
  color:var(--ink-soft); position:relative;
}
nav.primary a:hover{color:var(--navy-deep);}
nav.primary a.active{color:var(--navy-deep);}
nav.primary a.active::after{
  content:""; position:absolute; left:15px; right:15px; bottom:3px;
  height:1.5px; background:var(--gold);
}
.nav-cta{
  margin-left:6px; padding:9px 18px; border:1px solid var(--navy);
  color:var(--navy-deep); font-size:14px; border-radius:2px;
}
.nav-cta:hover{background:var(--navy); color:#fff;}
.menu-btn{display:none; background:none; border:none; cursor:pointer; padding:8px;}
.menu-btn span, .menu-btn span::before, .menu-btn span::after{
  content:""; display:block; width:22px; height:1.5px; background:var(--navy-deep);
  position:relative; transition:transform .2s;
}
.menu-btn span::before{position:absolute; top:-7px;}
.menu-btn span::after{position:absolute; top:7px;}
@media (max-width:860px){
  nav.primary{
    position:fixed; inset:76px 0 0 0; background:var(--paper);
    flex-direction:column; align-items:stretch; padding:10px 20px 30px;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
    border-top:1px solid var(--line);
    overflow-y:auto;
  }
  nav.primary.open{opacity:1; pointer-events:auto; transform:translateY(0);}
  nav.primary a{font-size:18px; padding:16px 4px; border-bottom:1px solid var(--line);}
  nav.primary a.active::after{display:none;}
  .nav-cta{margin:14px 4px 0; text-align:center;}
  .menu-btn{display:block;}
}

/* ---------- ledger line, the signature device ---------- */
.ledger{
  display:flex; align-items:center; gap:0; height:14px; margin:0 0 0;
}
.ledger .tick{width:1px; height:14px; background:var(--line-strong); flex:none;}
.ledger .tick.major{height:14px; background:var(--gold);}
.ledger .run{flex:1; height:1px; background:var(--line-strong); align-self:center;}

.eyebrow{
  font-size:12.5px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--gold); font-weight:500; margin:0 0 14px;
}

section{padding:96px 0;}
section.tight{padding:64px 0;}
@media (max-width:640px){ section{padding:64px 0;} section.tight{padding:44px 0;} }

h1,h2,h3{font-family:var(--serif); color:var(--navy-deep); margin:0; font-weight:500;}
h1{font-size:clamp(34px,5vw,56px); line-height:1.08; letter-spacing:-0.01em;}
h2{font-size:clamp(26px,3.4vw,36px); line-height:1.15;}
h3{font-size:19px; line-height:1.3;}
p{line-height:1.72; color:var(--ink-soft); font-size:16.5px; margin:0 0 16px;}
p.lede{font-size:19px; line-height:1.6; color:var(--ink);}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; font-size:14.5px; border-radius:2px;
  border:1px solid var(--navy); color:var(--navy-deep);
  transition: all 0.2s ease;
  font-family:inherit; background:none; cursor:pointer;
}
.btn:disabled{opacity:0.6; cursor:not-allowed;}
.btn:hover{background:var(--navy); color:#fff;}
.btn.primary{background:var(--navy); color:#fff;}
.btn.primary:hover{background:var(--navy-deep);}
.btn.gold{border-color:var(--gold); color:var(--gold);}
.btn.gold:hover{background:var(--gold); color:#fff;}
.btn .arrow{transition:transform .15s;}
.btn:hover .arrow{transform:translateX(3px);}

/* ---------- hero ---------- */
.hero{padding:88px 0 0;}
.hero-inner{max-width:760px;}
.hero .ledger{margin:34px 0 46px;}

.paths{
  display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line);
}
.paths a.path{
  padding:52px 6px 60px;
  border-right:1px solid var(--line);
  display:block; position:relative; overflow:hidden;
}
.paths a.path:last-child{border-right:none;}
.paths .wrap-inner{max-width:420px; margin:0 auto;}
.path .p-eyebrow{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; font-weight:500;}
.path h3{font-family:var(--serif); font-size:26px; margin-bottom:12px; font-weight:500;}
.path p{margin-bottom:22px;}
.path .go{font-size:14px; color:var(--navy-deep); display:inline-flex; gap:7px; align-items:center; font-weight:400;}
.path{transition:background .18s;}
.path:hover{background:var(--card);}
.path:hover .go{color:var(--gold);}
@media (max-width:760px){
  .paths{grid-template-columns:1fr;}
  .paths a.path{border-right:none; border-bottom:1px solid var(--line); padding:44px 24px;}
  .paths .wrap-inner{margin:0; max-width:none;}
}
.paths a.path{padding-left:32px; padding-right:32px;}

/* ---------- principles / three-up ---------- */
.principles{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--line);
}
.principle{padding:40px 24px 0 24px; border-right:1px solid var(--line);}
.principle:last-child{border-right:none;}
.principle .num{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:15px; margin-bottom:16px; display:block;}
@media (max-width:760px){
  .principles{grid-template-columns:1fr;}
  .principle{border-right:none; border-bottom:1px solid var(--line); padding:34px 0;}
}

.band{background:var(--navy-deep); color:#EDE9DC;}
.band h2{color:#fff;}
.band p{color:#C7CBD6;}
.band .ledger .tick{background:#3B4D6E;}
.band .ledger .tick.major{background:var(--gold);}
.band .ledger .run{background:#3B4D6E;}

.quote-block{max-width:660px;}
.quote-block blockquote{
  font-family:var(--serif); font-style:italic; font-size:24px; line-height:1.5;
  color:#fff; margin:0 0 18px; font-weight:400;
}
.quote-block cite{font-style:normal; font-size:14px; color:#9AA3B5;}

/* ---------- two column layouts ---------- */
.split{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
@media (max-width:820px){ .split{grid-template-columns:1fr; gap:32px;} }

.stat-strip{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.stat{padding:30px 28px; border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat .label{font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);}
@media (max-width:700px){ .stat-strip{grid-template-columns:1fr;} .stat{border-right:none; border-bottom:1px solid var(--line);} }

.list-clean{list-style:none; padding:0; margin:0;}
.list-clean li{
  padding:18px 0; border-top:1px solid var(--line);
  display:flex; gap:20px; align-items:baseline;
}
.list-clean li:last-child{border-bottom:1px solid var(--line);}
.list-clean .tag{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:14px; flex:none; width:26px;}

.card{background:var(--card); border:1px solid var(--line); padding:32px; border-radius:2px;}

/* ---------- team ---------- */
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--line);}
.member{padding:44px 30px 44px 30px; border-right:1px solid var(--line); text-align:center;}
.member:last-child{border-right:none;}
.member .role{font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold); margin-bottom:6px;}
.member .initials{
  width:56px; height:56px; border:1px solid var(--navy); color:var(--navy-deep);
  display:flex; align-items:center; justify-content:center; font-family:var(--serif);
  font-size:18px; margin-bottom:22px;
}
@media (max-width:760px){
  .team-grid{grid-template-columns:1fr;}
  .member{border-right:none; border-bottom:1px solid var(--line); padding:36px 0 !important;}
}

/* ---------- contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media (max-width:820px){ .contact-grid{grid-template-columns:1fr; gap:36px;} }
.field{margin-bottom:20px;}
.field label{display:block; font-size:13px; color:var(--ink-soft); margin-bottom:7px;}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line-strong); background:#fff;
  padding:12px 14px; font-family:var(--sans); font-size:15px; color:var(--ink);
  border-radius:2px;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold);
}
.field textarea{resize:vertical; min-height:110px;}
.contact-line{display:flex; gap:14px; padding:16px 0; border-top:1px solid var(--line);}
.contact-line:last-child{border-bottom:1px solid var(--line);}
.contact-line .l-label{width:96px; flex:none; font-size:13px; color:var(--ink-soft);}

footer.site{border-top:1px solid var(--line); padding:56px 0 40px;}
.foot-row{display:grid; grid-template-columns:260px repeat(3, 1fr); gap:40px;}
@media (max-width:760px){
  .foot-row{grid-template-columns:1fr; gap:28px;}
}
.foot-col h4{font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 14px; font-weight:400;}
.foot-col a, .foot-col p{font-size:14.5px; color:var(--ink-soft); display:block; margin:0 0 9px;}
.foot-col a:hover{color:var(--navy-deep);}
.foot-col:first-child{display:flex; flex-direction:column;}
.foot-col:first-child .logo-link{text-decoration:none; display:block; margin-bottom:12px;}
.foot-col:first-child .logo-img{height:42px; width:auto;}
.foot-col:first-child p{font-size:14px; line-height:1.6; color:var(--ink-soft);}
.foot-bottom{margin-top:44px; padding-top:22px; border-top:1px solid var(--line); font-size:13px; color:var(--ink-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

.reveal{opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

.member .initials{overflow:hidden; padding:0;}
.member .initials img{width:100%; height:100%; object-fit:cover; object-position:top center;}
.member .initials{width:112px; height:140px; border-radius:2px; margin-left:auto; margin-right:auto;}

.sector-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:52px;
}
.sector-card{background:var(--paper);}
.sector-photo{width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--line-strong);}
.sector-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.sector-body{padding:28px 30px 34px;}
.sector-body .tag{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:14px; display:block; margin-bottom:10px;}
.sector-body h3{font-size:21px; margin-bottom:10px;}
.sector-body p{margin:0;}
@media (max-width:700px){
  .sector-grid{grid-template-columns:1fr;}
}

/* Mobile enhancements */
@media (max-width:640px){
  .nav-row{height:auto; padding:12px 0;}
  .hero{padding:44px 0 0;}
  .hero-inner{padding:0;}
  h1{font-size:28px;}
  h2{font-size:22px;}
  h3{font-size:18px;}
  p{font-size:15px;}
  section{padding:48px 0;}
  section.tight{padding:32px 0;}
  .split{gap:20px;}
  .btn{padding:11px 20px; font-size:13px;}
  .quote-block blockquote{font-size:20px;}
}
