/* =========================================================
   Kompass website stylesheet
   Colors and fonts are set as variables in :root below.
   Change a color once there and it updates across every page.
   ========================================================= */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:.6rem 1rem;text-decoration:none}
.skip:focus{left:1rem;top:1rem}

/* Layout: editorial single column on Paper, left aligned, wide gutters; one Compass red accent per page */
:root{
  --paper:#F4EFE6; --ink:#27221D; --stone:#6B625A; --rule:#D8D0C2; --card:#EDE7DC; --clay:#C99180;
  --accent:#962A1F; --band:#27221D; --band-fg:#F4EFE6; --band-muted:#C9BFB1; --band-rule:#4A423A;
  --note:#FBF3D9; --note-fg:#4A3B12; --band-accent:#D98B7B;
  --display:"Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
  --body:"Jost", "Futura", "Century Gothic", "Helvetica Neue", Arial, sans-serif;
  --max:1120px; --gut:clamp(16px,4vw,40px);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#1E1A16; --ink:#F4EFE6; --stone:#B3A99D; --rule:#3D362F; --card:#2A2520; --clay:#C99180;
  --accent:#B8402F; --band:#14110E; --band-fg:#F4EFE6; --band-muted:#B3A99D; --band-rule:#3D362F;
  --note:#3A3220; --note-fg:#F1E4BE; color-scheme:dark }}
:root[data-theme="dark"]{
  --paper:#1E1A16; --ink:#F4EFE6; --stone:#B3A99D; --rule:#3D362F; --card:#2A2520; --clay:#C99180;
  --accent:#B8402F; --band:#14110E; --band-fg:#F4EFE6; --band-muted:#B3A99D; --band-rule:#3D362F;
  --note:#3A3220; --note-fg:#F1E4BE; color-scheme:dark }

body{background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:400;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;text-wrap:balance;margin:0}
h1{font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:-.01em}
h2{font-size:clamp(2rem,3.6vw,2.9rem)}
h3{font-size:1.55rem;line-height:1.2}
p{margin:0;max-width:65ch}
.eyebrow{font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--stone)}
.lede{font-size:1.2rem;line-height:1.6;color:var(--stone);font-weight:300}
.stack{display:flex;flex-direction:column}
.g1{gap:.6rem}.g2{gap:1.1rem}.g3{gap:1.8rem}.g4{gap:3rem}

/* logos */
.lg{display:block;width:auto;max-width:100%}
.lg-dark{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .lg-light{display:none}:root:not([data-theme="light"]) .lg-dark{display:block}}
:root[data-theme="dark"] .lg-light{display:none}
:root[data-theme="dark"] .lg-dark{display:block}


/* header */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--paper);border-bottom:1px solid var(--rule)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:.8rem;position:relative}
.brand{display:flex;align-items:center;text-decoration:none}
nav.main{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:center}
nav.main a{position:relative;text-decoration:none;font-size:.9rem;color:var(--stone);padding-block:.3rem;border-bottom:1px solid transparent;transition:color .18s}
nav.main > a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
nav.main > a:hover::after,nav.main > a:focus-visible::after{transform:scaleX(1)}
nav.main a:hover{color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
nav.main a.nav-search{display:inline-flex;align-items:center;gap:.35rem}
.nav-search svg{width:.9em;height:.9em;flex:none}
.nav-group{position:relative}
.nav-dd{display:inline-flex;align-items:center;gap:.35rem;font:inherit;font-size:.9rem;color:var(--stone);background:none;border:0;border-bottom:1px solid transparent;padding:.3rem 0;cursor:pointer;transition:color .18s}
.nav-dd svg{width:.65em;height:.65em;transition:transform .2s}
.nav-dd:hover,.nav-group.open .nav-dd{color:var(--ink)}
.nav-dd.cur{color:var(--ink);border-bottom-color:var(--ink)}
.nav-group.open .nav-dd svg{transform:rotate(180deg)}
.nav-menu{display:none;position:absolute;top:calc(100% + .7rem);left:50%;transform:translateX(-50%);min-width:280px;background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:0 14px 36px rgba(20,17,14,.14);padding:.6rem;z-index:20}
.nav-menu::before{content:"";position:absolute;left:0;right:0;top:-.8rem;height:.8rem}
.nav-group.open .nav-menu{display:grid;gap:.05rem}
@media (hover:hover) and (min-width:861px){.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{display:grid;gap:.05rem}}
.nav-menu .nav-h{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);padding:.5rem .7rem .2rem}
.nav-menu a{display:flex;flex-direction:column;gap:.05rem;padding:.5rem .7rem;border-bottom:0;border-radius:2px;color:var(--ink);transition:background-color .15s}
.nav-menu a small{font-size:.76rem;color:var(--stone)}
.nav-menu a:hover,.nav-menu a[aria-current="page"]{background:var(--card)}
.menu-btn{display:none;font:inherit;font-size:.85rem;background:none;border:1px solid var(--rule);color:var(--ink);padding:.35rem .8rem;border-radius:2px;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;gap:0;padding:.5rem var(--gut) 1rem}
  nav.main.open{display:flex;align-items:stretch}
  nav.main a{padding-block:.7rem;border-bottom:1px solid var(--rule)}
  nav.main a[aria-current="page"]{border-bottom-color:var(--rule);font-weight:500}
  nav.main > a::after{display:none}
  .nav-group{display:block}
  .nav-dd{width:100%;justify-content:space-between;padding-block:.7rem;border-bottom:1px solid var(--rule)}
  .nav-dd svg{width:.8em;height:.8em}
  .nav-menu{position:static;transform:none;min-width:0;border:0;box-shadow:none;padding:.2rem 0 .4rem .8rem;background:transparent}
  .nav-menu a{padding:.5rem .4rem}
}

