@font-face{font-family:'Sora';font-weight:300;font-display:swap;src:url(fonts/sora-300.woff2) format('woff2');}
@font-face{font-family:'Sora';font-weight:400;font-display:swap;src:url(fonts/sora-400.woff2) format('woff2');}
@font-face{font-family:'Sora';font-weight:500;font-display:swap;src:url(fonts/sora-500.woff2) format('woff2');}
@font-face{font-family:'Sora';font-weight:600;font-display:swap;src:url(fonts/sora-600.woff2) format('woff2');}
@font-face{font-family:'Inst';font-weight:400;font-display:swap;src:url(fonts/inst-400.woff2) format('woff2');}
@font-face{font-family:'Inst';font-weight:500;font-display:swap;src:url(fonts/inst-500.woff2) format('woff2');}
@font-face{font-family:'Inst';font-weight:600;font-display:swap;src:url(fonts/inst-600.woff2) format('woff2');}

:root{
  --black:#050505; --ink:#0B0E16; --card:#10141F;
  --blue:#3547e5; --white:#F5F6F8; --grey:#9AA3B2; --dim:#5C6675;
  --line:rgba(255,255,255,.08);
  --display:'Sora',sans-serif; --body:'Inst',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--black);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1160px;margin:0 auto;padding:0 32px;}
.rule{height:2px;width:56px;background:var(--blue);}
.eyebrow{font-family:var(--display);font-size:.72rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--blue);margin-bottom:20px;}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}

/* NAV */
nav{position:sticky;top:0;z-index:60;background:rgba(5,5,5,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
.nav-logo img{height:44px;width:auto;}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links > a,.drop-btn{font-family:var(--display);font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);background:none;border:0;cursor:pointer;transition:color .2s;padding:0;}
.nav-links > a:hover,.drop-btn:hover,.nav-links a.on{color:var(--white);}
.drop{position:relative;}
.drop-menu{position:absolute;top:calc(100% + 22px);left:-22px;min-width:262px;background:var(--card);border:1px solid var(--line);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .18s;}
.drop:hover .drop-menu,.drop:focus-within .drop-menu{opacity:1;visibility:visible;transform:none;}
.drop-menu a{display:block;padding:12px 22px;font-family:var(--display);font-size:.85rem;font-weight:400;color:var(--grey);transition:all .15s;}
.drop-menu a:hover{color:var(--white);background:rgba(53,71,229,.14);}
.nav-cta{font-family:var(--display);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--white);border:1px solid var(--blue);padding:11px 22px;transition:background .2s;}
.nav-cta:hover{background:var(--blue);}
.burger{display:none;background:none;border:0;color:var(--white);font-size:1.5rem;cursor:pointer;line-height:1;}
@media(max-width:900px){
  .nav-links{display:none;position:absolute;top:76px;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:12px 0;}
  .nav-links.open{display:flex;}
  .nav-links > a,.drop-btn{padding:14px 32px;}
  .drop-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;background:transparent;padding:0 0 8px;min-width:0;}
  .drop-menu a{padding:11px 48px;}
  .burger{display:block;}
  .nav-cta{display:none;}
}

/* HERO */
.hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden;}
.hero.tall{min-height:88vh;}
.hero-bg{position:absolute;inset:0;background-image:url(hero.jpg);background-size:cover;background-position:center 62%;filter:saturate(.6);}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.62) 0%,rgba(5,5,5,.40) 38%,rgba(5,5,5,.94) 86%,var(--black) 100%);}
.hero-inner{position:relative;width:100%;padding-bottom:88px;}
.hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.2rem,4.8vw,4rem);line-height:1.08;letter-spacing:-.015em;max-width:17ch;}
.hero h1 .b{color:var(--blue);}
.hero p{margin-top:26px;max-width:56ch;color:var(--grey);font-size:1.06rem;}
.hero .rule{margin-bottom:26px;}
.hero-actions{margin-top:38px;display:flex;gap:16px;flex-wrap:wrap;}
@media(max-width:640px){.hero-shade{background:linear-gradient(180deg,rgba(5,5,5,.74) 0%,rgba(5,5,5,.64) 40%,rgba(5,5,5,.96) 82%,var(--black) 100%);}}

/* page hero (sub pages, no image) */
.phero{padding:96px 0 72px;border-bottom:1px solid var(--line);}
.phero h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4vw,3.2rem);line-height:1.12;letter-spacing:-.015em;max-width:20ch;}
.phero p{margin-top:24px;max-width:60ch;color:var(--grey);font-size:1.05rem;}

.btn{font-family:var(--display);font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:16px 30px;display:inline-block;transition:all .2s;}
.btn-solid{background:var(--blue);color:#fff;}
.btn-solid:hover{background:#2536c4;}
.btn-ghost{border:1px solid rgba(255,255,255,.25);}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue);}

section{padding:96px 0;}
.sec-head{max-width:700px;margin-bottom:56px;}
.sec-head h2{font-family:var(--display);font-weight:600;font-size:clamp(1.6rem,2.9vw,2.4rem);line-height:1.2;letter-spacing:-.01em;}
.sec-head p{margin-top:18px;color:var(--grey);}
h3{font-family:var(--display);font-weight:600;}

.tint{background:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* service cards (home) */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--ink);padding:44px 38px 46px;display:block;transition:background .25s;}
.card:hover{background:var(--card);}
.card .rule{width:34px;margin-bottom:24px;transition:width .25s;}
.card:hover .rule{width:56px;}
.card h3{font-size:1.25rem;line-height:1.3;margin-bottom:14px;}
.card p{color:var(--grey);font-size:.96rem;}
.card .go{margin-top:22px;font-family:var(--display);font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);}
@media(max-width:760px){.cards{grid-template-columns:1fr;}}

