/* BCC redesign, Nov 2026: consulting-firm register (Oliver Wyman, Cornerstone Research, Charles River Associates).
   Loaded last on every page that cf/patch_redesign.py has processed. Overrides only; the base stylesheets are untouched. */

:root{
  --red:#0B3A68;--red-hi:#0B3A68;            /* every former red use becomes navy */
  --navy:#0B3A68;--navy-deep:#072B4F;--navy-ink:#071F38;
  --accent:#6E93BC;                            /* one restrained mid-blue, for data and rules */
  --pale:#FFFFFF;
  --ink:#16202B;--mute:#4D5866;--rule:#D8DDE4;
  --serif:Bask,'Libre Baskerville',Georgia,'Times New Roman',serif;
}
:focus-visible{outline:2px solid var(--navy)}

/* ---------- Headlines: Baskerville, regular weight, no full stops, no red bars ---------- */
.dot{display:none!important}
.disp,h1.disp,h2.disp{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;line-height:1.14;color:var(--navy-ink)}
.head h2::before,.regions h2::before,.team h2::before,.body h2::before{display:none!important}
.head h2,.regions h2,.team h2,.body h2{padding-top:0}

/* tables: light header with a navy rule, no filled bar or capitals */
th{background:none;color:var(--navy-ink);border-bottom:1px solid var(--navy);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none}
.head h2{font-size:44px}
.rgrid h3,.mgrid h3,.pgrid h3,.cgrid5 h3,.sgrid h3,.igrid h3,.hgrid h3,.faq summary,.conv b,.tlist b,.rlist b,
.glance b,.steps li b,.outcome b,.egrid h3{font-family:var(--serif);font-weight:400;letter-spacing:-.005em}
.steps li::before{font-family:var(--serif);font-weight:400;color:var(--accent)}
.faq summary::after{color:var(--navy)}