/* sections */
section.block{padding-block:clamp(3.5rem,8vw,6.5rem)}
section.block + section.block{border-top:1px solid var(--rule)}
.hero{padding-block:clamp(3.5rem,9vw,7rem) clamp(3rem,7vw,5.5rem)}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
@media (max-width:820px){.hero-grid{grid-template-columns:1fr}}
.btn{display:inline-flex;align-items:center;gap:.6rem;font:inherit;font-size:.92rem;font-weight:500;text-decoration:none;padding:.8rem 1.4rem;border-radius:2px;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;line-height:1.3;transition:background-color .18s,color .18s,border-color .18s,transform .1s}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn:active{transform:translateY(1px)}
.btn.sm{padding:.55rem 1rem;font-size:.85rem}
.btn.lg{padding:1rem 1.8rem;font-size:1rem}
.ar{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.btn-arrow{display:inline-flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.86rem;font-weight:500;line-height:1.3;color:var(--ink);text-decoration:none;padding:.6rem .9rem;border:1px solid var(--rule);border-radius:2px;background:var(--paper);transition:border-color .18s,background-color .18s,transform .1s}
.btn-arrow:hover{border-color:var(--ink);background:var(--card)}
.btn-arrow:active{transform:translateY(1px)}
.row{display:flex;gap:.8rem;flex-wrap:wrap}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(1.5rem,5vw,5rem)}
@media (max-width:820px){.split{grid-template-columns:1fr}}

.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.facts div{padding:1.2rem 1.4rem 0 0;display:flex;flex-direction:column;gap:.35rem;min-width:0}
.facts strong{font-family:var(--display);font-size:2.2rem;font-weight:500;line-height:1}
.facts span{font-size:.88rem;color:var(--stone);line-height:1.45}
@media (max-width:640px){.facts{grid-template-columns:1fr}.facts div{padding-right:0;padding-bottom:.8rem;border-bottom:1px solid var(--rule)}}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem 3.5rem}
.pillars > div{display:flex;flex-direction:column;gap:.55rem;min-width:0;border-top:1px solid var(--ink);padding-top:1.1rem}
.pillars p{color:var(--stone)}
@media (max-width:720px){.pillars{grid-template-columns:1fr}}

