:root{
  --ink:#14303A;
  --ink-deep:#0E242C;
  --paper:#FAF8F4;
  --paper-2:#F1EDE5;
  --slate:#4E6670;
  --rule:#DCD6CA;
  --signal:#C1922B;
  --on-ink:#EDE8DE;
  --on-ink-dim:#9FB3B9;
  --track:#1C363E;
  --track-2:#31535C;
  --hair:#23404A;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}
a{color:inherit}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px;width:100%}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:400;letter-spacing:-0.012em;margin:0}

/* ---------- masthead, on every page ---------- */
.masthead{background:var(--ink-deep);color:var(--on-ink)}
.mast-bar{display:flex;justify-content:space-between;align-items:center;
  gap:20px;padding:26px 0;flex-wrap:wrap}
.mark{display:inline-block;text-decoration:none;color:var(--on-ink)}
.mark-name{display:flex;flex-direction:column;line-height:1}
.mark-name{font-family:"Newsreader",Georgia,serif;
  font-size:2rem;letter-spacing:-0.018em}
.mark-name em{font-family:"IBM Plex Sans",sans-serif;font-style:normal;
  font-size:0.68rem;letter-spacing:0.34em;color:var(--signal);
  margin-top:7px;font-weight:600}
@media (max-width:600px){
  .mark-name{font-size:1.6rem}
  .mark-name em{font-size:0.6rem;letter-spacing:0.28em}
}
.mast-bar nav{display:flex;gap:26px;font-size:0.9rem;color:var(--on-ink-dim);flex-wrap:wrap}
.mast-bar nav a{text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}
.mast-bar nav a:hover{color:var(--on-ink);border-bottom-color:var(--signal)}
.mast-bar nav a[aria-current="page"]{color:var(--on-ink);border-bottom-color:var(--signal)}

/* ---------- page banner for inner pages ---------- */
.banner{background:var(--ink-deep);color:var(--on-ink);padding:18px 0 82px}
.banner h1{font-size:clamp(2.1rem,5.2vw,3.3rem);line-height:1.1;
  max-width:18ch;color:var(--on-ink)}
.banner p{margin:24px 0 0;max-width:58ch;color:var(--on-ink-dim);font-size:1.04rem}

/* ---------- home hero ---------- */
.hero{background:var(--ink-deep);color:var(--on-ink);padding:26px 0 86px}
.hero h1{font-size:clamp(2.35rem,6.1vw,4rem);line-height:1.07;
  max-width:16ch;color:var(--on-ink)}
.hero p{margin:28px 0 0;max-width:57ch;color:var(--on-ink-dim);font-size:1.06rem}
.hero p b{color:var(--on-ink);font-weight:500}

/* ---------- sections ---------- */
main{flex:1 0 auto}
section{padding:74px 0}
.tint{background:var(--paper-2)}
.section-head{font-size:clamp(1.55rem,3.4vw,2.1rem);line-height:1.2;
  max-width:23ch;margin-bottom:26px}
.lede{color:var(--slate);max-width:62ch}
.lede + .lede{margin-top:16px}

/* ---------- services ---------- */
.svc{border-top:1px solid var(--rule);padding:34px 0;display:grid;gap:10px 44px}
@media (min-width:820px){.svc{grid-template-columns:200px 1fr}}
.svc:last-of-type{border-bottom:1px solid var(--rule)}
.svc-meta{color:var(--slate);font-size:0.9rem}
.svc-meta b{display:block;color:var(--signal);font-weight:600;
  font-size:0.95rem;margin-bottom:2px}
.svc h3{font-size:1.5rem;margin-bottom:10px}
.svc p{margin:0 0 14px;color:var(--slate);max-width:58ch}
.svc p:last-child{margin-bottom:0}

/* ---------- two columns ---------- */
.split{display:grid;gap:40px}
@media (min-width:820px){.split{grid-template-columns:1fr 1fr;gap:64px}}
.col h3{font-size:1.25rem;margin-bottom:16px}
.col ul{margin:0;padding:0;list-style:none}
.col li{padding:11px 0;border-top:1px solid var(--rule);
  color:var(--slate);font-size:0.97rem}
.col li:first-child{border-top:none;padding-top:0}

/* ---------- about ---------- */
.founder{display:grid;gap:30px;margin-top:48px;
  border-top:1px solid var(--rule);padding-top:40px}
@media (min-width:760px){.founder{grid-template-columns:230px 1fr;gap:52px}}
.portrait{aspect-ratio:4/5;background:var(--paper-2);border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;
  color:var(--slate);font-size:0.82rem;text-align:center;padding:14px}
