:root{color-scheme:light only}
html,body{background:#FFFFFF}
:root{
  --navy:#0A2240; --navy-2:#0F2E55; --navy-3:#163F70; --deep:#0A2240;
  --blue:#4A90E2; --blue-soft:#8FB9EC; --gold:#FFD658;
  --paper:#FFFFFF; --mist:#F3F5F8; --ink:#0A2240; --text:#2A3647; --muted:#667487; --rule:#D9E0E8;
  --on-navy-muted:#A6B8CF; --navy-rule:rgba(255,255,255,.15);
  --sans:"IBM Plex Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --mark:"Cormorant SC", Georgia, serif;
  --gut:56px; --sec:84px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0; background:var(--paper); color:var(--text); font-family:var(--sans); font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:2px solid var(--blue); outline-offset:3px}
.wrap{max-width:1280px; margin:0 auto; padding:0 var(--gut)}
h1,h2,h3{font-weight:300; color:var(--ink); margin:0; letter-spacing:-.005em}
.label{font-size:14.5px; color:var(--blue); margin:0}
section{padding:var(--sec) 0}
.mist{background:var(--mist)}
.arrow{display:inline-block; width:34px; height:1px; background:currentColor; position:relative; vertical-align:middle; margin-left:14px; transition:width .25s}
.arrow::after{content:""; position:absolute; right:0; top:-4px; width:8px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg)}
a:hover .arrow{width:48px}
.link{display:inline-flex; align-items:center; color:var(--blue); text-decoration:none; font-size:15px}