/* balance band */
.band{background:var(--band);color:var(--band-fg)}
.band .eyebrow,.band .lede,.band p{color:var(--band-muted)}
.band h2,.band h3{color:var(--band-fg)}
.band .btn{border-color:var(--band-fg);color:var(--band-fg)}
.band .btn.solid{background:var(--band-fg);color:var(--band)}
.band .btn:hover,.hero-dark .btn:hover,.learn-cta .btn:hover{background:var(--band-fg);color:var(--band)}
.band .btn.solid:hover,.hero-dark .btn.solid:hover,.learn-cta .btn.solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}
/* service index on home */
.ifi-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.4rem;align-items:center;background:var(--card);padding:1rem 1.4rem}
.ifi-strip p{font-size:.95rem}
.ifi-strip a{font-weight:500}
@media (max-width:700px){.ifi-strip{grid-template-columns:1fr;gap:.5rem}}

/* sectors */
.sectors{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule)}
.sectors li{padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:.2rem;min-width:0}
.sectors b{font-family:var(--display);font-size:1.4rem;font-weight:500;line-height:1.2}
.sectors span{font-size:.86rem;color:var(--stone)}
@media (max-width:760px){.sectors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.sectors{grid-template-columns:1fr}}

/* outcomes */
.outcomes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem}
.outcomes > div{border-top:1px solid var(--ink);padding-top:1rem;display:flex;flex-direction:column;gap:.5rem;min-width:0}
.glyph{display:block;width:32px;height:32px;color:var(--accent)}
.outcomes q{font-family:var(--display);font-size:1.25rem;font-style:italic;line-height:1.3;quotes:none}
.outcomes p{font-size:.88rem;color:var(--stone)}
@media (max-width:900px){.outcomes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.outcomes{grid-template-columns:1fr}}

/* services detail */
.svc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.6rem);padding-block:2.4rem;border-top:1px solid var(--rule);scroll-margin-top:90px}
.svc:last-child{border-bottom:1px solid var(--rule)}
.svc .idx{font-family:var(--display);font-size:1rem;color:var(--stone)}
.svc ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem;font-size:.95rem}
.svc .body p{font-size:.95rem}
.svc .start{font-size:.88rem;color:var(--stone);border-left:1px solid var(--rule);padding-left:1rem;display:flex;flex-direction:column;gap:.35rem}
.svc .start b{font-weight:500;color:var(--ink);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.svc .start b + *{margin-top:-.1rem}
.svc .start ul{font-size:.88rem;padding-left:1rem;gap:.25rem}
.svc .start .first{margin-top:.6rem}
.svc .start a{color:var(--ink);font-weight:500}
.partner-note{font-size:.88rem;color:var(--stone)}
@media (max-width:860px){.svc{grid-template-columns:1fr}.svc .start{border-left:none;padding-left:0}}

/* method */
.phases{list-style:none;margin:0;padding:2.9rem 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 1.2rem;counter-reset:ph;position:relative}
.phases::before{content:"";position:absolute;left:1.1rem;right:1.1rem;top:1.1rem;height:1px;background:var(--rule)}
.phases li{counter-increment:ph;padding:0 .5rem 0 0;display:flex;flex-direction:column;gap:.45rem;min-width:0;position:relative}
.phases li::before{content:"0" counter(ph);position:absolute;top:-2.9rem;left:0;width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--ink);background:var(--paper);display:grid;place-items:center;font-family:var(--display);font-size:.95rem;color:var(--ink);z-index:1}
.phases li:first-child::before{background:var(--accent);border-color:var(--accent);color:#fff}
.phases h3{font-size:1.45rem}
.phases p{font-size:.88rem;color:var(--stone)}
.phases small{font-size:.8rem;color:var(--ink);border-top:1px solid var(--rule);padding-top:.45rem;margin-top:.2rem}
@media (max-width:900px){.phases{grid-template-columns:1fr 1fr;gap:3.2rem 1.6rem}.phases::before{display:none}}
@media (max-width:520px){.phases{grid-template-columns:1fr}}
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem 3rem}
.principles > div{display:flex;flex-direction:column;gap:.5rem;min-width:0}
@media (max-width:700px){.principles{grid-template-columns:1fr}}

