/* The Partners: styles for the inner pages (services, work, about, insights, legal).
   Loaded after site.css. Uses the same design tokens. Kept deliberately light: no scroll animation on service
   and case study pages, so they stay fast and scannable. */

/* ---------- current page in the navigation ---------- */
.nav-links a[aria-current="page"]{color:var(--bronze-text);}

/* ---------- breadcrumb ---------- */
.crumbs ol{display:flex; flex-wrap:wrap; gap:6px 10px; font-size:.86rem; color:var(--muted-text); margin-bottom:28px;}
.crumbs li + li::before{content:"/"; margin-inline-end:10px; color:var(--line-strong);}
.crumbs a{color:var(--navy-soft); text-decoration:none;}
.crumbs a:hover{color:var(--bronze-text); text-decoration:underline; text-underline-offset:3px;}
.crumbs [aria-current]{color:var(--navy); font-weight:700;}

/* ---------- page hero ---------- */
.page-hero{
  padding-block:clamp(30px,4vw,52px) clamp(44px,6vw,84px);
  background:
    radial-gradient(760px 420px at 92% 0%, rgba(255,218,169,.5), transparent 65%),
    radial-gradient(520px 320px at 0% 100%, rgba(221,180,121,.16), transparent 70%);
}
.page-hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,72px); align-items:center;}
.page-hero-grid--single{grid-template-columns:1fr;}
@media (max-width:940px){ .page-hero-grid{grid-template-columns:1fr;} }
.page-hero h1{font-size:clamp(2.1rem,4.6vw,3.3rem); max-width:19ch; margin-bottom:20px; line-height:1.12;}
.page-hero h1 mark{background:none; color:inherit; position:relative; display:inline-block;}
.page-hero h1 mark::after{
  content:""; position:absolute; inset-inline:-.04em; bottom:-.2em; height:.22em; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 464 40' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23ddb479'/%3E%3Cstop offset='1' stop-color='%23ad8652'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M3 22 C 70 6, 150 4, 232 18 S 390 36, 461 22' fill='none' stroke='url(%23g)' stroke-width='2.4' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
  clip-path:inset(0 100% 0 0); animation:waveLoop 6.4s cubic-bezier(.65,0,.25,1) .5s infinite;
}
.lead{font-size:clamp(1.08rem,1.7vw,1.25rem); color:var(--navy-soft); max-width:56ch; margin-bottom:30px;}
.page-actions{display:flex; align-items:center; gap:14px 26px; flex-wrap:wrap;}
.badge-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}

/* ---------- "at a glance" card ---------- */
.glance{background:var(--white); border:1px solid var(--line); border-top:5px solid var(--gold); border-radius:24px; box-shadow:var(--shadow-lift); padding:26px 28px 22px;}
.glance h2{font-size:1.02rem; font-weight:800; margin-bottom:6px;}
.glance dl{display:block;}
.glance .g-row{padding:14px 0; border-top:1px solid var(--line);}
.glance .g-row:first-of-type{border-top:0;}
.glance dt{font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-text); margin-bottom:4px;}
.glance dd{margin:0; color:var(--navy); font-weight:600; font-size:.98rem; line-height:1.45;}

/* ---------- section heads on inner pages ---------- */
.p-head{max-width:64ch; margin-bottom:clamp(30px,4vw,50px);}
.p-head h2{font-size:var(--fs-h2); font-weight:800; margin-bottom:14px;}
.p-head p{color:var(--navy-soft); font-size:1.06rem;}
.section--navy .p-head p{color:rgba(249,247,242,.8);}

