
/* ==========================================================
   ROAS SCALERS — GLOBAL DESIGN TOKENS
   (Map these to Elementor Site Settings > Global Colors / Fonts)
   ========================================================== */
:root{
  /* Colour */
  --c-dark:#07131D;        /* Primary dark */
  --c-black:#05090D;       /* Near black */
  --c-panel:#0A1824;       /* Raised dark surface (hero graph, mini visuals) */
  --c-green:#00FF3C;       /* Accent green: dark backgrounds only */
  --c-green-ink:#007A1F;   /* Green for text and lines on light backgrounds (4.5:1+) */
  --c-white:#FFFFFF;
  --c-muted:#94A3B8;       /* Muted text on dark */
  --c-soft:#CBD5E1;        /* Supporting text on dark */
  --c-light:#F6F8FA;       /* Light background */
  --c-ink:#07131D;         /* Text on light */
  --c-ink-2:#475569;       /* Secondary text on light */
  --c-shadow:#000000;
  --c-rule-d:color-mix(in srgb,var(--c-white) 9%,transparent);
  --c-rule-l:#E2E8F0;
  --c-line-faint:color-mix(in srgb,var(--c-white) 5%,transparent);
  --c-line-strong:color-mix(in srgb,var(--c-white) 16%,transparent);
  --c-green-tint:color-mix(in srgb,var(--c-green) 14%,transparent);

  /* Type */
  --f-sans:"Inter","Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --fs-display:clamp(2.4rem,1.4rem + 4vw,4.75rem);
  --fs-h1:clamp(2.6rem,1.4rem + 4.6vw,5rem);        /* 42 to 80 */
  --fs-page-h1:clamp(2.4rem,1.3rem + 3.6vw,4.5rem); /* inner page H1: 38 to 72 */
  --fs-h2:clamp(2rem,1.3rem + 2.8vw,3.5rem);        /* 32 to 56 */
  --fs-h3:clamp(1.375rem,1.1rem + .9vw,1.9rem);     /* 22 to 30 */
  --fs-h4:clamp(1.125rem,1rem + .6vw,1.5rem);       /* 18 to 24 */
  --fs-stat:clamp(3rem,2.2rem + 3vw,5rem);
  --fs-num:clamp(2.5rem,2rem + 1.6vw,3.75rem);
  --fs-tagline:clamp(1.75rem,1.2rem + 2vw,3rem);
  --fs-list:clamp(1.25rem,1rem + 1vw,1.875rem);
  --fs-statement:clamp(1.25rem,1rem + .8vw,1.625rem);
  --fs-menu:1.5rem;
  --fs-body:clamp(1.0625rem,1rem + .2vw,1.1875rem); /* 17 to 19 */
  --fs-ui:1rem;            /* buttons, links, list labels */
  --fs-small:.9375rem;     /* supporting details */
  --fs-micro:.8125rem;     /* smallest labels */
  --fs-tag:.6875rem;
  --fs-viz-head:14px;      /* hero graph (SVG units) */
  --fs-viz-label:15px;
  --fs-viz-sub:12px;

  /* Radius */
  --r-xs:2px; --r-sm:4px; --r-md:8px; --r-lg:12px; --r-round:50%;

  /* Spacing */
  --sp-half:2px; --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --sp-7:28px; --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-14:56px; --sp-16:64px; --sp-20:80px;
  --sp-card:clamp(24px,3vw,40px);
  --sp-block-sm:clamp(28px,3.5vw,48px);
  --sp-block:clamp(32px,4vw,56px);
  --sp-block-lg:clamp(40px,5vw,64px);
  --sp-col-gap:clamp(32px,5vw,80px);
  --sp-col-gap-lg:clamp(40px,6vw,96px);
  --sp-hero-top:clamp(40px,6vw,88px);
  --sp-hero-bottom:clamp(56px,7vw,96px);
  --sp-final:clamp(72px,9vw,128px);
  --sec-y:clamp(56px,7vw,104px);
  --gutter:clamp(20px,4vw,48px);
  --stagger:22px;          /* Growth Path step height */
  --stagger-svc:32px;      /* Services panel step */

  --wrap:1280px;
  --header-h:84px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-sans);font-size:var(--fs-body);line-height:1.6;color:var(--c-ink);background:var(--c-black);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:700;letter-spacing:-.025em;line-height:1.05}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--c-green);outline-offset:3px;border-radius:var(--r-xs)}
.on-light :focus-visible{outline-color:var(--c-dark)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--c-green);color:var(--c-black);padding:var(--sp-3) var(--sp-4);font-weight:700;border-radius:var(--r-sm);text-decoration:none}
.skip:focus{top:12px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.sec{padding:var(--sec-y) 0;position:relative}
.on-dark{background:var(--c-dark);color:var(--c-white)}
.on-black{background:var(--c-black);color:var(--c-white)}
.on-light{background:var(--c-light);color:var(--c-ink)}
.on-white{background:var(--c-white);color:var(--c-ink)}
.h2{font-size:var(--fs-h2);max-width:17ch}
.intro{font-size:var(--fs-body);max-width:58ch}
.on-dark .intro,.on-black .intro{color:var(--c-soft)}
.on-light .intro,.on-white .intro{color:var(--c-ink-2)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-6);border-radius:var(--r-sm);font-weight:700;font-size:var(--fs-ui);text-decoration:none;letter-spacing:-.005em;transition:transform .25s var(--ease),background-color .25s,box-shadow .25s}
.btn .arr{width:16px;height:16px;transition:transform .25s var(--ease)}
.btn:hover .arr,.tlink:hover .arr{transform:translate(3px,-3px)}
.btn-primary{background:var(--c-green);color:var(--c-black)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px color-mix(in srgb,var(--c-green) 55%,transparent)}
.btn-ghost{color:var(--c-white);border:1px solid color-mix(in srgb,var(--c-white) 28%,transparent)}
.btn-ghost:hover{border-color:var(--c-white);transform:translateY(-2px)}
.tlink{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;text-decoration:none;font-size:var(--fs-ui);padding:var(--sp-2) 0;border-bottom:1px solid currentColor}
.tlink .arr{width:14px;height:14px;transition:transform .25s var(--ease)}

/* ==========================================================
   HEADER
   ========================================================== */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--c-black) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:background-color .3s,border-color .3s}
.site-header.scrolled{background:var(--c-black);border-color:var(--c-rule-d)}
.hdr{height:var(--header-h);display:flex;align-items:center;gap:var(--sp-8);transition:height .3s var(--ease)}
.site-header.scrolled .hdr{height:68px}
.brand img{height:50px;width:auto;transition:height .3s var(--ease)}
.site-header.scrolled .brand img{height:42px}
.nav{margin-left:auto}
.nav-root{display:flex;gap:var(--sp-1);align-items:center}
.nav-root > li{position:relative}
.nav-root > li > a{display:block;padding:var(--sp-3) var(--sp-4);color:var(--c-soft);text-decoration:none;font-size:var(--fs-small);font-weight:500;border-radius:var(--r-sm);position:relative;transition:color .2s}
.nav-root > li > a::after{content:"";position:absolute;left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-1);height:2px;background:var(--c-green);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav-root > li > a:hover,.has-dd:hover > a,.has-dd.open > a{color:var(--c-white)}
.nav-root > li > a:hover::after,.has-dd:hover > a::after,.has-dd.open > a::after{transform:scaleX(1)}
/* Dropdowns */
.has-dd{display:flex;align-items:center}
.has-dd > a{padding-right:var(--sp-1)}
.has-dd > a::after{right:var(--sp-1)}
.dd-toggle{width:28px;height:36px;display:grid;place-items:center;color:var(--c-muted);border-radius:var(--r-sm);transition:color .2s}
.dd-toggle svg{width:12px;height:12px;transition:transform .25s var(--ease)}
.has-dd:hover .dd-toggle,.has-dd.open .dd-toggle{color:var(--c-green)}
.has-dd:hover .dd-toggle svg,.has-dd.open .dd-toggle svg{transform:rotate(180deg)}
.dd{position:absolute;top:100%;left:0;width:max-content;min-width:440px;margin-top:var(--sp-3);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,auto);grid-auto-flow:column;gap:var(--sp-half) var(--sp-2);padding:var(--sp-3);background:var(--c-black);border:1px solid var(--c-rule-d);border-top:2px solid var(--c-green);border-radius:var(--r-md);box-shadow:0 24px 48px -20px color-mix(in srgb,var(--c-shadow) 80%,transparent);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--ease),visibility 0s .25s;z-index:60}
.dd::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:var(--sp-4)}
.has-dd:hover .dd,.has-dd.open .dd{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .25s var(--ease)}
.dd a{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3);border-radius:var(--r-sm);color:var(--c-soft);text-decoration:none;font-size:var(--fs-small);font-weight:500;white-space:nowrap;transition:background-color .2s,color .2s}
.dd a svg{width:12px;height:12px;flex:none;color:var(--c-green);opacity:0;transform:translate(-4px,4px);transition:opacity .2s,transform .25s var(--ease)}
.dd a:hover,.dd a:focus-visible{background:var(--c-line-faint);color:var(--c-white)}
.dd a:hover svg,.dd a:focus-visible svg{opacity:1;transform:none}
.hdr .btn{min-height:44px;padding:0 var(--sp-5);font-size:var(--fs-small)}
.hdr .short{display:none}
.burger{display:none;width:44px;height:44px;border:1px solid var(--c-rule-d);border-radius:var(--r-sm);align-items:center;justify-content:center}
.burger span{display:block;width:18px;height:2px;background:var(--c-white);position:relative;transition:background .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--c-white);transition:transform .25s var(--ease)}
.burger span::before{top:-6px}.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.scroll-progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--c-green);transform-origin:left;transform:scaleX(0)}
.mnav{display:none}

/* ==========================================================
   1. HERO
   ========================================================== */