/* team */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem)}
@media (max-width:760px){.people{grid-template-columns:1fr}}
.person{display:flex;flex-direction:column;gap:1rem;min-width:0}
.portrait{aspect-ratio:4/5;max-width:100%;background:var(--card);border:1px solid var(--rule);display:grid;place-items:center;position:relative}
.portrait .ring{position:absolute;inset:0;width:100%;height:100%;color:var(--rule);fill:none;stroke:currentColor;stroke-width:1.2}
.portrait .ring .n{fill:var(--accent);stroke:none}
.portrait span{font-family:var(--display);font-size:4rem;color:var(--stone);position:relative}
.portrait small{position:absolute;bottom:.8rem;left:0;right:0;text-align:center;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.person h3{font-size:2rem}
.person .role{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.person ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem;font-size:.95rem}
.person .quals{font-size:.85rem;color:var(--stone);border-top:1px solid var(--rule);padding-top:.8rem}

/* insights */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.posts article{border-top:1px solid var(--ink);padding-top:1rem;display:flex;flex-direction:column;gap:.6rem;min-width:0}
.posts h3{font-size:1.4rem}
.posts p{font-size:.92rem;color:var(--stone)}
.tag{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
@media (max-width:860px){.posts{grid-template-columns:1fr}}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,5rem)}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
.cards{display:grid;gap:1.4rem;align-content:start}
.cards > div{border-top:1px solid var(--rule);padding-top:1rem;display:flex;flex-direction:column;gap:.2rem}
.cards b{font-family:var(--display);font-size:1.4rem;font-weight:500}
.cards span{font-size:.92rem;color:var(--stone);user-select:all}
form{display:grid;gap:1rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.f2{grid-template-columns:1fr}}
label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;letter-spacing:.06em;color:var(--stone)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:.7rem .8rem;width:100%}
textarea{min-height:140px;resize:vertical}
.formnote{font-size:.85rem;color:var(--stone)}
.sent-box{font-size:1rem;line-height:1.6;padding:1.2rem 1.4rem;margin:1rem 0 2rem;background:var(--card);border-left:3px solid var(--accent)}.sent-box strong{font-weight:600}

