:root{
  --ink:#0B2545;
  --ink-soft:#123A63;
  --paper:#F7F7F4;
  --paper-dim:#ECECE6;
  --leather:#A32638;
  --leather-dark:#7A1B29;
  --steel:#3D5A80;
  --steel-light:#8FA8C2;
  --text-dark:#16202C;
  --text-dim:#5A6570;
  --text-onink:#F2F3F5;
  --text-onink-dim:#9FB2C4;
  --rule:#DBD9D0;
  --rule-onink:#1E3A5F;
  --max:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--text-dark);
  font-family:'Public Sans', -apple-system, sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500;
  margin:0;
  color:inherit;
}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 22px;} }

/* ---------- NAV ---------- */
header{
  position:relative;
  z-index:5;
  padding:18px 0;
  background:var(--ink);
}
header .wrap{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
.mark{
  font-family:'Fraunces', serif;
  font-size:23px;
  font-weight:500;
  letter-spacing:0.01em;
  color:var(--text-onink);
  display:flex;
  align-items:center;
  gap:20px;
  text-decoration:none;
}
.mark img{
  height:136px;
  width:136px;
  display:block;
}
.mark .caps{letter-spacing:0.04em;}
nav{display:flex; flex-wrap:wrap;}
nav a{
  color:var(--text-onink-dim);
  text-decoration:none;
  font-size:14.5px;
  margin-left:30px;
  transition:color .15s ease;
}
nav a:hover{color:var(--text-onink);}
nav a.active{color:var(--text-onink); border-bottom:1px solid var(--leather); padding-bottom:3px;}
@media (max-width:640px){ nav a{margin-left:0; margin-right:22px;} }

/* ---------- HERO (home page only) ---------- */
.hero{
  background:var(--ink);
  color:var(--text-onink);
  position:relative;
  overflow:hidden;
  padding-bottom:100px;
}
.hero-topo{
  position:absolute;
  left:0; right:0; bottom:0;
  width:100%;
  height:auto;
  opacity:0.55;
  pointer-events:none;
}
.hero-inner{
  position:relative;
  z-index:2;
  padding-top:36px;
  max-width:660px;
}
.hero .badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  font-weight:500;
  color:var(--leather);
  letter-spacing:0.02em;
  margin-bottom:22px;
}
.hero .badge svg{flex-shrink:0;}
.hero h1{
  font-size:clamp(34px, 5.4vw, 54px);
  line-height:1.12;
  letter-spacing:-0.01em;
}
.hero p.tagline{
  margin-top:16px;
  font-size:17px;
  font-weight:500;
  color:var(--steel-light);
}
.hero p.lede{
  margin-top:22px;
  font-size:18px;
  line-height:1.65;
  color:var(--text-onink-dim);
  max-width:520px;
}
.hero .cta-row{
  margin-top:38px;
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  background:var(--leather);
  color:#F5EFE5;
  text-decoration:none;
  padding:14px 26px;
  font-size:15px;
  font-weight:500;
  border-radius:2px;
  transition:background .15s ease;
  border:none;
  cursor:pointer;
  font-family:'Public Sans', sans-serif;
}
.btn:hover{background:var(--leather-dark);}
.btn-ghost{
  color:var(--text-onink);
  text-decoration:none;
  font-size:15px;
  border-bottom:1px solid var(--rule-onink);
  padding-bottom:2px;
}
.btn-ghost:hover{border-bottom-color:var(--text-onink);}

/* ---------- PAGE BANNER (secondary pages) ---------- */
.page-banner{
  background:var(--ink);
  color:var(--text-onink);
  padding:64px 0 56px;
}
.page-banner h1{
  font-size:clamp(30px, 4.4vw, 44px);
  line-height:1.15;
}
.page-banner p{
  margin-top:16px;
  font-size:17px;
  color:var(--text-onink-dim);
  max-width:560px;
}

/* ---------- SECTION SCAFFOLD ---------- */
section{padding:96px 0;}
@media (max-width:640px){ section{padding:60px 0;} }
.rule-top{border-top:1px solid var(--rule);}
.eyebrow-free h2{
  font-size:clamp(26px, 3.4vw, 34px);
  max-width:600px;
  line-height:1.25;
}
.section-head{margin-bottom:52px;}