.hero{padding:var(--sp-hero-top) 0 var(--sp-hero-bottom);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--c-rule-d) 1px,transparent 1px),linear-gradient(90deg,var(--c-rule-d) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 75% 45%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 70% at 75% 45%,#000 20%,transparent 75%);opacity:.6;pointer-events:none}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--sp-col-gap);align-items:center;position:relative}
.eyebrow{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-small);color:var(--c-soft);font-weight:500;margin-bottom:var(--sp-7)}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--c-green);border-radius:var(--r-round);box-shadow:0 0 0 4px color-mix(in srgb,var(--c-green) 15%,transparent);flex:none}
.hero h1{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.04em;line-height:.98;max-width:12ch}
.hero .lede{margin-top:var(--sp-7);color:var(--c-soft);max-width:52ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-10)}
.assure{display:flex;gap:var(--sp-3);margin-top:var(--sp-6);font-size:var(--fs-small);color:var(--c-muted);max-width:52ch;line-height:1.5}
.assure svg{flex:none;margin-top:var(--sp-1)}

.hero-visual{position:relative}
.viz{width:100%;height:auto;border-radius:var(--r-lg);overflow:visible}
.viz .ln{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.9s .3s var(--ease) forwards}
.viz .area{opacity:0;animation:fade 1s 1.5s forwards}
.viz .node{opacity:0;transform-box:fill-box;transform-origin:center;animation:pop .5s var(--ease) forwards}
.viz .n1{animation-delay:.35s}.viz .n2{animation-delay:.9s}.viz .n3{animation-delay:1.45s}.viz .n4{animation-delay:2s}
.viz .tip{opacity:0;animation:fade .4s 2.1s forwards}
.viz .pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s 2.3s ease-out infinite;opacity:0}
.chip{position:absolute;background:color-mix(in srgb,var(--c-black) 92%,transparent);border:1px solid var(--c-rule-d);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex;gap:var(--sp-3);align-items:center;opacity:0;animation:rise .6s var(--ease) forwards;box-shadow:0 18px 40px -20px color-mix(in srgb,var(--c-shadow) 80%,transparent)}
.chip b{display:block;font-size:var(--fs-small);color:var(--c-white);letter-spacing:-.01em}
.chip small{display:block;font-size:var(--fs-micro);color:var(--c-muted)}
.chip .ic{width:30px;height:30px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none}
.chip-a{left:-4%;top:24%;animation-delay:2.2s}
.chip-a .ic{background:color-mix(in srgb,var(--c-green) 14%,transparent)}
.chip-b{right:-3%;bottom:9%;animation-delay:2.45s}
.chip-b .ic{background:color-mix(in srgb,var(--c-muted) 14%,transparent)}

@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@keyframes pop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pulse{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}

/* ==========================================================
   2. MARKETING PROBLEM
   ========================================================== */
.problem{overflow:hidden}
.problem::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--c-rule-l) 1px,transparent 1px);background-size:100% 88px;opacity:.3;pointer-events:none}
.prob-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:var(--sp-col-gap-lg);position:relative}
.prob-head{position:sticky;top:110px;align-self:start}
.prob-head .h2{max-width:13ch;font-weight:800}
.tension{display:inline-flex;align-items:baseline;gap:var(--sp-half);position:relative;white-space:nowrap}
.tension svg{display:inline-block;width:.55em;height:.55em;align-self:center}
.t-flat{position:relative}
.t-flat::after{content:"";position:absolute;left:0;right:0;bottom:.02em;height:.07em;background:repeating-linear-gradient(90deg,var(--c-ink-2) 0 10px,transparent 10px 16px)}
.prob-head .intro{margin-top:var(--sp-7)}
.obs{border-top:1px solid var(--c-rule-l)}
.obs li{display:grid;grid-template-columns:88px 1fr;gap:var(--sp-5);padding:var(--sp-7) 0;border-bottom:1px solid var(--c-rule-l);position:relative;transition:background-color .3s}
.obs .num{font-size:var(--fs-num);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--c-ink-2);transition:color .3s}
.obs h3{font-size:var(--fs-h3);line-height:1.15;margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-3)}
.obs h3 .mk{width:0;height:18px;overflow:hidden;flex:none;transition:width .35s var(--ease)}
.obs p{color:var(--c-ink-2);max-width:46ch}
.obs li::before{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--c-green-ink);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.obs li:hover::before,.obs li:focus-within::before{transform:scaleX(1)}
.obs li:hover .num{color:var(--c-green-ink)}
.obs li:hover h3 .mk{width:22px}
.closing{margin-top:var(--sp-10);font-size:var(--fs-statement);font-weight:700;letter-spacing:-.02em;line-height:1.3;max-width:30ch}

/* ==========================================================
   3. SERVICES
   ========================================================== */
.svc-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:end;margin-bottom:var(--sp-block)}
.svc-head .h2{max-width:16ch}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);position:relative;align-items:start}
.gp-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.gp-base{fill:none;stroke-width:1.5}
.gp-line{fill:none;stroke:var(--c-green);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.svc-grid .gp-base{stroke:var(--c-rule-l)}
.svc-grid .gp-line{stroke:var(--c-green-ink)}
.panel{min-width:0;position:relative;z-index:1;border-radius:var(--r-lg);padding:var(--sp-7);display:flex;flex-direction:column;transition:transform .3s var(--ease)}
.panel:hover{transform:translateY(-3px)}
.panel:nth-of-type(1){margin-top:calc(var(--stagger-svc) * 2);background:var(--c-dark);color:var(--c-white)}
.panel:nth-of-type(2){margin-top:var(--stagger-svc);background:var(--c-light);border:1px solid var(--c-rule-l)}
.panel:nth-of-type(3){margin-top:0;background:var(--c-black);color:var(--c-white);border-top:3px solid var(--c-green)}
.pnum{display:flex;align-items:center;gap:var(--sp-3);font-weight:700;font-size:var(--fs-small);margin-bottom:var(--sp-6)}
.pnum .gp-dot{width:12px;height:12px;border-radius:var(--r-round);background:currentColor;flex:none;box-shadow:0 0 0 5px color-mix(in srgb,var(--c-muted) 18%,transparent)}
.panel:nth-of-type(1) .gp-dot,.panel:nth-of-type(3) .gp-dot{background:var(--c-green);box-shadow:0 0 0 5px color-mix(in srgb,var(--c-green) 16%,transparent)}
.panel:nth-of-type(2) .gp-dot{background:var(--c-green-ink)}
.pviz{min-width:0;height:184px;border-radius:var(--r-md);margin-bottom:var(--sp-7);position:relative;overflow:hidden}
.panel h3{font-size:var(--fs-h3);margin-bottom:var(--sp-3)}
.panel .sub{font-weight:600;font-size:var(--fs-body);margin-bottom:var(--sp-3);letter-spacing:-.01em}
.panel .body{font-size:var(--fs-body);line-height:1.6;margin-bottom:var(--sp-6)}
.panel:nth-of-type(1) .body,.panel:nth-of-type(3) .body{color:var(--c-soft)}
.panel:nth-of-type(2) .body{color:var(--c-ink-2)}
.svc-list{border-top:1px solid var(--c-rule-d);margin-bottom:var(--sp-6)}
.panel:nth-of-type(2) .svc-list{border-color:var(--c-rule-l)}
.svc-list li{border-bottom:1px solid var(--c-rule-d)}
.panel:nth-of-type(2) .svc-list li{border-color:var(--c-rule-l)}
.svc-list a{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) 0;text-decoration:none;font-weight:600;font-size:var(--fs-ui)}
.svc-list a svg{width:14px;height:14px;opacity:.45;transition:transform .25s var(--ease),opacity .25s}
.svc-list a:hover svg{opacity:1;transform:translate(3px,-3px)}
.panel .tlink{margin-top:auto;align-self:flex-start}

/* search viz */
.v-search{background:var(--c-panel);padding:var(--sp-5)}
.sbar{white-space:nowrap;overflow:hidden;display:flex;align-items:center;gap:var(--sp-3);background:var(--c-white);color:var(--c-ink);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-3);font-size:var(--fs-micro);font-weight:500}
.sbar .caret{width:1.5px;height:16px;background:var(--c-ink);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.sres{margin-top:var(--sp-3);display:grid;gap:var(--sp-2)}
.sres div{height:26px;transition:opacity .35s,transform .35s var(--ease);border-radius:var(--r-sm);background:color-mix(in srgb,var(--c-white) 5%,transparent);display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3)}
.sres div i{display:block;height:6px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--c-white) 18%,transparent)}
.sres.searching div{opacity:.2;transform:translateY(4px)}
.sres div:nth-child(2){transition-delay:.08s}.sres div:nth-child(3){transition-delay:.16s}
.sres .hit{background:color-mix(in srgb,var(--c-green) 8%,transparent);box-shadow:inset 3px 0 0 var(--c-green)}
.sres .hit i{background:color-mix(in srgb,var(--c-white) 55%,transparent)}
.sres .tag{font-style:normal;font-size:var(--fs-tag);font-weight:700;color:var(--c-black);background:var(--c-green);padding:var(--sp-half) var(--sp-2);border-radius:var(--r-sm)}
/* social viz */
.v-social{background:var(--c-white);border:1px solid var(--c-rule-l);padding:var(--sp-4);display:grid;grid-template-rows:auto 1fr auto;gap:var(--sp-3)}
.v-social .who{display:flex;align-items:center;gap:var(--sp-2)}
.v-social .av{width:24px;height:24px;border-radius:var(--r-round);background:var(--c-dark)}
.v-social .who i{display:block;height:6px;width:90px;border-radius:var(--r-sm);background:var(--c-soft)}
.v-social .media{background:var(--c-dark);border-radius:var(--r-sm);position:relative;overflow:hidden}
.v-social .media svg{position:absolute;inset:0;width:100%;height:100%}
.v-social .acts{display:flex;gap:var(--sp-3);color:var(--c-ink-2)}
.v-social .acts svg{width:16px;height:16px}
/* growth viz */
.v-growth{background:var(--c-panel);padding:var(--sp-5) var(--sp-5) 0;display:flex;align-items:flex-end;gap:var(--sp-3)}
.v-growth span{flex:1;background:color-mix(in srgb,var(--c-white) 10%,transparent);border-radius:var(--r-sm) var(--r-sm) 0 0;transform-origin:bottom;transform:scaleY(.2);transition:transform 1s var(--ease)}
.v-growth span:last-of-type{background:var(--c-green)}
.panel.is-in .v-growth span{transform:scaleY(1)}
.v-growth span:nth-of-type(2){transition-delay:.08s}.v-growth span:nth-of-type(3){transition-delay:.16s}.v-growth span:nth-of-type(4){transition-delay:.24s}.v-growth span:nth-of-type(5){transition-delay:.32s}
.v-growth svg{position:absolute;inset:0;width:100%;height:100%}