/* footer */
footer{background:var(--band);color:var(--band-muted);font-size:.85rem}
footer .wrap{padding-block:3rem;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:2rem}
footer b{color:var(--band-fg);font-weight:500;display:block;margin-bottom:.5rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
footer a{text-decoration:none}
footer a:hover{color:var(--band-fg)}
footer .fl{display:flex;flex-direction:column;gap:.35rem;min-width:0}
footer .lockups{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}
footer .lockups small{font-size:.78rem}
footer .legal{grid-column:1/-1;border-top:1px solid var(--band-rule);padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.78rem}
@media (max-width:860px){footer .wrap{grid-template-columns:1fr 1fr}footer .wrap > .fl:first-child{grid-column:1/-1}}

@media (prefers-reduced-motion:no-preference){.page{animation:fade .35s ease}}
@keyframes fade{from{opacity:.4}to{opacity:1}}

/* ---- visual layer ---- */
.hero-dark{background:var(--band);color:var(--band-fg);position:relative;overflow:hidden;padding-block:clamp(4rem,10vw,8rem) clamp(3rem,7vw,5.5rem)}
.hero-dark .eyebrow,.hero-dark .lede,.hero-dark .facts span{color:var(--band-muted)}
.hero-dark h1 em{color:var(--band-accent)}
.hero-dark .facts{border-top-color:var(--band-rule)}
.hero-dark .btn{border-color:var(--band-fg);color:var(--band-fg)}
.hero-dark .btn.solid{background:var(--band-fg);color:var(--band)}
.hero-dark .wrap{position:relative;z-index:1}
.hero-mark{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:min(62vw,720px);opacity:.07;pointer-events:none}
.hero-mark img{width:100%;height:auto;display:block}
@media (max-width:820px){.hero-mark{width:120vw;right:-40vw;top:auto;bottom:-30%;transform:none;opacity:.05}}
@media (max-width:640px){.hero-dark .facts div{border-bottom-color:var(--band-rule)}}
.ifi-bar{background:var(--card);border-bottom:1px solid var(--rule)}
.ifi-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.4rem;align-items:center;padding-block:1rem}
.ifi-strip p{font-size:.95rem}
/* Readiness Index strip above the IFI strip: same shape, slightly different shade */
:root{--promo:#E2D6C3}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--promo:#36302A}}
:root[data-theme="dark"]{--promo:#36302A}
.ifi-bar.dri-bar{background:var(--promo)}
.dri-bar .btn{padding:.55rem 1.1rem;font-size:.88rem;white-space:nowrap}
@media (max-width:700px){.dri-bar .btn{justify-self:start}}
.dri-bar p{max-width:none}
.dri-bar .ifi-strip{background:transparent}
@media (max-width:700px){.ifi-strip{grid-template-columns:1fr;gap:.5rem}}
section.tint{background:var(--card)}
section.block.tint + section.block,section.block + section.block.tint{border-top:none}
.pillars{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.pillar{background:var(--paper);padding:1.6rem 1.5rem 1.8rem;border-top:none!important}
.pillar h3{font-size:1.4rem}
.pillar p{font-size:.93rem}
.pillar-glyph{display:block;width:40px;height:40px;color:var(--accent);margin-bottom:.4rem}
.pillar-glyph svg{width:100%;height:100%;display:block}
@media (max-width:1000px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}}
.balance-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:center}
@media (max-width:860px){.balance-grid{grid-template-columns:1fr}}
.balance-list{margin:0;display:grid;gap:.9rem;border-top:1px solid var(--ink);padding-top:1rem}
.balance-list div{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:1rem}
.balance-list dt{font-family:var(--display);font-size:1.35rem;font-style:italic;line-height:1.2}
.balance-list dd{margin:0;font-size:.92rem;color:var(--stone)}
@media (max-width:480px){.balance-list div{grid-template-columns:1fr;gap:.2rem}}
.balance-fig{margin:0;color:var(--ink);max-width:100%}
.balance-fig svg{width:100%;height:auto;display:block;max-width:440px;margin-inline:auto}
.bal-node circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}
.bal-node text,.bal-core text{font-family:var(--display);font-size:17px;text-anchor:middle;fill:var(--ink)}
.bal-node text.small{font-size:15px}
.bal-node text.sub,.bal-core text.sub{font-family:var(--body);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;fill:var(--stone)}
.bal-core circle{fill:var(--ink);stroke:none}
.bal-core text{fill:var(--paper);font-size:19px}
.bal-core text.sub{fill:var(--band-muted)}
.bal-accent circle{fill:var(--accent)}
.svc-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.svc-cards li{min-width:0;background:var(--paper)}
.svc-cards a{display:flex;flex-direction:column;gap:.5rem;height:100%;padding:1.4rem 1.3rem 1.3rem;text-decoration:none;position:relative;transition:background .2s}
.svc-cards a:hover{background:var(--card)}
.svc-cards b{font-family:var(--display);font-size:1.45rem;font-weight:500;line-height:1.15}
.svc-cards span{font-size:.88rem;color:var(--stone);flex:1}
.svc-cards .ic{width:34px;height:34px;color:var(--accent);margin-bottom:.3rem}
.svc-cards .ic svg,.glyph svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:1000px){.svc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.svc-cards{grid-template-columns:1fr}}
.sectors{gap:1px;background:var(--rule);border:1px solid var(--rule);border-top:1px solid var(--rule)}
.sectors li{background:var(--paper);padding:1.2rem 1.3rem;border-bottom:none}
.cta{position:relative;overflow:hidden}
.cta .wrap{position:relative;z-index:1}
.cta-mark{position:absolute;left:-8%;bottom:-45%;width:min(50vw,520px);opacity:.06;pointer-events:none}
.cta-mark img{width:100%;height:auto;display:block}
@media (prefers-reduced-motion:no-preference){
  .hero-dark .hero-grid>*,.hero-dark .facts{animation:rise .7s ease both}
  .hero-dark .hero-grid>*:nth-child(2){animation-delay:.12s}.hero-dark .facts{animation-delay:.24s}
}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* subpage heroes */
.page:not([data-page="home"]) .hero{border-bottom:1px solid var(--rule);background:linear-gradient(180deg,var(--card),var(--paper))}

