:root{
  --white:#FFFFFF;
  --cream:#F4F1EA;
  --cream-deep:#EDE8DE;
  --ink:#2B2725;
  --ink-mid:#4A423E;
  --ink-soft:#6B605A;
  --brown:#54413C;
  --blue:#4B72B5;
  --blue-deep:#2F5591;
  --blue-tint:rgba(75,114,181,0.07);
  --hair:#E3DED6;
  --hair-soft:#EFEBE4;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--white);
  color:var(--ink);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* ---------- skip link ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 20px;z-index:200;}
.skip:focus{left:12px;top:12px;}

/* ---------- container ---------- */
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(22px,5vw,90px);}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:60;background:var(--white);border-bottom:1px solid transparent;transition:border-color .2s;}
header.site.stuck{border-bottom-color:var(--hair);}
.hd{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0;}
.mark{font-family:"Playfair Display",Georgia,serif;font-size:25px;font-weight:400;letter-spacing:0.14em;color:#1A1717;line-height:1;}
nav.main{display:flex;align-items:center;gap:clamp(20px,3vw,44px);}
nav.main a.nl{font-size:15px;font-weight:400;color:var(--ink-mid);padding:6px 0;border-bottom:1px solid transparent;}
nav.main a.nl:hover{color:var(--blue-deep);border-bottom-color:var(--blue-deep);}
nav.main a.nl.on{color:var(--ink);border-bottom-color:var(--ink);}
.btn{display:inline-block;background:var(--ink);color:#FBFAF8;font-size:15px;font-weight:600;padding:14px 26px;border-radius:2px;line-height:1.2;border:1px solid var(--ink);transition:background .18s,color .18s;cursor:pointer;}
.btn:hover{background:#151211;}
.btn.lg{padding:17px 34px;font-size:16px;}
.btn.sm{padding:9px 16px;font-size:13.5px;}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--hair);}
.btn.ghost:hover{background:transparent;border-color:var(--ink);}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.burger span{display:block;width:22px;height:1.5px;background:var(--ink);margin:5px 0;}
@media (max-width:900px){
  nav.main{position:fixed;inset:74px 0 auto 0;background:var(--white);border-bottom:1px solid var(--hair);flex-direction:column;align-items:flex-start;gap:0;padding:12px clamp(22px,5vw,90px) 28px;display:none;max-height:calc(100vh - 74px);overflow-y:auto;}
  nav.main.open{display:flex;}
  nav.main a.nl{width:100%;padding:14px 0;border-bottom:1px solid var(--hair-soft);font-size:17px;}
  nav.main .btn{margin-top:18px;}
  .burger{display:block;}
}

/* ---------- breadcrumbs ---------- */
.crumbs{padding:16px clamp(22px,5vw,90px) 0;max-width:1240px;margin:0 auto;}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;font-size:13.5px;color:var(--ink-soft);}
.crumbs li:not(:last-child):after{content:"/";margin-left:6px;color:var(--hair);}
.crumbs a{color:var(--ink-soft);}
.crumbs a:hover{color:var(--blue-deep);}
.crumbs li[aria-current="page"]{color:var(--ink-mid);}

/* ---------- sections ---------- */
.sec{padding:clamp(76px,10vw,140px) 0;}
.sec.cream{background:var(--cream);}
.sec.tight{padding-top:clamp(52px,6vw,80px);}
.sec.hero{padding:clamp(56px,9vw,140px) 0 clamp(80px,10vw,140px);}

.eyebrow{
  font-size:12.5px;font-weight:700;letter-spacing:0.13em;text-transform:uppercase;
  color:var(--blue);margin-bottom:26px;
}
.eyebrow.brown{color:var(--brown);}

h1.display{
  font-size:clamp(34px,5.6vw,62px);line-height:1.14;letter-spacing:-0.022em;
  font-weight:400;color:var(--ink);max-width:23ch;
}
h2.display{
  font-size:clamp(30px,4.6vw,50px);line-height:1.16;letter-spacing:-0.02em;
  font-weight:400;color:var(--ink);max-width:23ch;
}
h1.display b,h2.display b{font-weight:700;}
.sub{font-size:clamp(16.5px,1.5vw,18.5px);line-height:1.6;color:var(--ink-mid);max-width:46ch;margin-top:30px;}
.sub.wide{max-width:60ch;}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:44px;}
.ctanote{margin-top:18px;font-size:14.5px;color:var(--ink-soft);letter-spacing:0.01em;}

.lead{font-size:clamp(19px,2vw,23px);line-height:1.55;color:var(--ink);max-width:34ch;font-weight:400;}
.prose{max-width:52ch;color:var(--ink-mid);font-size:17px;}
.prose p+p{margin-top:18px;}

/* legal page prose (wider, for readability of longer text) */
.legal .prose{max-width:74ch;}
.legal h2{font-size:22px;font-weight:600;margin-top:40px;margin-bottom:12px;letter-spacing:-0.01em;}
.legal h2:first-child{margin-top:0;}
.legal ul{margin:14px 0 14px 20px;color:var(--ink-mid);}
.legal li{margin-bottom:8px;}
.legal .updated{color:var(--ink-soft);font-size:14.5px;margin-top:10px;}

