/* ── Service Page v5 — layout, visuals and motion for the rewritten service pages ──
   Loaded after lab-service-v4.css. Everything is scoped to .lab-v5 so the other
   service pages are untouched. Motion uses transform/opacity only and is switched
   off under prefers-reduced-motion. */

.lab-v5 { --v5-ease: cubic-bezier(.23,1,.32,1); --v5-green:#44B749; --v5-green-2:#58CC5D; --v5-line:rgba(68,183,73,.18); --v5-card:#142018; --v5-ink:#9CA3AF; }

/* scroll progress bar (injected by lab-service-v5.js) */
.lab-v5-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:9999; pointer-events:none; }
.lab-v5-progress span { display:block; height:100%; width:100%; transform-origin:left center; transform:scaleX(0);
  background:linear-gradient(90deg,#1A8A1F,#58CC5D); }

/* ── eyebrow / headings ── */
.lab-v5 .v5-eyebrow { display:inline-block; color:#58CC5D; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  background:rgba(68,183,73,.08); border:1px solid rgba(68,183,73,.2); padding:5px 14px; border-radius:999px; margin-bottom:14px; }
.lab-v5 .v5-h1 { font-size:clamp(34px,4.4vw,54px); font-weight:800; color:#fff; line-height:1.08; margin:0 0 20px; letter-spacing:-.015em; text-wrap:balance; }
.lab-v5 .v5-h2 { font-size:clamp(28px,3vw,40px); font-weight:700; color:#fff; line-height:1.2; margin:8px 0 16px; letter-spacing:-.01em; text-wrap:balance; }
.lab-v5 .v5-lead { font-size:17px; color:#9CA3AF; line-height:1.75; margin:0 0 20px; }
.lab-v5 .v5-center { text-align:center; }
.lab-v5 .v5-center .v5-lead { max-width:680px; margin-left:auto; margin-right:auto; }
.lab-v5 .lab-svc-wrap a:not(.elementor-button):not(.v5-card-link),
.lab-v5 .elementor-icon-box-description a { color:#58CC5D; text-decoration:underline; text-decoration-color:rgba(88,204,93,.4); text-underline-offset:3px; transition:text-decoration-color .2s ease; }
.lab-v5 .elementor-icon-box-description a:hover { text-decoration-color:#58CC5D; }

/* breadcrumb line in hero */
.lab-v5 .v5-crumbs { font-size:13px; color:#6B7280; margin:0 0 18px; }
.lab-v5 .v5-crumbs a { color:#9CA3AF; text-decoration:none; transition:color .2s ease; }
.lab-v5 .v5-crumbs a:hover { color:#58CC5D; }
.lab-v5 .v5-crumbs i { font-style:normal; margin:0 8px; opacity:.5; }

/* ── buttons: press feedback ── */
.lab-v5 .elementor-widget-button .elementor-button:active { transform:scale(.97); transition-duration:.1s; }
.lab-v5 .lab-svc-hero-btns.e-con .elementor-widget-button:not(:first-child) .elementor-button { line-height:1.4; text-align:left; }

/* ── hero visual shell ── */
.lab-v5 .v5-vis { background:#0C1E0F; border:1px solid rgba(68,183,73,.2); border-radius:20px; padding:26px; position:relative;
  box-shadow:0 24px 64px rgba(0,0,0,.5),0 0 0 1px rgba(68,183,73,.12); animation:v5-float 7s ease-in-out infinite; }
.lab-v5 .v5-vis::before { content:''; position:absolute; top:-1px; left:50%; width:100px; height:3px; margin-left:-50px; border-radius:0 0 4px 4px; background:linear-gradient(90deg,#44B749,#58CC5D); }
.lab-v5 .v5-vis-bar { display:flex; align-items:center; gap:8px; margin-bottom:18px; }
.lab-v5 .v5-vis-bar b { width:11px; height:11px; border-radius:50%; display:inline-block; }
.lab-v5 .v5-vis-bar b:nth-child(1){ background:#EF4444 } .lab-v5 .v5-vis-bar b:nth-child(2){ background:#F59E0B } .lab-v5 .v5-vis-bar b:nth-child(3){ background:#44B749 }
.lab-v5 .v5-vis-bar span { margin-left:8px; font-size:12px; color:#9CA3AF; letter-spacing:.02em; }
.lab-v5 .v5-vis-note { margin:16px 0 0; font-size:11px; color:#6B7280; letter-spacing:.03em; }
@keyframes v5-float { 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-6px) } }

/* roadmap rows (AI consulting hero) */
.lab-v5 .v5-rank { display:flex; flex-direction:column; gap:10px; }
.lab-v5 .v5-rank-row { display:flex; align-items:center; gap:14px; padding:13px 14px; border-radius:12px; background:#142018; border:1px solid #1F2937; }
.lab-v5 .v5-rank-row:first-child { border-color:rgba(68,183,73,.5); box-shadow:0 0 24px rgba(68,183,73,.12); }
.lab-v5 .v5-rank-n { flex:none; width:30px; height:30px; border-radius:9px; background:rgba(68,183,73,.12); color:#58CC5D; font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; }
.lab-v5 .v5-rank-t { flex:1; min-width:0; }
.lab-v5 .v5-rank-t strong { display:block; color:#fff; font-size:14px; font-weight:600; }
.lab-v5 .v5-rank-t small { display:block; color:#6B7280; font-size:12px; margin-top:2px; }
.lab-v5 .v5-tag { flex:none; font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.lab-v5 .v5-tag.go { color:#58CC5D; background:rgba(68,183,73,.12); }
.lab-v5 .v5-tag.next { color:#9CA3AF; background:rgba(156,163,175,.1); }
.lab-v5 .v5-tag.fix { color:#F59E0B; background:rgba(245,158,11,.1); }
.lab-v5 .v5-tag.no { color:#EF4444; background:rgba(239,68,68,.1); }

/* timeline (PoC hero) */
.lab-v5 .v5-tl { position:relative; padding-left:28px; display:flex; flex-direction:column; gap:14px; }
.lab-v5 .v5-tl::before { content:''; position:absolute; left:8px; top:8px; bottom:8px; width:2px; background:rgba(68,183,73,.15); }
.lab-v5 .v5-tl-line { position:absolute; left:8px; top:8px; bottom:8px; width:2px; background:linear-gradient(#44B749,#58CC5D); transform-origin:top center; transform:scaleY(0); }
.lab-v5 .v5-tl-item { position:relative; background:#142018; border:1px solid #1F2937; border-radius:12px; padding:13px 16px; }
.lab-v5 .v5-tl-item::before { content:''; position:absolute; left:-27px; top:18px; width:10px; height:10px; border-radius:50%; background:#0C1E0F; border:2px solid #44B749; }
.lab-v5 .v5-tl-item small { color:#58CC5D; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.lab-v5 .v5-tl-item strong { display:block; color:#fff; font-size:14px; font-weight:600; margin-top:2px; }
.lab-v5 .v5-tl-item span { display:block; color:#6B7280; font-size:12px; margin-top:2px; }
.lab-v5 .v5-verdict { display:flex; gap:10px; margin-top:4px; }
.lab-v5 .v5-verdict b { flex:1; text-align:center; padding:11px 8px; border-radius:10px; font-size:13px; font-weight:700; }
.lab-v5 .v5-verdict b:first-child { color:#58CC5D; background:rgba(68,183,73,.12); border:1px solid rgba(68,183,73,.4); }
.lab-v5 .v5-verdict b:last-child { color:#9CA3AF; background:rgba(156,163,175,.08); border:1px solid #2A3441; }

/* data flow (Big data hero) */
.lab-v5 .v5-flow { display:grid; grid-template-columns:1fr 54px 1.15fr; align-items:center; gap:0; }
.lab-v5 .v5-src { display:flex; flex-direction:column; gap:9px; }
.lab-v5 .v5-src span { padding:10px 12px; border-radius:10px; background:#142018; border:1px solid #1F2937; font-size:12.5px; color:#D1D5DB; font-weight:500; }
.lab-v5 .v5-wire { width:100%; height:100%; min-height:190px; }
.lab-v5 .v5-wire path { fill:none; stroke:rgba(68,183,73,.5); stroke-width:1.5; stroke-dasharray:4 5; animation:v5-dash 1.4s linear infinite; }
@keyframes v5-dash { to { stroke-dashoffset:-18 } }
.lab-v5 .v5-dash { background:#142018; border:1px solid rgba(68,183,73,.35); border-radius:14px; padding:16px; box-shadow:0 0 30px rgba(68,183,73,.1); }
.lab-v5 .v5-dash h4 { margin:0 0 12px !important; font-size:12px !important; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#58CC5D; }
.lab-v5 .v5-kpis { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.lab-v5 .v5-kpis i { display:block; height:34px; border-radius:8px; background:rgba(68,183,73,.1); border:1px solid rgba(68,183,73,.18); }
.lab-v5 .v5-bars { display:flex; align-items:flex-end; gap:7px; height:64px; }
.lab-v5 .v5-bars i { flex:1; border-radius:4px 4px 0 0; background:linear-gradient(180deg,#58CC5D,#1A8A1F); transform-origin:bottom center; }

/* ── section statement (what we deliver / what we build) ── */
.lab-v5 .v5-chips { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:28px; }
.lab-v5 .v5-chips span { display:inline-flex; align-items:center; gap:10px; padding:12px 20px; border-radius:999px; background:#142018; border:1px solid rgba(68,183,73,.25); color:#fff; font-size:14.5px; font-weight:500; }
.lab-v5 .v5-chips span::before { content:''; width:8px; height:8px; border-radius:50%; background:#44B749; box-shadow:0 0 10px rgba(68,183,73,.7); }
.lab-v5 .v5-chips em { font-style:normal; color:#4B5563; }
.lab-v5 .v5-chips.flow span:not(:last-child) { position:relative; }

/* ── grids ── */
.lab-v5 .lab-v5-grid-2.e-con { display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:24px !important; }
.lab-v5 .lab-v5-grid-2.e-con>.elementor-element { width:auto !important; flex:unset !important; }
.lab-v5 .lab-v5-steps-4.e-con { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:20px !important; position:relative; }
.lab-v5 .lab-v5-steps-4.e-con>.elementor-element { width:auto !important; flex:unset !important; }
.lab-v5 .lab-v5-steps-4 .elementor-widget-icon-box { transition:border-color .3s ease, box-shadow .3s ease; }
.lab-v5 .lab-v5-steps-4 .elementor-widget-icon-box:hover { border-color:rgba(68,183,73,.5) !important; box-shadow:0 12px 32px rgba(0,0,0,.3),0 0 20px rgba(68,183,73,.15); }
.lab-v5 .lab-v5-steps-4 .elementor-icon-box-icon .elementor-icon { background:rgba(68,183,73,.1) !important; border-color:rgba(68,183,73,.35) !important; }
.lab-v5 .lab-v5-steps-4 .v5-step-line { position:absolute; left:12%; right:12%; top:66px; height:2px; background:linear-gradient(90deg,#44B749,#58CC5D); opacity:.35; transform-origin:left center; pointer-events:none; }

/* cursor spotlight on cards (vars set by JS) */
.lab-v5 .lab-svc-solution-grid .elementor-widget-icon-box,
.lab-v5 .lab-svc-features-grid .elementor-widget-icon-box,
.lab-v5 .lab-v5-grid-2 .elementor-widget-icon-box { position:relative; overflow:hidden; }
.lab-v5 .lab-svc-solution-grid .elementor-widget-icon-box::after,
.lab-v5 .lab-svc-features-grid .elementor-widget-icon-box::after,
.lab-v5 .lab-v5-grid-2 .elementor-widget-icon-box::after { content:''; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(88,204,93,.13),transparent 70%); }
.lab-v5 .elementor-widget-icon-box:hover::after { opacity:1; }
.lab-v5 .lab-v5-grid-2 .elementor-widget-icon-box { transition:border-color .3s ease, box-shadow .3s ease; }
.lab-v5 .lab-v5-grid-2 .elementor-widget-icon-box:hover { border-color:rgba(68,183,73,.45) !important; box-shadow:0 20px 48px rgba(0,0,0,.35),0 0 28px rgba(68,183,73,.18); }
.lab-v5 .lab-v5-grid-2 .elementor-icon-box-icon .elementor-icon { background:linear-gradient(135deg,#44B749,#58CC5D) !important; }

/* problem card (icon list) */
.lab-v5 .v5-card.e-con { background:#142018; border:1px solid rgba(68,183,73,.18); border-radius:18px; padding:30px !important; }
.lab-v5 .v5-card .elementor-icon-list-item { padding:0 !important; }
.lab-v5 .v5-card .elementor-icon-list-text { font-size:15.5px !important; line-height:1.55; }
.lab-v5 .v5-card .elementor-icon-list-icon { width:28px !important; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; }
.lab-v5 .v5-card.bad .elementor-icon-list-icon { background:rgba(239,68,68,.1); }
.lab-v5 .v5-card.good .elementor-icon-list-icon { background:rgba(68,183,73,.12); }
.lab-v5 .v5-card .elementor-icon-list-items { display:flex; flex-direction:column; gap:14px; }

/* callout (consulting → build handoff) */
.lab-v5 .v5-callout { display:flex; gap:16px; align-items:flex-start; margin-top:28px; padding:20px 22px; border-radius:14px; background:rgba(68,183,73,.06); border:1px dashed rgba(68,183,73,.35); color:#D1D5DB; font-size:15px; line-height:1.65; }
.lab-v5 .v5-callout::before { content:'\2192'; flex:none; width:32px; height:32px; border-radius:50%; background:rgba(68,183,73,.15); color:#58CC5D; display:flex; align-items:center; justify-content:center; font-weight:700; }

/* deliverables visual (outcome side) */
.lab-v5 .v5-doc { background:#142018; border:1px solid rgba(68,183,73,.18); border-radius:16px; padding:28px; min-height:300px; display:flex; flex-direction:column; justify-content:center; gap:12px; position:relative; overflow:hidden; }
.lab-v5 .v5-doc::after { content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; background:radial-gradient(circle,rgba(68,183,73,.16),transparent 65%); pointer-events:none; }
.lab-v5 .v5-doc-head { font-size:12px; color:#58CC5D; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.lab-v5 .v5-doc-row { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:10px; background:#0E1C10; border:1px solid #1F2937; color:#D1D5DB; font-size:14px; }
.lab-v5 .v5-doc-row::before { content:'\2713'; flex:none; width:22px; height:22px; border-radius:50%; background:rgba(68,183,73,.15); color:#58CC5D; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.lab-v5 .v5-doc-row.pending { border-style:dashed; color:#9CA3AF; }
.lab-v5 .v5-doc-row.pending::before { content:'\2192'; background:rgba(156,163,175,.12); color:#9CA3AF; }

/* case study */
.lab-v5 .v5-case { display:grid; grid-template-columns:1.35fr 1fr; gap:40px; align-items:center; background:#142018; border:1px solid rgba(68,183,73,.2); border-radius:22px; padding:44px; position:relative; overflow:hidden; }
.lab-v5 .v5-case::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(#44B749,#1A8A1F); }
.lab-v5 .v5-case h2 { font-size:clamp(24px,2.6vw,34px); font-weight:700; color:#fff; line-height:1.2; margin:8px 0 16px; }
.lab-v5 .v5-case p { color:#9CA3AF; font-size:15.5px; line-height:1.75; margin:0 0 14px; }
.lab-v5 .v5-case a.v5-link { display:inline-flex; align-items:center; gap:8px; color:#58CC5D; font-weight:600; text-decoration:none; margin-top:6px; }
.lab-v5 .v5-case a.v5-link span { display:inline-block; transition:transform .25s var(--v5-ease); }
.lab-v5 .v5-case a.v5-link:hover span { transform:translateX(5px); }
.lab-v5 .v5-meter { background:#0C1E0F; border:1px solid #1F2937; border-radius:16px; padding:24px; }
.lab-v5 .v5-meter-row + .v5-meter-row { margin-top:20px; }
.lab-v5 .v5-meter-row small { display:flex; justify-content:space-between; font-size:12px; color:#9CA3AF; margin-bottom:8px; }
.lab-v5 .v5-meter-row small b { color:#fff; font-weight:600; }
.lab-v5 .v5-meter-track { height:10px; border-radius:6px; background:rgba(255,255,255,.06); overflow:hidden; }
.lab-v5 .v5-meter-fill { height:100%; border-radius:6px; transform-origin:left center; }
.lab-v5 .v5-meter-fill.before { width:100%; background:linear-gradient(90deg,#4B5563,#6B7280); }
.lab-v5 .v5-meter-fill.after { width:7%; min-width:14px; background:linear-gradient(90deg,#44B749,#58CC5D); box-shadow:0 0 14px rgba(68,183,73,.6); }
.lab-v5 .v5-meter-foot { margin-top:18px; padding-top:16px; border-top:1px solid #1F2937; font-size:13px; color:#9CA3AF; }
.lab-v5 .v5-meter-foot b { color:#58CC5D; }

/* tools marquee */
.lab-v5 .v5-marquee { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.lab-v5 .v5-marquee-track { display:flex; width:max-content; gap:14px; animation:v5-marquee 40s linear infinite; }
@keyframes v5-marquee { from { transform:translate3d(0,0,0) } to { transform:translate3d(-50%,0,0) } }
.lab-v5 .v5-marquee:hover .v5-marquee-track { animation-play-state:paused; }
.lab-v5 .v5-marquee-track span { flex:none; padding:12px 22px; border-radius:999px; background:#142018; border:1px solid #1F2937; color:#D1D5DB; font-weight:600; font-size:14.5px; white-space:nowrap; transition:border-color .25s ease,color .25s ease; }
.lab-v5 .v5-marquee-track span:hover { border-color:rgba(68,183,73,.5); color:#58CC5D; }

/* FAQ */
.lab-v5 .v5-faq { max-width:860px; margin:0 auto; }
.lab-v5 .v5-faq details { background:#142018; border:1px solid rgba(68,183,73,.18); border-radius:12px; margin-bottom:12px; overflow:hidden; transition:border-color .25s ease, background-color .25s ease; }
.lab-v5 .v5-faq details[open] { border-color:rgba(68,183,73,.45); background:#16261a; }
.lab-v5 .v5-faq summary { padding:20px 24px; font-size:16.5px; font-weight:500; color:#fff; cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.lab-v5 .v5-faq summary::-webkit-details-marker { display:none; }
.lab-v5 .v5-faq summary::after { content:'+'; flex:none; width:28px; height:28px; border-radius:50%; background:rgba(68,183,73,.1); color:#44B749; font-size:20px; line-height:26px; text-align:center; font-weight:300; transition:transform .3s var(--v5-ease), background-color .2s ease; }
.lab-v5 .v5-faq details[open] summary::after { transform:rotate(45deg); background:rgba(68,183,73,.2); }
.lab-v5 .v5-faq summary:focus-visible { outline:2px solid #58CC5D; outline-offset:-2px; border-radius:12px; }
.lab-v5 .v5-faq .v5-ans { padding:0 24px 22px; border-top:1px solid #1F2937; padding-top:16px; color:#9CA3AF; font-size:15.5px; line-height:1.75; }
.lab-v5 .v5-faq .v5-ans a { color:#58CC5D; }
.lab-v5 .v5-faq details[open] .v5-ans { animation:v5-ans .35s var(--v5-ease); }
@keyframes v5-ans { from { opacity:0; transform:translateY(-6px) } to { opacity:1; transform:none } }

/* service ladder cards */
.lab-v5 .v5-ladder { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.lab-v5 .v5-ladder.two { grid-template-columns:repeat(2,1fr); }
.lab-v5 .v5-card-link { display:flex; flex-direction:column; gap:8px; padding:26px; border-radius:16px; background:#142018; border:1px solid #1F2937; text-decoration:none !important; color:inherit; transition:border-color .3s ease, box-shadow .3s ease, transform .3s var(--v5-ease); }
.lab-v5 .v5-card-link:hover { border-color:rgba(68,183,73,.5); box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 24px rgba(68,183,73,.14); transform:translateY(-4px); }
.lab-v5 .v5-card-link small { font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:#58CC5D; font-weight:700; }
.lab-v5 .v5-card-link strong { color:#fff; font-size:18px; font-weight:700; line-height:1.3; }
.lab-v5 .v5-card-link span { color:#9CA3AF; font-size:14px; line-height:1.6; flex:1; }
.lab-v5 .v5-card-link em { font-style:normal; color:#58CC5D; font-weight:600; font-size:14px; margin-top:6px; transition:transform .25s var(--v5-ease); display:inline-block; }
.lab-v5 .v5-card-link:hover em { transform:translateX(5px); }
.lab-v5 .v5-card-link:focus-visible { outline:2px solid #58CC5D; outline-offset:3px; }

/* ── responsive ── */
@media(max-width:1180px){ .lab-v5 .lab-v5-steps-4.e-con{ grid-template-columns:repeat(2,1fr) !important; } .lab-v5 .lab-v5-steps-4 .v5-step-line{ display:none; } }
@media(max-width:1024px){
  .lab-v5 .v5-case{ grid-template-columns:1fr; padding:32px; gap:28px; }
  .lab-v5 .v5-ladder{ grid-template-columns:1fr 1fr; }
  .lab-v5 .lab-v5-grid-2.e-con{ grid-template-columns:1fr 1fr !important; }
}
@media(max-width:768px){
  .lab-v5 .lab-v5-grid-2.e-con,.lab-v5 .lab-v5-steps-4.e-con,.lab-v5 .v5-ladder,.lab-v5 .v5-ladder.two{ grid-template-columns:1fr !important; }
  .lab-v5 .v5-flow{ grid-template-columns:1fr; gap:14px; }
  .lab-v5 .v5-wire{ display:none; }
  .lab-v5 .v5-case{ padding:24px; }
  .lab-v5 .v5-vis{ padding:20px; animation:none; }
  .lab-v5 .v5-rank-row{ flex-wrap:wrap; }
  .lab-v5 .lab-svc-hero.e-con{ padding-top:96px !important; padding-bottom:56px !important; }
  .lab-v5 .lab-svc-pad.e-con,.lab-v5 .lab-svc-pad-dark.e-con{ padding-top:56px !important; padding-bottom:56px !important; }
  .lab-v5 .v5-card.e-con{ padding:22px !important; }
}
@media (prefers-reduced-motion: reduce){
  .lab-v5 .v5-vis,.lab-v5 .v5-wire path,.lab-v5 .v5-faq details[open] .v5-ans{ animation:none !important; }
  .lab-v5 .v5-marquee-track{ animation-duration:80s !important; }
  .lab-v5 .v5-card-link,.lab-v5 .v5-card-link em,.lab-v5 .v5-case a.v5-link span{ transition:none !important; }
  .lab-v5 .v5-card-link:hover{ transform:none; }
}

/* ── v5.1 fixes ── */
/* no gaps between sections; dark page ground so nothing shows white */
.lab-v5.e-con { --gap:0px; --row-gap:0px; --column-gap:0px; gap:0 !important; background:#071510; }
.lab-v5.e-con > .e-con { margin:0 !important; }
body:has(.lab-v5) { background:#071510; }

/* hairline divider at the top of every section instead of empty space */
.lab-v5 > .lab-svc-pad, .lab-v5 > .lab-svc-pad-dark { position:relative; }
.lab-v5 > .lab-svc-pad::before, .lab-v5 > .lab-svc-pad-dark::before { content:''; position:absolute; top:0; left:50%; width:min(760px,80%); height:1px; transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(88,204,93,.5),transparent); pointer-events:none; }
.lab-v5 > .lab-svc-pad-dark, .lab-v5 > .lab-svc-pad { border-bottom:1px solid rgba(68,183,73,.06); }

/* 5-card grid: 3 + 2 centred */
.lab-v5 .lab-v5-grid-5.e-con { display:grid !important; grid-template-columns:repeat(6,1fr) !important; gap:24px !important; }
.lab-v5 .lab-v5-grid-5.e-con > .elementor-element { grid-column:span 2; width:auto !important; flex:unset !important; }
.lab-v5 .lab-v5-grid-5.e-con > .elementor-element:nth-child(4) { grid-column:1 / span 3; }
.lab-v5 .lab-v5-grid-5.e-con > .elementor-element:nth-child(5) { grid-column:4 / span 3; }
.lab-v5 .lab-v5-grid-5 .elementor-widget-icon-box { position:relative; overflow:hidden; transition:border-color .3s ease, box-shadow .3s ease; }
.lab-v5 .lab-v5-grid-5 .elementor-widget-icon-box:hover { border-color:rgba(68,183,73,.45) !important; box-shadow:0 20px 48px rgba(0,0,0,.35),0 0 28px rgba(68,183,73,.18); }
.lab-v5 .lab-v5-grid-5 .elementor-icon-box-icon .elementor-icon { background:linear-gradient(135deg,#44B749,#58CC5D) !important; }
.lab-v5 .lab-v5-grid-5 .elementor-widget-icon-box::after { content:''; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .3s ease; background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(88,204,93,.13),transparent 70%); }
.lab-v5 .lab-v5-grid-5 .elementor-widget-icon-box:hover::after { opacity:1; }
/* icons: make sure the glyph is visible inside the green tile */
.lab-v5 .elementor-icon-box-icon .elementor-icon i, .lab-v5 .elementor-icon-box-icon .elementor-icon svg { color:#fff; fill:#fff; }
.lab-v5 .lab-svc-solution-grid .elementor-widget-icon-box .elementor-icon-box-wrapper { text-align:left; }

/* logo pills in the marquee */
.lab-v5 .v5-marquee-track span { display:inline-flex; align-items:center; gap:10px; padding:12px 24px 12px 18px; }
.lab-v5 .v5-marquee-track img { width:22px; height:22px; display:block; object-fit:contain; flex:none; }

/* closing CTA: dark wrapper, centred card, always-visible buttons */
.lab-v5 .lab-v5-cta-wrap.e-con { padding:40px 24px 96px !important; }
.lab-v5 .lab-svc-final-cta.e-con { width:100% !important; max-width:1140px !important; margin:0 auto !important; align-items:center; text-align:center; overflow:hidden; position:relative; }
.lab-v5 .lab-svc-final-cta::before { content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 85% 0%,rgba(255,255,255,.18),transparent 45%),radial-gradient(circle at 10% 100%,rgba(0,0,0,.18),transparent 50%); }
.lab-v5 .lab-svc-final-cta > .lab-svc-wrap { position:relative; width:100%; }
.lab-v5 .lab-svc-cta-btns.e-con { justify-content:center !important; align-items:center !important; }
.lab-v5 .lab-svc-cta-btns .elementor-widget-button:first-child .elementor-button { background:#FFFFFF !important; background-image:none !important; color:#0F5F14 !important; box-shadow:0 10px 30px rgba(0,0,0,.28) !important; }
.lab-v5 .lab-svc-cta-btns .elementor-widget-button:first-child .elementor-button:hover { background:#F0FFF1 !important; color:#0A4A0E !important; }
.lab-v5 .lab-svc-cta-btns .elementor-widget-button:first-child .elementor-button .elementor-button-text { color:inherit; font-weight:700; }
.lab-v5 .lab-svc-cta-btns .elementor-widget-button:not(:first-child) .elementor-button { border:2px solid rgba(255,255,255,.75) !important; background:rgba(0,0,0,.14) !important; color:#fff !important; }
.lab-v5 .lab-svc-cta-btns .elementor-widget-button:not(:first-child) .elementor-button:hover { background:rgba(255,255,255,.16) !important; }

@media(max-width:1024px){ .lab-v5 .lab-v5-grid-5.e-con { grid-template-columns:1fr 1fr !important; } .lab-v5 .lab-v5-grid-5.e-con > .elementor-element, .lab-v5 .lab-v5-grid-5.e-con > .elementor-element:nth-child(4), .lab-v5 .lab-v5-grid-5.e-con > .elementor-element:nth-child(5) { grid-column:auto; } }
@media(max-width:768px){ .lab-v5 .lab-v5-grid-5.e-con { grid-template-columns:1fr !important; } .lab-v5 .lab-v5-cta-wrap.e-con { padding:24px 12px !important; } }

@media(max-width:768px){ .lab-v5 .lab-v5-cta-wrap.e-con { padding:24px 12px 64px !important; } }

/* footer clearly separated from the service page (scoped to v5 pages only) */
body:has(.lab-v5) footer.elementor-location-footer { position:relative; margin-top:0; border-top:1px solid rgba(68,183,73,.28); box-shadow:0 -24px 60px rgba(68,183,73,.07); }
body:has(.lab-v5) footer.elementor-location-footer::before { content:''; position:absolute; top:-1px; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,#1A8A1F 20%,#58CC5D 50%,#1A8A1F 80%,transparent); pointer-events:none; }