/* partner logos (IFI and DOLFIN), clickable, with light and dark versions */
.kb-brand{display:inline-flex;align-items:center;gap:.9rem;color:var(--ink);text-decoration:none;line-height:1}
.kb-mark{width:3.6rem;height:3.6rem;flex:none}
.kb-text{display:grid;gap:.18rem}
.kb-word{font-family:var(--display);font-weight:500;font-size:2.3rem;letter-spacing:.32em;line-height:1;margin-right:-.32em}
.kb-by{font-size:.66rem;letter-spacing:.3em;color:var(--stone);font-weight:500;padding-left:.15rem}
.kb-brand.sm{gap:.7rem}.kb-brand.sm .kb-mark{width:2.4rem;height:2.4rem}.kb-brand.sm .kb-word{font-size:1.5rem}.kb-brand.sm .kb-by{font-size:.55rem}
a.kb-brand:hover{opacity:.8}
@media (max-width:520px){.kb-mark{width:2.8rem;height:2.8rem}.kb-word{font-size:1.7rem}}
.partner-logos{display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap}
.partner-logos a,.partner-logo{display:inline-flex;align-items:center;line-height:0}
.partner-logos img,.partner-logo img{width:auto;max-width:100%}
.partner-logos a:hover,.partner-logo:hover,footer .flogo:hover{opacity:.8}
.svc .partner-logo{margin-top:.5rem}
footer .flogo{display:block;line-height:0;margin:.1rem 0 .4rem}
footer .flogo img{display:block;width:auto;max-width:150px}

/* ---- visual layer 2: hero figures, covers, reveal ---- */
.hero-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.hero-fig{margin:0;width:100%;max-width:400px;justify-self:end}
.hero-fig svg{width:100%;height:auto;display:block;overflow:visible}
.hero-fig-photo img{width:100%;height:auto;display:block;border-radius:2px;box-shadow:0 14px 40px rgba(39,34,29,.18)}
.f-ink{stroke:var(--ink)}.f-stone{stroke:var(--stone)}.f-rule{stroke:var(--rule)}.f-acc{stroke:var(--accent)}
.f-fi{fill:var(--ink)}.f-fa{fill:var(--accent)}.f-fc{fill:var(--card)}.f-fp{fill:var(--paper)}.f-fs{fill:var(--stone)}.f-fr{fill:var(--rule)}.f-fclay{fill:var(--clay)}
.f-txt{fill:var(--stone);font-family:var(--body);font-size:8px;letter-spacing:.1em;text-transform:uppercase}
.f-num{fill:var(--ink);font-family:var(--display);font-size:22px}
@media (max-width:820px){.hero-split{grid-template-columns:1fr}.hero-fig{max-width:300px;justify-self:start}}
.cover{aspect-ratio:16/9;background:var(--card);overflow:hidden;color:var(--ink)}
.cover svg{width:100%;height:100%;display:block}
.posts article{border-top:0;padding-top:0}
.posts .cover{border:1px solid var(--rule);margin-bottom:.4rem}
.ex-card .cover{aspect-ratio:21/8;margin:-1.7rem -1.5rem 1.1rem;border-bottom:1px solid var(--rule)}
.ex-card a.cover{display:block}.ex-card .cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.ex-card:hover .cover img{transform:scale(1.03)}
.svc-ic{display:block;width:30px;height:30px;color:var(--accent);margin-bottom:.4rem}
.svc-ic svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
  .rv.in{opacity:1;transform:none}
  .hero-fig{animation:rise .8s ease both;animation-delay:.15s}
}
/* international perspective */
.reach{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.reach > div{background:var(--paper);padding:1.6rem 1.5rem 1.8rem;display:flex;flex-direction:column;gap:.5rem;min-width:0}
.reach h3{font-size:1.4rem}
.reach p{font-size:.93rem;color:var(--stone)}
@media (max-width:760px){.reach{grid-template-columns:1fr}}
/* partners: collective profile */
.origins{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.origins{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.origins{grid-template-columns:1fr}}
.highlights{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem;border-top:1px solid var(--ink)}
.highlights li{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--rule);min-width:0}
.highlights b{font-family:var(--display);font-size:1.25rem;font-weight:500;line-height:1.25}
.highlights span{font-size:.92rem;color:var(--stone)}
@media (max-width:860px){.highlights{grid-template-columns:1fr}}
@media (max-width:480px){.highlights li{grid-template-columns:1fr;gap:.3rem}}
.quals-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.quals-grid li{background:var(--paper);padding:1.3rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}
.quals-grid b{font-family:var(--display);font-size:1.7rem;font-weight:500;line-height:1;color:var(--accent)}
.quals-grid span{font-size:.86rem;color:var(--stone)}
@media (max-width:900px){.quals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.quals-grid{grid-template-columns:1fr}}
/* photography: dark heroes with a photograph behind an ink overlay, and framed images */
.hero-photo{position:relative;overflow:hidden;background:var(--band);color:var(--band-fg)}
.page .hero.hero-photo{background:var(--band);border-bottom:0;padding-block:clamp(4rem,10vw,7.5rem) clamp(3rem,7vw,5.5rem)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(39,34,29,.94) 0%,rgba(39,34,29,.82) 45%,rgba(45,38,32,.5) 100%)}
.hero-photo .wrap{position:relative;z-index:2}
.hero-photo .hero-mark{z-index:1;opacity:.12}
.hero-photo h1{color:var(--band-fg)}
.hero-photo .eyebrow,.hero-photo .lede,.hero-photo .formnote,.hero-photo .crumbs,.hero-photo .crumbs a{color:var(--band-muted)}
.hero-photo .btn{border-color:var(--band-fg);color:var(--band-fg)}
.hero-photo .btn.solid{background:var(--band-fg);color:var(--band)}
.hero-photo .btn:hover{background:var(--band-fg);color:var(--band)}
.hero-photo .btn.solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}
@media (max-width:820px){.hero-photo::after{background:linear-gradient(180deg,rgba(39,34,29,.86) 0%,rgba(39,34,29,.78) 100%)}}
.photo-frame{margin:0;border:1px solid var(--rule);overflow:hidden;aspect-ratio:4/3;background:var(--card)}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.15) sepia(.18) contrast(1.04)}
/* insights cards: live article and planned topics */
.posts a.cover{display:block}
.posts .cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.posts article.live:hover .cover img{transform:scale(1.03)}
.posts h3 a{text-decoration:none}
.posts h3 a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.posts .btn-arrow{align-self:flex-start;margin-top:.3rem}
.posts .chip{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .6rem;border:1px solid var(--rule);color:var(--stone);border-radius:2px;align-self:flex-start;margin-top:auto}
/* brighter photographs (such as the insights cover) need a heavier overlay for legible text */
.hero-photo.deep::after{background:linear-gradient(90deg,rgba(39,34,29,.95) 0%,rgba(39,34,29,.86) 50%,rgba(39,34,29,.62) 100%)}