/* two column editorial */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:clamp(36px,7vw,110px);align-items:start;margin-top:56px;}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:34px;margin-top:40px;}}

/* ---------- process 01-06 ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,5vw,64px) clamp(30px,5vw,70px);margin-top:clamp(48px,6vw,78px);}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.steps{grid-template-columns:1fr;}}
.step .n{
  font-size:clamp(40px,4.6vw,54px);font-weight:300;color:var(--ink);line-height:1;
  letter-spacing:-0.02em;font-variant-numeric:tabular-nums;
  background:rgba(75,114,181,0.11);display:inline-block;padding:16px 20px 14px;margin-bottom:26px;
}
.sec.cream .step .n{background:rgba(75,114,181,0.13);}
.step h3{font-size:17px;font-weight:700;color:var(--brown);margin-bottom:14px;letter-spacing:-0.005em;}
.step p{font-size:16px;color:var(--ink-soft);line-height:1.55;max-width:30ch;}

/* ---------- pillars ---------- */
.pillars{margin-top:clamp(48px,6vw,72px);border-top:1px solid var(--hair);}
.pillar{
  display:grid;grid-template-columns:46px minmax(0,230px) minmax(0,1fr);
  gap:clamp(16px,3vw,44px);align-items:baseline;
  padding:clamp(26px,3.4vw,38px) 0;border-bottom:1px solid var(--hair);
}
@media (max-width:800px){
  .pillar{grid-template-columns:44px 1fr;gap:14px 18px;}
  .pillar .pdesc{grid-column:2 / -1;}
}
.pillar .pnum{font-size:13px;font-weight:600;color:var(--blue);letter-spacing:0.04em;font-variant-numeric:tabular-nums;}
.pillar .pname{font-size:clamp(21px,2.3vw,27px);font-weight:500;letter-spacing:-0.018em;color:var(--ink);line-height:1.2;}
.pillar .pdesc{font-size:16.5px;color:var(--ink-soft);line-height:1.55;max-width:44ch;}
.pillar:hover .pname{color:var(--blue-deep);}
.pillars-note{margin-top:34px;font-size:16.5px;color:var(--ink-mid);max-width:56ch;}

/* ---------- engagements ---------- */
.engs{margin-top:clamp(48px,6vw,72px);}
.eng{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);
  gap:clamp(20px,5vw,72px);padding:clamp(30px,3.6vw,44px) 0;border-top:1px solid var(--hair);
}
.eng:last-child{border-bottom:1px solid var(--hair);}
@media (max-width:800px){.eng{grid-template-columns:1fr;gap:16px;}}
.eng .ename{font-size:clamp(22px,2.4vw,29px);font-weight:500;letter-spacing:-0.02em;line-height:1.2;}
.eng .emeta{font-size:13px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--brown);margin-top:12px;}
.eng .ebody{font-size:16.5px;color:var(--ink-mid);line-height:1.6;}
.eng ul{list-style:none;margin-top:16px;}
.eng ul li{position:relative;padding-left:20px;margin-bottom:8px;font-size:16px;color:var(--ink-soft);}
.eng ul li:before{content:"";position:absolute;left:0;top:11px;width:7px;height:1.5px;background:var(--blue);}

/* ---------- sectors ---------- */
.sectors{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,5vw,64px);margin-top:clamp(44px,5vw,66px);}
@media (max-width:860px){.sectors{grid-template-columns:1fr;gap:34px;}}
.sector{display:block;color:inherit;}
.sector .slink{display:inline-block;margin-top:20px;font-size:14.5px;font-weight:600;color:var(--blue-deep);border-bottom:1px solid transparent;}
.sector:hover .slink{border-bottom-color:var(--blue-deep);}
.sector:hover h3{color:var(--blue-deep);}
.sector h3{font-size:16px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--blue);line-height:1.4;margin-bottom:22px;}
.sector p{font-size:16.5px;color:var(--ink-soft);line-height:1.58;max-width:34ch;}

/* ---------- which one ---------- */
.whichone{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(38px,4vw,52px);border-top:1px solid var(--hair);}
@media (max-width:700px){.whichone{grid-template-columns:1fr;}}
.whichone > div{padding:22px 28px 22px 0;border-bottom:1px solid var(--hair);}
.whichone .wq{display:block;font-size:16px;color:var(--ink-soft);margin-bottom:6px;}
.whichone .wa{display:block;font-size:18px;font-weight:600;color:var(--ink);letter-spacing:-0.012em;}

/* ---------- scope note (replaces price tiers) ---------- */
.scopenote{margin-top:clamp(44px,5vw,64px);border-top:1px solid var(--hair);padding-top:34px;max-width:64ch;}
.scopenote p{font-size:16.5px;color:var(--ink-mid);}
.scopenote p+p{margin-top:14px;}