/* ==========================================================
   4. PHILOSOPHY / GROWTH PATH
   ========================================================== */
.philo{overflow:hidden}
.philo-head{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-col-gap);align-items:end}
.philo-head .h2{max-width:18ch}
.journey{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-5);margin-top:var(--sp-block);padding-top:var(--sp-12)}
.journey .gp-base{stroke:color-mix(in srgb,var(--c-white) 12%,transparent)}
.journey .gp-loop{fill:none;stroke:var(--c-green);stroke-width:1.5;stroke-dasharray:4 7;opacity:0;transition:opacity .8s}
.journey.looped .gp-loop{opacity:.6}
.stage{position:relative;padding-top:var(--sp-8);z-index:1}
.stage .gp-dot{position:absolute;left:0;top:0;width:14px;height:14px;border-radius:var(--r-round);background:var(--c-dark);border:2px solid color-mix(in srgb,var(--c-white) 30%,transparent);transition:background-color .4s,border-color .4s,box-shadow .4s}
.stage.lit .gp-dot{background:var(--c-green);border-color:var(--c-green);box-shadow:0 0 0 6px color-mix(in srgb,var(--c-green) 14%,transparent)}
.stage:last-of-type .gp-dot{width:20px;height:20px;left:-3px;top:-3px}
.stage .idx{display:block;font-size:var(--fs-micro);color:var(--c-muted);margin-bottom:var(--sp-2);font-variant-numeric:tabular-nums}
.stage h3{font-size:var(--fs-h4);color:var(--c-muted);transition:color .4s;letter-spacing:-.02em}
.stage p{margin-top:var(--sp-2);font-size:var(--fs-small);line-height:1.5;color:var(--c-muted);transition:color .5s;max-width:22ch}
.stage.lit h3{color:var(--c-white)}
.stage.lit p{color:var(--c-soft)}
.stage:nth-of-type(1){margin-top:calc(var(--stagger) * 8)}.stage:nth-of-type(2){margin-top:calc(var(--stagger) * 6)}.stage:nth-of-type(3){margin-top:calc(var(--stagger) * 7)}
.stage:nth-of-type(4){margin-top:calc(var(--stagger) * 4)}.stage:nth-of-type(5){margin-top:calc(var(--stagger) * 2)}.stage:nth-of-type(6){margin-top:0}
.philo-foot{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-col-gap);margin-top:var(--sp-block-lg);padding-top:var(--sp-10);border-top:1px solid var(--c-rule-d);align-items:end}
.philo-foot p{font-size:var(--fs-statement);font-weight:600;letter-spacing:-.02em;line-height:1.35;max-width:34ch}
.tagline{font-size:var(--fs-tagline);font-weight:800;letter-spacing:-.04em;line-height:1;text-align:right}
.tagline span{display:block;color:var(--c-green)}

/* ==========================================================
   5. WORK / CASE STUDIES
   ========================================================== */
.work-head{display:flex;justify-content:space-between;align-items:end;gap:var(--sp-8);flex-wrap:wrap;margin-bottom:var(--sp-block-sm)}
.work-head .intro{margin-top:var(--sp-5)}
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
.case{position:relative;border-radius:var(--r-lg);padding:var(--sp-card);min-height:360px;display:flex;flex-direction:column;overflow:hidden;text-decoration:none;transition:transform .3s var(--ease)}
.case:hover{transform:translateY(-3px)}
.case.dk{background:var(--c-dark);color:var(--c-white)}
.case.lt{background:var(--c-white);border:1px solid var(--c-rule-l);color:var(--c-ink)}
.case .meta{display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-small);font-weight:600}
.case .meta .ch{font-weight:500}
.case.dk .meta .ch{color:var(--c-muted)}
.case.lt .meta .ch{color:var(--c-ink-2)}
.case .chal{margin-top:var(--sp-6);font-size:var(--fs-statement);font-weight:700;letter-spacing:-.02em;line-height:1.2;max-width:22ch;position:relative;z-index:1}
.case .res{margin-top:auto;padding-top:var(--sp-8);position:relative;z-index:1}
.case .big{font-size:var(--fs-stat);font-weight:800;letter-spacing:-.05em;line-height:.95}
.case.dk .big{color:var(--c-green)}
.case .res small{display:block;font-size:var(--fs-small);margin-top:var(--sp-2)}
.case.dk .res small{color:var(--c-muted)}
.case.lt .res small{color:var(--c-ink-2)}
.case .read{margin-top:var(--sp-6);display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-ui)}
.case .read svg{width:14px;height:14px;transition:transform .25s var(--ease)}
.case:hover .read svg{transform:translate(3px,-3px)}
.case .cg{position:absolute;right:0;bottom:0;width:62%;height:62%;pointer-events:none}

.case-idx{position:absolute;top:var(--sp-card);right:var(--sp-card)}

/* ==========================================================
   6. INDUSTRIES
   ========================================================== */
.ind-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);margin-top:var(--sp-block);align-items:stretch}
.ind-list{border-top:1px solid var(--c-rule-d)}
.ind-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-5) 0;border-bottom:1px solid var(--c-rule-d);text-align:left;color:var(--c-muted);font-size:var(--fs-list);font-weight:700;letter-spacing:-.025em;transition:color .25s}
.ind-btn .arr{width:22px;height:22px;flex:none;opacity:0;transform:translateX(-10px);transition:transform .3s var(--ease),opacity .3s;color:var(--c-green)}
.ind-btn:hover,.ind-item.active .ind-btn{color:var(--c-white)}
.ind-item.active .ind-btn .arr,.ind-btn:hover .arr{opacity:1;transform:none}
.ind-inline{display:none}
.ind-stage{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--c-black);min-height:460px;border:1px solid var(--c-rule-d)}
.pane{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--sp-card);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s}
.pane.active{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
.pane img,.pane .art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pane img{filter:grayscale(.25) contrast(1.05)}
.pane::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--c-black) 0%,transparent) 25%,color-mix(in srgb,var(--c-black) 92%,transparent) 80%)}
.pane > div{position:relative;z-index:1}
.pane h3{font-size:var(--fs-h3);margin-bottom:var(--sp-2)}
.pane p{color:var(--c-soft);max-width:36ch;margin-bottom:var(--sp-5)}
.ind-foot{margin-top:var(--sp-10)}
.on-dark .tlink,.on-black .tlink{color:var(--c-white)}
.on-dark .tlink:hover,.on-black .tlink:hover{color:var(--c-green)}

/* ==========================================================
   7. FINAL CTA
   ========================================================== */
.final{overflow:hidden;text-align:left;padding:var(--sp-final) 0}
.final-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.final-line path{fill:none;stroke:var(--c-green);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s var(--ease)}
.final-line .fl-glow{stroke-width:10;opacity:.08}
.final.is-in .final-line path{stroke-dashoffset:0}
.final .wrap{position:relative}
.final h2{font-size:var(--fs-display);font-weight:800;letter-spacing:-.04em;line-height:1;max-width:15ch}
.final .intro{margin-top:var(--sp-7);max-width:56ch}
.final .ctas{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-10)}
.final .small{margin-top:var(--sp-6);font-size:var(--fs-small);color:var(--c-muted)}

/* ==========================================================
   FOOTER
   ========================================================== */
.site-footer{background:var(--c-black);color:var(--c-soft);border-top:1px solid var(--c-rule-d);padding:var(--sp-20) 0 var(--sp-8);font-size:var(--fs-small)}
.ft-grid{display:grid;grid-template-columns:1.3fr 1fr 1.3fr 1.3fr 1.1fr;gap:var(--sp-8)}
.ft-brand img{height:64px;width:auto}
.ft-brand p{margin-top:var(--sp-4);color:var(--c-white);font-weight:600}
.site-footer h2{font-size:var(--fs-micro);font-weight:700;color:var(--c-muted);letter-spacing:.02em;margin-bottom:var(--sp-4)}
.site-footer li{margin-bottom:var(--sp-3)}
.site-footer a{text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--c-green)}
.ft-contact p{margin-bottom:var(--sp-3)}
.ft-base{margin-top:var(--sp-14);padding-top:var(--sp-6);border-top:1px solid var(--c-rule-d);display:flex;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;color:var(--c-muted);font-size:var(--fs-micro)}