.portrait img{width:100%;height:100%;object-fit:cover;display:block}
.founder h3{font-size:1.45rem;margin-bottom:3px}
.founder .role{color:var(--signal);font-size:0.92rem;font-weight:600;margin-bottom:18px}
.founder p{margin:0 0 14px;color:var(--slate);max-width:60ch}
.founder p:last-child{margin-bottom:0}

.sectors{margin:34px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.sectors li{border:1px solid var(--rule);padding:7px 14px;
  font-size:0.88rem;color:var(--slate)}

/* ---------- contact ---------- */
.contact-grid{display:grid;gap:40px}
@media (min-width:820px){.contact-grid{grid-template-columns:1.1fr 1fr;gap:70px}}
.contact-block h3{font-size:1.2rem;margin-bottom:8px}
.contact-block p{margin:0 0 26px;color:var(--slate);max-width:48ch}
.detail{border-top:1px solid var(--rule);padding:16px 0;color:var(--slate);font-size:0.97rem}
.detail b{display:block;color:var(--ink);font-family:"Newsreader",Georgia,serif;
  font-weight:400;font-size:1.1rem;margin-bottom:2px}
.detail a{color:var(--ink)}

/* ---------- call to action strip ---------- */
.strip{background:var(--ink-deep);color:var(--on-ink);padding:70px 0}
.strip h2{color:var(--on-ink);font-size:clamp(1.6rem,3.8vw,2.4rem);max-width:20ch}
.strip p{color:var(--on-ink-dim);max-width:54ch;margin:20px 0 32px}
.cta{display:inline-block;background:var(--signal);color:#16303A;text-decoration:none;
  font-weight:600;font-size:0.98rem;padding:14px 26px;border-radius:2px}
.cta:hover{background:#D9AE4B}
.cta.ghost{background:transparent;color:var(--on-ink);
  border:1px solid #3A5A64;margin-left:10px}
.cta.ghost:hover{border-color:var(--signal);background:transparent}
@media (max-width:520px){.cta.ghost{margin:12px 0 0;display:block;text-align:center}}

.link-on-ink{color:var(--signal);text-decoration:none;
  border-bottom:1px solid transparent;font-weight:500}
.link-on-ink:hover{border-bottom-color:var(--signal)}

/* ---------- footer ---------- */
footer{background:var(--ink-deep);color:#6E8A93;font-size:0.84rem;
  padding:30px 0 40px;flex-shrink:0}
footer .wrap{border-top:1px solid var(--hair);padding-top:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer a{color:#6E8A93;text-decoration:none}
footer a:hover{color:var(--on-ink)}

/* ---------- notes index ---------- */
.notes{margin:0;padding:0;list-style:none}
.note-item{border-top:1px solid var(--rule);padding:30px 0;display:grid;gap:8px 44px}
@media (min-width:820px){.note-item{grid-template-columns:150px 1fr}}
.note-item:last-child{border-bottom:1px solid var(--rule)}
.note-date{color:var(--slate);font-size:0.86rem}
.note-item h3{font-size:1.4rem;margin-bottom:8px}
.note-item h3 a{text-decoration:none;border-bottom:1px solid transparent}
.note-item h3 a:hover{border-bottom-color:var(--signal)}
.note-item p{margin:0;color:var(--slate);max-width:58ch}

/* ---------- a single note ---------- */
.note-body{max-width:66ch}
.note-meta{color:var(--slate);font-size:0.88rem;margin:0 0 34px;
  padding-bottom:20px;border-bottom:1px solid var(--rule)}
.note-body h2{font-size:1.55rem;margin:44px 0 14px}
.note-body h3{font-size:1.2rem;margin:34px 0 10px}
.note-body p{color:var(--slate);margin:0 0 20px}
.note-body ul,.note-body ol{color:var(--slate);padding-left:22px;margin:0 0 20px}
.note-body li{margin-bottom:8px}
.note-body blockquote{margin:30px 0;padding-left:22px;
  border-left:2px solid var(--signal);
  font-family:"Newsreader",Georgia,serif;font-size:1.25rem;
  line-height:1.45;color:var(--ink)}
.note-body a{color:var(--ink)}
.back{display:inline-block;margin-top:44px;color:var(--slate);
  font-size:0.92rem;text-decoration:none;
  padding-top:24px;border-top:1px solid var(--rule);width:100%}
.back:hover{color:var(--ink)}