/* ---------- feature cards ---------- */
.feature-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.feature-grid--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){ .feature-grid--3{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .feature-grid, .feature-grid--3{grid-template-columns:1fr;} }
.feature{background:var(--white); border:1px solid var(--line); border-radius:22px; padding:28px 28px 26px; box-shadow:var(--shadow-card);}
.feature-ico{width:52px; height:52px; border-radius:15px; background:rgba(221,180,121,.28); color:var(--bronze-text); display:grid; place-items:center; margin-bottom:18px;}
.feature-ico .icon{width:26px; height:26px; stroke-width:1.8;}
.feature h3{font-size:1.18rem; font-weight:800; margin-bottom:8px;}
.feature p{color:var(--navy-soft); font-size:.98rem;}

/* ---------- deliverables list ---------- */
.deliver{display:grid; grid-template-columns:1fr 1fr; gap:6px 48px;}
@media (max-width:760px){ .deliver{grid-template-columns:1fr;} }
.deliver li{display:flex; gap:14px; align-items:flex-start; padding:15px 0; border-top:1px solid var(--line); font-weight:600; color:var(--navy);}
.deliver .tick{width:24px; height:24px; border-radius:50%; background:var(--gold); color:var(--navy-deep); display:grid; place-items:center; flex:none; margin-top:1px;}
.deliver .tick .icon{width:13px; height:13px; stroke-width:3;}
.deliver small{display:block; font-weight:500; color:var(--navy-soft); font-size:.92rem; margin-top:3px;}

/* ---------- three steps ---------- */
.how-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:how;}
@media (max-width:820px){ .how-steps{grid-template-columns:1fr;} }
.how-step{position:relative; background:rgba(249,247,242,.06); border:1px solid rgba(249,247,242,.16); border-radius:22px; padding:26px 26px 24px; counter-increment:how;}
.how-step::before{content:"0" counter(how); display:block; font-weight:900; font-size:1.6rem; color:var(--gold); margin-bottom:12px;}
.how-step h3{font-size:1.15rem; font-weight:800; margin-bottom:8px; color:var(--cream);}
.how-step p{color:rgba(249,247,242,.8); font-size:.98rem;}
.how-step .step-tag{margin-top:12px;}

/* ---------- related links ---------- */
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:820px){ .related-grid{grid-template-columns:1fr;} }
.related{display:flex; flex-direction:column; gap:10px; text-decoration:none; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:24px 24px 20px; transition:translate .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;}
.related:hover{translate:0 -4px; box-shadow:var(--shadow-card); border-color:var(--gold);}
.related .feature-ico{margin-bottom:6px;}
.related h3{font-size:1.1rem; font-weight:800; color:var(--navy);}
.related p{color:var(--navy-soft); font-size:.95rem;}
.related .link-arrow{margin-top:auto; font-size:.92rem;}
.related:hover .link-arrow .icon{transform:translateX(4px);}

/* ---------- closing call to action ---------- */
.cta-band{text-align:center;}
.cta-band .wrap{max-width:820px;}
.cta-band h2{font-size:var(--fs-h2); font-weight:800; margin-bottom:14px;}
.cta-band p{color:rgba(249,247,242,.8); font-size:1.06rem; margin:0 auto 26px; max-width:52ch;}
.cta-band .btn{font-size:1.1rem;}

/* ---------- services hub ---------- */
.hub-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){ .hub-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .hub-grid{grid-template-columns:1fr;} }
.hub-card{display:flex; flex-direction:column; gap:12px; text-decoration:none; background:var(--white); border:1px solid var(--line); border-radius:22px; padding:28px 26px 24px; box-shadow:var(--shadow-card); transition:translate .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; position:relative;}
.hub-card:hover{translate:0 -5px; box-shadow:var(--shadow-lift); border-color:var(--gold);}
.hub-card h2{font-size:1.2rem; font-weight:800; color:var(--navy);}
.hub-card p{color:var(--navy-soft); font-size:.97rem;}
.hub-card .link-arrow{margin-top:auto; font-size:.92rem;}
.hub-card:hover .link-arrow .icon{transform:translateX(4px);}
.hub-card--featured{grid-column:1 / -1; flex-direction:row; align-items:center; gap:26px; background:linear-gradient(135deg, var(--peach), var(--white) 72%); border-top:5px solid var(--gold);}
.hub-card--featured .hub-text{flex:1;}
.hub-card--featured .feature-ico{margin:0; width:64px; height:64px; border-radius:18px; background:var(--navy); color:var(--gold); flex:none;}
.hub-card--featured .link-arrow{margin-top:0; flex:none;}
@media (max-width:760px){ .hub-card--featured{flex-direction:column; align-items:flex-start;} }