/* SVG colour utilities (token-driven) */
.fc-dark{fill:var(--c-dark)}
.fc-green{fill:var(--c-green)}
.fc-green-ink{fill:var(--c-green-ink)}
.fc-line-faint{fill:var(--c-line-faint)}
.fc-line-strong{fill:var(--c-line-strong)}
.fc-muted{fill:var(--c-muted)}
.fc-panel{fill:var(--c-panel)}
.fc-rule-d{fill:var(--c-rule-d)}
.fc-white{fill:var(--c-white)}
.sc-dark{stroke:var(--c-dark)}
.sc-green{stroke:var(--c-green)}
.sc-green-ink{stroke:var(--c-green-ink)}
.sc-ink-2{stroke:var(--c-ink-2)}
.sc-line-faint{stroke:var(--c-line-faint)}
.sc-line-strong{stroke:var(--c-line-strong)}
.sc-muted{stroke:var(--c-muted)}
.sc-rule-d{stroke:var(--c-rule-d)}
.sc-white{stroke:var(--c-white)}
.stc-green{stop-color:var(--c-green)}
.viz text{font-family:var(--f-sans)}
.vt-head{font-size:var(--fs-viz-head)}.vt-label{font-size:var(--fs-viz-label)}.vt-sub{font-size:var(--fs-viz-sub)}
.ind-intro{margin-top:var(--sp-6)}
.site-footer .ft-sub{margin-top:var(--sp-7)}
.push{margin-left:auto}
.sres div:nth-child(1) i{width:55%}.sres div:nth-child(2) i{width:70%}.sres div:nth-child(3) i{width:45%}
.v-growth span:nth-of-type(1){height:28%}.v-growth span:nth-of-type(2){height:40%}.v-growth span:nth-of-type(3){height:36%}.v-growth span:nth-of-type(4){height:62%}.v-growth span:nth-of-type(5){height:88%}
/* Case studies keep dark/light alternation when stacked on mobile */
@media (max-width:767px){.cases .case:nth-child(3){order:4}.cases .case:nth-child(4){order:3}}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width:1180px){
  .chip-a{left:0}.chip-b{right:0}
  .ft-grid{grid-template-columns:repeat(3,1fr)}
  .ft-brand{grid-column:1/-1}
}
@media (max-width:1024px){
  .nav,.hdr > .btn{display:none}
  .burger{display:inline-flex}
  .hdr .mcta{display:inline-flex}
  .mnav{display:block;z-index:49;position:fixed;inset:68px 0 0 0;background:var(--c-black);padding:var(--sp-6) var(--gutter) var(--sp-10);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s var(--ease),visibility 0s .25s;overflow-y:auto}
  .mnav.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s var(--ease)}
  .mnav > a,.m-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-rule-d)}
  .mnav > a,.m-row a{padding:var(--sp-5) 0;color:var(--c-white);text-decoration:none;font-size:var(--fs-menu);font-weight:700;letter-spacing:-.02em;flex:1}
  .m-toggle{width:48px;height:48px;display:grid;place-items:center;color:var(--c-muted);border:1px solid var(--c-rule-d);border-radius:var(--r-sm)}
  .m-toggle svg{width:14px;height:14px;transition:transform .25s var(--ease)}
  .m-toggle[aria-expanded="true"]{color:var(--c-green)}
  .m-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
  .m-sub{padding:var(--sp-2) 0 var(--sp-4);border-bottom:1px solid var(--c-rule-d)}
  .m-sub a{display:block;padding:var(--sp-2) 0 var(--sp-2) var(--sp-4);border-left:2px solid var(--c-rule-d);color:var(--c-soft);text-decoration:none;font-size:var(--fs-body);transition:color .2s,border-color .2s}
  .m-sub a:hover,.m-sub a:focus-visible{color:var(--c-white);border-left-color:var(--c-green)}
  .mnav .btn{margin-top:var(--sp-7);width:100%;justify-content:center;border:0;font-size:var(--fs-ui)}
  .hero-grid{grid-template-columns:1fr}
  .hero-visual{max-width:640px}
  .prob-grid{grid-template-columns:1fr}
  .prob-head{position:static}
  .svc-head,.philo-head,.philo-foot{grid-template-columns:1fr}
  .tagline{text-align:left}
  .svc-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-5)}
  .panel:nth-of-type(n){margin-top:0}
  .panel{display:grid;grid-template-columns:1fr 1.2fr;column-gap:var(--sp-8)}
  .panel > *{grid-column:2}
  .panel .pnum{grid-column:1/-1}
  .panel .pviz{grid-column:1;grid-row:2 / span 6;height:auto;min-height:184px;margin-bottom:0}
  .journey{grid-template-columns:1fr;gap:var(--sp-7);padding-top:0}
  .stage:nth-of-type(n){margin-top:0}
  .stage{padding:0 0 0 var(--sp-12)}
  .stage .gp-dot{top:4px}
  .stage:last-of-type .gp-dot{left:-3px;top:1px}
  .stage p{max-width:40ch}
  .ind-grid{grid-template-columns:1fr}
  .ind-stage{display:none}
  .ind-item.active .ind-inline{display:block}
  .ind-inline{padding:var(--sp-1) 0 var(--sp-6);border-bottom:1px solid var(--c-rule-d)}
  .ind-item.active .ind-btn{border-bottom-color:transparent}
  .ind-inline p{color:var(--c-soft);margin-bottom:var(--sp-4)}
  .ind-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-md);margin-bottom:var(--sp-4);background:var(--c-black)}
  .ind-btn .arr{opacity:.6;transform:rotate(90deg)}
  .ind-item.active .ind-btn .arr{transform:rotate(-90deg)}
}
@media (max-width:767px){
  :root{--header-h:68px}
  .brand img{height:40px}
  .site-header.scrolled .brand img{height:38px}
  .hdr{gap:var(--sp-3)}
  .hdr .long{display:none}.hdr .short{display:inline}
  .hdr .mcta{margin-left:auto}
  .hero h1{max-width:12ch}
  .hero-ctas .btn{width:100%;justify-content:center}
  .chip{display:none}
  .viz .lbl-sub,.viz .pill{display:none}
  .viz{--fs-viz-label:24px}
  .final-line{opacity:.55}
  .obs li{grid-template-columns:56px 1fr;gap:var(--sp-3);padding:var(--sp-7) 0}
  .panel{display:flex}
  .panel .pviz{min-height:0;height:164px;margin-bottom:var(--sp-6)}
  .cases{grid-template-columns:1fr}
  .case{min-height:360px}
  .final .ctas .btn{width:100%;justify-content:center}
  .ft-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){
  .ft-grid{grid-template-columns:1fr}
  .tension svg{display:none}
}
@media (min-width:1025px){ .hdr .mcta{display:none} }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  html{scroll-behavior:auto}
  .viz .pulse{display:none}
}

/* ==========================================================
   INNER PAGES — shared components
   ========================================================== */
[id]{scroll-margin-top:calc(var(--header-h) + var(--sp-4))}
.nav-root > li > a[aria-current="page"]{color:var(--c-white)}
.nav-root > li > a[aria-current="page"]::after{transform:scaleX(1)}
.mnav a[aria-current="page"]{color:var(--c-green)}

/* Page hero (Elementor: Container, 2 columns) */
.phero{padding:var(--sp-hero-top) 0 var(--sp-hero-bottom);overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--c-rule-d) 1px,transparent 1px),linear-gradient(90deg,var(--c-rule-d) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 70% at 75% 45%,var(--c-shadow) 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 70% at 75% 45%,var(--c-shadow) 20%,transparent 75%);opacity:.6;pointer-events:none}
.phero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-col-gap);align-items:center;position:relative;z-index:1}
.phero-grid.solo{grid-template-columns:1fr}
.phero h1{font-size:var(--fs-page-h1);font-weight:800;letter-spacing:-.04em;line-height:1.02;max-width:16ch}
.phero .lede{margin-top:var(--sp-6);color:var(--c-soft);max-width:56ch}
.phero .hero-ctas{margin-top:var(--sp-10)}
/* Signature: growth line along the foot of every inner hero */
.phero-line{position:absolute;left:0;right:0;bottom:0;width:100%;height:120px;pointer-events:none;z-index:0}
.phero-line path{fill:none;stroke:var(--c-green);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.2s .4s var(--ease) forwards;opacity:.55}

.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:end;margin-bottom:var(--sp-block)}
.sec-head .h2{max-width:18ch}

/* ==========================================================
   SERVICES PAGE
   ========================================================== */
/* Hero visual: the climb (HTML labels, SVG line only) */
.climb{position:relative;background:var(--c-panel);border:1px solid var(--c-rule-d);border-radius:var(--r-lg);padding:var(--sp-10) var(--sp-6) var(--sp-6)}
.climb .gp-svg{z-index:2}
.climb .gp-base{stroke:transparent}
.climb .gp-line{opacity:0;animation:fade .6s 1.1s forwards}
.climb ol{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-3);height:320px;position:relative;z-index:1}
.climb li{display:grid;grid-template-rows:1fr auto;min-width:0}
.climb .bw{display:flex;align-items:flex-end}
.climb .bar{position:relative;display:block;width:100%;background:var(--c-line-faint);border-radius:var(--r-sm) var(--r-sm) 0 0;transform-origin:bottom;animation:grow .9s var(--ease) both}
.climb li:nth-child(1) .bar{height:18%}.climb li:nth-child(2) .bar{height:34%;animation-delay:.1s}.climb li:nth-child(3) .bar{height:50%;animation-delay:.2s}
.climb li:nth-child(4) .bar{height:68%;animation-delay:.3s}.climb li:nth-child(5) .bar{height:92%;animation-delay:.4s;background:var(--c-green-tint);box-shadow:inset 0 2px 0 var(--c-green)}
.climb .gp-dot{position:absolute;top:0;left:50%;width:10px;height:10px;border-radius:var(--r-round);background:var(--c-green);transform:translate(-50%,-50%);box-shadow:0 0 0 5px var(--c-green-tint)}
.climb .lbl{margin-top:var(--sp-3);font-size:var(--fs-small);font-weight:600;color:var(--c-soft);text-align:center}
.climb li:last-child .lbl{color:var(--c-green)}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* System map: three groups on a rising line */
.sysmap{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);align-items:start}
.sysmap .gp-base{stroke:var(--c-rule-l)}
.sysmap .gp-line{stroke:var(--c-green-ink)}
.sys-node{position:relative;z-index:1;display:block;text-decoration:none;padding:var(--sp-6) 0 0;border-top:2px solid var(--c-ink);transition:border-color .25s}
.sys-node:nth-of-type(1){margin-top:calc(var(--stagger-svc) * 2)}.sys-node:nth-of-type(2){margin-top:var(--stagger-svc)}
.sys-node .gp-dot{position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:var(--r-round);background:var(--c-green-ink)}
.sys-node .n{display:block;font-size:var(--fs-small);color:var(--c-ink-2);font-weight:600;margin-bottom:var(--sp-2)}
.sys-node strong{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-h3);letter-spacing:-.02em;line-height:1.15}
.sys-node strong .arr{width:18px;height:18px;transition:transform .25s var(--ease)}
.sys-node p{margin-top:var(--sp-2);color:var(--c-ink-2);max-width:30ch}
.sys-node:hover{border-color:var(--c-green-ink)}
.sys-node:hover .arr{transform:translate(3px,3px) rotate(90deg)}

