
/* Layout: consulting-firm page. Serif headlines, generous white space, thin rules, one electric-blue accent on deep ink. One job: start a WhatsApp conversation. */
:root{
  --paper:#FFFFFF; --panel:#F3F5F8; --ink:#0B1F33; --muted:#516173; --line:#DCE2E9;
  --accent:#1F5BFF; --accent-ink:#FFFFFF; --deep:#0B1F33; --deep-ink:#FFFFFF; --soft:#EAF0FF; --wa:#1F5BFF;
  --display:"Source Serif 4", Georgia, "Times New Roman", serif;
  --body:"IBM Plex Sans", "Helvetica Neue", Arial, system-ui, sans-serif;
  --mono:"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.62;margin:0}
.wrap{max-width:1040px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;text-wrap:balance;margin:0;letter-spacing:-.005em}
h2{font-size:clamp(1.55rem,3.6vw,2.15rem)}
h3{font-size:1.12rem}
p{margin:0}
.label{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
section{padding-block:60px;border-top:1px solid var(--line)}
.head{display:grid;gap:10px;margin-bottom:28px;max-width:640px}
.head p{color:var(--muted)}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--paper)}
.top .wrap{display:flex;align-items:center;gap:12px;padding-block:12px}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:Quicksand,var(--body);font-weight:300;font-size:1.42rem;color:var(--ink);text-decoration:none;letter-spacing:.01em;line-height:1}.logo .mk{display:block;flex:none}.logo b{font-weight:inherit}@media(max-width:420px){.logo{font-size:1.18rem;gap:8px}.logo .mk{width:23px;height:31px}}
.logo span{color:var(--accent)}
.tabs{display:flex;gap:2px;margin-left:auto}
.tabs a{padding:8px 12px;color:var(--muted);text-decoration:none;font-weight:500;font-size:.93rem;border-bottom:2px solid transparent}
.tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:2px;padding:14px 22px;font:600 .96rem var(--body);cursor:pointer;text-decoration:none;transition:background .15s ease}
.btn-wa{background:var(--wa);color:var(--accent-ink)}
.btn-wa:hover{filter:brightness(1.08)}
.btn-sm{padding:9px 15px;font-size:.88rem}
.arrow::after{content:"→";font-family:var(--body)}

.hero{padding-block:64px 56px;border-top:0}
.hero .grid{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;align-items:end}
.hero h1{font-size:clamp(2.1rem,5.6vw,3.5rem);font-weight:500;line-height:1.08;letter-spacing:-.015em;margin-top:16px}
.hero .lead{font-size:1.1rem;color:var(--muted);margin-top:20px;max-width:52ch}
.hero .cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:30px}
.hero .cta span{font-size:.88rem;color:var(--muted)}
.kpi{display:grid;gap:0;border-left:1px solid var(--line)}
.kpi div{padding:14px 0 14px 22px;border-bottom:1px solid var(--line);display:grid;gap:2px}
.kpi div:last-child{border-bottom:0}
.kpi b{font-family:var(--display);font-size:1.7rem;font-weight:500;font-variant-numeric:tabular-nums}
.kpi span{font-size:.86rem;color:var(--muted)}
@media (max-width:860px){.hero .grid{grid-template-columns:1fr;gap:36px}.hero{padding-block:40px}}

.needs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.need{display:grid;gap:6px;align-content:start;padding:20px 18px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);min-width:0;transition:background .15s ease}
.need:hover{background:var(--panel)}
.need b{font-family:var(--display);font-weight:600;font-size:1.06rem}
.need small{color:var(--muted);font-size:.86rem;line-height:1.45}
.need em{font-style:normal;color:var(--accent);font-size:.84rem;font-weight:600;margin-top:4px}
.need em::after{content:" →"}
@media (max-width:860px){.needs{grid-template-columns:1fr 1fr}}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tier{border-top:3px solid var(--ink);padding-top:16px;display:grid;gap:8px}
.tier .k{font-family:var(--display);font-size:2.2rem;font-weight:500;line-height:1}
.tier p{color:var(--muted);font-size:.94rem}
.tier p strong{color:var(--ink);font-weight:600}
@media (max-width:760px){.tiers{grid-template-columns:1fr}}
.note{margin-top:18px;font-size:.88rem;color:var(--muted)}