/* ---------- work and case studies ---------- */
.work-head h1{max-width:17ch;}
.case-top{display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-bottom:26px;}
.case-top .client-logo{height:84px; min-width:84px; border-radius:20px;}
.case-top .client-logo img{height:64px; max-width:150px;}
.case-meta{display:flex; flex-wrap:wrap; gap:8px;}
.case-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(30px,5vw,64px); align-items:start;}
@media (max-width:900px){ .case-grid{grid-template-columns:1fr;} }
.case-grid h2{font-size:1.5rem; font-weight:800; margin-bottom:14px;}
.case-grid p{color:var(--navy-soft); font-size:1.04rem; margin-bottom:14px;}
.case-list{margin:8px 0 26px;}
.case-list li{display:flex; gap:14px; align-items:flex-start; padding:13px 0; border-top:1px solid var(--line); font-weight:600; color:var(--navy);}
.case-list .tick{width:24px; height:24px; border-radius:50%; background:var(--gold); color:var(--navy-deep); display:grid; place-items:center; flex:none; margin-top:1px;}
.case-list .tick .icon{width:13px; height:13px; stroke-width:3;}
.other-work{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:820px){ .other-work{grid-template-columns:1fr;} }

/* ---------- about ---------- */
.about-quote{font-size:clamp(1.4rem,2.6vw,2rem); font-weight:800; line-height:1.25; color:var(--navy); max-width:26ch; text-wrap:balance;}
.fit-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:760px){ .fit-grid{grid-template-columns:1fr;} }
.fit-card{background:var(--white); border:1px solid var(--line); border-radius:22px; padding:28px 28px 24px; box-shadow:var(--shadow-card);}
.fit-card h3{font-size:1.15rem; font-weight:800; margin-bottom:12px;}
.fit-card li{display:flex; gap:12px; align-items:flex-start; padding:9px 0; color:var(--navy-soft);}
.fit-card .icon{width:20px; height:20px; flex:none; margin-top:2px; stroke-width:2.6;}
.fit-card--yes .icon{color:#0a5b32;}
.fit-card--no .icon{color:#a35a4a;}
.owner-grid{display:grid; grid-template-columns:minmax(0,340px) 1fr; gap:clamp(32px,6vw,80px); align-items:center;}
@media (max-width:820px){ .owner-grid{grid-template-columns:1fr; text-align:center;} .owner-grid .founder-facts{justify-content:center;} }

/* ---------- insights ---------- */
.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){ .post-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .post-grid{grid-template-columns:1fr;} }
.post-grid .post{height:100%;}
.article-head{padding-block:clamp(30px,4vw,52px) clamp(24px,3vw,40px);}
.article-head h1{font-size:clamp(2rem,4.2vw,3rem); max-width:22ch; margin-bottom:18px;}
.article-meta{display:flex; flex-wrap:wrap; gap:6px 18px; color:var(--muted-text); font-size:.92rem; font-weight:600;}
.article-meta .post-cat{margin:0;}

/* ---------- long text: articles and legal pages ---------- */
.prose-layout{display:grid; grid-template-columns:240px minmax(0,1fr); gap:clamp(32px,6vw,80px); align-items:start;}
.prose-layout--single{grid-template-columns:minmax(0,760px); justify-content:center;}
@media (max-width:900px){ .prose-layout{grid-template-columns:1fr;} }
.toc{position:sticky; top:110px; font-size:.92rem;}
.toc h2{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-text); margin-bottom:12px; font-weight:800;}
.toc a{display:block; padding:7px 0; color:var(--navy-soft); text-decoration:none; font-weight:600; border-top:1px solid var(--line);}
.toc a:hover{color:var(--bronze-text);}
@media (max-width:900px){ .toc{position:static;} }
.prose{max-width:72ch;}
.prose h2{font-size:1.55rem; font-weight:800; margin:2.1em 0 .6em; scroll-margin-top:110px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:1.2rem; font-weight:800; margin:1.6em 0 .5em;}
.prose p{color:var(--navy-soft); font-size:1.06rem; line-height:1.75; margin-bottom:1.1em;}
.prose ul, .prose ol{margin:0 0 1.2em; padding-inline-start:1.3em; color:var(--navy-soft); font-size:1.06rem; line-height:1.7;}
.prose ul{list-style:disc;} .prose ol{list-style:decimal;}
.prose li{margin-bottom:.5em; padding-inline-start:.2em;}
.prose strong{color:var(--navy);}
.prose a{color:var(--bronze-text); text-decoration:underline; text-underline-offset:3px;}
.prose a:hover{color:var(--navy);}
.prose .callout{background:var(--white); border:1px solid var(--line); border-inline-start:5px solid var(--gold); border-radius:16px; padding:20px 24px; margin:1.6em 0; color:var(--navy); font-weight:600;}
.updated{color:var(--muted-text); font-size:.92rem; font-weight:600; margin-bottom:26px;}