/* Service groups (Elementor: Container 2 columns, left column sticky) */
.grp-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--sp-col-gap)}
.grp-head{position:sticky;top:110px;align-self:start}
.grp-steps{display:flex;align-items:flex-end;gap:var(--sp-1);height:22px;margin-bottom:var(--sp-5)}
.grp-steps i{display:block;width:10px;background:var(--c-line-strong);border-radius:var(--r-xs)}
.grp-steps i:nth-child(1){height:8px}.grp-steps i:nth-child(2){height:14px}.grp-steps i:nth-child(3){height:22px}
.grp-steps i.on{background:var(--c-green)}
.on-light .grp-steps i{background:var(--c-rule-l)}
.on-light .grp-steps i.on{background:var(--c-green-ink)}
.grp-label{font-size:var(--fs-small);font-weight:700;margin-bottom:var(--sp-4)}
.on-dark .grp-label,.on-black .grp-label{color:var(--c-green)}
.on-light .grp-label{color:var(--c-green-ink)}
.grp-head .h2{max-width:14ch}
.grp-head .intro{margin-top:var(--sp-5)}
.grp-head .tlink{margin-top:var(--sp-8)}
.svc-rows{border-top:1px solid var(--c-rule-d)}
.on-light .svc-rows{border-color:var(--c-rule-l)}
.svc-row{display:grid;grid-template-columns:200px 1fr;gap:var(--sp-6);padding:var(--sp-8) 0;border-bottom:1px solid var(--c-rule-d);align-items:start;transition:transform .3s var(--ease)}
.on-light .svc-row{border-color:var(--c-rule-l)}
.svc-row:hover{transform:translateX(3px)}
.svc-viz{aspect-ratio:5/3;border-radius:var(--r-md);border:1px solid var(--c-rule-d);background:var(--c-panel);overflow:hidden;transition:border-color .3s}
.on-light .svc-viz{background:var(--c-white);border-color:var(--c-rule-l)}
.svc-viz svg{width:100%;height:100%}
.svc-row:hover .svc-viz{border-color:var(--c-green)}
.on-light .svc-row:hover .svc-viz{border-color:var(--c-green-ink)}
.svc-row h3{font-size:var(--fs-h3);margin-bottom:var(--sp-3)}
.row-link{text-decoration:none;display:inline-flex;align-items:center;gap:var(--sp-2)}
.row-link .arr{width:18px;height:18px;opacity:.5;transition:transform .25s var(--ease),opacity .25s}
.svc-row:hover .row-link .arr{opacity:1;transform:translate(3px,-3px)}
.on-dark .row-link:hover,.on-black .row-link:hover{color:var(--c-green)}
.on-light .row-link:hover{color:var(--c-green-ink)}
.svc-row p{max-width:44ch}
.on-dark .svc-row p,.on-black .svc-row p{color:var(--c-soft)}
.on-light .svc-row p{color:var(--c-ink-2)}

/* ==========================================================
   WORK PAGE
   ========================================================== */
.dir-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:end;margin-bottom:var(--sp-block)}
.cs-cols{display:grid;grid-template-columns:32px 170px minmax(0,1fr) 160px 120px 210px 24px;gap:var(--sp-6);align-items:center}
.cs-headrow{padding:0 var(--sp-3) var(--sp-3);border-bottom:2px solid var(--c-ink);font-size:var(--fs-small);font-weight:600;color:var(--c-ink-2)}
.cs-list li{border-bottom:1px solid var(--c-rule-l)}
.cs-row{padding:var(--sp-6) 0;text-decoration:none;color:var(--c-ink);transition:background-color .25s}
.cs-row:hover{background:var(--c-white)}
.cs-row .i{font-size:var(--fs-small);color:var(--c-ink-2);font-variant-numeric:tabular-nums}
.cs-row .ind{font-weight:700}
.cs-row .ind small{display:block;font-weight:500;font-size:var(--fs-micro);color:var(--c-ink-2);margin-top:var(--sp-1)}
.cs-row .sp svg{width:120px;height:36px}
.cs-row{padding-left:var(--sp-3);padding-right:var(--sp-3);border-radius:var(--r-md)}
.cs-row .ch{font-size:var(--fs-statement);font-weight:700;letter-spacing:-.02em;line-height:1.25}
.cs-row .chn{color:var(--c-ink-2);font-size:var(--fs-small)}
.cs-row .res strong{display:block;font-size:var(--fs-h2);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--c-green-ink)}
.cs-row .res small{display:block;margin-top:var(--sp-1);font-size:var(--fs-micro);color:var(--c-ink-2)}
.cs-row .go{width:20px;height:20px;transition:transform .25s var(--ease)}
.cs-row:hover .go{transform:translate(3px,-3px);color:var(--c-green-ink)}

/* Case study report layout */
.rep-top{border-bottom:2px solid var(--c-ink);padding-bottom:var(--sp-8);margin-bottom:var(--sp-10)}
.rep-kicker{font-size:var(--fs-small);font-weight:700;color:var(--c-green-ink);margin-bottom:var(--sp-4)}
.rep-title{font-size:var(--fs-h2);letter-spacing:-.03em;line-height:1.05;max-width:20ch}
.case-tabs{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-10);border-bottom:1px solid var(--c-rule-l)}
.case-tab{display:flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);font-weight:700;font-size:var(--fs-ui);color:var(--c-ink-2);border-bottom:3px solid transparent;margin-bottom:calc(var(--sp-half) * -.5);transition:color .2s,border-color .2s}
.case-tab span{font-size:var(--fs-micro);font-variant-numeric:tabular-nums}
.case-tab:hover{color:var(--c-ink)}
.case-tab[aria-selected="true"]{color:var(--c-ink);border-bottom-color:var(--c-green-ink)}
.case-panel[hidden]{display:none}
.case-panel{animation:rise .5s var(--ease)}
.glance{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-top:var(--sp-8)}
.gl{background:var(--c-dark);color:var(--c-white);border-radius:var(--r-lg);padding:var(--sp-6)}
.gl dt{font-size:var(--fs-small);color:var(--c-soft)}
.gl dd{margin:var(--sp-3) 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}
.gl .from{font-size:var(--fs-statement);color:var(--c-muted);text-decoration:line-through;text-decoration-thickness:1px}
.gl svg{width:16px;height:16px}
.gl .to{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--c-green)}
.gl .delta{margin-left:auto;background:var(--c-green-tint);color:var(--c-green)}
.delta{display:inline-block;padding:var(--sp-half) var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-small);font-weight:700;background:color-mix(in srgb,var(--c-green-ink) 10%,transparent);color:var(--c-green-ink);white-space:nowrap}
.delta.flat{background:var(--c-light);color:var(--c-ink-2)}
.pull{font-size:var(--fs-statement);font-weight:700;color:var(--c-ink);letter-spacing:-.02em;margin-bottom:var(--sp-3)}
.res-tbl th[scope="row"]{font-size:var(--fs-ui);color:var(--c-ink);border-bottom:1px solid var(--c-rule-l);font-weight:600}
.chart-top{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-3)}
.chart-top figcaption{margin:0;font-weight:600;color:var(--c-ink)}
.chart-key{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-micro);color:var(--c-ink-2)}
.chart-key i{width:16px;height:3px;background:var(--c-green-ink);border-radius:var(--r-xs)}
.chart svg{height:200px}
.chart-x{display:flex;justify-content:space-between;gap:var(--sp-2);margin-top:var(--sp-3)}
.chart-x li{text-align:center;font-size:var(--fs-micro);color:var(--c-ink-2);min-width:0}
.chart-x strong{display:block;color:var(--c-ink);font-size:var(--fs-small)}
.chart-x li:last-child strong{color:var(--c-green-ink)}
.rep-meta{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-10);margin-top:var(--sp-6)}
.rep-meta div{min-width:0}
.rep-meta dt{font-size:var(--fs-micro);color:var(--c-ink-2)}
.rep-meta dd{margin:0;font-weight:700}
.rep-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--sp-col-gap)}
.rep-body{min-width:0}
.rep-toc{position:sticky;top:110px;align-self:start}
.rep-toc ol{border-left:2px solid var(--c-rule-l)}
.rep-toc a{display:flex;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);margin-left:calc(var(--sp-half) * -1);border-left:2px solid transparent;color:var(--c-ink-2);text-decoration:none;font-size:var(--fs-small);transition:color .2s,border-color .2s}
.rep-toc a span{font-variant-numeric:tabular-nums}
.rep-toc a:hover,.rep-toc a.is-active{color:var(--c-ink);border-left-color:var(--c-green-ink);font-weight:600}
.rep-block{padding:0 0 var(--sp-10);margin-bottom:var(--sp-10);border-bottom:1px solid var(--c-rule-l)}
.rep-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.rep-block h4{display:flex;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-h3);margin-bottom:var(--sp-4)}
.rep-block h4 span{font-size:var(--fs-small);color:var(--c-green-ink);font-variant-numeric:tabular-nums}
.rep-block p,.rep-block li{color:var(--c-ink-2);max-width:62ch}
.rep-block ul,.rep-block ol.changes{display:grid;gap:var(--sp-3);margin-top:var(--sp-4)}
.rep-block ul li,.rep-block ol.changes li{position:relative;padding-left:var(--sp-6)}
.rep-block ul li::before{content:"";position:absolute;left:0;top:.7em;width:12px;height:2px;background:var(--c-green-ink)}
.rep-block ol.changes{counter-reset:c}
.rep-block ol.changes li::before{counter-increment:c;content:counter(c);position:absolute;left:0;top:0;font-weight:700;color:var(--c-green-ink)}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-top:var(--sp-4)}
.kpi{border:1px solid var(--c-rule-l);border-radius:var(--r-md);padding:var(--sp-5)}
.kpi dt{font-size:var(--fs-micro);color:var(--c-ink-2)}
.kpi dd{margin:var(--sp-2) 0 0;font-size:var(--fs-h3);font-weight:800;letter-spacing:-.03em}
.kpi dd small{display:block;font-size:var(--fs-micro);font-weight:500;color:var(--c-ink-2);letter-spacing:0}
.tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
.rep-block .tags{display:flex}
.rep-block .tags li{padding:var(--sp-1) var(--sp-3);border:1px solid var(--c-ink);border-radius:var(--r-sm);font-size:var(--fs-small);font-weight:600;color:var(--c-ink)}
.rep-block .tags li::before{display:none}
.tbl-wrap{overflow-x:auto;margin-top:var(--sp-4)}
.res-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-ui);min-width:420px}
.res-tbl th,.res-tbl td{text-align:left;padding:var(--sp-3) var(--sp-4) var(--sp-3) 0;border-bottom:1px solid var(--c-rule-l)}
.res-tbl th{font-size:var(--fs-small);color:var(--c-ink-2);font-weight:600;border-bottom:2px solid var(--c-ink)}
.chart{margin:var(--sp-6) 0 0;border:1px solid var(--c-rule-l);border-radius:var(--r-md);padding:var(--sp-4)}
.chart svg{width:100%}
.learning{margin:0;font-size:var(--fs-statement);font-weight:700;letter-spacing:-.02em;line-height:1.35;color:var(--c-ink);padding-left:var(--sp-6);border-left:3px solid var(--c-green-ink);max-width:40ch}
.rep-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-6);background:var(--c-dark);color:var(--c-white);border-radius:var(--r-lg);padding:var(--sp-card)}
.rep-cta p{color:var(--c-white);font-size:var(--fs-statement);font-weight:700;max-width:none}