.matrix{border-top:1px solid var(--line)}
.mrow{display:grid;grid-template-columns:120px 1fr 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}
.mrow .who{font-family:var(--display);font-weight:600;font-size:1.05rem}
.mrow p{color:var(--muted);font-size:.94rem}
.mrow p strong{display:block;color:var(--ink);font-weight:600}
.mhead{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-block:10px}
@media (max-width:700px){.mrow{grid-template-columns:1fr;gap:6px}.mhead{display:none}}

.deep{background:var(--panel);color:var(--ink)}
.deep .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px}
.deep h2{color:var(--ink)}
.deep .label{color:var(--accent)}
.deep p{color:var(--muted)}
.deep ol{margin:0;padding:0;list-style:none;counter-reset:d;display:grid}
.deep li{counter-increment:d;display:grid;grid-template-columns:36px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid color-mix(in srgb,var(--deep-ink) 18%,transparent)}
.deep li::before{content:counter(d,decimal-leading-zero);font-family:var(--display);color:color-mix(in srgb,var(--deep-ink) 60%,transparent)}
.deep li b{display:block;color:var(--deep-ink);font-weight:600}
.deep .btn{margin-top:24px;background:var(--accent);color:var(--accent-ink)}
@media (max-width:860px){.deep .grid{grid-template-columns:1fr;gap:28px}}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:s}
.steps li{counter-increment:s;display:grid;gap:8px}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--display);font-size:1.4rem;color:var(--accent)}
.steps p{color:var(--muted);font-size:.95rem}
@media (max-width:700px){.steps{grid-template-columns:1fr;gap:20px}}

details{border-bottom:1px solid var(--line);padding-block:18px;max-width:780px}
details:first-of-type{border-top:1px solid var(--line)}
summary{cursor:pointer;font-family:var(--display);font-weight:600;font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-family:var(--body)}
details[open] summary::after{content:"−"}
details p{color:var(--muted);margin-top:10px;max-width:68ch}

footer{padding-block:32px 110px;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
footer a{color:var(--muted)}
.copy{background:transparent;border:1px solid var(--line);color:var(--ink);padding:3px 10px;font:500 .78rem var(--body);cursor:pointer;margin-left:8px}

.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:none}
.bar .btn{width:100%}
@media (max-width:760px){.bar{display:block}.top .btn{display:none}}
@media (min-width:761px){footer{padding-bottom:40px}}