/* ---------- closing call-to-action panel (a navy card, so it never merges with the footer) ---------- */
.cta-panel{background:var(--navy); color:var(--cream); border-radius:28px; padding:clamp(34px,5vw,64px) clamp(22px,4vw,56px) clamp(104px,12vw,124px); text-align:center; position:relative; overflow:hidden;}
.cta-panel::after{content:""; position:absolute; inset:auto -6% 26px -6%; height:60px; opacity:.4; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 464 40' preserveAspectRatio='none'%3E%3Cpath d='M0 22 C 70 6, 150 4, 232 18 S 390 36, 464 22' fill='none' stroke='%23ddb479' stroke-width='1.6' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;}
.cta-panel > *{position:relative; z-index:1;}
.cta-panel .kicker{color:var(--gold);}
.cta-panel h2{font-size:var(--fs-h2); font-weight:800; margin-bottom:14px; max-width:20ch; margin-inline:auto;}
.cta-panel p{color:rgba(249,247,242,.82); font-size:1.06rem; margin:0 auto 26px; max-width:52ch;}
.cta-panel .btn{color:var(--gold); font-size:1.12rem;}
.cta-panel .btn:hover{color:var(--cream);}

.nb{white-space:nowrap;}
.nb mark{white-space:normal;}

/* ---------- hero cards (right side of inner-page heroes) ---------- */
.hb{position:relative; padding:12px 12px 34px; max-width:520px; width:100%; margin-inline:auto;}
.hb-card{background:var(--white); border:1px solid var(--line); border-radius:24px; padding:24px 24px 46px; box-shadow:var(--shadow-lift);}
.hb-top{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px;}
.hb-title{font-weight:800; font-size:1.02rem;}
.hb-chip{font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze-text); background:rgba(221,180,121,.28); padding:5px 11px; border-radius:var(--r-pill); white-space:nowrap;}
.hb-ico{display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:rgba(221,180,121,.28); color:var(--bronze-text); flex:none;}
.hb-ico .icon{width:22px; height:22px;}
.hb-note{margin:18px 0 0; color:var(--navy-soft); font-size:.95rem; line-height:1.5;}
.hb small{display:block; color:var(--muted-text); font-size:.84rem; font-weight:600; line-height:1.35;}
.hb .float small{color:rgba(249,247,242,.7);}
.avatar--lg{width:52px; height:52px; font-size:1.05rem; background:var(--navy); color:var(--gold);}

/* services: ten tiles */
.hb-tiles{display:grid; grid-template-columns:repeat(5,1fr); gap:10px;}
@media (max-width:560px){ .hb-tiles{grid-template-columns:repeat(2,1fr);} .hb-tile{flex-direction:row; justify-content:flex-start; text-align:start; padding:10px 12px;} .hb-lab{font-size:.82rem;} }
.hb-tile{display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 6px 12px; border-radius:16px; background:var(--cream); border:1px solid var(--line); text-align:center;}
.hb-lab{font-size:.72rem; font-weight:800; color:var(--navy); line-height:1.2;}