/* ==========================================================
   INDUSTRIES PAGE
   ========================================================== */
.paths{display:grid;gap:var(--sp-3);background:var(--c-panel);border:1px solid var(--c-rule-d);border-radius:var(--r-lg);padding:var(--sp-6)}
.paths li{display:grid;grid-template-columns:150px 1fr;gap:var(--sp-4);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--c-rule-d)}
.paths li:last-child{border-bottom:0}
.paths span{font-size:var(--fs-small);font-weight:600;color:var(--c-soft)}
.paths svg{width:100%;height:56px}
.paths path{fill:none;stroke:var(--c-green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.6s var(--ease) forwards}
.paths li:nth-child(2) path{animation-delay:.25s}.paths li:nth-child(3) path{animation-delay:.5s}
.it-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
.it{position:relative;display:flex;flex-direction:column;background:var(--c-dark);color:var(--c-white);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;transition:transform .3s var(--ease)}
.it:hover{transform:translateY(-3px)}
.it::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--c-green);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.it:hover::after,.it:focus-visible::after{transform:scaleX(1)}
.it-media{aspect-ratio:4/3;overflow:hidden;background:var(--c-black)}
.it-media img,.it-media svg{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.it-media img{filter:grayscale(.2)}
.it:hover .it-media img,.it:hover .it-media svg{transform:scale(1.04)}
.it-body{padding:var(--sp-5) var(--sp-5) var(--sp-6);display:flex;flex-direction:column;flex:1}
.it-num{font-size:var(--fs-micro);color:var(--c-muted);font-variant-numeric:tabular-nums}
.it h3{font-size:var(--fs-h4);margin:var(--sp-2) 0 var(--sp-2)}
.it p{color:var(--c-soft);font-size:var(--fs-ui);line-height:1.5}
.it-go{margin-top:auto;padding-top:var(--sp-5);display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-small);color:var(--c-white)}
.it-go .arr{width:14px;height:14px;transition:transform .25s var(--ease)}
.it:hover .it-go .arr{transform:translate(3px,-3px);color:var(--c-green)}

/* ==========================================================
   PROCESS PAGE
   ========================================================== */
.steps{position:relative}
.steps .gp-base{stroke:var(--c-line-strong)}
.step{position:relative;display:grid;grid-template-columns:56px 140px 1fr 260px;gap:var(--sp-6);align-items:center;padding:var(--sp-10) 0;border-top:1px solid var(--c-rule-d)}
.step:last-child{border-bottom:1px solid var(--c-rule-d)}
.step .gp-dot{justify-self:center;width:14px;height:14px;border-radius:var(--r-round);background:var(--c-black);border:2px solid var(--c-line-strong);position:relative;z-index:1;transition:background-color .4s,border-color .4s,box-shadow .4s}
.step.lit .gp-dot{background:var(--c-green);border-color:var(--c-green);box-shadow:0 0 0 6px var(--c-green-tint)}
.step-num{font-size:var(--fs-num);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--c-muted);transition:color .4s;font-variant-numeric:tabular-nums}
.step.lit .step-num{color:var(--c-green)}
.step h3{font-size:var(--fs-h3);margin-bottom:var(--sp-2)}
.step p{color:var(--c-soft);max-width:46ch}
.meter{display:block;height:6px;border-radius:var(--r-sm);background:var(--c-line-faint);overflow:hidden}
.meter i{display:block;height:100%;background:var(--c-line-strong);transform-origin:left;transform:scaleX(0);transition:transform 1s var(--ease)}
.step.lit .meter i{transform:scaleX(1)}
.step:nth-child(1) .meter i{width:16%}.step:nth-child(2) .meter i{width:30%}.step:nth-child(3) .meter i{width:46%}
.step:nth-child(4) .meter i{width:62%}.step:nth-child(5) .meter i{width:80%}.step:nth-child(6) .meter i{width:100%;background:var(--c-green)}
.step:last-child .gp-dot{width:20px;height:20px}

/* ==========================================================
   ABOUT PAGE
   ========================================================== */
.ph-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--c-panel)}
.ph-frame img{width:100%;height:100%;object-fit:cover}
.ph-frame .corner{position:absolute;right:var(--sp-5);top:var(--sp-5);width:56px;height:56px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:start}
.prose p{color:var(--c-ink-2);max-width:56ch}
.on-dark .prose p,.on-black .prose p{color:var(--c-soft)}
.prose p + p{margin-top:var(--sp-5)}
.beliefs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 var(--sp-col-gap);margin-top:var(--sp-block)}
.beliefs li{padding:var(--sp-8) 0;border-top:1px solid var(--c-rule-d)}
.beliefs svg{width:28px;height:20px;margin-bottom:var(--sp-4)}
.beliefs h3{font-size:var(--fs-h3);margin-bottom:var(--sp-3);max-width:20ch}
.beliefs p{color:var(--c-soft);max-width:44ch}
.how-img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;background:var(--c-light)}
.how-img img{width:100%;height:100%;object-fit:cover}
.how-list{margin-top:var(--sp-8);border-top:1px solid var(--c-rule-l)}
.how-list div{padding:var(--sp-5) 0;border-bottom:1px solid var(--c-rule-l)}
.how-list dt{font-weight:700;font-size:var(--fs-body)}
.how-list dd{margin:var(--sp-1) 0 0;color:var(--c-ink-2)}
.how .tlink{margin-top:var(--sp-8)}
.reach{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-8);align-items:center;margin-top:var(--sp-block)}
.origin{display:flex;align-items:center;gap:var(--sp-3);font-weight:700;font-size:var(--fs-statement)}
.origin::before{content:"";width:14px;height:14px;border-radius:var(--r-round);background:var(--c-green);box-shadow:0 0 0 6px var(--c-green-tint)}
.routes{width:100%;height:220px}
.routes path{fill:none;stroke:var(--c-green);stroke-width:1.5;stroke-dasharray:4 6;opacity:.7}
.markets{display:grid;gap:var(--sp-6)}
.markets li{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-statement);font-weight:700}
.markets li::before{content:"";width:10px;height:10px;border-radius:var(--r-round);border:2px solid var(--c-green)}

/* ==========================================================
   CONTACT PAGE
   ========================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:start;position:relative;z-index:1}
.c-details{margin-top:var(--sp-10);border-top:1px solid var(--c-rule-d)}
.c-details div{display:grid;grid-template-columns:120px 1fr;gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--c-rule-d)}
.c-details dt{color:var(--c-muted);font-size:var(--fs-small)}
.c-details dd{margin:0;font-weight:600}
.c-details a{color:var(--c-white);text-decoration:none;border-bottom:1px solid var(--c-green)}
.c-details a:hover{color:var(--c-green)}
.form-card{background:var(--c-white);color:var(--c-ink);border-radius:var(--r-lg);padding:var(--sp-card);box-shadow:0 30px 60px -30px color-mix(in srgb,var(--c-shadow) 70%,transparent)}
.form-card h2{font-size:var(--fs-h3);margin-bottom:var(--sp-2)}
.form-card .note{color:var(--c-ink-2);font-size:var(--fs-small);margin-bottom:var(--sp-6)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}
.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4);min-width:0}
.field label{font-size:var(--fs-small);font-weight:600}
.field label .req{color:var(--c-green-ink)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:var(--fs-ui);color:var(--c-ink);background:var(--c-light);border:1px solid var(--c-rule-l);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);min-height:48px;transition:border-color .2s,background-color .2s}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--c-green-ink);outline-offset:1px;background:var(--c-white)}
.field [aria-invalid="true"]{border-color:var(--c-ink);outline:2px solid var(--c-ink)}
.field .err{font-size:var(--fs-micro);color:var(--c-ink);font-weight:600;display:none}
.field .err.show{display:block}
.form-card .btn{width:100%;justify-content:center;border:0;cursor:pointer;margin-top:var(--sp-2)}
.f-status{margin-top:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-sm);background:var(--c-light);border-left:3px solid var(--c-green-ink);font-size:var(--fs-small);color:var(--c-ink)}
.f-status[hidden]{display:none}
.next-h{margin-bottom:var(--sp-block)}
.where-intro{margin-top:var(--sp-5)}
.next-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-col-gap);counter-reset:n}
.next-steps li{position:relative;padding-top:var(--sp-10);border-top:2px solid var(--c-ink)}
.next-steps li::before{counter-increment:n;content:"0" counter(n);position:absolute;top:var(--sp-4);left:0;font-size:var(--fs-small);font-weight:700;color:var(--c-green-ink)}
.next-steps h3{font-size:var(--fs-h4);margin-bottom:var(--sp-2)}
.next-steps p{color:var(--c-ink-2)}

/* ==========================================================
   INNER PAGES — responsive
   ========================================================== */