/* ---------- Labels: plain sentence case, no spaced capitals ---------- */
.also b,.artlist .tp,.direct span,.elist em,.mtoc summary,.nav .dd b,.outcome .lab,.result .rfig span,.result .tag,
.stable td:before,table.stack td[data-label]::before,.sw .k,.rt .aw,[style*="text-transform:uppercase"]{text-transform:none!important;letter-spacing:0!important}
.body h2,.art h2,.sec .body h2,.body h3,.art h3{font-family:var(--serif);font-weight:400;letter-spacing:-.008em;color:var(--navy-ink)}
.label{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:var(--mute)}
.rgrid .label,.mgrid .label,.cgrid5 .label,.igrid .label{color:var(--mute)}
.hero .label,.phero .label{display:none}
.also b{text-transform:none;letter-spacing:0;font-size:14px;color:var(--mute)}
.rlist em{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:var(--mute)}
footer h4{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600;color:#fff}
.cform label{text-transform:none;letter-spacing:0;font-size:14px;font-weight:600}
.glance span{text-transform:none;letter-spacing:0}

/* ---------- Buttons and links: navy, square, one quiet contact in the header ---------- */
.btn{background:var(--navy);border:1px solid var(--navy);color:#fff;font-weight:600;height:48px;padding:0 22px;border-radius:0}
.btn:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.btn.navy{background:var(--navy);border-color:var(--navy)}
.btn.line{background:transparent;border-color:var(--navy);color:var(--navy)}
.btn.line:hover{background:var(--navy);color:#fff}
.nav .nbtn{background:transparent;color:var(--navy);border:1px solid var(--navy);height:40px;padding:0 18px;font-weight:600;font-size:15px}
.nav .nbtn:hover{background:var(--navy);color:#fff}
.nav ul a:hover{border-bottom-color:var(--navy)}
.tlink{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy);border-bottom:1px solid var(--accent);padding-bottom:2px;line-height:1.3}
.tlink::after{content:'→';font-weight:400}
.tlink:hover{border-bottom-color:var(--navy)}
.more{color:var(--navy);font-weight:600}
.body a:not(.btn):not(.tlink),.art a:not(.btn):not(.tlink){color:var(--navy);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}

/* ---------- Header: white utility line, no dark strip ---------- */
.topstrip,.util{background:#fff;color:var(--mute);border-bottom:1px solid var(--rule)}
.topstrip a,.util a{color:var(--mute);opacity:1}
.topstrip .ul,.util a.ul{color:var(--navy);font-weight:600}
.util a:hover{border-bottom-color:var(--navy)}

/* ---------- Sections: white, separated by ruled lines ---------- */
.sec.pale,.related,.caps,.practices,.market,.team,.engage,.how,.insights,.standing,.sectors{background:#fff}
.sec.pale,.related,.practices,.market,.team,.insights,.sectors{border-top:1px solid var(--rule)}
.sec .in,.related .in{padding-block:80px}
.sec.navy{background:#fff;color:var(--ink);border-top:1px solid var(--rule)}
.sec.navy .head h2,.sec.navy h3{color:var(--navy-ink)}
.sec.navy .head p,.sec.navy .item p{color:var(--mute)}
.sec.navy .item{border-top-color:var(--navy)}

/* ---------- Cards: ruled tops, no boxes, no heavy borders ---------- */
.rgrid a,.mgrid a,.igrid a,.egrid article{background:#fff;border:0;border-top:1px solid var(--navy);padding:22px 0 8px}
.rgrid a:hover h3,.mgrid a:hover h3,.igrid a:hover h3{color:var(--navy)}
.rgrid{gap:40px}
.mgrid{gap:40px}
.igrid .tx{padding:0}

/* ---------- Client logos: one colour ---------- */
.wall img,.wall svg,.egrid article i img,.egrid article svg{filter:grayscale(1) contrast(1.15);opacity:.8}
.wall .vw b{color:#3E4752}
.standing .in{padding-block:56px 52px}

/* ---------- Page hero (licence, sector, index pages): short, white, ruled ---------- */
.phero{background:#fff;color:var(--ink);min-height:0;border-bottom:1px solid var(--rule);display:block}
.phero>img,.phero::before,.phero::after{display:none}
.phero .in{padding-block:44px 52px}
.phero .crumb{color:var(--mute)}
.phero .crumb a:hover{color:var(--navy)}
.phero h1{color:var(--navy-ink);font-size:50px;max-width:820px}
.phero .lead{color:var(--mute);font-size:19px;margin:18px 0 28px;max-width:640px}
.phero .ctas{align-items:center;gap:28px}
.phero .meta{color:var(--mute);font-size:14px;margin-top:22px}
.phero .meta a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.phero .grid2{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:72px;align-items:end}
.kf{border-top:1px solid var(--navy);margin:0;padding:0;list-style:none}
.kf li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--rule);font-size:15px}
.kf li span{color:var(--mute)}
.kf li b{font-weight:600;color:var(--navy-ink);text-align:right}
.kf-h{font-size:14px;font-weight:600;color:var(--mute);margin-bottom:10px}

/* the stat strip under index heroes: a quiet ruled row */
.glance{background:#fff;color:var(--ink);border-top:0;border-bottom:1px solid var(--rule)}
.glance b{color:var(--navy-ink);font-size:24px}
.glance span{color:var(--mute)}

/* ---------- Licence page body ---------- */
.trust{border-bottom:1px solid var(--rule)}
.thead h2{font-size:34px}
.outcome b{font-size:22px;color:var(--navy-ink)}
.outcome>div{background:#fff;border:0;border-top:1px solid var(--navy)}
.toc ol{border-top-color:var(--navy)}
.toc .cta{display:none}
.keys{background:none;border-top:1px solid var(--navy);border-bottom:1px solid var(--rule);padding:20px 0 14px;margin-bottom:28px}
.keys .label{color:var(--navy-ink);font-size:15px}
.shortans{border-left:0!important;border-top:1px solid var(--navy);padding:18px 0 0!important}
.shortans p:first-child{text-transform:none!important;letter-spacing:0!important;font-size:15px!important;color:var(--navy-ink)!important;font-weight:600!important}

/* package blocks on licence pages */
.pkg{border-top:0!important;gap:0 40px!important;background:none!important}
.pkg>div{background:none!important;border-top:1px solid var(--navy)!important;padding:18px 0 0!important}
.pkg b{font-family:var(--serif);font-weight:400;font-size:21px;color:var(--navy-ink)}

/* How we work / why firms choose BCC: numbered editorial columns instead of label rows */
.hw{background:#fff;color:var(--ink);border-top:1px solid var(--rule)}
.hw .in{padding-block:80px}
.hw h2,.hw .disp{color:var(--navy-ink)}
.hw .conv,.ed{list-style:none;counter-reset:e;border-top:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.hw .conv li,.ed li{counter-increment:e;display:block;padding:20px 0 22px;border-top:1px solid var(--navy);border-bottom:0}
.hw .conv li::before,.ed li::before{content:counter(e,decimal-leading-zero);display:block;font-family:var(--serif);color:var(--accent);font-size:15px;margin-bottom:6px}
.hw .conv b,.ed b{display:block;font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2;color:var(--navy-ink);margin-bottom:8px}
.hw .conv span,.ed span{display:block;color:var(--mute);font-size:16px}

/* ---------- Home ---------- */
.xhero{border-bottom:1px solid var(--rule);background:#fff}
.xhero .in{padding-block:64px 64px;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:72px;align-items:center}
.xhero h1{font-size:54px;line-height:1.1;color:var(--navy-ink);max-width:660px}
.xhero p.lead{font-size:19px;line-height:1.55;color:var(--mute);margin:22px 0 32px;max-width:560px}
.xhero .ctas{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.exh{border-top:1px solid var(--navy);padding-top:16px}
.exh h2{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.25;color:var(--navy-ink)}
.exh .sub{font-size:14px;color:var(--mute);margin:4px 0 18px}
.exh .key{display:flex;gap:18px;font-size:13px;color:var(--mute);margin-bottom:12px}
.exh .key i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.bars{list-style:none;margin:0;padding:0}
.bars li{display:grid;grid-template-columns:96px minmax(0,1fr) 40px;gap:12px;align-items:center;padding:5px 0;font-size:14px}
.bars .c{color:var(--ink)}
.bars .t{display:flex;height:14px;background:#EEF1F5}
.bars .t i{display:block;height:100%}
.bars .n{text-align:right;font-weight:600;color:var(--navy-ink);font-variant-numeric:tabular-nums}
.k-emi{background:var(--navy)}
.k-pi{background:var(--accent)}
.exh .src{font-size:13px;color:var(--mute);margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.exh .src a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}

.stance{background:#fff}
.stance .in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;padding-block:88px;align-items:start}
.stance .lft{background:none;color:var(--ink);padding:0}
.stance .lft::before,.stance .lft::after{display:none}
.stance .rgt{padding:0}
.stance h2{font-size:42px;color:var(--navy-ink)}
.stance .lft p{color:var(--mute);font-size:18px;margin-top:18px}
.stance .ed{grid-template-columns:1fr}

.practices .pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 48px}
.practices .pgrid a{border-top:1px solid var(--navy);padding:22px 0 30px}
.practices .pgrid h3{margin:0 0 10px;font-size:24px;color:var(--navy-ink)}

.sgrid{gap:0 48px}
.sgrid a{aspect-ratio:auto;background:#fff;color:var(--ink);border-top:1px solid var(--navy);overflow:visible}
.sgrid a::before,.sgrid a::after,.sgrid a img{display:none}
.sgrid .t{position:static;padding:20px 0 26px}
.sgrid h3{font-size:24px;color:var(--navy-ink);margin-bottom:6px}
.sgrid span{color:var(--mute)}

.regions{background:#fff;color:var(--ink);border-top:1px solid var(--rule)}
.regions h2{color:var(--navy-ink);font-size:44px}
.regions .in{grid-template-columns:1fr;padding-block:88px}
.regions .lead{color:var(--mute)}
.rlist{border-top:1px solid var(--navy)}
.rlist li{border-bottom:1px solid var(--rule);grid-template-columns:260px 1fr 140px}
.rlist b{color:var(--navy-ink)}
.rlist span{color:var(--mute)}

.egrid article{gap:10px}
.team .in{grid-template-columns:1fr}
.team .in>div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:72px;align-items:start}
.team h2,.team .lead,.team .tlink{grid-column:1}
.team .tlink{justify-self:start}
.team .tlist{grid-column:2;grid-row:1/span 3;border-top:0;margin:0;display:grid;grid-template-columns:1fr}
.tlist li{display:block;border-top:1px solid var(--navy);border-bottom:0;padding:18px 0 20px}
.tlist b{display:block;font-size:22px;color:var(--navy-ink);margin-bottom:6px}
.how .in{grid-template-columns:1fr}
.hgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:0}
.hgrid>div{display:block;border-top:1px solid var(--navy);border-bottom:0;padding:20px 0 24px}
.hgrid h3{font-size:22px;margin-bottom:8px;color:var(--navy-ink)}
.mfoot{font-weight:400;color:var(--mute)}

/* ---------- Footer: the one dark band ---------- */
footer{background:var(--navy-ink)}
.contact h2{font-family:var(--serif);font-weight:400;color:#fff}

/* ---------- Phone ---------- */
@media (max-width:900px){
  .head h2,.regions h2{font-size:32px}
  .phero .in{padding-block:28px 36px}
  .phero h1{font-size:34px}
  .phero .lead{font-size:17px}
  .phero .grid2{grid-template-columns:1fr;gap:32px}
  .xhero .in{grid-template-columns:1fr;gap:44px;padding-block:36px 44px}
  .xhero h1{font-size:38px}
  .xhero p.lead{font-size:17px}
  .bars li{grid-template-columns:84px minmax(0,1fr) 34px}
  .stance .in{grid-template-columns:1fr;gap:28px;padding-block:56px}
  .stance h2{font-size:30px}
  .hw .conv,.ed,.hgrid{grid-template-columns:1fr}
  .practices .pgrid,.sgrid{grid-template-columns:1fr}
  .practices .pgrid a{display:flex;flex-direction:column;padding:18px 0 22px;border-bottom:0}
  .practices .pgrid a:first-child{border-top:1px solid var(--navy)}
  .practices .pgrid h3{font-size:22px}
  .rlist li{grid-template-columns:1fr;gap:4px}
  .rlist em{text-align:left}
  .team .in>div{grid-template-columns:1fr}
  .team .tlist{grid-column:1;grid-row:auto;margin:24px 0}
  .sec .in,.related .in,.hw .in{padding-block:52px}
  .nav .nbtn{display:none}
}

/* ---------- Site-wide pass (rollout, 3 Nov 2026) ---------- */
/* page-level label styles that the base sheet capitalises */
.mform label,.elist em,.direct span,.artlist .tp,.chips span,.sw .k,.rt .aw,.ag .k,.bc .k{text-transform:none!important;letter-spacing:0!important}
/* every table: light header with a navy rule */
th{background:none!important;color:var(--navy-ink)!important;border-bottom:1px solid var(--navy)!important;text-transform:none!important;letter-spacing:0!important}
/* short answers and similar call-outs: a top rule, no side bar, no tint */
.lt-answer,.shortans{border-left:0!important;border-top:1px solid var(--navy);padding:18px 0 0!important;background:none!important}
.lt-k{color:var(--navy-ink)!important;font-size:15px!important;font-weight:600!important}
/* client logo walls sit on the page, not in a box */
.wall{border:0!important;background:none!important;box-shadow:none!important}
.trust.pale,.trust{background:#fff}
/* card and list titles in the body face: friendlier than serif at small sizes */
.rgrid h3,.mgrid h3,.pgrid h3,.cgrid5 h3,.sgrid h3,.igrid h3,.hgrid h3,.egrid h3,.tlist b,.rlist b,.conv b,.glance b,.steps li b,
.outcome b,.pkg b,.hw .conv b,.ed b,.practices .pgrid h3,.sgrid h3{font-family:var(--body,'OSV','Open Sans',Arial,sans-serif)!important;font-weight:600!important;letter-spacing:-.005em!important}
.faq summary{font-family:var(--body,'OSV','Open Sans',Arial,sans-serif)!important;font-weight:600!important}
/* lead text: one shade darker so it reads warm rather than faint */
.phero .lead,.xhero p.lead,.head p{color:#3B4653}
/* headlines break into even lines, never a one-word last line */
.disp,h1,h2{text-wrap:balance}
/* a few comparison pages measured 3px wider than a phone screen before the redesign; nothing may scroll sideways */
html,body{overflow-x:clip}
.split .head h2{font-size:36px}
@media (max-width:900px){.xhero h1{font-size:33px}.split .head h2{font-size:30px}}