/* ---------- Header ---------- */
.top{position:absolute; left:0; right:0; top:env(safe-area-inset-top,0px); z-index:30}
.bar{display:flex; justify-content:space-between; align-items:center; height:104px}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:#fff}
.brand .logo{height:78px; width:auto; display:block}
.mainnav{display:flex; align-items:center; gap:30px}
.mainnav > a{color:var(--on-navy-muted); text-decoration:none; font-size:14.5px; transition:color .2s}
.mainnav > a:hover,.mainnav > a.on{color:#fff}
.dd{position:relative}
.dd > button{all:unset; cursor:pointer; color:var(--on-navy-muted); font-size:14.5px; display:inline-flex; align-items:center; gap:8px; padding:10px 0; transition:color .2s}
.dd > button i{width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .3s}
.dd:hover > button,.dd.open > button,.dd > button.on{color:#fff}
.dd:hover > button i,.dd.open > button i{transform:rotate(225deg) translateY(-1px)}
.dd > button:focus-visible{outline:2px solid var(--blue); outline-offset:4px}
.menu{position:absolute; left:-22px; top:100%; min-width:270px; padding:12px 0; background:#0D2A4F; border-top:2px solid var(--blue); box-shadow:0 24px 48px -24px rgba(0,0,0,.7);
  clip-path:inset(0 0 100% 0); opacity:0; visibility:hidden; transition:clip-path .45s cubic-bezier(.2,.8,.2,1), opacity .3s, visibility 0s .45s; z-index:10}
.dd:hover .menu,.dd.open .menu{clip-path:inset(0 0 0 0); opacity:1; visibility:visible; transition:clip-path .45s cubic-bezier(.2,.8,.2,1), opacity .25s, visibility 0s}
.menu a{display:block; padding:10px 22px; color:var(--on-navy-muted); font-size:14.5px; text-decoration:none; white-space:nowrap; opacity:0; transform:translateY(-6px); transition:opacity .3s, transform .3s, color .2s, background .2s}
.dd:hover .menu a,.dd.open .menu a{opacity:1; transform:none}
.menu a:nth-child(2){transition-delay:.04s}.menu a:nth-child(3){transition-delay:.08s}.menu a:nth-child(4){transition-delay:.12s}.menu a:nth-child(5){transition-delay:.16s}.menu a:nth-child(6){transition-delay:.2s}
.menu a:hover,.menu a:focus-visible{color:#fff; background:rgba(74,144,226,.12)}
.burger{all:unset; display:none; cursor:pointer; width:44px; height:44px; position:relative}
.burger span{position:absolute; left:10px; right:10px; height:1px; background:#fff; transition:transform .4s cubic-bezier(.2,.8,.2,1), opacity .3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mnav{position:absolute; left:0; right:0; top:calc(env(safe-area-inset-top,0px) + 104px); z-index:29; background:#0D2A4F; display:grid; grid-template-rows:0fr; transition:grid-template-rows .55s cubic-bezier(.2,.8,.2,1), visibility 0s .55s; visibility:hidden}
.mnav.open{grid-template-rows:1fr; visibility:visible; transition:grid-template-rows .55s cubic-bezier(.2,.8,.2,1), visibility 0s; box-shadow:inset 0 1px 0 var(--navy-rule), 0 30px 60px -30px rgba(0,0,0,.6)}
.mnav > div{overflow:hidden}
.mgroup{padding:16px 28px; border-bottom:1px solid var(--navy-rule); opacity:0; transform:translateY(-8px); transition:opacity .35s, transform .35s}
.mnav.open .mgroup{opacity:1; transform:none}
.mnav.open .mgroup:nth-child(2){transition-delay:.05s}.mnav.open .mgroup:nth-child(3){transition-delay:.1s}.mnav.open .mgroup:nth-child(4){transition-delay:.15s}.mnav.open .mgroup:nth-child(5){transition-delay:.2s}
.mgroup p{margin:0 0 6px; font-size:12.5px; color:var(--blue-soft)}
.mgroup a{display:block; padding:7px 0; color:#fff; text-decoration:none; font-size:16px; font-weight:300}

/* ---------- Heroes ---------- */
.hero{position:relative; overflow:hidden; color:#fff; background:linear-gradient(115deg, #0A2240 0%, #0D2A4F 40%, #123763 70%, #1A4A85 100%)}
.tri{position:absolute; top:50%; aspect-ratio:517/1008; width:auto; transform:translateY(-50%); pointer-events:none; -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 45%); mask-image:linear-gradient(to right,transparent 0%,#000 45%)}
.home-hero{min-height:max(720px, 100svh); display:flex; flex-direction:column}
.home-hero .tri{right:4%; height:108%}
.home-body{position:relative; flex:1; display:flex; flex-direction:column; justify-content:flex-end; width:100%; padding-top:170px; padding-bottom:72px}
.home-body h1{color:#fff; font-size:clamp(44px,5.6vw,84px); line-height:1.08; margin-bottom:auto; margin-top:auto; padding:48px 0}
.stats{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--navy-rule)}
.stats div{padding:32px 24px 0 0}
.stats div+div{padding-left:32px; border-left:1px solid var(--navy-rule)}
.stats b{display:block; font-weight:300; font-size:clamp(32px,3.2vw,48px); line-height:1.05; white-space:nowrap}
.stats span{display:block; margin-top:10px; font-size:14px; color:var(--on-navy-muted)}
.page-hero{padding-top:210px; padding-bottom:96px}
.page-hero .tri{right:6%; height:130%}
.page-hero .wrap{position:relative}
.crumb{font-size:13.5px; color:var(--on-navy-muted); margin:0 0 28px}
.crumb a{text-decoration:none; color:var(--on-navy-muted)}.crumb a:hover{color:#fff}
.crumb span{margin:0 10px; color:var(--blue-soft)}
.page-hero h1{color:#fff; font-size:clamp(40px,5vw,72px); line-height:1.08; max-width:16ch}
.page-hero p.lede{color:var(--on-navy-muted); font-size:18px; max-width:58ch; margin:28px 0 0}

/* ---------- Common blocks ---------- */
.row{display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px}
.who h2{font-size:clamp(28px,2.9vw,40px); line-height:1.35; max-width:30ch}
.who h2 a{text-decoration:none}
.who p{margin:32px 0 0; max-width:64ch; font-size:17px; color:var(--muted)}
.split{display:grid; grid-template-columns:1fr 1fr; min-height:560px}
.pane{position:relative; overflow:hidden; background:var(--navy); color:#fff; padding:96px 56px 80px max(56px, calc((100vw - 1280px)/2 + 56px))}
.pane .sweep{position:absolute; inset:0; width:100%; height:100%; opacity:.6; pointer-events:none}
.pane .label{color:var(--blue-soft); position:relative}
.pane h2{position:relative; color:#fff; font-size:clamp(32px,3.2vw,46px); line-height:1.15; margin-top:18px; max-width:13ch}
.pane p{position:relative; color:var(--on-navy-muted); max-width:40ch; margin:24px 0 0}
.list{padding:96px max(56px, calc((100vw - 1280px)/2 + 56px)) 80px 72px; align-self:start}
.list details{border-bottom:1px solid var(--rule)}
.list details:first-child{border-top:1px solid var(--rule)}
.list summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:23px 0; color:var(--ink); font-size:20px; font-weight:300; transition:color .2s}
.list summary::-webkit-details-marker{display:none}
.list summary small{display:block; font-size:14px; color:var(--muted); margin-top:2px; font-weight:400}
.list summary:hover,.list details[open] summary{color:var(--blue)}
.pm{position:relative; width:16px; height:16px; flex:none; color:var(--blue)}
.pm::before,.pm::after{content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:currentColor; transition:transform .3s}
.pm::after{transform:rotate(90deg)}
details[open] .pm::before{transform:rotate(45deg)}
details[open] .pm::after{transform:rotate(135deg)}
.ans{padding:0 40px 26px 0; animation:reveal .4s ease}
.ans p{margin:0 0 12px; font-size:15.5px; max-width:60ch}
@keyframes reveal{from{opacity:0; transform:translateY(-4px)}to{opacity:1; transform:none}}

/* Tombstones */
.tombs{display:grid; grid-template-columns:repeat(4,1fr); gap:40px 32px}
.tomb{background:var(--navy); color:#fff; display:flex; flex-direction:column; min-height:372px; transition:opacity .35s, transform .35s}
.tomb .cat{background:#E9EEF4; color:var(--navy); font-size:12.5px; text-align:center; padding:9px 12px}
.tomb .body{flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; padding:30px 22px 24px}
.tomb .lg{height:60px; width:100%; display:flex; align-items:center; justify-content:center}
.tomb .lg img{max-width:72%; max-height:52px; width:auto; height:auto; object-fit:contain}
.member .frame img{aspect-ratio:4/5}
.tomb .co{font-family:var(--mark); font-weight:600; font-size:21px; letter-spacing:.05em; line-height:1.15; margin-top:18px}
.tomb .sec{width:100%; border-top:1px solid var(--navy-rule); padding-top:14px; margin-top:14px; font-size:12px; color:var(--blue-soft); letter-spacing:.05em; text-transform:none}
.tomb .d{font-size:15px; margin-top:8px; line-height:1.5; color:#E8EEF6}
.tomb .role{margin-top:auto; padding-top:16px; font-size:12.5px; color:var(--on-navy-muted)}
.tomb.hide{display:none}
.allwrap{display:flex; justify-content:center; margin-top:56px}
.allbtn{display:inline-flex; align-items:center; height:60px; min-width:60px; padding:0 18px; border:1px solid var(--ink); border-radius:30px; color:var(--ink); text-decoration:none; overflow:hidden; transition:background .25s,color .25s}
.allbtn svg{width:24px; height:24px; flex:none}
.allbtn span{max-width:0; opacity:0; white-space:nowrap; font-size:15px; transition:max-width .35s ease, opacity .25s, margin .35s}
.allbtn:hover,.allbtn:focus-visible{background:var(--ink); color:var(--paper)}
.allbtn:hover span,.allbtn:focus-visible span{max-width:260px; opacity:1; margin-right:12px}
.tabs{display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid var(--rule); margin-bottom:48px}
.tabs button{all:unset; cursor:pointer; padding:16px 0; margin-right:40px; font-size:15px; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .2s, border-color .3s}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--ink); border-bottom-color:var(--blue)}
.tabs button:focus-visible{outline:2px solid var(--blue); outline-offset:2px}
.tabs button small{font-size:12px; color:var(--blue); margin-left:6px}

/* Leadership card */
.person{display:grid; grid-template-columns:272px minmax(0,1fr); gap:72px; align-items:stretch; max-width:1040px}
.frame{position:relative; border:1px solid var(--rule); border-top:2px solid var(--navy); padding:10px; background:#fff}
.frame img{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover}
.pframe::after{content:""; position:absolute; right:-1px; bottom:-1px; border-left:14px solid transparent; border-bottom:14px solid var(--blue)}
.pcol{display:flex; flex-direction:column; justify-content:space-between; gap:24px}
.pname{font-size:clamp(36px,3.4vw,50px); line-height:1; margin-top:-2px; font-weight:300}
.ptitle{margin:14px 0 0; font-size:clamp(17px,1.4vw,20px); color:var(--muted); padding-bottom:20px; border-bottom:1px solid var(--rule)}
.bio p{margin:0 0 14px; font-size:17px; max-width:62ch}
.bio p:last-of-type{margin-bottom:0}
.bio .link{margin-top:16px}

/* Team grid */
.team{display:grid; grid-template-columns:repeat(4,1fr); gap:56px 32px}
.member .frame{padding:8px}
.plus{all:unset; box-sizing:border-box; cursor:pointer; position:absolute; right:-18px; bottom:-18px; width:40px; height:40px; border-radius:50%; background:var(--navy); color:#fff; display:grid; place-items:center; transition:background .25s, transform .35s cubic-bezier(.2,.8,.2,1)}
.plus svg{width:20px; height:20px}
.plus:hover,.plus:focus-visible{background:var(--blue); transform:rotate(90deg)}
.plus:focus-visible{outline:2px solid var(--blue); outline-offset:3px}
.member h3{font-size:21px; margin-top:28px; font-weight:400}
.nmbtn{all:unset; cursor:pointer; color:var(--ink)}
.nmbtn:hover{color:var(--blue)}
.nmbtn:focus-visible{outline:2px solid var(--blue); outline-offset:3px}
.member .ttl,.drawer .ttl{color:var(--blue); font-size:14px; margin:4px 0 0}
.drawer{position:fixed; inset:0 0 0 auto; margin:0; height:100%; max-height:none; width:min(520px,100vw); border:0; padding:0; background:var(--paper); color:var(--text); transform:translateX(100%); transition:transform .5s cubic-bezier(.2,.8,.2,1), overlay .5s allow-discrete, display .5s allow-discrete; box-shadow:-30px 0 60px -30px rgba(0,0,0,.4)}
.drawer[open]{transform:none}
@starting-style{.drawer[open]{transform:translateX(100%)}}
.drawer::backdrop{background:rgba(238,240,242,0); transition:background .5s, overlay .5s allow-discrete, display .5s allow-discrete}
.drawer[open]::backdrop{background:rgba(238,240,242,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px)}
@starting-style{.drawer[open]::backdrop{background:rgba(238,240,242,0)}}
.dinner{padding:88px 56px 56px}
.dinner .frame{width:200px; margin-bottom:32px}
.dinner h2{font-size:34px; line-height:1.15}
#dbio p{font-size:16.5px; margin:24px 0 0; padding-top:24px; border-top:1px solid var(--rule)}
.dclose{all:unset; cursor:pointer; position:absolute; top:24px; right:24px; width:44px; height:44px; display:grid; place-items:center; color:var(--ink); border:1px solid var(--rule); border-radius:50%}
.dclose svg{width:20px; height:20px}
.dclose:hover{border-color:var(--ink)}

/* Two-column editorial */
.ed{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:96px}
.ed .lede{font-weight:300; font-size:clamp(22px,2.1vw,28px); line-height:1.5; color:var(--ink); margin:0}
.ed p{font-size:17px; margin:24px 0 0; max-width:62ch}
.grid2{display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ink)}
.grid2 > div{padding:36px 40px 40px 0; border-bottom:1px solid var(--rule)}
.grid2 > div:nth-child(even){padding:36px 0 40px 40px; border-left:1px solid var(--rule)}
.grid2 h3{font-size:24px; line-height:1.25; margin-bottom:12px}
.grid2 p{margin:0; font-size:16px; color:var(--text)}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink)}
.grid3 > div{padding:36px 36px 40px 0}
.grid3 > div+div{padding-left:36px; border-left:1px solid var(--rule)}
.grid3 h3{font-size:22px; line-height:1.25; margin-bottom:12px}
.grid3 p{margin:0; font-size:15.5px}

/* Services page */
.svcrow{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:96px; padding:72px 0; border-top:1px solid var(--rule); scroll-margin-top:24px}
.svcrow:first-child{border-top:1px solid var(--ink)}
.svcrow h2{font-size:clamp(28px,2.6vw,36px); line-height:1.2}
.svcrow .tag{color:var(--muted); margin:14px 0 0; font-size:15px}
.svcrow .body p{margin:0 0 16px; font-size:17px; max-width:62ch}
.svcrow .body ul{margin:8px 0 20px; padding:0; list-style:none; border-top:1px solid var(--rule)}
.svcrow .body li{padding:12px 0 12px 26px; border-bottom:1px solid var(--rule); position:relative; font-size:16px}
.svcrow .body li::before{content:""; position:absolute; left:0; top:20px; border-left:8px solid var(--blue); border-top:5px solid transparent; border-bottom:5px solid transparent}

/* Testimonials */
.quotes{border-top:1px solid var(--ink)}
.q{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:96px; padding:56px 0; border-bottom:1px solid var(--rule)}
.q .who2 .co{font-family:var(--mark); font-weight:600; font-size:22px; letter-spacing:.05em; color:var(--ink); line-height:1.2}
.q .who2 .nm{margin-top:14px; color:var(--ink); font-size:16px}
.q .who2 .rl{color:var(--muted); font-size:14.5px}
.q blockquote{margin:0; font-weight:300; font-size:clamp(19px,1.6vw,22px); line-height:1.6; color:var(--ink); position:relative}
.q blockquote::before{content:""; position:absolute; left:-28px; top:10px; border-left:9px solid var(--blue); border-top:6px solid transparent; border-bottom:6px solid transparent}

/* Timeline (CSR) */
.tl{border-top:1px solid var(--ink)}
.tl li{display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px; padding:28px 0; border-bottom:1px solid var(--rule); align-items:baseline}
.tl{list-style:none; margin:0; padding:0}
.tl time{color:var(--blue); font-size:15px}
.tl span{font-size:20px; font-weight:300; color:var(--ink)}

/* Closing */
.closegrid{display:grid; grid-template-columns:1.1fr 1fr}
.careers{position:relative; display:block; background:var(--navy); color:#fff; text-decoration:none; padding:88px 64px 80px; overflow:hidden}
.careers::after{content:""; position:absolute; right:28px; top:50%; transform:translateY(-50%); width:190px; height:373px; background:linear-gradient(135deg,rgba(74,144,226,.22),rgba(74,144,226,0)); clip-path:polygon(0 0,100% 50%,0 100%)}
.careers .label{color:var(--blue-soft)}
.careers h2{color:#fff; font-size:clamp(28px,2.6vw,38px); line-height:1.2; margin-top:16px; max-width:17ch; position:relative; z-index:1}
.careers p{color:var(--on-navy-muted); max-width:44ch; margin:20px 0 0; position:relative; z-index:1}
.careers .go{display:inline-flex; align-items:center; margin-top:36px; color:#fff; font-size:15px; position:relative; z-index:1}
.office{background:var(--mist); padding:88px 64px 80px}
.office h2{font-size:clamp(40px,4vw,58px); line-height:1}
.office .region{color:var(--blue); margin:12px 0 0; font-size:15px}
.office address{font-style:normal; font-size:18px; font-weight:300; color:var(--ink); line-height:1.6; margin-top:32px; padding-top:28px; border-top:1px solid var(--rule)}
.office dl{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:28px 0 0}
.office dt{font-size:13px; color:var(--muted)}
.office dd{margin:4px 0 0; font-size:16px; color:var(--ink)}
.office dd a{text-decoration:none}.office dd a:hover{color:var(--blue)}

/* Footer */
footer{background:var(--deep); color:var(--on-navy-muted); padding:72px 0 40px; font-size:14px}
.fgrid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:40px}
.fgrid h4{color:#fff; font-weight:500; font-size:14px; margin:0 0 16px}
.fgrid ul{list-style:none; margin:0; padding:0}
.fgrid li{margin-bottom:9px}
.fgrid a{text-decoration:none}.fgrid a:hover{color:#fff}
.fname{font-size:12.5px; line-height:1.4; color:var(--on-navy-muted); border-left:1px solid var(--navy-rule); padding-left:14px; margin-left:4px}
.legal{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:64px; padding-top:22px; border-top:1px solid var(--navy-rule); font-size:12.5px}

/* Pages */
.js .page{display:none}
.js .page.active{display:block; animation:pagein .5s ease}
@keyframes pagein{from{opacity:0}to{opacity:1}}

@media (max-width:1040px){
  :root{--gut:28px; --sec:60px}
  .mainnav > a,.mainnav .dd{display:none}
  .burger{display:block}
  .home-body{padding-top:140px; padding-bottom:56px}
  .home-hero .tri{right:-45%; opacity:.5}
  .page-hero{padding-top:160px; padding-bottom:72px}
  .page-hero .tri{right:-40%; opacity:.5}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(3){padding-left:0; border-left:0; grid-column:1/-1}
  .row,.split,.ed,.svcrow,.q,.closegrid{grid-template-columns:1fr; gap:32px}
  .person{grid-template-columns:minmax(0,200px) minmax(0,1fr); grid-template-areas:"pic head" "bio bio"; gap:32px 36px; align-items:stretch}
  .person .pframe{grid-area:pic}
  .person .pcol{display:contents}
  .person .pcol > div:first-child{grid-area:head; display:flex; flex-direction:column; justify-content:space-between}
  .person .pname,.person .ptitle{white-space:nowrap}
  .person .bio{grid-area:bio}
  .pane{padding:72px 28px}
  .list{padding:48px 28px 72px}
  .tombs{grid-template-columns:1fr 1fr}
  .team{grid-template-columns:1fr 1fr}
  .grid2,.grid3{grid-template-columns:1fr}
  .grid2 > div,.grid2 > div:nth-child(even),.grid3 > div,.grid3 > div+div{padding:28px 0; border-left:0}
  .fgrid{grid-template-columns:1fr 1fr}
  .careers,.office{padding:64px 28px}
  .tl li{grid-template-columns:1fr; gap:6px}
  .q blockquote::before{display:none}
}
@media (max-width:560px){
  .person{grid-template-columns:minmax(0,38%) minmax(0,1fr); gap:24px 18px}
  .pname{font-size:clamp(19px,5.6vw,26px); line-height:1.1}
  .ptitle{font-size:clamp(11.5px,3.3vw,14px); margin-top:0; padding-bottom:0; border-bottom:0}
.tombs,.team{grid-template-columns:1fr} .stats{grid-template-columns:1fr} .stats div,.stats div+div{padding:22px 0 0; border-left:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}

/* v-next refinements */
.top-name{color:#fff; opacity:.85}
.lead-label{margin-bottom:64px}
.after-lead{margin:64px 0 0}
p.label.after-lead{margin-bottom:48px}
.team{grid-template-columns:repeat(auto-fill, 200px); gap:56px 56px; justify-content:start}
.member h3{font-size:18px; margin-top:24px}
.member .ttl{font-size:13.5px}
@media (max-width:1040px){
  .person .pcol > div:first-child{justify-content:center}
  .ptitle{margin-top:10px}
  .team{grid-template-columns:repeat(auto-fill, minmax(150px, 200px)); gap:48px 32px}
}
@media (max-width:560px){.top-name{display:block; font-size:11.5px; padding-left:12px} .team{grid-template-columns:1fr 1fr; gap:40px 20px}}

.q .who2{display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:24px; align-items:center; align-self:start}
.qlogo{display:block; width:112px; height:44px; background:var(--blue); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain}
@media (max-width:1040px){.q .who2{grid-template-columns:minmax(0,1fr) 104px; max-width:520px}}

.dd.closing .menu{clip-path:inset(0 0 100% 0)!important; opacity:0!important; visibility:hidden!important}
.dd.closing > button i{transform:rotate(45deg) translateY(-2px)!important}
@media (max-width:1040px){.tombs{gap:28px 24px}}
@media (max-width:560px){.tombs{gap:24px}}

/* airier tombstones */
.tombs{grid-template-columns:repeat(3,1fr); gap:56px 48px}
.tomb{min-height:420px}
.tomb .cat{padding:11px 16px}
.tomb .body{padding:44px 36px 34px}
.tomb .lg{height:64px}
.tomb .co{margin-top:24px}
.tomb .sec{margin-top:20px; padding-top:18px}
.tomb .d{margin-top:12px}
.tomb .role{padding-top:24px}
@media (max-width:1040px){.tombs{grid-template-columns:1fr 1fr; gap:40px 32px}}
@media (max-width:560px){.tombs{grid-template-columns:1fr; gap:32px}}

/* deal notes */
.tomb{position:relative; overflow:hidden}
.tomb .lg img[data-logo="kohinoor_then"]{max-height:50px}
.tplus{all:unset; box-sizing:border-box; position:absolute; right:16px; bottom:16px; z-index:3; width:36px; height:36px; border-radius:50%; border:1px solid rgba(143,185,236,.45); display:grid; place-items:center; color:var(--blue-soft); cursor:pointer; transition:background .25s, border-color .25s, transform .35s}
.tplus .pm{width:12px; height:12px; color:inherit}
.tplus:hover{background:var(--blue); border-color:var(--blue); color:#fff}
.tplus:focus-visible{outline:2px solid var(--blue); outline-offset:3px}
.tomb.show .tplus{transform:rotate(45deg); background:var(--blue); border-color:var(--blue); color:#fff}
.tnote{position:absolute; left:0; right:0; top:42px; bottom:0; z-index:2; background:var(--navy-2); padding:44px 36px 64px; display:flex; flex-direction:column; justify-content:center; text-align:left;
  clip-path:inset(100% 0 0 0); transition:clip-path .5s cubic-bezier(.2,.8,.2,1)}
.tomb.show .tnote{clip-path:inset(0 0 0 0)}
.tnote .nl{margin:0 0 16px; font-size:12.5px; color:var(--blue-soft); letter-spacing:.04em}
.tnote .nl::after{content:""; display:block; width:28px; height:1px; background:var(--blue-soft); margin-top:14px}
.tnote p{margin:0; font-size:16.5px; line-height:1.6; font-weight:300; color:#fff}


/* ===== Executive grey top panel ===== */
.hero{background:linear-gradient(115deg, #F6F7F8 0%, #EEF0F2 45%, #E4E7EB 100%); color:#1F242B}
.hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:#D5D9DF}
.home-body h1,.page-hero h1{color:#1F242B}
.page-hero p.lede{color:#5B6470}
.stats{border-top:1px solid #CDD2D9}
.stats div+div{border-left:1px solid #CDD2D9}
.stats b{color:#1F242B}
.stats span{color:#6B7380}
.crumb,.crumb a{color:#6B7380}.crumb a:hover{color:#1F242B}
.crumb span{color:#9AA2AE}
.top-name{color:#3A414B; opacity:1; border-left-color:#C9CED6}
.mainnav > a,.dd > button{color:#4F5763}
.mainnav > a:hover,.mainnav > a.on,.dd:hover > button,.dd.open > button,.dd > button.on{color:#1F242B}
.menu{background:#FFFFFF; border-top:2px solid #3A414B; box-shadow:0 24px 48px -24px rgba(31,36,43,.35)}
.menu a{color:#4F5763}
.menu a:hover,.menu a:focus-visible{color:#1F242B; background:#F1F3F5}
.burger span{background:#1F242B}
.mnav{background:#F6F7F8}
.mnav.open{box-shadow:inset 0 1px 0 #D5D9DF, 0 30px 60px -30px rgba(31,36,43,.35)}
.mgroup{border-bottom:1px solid #D5D9DF}
.mgroup p{color:#6B7380}
.mgroup a{color:#1F242B}

/* ===== Executive grey: Who We Are, What We Do, Leadership, closing, footer ===== */
.exg{background:linear-gradient(115deg, #F6F7F8 0%, #EEF0F2 55%, #E8EBEE 100%); border-bottom:1px solid #D5D9DF}
.exg .label{color:#5B6470}
.exg .who h2,.exg .who h2 a{color:#1F242B}
.exg .who p{color:#5B6470}
.exg .who .arrow{color:#5B6470!important}
.exg .pname{color:#1F242B}
.exg .ptitle{color:#5B6470; border-bottom-color:#D5D9DF}
.exg .bio p{color:#2E353F}
.exg .link{color:#3A414B}
.exg .frame{border-color:#D5D9DF; border-top-color:#3A414B}
.exg .frame::after{border-bottom-color:#7C8594}
.exg-split .pane{background:linear-gradient(160deg, #EEF0F2 0%, #E2E5E9 100%); color:#1F242B}
.exg-split .pane .label{color:#5B6470}
.exg-split .pane h2{color:#1F242B}
.exg-split .pane p{color:#5B6470}
.exg-split .list summary:hover,.exg-split .list details[open] summary{color:#1F242B}
.exg-split .pm{color:#5B6470}
.exg-split .ans .link{color:#3A414B}
.exg-close .careers{background:linear-gradient(160deg, #E9ECEF 0%, #DEE2E7 100%); color:#1F242B}
.exg-close .careers::after{background:linear-gradient(135deg, rgba(58,65,75,.14), rgba(58,65,75,0))}
.exg-close .careers .label{color:#5B6470}
.exg-close .careers h2{color:#1F242B}
.exg-close .careers p{color:#5B6470}
.exg-close .careers .go{color:#1F242B}
.exg-close .office{background:#F6F7F8}
.exg-close .office .region{color:#5B6470}
footer{background:linear-gradient(115deg, #EEF0F2 0%, #E4E7EB 100%); color:#5B6470; border-top:1px solid #D5D9DF}
footer .fgrid h4{color:#1F242B}
footer .fgrid a:hover{color:#1F242B}
footer .fname{color:#3A414B; border-left-color:#C9CED6}
footer .legal{border-top-color:#CDD2D9}

/* Always paint our own light surfaces, even inside previewers that force a dark page */
.shell,main,.page,section,.split,.list{background-color:#FFFFFF}
.mist{background-color:var(--mist)!important}
.list{background:#FFFFFF}

/* ===== Executive graphite tombstones ===== */
.tomb{background:linear-gradient(160deg,#434A55 0%,#2B313A 100%)}
.tomb .cat{background:#E4E7EB; color:#2B313A}
.tomb .sec{color:#C3C9D2; border-top-color:rgba(255,255,255,.14)}
.tomb .d{color:#EEF0F2}
.tomb .role{color:#AEB5BF}
.tplus{border-color:rgba(255,255,255,.35); color:#D5D9DF}
.tplus:hover,.tomb.show .tplus{background:#FFFFFF; border-color:#FFFFFF; color:#2B313A}
.tnote{background:#3A414B}
.tnote .nl{color:#C3C9D2}
.tnote .nl::after{background:#C3C9D2}

.closegrid.solo{grid-template-columns:1fr}
.closegrid.solo .office{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start}
.closegrid.solo .office h2{margin-top:18px}
.closegrid.solo .office address{margin-top:0; padding-top:0; border-top:0}
.closegrid.solo .office .label{color:#5B6470}
@media (max-width:1040px){.closegrid.solo .office{grid-template-columns:1fr; gap:24px}}

/* ===== Light executive tombstones, coherent with the grey page ===== */
.tomb{background:linear-gradient(170deg,#FFFFFF 0%,#F4F5F7 100%); color:#1F242B; border:1px solid #DDE1E6; border-top:2px solid #3A414B; box-shadow:0 1px 0 rgba(31,36,43,.02); transition:box-shadow .3s, transform .3s}
.tomb:hover{box-shadow:0 18px 40px -26px rgba(31,36,43,.35); transform:translateY(-2px)}
.tomb .cat{background:#EEF0F2; color:#3A414B; border-bottom:1px solid #E1E4E8}
.tomb .lgm{display:block; height:50px; max-width:72%; background:#2B313A; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain}
.tomb .co{color:#1F242B}
.tomb .sec{color:#6B7380; border-top-color:#E1E4E8}
.tomb .d{color:#2E353F}
.tomb .role{color:#7C8594}
.tplus{border-color:#C9CED6; color:#3A414B}
.tplus:hover,.tomb.show .tplus{background:#2B313A; border-color:#2B313A; color:#FFFFFF}
.tnote{background:#F6F7F8; border-top:1px solid #E1E4E8}
.tnote .nl{color:#6B7380}
.tnote .nl::after{background:#9AA2AE}
.tnote p{color:#1F242B}

/* ===== One palette: executive greys throughout (brand navy kept only in the EIVA mark) ===== */
:root{
  --navy:#2B313A; --navy-2:#3A414B; --navy-3:#4F5763; --deep:#1F242B;
  --blue:#3A414B; --blue-soft:#9AA2AE;
  --ink:#1F242B; --text:#2E353F; --muted:#6B7380; --rule:#DDE1E6; --mist:#F3F4F6;
  --on-navy-muted:#C3C9D2; --navy-rule:rgba(31,36,43,.12);
}
.label{color:#6B7380}
.link{color:#2B313A}
.link:hover{color:#1F242B}
.link .arrow{color:#6B7380}
.tabs button[aria-selected="true"]{border-bottom-color:#2B313A}
.tabs button small{color:#7C8594}
.allbtn{border-color:#2B313A; color:#2B313A}
.allbtn:hover,.allbtn:focus-visible{background:#2B313A; color:#FFFFFF}
.member .ttl,.drawer .ttl{color:#6B7380}
.frame{border-top-color:#2B313A}
.frame::after{border-bottom-color:#7C8594}
.q blockquote::before{border-left-color:#9AA2AE}
.qlogo{background:#3A414B}
.svcrow .body li::before{border-left-color:#7C8594}
.tl time{color:#6B7380}
.menu{border-top-color:#2B313A}
:focus-visible{outline-color:#3A414B}
.list summary:hover,.list details[open] summary{color:#1F242B}
.pm{color:#6B7380}
.who h2 .arrow{color:#6B7380!important}

.olabel{margin:0 0 6px; font-size:13px; color:#6B7380}
.office .olabel + address{margin-top:0; padding-top:0; border-top:0}
.office > div > .olabel,.contactoffice .olabel{margin-top:32px; padding-top:28px; border-top:1px solid var(--rule)}
.closegrid.solo .office > div > .olabel{margin-top:0; padding-top:0; border-top:0}

.hmail{display:inline-block; margin-top:10px; color:#1F242B; text-decoration:none; border-bottom:1px solid #9AA2AE; padding-bottom:2px; font-size:20px}
.hmail:hover{border-bottom-color:#1F242B}

/* Leadership: portrait, name and title on the left; bio on the right */
.person{grid-template-columns:272px minmax(0,1fr); gap:72px; align-items:start}
.pleft{width:272px}
.pleft .pname{margin:24px 0 0; white-space:nowrap; line-height:1.1; font-size:32px}
.pleft .ptitle{margin:10px 0 0; padding:0; border:0; white-space:nowrap; font-size:16px; color:#5B6470}
.pcol{display:block}
.pcol .bio{padding-top:4px}
@media (max-width:1040px){
  .person{grid-template-columns:minmax(0,220px) minmax(0,1fr); grid-template-areas:none; gap:40px}
  .pleft{width:auto}
  .person .pcol{display:block}
}
@media (max-width:640px){
  .person{grid-template-columns:1fr; gap:32px}
  .pleft{width:min(260px,100%)}
}
@media (min-width:641px){.person{align-items:center}}

/* Leadership: name on the left, cut-out portrait on the right, standing on a hairline; bio below */
.person2{max-width:1040px}
.phead{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:48px; border-bottom:1px solid #CDD2D9}
.ptxt{align-self:center; padding-bottom:24px}
.ptxt .pname{font-size:clamp(38px,4.2vw,60px); line-height:1.05; font-weight:300; color:#1F242B; margin:0; white-space:normal}
.ptxt .ptitle{margin:14px 0 0; padding:0; border:0; font-size:clamp(17px,1.5vw,21px); color:#5B6470; white-space:normal}
.pcut{display:block; height:clamp(280px,32vw,400px); width:auto; margin-right:24px}
.person2 .bio{padding-top:40px; max-width:66ch}
.person2 .bio p{font-size:17.5px}
@media (max-width:640px){
  .phead{grid-template-columns:minmax(0,1fr) 46%; gap:16px}
  .pcut{height:auto; width:100%; margin-right:0}
  .ptxt{padding-bottom:16px}
  .ptxt .pname{font-size:clamp(24px,7vw,34px)}
  .ptxt .ptitle{font-size:13.5px; margin-top:8px}
  .person2 .bio{padding-top:28px}
}

/* Contact strip above the footer */
.cstrip{background:linear-gradient(115deg,#F6F7F8 0%,#EEF0F2 100%); border-top:1px solid #D5D9DF}
.cgrid{display:grid; grid-template-columns:1.4fr 1fr .8fr; gap:40px; padding-top:32px; padding-bottom:32px; align-items:start}
.cstrip .olabel{margin:0 0 6px; padding:0; border:0; font-size:12.5px; color:#6B7380}
.cstrip address,.cstrip .cval{font-style:normal; margin:0; font-size:16px; font-weight:400; color:#1F242B; line-height:1.5}
.cstrip a{text-decoration:none; color:#1F242B}
.cstrip a:hover{text-decoration:underline; text-underline-offset:3px}
@media (max-width:800px){.cgrid{grid-template-columns:1fr; gap:18px; padding-top:28px; padding-bottom:28px}}

/* ===== Home: rotating client testimonial ===== */
.tsec{background:#FFFFFF}
.thead2{display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:40px}
.tdots{display:flex; flex-wrap:wrap; gap:10px}
.tdots button{all:unset; box-sizing:border-box; cursor:pointer; width:10px; height:10px; border-radius:50%; border:1px solid #9AA2AE; transition:background .3s, transform .3s, border-color .3s}
.tdots button:hover{border-color:#2B313A}
.tdots button[aria-selected="true"]{background:#2B313A; border-color:#2B313A; transform:scale(1.25)}
.tdots button:focus-visible{outline:2px solid #3A414B; outline-offset:3px}
.tstage{display:grid; border-top:1px solid #DDE1E6; padding-top:48px}
.tslide{grid-area:1/1; align-self:center; margin:0; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .7s ease, transform .7s ease, visibility 0s .7s}
.tslide.on{opacity:1; visibility:visible; transform:none; transition:opacity .7s ease, transform .7s ease, visibility 0s}
.tslide blockquote{margin:0; max-width:62ch; font-weight:300; font-size:clamp(19px,1.8vw,25px); line-height:1.6; color:#1F242B}
.tslide figcaption{display:flex; align-items:center; gap:22px; margin-top:36px}
.tslide .qlogo{width:104px; height:40px; background:#3A414B; flex:none}
.tslide figcaption div{border-left:1px solid #DDE1E6; padding-left:22px; line-height:1.45}
.tslide figcaption b{display:block; font-weight:500; color:#1F242B; font-size:16px}
.tslide figcaption span{font-size:14.5px; color:#6B7380}
.tmore{margin:40px 0 0}
@media (max-width:640px){.thead2{flex-direction:column; align-items:flex-start} .tslide figcaption{flex-direction:column; align-items:flex-start; gap:14px} .tslide figcaption div{border-left:0; padding-left:0}}

/* ===== Community: initiatives, posters and photographs ===== */
.inits{border-top:1px solid #1F242B}
.init{display:grid; grid-template-columns:300px minmax(0,1fr); gap:64px; padding:56px 0; border-bottom:1px solid #DDE1E6; scroll-margin-top:24px}
.poster{position:relative; overflow:hidden; min-height:375px; background:linear-gradient(160deg,#F6F7F8 0%,#E4E7EB 100%); border:1px solid #DDE1E6; border-top:2px solid #2B313A; padding:26px 26px 22px; display:flex; flex-direction:column}
.pt-tri{right:-38%; height:120%; opacity:.9}
.pt-top{position:relative; display:flex; align-items:center; gap:8px; margin-bottom:40px}
.pt-top .logo{height:38px; width:auto}
.pt-top span{font-size:10.5px; line-height:1.3; color:#3A414B; border-left:1px solid #C9CED6; padding-left:9px}
.pt-cat{position:relative; margin:auto 0 8px; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#6B7380}
.pt-title{position:relative; font-weight:300; font-size:30px; line-height:1.08; color:#1F242B}
.pt-tag{position:relative; margin:10px 0 0; font-size:13.5px; font-style:italic; color:#4F5763}
.pt-meta{position:relative; margin-top:20px; padding-top:14px; border-top:1px solid #CDD2D9; display:grid; gap:8px; font-size:12.5px; color:#1F242B; line-height:1.4}
.pt-meta span{display:block; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#7C8594}
.pt-part{position:relative; margin:12px 0 0; font-size:11px; color:#6B7380}
.init-meta{margin:0 0 10px; font-size:14px; color:#6B7380; display:flex; flex-wrap:wrap; gap:6px 18px}
.init-meta time{color:#1F242B; font-weight:500}
.init-body h2{font-size:clamp(26px,2.4vw,34px); line-height:1.2; margin-bottom:16px}
.init-body p{margin:0 0 12px; font-size:16.5px; max-width:64ch}
.phs{display:flex; flex-wrap:wrap; gap:14px; margin-top:24px}
.ph{all:unset; box-sizing:border-box; cursor:zoom-in; position:relative; height:150px; overflow:hidden; border:1px solid #DDE1E6; background:#EEF0F2}
.ph img{display:block; height:100%; width:auto; filter:grayscale(1) contrast(1.04) brightness(1.03); transition:filter .5s ease, transform .6s ease}
.ph::after{content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(58,65,75,.10),rgba(58,65,75,.22)); transition:opacity .5s}
.ph:hover img{transform:scale(1.03)}
.ph:hover::after{opacity:.4}
.ph:focus-visible{outline:2px solid #3A414B; outline-offset:3px}
.ph-hint{font-size:13px!important; color:#7C8594; margin-top:10px!important}
.lb{position:fixed; inset:0; z-index:100; background:rgba(238,240,242,.94); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:56px 72px}
.lb[hidden]{display:none}
.lb figure{margin:0; max-width:min(1100px,100%); max-height:100%; display:flex; flex-direction:column; align-items:center}
.lb img{max-width:100%; max-height:calc(100vh - 170px); object-fit:contain; box-shadow:0 30px 60px -30px rgba(31,36,43,.45); animation:lbin .4s ease}
@keyframes lbin{from{opacity:0; transform:scale(.98)}to{opacity:1; transform:none}}
.lb figcaption{margin-top:16px; font-size:14px; color:#4F5763}
.lb button{all:unset; box-sizing:border-box; cursor:pointer; position:absolute; width:48px; height:48px; border-radius:50%; border:1px solid #9AA2AE; display:grid; place-items:center; font-size:26px; line-height:1; color:#1F242B; background:#FFFFFF}
.lb button:hover{background:#1F242B; color:#FFFFFF; border-color:#1F242B}
.lb button:focus-visible{outline:2px solid #3A414B; outline-offset:3px}
.lb .lb-x{top:20px; right:20px}
.lb .lb-prev{left:16px; top:50%; transform:translateY(-50%)}
.lb .lb-next{right:16px; top:50%; transform:translateY(-50%)}
.lb button[hidden]{display:none}
@media (max-width:900px){.init{grid-template-columns:1fr; gap:32px} .poster{max-width:320px} .ph{height:120px} .lb{padding:64px 12px} .lb .lb-prev,.lb .lb-next{top:auto; bottom:16px; transform:none}}
@media (max-width:640px){.tslide{align-self:start} .tstage{padding-top:32px}}

/* Who We Are with office photograph */
.row.whoimg{grid-template-columns:220px minmax(0,1fr) 300px; gap:56px; align-items:start}
.whofig{margin:0}
.whofig img{display:block; width:100%; height:auto; border:1px solid #DDE1E6; border-top:2px solid #2B313A}
.whofig figcaption{margin-top:12px; font-size:13px; color:#6B7380; line-height:1.5}
@media (max-width:1040px){.row.whoimg{grid-template-columns:1fr; gap:32px} .whofig{max-width:360px}}
.whoimg h2{font-size:clamp(24px,2.3vw,33px)}

/* About: office photograph */
.firmfig{margin-top:64px}
.firmfig img{display:block; width:100%; height:auto; aspect-ratio:1297/884; object-fit:cover; border:1px solid #DDE1E6; border-top:2px solid #2B313A}
.firmfig figcaption{margin-top:12px; font-size:13px; color:#6B7380}

/* About: office photographs, in colour, no rule */
.firmpics{display:grid; grid-template-columns:1.47fr .8fr; gap:24px; margin-top:56px; align-items:start}
.firmpics figure{margin:0}
.firmpics img{display:block; width:100%; height:auto}
.firmpics figcaption{margin-top:10px; font-size:13px; color:#6B7380}
@media (max-width:760px){.firmpics{grid-template-columns:1fr} .firmpics figure:last-child{max-width:360px}}

/* Community: one initiative at a time */
.inits.istage{display:grid; border-top:1px solid #1F242B}
.istage .init{grid-area:1/1; border-bottom:0; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .6s ease, transform .6s ease, visibility 0s .6s}
.istage .init.on{opacity:1; visibility:visible; transform:none; transition:opacity .6s ease, transform .6s ease, visibility 0s}
.idots{display:flex; flex-wrap:wrap; gap:10px}
.idots button{all:unset; box-sizing:border-box; cursor:pointer; width:10px; height:10px; border-radius:50%; border:1px solid #9AA2AE; transition:background .3s, transform .3s, border-color .3s}
.idots button:hover{border-color:#2B313A}
.idots button[aria-selected="true"]{background:#2B313A; border-color:#2B313A; transform:scale(1.25)}
.idots button:focus-visible{outline:2px solid #3A414B; outline-offset:3px}
.thead2{margin-bottom:28px}

/* Footer: sign-off on the right */
.fgrid{grid-template-columns:1fr 1fr 1fr 1fr 1.3fr}
.fbrand{justify-self:end; align-self:start}
@media (max-width:1040px){.fbrand{justify-self:start}}
@media (max-width:1040px){.fgrid{grid-template-columns:1fr 1fr}} @media (max-width:420px){.fgrid{grid-template-columns:1fr}}
@media (max-width:760px){.page[data-page="contact"] .office{grid-template-columns:1fr!important; gap:24px!important} .page[data-page="contact"] .office dl{grid-template-columns:1fr}}

.dalal{margin:32px 0 0; max-width:240px}
.dalal img{display:block; width:100%; height:auto}
.dalal figcaption{margin-top:10px; font-size:13px; line-height:1.5; color:#6B7380}
.firmconf{margin-top:56px}
.firmconf img{display:block; width:100%; height:auto}
@media (max-width:1040px){.dalal{max-width:220px}}

.firmconf{margin-bottom:0}
.firmconf figcaption{margin-top:12px; font-size:13.5px; color:#6B7380}
/* About: label aligned with the first line; photograph centred in its column */
.page[data-page="about"] .ed .label{margin-top:10px}
.dalal{margin:32px auto 0; text-align:center}
/* Home testimonials: sign-off on the right */
.tslide figcaption{justify-content:flex-end; text-align:right}
.tslide blockquote{max-width:none}
@media (max-width:640px){.tslide figcaption{align-items:flex-end}}

.confsec{padding-top:0}
.confsec .firmconf{margin-top:0}
.confsec .firmconf{margin:0}
@media (min-width:641px){.team{grid-template-columns:repeat(2,200px); gap:56px 96px}}

/* ===== Home hero: background video with a graded grey veil ===== */
.home-hero{background:#EEF0F2}
.hvid{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; pointer-events:none}
.hveil{position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(244,245,247,.94) 0%, rgba(244,245,247,.90) 13%,
    rgba(244,245,247,.50) 30%, rgba(244,245,247,.50) 66%,
    rgba(244,245,247,.90) 80%, rgba(244,245,247,.95) 100%)}
.home-hero .tri{z-index:1; opacity:.55}
.home-hero .home-body{z-index:2}
@media (max-width:640px){.hveil{background:linear-gradient(to bottom, rgba(244,245,247,.94) 0%, rgba(244,245,247,.88) 16%, rgba(244,245,247,.55) 34%, rgba(244,245,247,.55) 58%, rgba(244,245,247,.9) 74%, rgba(244,245,247,.95) 100%)}}
.home-hero .tri{display:none}

/* ===== What We Do: practice pages ===== */
.svc-intro{padding-bottom:0}
.svc-lede{font-weight:300; font-size:clamp(20px,1.9vw,26px); line-height:1.55; color:#1F242B; max-width:60ch; margin:0}
.svc-index{display:flex; flex-wrap:wrap; gap:10px 12px; margin-top:32px}
.svc-index a{font-size:14px; color:#2B313A; text-decoration:none; border:1px solid #CDD2D9; padding:8px 14px; transition:background .2s,border-color .2s}
.svc-index a:hover{background:#2B313A; border-color:#2B313A; color:#fff}
.pracs .prac:first-child{border-top:1px solid #1F242B}
.prac{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:72px; padding:64px 0; border-bottom:1px solid #DDE1E6; align-items:start; scroll-margin-top:24px}
.prac.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.prac.flip .ppanel{order:2}
.ppanel{position:relative; overflow:hidden; aspect-ratio:4/3; background:linear-gradient(160deg,#F6F7F8 0%,#E4E7EB 100%); border:1px solid #DDE1E6; padding:32px; display:flex; flex-direction:column; justify-content:flex-end}
.ppanel .tri{right:-30%; height:125%; opacity:.9}
.pp-k{position:relative; margin:0 0 auto; font-size:13px; color:#6B7380}
.pp-n{position:relative; margin:0; font-weight:300; font-size:clamp(56px,6vw,88px); line-height:1; color:#1F242B}
.pp-l{position:relative; margin:10px 0 0; font-size:15px; color:#4F5763}
.pbody h2{font-size:clamp(28px,2.6vw,38px); line-height:1.2; margin-top:10px}
.pbody .tag{color:#6B7380; margin:10px 0 22px; font-size:15.5px}
.pbody p{font-size:17px; max-width:62ch; margin:0 0 14px}
.pbody ul{margin:6px 0 20px; padding:0; list-style:none; border-top:1px solid #DDE1E6; max-width:62ch}
.pbody li{padding:12px 0 12px 24px; border-bottom:1px solid #DDE1E6; position:relative; font-size:16px}
.pbody li::before{content:""; position:absolute; left:0; top:20px; border-left:8px solid #7C8594; border-top:5px solid transparent; border-bottom:5px solid transparent}
.proc{margin:28px 0 24px}
.proc-h{font-size:13px!important; color:#6B7380; margin:0 0 12px!important}
.proc ol{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#DDE1E6; border:1px solid #DDE1E6}
.proc li{background:#FFFFFF; padding:16px 16px 18px; font-size:14.5px; line-height:1.45; color:#1F242B; border:0}
.proc li::before{display:none}
.proc li span{display:block; font-size:12px; color:#7C8594; margin-bottom:6px; letter-spacing:.04em}
.faqs{border-top:1px solid #1F242B}
.faqs details{border-bottom:1px solid #DDE1E6}
.faqs summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 0; font-size:18px; color:#1F242B}
.faqs summary::-webkit-details-marker{display:none}
.faqs details p{margin:0 0 20px; font-size:16px; max-width:64ch; color:#2E353F}
@media (max-width:1040px){.prac,.prac.flip{grid-template-columns:1fr; gap:28px} .prac.flip .ppanel{order:0} .ppanel{max-width:520px} .proc ol{grid-template-columns:repeat(2,1fr)}}

/* practice icon panels and icon process */
.ppanel{aspect-ratio:auto; min-height:260px; align-items:center; justify-content:center; text-align:center; gap:18px; background:linear-gradient(160deg,#F7F8F9 0%,#ECEEF1 100%)}
.ppanel .ic{width:76px; height:76px; color:#3A414B}
.ppanel .pp-k{margin:0; font-size:15px; color:#4F5763}
.proc ol{grid-template-columns:repeat(4,1fr); background:transparent; border:0; gap:0; counter-reset:none}
.proc li{position:relative; background:transparent; padding:20px 18px 20px 0; display:flex; flex-direction:column; gap:12px; border-top:1px solid #DDE1E6}
.proc li .ic{width:30px; height:30px; color:#3A414B}
.proc li span{display:block; font-size:14.5px; color:#1F242B; letter-spacing:0; margin:0}
.proc li:not(:nth-child(4n))::after{content:""; position:absolute; right:8px; top:34px; width:7px; height:7px; border-top:1px solid #9AA2AE; border-right:1px solid #9AA2AE; transform:rotate(45deg)}
@media (max-width:1040px){.proc ol{grid-template-columns:repeat(2,1fr)} .proc li::after{display:none}}

/* practice photographs with title plate */
.pimg{position:relative; margin:0}
.pimg img{display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover}
.pimg figcaption{position:absolute; left:-1px; bottom:-1px; background:#FFFFFF; padding:14px 22px 0 0; font-size:15px; color:#1F242B; max-width:80%}
.pimg figcaption::before{content:""; display:block; width:28px; height:2px; background:#2B313A; margin-bottom:10px}
.prac.flip .pimg{order:2}
.prac.flip .pimg figcaption{left:auto; right:-1px; padding:14px 0 0 22px; text-align:right}
.prac.flip .pimg figcaption::before{margin-left:auto}
/* fundraise process: one line of eight steps */
.prac .proc{grid-column:1/-1; margin:8px 0 0}
.prac.flip .proc{order:3}
.proc ol{display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:6px; background:transparent; border:0; padding:0; margin:0; list-style:none}
.proc li{border:0; background:#EEF0F2; padding:18px 18px 18px 26px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; min-height:150px;
  clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%)}
.proc li:first-child{padding-left:18px; clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%)}
.proc li::after,.proc li:not(:nth-child(4n))::after{display:none}
.proc li .ic{width:26px; height:26px; color:#2B313A}
.proc li span{font-size:13.5px; line-height:1.4; color:#1F242B}
.proc li:nth-child(even){background:#E4E7EB}
@media (max-width:1040px){
  .proc{overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:8px}
  .proc ol{grid-template-columns:repeat(8,150px); width:max-content}
}
/* What We Do: faithful layout — image, title, points; arrow markers as on eiva.in */
.pimg figcaption{display:none}
.pbody h2{margin-top:0; margin-bottom:22px}
.pbody ul li::before{border-left-color:#2B313A}
/* What We Do lists: no dividers, short dash markers */
.pbody ul{border-top:0; margin:0 0 8px}
.pbody ul li{border-bottom:0; padding:7px 0 7px 26px}
.pbody ul li::before{content:""; border:0; width:12px; height:1.5px; background:#2B313A; top:19px; left:0}



/* Home: transactions by practice, between the hero and Who We Are */
.pstats{padding:40px 0 44px; background:#FFFFFF; border-bottom:1px solid #DDE1E6}
.pst{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px}
.pst-i .ic{width:32px; height:32px; color:#111418; display:block}
.pst-i b{display:block; font-weight:300; font-size:clamp(34px,3.2vw,46px); line-height:1; color:#1F242B; margin-top:14px; font-variant-numeric:tabular-nums}
.pst-i span{display:block; margin-top:8px; font-size:14px; color:#5B6470}
@media (max-width:760px){.pst{grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 16px} .pstats{padding:32px 0}}
@media (max-width:420px){.pst{grid-template-columns:repeat(2,minmax(0,1fr))}}

.fli{display:inline-flex; color:#3A414B; margin-top:4px} .fli:hover{color:#0A66C2}

/* client logos in their own colours */
.tomb .lgm,.qlogo,.tslide .qlogo{background-color:transparent!important; -webkit-mask:none!important; mask:none!important}
@media (max-width:767px){.home-hero .stats,.stats{border-top:0} .stats div,.stats div+div{border-left:0; padding-left:0}}
.recog{padding:28px 0; border-bottom:1px solid #DDE1E6; background:#FFFFFF}
.recrow{display:grid; grid-template-columns:auto minmax(0,1fr); gap:40px; align-items:center}
.reclbl{margin:0; font-size:13px; letter-spacing:.04em; color:#6B7380}
.phs.recs{margin:0; gap:24px 48px; justify-content:space-between; align-items:center}
.ph.rec{height:auto; overflow:visible; border:0; background:none; display:flex; align-items:center; gap:16px; max-width:540px}
.ph.rec::after{content:none}
.ph.rec img{height:64px; width:auto; filter:none; border:1px solid #DDE1E6; flex:none}
.ph.rec:hover img{transform:none; box-shadow:0 8px 18px -10px rgba(31,36,43,.45)}
.rect{display:block; line-height:1.35}
.rect b{display:block; font-weight:500; font-size:14px; color:#1F242B}
.rect span{display:block; margin-top:3px; font-size:13px; color:#6B7380}
.rect i{display:block; margin-top:4px; font-style:normal; font-size:12px; color:#7C8594; text-decoration:underline; text-underline-offset:3px}
@media (max-width:640px){.recrow{grid-template-columns:1fr; gap:14px} .ph.rec img{height:56px}}
.recs2{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px 48px}
.ph.rec img[alt^="Tracxn"]{height:56px}

/* ---- added for the multi-page version ---- */
.svc-h{color:inherit;text-decoration:none}
.svc-h:hover{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.svc-one .prac{margin-bottom:0}
.svc-more{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px 48px}
.svc-next{margin:48px 0 0;display:flex;flex-wrap:wrap;gap:16px 48px}
.page-hero h1.svc-h1{max-width:22ch}