/* work: market bars */
.hb-rows{display:grid; gap:16px;}
.hb-row{display:grid; grid-template-columns:64px 1fr 22px; align-items:center; gap:12px; font-weight:800;}
.hb-row-name{color:var(--navy);}
.hb-bar{height:14px; border-radius:var(--r-pill); background:rgba(22,49,87,.1); overflow:hidden;}
.hb-bar i{display:block; height:100%; width:var(--w); border-radius:inherit; background:var(--gold); transform-origin:left; animation:hbGrow .9s var(--ease) calc(.25s + var(--i,0)*.12s) both;}
.hb-row:first-child .hb-bar i{background:var(--navy);}
.hb-count{color:var(--bronze-text); text-align:end;}
@keyframes hbGrow{from{transform:scaleX(0);} to{transform:scaleX(1);}}

/* about: promises */
.hb-list{list-style:none; margin:0; padding:0; display:grid; gap:14px;}
.hb-list li{display:flex; align-items:center; gap:14px;}
.hb-list b, .hb-author b, .hb-logo b{display:block; font-size:.98rem; color:var(--navy);}

/* insights: post stack */
.hb-posts{display:grid; gap:12px;}
.hb-post{padding:14px 16px; border-radius:16px; background:var(--cream); border:1px solid var(--line);}
.hb-post b{display:block; font-size:.98rem; line-height:1.3; color:var(--navy); margin:4px 0 6px;}
.hb-post-cat{font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-text);}

/* case: logo and role */
.hb-logo{display:flex; align-items:center; gap:16px; margin-bottom:18px;}
.hb-logo .client-logo{height:88px; min-width:88px; border-radius:20px;}
.hb-logo .client-logo img{height:66px; max-width:150px;}
.hb-pills{display:flex; flex-wrap:wrap; gap:8px;}
.hb-pill{font-size:.84rem; font-weight:800; color:var(--navy); background:rgba(221,180,121,.3); padding:7px 14px; border-radius:var(--r-pill);}

/* article: author */
.hb-author{display:flex; align-items:center; gap:14px;}

/* privacy and terms: jump links */
.hb-jump{list-style:none; margin:0; padding:0;}
.hb-jump li + li{border-top:1px solid var(--line);}
.hb-jump a{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 2px; color:var(--navy); font-weight:700; text-decoration:none;}
.hb-jump a:hover{color:var(--bronze-text);}
.hb-jump .icon{width:18px; height:18px; flex:none;}

/* entrance: soft rise, one stagger; skipped for reduced motion */
.hb-tile, .hb-list li, .hb-post{animation:hbRise .6s var(--ease) calc(.15s + var(--i,0)*.07s) both;}
@keyframes hbRise{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@media (prefers-reduced-motion:reduce){ .hb-tile, .hb-list li, .hb-post, .hb-bar i{animation:none;} }

/* article and legal heroes now share the page-hero look */
.page-hero--article{padding-block:clamp(30px,4vw,52px) clamp(34px,4vw,56px);}
.page-hero--article h1{font-size:clamp(1.9rem,3.6vw,2.7rem); max-width:22ch;}
@media (max-width:940px){ .hb{max-width:560px; margin-top:8px;} }
.page-hero-grid > *{min-width:0;}
.hb-logo{flex-wrap:wrap;}
.hb-logo .client-logo{max-width:100%;}
@media (max-width:400px){ .hb-card{padding:20px 18px 40px;} .hb-logo .client-logo img{max-width:110px;} }
.hb-label{margin:0 0 10px; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-text);}

/* founder photo card */
.hb-card:has(.hb-photo){padding:14px 14px 14px;}
.hb-photo{border-radius:18px; overflow:hidden; background:var(--navy); aspect-ratio:1/1;}
.hb-photo img{display:block; width:100%; height:100%; object-fit:cover;}

/* contact: form beside the intro */
.page-hero-grid--form{grid-template-columns:.9fr 1.1fr; align-items:start;}
@media (max-width:940px){ .page-hero-grid--form{grid-template-columns:1fr;} }
.page-hero-grid--form h1{max-width:14ch;}
.page-hero-grid--form .lead{max-width:46ch; margin-bottom:26px;}