.langs{display:flex;gap:2px;margin-left:8px}
.langs a{padding:6px 8px;font-size:.8rem;color:var(--muted);text-decoration:none}
.langs a[aria-current="true"]{color:var(--ink);font-weight:600}
.regions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.regions a{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);display:grid;gap:4px}
.regions a:hover{background:var(--panel)}
.regions b{font-family:var(--display);font-weight:600;font-size:1.05rem}
.regions small{color:var(--muted);font-size:.84rem}
.langs-m{display:none;gap:14px;flex-wrap:wrap;font-size:.85rem}
.langs-m a{color:var(--muted)}
@media (max-width:700px){.regions{grid-template-columns:1fr 1fr}.langs{display:none}.langs-m{display:flex}}
.kpi b .n{font:inherit;color:inherit}
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes nudge{0%,100%{transform:translateX(0);opacity:.5}50%{transform:translateX(5px);opacity:1}}
.hero h1{animation:up .7s ease both}.hero .sub{animation:up .7s .12s ease both}.hero .cta{animation:up .7s .24s ease both}.kpi{animation:up .7s .36s ease both}
.hero .sub{font-size:1.15rem;color:var(--muted);margin-top:18px;max-width:46ch}
.need{animation:up .5s ease both;animation-delay:calc(var(--i,0) * 70ms)}
.ticker{overflow:hidden;border-block:1px solid var(--line);background:var(--panel);padding-block:12px}
.ticker .track{display:flex;gap:34px;width:max-content;animation:slide 60s linear infinite;font-family:var(--display);font-size:1.02rem;color:var(--muted);white-space:nowrap}
.ticker .track span::before{content:"·";margin-right:34px;color:var(--accent)}
.tblwrap{overflow-x:auto;border:1px solid var(--line)}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
.tbl th,.tbl td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{background:var(--panel);color:var(--ink);font-weight:600;font-size:.84rem;border-bottom:2px solid var(--ink)}
.tbl tbody th{font-weight:600;background:var(--paper);white-space:nowrap}
.tbl tr:last-child td,.tbl tr:last-child th{border-bottom:0}
.tbl td.y{color:var(--accent);font-weight:600}
.tbl .k{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--accent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.two .tbl{min-width:0}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.flow .st{flex:1 1 160px;padding:20px;border:1px solid var(--line);background:var(--paper);display:grid;gap:4px;min-width:0}
.flow .st b{font-family:var(--display);font-size:1.15rem;font-weight:600}
.flow .st small{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}
.flow .ar{display:grid;place-items:center;padding:0 10px;color:var(--accent);font-size:1.4rem;animation:nudge 1.6s ease-in-out infinite}
.deep .flow .st{background:var(--paper)}
@media (max-width:620px){.flow{flex-direction:column}.flow .ar{transform:rotate(90deg);animation:none;padding:6px}}
.hero{background:radial-gradient(1200px 420px at 85% -10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 60%),radial-gradient(800px 360px at -10% 110%,color-mix(in srgb,#12A39A 10%,transparent),transparent 60%),var(--paper)}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--accent) 14%,transparent) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.hero{position:relative}.hero .wrap{position:relative}
.ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;margin-bottom:6px;color:#fff}
.ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.needs{grid-template-columns:repeat(5,1fr)}@media (max-width:980px){.needs{grid-template-columns:repeat(2,1fr)}}
.need:nth-child(10n+9) .ic{background:#B42318}.need:nth-child(10n+10) .ic{background:#0B5CAD}
.need:nth-child(8n+1) .ic{background:#1F5BFF}.need:nth-child(8n+2) .ic{background:#12A39A}.need:nth-child(8n+3) .ic{background:#F29F05}.need:nth-child(8n+4) .ic{background:#E5484D}
.need:nth-child(8n+5) .ic{background:#6E56CF}.need:nth-child(8n+6) .ic{background:#0B7A5A}.need:nth-child(8n+7) .ic{background:#D9611E}.need:nth-child(8n+8) .ic{background:#0B1F33}
.creds{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cred{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);background:var(--paper)}
.cred .mono{min-width:64px;height:48px;padding:0 10px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.06em}
.cred b{display:block;font-weight:600}.cred span{color:var(--muted);font-size:.86rem}
.cred:nth-child(1) .mono{background:#B42318}.cred:nth-child(2) .mono{background:#0B5CAD}.cred:nth-child(3) .mono{background:#12A39A}.cred:nth-child(4) .mono{background:#1F5BFF}.cred:nth-child(5) .mono{background:#F29F05}.cred:nth-child(6) .mono{background:#6E56CF}
@media (max-width:860px){.creds{grid-template-columns:1fr 1fr}}@media (max-width:520px){.creds{grid-template-columns:1fr}}
.mapbox{background:linear-gradient(180deg,#F5F8FF,#FFFFFF);border:1px solid var(--line);padding:18px 12px 8px}
.mapbox svg{width:100%;height:auto;display:block}
.land{fill:#DCE6FB;stroke:#9DB6EE;stroke-width:.6}
.dot{fill:#7FA0F5;transform-box:fill-box;transform-origin:center}
.dot.key{fill:var(--accent)}
.hubdot{fill:#F29F05;stroke:#fff;stroke-width:2}
.hublabel{font:600 15px var(--body);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:4px}
.ring{fill:none;stroke:#F29F05;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:ring 2.4s ease-out infinite}
.ring.r2{animation-delay:1.2s}
@keyframes ring{from{transform:scale(.6);opacity:.9}to{transform:scale(4);opacity:0}}
@keyframes dotin{from{transform:scale(0)}60%{transform:scale(1.6)}to{transform:scale(1)}}
@keyframes flow{to{stroke-dashoffset:-24}}
.arc{fill:none;stroke:#F29F05;stroke-width:1.1;stroke-opacity:.45;stroke-dasharray:4 8;animation:flow 1.6s linear infinite}
.mover{fill:#F29F05}
.rv.in .dot{animation:dotin .6s ease both;animation-delay:var(--d)}
.mapbox a:hover .dot{fill:#E5484D}
.lg-hub{color:var(--ink);font-weight:600}.lg-hub::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:#F29F05;margin-right:6px;vertical-align:middle}
.maplegend{display:flex;flex-wrap:wrap;gap:8px 22px;padding:10px 6px 4px;font-size:.84rem;color:var(--muted)}
.maplegend b{color:var(--ink)}
.sec-h{margin-bottom:22px;position:relative;padding-bottom:12px}
.sec-h::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:44px;background:var(--accent)}
.rv.in .sec-h::after{animation:grow .8s ease both}
@keyframes grow{from{width:0}to{width:44px}}
@keyframes pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rowin{from{opacity:.25;transform:translateX(-10px)}to{opacity:1;transform:none}}
.tbl td.ck span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--soft);color:var(--accent);font-weight:700;font-size:.85rem}
.tbl td.dash{color:var(--line)}
.tbl td.ck,.tbl td.dash,.tbl th.c{text-align:center}
.rv.in .tbl td.ck span{animation:pop .5s ease both;animation-delay:calc(var(--r,0)*90ms + var(--c,0)*60ms)}
.rv.in .tbl tbody tr{animation:rowin .5s ease both;animation-delay:calc(var(--r,0)*70ms)}
.tbl .nowrap{white-space:nowrap}
.barcell{width:40%;vertical-align:middle}
.tbar{display:block;height:10px;width:var(--w);background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 45%,var(--paper)));transform-origin:left}
.rv.in .tbar{animation:bar 1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--r,0)*110ms)}
.need{transition:background .15s ease,transform .2s ease}.need:hover{transform:translateY(-3px)}
.tbl tbody tr{transition:background .15s ease}.tbl tbody tr:hover{background:var(--panel)}
.tnote{margin-top:10px;font-size:.84rem;color:var(--muted)}
.btn-line{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn-line:hover{background:var(--panel)}
.reach{margin-top:14px;font-size:.88rem;color:var(--muted)}
.trust{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:.8rem;color:var(--muted)}
.trust b{font-weight:600;letter-spacing:.06em;color:var(--ink);border:1px solid var(--line);padding:4px 9px}
.aud{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.aud div{border-top:3px solid var(--accent);padding-top:14px;display:grid;gap:6px}
.aud p{color:var(--muted);font-size:.95rem}
.contact2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact2 .c{border:1px solid var(--line);padding:26px;display:grid;gap:10px;align-content:start}
.contact2 .c h3{font-size:1.3rem}
.contact2 .c p{color:var(--muted)}
.contact2 .c .addr{font-weight:600;color:var(--ink);user-select:all}
.contact2 .c .btn{justify-self:start;margin-top:6px}
.contact2 .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
@media (max-width:760px){.aud,.contact2{grid-template-columns:1fr}}
.lic{margin-top:14px;font-size:.86rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.ticker .track{animation-duration:90s}}
.art{padding-block:44px 24px}
.art h1{font-size:clamp(1.9rem,5.2vw,2.8rem);font-weight:500;margin-top:10px}
.art .sub{color:var(--muted);margin-top:12px;font-size:1.05rem;max-width:62ch}
.prose{max-width:68ch;margin-top:26px}
.prose h2{font-size:1.4rem;margin:32px 0 10px}
.prose p,.prose li{font-size:1.02rem}
.prose p{margin:0 0 14px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 14px;display:grid;gap:8px}
.cta-box{margin-top:34px;background:var(--panel);border-left:3px solid var(--accent);padding:22px;display:grid;gap:12px;max-width:68ch}
.crumb{font-size:.85rem;color:var(--muted)}
.crumb a{color:var(--muted)}
.list{display:grid;border-top:1px solid var(--line)}
.card{display:grid;gap:6px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.card:hover h2{color:var(--accent)}
.card p{color:var(--muted);font-size:.94rem}
.more{margin-top:34px;max-width:68ch}
.more h3{margin-bottom:10px}
.more > a{display:block;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600}
.tldr{margin-top:20px;max-width:68ch;padding:14px 16px;background:var(--soft);border-left:3px solid var(--accent);font-size:.98rem}
.qa h2{font-size:1.2rem;margin:26px 0 8px}
.src{margin-top:22px;font-size:.86rem;color:var(--muted);max-width:68ch}
.src a{color:var(--muted)}
.meta-line{font-size:.85rem;color:var(--muted);margin-top:8px}
.citylist{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 28px}
.citylist a{text-decoration:none}
.sectors{display:grid;border-top:1px solid var(--line);max-width:760px;margin-top:8px}
.sectors div{padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.sectors b{color:var(--ink);font-weight:600}