/* capability list */
.caps{display:grid;grid-template-columns:repeat(2,1fr);gap:44px 56px;}
.cap h3{font-size:1.08rem;margin-bottom:12px;}
.cap p{color:var(--grey);font-size:.95rem;}
.cap .rule{width:28px;margin-bottom:18px;}
@media(max-width:760px){.caps{grid-template-columns:1fr;gap:36px;}}

/* prose */
.prose{max-width:66ch;}
.prose p{color:var(--grey);}
.prose p + p{margin-top:18px;}
.lead{font-family:var(--display);font-weight:400;font-size:clamp(1.2rem,1.9vw,1.5rem);line-height:1.5;color:var(--white)!important;letter-spacing:-.005em;}
.lead .b{color:var(--blue);font-weight:500;}

/* snapshots */
.snaps{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.snap{background:var(--black);padding:38px 34px 40px;}
.snap .tag{font-family:var(--display);font-size:.68rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);margin-bottom:16px;}
.snap h3{font-size:1.02rem;line-height:1.4;margin-bottom:12px;}
.snap p{color:var(--grey);font-size:.93rem;}
@media(max-width:760px){.snaps{grid-template-columns:1fr;}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:52px;}
.pnum{font-family:var(--display);font-weight:300;font-size:2.4rem;color:var(--dim);line-height:1;margin-bottom:20px;}
.pillar h3{font-size:1.12rem;margin-bottom:12px;}
.pillar p{color:var(--grey);font-size:.95rem;}
.pillar .rule{margin-bottom:22px;}
@media(max-width:860px){.pillars{grid-template-columns:1fr;gap:40px;}}

/* band image */
.band{position:relative;height:280px;overflow:hidden;}
.band img{width:100%;height:100%;object-fit:cover;filter:saturate(.7);}
.band .shade{position:absolute;inset:0;background:linear-gradient(180deg,var(--black) 0%,rgba(5,5,5,.12) 45%,rgba(5,5,5,.12) 58%,var(--black) 100%);}

/* split */
.split{display:grid;grid-template-columns:.85fr 1.35fr;gap:72px;align-items:start;}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:32px;}}

/* contact */
.crows{display:flex;gap:60px;flex-wrap:wrap;margin-top:44px;}
.citem .lbl{font-family:var(--display);font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);margin-bottom:10px;}
.citem .val{font-family:var(--display);font-weight:500;font-size:1.12rem;}
.citem .val a:hover{color:var(--blue);}

/* next / cta strip */
.strip{border-top:1px solid var(--line);padding:76px 0;}
.strip h2{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2;max-width:20ch;}
.strip .btn{margin-top:30px;}
.rel{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;}
.rel a{font-family:var(--display);font-size:.76rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);border:1px solid var(--line);padding:11px 18px;transition:all .2s;}
.rel a:hover{color:var(--white);border-color:var(--blue);}

footer{border-top:1px solid var(--line);padding:44px 0 52px;}
.foot{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;flex-wrap:wrap;}
.foot img{height:38px;width:auto;}
.foot-nav{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px;}
.foot-nav a{font-size:.84rem;color:var(--grey);}
.foot-nav a:hover{color:var(--white);}
.legal{color:var(--dim);font-size:.8rem;line-height:1.65;text-align:right;}
@media(max-width:640px){.legal{text-align:left;}}

/* --- force the dark surface: some in app webviews inject a white page background,
       which leaves white headings invisible. Paint every block explicitly. --- */