@media (max-width:1180px){
  .it-grid{grid-template-columns:repeat(2,1fr)}
  .cs-headrow{display:none}
  .cs-cols{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"ind go" "ch ch" "res sp" "chn chn";row-gap:var(--sp-3)}
  .cs-row .i{display:none}.cs-row .ind{grid-area:ind}.cs-row .ch{grid-area:ch}.cs-row .chn{grid-area:chn}.cs-row .res{grid-area:res}.cs-row .sp{grid-area:sp;align-self:end}.cs-row .go{grid-area:go}
  .step{grid-template-columns:48px 110px 1fr 200px}
}
@media (max-width:1024px){
  .phero-grid,.sec-head,.grp-grid,.two-col,.contact-grid,.rep-grid{grid-template-columns:minmax(0,1fr)}
  .grp-head,.rep-toc{position:static}
  .rep-toc{display:none}
  .sysmap{grid-template-columns:1fr;gap:var(--sp-8)}
  .sys-node:nth-of-type(n){margin-top:0}
  .reach{grid-template-columns:1fr;gap:var(--sp-6)}
  .routes{display:none}
  .dir-head{grid-template-columns:1fr}
  .glance{grid-template-columns:1fr}
  .case-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:0;gap:0}
  .case-tab{border-bottom:1px solid var(--c-rule-l);margin-bottom:0;padding:var(--sp-3);font-size:var(--fs-small);text-align:left;justify-content:flex-start}
  .case-tab[aria-selected="true"]{border-bottom:3px solid var(--c-green-ink)}
  .step{grid-template-columns:40px 1fr;grid-template-areas:"dot num" "dot body" "dot meter";row-gap:var(--sp-3);align-items:start}
  .step .gp-dot{grid-area:dot;margin-top:var(--sp-3)}
  .step-num{grid-area:num;font-size:var(--fs-h3)}
  .step-body{grid-area:body}
  .meter{grid-area:meter;max-width:360px}
  .ph-frame{aspect-ratio:16/10}
}
@media (max-width:767px){
  .beliefs,.next-steps{grid-template-columns:1fr}
  .next-steps{gap:var(--sp-8)}
  .kpis{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr;gap:0}
  .svc-row{grid-template-columns:1fr;gap:var(--sp-4)}
  .svc-viz{aspect-ratio:16/7}
  .paths li{grid-template-columns:1fr;gap:var(--sp-1)}
  .phero .hero-ctas .btn{width:100%;justify-content:center}
  .c-details div{grid-template-columns:1fr;gap:var(--sp-1)}
  .rep-cta .btn{width:100%;justify-content:center}
}
@media (max-width:600px){
  .it-grid{grid-template-columns:1fr}
  .climb{padding:var(--sp-6) var(--sp-5)}
  .climb ol{grid-template-columns:1fr;height:auto;gap:var(--sp-4)}
  .climb li{grid-template-rows:none;grid-template-columns:96px 1fr;align-items:center;gap:var(--sp-3)}
  .climb .lbl{order:-1;margin:0;text-align:left}
  .climb .bw{height:14px;align-items:stretch}
  .climb .bar{height:100%!important;border-radius:0 var(--r-sm) var(--r-sm) 0;transform-origin:left}
  .climb li:nth-child(1) .bar{width:18%}.climb li:nth-child(2) .bar{width:34%}.climb li:nth-child(3) .bar{width:50%}.climb li:nth-child(4) .bar{width:68%}.climb li:nth-child(5) .bar{width:92%;box-shadow:inset -2px 0 0 var(--c-green)}
  .climb .gp-dot{top:50%;left:100%}
  @keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}

/* WordPress admin bar offset */
body.admin-bar .site-header{top:32px}@media (max-width:782px){body.admin-bar .site-header{top:46px}}

/* ==========================================================
   HOMEPAGE HERO: FREE GROWTH AUDIT FORM
   ========================================================== */
.hero-form-wrap{justify-self:end;width:100%;max-width:520px}
.hero-form{position:relative;background:var(--c-panel);color:var(--c-white);border:1px solid var(--c-rule-d);border-radius:var(--r-lg);padding:var(--sp-8);box-shadow:0 40px 80px -40px color-mix(in srgb,var(--c-shadow) 90%,transparent);overflow:hidden;animation:rise .6s .15s var(--ease) both}
.hero-form::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--c-green),color-mix(in srgb,var(--c-green) 20%,transparent))}
.hf-kicker{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-micro);font-weight:700;color:var(--c-green);margin-bottom:var(--sp-3)}
.hf-dot{width:8px;height:8px;border-radius:var(--r-round);background:var(--c-green);box-shadow:0 0 0 4px var(--c-green-tint);animation:pulse-live 1.8s ease-out infinite}
@keyframes pulse-live{0%{box-shadow:0 0 0 0 var(--c-green-tint)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hf-title{font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.025em;color:var(--c-white);margin-bottom:var(--sp-2)}
.hf-sub{font-size:var(--fs-small);color:var(--c-soft);line-height:1.5;margin-bottom:var(--sp-6)}
.hero-form .f-row{gap:var(--sp-3)}
.hero-form .field{margin-bottom:var(--sp-3);gap:var(--sp-1)}
.hero-form .field label{font-size:var(--fs-micro);font-weight:600;color:var(--c-soft)}
.hero-form .field label .req{color:var(--c-green)}
.hero-form .field input,.hero-form .field select{color-scheme:dark;background:var(--c-black);border:1px solid var(--c-line-strong);color:var(--c-white);min-height:46px;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-small)}
.hero-form .field input::placeholder{color:var(--c-muted)}
.hero-form .field input:hover,.hero-form .field select:hover{border-color:var(--c-muted)}
.hero-form .field input:focus,.hero-form .field select:focus{outline:none;border-color:var(--c-green);box-shadow:0 0 0 3px var(--c-green-tint);background:var(--c-black)}
.hero-form .field [aria-invalid="true"]{border-color:var(--c-white);outline:none;box-shadow:0 0 0 3px var(--c-line-strong)}
.hero-form .field .err{color:var(--c-white)}
.hero-form .hf-btn{width:100%;justify-content:center;border:0;cursor:pointer;margin-top:var(--sp-2);min-height:52px}
.hero-form .hf-btn:disabled{opacity:.6;cursor:wait;transform:none}
.hf-trust{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin-top:var(--sp-4);font-size:var(--fs-micro);color:var(--c-muted)}
.hf-trust li{display:flex;align-items:center;gap:var(--sp-2)}
.hf-trust li::before{content:"";width:12px;height:7px;border-left:2px solid var(--c-green);border-bottom:2px solid var(--c-green);transform:rotate(-45deg) translateY(-2px)}
.hero-form .f-status{background:var(--c-black);color:var(--c-white);border-left-color:var(--c-green)}
@media (max-width:1024px){.hero-form-wrap{justify-self:stretch;max-width:none}}
@media (max-width:767px){.hero-form{padding:var(--sp-6) var(--sp-5)}.hero-form .f-row{grid-template-columns:1fr;gap:0}}
@media (min-width:1025px){.hero .hero-ctas .btn-primary{display:none}}
/* ==========================================================
   HOMEPAGE v1.1: AGENCY SECTIONS
   ========================================================== */
/* Channels + markets strip */
.trust-strip{background:var(--c-black);border-top:1px solid var(--c-rule-d);border-bottom:1px solid var(--c-rule-d);padding:var(--sp-6) 0}
.ts-grid{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}
.ts-block{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap}
.ts-label{font-size:var(--fs-micro);font-weight:600;color:var(--c-muted);white-space:nowrap}
.ts-list{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6)}
.ts-list li{font-size:var(--fs-ui);font-weight:700;color:var(--c-white);letter-spacing:-.01em;display:flex;align-items:center;gap:var(--sp-6)}
.ts-list li:not(:last-child)::after{content:"";width:4px;height:4px;border-radius:var(--r-round);background:var(--c-green)}
/* Services grid */
.svc-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-col-gap);align-items:end;margin-bottom:var(--sp-block)}
.svc-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}
.svc-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-6);background:var(--c-light);border:1px solid var(--c-rule-l);border-radius:var(--r-lg);text-decoration:none;color:var(--c-ink);transition:transform .3s var(--ease),border-color .3s,box-shadow .3s,background-color .3s}
.svc-card:hover{transform:translateY(-4px);border-color:var(--c-green-ink);background:var(--c-white);box-shadow:0 24px 48px -28px color-mix(in srgb,var(--c-shadow) 35%,transparent)}
.svc-ic{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--c-dark);color:var(--c-green);margin-bottom:var(--sp-3);transition:background-color .3s,color .3s}
.svc-ic svg{width:24px;height:24px}
.svc-card:hover .svc-ic{background:var(--c-green);color:var(--c-black)}
.svc-tag{font-size:var(--fs-micro);font-weight:700;color:var(--c-green-ink)}
.svc-card h3{font-size:var(--fs-h4);letter-spacing:-.02em;line-height:1.2}
.svc-card p{color:var(--c-ink-2);font-size:var(--fs-ui);line-height:1.5}
.svc-go{margin-top:auto;padding-top:var(--sp-4);display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--fs-small)}
.svc-go .arr{width:14px;height:14px;transition:transform .25s var(--ease)}
.svc-card:hover .svc-go{color:var(--c-green-ink)}
.svc-card:hover .svc-go .arr{transform:translate(3px,-3px)}
.svc-foot{margin-top:var(--sp-10)}
/* Why ROAS Scalers */
.why-grid-h{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--sp-col-gap-lg);align-items:center}
.why-photo{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--c-dark)}
.why-photo img{width:100%;height:100%;object-fit:cover}
.why-photo::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c-green)}
.why-badge{position:absolute;left:var(--sp-5);right:var(--sp-5);bottom:var(--sp-5);display:grid;gap:var(--sp-1);background:color-mix(in srgb,var(--c-black) 92%,transparent);border:1px solid var(--c-rule-d);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);color:var(--c-white)}
.why-badge strong{font-size:var(--fs-ui)}
.why-badge span{font-size:var(--fs-small);color:var(--c-soft)}
.why-kicker{font-size:var(--fs-small);font-weight:700;color:var(--c-green-ink);margin-bottom:var(--sp-4)}
.why-intro{margin-top:var(--sp-5)}
.why-points{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6) var(--sp-8);margin-top:var(--sp-10)}
.why-points li{display:grid;grid-template-columns:36px 1fr;gap:var(--sp-3);align-items:start}
.why-ic{width:36px;height:36px;border-radius:var(--r-round);background:var(--c-green-tint);position:relative}
.why-ic::after{content:"";position:absolute;left:12px;top:11px;width:12px;height:7px;border-left:2.5px solid var(--c-green-ink);border-bottom:2.5px solid var(--c-green-ink);transform:rotate(-45deg)}
.why-points h3{font-size:var(--fs-ui);font-weight:700;margin-bottom:var(--sp-1);letter-spacing:-.01em}
.why-points p{font-size:var(--fs-small);color:var(--c-ink-2);line-height:1.55}
.why-links{display:flex;flex-wrap:wrap;gap:var(--sp-8);margin-top:var(--sp-10)}
/* Homepage FAQ */
.hfaq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--sp-col-gap);align-items:start}
.hfaq-intro{margin-top:var(--sp-5)}
.hfaq-cta{margin-top:var(--sp-6)}
.hfaq{border-top:2px solid var(--c-ink)}
.hfaq-item{border-bottom:1px solid var(--c-rule-l)}
.hfaq-item summary{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-5) 0;cursor:pointer;list-style:none}
.hfaq-item summary::-webkit-details-marker{display:none}
.hfaq-item summary h3{font-size:var(--fs-body);font-weight:700;letter-spacing:-.01em;line-height:1.35}
.hfaq-item summary:hover h3{color:var(--c-green-ink)}
.hfaq-i{position:relative;flex:none;width:28px;height:28px;border-radius:var(--r-round);border:1px solid var(--c-rule-l);transition:background-color .25s,border-color .25s}
.hfaq-i::before,.hfaq-i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:var(--c-ink);transform:translate(-50%,-50%);transition:transform .25s var(--ease)}
.hfaq-i::after{transform:translate(-50%,-50%) rotate(90deg)}
.hfaq-item[open] .hfaq-i{background:var(--c-green);border-color:var(--c-green)}
.hfaq-item[open] .hfaq-i::after{transform:translate(-50%,-50%) rotate(0)}
.hfaq-a{padding:0 var(--sp-12) var(--sp-6) 0}
.hfaq-a p{color:var(--c-ink-2)}
@media (max-width:1180px){.svc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1024px){.svc-head,.why-grid-h,.hfaq-grid{grid-template-columns:minmax(0,1fr)}.why-photo{aspect-ratio:16/10}.ts-grid{flex-direction:column;align-items:flex-start;gap:var(--sp-4)}}
@media (max-width:767px){.svc-cards,.why-points{grid-template-columns:1fr}.hfaq-a{padding-right:0}.ts-list li{font-size:var(--fs-small);gap:var(--sp-4)}.ts-list{gap:var(--sp-2) var(--sp-4)}}