/* Cookie notice and settings */
.ck{position:fixed;left:1rem;right:1rem;bottom:1rem;max-width:720px;margin-inline:auto;background:var(--paper);color:var(--ink);border:1px solid var(--rule);box-shadow:0 12px 40px rgba(0,0,0,.22);padding:1.2rem 1.4rem;z-index:1000;font-size:.9rem;line-height:1.55}
.ck h2{font-family:var(--display);font-weight:500;font-size:1.35rem;margin:0 0 .4rem}
.ck p{margin:0 0 .9rem;color:var(--stone)}
.ck p a{color:var(--ink)}
.ck .row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.ck .btn{font-size:.85rem;padding:.55rem 1rem}
.ck-opts{display:grid;gap:.7rem;margin:.2rem 0 1rem;border-top:1px solid var(--rule);padding-top:1rem}
.ck-opt{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;font-size:.88rem;letter-spacing:0;color:var(--ink)}
.ck-opt input{width:1.1rem;height:1.1rem;margin:.15rem 0 0;accent-color:var(--accent)}
.ck-opt b{font-weight:500}
.ck-opt small{display:block;color:var(--stone);font-size:.82rem;line-height:1.45}
@media (max-width:600px){.ck{left:.5rem;right:.5rem;bottom:.5rem;padding:1rem}}

/* Both strips on the home page share one grid on wide screens, so the Bearing lockup and the partner logos line up on the same left and right edges.
   Kept at the end of the file so that it wins over the earlier .ifi-strip rules. */
@media (min-width:861px){.ifi-strip{grid-template-columns:9rem minmax(0,1fr) 19rem}.ifi-strip > :last-child{justify-self:start}.ifi-strip .partner-logos{flex-wrap:nowrap}}
.dri-bar .kb-brand{gap:.85rem}.dri-bar .kb-mark{width:3.3rem;height:3.3rem}.dri-bar .kb-word{font-size:2.3rem}.dri-bar .kb-by{font-size:.62rem}
@media (max-width:860px){.dri-bar .kb-mark{width:2.6rem;height:2.6rem}.dri-bar .kb-word{font-size:1.7rem}.dri-bar .kb-by{font-size:.55rem}}