:root{color-scheme:dark;}
html{background:#050505 !important;}
body{background:#050505 !important;color:#F5F6F8;}
header,section,footer,.strip,.band,.hero,.phero{background-color:#050505;}
.hero-bg{background-color:#050505;}
section.tint,.tint{background-color:#0B0E16;}
.cards{background-color:rgba(255,255,255,.08);}
.card{background-color:#0B0E16;}
.card:hover{background-color:#10141F;}
.snaps{background-color:rgba(255,255,255,.08);}
.snap{background-color:#050505;}
.drop-menu{background-color:#10141F;}
nav{background-color:rgba(5,5,5,.88);}
h1,h2,h3,.lead,.hero h1,.phero h1,.sec-head h2,.strip h2{color:#F5F6F8;}
.hero h1 .b,.lead .b,.eyebrow,.go{color:#3547e5;}
p,.prose p,.card p,.cap p,.snap p,.pillar p{color:#9AA3B2;}
.btn-solid{background-color:#3547e5;color:#fff;}
@media(max-width:900px){.nav-links{background-color:#10141F;}}

/* at a glance service list under the page hero */
.svclist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:2px 56px;margin-top:38px;max-width:780px;}
.svclist li{position:relative;padding:9px 0 9px 26px;font-family:var(--display);font-weight:400;font-size:.97rem;color:var(--white);line-height:1.45;border-bottom:1px solid var(--line);}
.svclist li::before{content:"";position:absolute;left:0;top:18px;width:12px;height:2px;background:var(--blue);}
@media(max-width:700px){.svclist{grid-template-columns:1fr;gap:0;margin-top:30px;}}

.foot-line{margin-top:14px;color:var(--grey);font-size:.9rem;max-width:38ch;}
.foot-nav{margin-top:18px;}
.nav-links a.on,.drop-btn.on{color:var(--white);}

/* service page heroes carry the same imagery system as the homepage */
.phero{position:relative;overflow:hidden;padding:120px 0 84px;}
.phero .wrap{position:relative;z-index:2;}
.phero-bg{position:absolute;inset:0;background-size:cover;background-position:center 45%;z-index:0;}
.phero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,5,5,.72) 0%,rgba(5,5,5,.80) 45%,rgba(5,5,5,.95) 82%,#050505 100%);}
.p-strategy .phero-bg{background-image:url(band-strategy.jpg);}
.p-risk .phero-bg{background-image:url(band-risk.jpg);}
.p-managed .phero-bg{background-image:url(band-managed.jpg);}
.p-technology .phero-bg{background-image:url(band-technology.jpg);}
.p-about .phero-bg{background-image:url(band-strategy.jpg);}
.p-contact .phero-bg{background-image:url(band-technology.jpg);}
@media(max-width:640px){.phero{padding:88px 0 64px;}.phero-shade{background:linear-gradient(180deg,rgba(5,5,5,.80) 0%,rgba(5,5,5,.86) 45%,rgba(5,5,5,.97) 82%,#050505 100%);}}

/* ---- surfaces: capability, list and pillar blocks become cards, not document text ---- */
.caps{gap:20px;}
.cap{background:var(--card);border:1px solid var(--line);padding:30px 28px 32px;transition:border-color .22s,transform .22s,box-shadow .22s,background .22s;}
.cap:hover{border-color:rgba(53,71,229,.55);background:#141926;transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.55);}
.cap .rule{width:24px;margin-bottom:18px;transition:width .22s;}
.cap:hover .rule{width:44px;}
.cap h3{font-size:1.05rem;line-height:1.35;margin-bottom:12px;}

.svclist{gap:14px 20px;max-width:920px;}
.svclist li{background:var(--card);border:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 20px 17px 42px;font-size:.95rem;transition:border-color .2s,background .2s;}
.svclist li:hover{border-color:rgba(53,71,229,.5);background:#141926;}
.svclist li::before{left:20px;top:26px;width:12px;}
@media(max-width:700px){.svclist{gap:12px;}.svclist li{padding:15px 18px 15px 38px;}.svclist li::before{left:18px;top:24px;}}

.pillars{gap:20px;}
.pillar{background:var(--card);border:1px solid var(--line);padding:32px 30px 34px;transition:border-color .22s,transform .22s,box-shadow .22s;}
.pillar:hover{border-color:rgba(53,71,229,.5);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.5);}
.pnum{font-size:2rem;margin-bottom:16px;}
.pillar .rule{width:24px;margin-bottom:18px;}
@media(max-width:860px){.pillars{gap:16px;}}

/* list tiles sit over the hero image, so let a little of it through */
.svclist li{background:rgba(16,20,31,.72);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
.svclist li:hover{background:rgba(20,25,38,.88);}

/* homepage cards use the same card language as the rest of the site */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:transparent;border:0;}
.card{background:var(--card);border:1px solid var(--line);padding:38px 34px 40px;transition:border-color .22s,transform .22s,box-shadow .22s,background .22s;}
.card:hover{background:#141926;border-color:rgba(53,71,229,.55);transform:translateY(-3px);box-shadow:0 20px 44px rgba(0,0,0,.55);}
.card .rule{width:24px;}
.card:hover .rule{width:44px;}
.card .go{margin-top:24px;}
@media(max-width:760px){.cards{grid-template-columns:1fr;gap:16px;}}

/* ---- glass tiles: no marker, faint blue edge, real depth ---- */
.svclist{gap:16px 20px;}
.svclist li{
  background:linear-gradient(160deg,rgba(30,38,62,.52) 0%,rgba(12,16,26,.44) 100%);
  border:1px solid rgba(53,71,229,.30);
  border-top-color:rgba(120,138,255,.42);
  backdrop-filter:blur(13px) saturate(1.15);
  -webkit-backdrop-filter:blur(13px) saturate(1.15);
  box-shadow:0 14px 32px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.07);
  padding:19px 22px;
  transition:border-color .24s, box-shadow .24s, transform .24s, background .24s;
}
.svclist li::before{display:none;}
.svclist li:hover{
  border-color:rgba(53,71,229,.68);
  background:linear-gradient(160deg,rgba(40,50,82,.62) 0%,rgba(16,21,34,.52) 100%);
  box-shadow:0 20px 42px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.11);
  transform:translateY(-2px);
}
@media(max-width:700px){.svclist{gap:12px;}.svclist li{padding:16px 18px;}}

/* let more of the hero read through the glass */
.phero-shade{background:linear-gradient(180deg,rgba(5,5,5,.58) 0%,rgba(5,5,5,.62) 45%,rgba(5,5,5,.90) 84%,#050505 100%);}
@media(max-width:640px){.phero-shade{background:linear-gradient(180deg,rgba(5,5,5,.70) 0%,rgba(5,5,5,.74) 45%,rgba(5,5,5,.94) 84%,#050505 100%);}}

/* same panel language on capability, service and pillar cards */
.cap,.card,.pillar{
  background:linear-gradient(160deg,rgba(30,38,62,.42) 0%,rgba(12,16,26,.30) 100%);
  border:1px solid rgba(53,71,229,.26);
  border-top-color:rgba(120,138,255,.36);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 16px 36px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.06);
}
.cap:hover,.card:hover,.pillar:hover{
  background:linear-gradient(160deg,rgba(40,50,82,.55) 0%,rgba(16,21,34,.40) 100%);
  border-color:rgba(53,71,229,.62);
  box-shadow:0 24px 48px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.10);
  transform:translateY(-3px);
}
/* the dash marker goes; the panel edge carries the brand colour now */
.cap .rule,.card .rule{display:none;}
.cap h3,.card h3{margin-top:0;}
.pillar .rule{display:none;}
.pnum{color:rgba(120,138,255,.65);margin-bottom:14px;}

/* ================= editorial index: rows, not boxes ================= */
.cap,.card,.pillar{
  background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:none;transform:none;padding:0;
}
.cap:hover,.card:hover,.pillar:hover{background:none;box-shadow:none;transform:none;border:0;}

.caps{display:block;counter-reset:cap;margin-top:8px;}
.cap{
  counter-increment:cap;
  display:grid;grid-template-columns:96px minmax(220px,1fr) 1.45fr;
  gap:0 40px;align-items:start;
  padding:38px 24px 38px 0;
  border-top:1px solid var(--line);
  transition:background .22s;
}
.caps .cap:last-child{border-bottom:1px solid var(--line);}
.cap::before{
  content:"0" counter(cap);
  font-family:var(--display);font-weight:300;font-size:1.05rem;letter-spacing:.06em;
  color:var(--dim);padding-top:.5rem;transition:color .22s;
}
.cap h3{
  font-size:1.55rem;font-weight:500;line-height:1.25;letter-spacing:-.015em;
  margin:0;color:var(--white);transition:color .22s;
}
.cap p{font-size:.98rem;line-height:1.75;color:var(--grey);margin:0;padding-top:.35rem;}
.cap:hover{background:rgba(53,71,229,.05);}
.cap:hover::before{color:var(--blue);}
.cap:hover h3{color:#fff;}
@media(max-width:900px){
  .cap{grid-template-columns:56px 1fr;gap:0 18px;padding:28px 0;}
  .cap h3{font-size:1.25rem;}
  .cap p{grid-column:2;padding-top:12px;}
  .cap::before{font-size:.9rem;padding-top:.35rem;}
}

/* homepage cards and approach pillars follow the same restraint */
.cards{gap:0;display:block;}
.card{display:block;padding:34px 24px 34px 0;border-top:1px solid var(--line);transition:background .22s;}
.cards .card:last-child{border-bottom:1px solid var(--line);}
.card:hover{background:rgba(53,71,229,.05);}
.card h3{font-size:1.6rem;font-weight:500;letter-spacing:-.015em;margin-bottom:12px;}
.card p{max-width:64ch;}
.card .go{margin-top:16px;}

.pillars{display:block;counter-reset:none;}
.pillar{display:grid;grid-template-columns:96px 1fr 1.45fr;gap:0 40px;align-items:start;padding:38px 24px 38px 0;border-top:1px solid var(--line);transition:background .22s;}
.pillars .pillar:last-child{border-bottom:1px solid var(--line);}
.pillar:hover{background:rgba(53,71,229,.05);}
.pnum{font-family:var(--display);font-weight:300;font-size:1.05rem;letter-spacing:.06em;color:var(--dim);margin:0;padding-top:.5rem;}
.pillar h3{font-size:1.55rem;font-weight:500;line-height:1.25;letter-spacing:-.015em;margin:0;}
.pillar p{font-size:.98rem;line-height:1.75;margin:0;padding-top:.35rem;}
@media(max-width:900px){
  .pillar{grid-template-columns:56px 1fr;gap:0 18px;padding:28px 0;}
  .pillar h3{font-size:1.25rem;}
  .pillar p{grid-column:2;padding-top:12px;}
}

/* homepage rows use the full measure: title, description, action */
.card{display:grid;grid-template-columns:minmax(260px,1fr) 1.45fr 130px;gap:0 40px;align-items:start;padding:40px 24px 40px 0;}
.card h3{margin:0;font-size:1.7rem;}
.card p{margin:0;padding-top:.4rem;max-width:none;font-size:.98rem;line-height:1.75;}
.card .go{margin:0;padding-top:.6rem;text-align:right;transition:color .22s,transform .22s;}
.card:hover .go{transform:translateX(4px);}
@media(max-width:900px){
  .card{grid-template-columns:1fr;gap:0;padding:30px 0;}
  .card h3{font-size:1.3rem;}
  .card p{padding-top:12px;}
  .card .go{text-align:left;padding-top:16px;}
}

/* prose sections run down the page, not offset into a right column */
.split{display:block;}
.split > div:first-child{margin-bottom:26px;}
.split > div:first-child .rule{margin-top:0;}
.split .prose{max-width:70ch;}

/* services summary: scannable index between the hero and the problem */
.sumlist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin-top:6px;}
.sumlist li{
  font-family:var(--display);font-weight:400;font-size:1.06rem;line-height:1.4;
  color:var(--white);padding:18px 0;border-bottom:1px solid var(--line);
}
.sumlist li:first-child,.sumlist li:nth-child(2){border-top:1px solid var(--line);}
@media(max-width:760px){
  .sumlist{grid-template-columns:1fr;gap:0;}
  .sumlist li:nth-child(2){border-top:0;}
  .sumlist li{font-size:1rem;padding:16px 0;}
}

/* ==================== TYPE SCALE ====================
   one scale, applied everywhere. sizes differ by level, never by accident. */
:root{
  --t-micro:.72rem;   /* eyebrows, buttons, inline actions */
  --t-small:.875rem;  /* footer, legal, captions */
  --t-body:1rem;      /* every paragraph on the site */
  --t-list:1.125rem;  /* service summary lists */
  --t-h3:1.5rem;      /* row and card titles */
  --t-h2:clamp(1.75rem,2.6vw,2.2rem);
  --t-h1:clamp(2.1rem,3.6vw,3.2rem);
  --t-hero:clamp(2.6rem,5vw,4rem);
}

/* headings */
.hero h1{font-size:var(--t-hero);font-weight:600;line-height:1.08;letter-spacing:-.02em;}
.phero h1{font-size:var(--t-h1);font-weight:600;line-height:1.12;letter-spacing:-.02em;}
.sec-head h2,.strip h2{font-size:var(--t-h2);font-weight:600;line-height:1.2;letter-spacing:-.015em;}
.cap h3,.card h3,.pillar h3{font-size:var(--t-h3);font-weight:500;line-height:1.28;letter-spacing:-.015em;}
h3{letter-spacing:-.01em;}

/* lead paragraphs */
.lead{font-size:1.4rem;font-weight:400;line-height:1.5;letter-spacing:-.005em;}

/* body copy: one size, one rhythm */
.prose p,.cap p,.card p,.pillar p,.sec-head p,.hero p,.phero p,.citem .val{
  font-size:var(--t-body);line-height:1.72;letter-spacing:0;
}
.hero p,.phero p{line-height:1.65;}
.citem .val{font-family:var(--display);font-weight:500;font-size:1.05rem;}

/* lists */
.sumlist li{font-size:var(--t-list);font-weight:400;line-height:1.4;letter-spacing:-.005em;}

/* micro labels: same size, differentiated by tracking */
.eyebrow{font-size:var(--t-micro);letter-spacing:.3em;}
.btn{font-size:var(--t-micro);letter-spacing:.18em;}
.go{font-size:var(--t-micro);letter-spacing:.2em;}
.nav-links > a,.drop-btn,.nav-cta{font-size:var(--t-micro);letter-spacing:.16em;}
.citem .lbl{font-size:var(--t-micro);letter-spacing:.26em;}
.cap::before,.pnum{font-size:var(--t-body);font-weight:300;letter-spacing:.06em;}

/* small copy */
.foot-line,.foot-nav a,.legal,.drop-menu a{font-size:var(--t-small);}
.rel a{font-size:var(--t-micro);letter-spacing:.14em;}

/* about profile name matches the row title level */
.pr-name{font-size:var(--t-h3);font-weight:600;}

/* specificity corrections so the scale actually lands */
.prose p.lead,p.lead,.lead{font-size:1.4rem;line-height:1.5;font-weight:400;}
.card .go,.cap .go,.go{font-size:var(--t-micro);letter-spacing:.2em;}
.pr-name{font-weight:500;}

/* line height follows the scale too */
.pr-name{line-height:1.28;}
p,.prose p,.cap p,.card p,.pillar p,.sec-head p,.hero p,.phero p{line-height:1.72;}
.foot-line,.legal{line-height:1.65;}
.pnum,.cap::before{line-height:1.4;}

/* headings are headings wherever they appear */
h2{font-size:var(--t-h2);font-weight:600;line-height:1.2;letter-spacing:-.015em;color:var(--white);}
.prose h2{margin-bottom:24px;max-width:22ch;}
.prose h2 + p{margin-top:0;}
.lead{font-size:var(--t-body);font-weight:400;line-height:1.72;}
.sum-h2{margin-bottom:34px;}
/* headings share one measure, wherever they sit */
.prose h2,.sum-h2,.sec-head h2{max-width:26ch;margin-bottom:26px;}
.split > div:first-child{margin-bottom:18px;}

/* logo at a size that reads */
.nav-inner{height:92px;}
.nav-logo img{height:64px;}
.foot img{height:58px;}
@media(max-width:900px){
  .nav-inner{height:80px;}
  .nav-logo img{height:52px;}
  .nav-links{top:80px;}
}

/* service marks: brand photography, cropped round, one per discipline */
.card{grid-template-columns:104px minmax(230px,1fr) 1.35fr 120px;gap:0 34px;align-items:start;}
.cardico{
  display:block;width:84px;height:84px;border-radius:50%;
  background-size:cover;background-position:center;
  filter:saturate(.9);
  box-shadow:0 0 0 1px rgba(53,71,229,.28);
  transition:box-shadow .25s,transform .25s,filter .25s;
}
.card:hover .cardico{box-shadow:0 0 0 1px rgba(53,71,229,.75);transform:scale(1.04);filter:saturate(1.1) brightness(1.08);}
@media(max-width:900px){
  .card{grid-template-columns:64px 1fr;gap:0 20px;}
  .cardico{width:56px;height:56px;}
  .card h3{grid-column:2;}
  .card p,.card .go{grid-column:2;}
}

/* profile portrait */
.portrait{
  width:180px;height:180px;border-radius:50%;
  background-size:cover;background-position:center 30%;
  box-shadow:0 0 0 1px rgba(53,71,229,.30);
  margin-bottom:26px;
}
@media(max-width:900px){.portrait{width:132px;height:132px;margin-bottom:22px;}}

/* ---- knight watermark: one presence per page, bleeding off the edge ---- */
.wm{position:relative;overflow:hidden;}
.wm::after{
  content:"";position:absolute;pointer-events:none;
  right:-90px;top:50%;transform:translateY(-50%);
  width:420px;height:582px;
  background:url(knight.png) center/contain no-repeat;
  opacity:.05;z-index:0;
}
.wm > .wrap{position:relative;z-index:1;}
@media(max-width:1100px){.wm::after{display:none;}}

/* the plinth rule from under the mark becomes the divider device */
.cap,.card,.pillar,.sumlist li{border-top:1px solid rgba(53,71,229,.20);}
.caps .cap:last-child,.cards .card:last-child,.pillars .pillar:last-child{border-bottom:1px solid rgba(53,71,229,.20);}
.sumlist li{border-bottom:1px solid rgba(53,71,229,.20);border-top:0;}
.sumlist li:first-child,.sumlist li:nth-child(2){border-top:1px solid rgba(53,71,229,.20);}

/* watermark was too faint to register; give it presence without competing */
.wm::after{
  right:-40px;
  width:520px;height:720px;
  opacity:.11;
}
@media(max-width:1250px){.wm::after{right:-140px;opacity:.08;}}
@media(max-width:1000px){.wm::after{display:none;}}

/* the watermark drifts as its section passes through the viewport */
.wm{--wmY:0px;--wmR:0deg;}
.wm::after{
  transform:translateY(calc(-50% + var(--wmY))) rotate(var(--wmR));
  will-change:transform;
}
@media(prefers-reduced-motion:reduce){
  .wm::after{transform:translateY(-50%);}
}

/* the horizon in the hero photograph ran straight through the headline.
   a left scrim suppresses image detail behind the copy at any viewport size. */
.hero-shade{
  background:
    linear-gradient(90deg, rgba(5,5,5,.88) 0%, rgba(5,5,5,.72) 38%, rgba(5,5,5,.18) 68%, rgba(5,5,5,0) 88%),
    linear-gradient(180deg, rgba(5,5,5,.52) 0%, rgba(5,5,5,.30) 38%, rgba(5,5,5,.90) 86%, #050505 100%);
}
@media(max-width:640px){
  .hero-shade{background:linear-gradient(180deg,rgba(5,5,5,.72) 0%,rgba(5,5,5,.66) 40%,rgba(5,5,5,.96) 82%,#050505 100%);}
}

/* insurance: the headline sits above whatever detail is behind it, at any viewport height */
.hero h1,.hero p{text-shadow:0 2px 26px rgba(5,5,5,.85), 0 1px 3px rgba(5,5,5,.6);}
.phero h1,.phero p{text-shadow:0 2px 22px rgba(5,5,5,.75);}

/* ---- lift the whole page out of the murk ---- */
:root{
  --white:#FFFFFF;
  --grey:#B9C1CE;      /* body copy was too dim against near black */
  --dim:#7C8697;
}
body{color:#EDEFF3;}
h1,h2,h3,.lead,.pr-name{color:#FFFFFF;}
p,.prose p,.cap p,.card p,.pillar p,.sec-head p,.hero p,.phero p,.foot-line{color:#B9C1CE;}
.sumlist li{color:#FFFFFF;}
.legal,.foot-nav a{color:#9AA4B4;}
.cap::before,.pnum{color:#8E99AB;}

/* page heroes: image reads as texture, copy reads first */
.phero-shade{
  background:
    linear-gradient(90deg, rgba(5,5,5,.94) 0%, rgba(5,5,5,.86) 42%, rgba(5,5,5,.45) 72%, rgba(5,5,5,.18) 100%),
    linear-gradient(180deg, rgba(5,5,5,.60) 0%, rgba(5,5,5,.66) 45%, rgba(5,5,5,.92) 86%, #050505 100%);
}
@media(max-width:640px){
  .phero-shade{background:linear-gradient(180deg,rgba(5,5,5,.84) 0%,rgba(5,5,5,.86) 45%,rgba(5,5,5,.96) 84%,#050505 100%);}
}
.phero-bg{filter:brightness(.72) contrast(1.05);}

/* dividers and eyebrows carry more weight */
.cap,.card,.pillar{border-top-color:rgba(53,71,229,.34);}
.caps .cap:last-child,.cards .card:last-child,.pillars .pillar:last-child{border-bottom-color:rgba(53,71,229,.34);}
.sumlist li{border-bottom-color:rgba(53,71,229,.34);}
.sumlist li:first-child,.sumlist li:nth-child(2){border-top-color:rgba(53,71,229,.34);}
.eyebrow{color:#5C6DF0;}
.wm::after{opacity:.13;}

/* copy stays crisp on the left, image still reads on the right */
.phero-shade{
  background:
    linear-gradient(90deg, rgba(5,5,5,.93) 0%, rgba(5,5,5,.82) 40%, rgba(5,5,5,.32) 70%, rgba(5,5,5,.04) 100%),
    linear-gradient(180deg, rgba(5,5,5,.48) 0%, rgba(5,5,5,.52) 45%, rgba(5,5,5,.90) 86%, #050505 100%);
}
.phero-bg{filter:brightness(.95) contrast(1.06);}
@media(max-width:640px){
  .phero-shade{background:linear-gradient(180deg,rgba(5,5,5,.84) 0%,rgba(5,5,5,.86) 45%,rgba(5,5,5,.96) 84%,#050505 100%);}
}

/* ---- rows read as bands, not text floating in black ---- */
section.tint,.tint{background-color:#10151F;}
.ink,body{background-color:#070A11;}
html{background:#070A11 !important;}
body{background:#070A11 !important;}
header,section,footer,.strip,.band,.hero,.phero{background-color:#070A11;}

.card,.cap,.pillar{
  background:rgba(255,255,255,.028);
  padding-left:26px;padding-right:26px;
  transition:background .2s;
}
.card:hover,.cap:hover,.pillar:hover{background:rgba(53,71,229,.10);}
.caps,.cards,.pillars{gap:8px;}
.cap,.card,.pillar{border-top:1px solid rgba(53,71,229,.38);}
.caps .cap:last-child,.cards .card:last-child,.pillars .pillar:last-child{border-bottom:1px solid rgba(53,71,229,.38);}

/* description column carries more of the measure so rows do not trail off */
.card{grid-template-columns:104px minmax(220px,.95fr) 1.6fr 116px;gap:0 30px;padding-top:32px;padding-bottom:32px;}
.cap{grid-template-columns:80px minmax(210px,.95fr) 1.55fr;gap:0 30px;padding-top:30px;padding-bottom:30px;}
.pillar{grid-template-columns:80px minmax(210px,.95fr) 1.55fr;gap:0 30px;padding-top:30px;padding-bottom:30px;}

/* copy at full strength */
.card p,.cap p,.pillar p{color:#C6CDD9;}
.card h3,.cap h3,.pillar h3{color:#FFFFFF;}
.go{color:#6D7CF5;}
.card:hover .go{color:#8E9AFF;}
@media(max-width:900px){
  .card,.cap,.pillar{padding-left:18px;padding-right:18px;}
}

/* mobile: the row padding was pushing copy past the edge */
@media(max-width:900px){
  .card{grid-template-columns:56px 1fr;gap:0 16px;padding:24px 16px;}
  .cap,.pillar{grid-template-columns:44px 1fr;gap:0 14px;padding:24px 16px;}
  .card p,.card .go,.cap p,.pillar p{grid-column:2;}
  .cardico{width:48px;height:48px;}
}

/* ---- enquiry form ---- */
.enq{max-width:760px;}
.enq-row{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;}
.enq label{display:block;margin-bottom:22px;font-family:var(--display);font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#8E99AB;}
.enq .opt{text-transform:none;letter-spacing:0;font-size:.8rem;color:#6B7484;margin-left:6px;}
.enq input,.enq textarea,.enq select{
  display:block;width:100%;margin-top:10px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(53,71,229,.34);
  color:#FFFFFF;
  font-family:var(--body);font-size:1rem;letter-spacing:0;text-transform:none;
  padding:14px 16px;border-radius:0;
  transition:border-color .2s,background .2s;
}
.enq textarea{resize:vertical;line-height:1.6;}
.enq select{appearance:none;-webkit-appearance:none;cursor:pointer;}
.enq input:focus,.enq textarea:focus,.enq select:focus{
  outline:none;border-color:#5C6DF0;background:rgba(53,71,229,.10);
}
.enq input::placeholder,.enq textarea::placeholder{color:#6B7484;}
.enq button{margin-top:6px;border:0;cursor:pointer;font-family:var(--display);}
.enq-note{margin-top:18px;font-size:.875rem;color:#8E99AB;}
@media(max-width:700px){.enq-row{grid-template-columns:1fr;gap:0;}}

/* logo scaled up again */
.nav-inner{height:120px;}
.nav-logo img{height:92px;}
.foot img{height:82px;}
@media(max-width:900px){
  .nav-inner{height:96px;}
  .nav-logo img{height:70px;}
  .nav-links{top:96px;}
}

/* ---- separator bands: photography as punctuation between sections ---- */
.sep{position:relative;height:300px;overflow:hidden;}
.sep::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;}
.sep::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,#070A11 0%,rgba(7,10,17,.34) 42%,rgba(7,10,17,.38) 58%,#070A11 100%);}
.sep-1::before{background-image:url(sep-1.jpg);}
.sep-2::before{background-image:url(sep-2.jpg);}
.sep-3::before{background-image:url(sep-3.jpg);}
.sep-4::before{background-image:url(sep-4.jpg);}
.sep.on-tint::after{background:linear-gradient(180deg,#10151F 0%,rgba(16,21,31,.34) 42%,rgba(16,21,31,.38) 58%,#10151F 100%);}
@media(max-width:700px){.sep{height:200px;}}

/* a whisper of brand colour in the tinted sections so they are not flat grey */
section.tint,.tint{
  background-image:radial-gradient(1200px 420px at 82% 12%, rgba(53,71,229,.10) 0%, rgba(53,71,229,0) 68%);
}
.strip{
  background-image:radial-gradient(900px 380px at 8% 100%, rgba(53,71,229,.12) 0%, rgba(53,71,229,0) 70%);
}
.hero-shade{
  background:
    linear-gradient(90deg, rgba(5,5,8,.90) 0%, rgba(6,8,16,.70) 40%, rgba(6,8,16,.18) 72%, rgba(6,8,16,0) 92%),
    linear-gradient(180deg, rgba(6,8,16,.42) 0%, rgba(8,10,22,.30) 38%, rgba(7,10,17,.90) 86%, #070A11 100%);
}

/* approach diagram */
.diagram{margin:0 0 56px;}
.diagram svg{width:100%;height:auto;max-width:1000px;display:block;}
@media(max-width:760px){.diagram{display:none;}}

/* watermark retired */
.wm::after{display:none !important;}

/* the hero photograph opens every page; the bands vary as you scroll */
.phero-bg{background-image:url(hero.jpg) !important;background-position:center 58% !important;}
.band-strategy::before{background-image:url(band-strategy.jpg);}
.band-risk::before{background-image:url(band-risk.jpg);}
.band-managed::before{background-image:url(band-managed.jpg);}
.band-technology::before{background-image:url(band-technology.jpg);}
.sep-5::before{background-image:url(sep-5.jpg);}
.sep-6::before{background-image:url(sep-6.jpg);}
.sep-7::before{background-image:url(sep-7.jpg);}
.sep-8::before{background-image:url(sep-8.jpg);}
.phero-bg{background-position:center 50% !important;}

/* ---- imagery visible across the full width ---- */
.hero-shade{
  background:linear-gradient(180deg, rgba(6,8,14,.30) 0%, rgba(6,8,14,.22) 42%, rgba(7,10,17,.78) 84%, #070A11 100%);
}
@media(max-width:640px){
  .hero-shade{background:linear-gradient(180deg,rgba(6,8,14,.44) 0%,rgba(6,8,14,.40) 42%,rgba(7,10,17,.88) 84%,#070A11 100%);}
}
.hero-bg{filter:brightness(1.18) contrast(1.04);}

.phero-shade{
  background:linear-gradient(180deg, rgba(6,8,14,.34) 0%, rgba(6,8,14,.30) 45%, rgba(7,10,17,.80) 86%, #070A11 100%);
}
@media(max-width:640px){
  .phero-shade{background:linear-gradient(180deg,rgba(6,8,14,.50) 0%,rgba(6,8,14,.46) 45%,rgba(7,10,17,.90) 86%,#070A11 100%);}
}
.phero-bg{filter:brightness(1.15) contrast(1.04) !important;}

/* copy holds against a brighter image with a firmer shadow */
.hero h1,.phero h1{text-shadow:0 2px 4px rgba(4,6,12,.85), 0 6px 34px rgba(4,6,12,.75);}
.hero p,.phero p{text-shadow:0 1px 3px rgba(4,6,12,.9), 0 4px 22px rgba(4,6,12,.7);}
.hero .eyebrow,.phero .eyebrow{text-shadow:0 1px 6px rgba(4,6,12,.9);}

/* bands lighten too */
.sep::after{background:linear-gradient(180deg,#070A11 0%,rgba(7,10,17,.06) 40%,rgba(7,10,17,.08) 60%,#070A11 100%);}
.sep.on-tint::after{background:linear-gradient(180deg,#10151F 0%,rgba(16,21,31,.06) 40%,rgba(16,21,31,.08) 60%,#10151F 100%);}
.sep::before{filter:brightness(1.22) contrast(1.05);}

/* copy over a brighter image needs more weight */
.hero p,.phero p{color:#EAEEF6;text-shadow:0 1px 3px rgba(4,6,12,.95), 0 4px 20px rgba(4,6,12,.85);}
.hero-inner::before,.phero .wrap::before{
  content:"";position:absolute;left:-40px;right:-40px;top:-40px;bottom:-30px;z-index:-1;
  background:radial-gradient(120% 100% at 20% 60%, rgba(5,7,13,.62) 0%, rgba(5,7,13,.34) 45%, rgba(5,7,13,0) 78%);
  pointer-events:none;
}
.hero-inner,.phero .wrap{position:relative;}

/* the radial behind the copy showed its own edges; text shadow does the work instead */
.hero-inner::before,.phero .wrap::before{display:none;}
.hero h1,.phero h1{text-shadow:0 2px 5px rgba(4,6,12,.92), 0 8px 40px rgba(4,6,12,.85);}
.hero p,.phero p{text-shadow:0 1px 4px rgba(4,6,12,.96), 0 3px 18px rgba(4,6,12,.9);}
.hero-shade{
  background:
    linear-gradient(90deg, rgba(6,8,14,.52) 0%, rgba(6,8,14,.34) 34%, rgba(6,8,14,.06) 62%, rgba(6,8,14,0) 84%),
    linear-gradient(180deg, rgba(6,8,14,.26) 0%, rgba(6,8,14,.20) 42%, rgba(7,10,17,.80) 84%, #070A11 100%);
}
.phero-shade{
  background:
    linear-gradient(90deg, rgba(6,8,14,.54) 0%, rgba(6,8,14,.36) 34%, rgba(6,8,14,.08) 62%, rgba(6,8,14,0) 84%),
    linear-gradient(180deg, rgba(6,8,14,.28) 0%, rgba(6,8,14,.24) 45%, rgba(7,10,17,.82) 86%, #070A11 100%);
}
@media(max-width:640px){
  .hero-shade,.phero-shade{background:linear-gradient(180deg,rgba(6,8,14,.52) 0%,rgba(6,8,14,.46) 44%,rgba(7,10,17,.90) 84%,#070A11 100%);}
}

/* comparison rows: no index number, wider description */
.compare .cap{grid-template-columns:minmax(220px,.7fr) 1.6fr;gap:0 40px;}
.compare .cap::before{display:none;}
.compare .cap h3{color:#FFFFFF;}
.compare .cap:last-child{background:rgba(53,71,229,.09);}
.compare .cap:last-child h3{color:#8E9AFF;}
@media(max-width:900px){.compare .cap{grid-template-columns:1fr;}.compare .cap p{grid-column:1;padding-top:12px;}}

/* hero dimmed a touch: image still reads, copy sits more comfortably */
.hero-shade{
  background:
    linear-gradient(90deg, rgba(6,8,14,.62) 0%, rgba(6,8,14,.46) 34%, rgba(6,8,14,.16) 62%, rgba(6,8,14,.04) 84%),
    linear-gradient(180deg, rgba(6,8,14,.38) 0%, rgba(6,8,14,.32) 42%, rgba(7,10,17,.84) 84%, #070A11 100%);
}
.phero-shade{
  background:
    linear-gradient(90deg, rgba(6,8,14,.62) 0%, rgba(6,8,14,.46) 34%, rgba(6,8,14,.18) 62%, rgba(6,8,14,.04) 84%),
    linear-gradient(180deg, rgba(6,8,14,.38) 0%, rgba(6,8,14,.34) 45%, rgba(7,10,17,.86) 86%, #070A11 100%);
}
.hero-bg{filter:brightness(1.06) contrast(1.04);}
.phero-bg{filter:brightness(1.04) contrast(1.04) !important;}
@media(max-width:640px){
  .hero-shade,.phero-shade{background:linear-gradient(180deg,rgba(6,8,14,.60) 0%,rgba(6,8,14,.54) 44%,rgba(7,10,17,.92) 84%,#070A11 100%);}
}

/* the Services item is a button; give it the same box as the anchors */
.nav-links > a,.drop-btn{line-height:1.7;display:inline-block;vertical-align:middle;font-family:var(--display);}
.drop-btn{background:none;border:0;padding:0;margin:0;cursor:pointer;color:var(--grey);}
.drop{display:inline-flex;align-items:center;}
.nav-links{align-items:center;}

/* jump strip for the long About page */
.jump{border-bottom:1px solid rgba(53,71,229,.30);background:#0A0E17;position:sticky;top:120px;z-index:40;}
.jump .wrap{display:flex;gap:34px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px;}
.jump a{font-family:var(--display);font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);transition:color .2s;}
.jump a:hover{color:#FFFFFF;}
section[id]{scroll-margin-top:190px;}
@media(max-width:900px){
  .jump{top:96px;}
  .jump .wrap{gap:18px;padding-top:14px;padding-bottom:14px;overflow-x:auto;flex-wrap:nowrap;}
  .jump a{white-space:nowrap;}
  section[id]{scroll-margin-top:150px;}
}

/* enquiry form status and confirmation */
.enq-status{margin-top:.75rem;font-size:.95rem;line-height:1.5;}
.enq-status[data-state="error"]{color:#ff8f8f;}
.enq-done h3{margin:0 0 .5rem;font-size:1.35rem;letter-spacing:-0.01em;}
.enq-done p{margin:0;opacity:.75;}