/* ---------- client work cards ---------- */
.cwgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,4vw,40px);margin-top:clamp(44px,5vw,64px);}
@media (max-width:760px){.cwgrid{grid-template-columns:1fr;}}
.cwcard{border:1px solid var(--hair);padding:clamp(26px,3vw,36px);}
.cwcard h3{font-size:19px;font-weight:600;margin-bottom:10px;letter-spacing:-0.01em;}
.cwcard p{font-size:16px;color:var(--ink-soft);}
.cwcard .cwtag{font-size:12.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;display:block;}

/* ---------- pain list ---------- */
.pains{margin-top:clamp(40px,5vw,58px);border-top:1px solid var(--hair);max-width:76ch;}
.pains li{list-style:none;padding:19px 0 19px 34px;border-bottom:1px solid var(--hair-soft);position:relative;font-size:17px;line-height:1.5;color:var(--ink-mid);}
.pains li:before{content:"";position:absolute;left:0;top:27px;width:16px;height:1.5px;background:var(--blue);}

/* ---------- form ---------- */
form.contact{margin-top:clamp(40px,5vw,56px);max-width:620px;}
.fld{margin-bottom:26px;}
label{display:block;font-size:12.5px;font-weight:700;letter-spacing:0.11em;text-transform:uppercase;color:var(--brown);margin-bottom:9px;}
input,textarea,select{
  width:100%;font-family:inherit;font-size:16.5px;color:var(--ink);background:var(--white);
  border:none;border-bottom:1px solid var(--hair);padding:11px 0;outline:none;border-radius:0;
}
.sec.cream input,.sec.cream textarea,.sec.cream select{background:transparent;border-bottom-color:#DDD6CA;}
input:focus,textarea:focus,select:focus{border-bottom-color:var(--blue-deep);}
textarea{resize:vertical;min-height:104px;line-height:1.55;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;}
@media (max-width:640px){.grid2{grid-template-columns:1fr;}}
.formnote{font-size:14.5px;color:var(--ink-soft);margin-top:18px;}
.consent{display:flex;align-items:flex-start;gap:10px;margin:8px 0 30px;}
.consent input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin-top:2px;}
.consent label{display:inline;font-size:14.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-mid);margin-bottom:0;}
.consent a{color:var(--blue-deep);font-weight:600;}
.sent{display:none;border-top:2px solid var(--ink);padding-top:24px;margin-top:8px;max-width:620px;}
.sent.show{display:block;}
.sent h3{font-size:22px;font-weight:500;letter-spacing:-0.015em;margin-bottom:10px;}
.sent p{color:var(--ink-mid);font-size:16.5px;max-width:44ch;}

/* ---------- footer ---------- */
footer.site{background:var(--ink);color:#D8D1CA;padding:clamp(60px,7vw,88px) 0 120px;}
footer.site .mark{color:#FBFAF8;}
.fgrid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr));gap:clamp(30px,5vw,50px);}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr;gap:36px;}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr;}}
.fgrid h4{font-size:12.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#9C918A;margin-bottom:18px;}
.fgrid a,.fgrid p{display:block;font-size:16px;color:#D8D1CA;margin-bottom:11px;line-height:1.5;}
.fgrid a:hover{color:#FFFFFF;}
.fline{font-size:15px;color:#A79C95;margin-top:0;max-width:38ch;line-height:1.55;margin-bottom:10px;}
.fbot{margin-top:clamp(46px,5vw,64px);padding-top:26px;border-top:1px solid rgba(255,255,255,0.13);display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;font-size:14px;color:#8E837C;}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--white);border-top:1px solid var(--hair);padding:12px clamp(16px,5vw,24px);box-shadow:0 -6px 18px rgba(43,39,37,0.08);}
.sticky-cta .btn{display:block;width:100%;text-align:center;}
@media (max-width:760px){.sticky-cta{display:block;}}

/* ---------- cookie banner ---------- */
.cookiebar{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:560px;margin:0 auto;background:var(--ink);color:#EFE9E2;padding:20px 22px;border-radius:2px;box-shadow:0 10px 30px rgba(0,0,0,0.25);}
.cookiebar.show{display:block;}
.cookiebar p{font-size:14.5px;line-height:1.5;margin-bottom:14px;}
.cookiebar a{color:#BFD1EA;text-decoration:underline;}
.cookiebtns{display:flex;gap:10px;justify-content:flex-end;}
@media (max-width:760px){.cookiebar{bottom:78px;}}

/* ---------- 404 ---------- */
.notfound{padding:clamp(90px,14vw,170px) 0;text-align:left;}
.notfound .code{font-family:"Playfair Display",Georgia,serif;font-size:clamp(60px,10vw,120px);color:var(--hair);line-height:1;margin-bottom:20px;}

/* ---------- views (legacy, harmless if unused) ---------- */
.view{display:block;}

/* ---------- misc ---------- */
.rule{height:1px;background:var(--hair);}
.center-cta{margin-top:clamp(44px,5vw,60px);}
:focus-visible{outline:2px solid var(--blue-deep);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none!important;}}