/* ---------- ACRONYM ---------- */
.acronym-list{
  display:flex;
  gap:0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
@media (max-width:820px){ .acronym-list{flex-direction:column;} }
.acronym-item{
  flex:1;
  padding:34px 22px 34px 0;
  border-right:1px solid var(--rule);
}
.acronym-item:last-child{border-right:none;}
@media (max-width:820px){
  .acronym-item{
    border-right:none;
    border-bottom:1px solid var(--rule);
    padding:26px 0;
  }
  .acronym-item:last-child{border-bottom:none;}
}
.acronym-item .letter{
  font-family:'Fraunces', serif;
  font-size:40px;
  font-weight:500;
  color:var(--leather-dark);
  line-height:1;
  margin-bottom:10px;
}
.acronym-item .word{
  font-weight:600;
  font-size:15.5px;
  margin-bottom:8px;
}
.acronym-item .desc{
  color:var(--text-dim);
  font-size:15px;
  line-height:1.55;
}

/* ---------- ABOUT PAGE ---------- */
.about-split{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:start;
}
@media (max-width:800px){ .about-split{grid-template-columns:1fr; gap:32px;} }
.about-split img.about-photo{
  width:100%;
  height:auto;
  border-radius:2px;
  display:block;
  position:sticky;
  top:32px;
}
.about-split .bio p{
  color:var(--text-dim);
  font-size:17px;
  max-width:60ch;
  margin:0 0 22px;
}
.about-split .bio .lead-line{
  color:var(--text-dark);
  font-family:'Fraunces', serif;
  font-size:24px;
  font-weight:500;
  line-height:1.4;
  margin:0 0 26px;
}

/* ---------- SERVICES ---------- */
.service-row{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:40px;
  padding:38px 0;
  border-top:1px solid var(--rule);
}
.service-row:last-child{border-bottom:1px solid var(--rule);}
@media (max-width:700px){ .service-row{grid-template-columns:1fr; gap:12px;} }
.service-row h3{
  font-size:20px;
  font-weight:500;
}
.service-row p{
  margin:0 0 18px;
  color:var(--text-dim);
  max-width:60ch;
  line-height:1.65;
}
.service-row ul{
  margin:0;
  padding-left:18px;
  color:var(--text-dim);
  font-size:15px;
  line-height:1.7;
  max-width:56ch;
}
.service-row li{margin-bottom:6px;}
.capabilities-intro{
  max-width:680px;
  color:var(--text-dim);
  font-size:17px;
  line-height:1.65;
  margin-bottom:56px;
}

/* ---------- APPROACH / DIFFERENTIATORS ---------- */
.approach{background:var(--paper-dim);}
.principle-row{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:44px;
}
@media (max-width:760px){ .principle-row{grid-template-columns:1fr; gap:34px;} }
.principle-row p.label{
  font-family:'Fraunces', serif;
  font-size:20px;
  font-weight:500;
  margin:0 0 12px;
  color:var(--leather-dark);
}
.principle-row p.body-text{
  margin:0;
  color:var(--text-dim);
  font-size:16px;
}

/* ---------- CONTACT ---------- */
.contact-page .contact-intro{
  max-width:560px;
  color:var(--text-dim);
  font-size:17px;
  margin-bottom:44px;
}
.contact-details-block{
  margin-top:44px;
  font-size:15.5px;
  color:var(--text-dim);
}
.contact-details-block a{
  color:var(--text-dark);
  text-decoration:none;
  border-bottom:1px solid var(--rule);
}
.contact-details-block .line{margin-bottom:10px;}

form.contact-form{
  max-width:560px;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:8px;}
.field label{
  font-size:13.5px;
  font-weight:600;
  color:var(--text-dark);
  letter-spacing:0.01em;
}
.field input{
  font-family:'Public Sans', sans-serif;
  font-size:15.5px;
  padding:12px 14px;
  border:1px solid var(--rule);
  border-radius:2px;
  background:#fff;
  color:var(--text-dark);
}
.field input:focus{
  outline:none;
  border-color:var(--steel);
}
.form-note{
  font-size:13.5px;
  color:var(--text-dim);
  margin-top:-4px;
}

/* ---------- FOOTER ---------- */
footer{
  background:var(--ink);
  color:var(--text-onink-dim);
  padding:26px 0 34px;
  font-size:13.5px;
  border-top:1px solid var(--rule-onink);
}
footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}