/* industries */
.ind-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(28px,5vw,72px); align-items:start;}
@media (max-width:860px){ .ind-grid{grid-template-columns:1fr;} }
.ind-grid h2{font-size:var(--fs-h2); font-weight:800; margin:18px 0 8px;}
.ind-head{font-weight:800; color:var(--navy); font-size:1.12rem; margin-bottom:10px;}
.ind-sub{font-size:.74rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-text); margin:0 0 14px;}
.ind-sub:not(:first-child){margin-top:30px;}
.ind-clients{display:flex; flex-wrap:wrap; gap:14px;}
.ind-client{display:flex; align-items:center; gap:12px; padding:10px 16px 10px 10px; background:var(--white); border:1px solid var(--line); border-radius:18px; color:var(--navy); font-weight:800; text-decoration:none; transition:translate .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);}
.ind-client:hover{translate:0 -2px; box-shadow:var(--shadow-lift);}
.ind-client .client-logo{height:56px; min-width:56px; border-radius:14px;}
.ind-client .client-logo img{height:40px; max-width:96px;}
.section[id]{scroll-margin-top:84px;}
.hb .float--b small{color:var(--navy-soft);}

/* ---------- hero card motion: same language as the homepage board (rise in, bars fill, soft gold pulse) ---------- */
.hb-card{animation:hbRise .7s var(--ease) both;}
.hb .float{animation:hbRise .7s var(--ease) 1s both;}
.hb-pill, .hb-jump li, .hb-logo{animation:hbRise .6s var(--ease) calc(.25s + var(--i,0)*.1s) both;}
.hb-bar i{animation:hbGrow .9s var(--ease) calc(.25s + var(--i,0)*.12s) both, hbGlow 2.8s ease-in-out calc(1.8s + var(--i,0)*.4s) infinite;}
.hb-ico, .hb .avatar{animation:hbGlow 3s ease-in-out calc(1.6s + var(--i,0)*.45s) infinite;}
.hb-post{animation:hbRise .6s var(--ease) calc(.15s + var(--i,0)*.07s) both, hbGlowSoft 4s ease-in-out calc(1.8s + var(--i,0)*.9s) infinite;}
@keyframes hbGlow{0%,100%{box-shadow:0 0 0 0 rgba(221,180,121,0);} 50%{box-shadow:0 0 0 6px rgba(221,180,121,.35);}}
@keyframes hbGlowSoft{0%,100%{border-color:var(--line); box-shadow:0 0 0 0 rgba(221,180,121,0);} 50%{border-color:rgba(173,134,82,.55); box-shadow:0 0 0 5px rgba(221,180,121,.22);}}
@media (prefers-reduced-motion:reduce){
  .hb-card, .hb .float, .hb-pill, .hb-jump li, .hb-logo, .hb-bar i, .hb-ico, .hb .avatar, .hb-post, .hb-tile, .hb-list li{animation:none !important;}
}

/* ---------- section headings: gold wave under one phrase, drawn when the section scrolls in (same as the homepage) ---------- */
.p-head h2 mark, .cta-panel h2 mark, .case-grid h2 mark, .ind-grid h2 mark{background:none; color:inherit; position:relative; display:inline-block;}
.p-head h2 mark::after, .cta-panel h2 mark::after, .case-grid h2 mark::after, .ind-grid h2 mark::after{
  content:""; position:absolute; inset-inline:-.04em; bottom:-.2em; height:.22em; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 464 40' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23ddb479'/%3E%3Cstop offset='1' stop-color='%23ad8652'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M3 22 C 70 6, 150 4, 232 18 S 390 36, 461 22' fill='none' stroke='url(%23g)' stroke-width='2.4' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
  clip-path:inset(0 100% 0 0);
}
[data-reveal].in h2 mark::after{animation:waveLoop 6.4s cubic-bezier(.65,0,.25,1) .6s infinite;}
html:not(.js) .p-head h2 mark::after, html:not(.js) .cta-panel h2 mark::after, html:not(.js) .case-grid h2 mark::after, html:not(.js) .ind-grid h2 mark::after{clip-path:none;}
@media (prefers-reduced-motion:reduce){ .p-head h2 mark::after, .cta-panel h2 mark::after, .case-grid h2 mark::after, .ind-grid h2 mark::after{animation:none !important; clip-path:none !important;} }

