/* V16.15 — Dynamic editorial interaction layer inspired by modern African premium digital experiences. */
:root{--dyn-gold:#c9a24a;--dyn-ivory:#ffffff;--dyn-ink:#11100e;--dyn-line:rgba(17,16,14,.14)}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
body::before{content:"";position:fixed;left:0;top:0;width:0;height:3px;background:var(--dyn-gold);z-index:99999;pointer-events:none;transition:width .08s linear}
body.has-scroll-progress::before{width:var(--scroll-progress,0%)}
/* Editorial reveal */
.dyn-reveal{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1)}
.dyn-reveal.is-visible{opacity:1;transform:none}
.dyn-reveal[data-delay="1"]{transition-delay:.08s}.dyn-reveal[data-delay="2"]{transition-delay:.16s}.dyn-reveal[data-delay="3"]{transition-delay:.24s}
/* Hero depth */
.premium-hero>video{transform:scale(1.045);transition:transform .2s ease-out;will-change:transform}
.premium-hero::after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(transparent,rgba(0,0,0,.2));pointer-events:none}
/* Capability cards — active spotlight */
.cap-home-grid{perspective:1200px}
.cap-feature{position:relative;transition:transform .45s cubic-bezier(.2,.8,.2,1),background .35s,border-color .35s,box-shadow .35s;transform-origin:center}
.cap-feature::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(201,162,74,.14),transparent 38%);opacity:0;transition:opacity .3s;pointer-events:none;border-radius:inherit}
.cap-feature.dyn-active{transform:translateY(-8px) rotateX(1deg);box-shadow:0 24px 60px rgba(0,0,0,.12);z-index:2}
.cap-feature.dyn-active::after{opacity:1}
.cap-feature b{transition:letter-spacing .25s,color .25s}.cap-feature.dyn-active b{letter-spacing:.04em;color:var(--dyn-gold)}
/* Solution strip — continuous motion */
.solution-strip{overflow:hidden;position:relative}
.solution-strip a{transition:transform .35s,background .35s,border-color .35s}
.solution-strip a:hover{transform:translateY(-6px);background:#15130f;border-color:var(--dyn-gold);color:#fff}
/* Help grid */
.help-grid a{position:relative;overflow:hidden;transition:transform .35s,background .35s,color .35s,border-color .35s}
.help-grid a::before{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--dyn-gold);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.help-grid a:hover{transform:translateY(-5px);background:#15130f;color:#fff}.help-grid a:hover::before{transform:scaleX(1)}
/* Process stepper */
.visual-process-line{position:relative}
.visual-process-line::before{content:"";position:absolute;left:5%;right:5%;top:24px;height:1px;background:linear-gradient(90deg,transparent,var(--dyn-gold),transparent);opacity:.65}
.visual-process-line>div{position:relative;z-index:1;cursor:pointer;transition:transform .35s,opacity .35s}
.visual-process-line>div::after{content:"";position:absolute;top:17px;left:50%;width:15px;height:15px;border:1px solid var(--dyn-gold);border-radius:50%;background:var(--dyn-ivory);transform:translateX(-50%);transition:background .25s,box-shadow .25s}
.visual-process-line>div.dyn-selected{transform:translateY(-8px)}
.visual-process-line>div.dyn-selected::after{background:var(--dyn-gold);box-shadow:0 0 0 7px rgba(201,162,74,.14)}
.visual-process-line>div.dyn-muted{opacity:.48}
/* Case studies — hover storytelling */
.premium-case-card{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;overflow:hidden}
.premium-case-card .premium-case-image img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.premium-case-card:hover{transform:translateY(-8px);box-shadow:0 25px 70px rgba(0,0,0,.15)}
.premium-case-card:hover .premium-case-image img{transform:scale(1.055);filter:saturate(1.08)}
/* Industry cards */
.industry-grid a{position:relative;transition:transform .35s,background .35s,color .35s;border-color:transparent}
.industry-grid a:hover{transform:translateY(-5px);background:#15130f;color:#fff;border-color:var(--dyn-gold)}
/* Images across site */
.visual-story-media,.feature-media,.media-card,.home-insights-visual{overflow:hidden}
.visual-story-media img,.feature-media img,.media-card img,.home-insights-visual img{transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s;will-change:transform}
.visual-story-media:hover img,.feature-media:hover img,.media-card:hover img,.home-insights-visual:hover img{transform:scale(1.035);filter:saturate(1.04)}
/* Dynamic image parallax shell */
.dyn-parallax{will-change:transform;transition:transform .18s ease-out}
/* AI preview motion */
.ai-orbit{animation:dyn-orbit 9s linear infinite}.ai-orbit-two{animation-duration:13s;animation-direction:reverse}.ai-orbit-three{animation-duration:17s}
.ai-answer-window{transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .4s}.ai-answer-stage:hover .ai-answer-window{transform:translateY(-8px) rotateX(1deg);box-shadow:0 30px 90px rgba(0,0,0,.2)}
@keyframes dyn-orbit{to{transform:rotate(360deg)}}
/* Footer hover */
.footer-links a,.footer-legal a{transition:color .25s,transform .25s}.footer-links a:hover,.footer-legal a:hover{color:var(--dyn-gold);transform:translateX(3px)}
/* Accessible reduced motion */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.dyn-reveal{opacity:1;transform:none}}
@media(max-width:760px){.visual-process-line::before{display:none}.visual-process-line>div::after{display:none}.premium-case-grid{scroll-snap-type:x mandatory;overflow-x:auto;display:flex!important;gap:16px;padding-bottom:12px}.premium-case-card{min-width:84%;scroll-snap-align:start}.cap-home-grid{perspective:none}.cap-feature.dyn-active{transform:none}}
.dyn-case-controls{display:flex;gap:8px;margin-left:auto;align-self:flex-end}.dyn-case-controls button{width:42px;height:42px;border:1px solid var(--dyn-line);border-radius:50%;background:transparent;color:inherit;cursor:pointer;font-size:18px;transition:.25s}.dyn-case-controls button:hover{background:var(--dyn-gold);border-color:var(--dyn-gold);color:#111}.subscribe-form input.is-confirmed,.home-insights-subscribe input.is-confirmed{border-color:var(--dyn-gold);box-shadow:0 0 0 3px rgba(201,162,74,.12)}
@media(max-width:760px){.dyn-case-controls{display:none}}

/* V16.32: specialist solutions are integrated within Capabilities. */
.capability-specialist-solutions{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(201,163,74,.35)}
.specialist-solutions-heading{margin-bottom:.8rem}.specialist-solutions-heading>span{display:block;color:#c9a34a;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}.specialist-solutions-heading h3{margin:.35rem 0 .8rem;font-size:1.1rem}.specialist-solutions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.specialist-solution-link{position:relative;display:flex;flex-direction:column;gap:.28rem;padding:.85rem;border:1px solid rgba(201,163,74,.25);text-decoration:none;transition:transform .22s ease,border-color .22s ease,background .22s ease}.specialist-solution-link:hover{transform:translateY(-2px);border-color:#c9a34a;background:rgba(201,163,74,.05)}.specialist-solution-link strong{font-size:.82rem;line-height:1.35}.specialist-solution-link small,.specialist-solution-link span:not(.specialist-solution-arrow){font-size:.75rem;opacity:.76}.specialist-solution-arrow{position:absolute;right:.65rem;top:.55rem;color:#c9a34a}@media(max-width:760px){.specialist-solutions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:460px){.specialist-solutions-grid{grid-template-columns:1fr}}
