:root{
  --bg:#0B0B0B;
  --bg-2:#141414;
  --card:#1B1B1B;
  --border:#262626;
  --gold:#FFD400;
  --white:#FFFFFF;
  --gray:#9A9A9A;
  --gray-light:#C9C9C9;
  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Helvetica Neue', Arial, sans-serif; background:var(--bg); color:var(--white); overflow-x:hidden;}
a{color:inherit; text-decoration:none;}
img{max-width:100%;}

/* cursor ring */
.cursor-ring{
  position:fixed; top:0; left:0; width:30px; height:30px; border:1.5px solid var(--gold);
  border-radius:50%; pointer-events:none; z-index:100; opacity:0;
  transition:width 200ms var(--ease-out), height 200ms var(--ease-out), opacity 300ms ease;
  will-change:transform;
}
.cursor-ring.big{width:52px; height:52px;}

/* header */
header.site{
  background:rgba(0,0,0,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 48px; position:sticky; top:0; z-index:50; border-bottom:1px solid var(--border);
}
header.site img{height:30px; filter:invert(1); display:block;}
header.site nav{display:flex; gap:32px;}
header.site nav a{color:#EDEDED; font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase; position:relative; padding-bottom:3px;}
header.site nav a::after{
  content:''; position:absolute; left:0; bottom:0; height:2px; width:100%;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform 200ms var(--ease-out);
}
header.site nav a.current::after{transform:scaleX(1);}
@media (hover:hover) and (pointer:fine){
  header.site nav a:hover::after{transform:scaleX(1);}
}

/* whatsapp fab */
.whatsapp-fab{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:56px; height:56px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,.45);
  transition:transform 160ms var(--ease-out);
}
.whatsapp-fab:active{transform:scale(0.94);}
@media (hover:hover) and (pointer:fine){ .whatsapp-fab:hover{transform:scale(1.06);} }
.whatsapp-fab svg{width:28px; height:28px; fill:#fff;}

/* hero (home) */
.hero{padding:120px 48px 80px; position:relative; overflow:hidden;}
.hero::before{
  content:''; position:absolute; top:-220px; right:-220px; width:640px; height:640px;
  background:radial-gradient(circle, rgba(255,212,0,.13) 0%, transparent 70%);
  animation:pulse 7s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.7;} 50%{opacity:1;}}
.hero .kicker, .hero h1 .line, .hero .sub, .hero .cta-row{
  opacity:0; transform:translateY(22px); filter:blur(8px);
  animation:rise 650ms var(--ease-out) forwards;
}
.hero .kicker{animation-delay:60ms;}
.hero h1 .line{display:block;}
.hero h1 .line:nth-child(1){animation-delay:150ms;}
.hero h1 .line:nth-child(2){animation-delay:260ms;}
.hero .sub{animation-delay:390ms;}
.hero .cta-row{animation-delay:500ms;}
@keyframes rise{to{opacity:1; transform:translateY(0); filter:blur(0);}}
.hero .kicker{color:var(--gold); font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase;}
.hero h1{font-weight:800; font-size:clamp(40px,6vw,80px); line-height:1.02; max-width:920px; margin-top:18px; letter-spacing:-1px;}
.hero h1 .hl{color:var(--gold);}
.hero .sub{max-width:560px; margin-top:22px; font-size:16px; line-height:1.7; color:var(--gray-light); font-weight:300;}
.hero .cta-row{display:flex; gap:16px; margin-top:36px;}

/* inner page hero */
.page-hero{padding:88px 48px 48px;}
.page-hero .kicker{color:var(--gold); font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase;}
.page-hero h1{font-weight:800; font-size:clamp(32px,4.5vw,56px); letter-spacing:-0.8px; margin-top:10px; line-height:1.05;}
.page-hero .sub{max-width:620px; margin-top:16px; font-size:15px; line-height:1.7; color:var(--gray-light); font-weight:300;}

/* buttons */
.btn-primary{
  background:var(--gold); color:#000; font-weight:700; font-size:13px; letter-spacing:1px;
  text-transform:uppercase; padding:15px 30px; display:inline-block; border:none; cursor:pointer;
  transition:transform 160ms var(--ease-out), background 200ms ease;
}
.btn-primary:active{transform:scale(0.97);}
@media (hover:hover) and (pointer:fine){ .btn-primary:hover{background:#fff;} }
.btn-ghost{
  border:1.5px solid #444; color:#fff; font-weight:700; font-size:13px; letter-spacing:1px;
  text-transform:uppercase; padding:14px 28px; display:inline-block; background:transparent; cursor:pointer;
  transition:transform 160ms var(--ease-out), border-color 200ms ease, color 200ms ease;
}
.btn-ghost:active{transform:scale(0.97);}
@media (hover:hover) and (pointer:fine){ .btn-ghost:hover{border-color:var(--gold); color:var(--gold);} }

/* marquee */
.marquee{border-top:1px solid var(--border); border-bottom:1px solid var(--border); overflow:hidden; padding:18px 0; background:var(--bg-2);}
.marquee-track{display:flex; gap:64px; width:max-content; animation:scroll 32s linear infinite;}
.marquee-track span{font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#858585; white-space:nowrap;}
@keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* stats */
.stats{display:grid; grid-template-columns:repeat(4,1fr);}
.stats > div{text-align:center; padding:34px 12px; border-right:1px solid var(--border);}
.stats > div:last-child{border-right:none;}
.stats .num{font-weight:800; font-size:32px; color:var(--gold); font-variant-numeric:tabular-nums;}
.stats .label{font-weight:400; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; margin-top:4px; color:var(--gray);}

/* sections */
.section{padding:72px 48px;}
.section-head{margin-bottom:28px;}
.section-head .num-label{color:var(--gold); font-size:12px; font-weight:700; letter-spacing:2px;}
.section-head h2{font-weight:800; font-size:28px; letter-spacing:-0.3px; margin-top:6px; display:inline-block;}
.section-head .rule{
  height:3px; width:64px; background:var(--gold); margin-top:10px;
  transform:scaleX(0); transform-origin:left;
  transition:transform 500ms var(--ease-out) 250ms;
}
.section-head.in .rule{transform:scaleX(1);}
.section-head p{color:var(--gray); font-size:14px; margin-top:10px; font-weight:300;}
.section-head .view-all{font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray-light); border-bottom:2px solid var(--gold); padding-bottom:2px;}

/* reveals */
.reveal{opacity:0; transform:translateY(18px); transition:opacity 600ms var(--ease-out), transform 600ms var(--ease-out);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-clip{clip-path:inset(0 0 100% 0); transition:clip-path 700ms var(--ease-in-out);}
.reveal-clip.in{clip-path:inset(0 0 0 0);}

/* filters */
.filters{display:flex; flex-direction:column; gap:12px; margin-bottom:8px;}
.filter-row{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.filter-row .fr-label{font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray); width:80px; flex-shrink:0;}
.filter-row .pill-wrap{display:flex; flex-wrap:wrap; gap:8px;}
.pill{
  border:1px solid var(--border); background:var(--card); color:#DDD;
  padding:7px 16px; font-size:12px; font-weight:600; letter-spacing:.5px;
  cursor:pointer; border-radius:2px; font-family:inherit;
  transition:transform 120ms var(--ease-out), background 150ms ease, color 150ms ease, border-color 150ms ease;
}
.pill:active{transform:scale(0.95);}
@media (hover:hover) and (pointer:fine){ .pill:hover{border-color:var(--gold);} }
.pill.active{background:var(--gold); color:#000; border-color:var(--gold);}
.result-count{font-size:12px; color:var(--gray); margin-top:10px; font-variant-numeric:tabular-nums;}

/* project grid */
.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:20px;}
@media (max-width:1000px){ .grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:700px){ .grid{grid-template-columns:repeat(2,1fr);} }
.pcard{
  position:relative; aspect-ratio:1/1; overflow:hidden; background:#111; cursor:pointer; display:block;
  opacity:1;
  transition:opacity 240ms var(--ease-out), transform 240ms var(--ease-out);
  will-change:transform;
}
.pcard.leaving{opacity:0; transform:scale(0.96); pointer-events:none; transition-duration:160ms;}
.pcard.entering{opacity:0; transform:scale(0.96);}
.pcard img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 500ms var(--ease-out);}
.pcard .noimg{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  background:var(--card); color:#6A6A6A; font-weight:800; font-size:34px; letter-spacing:-1px;
}
@media (hover:hover) and (pointer:fine){
  .pcard:hover img{transform:scale(1.06);}
  .pcard:hover .overlay{opacity:1;}
  .pcard .overlay{opacity:.92; transition:opacity 250ms ease;}
}
.pcard .overlay{position:absolute; inset:0; background:linear-gradient(180deg, transparent 42%, rgba(0,0,0,.92) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:16px;}
.pcard .tags{display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap;}
.pcard .tag{background:var(--gold); color:#000; font-size:9px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; padding:3px 8px;}
.pcard .title{font-size:15px; font-weight:700; color:#fff;}

/* case study */
.case{padding:72px 48px; max-width:1100px;}
.case .crumb{font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gray);}
.case .crumb a{color:var(--gold);}
.case h1{font-weight:800; font-size:clamp(34px,5vw,60px); letter-spacing:-1px; margin-top:14px; line-height:1.03;}
.case .tags{display:flex; gap:8px; margin-top:18px; flex-wrap:wrap;}
.case .tag{border:1px solid var(--border); color:var(--gray-light); font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:5px 12px;}
.case .tag.sector{background:var(--gold); color:#000; border-color:var(--gold);}
.case .body-copy{margin-top:36px; max-width:680px; font-size:16px; font-weight:300; line-height:1.85; color:var(--gray-light);}
.case .body-copy p{margin-bottom:1.2em;}
.case .body-copy strong{color:#fff; font-weight:600;}
.gallery{display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-top:48px;}
.gallery img{width:100%; display:block; background:#111;}
.gallery img.wide{grid-column:1 / -1;}
@media (max-width:700px){ .gallery{grid-template-columns:1fr;} }
.no-media{color:#5a5a5a; font-size:13px; margin-top:40px; border:1px dashed var(--border); padding:24px; text-align:center;}
.case-nav{display:flex; justify-content:space-between; margin-top:64px; padding-top:24px; border-top:1px solid var(--border); font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase;}
.case-nav a{color:var(--gray-light);}
@media (hover:hover) and (pointer:fine){ .case-nav a:hover{color:var(--gold);} }

/* CTA band */
.cta-band{
  margin:72px 48px 0; padding:56px 48px; background:var(--gold); color:#000;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px;
}
.cta-band h3{font-weight:800; font-size:26px; letter-spacing:-0.4px;}
.cta-band p{font-size:14px; margin-top:6px; font-weight:500;}
.cta-band .btn-dark{
  background:#000; color:var(--gold); font-weight:700; font-size:13px; letter-spacing:1px;
  text-transform:uppercase; padding:15px 30px; display:inline-block;
  transition:transform 160ms var(--ease-out);
}
.cta-band .btn-dark:active{transform:scale(0.97);}
@media (hover:hover) and (pointer:fine){ .cta-band .btn-dark:hover{transform:scale(1.03);} }

/* sector pills band */
.sectors-band{display:flex; flex-wrap:wrap; gap:10px;}
.sector-pill{border:1.5px solid #3a3a3a; color:#ddd; padding:9px 20px; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; transition:background .15s, color .15s, border-color .15s;}
@media (hover:hover) and (pointer:fine){ .sector-pill:hover{background:var(--gold); border-color:var(--gold); color:#000;} }

/* showreel */
.showreel{
  background:var(--bg-2); margin:0 48px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  padding:80px 24px; text-align:center;
}
.showreel .play{
  width:76px; height:76px; border-radius:50%; border:2px solid var(--gold);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
  cursor:pointer; transition:transform 180ms var(--ease-out), background 200ms ease;
}
.showreel .play:active{transform:scale(0.94);}
@media (hover:hover) and (pointer:fine){ .showreel .play:hover{transform:scale(1.08); background:rgba(255,212,0,.08);} }
.showreel .play svg{width:24px; height:24px; fill:var(--gold); margin-left:4px;}
.showreel h3{font-size:22px; font-weight:700;}
.showreel p{color:var(--gray); font-size:13px; margin-top:8px;}

/* forms */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:760px; margin-top:32px;}
.form-grid .full{grid-column:1 / -1;}
@media (max-width:700px){ .form-grid{grid-template-columns:1fr;} }
.field label{display:block; font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gray); margin-bottom:8px;}
.field input, .field select, .field textarea{
  width:100%; background:var(--card); border:1px solid var(--border); color:#fff;
  padding:13px 14px; font-size:14px; font-family:inherit; border-radius:2px;
  transition:border-color 150ms ease;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--gold);}
.field textarea{min-height:120px; resize:vertical;}

/* footer */
footer.site{background:#000; padding:36px 48px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; border-top:1px solid var(--border); margin-top:72px;}
footer.site .addr{font-size:12px; font-weight:300; line-height:1.8; color:var(--gray);}
footer.site .brand-name{font-weight:700; font-size:13px; color:#fff;}
footer.site .social{display:flex; gap:14px; font-size:12px; font-weight:600; color:var(--gray);}
@media (hover:hover) and (pointer:fine){ footer.site .social a:hover{color:var(--gold);} }

@media (max-width:700px){
  header.site{padding:14px 20px;}
  header.site nav{gap:16px;}
  .hero, .page-hero, .section, .case{padding-left:20px; padding-right:20px;}
  .showreel, .cta-band{margin-left:20px; margin-right:20px;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .stats > div:nth-child(2){border-right:none;}
}

@media (prefers-reduced-motion: reduce){
  .hero .kicker, .hero h1 .line, .hero .sub, .hero .cta-row{animation:fadeOnly 400ms ease forwards;}
  .marquee-track{animation:none;}
  .reveal{transition:opacity 300ms ease;}
  .reveal, .reveal.in{transform:none;}
  .reveal-clip{transition:opacity 300ms ease; clip-path:none; opacity:0;}
  .reveal-clip.in{opacity:1;}
  .pcard, .pcard img{transition:opacity 200ms ease;}
  .cursor-ring{display:none;}
}
@keyframes fadeOnly{to{opacity:1; transform:none; filter:none;}}

/* ═══════════════ v8: HERO WITH WORK WALL ═══════════════ */
.hero-v8{position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; padding:130px 48px 90px;}
.wall{position:absolute; inset:0; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:10px; opacity:.34;}
.wall .col{display:flex; flex-direction:column; gap:10px; will-change:transform;}
.wall .col img{width:100%; aspect-ratio:4/3; object-fit:cover; filter:grayscale(1) contrast(1.05);}
.wall .col.a{animation:driftUp 46s linear infinite;}
.wall .col.b{animation:driftDown 52s linear infinite;}
@keyframes driftUp{from{transform:translateY(0);} to{transform:translateY(-50%);}}
@keyframes driftDown{from{transform:translateY(-50%);} to{transform:translateY(0);}}
.veil{position:absolute; inset:0; background:
  radial-gradient(ellipse 70% 60% at 30% 50%, rgba(11,11,11,.97) 0%, rgba(11,11,11,.82) 45%, rgba(11,11,11,.6) 100%),
  linear-gradient(180deg, rgba(11,11,11,.9) 0%, transparent 25%, transparent 60%, rgba(11,11,11,.98) 100%);}
.glow{position:absolute; top:12%; right:-8%; width:620px; height:620px; background:radial-gradient(circle, rgba(255,212,0,.16) 0%, transparent 68%); animation:pulse 8s ease-in-out infinite; pointer-events:none;}
.hero-inner{position:relative; z-index:2; max-width:1020px;}
.fade{opacity:0; transform:translateY(24px); filter:blur(10px); animation:rise 750ms var(--ease-out) forwards;}
.hero-v8 .kicker{display:inline-flex; align-items:center; gap:10px; color:var(--gold); font-size:12px; font-weight:700; letter-spacing:3px; text-transform:uppercase; animation-delay:60ms;}
.hero-v8 .kicker .dot{width:7px; height:7px; background:var(--gold); border-radius:50%; animation:blink 2.4s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1;} 50%{opacity:.25;}}
.hero-v8 h1{font-weight:800; font-size:clamp(42px,7vw,98px); line-height:.99; letter-spacing:-2.4px; margin-top:22px;}
.hero-v8 h1 .l1{display:block; animation-delay:150ms;}
.hero-v8 h1 .l2{display:block; animation-delay:270ms;}
.rot{display:inline-grid; vertical-align:top; color:var(--gold);}
.rot > span{grid-area:1/1; opacity:0; transform:translateY(.42em) rotateX(-55deg); transform-origin:top center; animation:word 12s cubic-bezier(0.23,1,0.32,1) infinite;}
.rot > span:nth-child(1){animation-delay:0s;}
.rot > span:nth-child(2){animation-delay:3s;}
.rot > span:nth-child(3){animation-delay:6s;}
.rot > span:nth-child(4){animation-delay:9s;}
@keyframes word{0%{opacity:0; transform:translateY(.42em) rotateX(-55deg);} 3%,22%{opacity:1; transform:none;} 26%,100%{opacity:0; transform:translateY(-.42em) rotateX(55deg);}}
.hero-v8 .sub{max-width:600px; margin-top:26px; font-size:17px; line-height:1.65; color:var(--gray-light); font-weight:300; animation-delay:420ms;}
.hero-v8 .sub b{color:var(--white); font-weight:600;}
.hero-v8 .cta-row{display:flex; gap:14px; margin-top:38px; flex-wrap:wrap; animation-delay:540ms;}
.hero-v8 .proof{display:flex; gap:34px; margin-top:52px; flex-wrap:wrap; animation-delay:660ms;}
.hero-v8 .proof > div{border-left:2px solid var(--gold); padding-left:14px;}
.hero-v8 .proof .p-n{font-size:26px; font-weight:800; letter-spacing:-.5px; font-variant-numeric:tabular-nums;}
.hero-v8 .proof .p-l{font-size:11px; font-weight:500; letter-spacing:1.4px; text-transform:uppercase; color:var(--gray); margin-top:3px;}
.scroll-cue{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; animation:rise 700ms var(--ease-out) 900ms forwards;}
.scroll-cue span{font-size:10px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--gray);}
.scroll-cue .line{width:1px; height:38px; background:linear-gradient(180deg,var(--gold),transparent); animation:drop 1.9s ease-in-out infinite;}
@keyframes drop{0%{transform:scaleY(.3); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(.3); transform-origin:bottom;}}

/* ═══════════════ RESULTS BAND ═══════════════ */
.results{background:var(--gold); color:#000; padding:64px 48px;}
.results .rl{font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; opacity:.65;}
.results .rgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:26px; background:rgba(0,0,0,.18);}
.results .rgrid > div{background:var(--gold); padding:26px 24px;}
.results .big{font-size:clamp(36px,4.6vw,56px); font-weight:800; letter-spacing:-2px; line-height:1;}
.results .cap{font-size:14px; font-weight:600; margin-top:10px; line-height:1.5;}
.results .who{font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; margin-top:8px; opacity:.6;}

/* ═══════════════ CAPABILITY CARDS ═══════════════ */
.caps{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:2px; background:var(--border);}
.cap-card{background:var(--bg-2); padding:32px 28px; display:block; transition:background 220ms ease;}
@media (hover:hover) and (pointer:fine){ .cap-card:hover{background:var(--card);} }
.cap-card .n{color:var(--gold); font-size:11px; font-weight:700; letter-spacing:2px;}
.cap-card h3{font-size:21px; font-weight:800; letter-spacing:-.4px; margin-top:10px;}
.cap-card .promise{color:var(--gold); font-size:13px; font-weight:500; margin-top:10px; line-height:1.5;}
.cap-card p{color:var(--gray-light); font-size:14px; font-weight:300; line-height:1.75; margin-top:12px;}
.cap-card .svc{display:flex; flex-wrap:wrap; gap:6px; margin-top:16px;}
.cap-card .svc span{border:1px solid var(--border); color:var(--gray); font-size:10px; font-weight:600; letter-spacing:.8px; text-transform:uppercase; padding:4px 9px;}

/* ═══════════════ GROUPED CLIENT CREDIBILITY ═══════════════ */
.client-groups{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:2px; background:var(--border);}
.cgroup{background:var(--bg-2); padding:26px 24px;}
.cgroup h4{color:var(--gold); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase;}
.cgroup p{margin-top:12px; font-size:14px; font-weight:500; line-height:1.9; color:var(--gray-light);}

/* ═══════════════ FEATURED CASE (evidence layer) ═══════════════ */
.fcase{display:grid; grid-template-columns:1.1fr 1fr; gap:2px; background:var(--border); margin-bottom:2px;}
.fcase .media{position:relative; overflow:hidden; background:#111; min-height:340px;}
.fcase .media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 600ms var(--ease-out);}
@media (hover:hover) and (pointer:fine){ .fcase:hover .media img{transform:scale(1.05);} }
.fcase .body{background:var(--bg-2); padding:38px 34px; display:flex; flex-direction:column; justify-content:center;}
.fcase .eyebrow{color:var(--gold); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase;}
.fcase h3{font-size:clamp(22px,2.6vw,32px); font-weight:800; letter-spacing:-.7px; margin-top:10px; line-height:1.1;}
.fcase .client{font-size:13px; color:var(--gray); margin-top:8px; font-weight:500;}
.fcase .rrow{display:flex; gap:26px; margin-top:24px; flex-wrap:wrap;}
.fcase .rrow > div{border-left:2px solid var(--gold); padding-left:12px;}
.fcase .rrow .f{font-size:22px; font-weight:800; letter-spacing:-.5px;}
.fcase .rrow .c{font-size:11px; color:var(--gray); margin-top:2px; max-width:150px; line-height:1.4;}
.fcase .more{margin-top:24px; font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold);}
@media (max-width:860px){ .fcase{grid-template-columns:1fr;} .fcase .media{min-height:240px;} }

/* case study structured sections */
.cs-block{margin-top:40px; max-width:760px;}
.cs-block h2{font-size:12px; font-weight:700; letter-spacing:2.4px; text-transform:uppercase; color:var(--gold);}
.cs-block p{margin-top:12px; font-size:16px; font-weight:300; line-height:1.85; color:var(--gray-light);}
.cs-block ul{margin-top:12px; padding-left:0; list-style:none;}
.cs-block li{font-size:15px; font-weight:300; line-height:1.7; color:var(--gray-light); padding-left:20px; position:relative; margin-bottom:10px;}
.cs-block li::before{content:'—'; position:absolute; left:0; color:var(--gold);}
.cs-results{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:2px; background:var(--border); margin-top:20px;}
.cs-results > div{background:var(--gold); color:#000; padding:24px 22px;}
.cs-results .f{font-size:32px; font-weight:800; letter-spacing:-1.2px; line-height:1;}
.cs-results .c{font-size:12px; font-weight:600; margin-top:8px; line-height:1.5;}

/* why-us band */
.why{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:2px; background:var(--border);}
.why > div{background:var(--bg-2); padding:30px 26px;}
.why h4{font-size:17px; font-weight:800; letter-spacing:-.3px;}
.why p{color:var(--gray-light); font-size:14px; font-weight:300; line-height:1.75; margin-top:10px;}

@media (max-width:900px){
  .results .rgrid{grid-template-columns:1fr;}
  .wall{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:640px){
  .hero-v8{padding:110px 20px 80px; min-height:auto;}
  .wall{grid-template-columns:repeat(2,1fr); opacity:.22;}
  .results{padding-left:20px; padding-right:20px;}
  .hero-v8 .proof{gap:20px;}
}
@media (prefers-reduced-motion: reduce){
  .wall .col.a, .wall .col.b, .glow, .scroll-cue .line, .hero-v8 .kicker .dot{animation:none;}
  .fade{animation:fadeOnly 400ms ease forwards;}
  .rot > span{animation:none; opacity:0;}
  .rot > span:first-child{opacity:1;}
}

/* ═══════════════ ACCESSIBILITY PASS (ui-ux-pro-max audit) ═══════════════ */

/* P1 — visible focus on every interactive control. Default outline is
   effectively invisible against #0B0B0B. */
:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
  border-radius:2px;
}
.pcard:focus-visible, .fcase:focus-visible, .cap-card:focus-visible{outline-offset:-3px;}

/* skip link — /work has 40+ focus stops before main content */
.skip-link{
  position:absolute; left:16px; top:-60px; z-index:200;
  background:var(--gold); color:#000; font-size:13px; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; padding:14px 22px;
  transition:top 160ms var(--ease-out);
}
.skip-link:focus{top:16px;}

/* P2 — touch targets. Web min is 24px, but the filter pills are the primary
   interaction on mobile: meet the 44pt/48dp platform guidance instead. */
@media (pointer: coarse){
  .pill{min-height:44px; padding:11px 18px;}
  .sector-pill{min-height:44px; display:inline-flex; align-items:center;}
  header.site nav a{min-height:44px; display:inline-flex; align-items:center;}
  footer.site .social a{min-height:44px; display:inline-flex; align-items:center;}
  .case-nav a{min-height:44px; display:inline-flex; align-items:center;}
}

/* live status + empty state for the filter */
.result-count{min-height:20px;}
.empty-state{
  border:1px dashed var(--border); padding:44px 28px; text-align:center; margin-top:20px;
}
.empty-state p{color:var(--gray-light); font-size:15px; font-weight:300;}
.empty-state button{margin-top:18px;}

/* P3 — reserve space for gallery images (CLS) */
.gallery img{aspect-ratio:4/3; object-fit:cover; background:var(--card);}
.gallery img.wide{aspect-ratio:16/9;}

/* the fixed WhatsApp button must never obscure a focused control */
@media (max-width:640px){
  .whatsapp-fab{width:48px; height:48px; right:16px; bottom:16px;}
}