/* the reveal's transform would cancel the hover lift, so restate it */

/* ---------- hover states for every card on the inner pages (same language as the homepage cards) ---------- */
.feature, .fit-card, .how-step, .hb-tile, .hb-post, .hb-pill, .ind-client{transition:translate .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);}
.feature-ico{transition:background .25s, color .25s;}
@media (hover:hover){
  .feature:hover, .fit-card:hover{translate:0 -4px; box-shadow:var(--shadow-lift); border-color:var(--gold);}
  .feature:hover .feature-ico, .hub-card:hover .feature-ico, .related:hover .feature-ico{background:var(--navy); color:var(--gold);}
  .how-step:hover{translate:0 -4px; background:rgba(249,247,242,.12); border-color:rgba(221,180,121,.55);}
  .hb-tile:hover, .hb-post:hover{translate:0 -3px; border-color:var(--gold); box-shadow:var(--shadow-card);}
  .hb-pill:hover{background:var(--gold);}
  .hb-list li:hover .hb-ico{background:var(--navy); color:var(--gold);}
}
.hb-ico{transition:background .25s, color .25s;}
.hub-card:focus-visible, .related:focus-visible, .post:focus-visible, .ind-client:focus-visible, .client:focus-visible{outline:2px solid var(--bronze); outline-offset:4px;}

.faq-copy h2{max-width:15ch;}

/* founder photo card: one tag, seated on the lower-left corner of the card */
.hb--founder .float--a{inset-inline-start:-18px; bottom:6px;}
@media (max-width:520px){ .hb--founder .float--a{inset-inline-start:0;} }

/* two-column blocks: whichever column is shorter stays in view while the other one scrolls past */
@media (min-width:901px){
  .case-grid > *{position:sticky; top:110px; align-self:start;}
}
@media (min-width:861px){
  .ind-grid > *{position:sticky; top:110px; align-self:start;}
}