/* ==========================================================
   WPFORMS: styled to match the site (WPForms styling is off)
   ========================================================== */
.form-card .wpforms-container{margin:0}
.form-card .wpforms-field-container{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-3)}
.form-card .wpforms-field{display:flex;flex-direction:column;gap:var(--sp-1);margin:0 0 var(--sp-3);padding:0;min-width:0}
.form-card .wpforms-field.rsx-full{grid-column:1/-1}
.form-card .wpforms-field-hp,.form-card .wpforms-hidden,.form-card .wpforms-field-hidden,.form-card .wpforms-screen-reader-element{display:none!important}
.form-card .wpforms-field-label{font-size:var(--fs-small);font-weight:600;color:var(--c-ink);margin:0}
.form-card .wpforms-required-label{color:var(--c-green-ink);margin-left:2px}
.form-card .wpforms-field input,.form-card .wpforms-field select,.form-card .wpforms-field textarea{width:100%;max-width:100%;font:inherit;font-size:var(--fs-ui);color:var(--c-ink);background:var(--c-light);border:1px solid var(--c-rule-l);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);min-height:48px;transition:border-color .2s,background-color .2s,box-shadow .2s}
.form-card .wpforms-field textarea{min-height:120px;resize:vertical}
.form-card .wpforms-field input:focus,.form-card .wpforms-field select:focus,.form-card .wpforms-field textarea:focus{outline:2px solid var(--c-green-ink);outline-offset:1px;background:var(--c-white)}
.form-card .wpforms-field input.wpforms-error,.form-card .wpforms-field select.wpforms-error{border-color:var(--c-ink);outline:2px solid var(--c-ink)}
.form-card em.wpforms-error,.form-card label.wpforms-error{font-style:normal;font-size:var(--fs-micro);font-weight:600;color:var(--c-ink);display:block}
.form-card .wpforms-submit-container{margin-top:var(--sp-2);padding:0;position:relative}
.form-card .wpforms-submit{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-6);border:0;border-radius:var(--r-sm);background:var(--c-green);color:var(--c-black);font:inherit;font-size:var(--fs-ui);font-weight:700;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s}
.form-card .wpforms-submit:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px color-mix(in srgb,var(--c-green) 55%,transparent)}
.form-card .wpforms-submit:disabled{opacity:.6;cursor:wait;transform:none}
.form-card .wpforms-submit-spinner{position:absolute;right:var(--sp-4);top:50%;width:20px;height:20px;margin-top:-10px}
.form-card .wpforms-confirmation-container-full{background:var(--c-light);border-left:3px solid var(--c-green-ink);border-radius:var(--r-sm);padding:var(--sp-5);color:var(--c-ink);font-size:var(--fs-small)}
.form-card .wpforms-error-container,.form-card .wpforms-error-noscript{color:var(--c-ink);font-size:var(--fs-small);margin-bottom:var(--sp-3)}
/* dark variant: homepage hero card */
.hero-form .wpforms-field-label{font-size:var(--fs-micro);color:var(--c-soft)}
.hero-form .wpforms-required-label{color:var(--c-green)}
.hero-form .wpforms-field input,.hero-form .wpforms-field select{color-scheme:dark;background:var(--c-black);border:1px solid var(--c-line-strong);color:var(--c-white);min-height:46px;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-small)}
.hero-form .wpforms-field input::placeholder{color:var(--c-muted)}
.hero-form .wpforms-field input:hover,.hero-form .wpforms-field select:hover{border-color:var(--c-muted)}
.hero-form .wpforms-field input:focus,.hero-form .wpforms-field select:focus{outline:none;border-color:var(--c-green);box-shadow:0 0 0 3px var(--c-green-tint);background:var(--c-black)}
.hero-form .wpforms-field input.wpforms-error,.hero-form .wpforms-field select.wpforms-error{border-color:var(--c-white);outline:none;box-shadow:0 0 0 3px var(--c-line-strong)}
.hero-form em.wpforms-error,.hero-form label.wpforms-error,.hero-form .wpforms-error-container{color:var(--c-white)}
.hero-form .wpforms-confirmation-container-full{background:var(--c-black);color:var(--c-white);border-left-color:var(--c-green)}
@media (max-width:767px){.form-card .wpforms-field-container{grid-template-columns:1fr}}
.form-card .wpforms-confirmation-container{background:var(--c-light);border-left:3px solid var(--c-green-ink);border-radius:var(--r-sm);padding:var(--sp-5);color:var(--c-ink);font-size:var(--fs-small)}
.hero-form .wpforms-confirmation-container{background:var(--c-black);color:var(--c-white);border-left-color:var(--c-green)}

/* ==========================================================
   HOMEPAGE v1.2: platform logos, problem cards, select chevrons
   ========================================================== */
.trust-strip{background:var(--c-black);border-top:1px solid var(--c-rule-d);border-bottom:1px solid var(--c-rule-d);padding:var(--sp-10) 0 var(--sp-8)}
.trust-strip .ts-label{text-align:center;font-size:var(--fs-micro);font-weight:600;color:var(--c-muted);letter-spacing:.04em;margin-bottom:var(--sp-6)}
.ts-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-6) var(--sp-8);max-width:1000px;margin:0 auto}
.ts-logos li{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);color:var(--c-white);opacity:.72;transition:opacity .25s,transform .25s var(--ease)}
.ts-logos li:hover{opacity:1;transform:translateY(-2px)}
.ts-logos svg{width:26px;height:26px;fill:currentColor;flex:none}
.ts-logos span{font-size:var(--fs-ui);font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.ts-markets{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);margin-top:var(--sp-8);padding-top:var(--sp-6);border-top:1px solid var(--c-rule-d)}
.ts-mk-label{font-size:var(--fs-small);color:var(--c-muted)}
.ts-markets ul{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.ts-markets li{font-size:var(--fs-small);font-weight:600;color:var(--c-white);padding:var(--sp-1) var(--sp-3);border:1px solid var(--c-line-strong);border-radius:999px}
/* problem section: cards */
.prob2-head{margin-bottom:var(--sp-block)}
.prob2-head .h2{max-width:14ch;font-weight:800}
.prob2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}
.prob2-grid li{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);background:var(--c-white);border:1px solid var(--c-rule-l);border-radius:var(--r-lg);padding:var(--sp-6) var(--sp-6) var(--sp-8);transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.prob2-grid li::after{content:"";position:absolute;left:var(--sp-6);right:var(--sp-6);bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--c-green-ink);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.prob2-grid li:hover{transform:translateY(-4px);border-color:var(--c-green-ink);box-shadow:0 24px 48px -28px color-mix(in srgb,var(--c-shadow) 35%,transparent)}
.prob2-grid li:hover::after{transform:scaleX(1)}
.p2-num{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background:var(--c-dark);color:var(--c-green);font-weight:800;font-size:var(--fs-small);font-variant-numeric:tabular-nums;margin-bottom:var(--sp-2)}
.prob2-grid h3{font-size:var(--fs-h4);letter-spacing:-.02em;line-height:1.2}
.prob2-grid p{color:var(--c-ink-2);font-size:var(--fs-ui);line-height:1.55}
.prob2-close{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-6);flex-wrap:wrap;margin-top:var(--sp-6);background:var(--c-dark);color:var(--c-white);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-card)}
.prob2-close p{font-size:var(--fs-statement);font-weight:700;letter-spacing:-.02em;line-height:1.3;max-width:34ch}
.prob2-close .tlink{color:var(--c-white)}
.prob2-close .tlink:hover{color:var(--c-green)}
/* dropdown chevrons with proper spacing */
.form-card select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:44px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 16px center!important;background-size:14px 14px!important;cursor:pointer}
.hero-form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
.form-card select::-ms-expand{display:none}
@media (max-width:1180px){.prob2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.prob2-grid{grid-template-columns:1fr}.ts-logos{grid-template-columns:1fr 1fr;gap:var(--sp-5) var(--sp-4)}.ts-logos li{justify-content:flex-start}.prob2-close{flex-direction:column;align-items:flex-start}}