/* Email sign-up box on insights and explainers */
.sub-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.6rem 2.4rem;align-items:start;background:var(--band);color:var(--band-fg);padding:1.8rem 2rem;margin-top:2rem}
.sub-box h3{color:var(--band-fg);margin:0;font-family:var(--display);font-weight:500;font-size:1.5rem}
.sub-box p{color:var(--band-muted);font-size:.95rem}
.sub-box .eyebrow{color:var(--band-muted)}
.sub-form{display:grid;gap:.9rem}
.sub-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.sub-form label{color:var(--band-muted)}
.sub-form input[type=email],.sub-form input[type=text]{background:transparent;color:var(--band-fg);border-color:var(--band-rule)}
.sub-form input::placeholder{color:var(--band-rule)}
.sub-form .rg-consent,.sub-form .rg-consent a{color:var(--band-muted)}
.sub-form .rg-err{color:#E39A8B}
.sub-form .btn.solid{background:var(--band-fg);color:var(--band)}
.sub-form .btn.solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.sub-done{color:var(--band-fg);font-size:.95rem}
@media (max-width:760px){.sub-box{grid-template-columns:1fr;padding:1.4rem 1.2rem}.sub-row{grid-template-columns:1fr}}
[data-page="team"] .origins{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width:1100px){[data-page="team"] .origins{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){[data-page="team"] .origins{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){[data-page="team"] .origins{grid-template-columns:1fr}}

/* Questions we are asked: intro column and accordion */
.faq-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5.5rem);align-items:start}
.faq-intro{position:sticky;top:5.5rem}
.faq-intro .ground{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:1rem}
.faq-intro .ground li{display:flex;gap:.9rem;align-items:flex-start;font-size:.95rem;line-height:1.5;color:var(--stone)}
.faq-intro .ground svg{flex:none;width:24px;height:24px;fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-top:.1rem}
.faq-intro .ground b{display:block;font-weight:500;color:var(--ink);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.15rem}
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.15rem 0;font-family:var(--display);font-size:1.32rem;line-height:1.3;color:var(--ink);font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.faq .pm{flex:none;position:relative;width:28px;height:28px;border:1px solid var(--rule);border-radius:50%;margin-top:.15rem;transition:background .25s,border-color .25s}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--accent);transform:translate(-50%,-50%);transition:transform .25s,background .25s}
.faq .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] .pm{background:var(--ink);border-color:var(--ink)}
.faq details[open] .pm::before,.faq details[open] .pm::after{background:var(--paper)}
.faq details[open] .pm::after{transform:translate(-50%,-50%) rotate(0deg)}
.faq details p{margin:0;padding:0 3.2rem 1.5rem 0;color:var(--stone);line-height:1.65;max-width:64ch}
@media (max-width:860px){.faq-wrap{grid-template-columns:1fr}.faq-intro{position:static}.faq summary{font-size:1.2rem}.faq details p{padding-right:0}}

/* Latest insight feature on the home page */
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);background:var(--card);border:1px solid var(--rule);text-decoration:none;color:var(--ink);overflow:hidden;transition:border-color .2s}
.feature:hover{border-color:var(--ink)}
.feature-media{display:block;position:relative;min-height:320px;overflow:hidden;background:var(--ink)}
.feature-media img{position:absolute;inset:0}
.feature-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.feature:hover .feature-media img{transform:scale(1.03)}
.feature-body{display:flex;flex-direction:column;gap:.85rem;padding:clamp(1.4rem,3vw,2.6rem);justify-content:center}
.feature-body .eyebrow{color:var(--accent)}
.feature-title{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.2;font-weight:500}
.feature-text{color:var(--stone);line-height:1.6}
.feature-more{align-self:flex-start;margin-top:.3rem}
.feature:hover .feature-more{border-color:var(--ink);background:var(--card)}
@media (max-width:860px){.feature{grid-template-columns:1fr}.feature-media{min-height:0;aspect-ratio:16/9}}