/* ---------- restyle: pieces the homepage components need on inner pages ---------- */
/* promise card with 1, 2 or 3 clauses (the homepage card has 4) */
.clauses--1{grid-template-columns:1fr;}
.clauses--1 .clause, .clauses--2 .clause, .clauses--3 .clause{border-bottom:0 !important;}
.clauses--1 .clause{border-inline-end:0 !important;}
.clauses--3{grid-template-columns:repeat(3,1fr);}
.clauses--3 .clause{grid-template-columns:1fr; border-inline-end:1px solid var(--line) !important;}
.clauses--3 .clause:last-child{border-inline-end:0 !important;}
.clauses--3 .clause-ico{grid-row:auto; margin-bottom:10px;}
@media (max-width:900px){
  .clauses--3{grid-template-columns:1fr;}
  .clauses--3 .clause{border-inline-end:0 !important; border-bottom:1px solid var(--line) !important;}
  .clauses--3 .clause:last-child{border-bottom:0 !important;}
}
@media (max-width:760px){
  .clauses--2 .clause:not(:last-child){border-bottom:1px solid var(--line) !important;}
  .clauses--2 .clause{border-inline-end:0 !important;}
}
/* thesis statement a little smaller where it carries a sentence */
.thesis-text--sm{font-size:clamp(1.6rem,3vw,2.35rem); max-width:20ch;}
.team-name small{display:block; margin-top:2px; font-weight:600; font-size:.84rem; color:var(--muted-text); line-height:1.35;}
.thesis.section--alt{border-block:1px solid var(--line);}
/* good-fit pair */
.fit-pair{display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1040px; margin-inline:auto;}
@media (max-width:820px){ .fit-pair{grid-template-columns:1fr;} }
/* three-step timeline (contact page) */
@media (min-width:941px){ .timeline--3{grid-template-columns:repeat(3,1fr);} }
/* industry blocks reuse the services layout */
.services-copy .industry-ico{margin-bottom:16px;}
.services-main .ind-sub{margin-bottom:14px;}
.fit-ok, .fit-no{width:24px; height:24px; border-radius:50%; display:grid; place-items:center; flex:none;}
.fit-ok{background:var(--gold); color:var(--navy-deep);}
.fit-no{background:rgba(163,90,74,.13); color:#a35a4a;}
.fit-ok .icon, .fit-no .icon{width:13px; height:13px; stroke-width:3;}

/* good-fit pair: both cards the same height, every row the same height, text centred in its row */
.fit-pair{align-items:stretch;}
.fit-pair .thesis-card-wrap{display:flex;}
.fit-pair .team-card{flex:1; display:flex; flex-direction:column;}
.fit-pair .team-list{flex:1; display:grid; grid-auto-rows:1fr;}
.fit-pair .team-row{align-items:center; padding-block:10px;}
.fit-pair .team-name{display:flex; align-items:center; min-height:100%;}

/* deliverables: the text sits at the top of the section and follows the scroll while the long card passes */
@media (min-width:941px){
  .thesis-grid--top{align-items:start;}
  .thesis-grid--top .thesis-copy{position:sticky; top:110px;}
}


/* contact: direct email and WhatsApp under the form */
.direct{margin-top:18px; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:20px 24px 8px; box-shadow:var(--shadow-card);}
.direct h2{font-size:1.02rem; font-weight:800; margin-bottom:4px;}
.direct > p{color:var(--navy-soft); font-size:.92rem; margin-bottom:10px;}
.direct-row{display:flex; align-items:center; gap:14px; padding:13px 0; border-top:1px solid var(--line); text-decoration:none; color:var(--navy);}
.direct-row small{display:block; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-text);}
.direct-row b{display:block; font-size:1rem; font-weight:800; word-break:break-word;}
.direct-row > span:nth-child(2){flex:1; min-width:0;}
.direct-ico{display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:rgba(221,180,121,.28); color:var(--bronze-text); flex:none; transition:background .25s, color .25s;}
.direct-ico .icon{width:21px; height:21px;}
.icon--fill{fill:currentColor; stroke:none;}
.direct-go{width:20px; height:20px; color:var(--bronze); transition:transform .25s var(--ease);}
.direct-row:hover .direct-ico{background:var(--navy); color:var(--gold);}
.direct-row:hover .direct-go{transform:translateX(4px);}
.direct-row:focus-visible{outline:2px solid var(--bronze); outline-offset:2px; border-radius:10px;}


/* phones: headings inside two-column blocks are centred too */
@media (max-width:640px){
  .p-head{text-align:center; margin-inline:auto;}
  .case-grid h2, .ind-grid h2{text-align:center;}
  .services-copy .industry-ico{margin-inline:auto;}
  .services-copy .page-actions, .thesis-copy .page-actions{justify-content:center;}
}

.ind-note{display:block; margin-top:2px; font-weight:600; font-size:.84rem; color:var(--muted-text); line-height:1.35; max-width:34ch;}
.ind-clients--center{justify-content:center;}
.ind-clients--center .ind-client{align-items:center;}
/* Start a Partnership: copy column follows the scroll beside the taller form */
@media (min-width:941px){ .page-hero-grid--form > .cta-copy{position:sticky; top:110px; align-self:start;} }
/* Case pages: challenge list, what-we-did cards, the decision behind the work */
.glance-list{list-style:none; margin:6px 0 0; padding:0;}
.glance-list li{display:flex; gap:12px; align-items:flex-start; padding:14px 0; border-top:1px solid var(--line); color:var(--navy); font-weight:600; font-size:.98rem; line-height:1.45;}
.glance-list li:first-child{border-top:0;}
.glance-list .icon{flex:none; width:20px; height:20px; margin-top:2px; color:var(--bronze-text); stroke-width:2;}
.did-list{display:grid; gap:20px;}
.did-list .feature{padding:26px 28px;}
.decision{max-width:760px; margin-inline:auto; text-align:center;}
.decision h2{font-size:var(--fs-h2); font-weight:800; line-height:1.15; margin-bottom:16px; text-wrap:balance; color:var(--cream);}
.decision p{color:rgba(249,247,242,.82); font-size:1.1rem; max-width:62ch; margin-inline:auto;}
/* Article tables and comparison text */
.prose h3 + ul, .prose h3 + p{margin-top:0;}
