/* Gravitai landing page · base
   Everything is scoped under .gv so Odoo's theme (Bootstrap) can't restyle it,
   and so this CSS can't leak into the rest of the Odoo site. */

.gv {
  --ink: #191919;
  --or: #ff4002;
  --pu: #a03ebb;
  --lilac: #f6f0f8;
  --grad: linear-gradient(90deg, #ff4002 0%, #a03ebb 100%);
  --wrap: 1150px;
  --gutter: 145px;
  --ease: cubic-bezier(.45, 0, .2, 1);
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
  color: var(--ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  line-height: normal;
  letter-spacing: normal;
}
.gv *, .gv *::before, .gv *::after { box-sizing: border-box; }
.gv h1, .gv h2, .gv h3, .gv h4, .gv p, .gv ul, .gv ol, .gv figure, .gv blockquote { margin: 0; padding: 0; }
.gv ul, .gv ol { list-style: none; }
.gv img, .gv svg, .gv video { display: block; max-width: none; }
.gv a { color: inherit; text-decoration: none; }
.gv a:hover { color: inherit; text-decoration: none; }
.gv button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; text-align: inherit; }
.gv input, .gv textarea, .gv select { font: inherit; color: inherit; }
.gv :focus-visible { outline: 2px solid var(--or); outline-offset: 3px; border-radius: 4px; }

/* Type */
.gv .t-tomorrow { font-family: 'Tomorrow', sans-serif; font-weight: 400; }
.gv .t-tomorrow-light { font-family: 'Tomorrow', sans-serif; font-weight: 300; }
.gv .t-pop { font-family: 'Poppins', sans-serif; font-weight: 300; }
.gv .t-pop-reg { font-family: 'Poppins', sans-serif; font-weight: 400; }
.gv .grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* Layout */
.gv .wrap { width: min(var(--wrap), calc(100% - 48px)); margin-inline: auto; position: relative; }
.gv section { position: relative; }

/* Section header pattern: eyebrow, gradient heading left, intro right */
.gv .sh { display: grid; grid-template-columns: 560px 400px; justify-content: space-between; column-gap: 40px; align-items: start; }
.gv .eyebrow { grid-column: 1 / -1; font-size: 13px; line-height: 20px; letter-spacing: 1.3px; color: rgba(25,25,25,.6); text-transform: uppercase; margin-bottom: 20px; }
.gv .h2 { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 46px; line-height: 52px; letter-spacing: -1.5px; }
.gv .intro { font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); padding-top: 8px; }

/* Standard link: ink text + arrow + gradient underline */
.gv .lnk { display: inline-flex; flex-direction: column; gap: 10px; cursor: pointer; }
.gv .lnk .lnk-row { display: inline-flex; align-items: center; gap: 12px; font-size: 16px; line-height: 24px; color: var(--ink); white-space: nowrap; }
.gv .lnk .lnk-row img { width: 14px; height: 14px; transition: transform .3s var(--ease); }
.gv .lnk::after { content: ""; display: block; height: 1px; width: 100%; background: var(--grad); transform-origin: left; transition: transform .35s var(--ease); }
.gv .lnk:hover::after { transform: scaleX(.6); }
.gv .lnk:hover .lnk-row img { transform: translate(2px, 1px); }

/* Reveal on scroll */
.gv .rv { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.gv .rv.in { opacity: 1; transform: none; }

/* Fixed-size illustration that scales down to fit its box (keeps Figma geometry exact) */
.gv .stage { position: relative; width: 100%; }
.gv .stage > .stage-in { position: absolute; left: 0; top: 0; transform-origin: 0 0; }

@media (prefers-reduced-motion: reduce) {
  .gv *, .gv *::before, .gv *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .gv .rv { opacity: 1; transform: none; }
}

/* Tablet */
@media (max-width: 1199px) {
  .gv .sh { grid-template-columns: 1fr; row-gap: 20px; }
  .gv .sh .h2 { max-width: 640px; }
  .gv .sh .intro-col { max-width: 560px; }
}
/* Phone */
@media (max-width: 767px) {
  .gv .h2 { font-size: 34px; line-height: 40px; letter-spacing: -1px; }
  .gv .intro { font-size: 15px; line-height: 24px; }
  .gv .wrap { width: calc(100% - 32px); }
  .gv .sh { row-gap: 14px; }
  .gv .eyebrow { margin-bottom: 0; }
  .gv .intro { padding-top: 0; }
}

/* Odoo: let the block run edge to edge. Odoo's Embed Code block wraps its content in a
   padded section and a Bootstrap .container; these rules only touch wrappers that hold .gv. */
section:has(.gv), .s_embed_code:has(.gv) { padding-top: 0 !important; padding-bottom: 0 !important; }
.container:has(> .gv), .container-fluid:has(> .gv), .s_embed_code_embedded:has(> .gv),
.container:has(> * > .gv), .s_embed_code_embedded:has(> * > .gv) { max-width: none !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }

/* ---------- Nav ---------- */
.gv .gv-nav { position: sticky; top: 0; z-index: 50; height: 88px; background: #fff; transition: box-shadow .3s; }
.gv .gv-nav.scrolled { box-shadow: 0 1px 0 rgba(25,25,25,.06); }
.gv .nav-in { position: relative; height: 88px; max-width: 1440px; margin: 0 auto; }
.gv .nav-logo { position: absolute; left: 24px; top: 24px; width: 128.742px; height: 40px; }
.gv .nav-logo img { width: 100%; height: 100%; }
.gv .nav-menu { position: absolute; top: 33px; left: calc(50% - 282.76px); transform: translateX(-50%); display: flex; gap: 45px; align-items: center; }
.gv .nav-menu a { font-size: 15px; line-height: 22px; text-transform: uppercase; color: var(--ink); white-space: nowrap; position: relative; }
.gv .nav-menu a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: var(--grad); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.gv .nav-menu a:hover::after { transform: scaleX(1); }
.gv .nav-phone { position: absolute; left: calc(50% + 273.92px); top: 33px; display: flex; gap: 6px; align-items: center; font-size: 14px; line-height: 22px; white-space: nowrap; }
.gv .nav-phone img { width: 22px; height: 22px; }
.gv .nav-cta { position: absolute; right: 24px; top: 24px; height: 40px; padding: 0 22px; border-radius: 20px; background: var(--or); display: flex; align-items: center; gap: 10px; color: #fff; font-size: 13px; letter-spacing: 1.04px; white-space: nowrap; transition: background .25s, transform .25s; }
.gv .nav-cta:hover { background: #e63a02; color: #fff; }
.gv .nav-cta img { width: 6.08px; height: 8px; }
.gv .nav-burger { display: none; }

@media (max-width: 1199px) {
  .gv .nav-menu, .gv .nav-phone { display: none; }
  .gv .nav-burger { display: block; position: absolute; right: 18px; top: 10.5px; width: 36px; height: 36px; background: none; border-radius: 0; }
  .gv .nav-burger span { position: absolute; left: 7px; width: 22px; height: 1px; background: var(--ink); transition: transform .35s var(--ease), top .35s var(--ease); }
  .gv .nav-burger span:nth-child(1) { top: 13.5px; }
  .gv .nav-burger span:nth-child(2) { top: 21.5px; }
  .gv .nav-cta { right: 66px; transition: opacity .25s; }
  .gv .gv-nav.open .nav-burger span:nth-child(1) { top: 17.5px; transform: rotate(45deg); }
  .gv .gv-nav.open .nav-burger span:nth-child(2) { top: 17.5px; transform: rotate(-45deg); }
  .gv .gv-nav.open .nav-cta { opacity: 0; pointer-events: none; }
  .gv .nav-cta { display: none; } /* tablet: Book a call lives in the menu */
  /* Full-screen menu (Figma option A, 5 Nov) */
  .gv .nav-sheet { position: fixed; left: 0; right: 0; top: 88px; bottom: 0; z-index: 49; display: flex; flex-direction: column; padding: 8px 12px max(12px, env(safe-area-inset-bottom)); background: #fff; overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s .3s; }
  /* Mobile menu option D (Figma 1588:6171, 5 Nov): white contact card, then stacked link cards orange to purple */
  .gv .ns-card { position: relative; z-index: 0; flex: none; padding: 26px 24px 48px; border-radius: 28px; background: #fff; box-shadow: 0 12px 32px rgba(61,20,69,.08); }
  .gv .ns-card p { margin: 0; }
  .gv .ns-eyebrow { font-size: 12px; line-height: 18px; letter-spacing: 1.2px; color: rgba(25,25,25,.6); }
  .gv .ns-h { margin-top: 10px !important; max-width: 300px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 28px; line-height: 34px; letter-spacing: -.8px; }
  .gv .ns-cta { display: inline-flex; align-items: center; gap: 10px; height: 48px; margin-top: 40px; padding: 0 20px; border-radius: 24px; background: var(--or); color: #fff; font-weight: 400; font-size: 12px; letter-spacing: 1px; }
  .gv .ns-cta:hover { color: #fff; background: #e63a02; }
  .gv .ns-cta span { font-size: 13px; }
  .gv .ns-phone { display: flex; align-items: center; gap: 10px; margin-top: 28px; font-size: 15px; line-height: 22px; color: var(--ink); }
  .gv .ns-phone img { width: 22px; height: 22px; }
  .gv .ns-links { flex: 1 0 auto; display: flex; flex-direction: column; }
  .gv .ns-links a { position: relative; display: block; min-height: 112px; margin-top: -24px; padding: 20px 56px 44px 24px; border-radius: 28px; background: var(--c); color: #fff; box-shadow: 0 -8px 24px rgba(26,8,38,.18); }
  .gv .ns-links a { flex: 1 0 auto; } /* tall screens: the spare height is shared evenly */
  .gv .ns-links a:last-child { min-height: 176px; padding-bottom: 60px; }
  .gv .ns-links a:hover { color: #fff; }
  .gv .ns-links b { display: block; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 22px; line-height: 28px; letter-spacing: -.4px; }
  .gv .ns-links small { display: block; margin-top: 2px; font-weight: 300; font-size: 12px; line-height: 18px; opacity: .75; }
  .gv .ns-links i { position: absolute; right: 24px; top: 20px; font-style: normal; font-weight: 300; font-size: 20px; line-height: 28px; }
  .gv .ns-links em { position: absolute; left: 24px; bottom: 24px; font-style: normal; font-weight: 300; font-size: 12px; line-height: 18px; opacity: .75; }
  .gv .gv-nav.open .nav-sheet { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease); }
}
@media (max-width: 767px) {
  .gv .gv-nav, .gv .nav-in { height: 72px; }
  .gv .nav-logo { left: 16px; top: 18px; width: 116px; height: 36px; }
  .gv .nav-burger { right: 10px; top: 4.5px; } /* top line level with the top of the logo */
  .gv .nav-sheet { top: 72px; }
  .gv .nav-cta { right: 52px; top: 18px; height: 36px; padding: 0 14px; font-size: 11px; letter-spacing: .8px; }
  .gv .nav-cta { display: none; } /* phone: Book a call lives in the menu */
  .gv .gv-nav.open .nav-menu { top: 72px; }
}
@media (min-width: 768px) { .gv .nav-cta .short { display: none; } }

/* ---------- Hero ---------- */
.gv .hero { height: 820px; margin-top: 34px; position: relative; overflow: hidden; }
.gv .hero-dots { position: absolute; left: calc(50% - 20px); top: 0; width: 800px; height: 820px; pointer-events: none; }
.gv .hero-copy { position: absolute; left: calc(50% - 575px); top: 220px; width: 580px; }
.gv .hero-eyebrow { font-size: 13px; line-height: 20px; letter-spacing: 1.3px; color: rgba(25,25,25,.6); }
.gv .hero-h1 { margin-top: 16px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 58px; line-height: 64px; letter-spacing: -2px; width: 580px; }
.gv .hero-links { margin-top: 24px; display: flex; gap: 48px; }
.gv .hero-links .lnk .lnk-row { font-size: 16px; line-height: 24px; gap: 0; }
.gv .hero-links .lnk .lnk-row img { width: 7.6px; height: 10px; margin-left: 12px; }
.gv .hero-links .lnk { gap: 9px; }
.gv .hero-links .lnk::after { width: 100%; }
.gv .hero-clients { margin-top: 46px; display: flex; align-items: flex-start; height: 42px; }
.gv .hero-faces { display: flex; width: 148px; padding-top: 1px; }
.gv .hero-faces img { width: 40px; height: 40px; margin-right: -10px; }
.gv .hero-clients p { font-size: 14px; line-height: 20px; color: rgba(25,25,25,.75); }
.gv .hero-trust { margin-top: 22px; display: flex; }
.gv .pill-partner { display: inline-flex; align-items: center; padding: 7px 16px; border-radius: 16px; background: rgba(255,64,2,.1); color: var(--or); font-weight: 400; font-size: 12px; line-height: 18px; white-space: nowrap; }

/* Hero art: absolute geometry from Figma (461 x 616 box) */
.gv .hero-art { position: absolute; left: calc(50% + 114px); top: 102px; width: 461px; height: 616px; }
.gv .ha-card { position: absolute; background: #fff; }
.gv .ha-teams { left: 49px; top: 0; width: 204px; height: 122.4px; border-radius: 20px; filter: drop-shadow(0 20.4px 25.5px rgba(61,20,69,.22)); }
.gv .ha-teams .cap { position: absolute; left: 0; right: 0; top: 13.6px; text-align: center; font-size: 10.2px; color: rgba(25,25,25,.55); white-space: nowrap; }
.gv .ha-teams .uk { position: absolute; left: 22.1px; top: 45.9px; width: 29.24px; height: 41.14px; }
.gv .ha-teams .au { position: absolute; left: 133.45px; top: 48.45px; width: 39.44px; height: 36.04px; }
.gv .ha-teams .pin { position: absolute; width: 30.6px; height: 30.6px; }
.gv .ha-teams .pin img { width: 100%; height: 100%; position: relative; z-index: 1; }
.gv .ha-teams .pin::before { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: rgba(255,64,2,.35); animation: gvPulse 2.2s ease-out infinite; }
.gv .ha-teams .pin.p2::before { animation-delay: 1.1s; }
@keyframes gvPulse { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(3.4); opacity: 0; } }
.gv .ha-teams .pin.p1 { left: 28.14px; top: 62.18px; }
.gv .ha-teams .pin.p2 { left: 154.32px; top: 50.4px; }
.gv .ha-teams .route { position: absolute; left: 53.64px; top: 46.02px; width: 105.778px; height: 23.081px; }
.gv .ha-teams .route img { position: absolute; left: -0.29%; top: -2.21%; width: 100.52%; height: 103.98%; }
.gv .ha-teams .tz { position: absolute; top: 93.5px; font-size: 10.2px; color: rgba(25,25,25,.8); white-space: pre; }
.gv .ha-teams .tz.l { left: 15.3px; }
.gv .ha-teams .tz.r { right: 14.85px; text-align: right; }

.gv .ha-gap { left: 269px; top: 48px; width: 192.1px; padding: 13.6px; border-radius: 20px; display: flex; flex-direction: column; gap: 8.5px; box-shadow: 0 20.4px 51px -11.9px rgba(61,20,69,.22); z-index: 2; }
.gv .ha-gap .head { display: flex; gap: 8.5px; align-items: center; font-size: 10.2px; line-height: 15.3px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .ha-gap .head img { width: 18.7px; height: 18.7px; }
.gv .ha-gap .num { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 23.8px; line-height: 32.3px; color: var(--ink); }
.gv .ha-gap .sub { font-size: 10.2px; line-height: 15.3px; color: rgba(25,25,25,.7); white-space: nowrap; }
.gv .ha-gap .track { height: 3.4px; border-radius: 1.7px; background: #f1e2f6; overflow: hidden; position: relative; }
.gv .ha-gap .fill { position: absolute; left: 0; top: 0; height: 3.4px; border-radius: 1.7px; background: var(--or); width: 0; transition: width .8s var(--ease); }
.gv .ha-gap .hrows { display: flex; flex-direction: column; gap: 6.8px; }
.gv .ha-gap .hrow { display: flex; align-items: center; justify-content: space-between; }
.gv .ha-gap .lw { display: flex; gap: 6.8px; align-items: center; font-size: 10.2px; line-height: 17px; white-space: nowrap; color: var(--ink); transition: color .8s var(--ease); }
.gv .ha-gap .dot { width: 5.1px; height: 5.1px; border-radius: 50%; background: var(--or); transition: background .8s var(--ease); }
.gv .ha-gap .gp { padding: 1.7px 6.8px; border-radius: 20px; background: #fde9e1; color: var(--or); font-size: 8.5px; line-height: 13.6px; white-space: nowrap; transition: background .8s var(--ease), color .8s var(--ease); }
.gv .ha-gap .hrow.fixed .lw { color: rgba(25,25,25,.5); }
.gv .ha-gap .hrow.fixed .dot { background: var(--pu); }
.gv .ha-gap .hrow.fixed .gp { background: #f1e2f6; color: #8a2fa3; }

.gv .ha-win { left: 0; top: 138px; width: 429.25px; height: 391px; border-radius: 20.4px; overflow: hidden; box-shadow: 0 20.4px 51px -11.9px rgba(61,20,69,.22); }
.gv .ha-win .e { position: absolute; top: 20.4px; width: 7.65px; height: 7.65px; }
.gv .ha-win .ttl { position: absolute; left: 68.85px; top: 16.15px; font-weight: 400; font-size: 11.05px; white-space: nowrap; }
.gv .ha-win .live { position: absolute; left: 141.1px; top: 14.45px; width: 44.2px; height: 20.4px; border-radius: 10.2px; background: #f1e2f6; }
.gv .ha-win .live img { position: absolute; left: 8.5px; top: 7.65px; width: 5.1px; height: 5.1px; animation: gvBlink 1.6s ease-in-out infinite; }
@keyframes gvBlink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.gv .ha-win .live span { position: absolute; left: 17.85px; top: 3.4px; font-weight: 400; font-size: 9.35px; color: var(--pu); }
.gv .ha-win .rule { position: absolute; left: 0; top: 47.6px; width: 100%; height: .85px; background: rgba(25,25,25,.06); }
.gv .ha-win .so { position: absolute; left: 20.4px; top: 64.6px; font-size: 10.2px; color: rgba(25,25,25,.55); white-space: nowrap; }
.gv .ha-win .amt { position: absolute; left: 20.4px; top: 79.9px; font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 28.9px; letter-spacing: -.85px; white-space: nowrap; }
.gv .ha-win .count { position: absolute; left: 315.35px; top: 88.4px; width: 93.5px; height: 22.1px; border-radius: 11.05px; background: #f6f4f7; text-align: center; font-weight: 400; font-size: 9.35px; line-height: 22.1px; color: rgba(25,25,25,.55); transition: background .8s var(--ease), color .8s var(--ease); }
.gv .ha-win .count.done { background: #fde9e1; color: var(--or); }
.gv .ha-win .rail { position: absolute; left: 51px; top: 151.3px; width: 327.25px; height: .85px; background: rgba(25,25,25,.1); }
.gv .ha-win .rail-fill { position: absolute; left: 51px; top: 151.3px; width: 0; height: .85px; background: var(--or); transition: width .8s var(--ease); }
.gv .ha-win .tile { position: absolute; top: 139.4px; width: 37.4px; height: 23.8px; background: #fff; }
.gv .ha-win .tile .ic { position: absolute; left: 10.2px; top: 3.4px; width: 17px; height: 17px; }
.gv .ha-win .tile .tk { position: absolute; left: 25.5px; top: -5.95px; width: 11.9px; height: 11.9px; opacity: 0; transition: opacity .8s var(--ease); }
.gv .ha-win .tile.on .tk { opacity: 1; }
.gv .ha-win .team, .gv .ha-win .stat { position: absolute; width: 61.2px; margin-left: -30.6px; text-align: center; white-space: nowrap; transition: color .8s var(--ease); }
.gv .ha-win .team { top: 185.3px; font-weight: 400; font-size: 10.2px; color: rgba(25,25,25,.45); }
.gv .ha-win .stat { top: 200.6px; font-size: 9.35px; color: rgba(25,25,25,.3); }
.gv .ha-win .on-t .team { color: var(--ink); }
.gv .ha-win .on-t .stat { color: rgba(25,25,25,.6); }
.gv .ha-win .item { position: absolute; left: 20.4px; width: 388.45px; height: 30.6px; border-radius: 10.2px; background: #f6f4f7; transition: top .8s var(--ease), opacity .8s var(--ease); }
.gv .ha-win .item i { position: absolute; left: 11.9px; top: 12.32px; width: 5.95px; height: 5.95px; border-radius: 1.7px; }
.gv .ha-win .item .it { position: absolute; left: 26.4px; top: 8.5px; font-size: 10.2px; white-space: nowrap; }
.gv .ha-win .item .tm { position: absolute; right: 11.9px; top: 8.5px; font-size: 9.35px; color: rgba(25,25,25,.4); text-align: right; }

.gv .ha-orange { left: 102px; top: 545px; width: 226.1px; height: 71.4px; border-radius: 20px; background: var(--or); filter: drop-shadow(0 20.4px 21.25px rgba(61,20,69,.22)); }
.gv .ha-orange .a { position: absolute; left: 20.4px; top: 18.7px; font-size: 10.2px; color: #fff; white-space: nowrap; }
.gv .ha-orange .b { position: absolute; right: 20.4px; top: 17.85px; font-size: 10.2px; color: rgba(255,255,255,.9); text-align: right; white-space: nowrap; }
.gv .ha-orange .tr { position: absolute; left: 20.4px; top: 45.9px; width: 185.3px; height: 3.4px; border-radius: 1.7px; background: rgba(255,255,255,.3); }
.gv .ha-orange .fl { position: absolute; left: 20.4px; top: 45.9px; width: 37.4px; height: 3.4px; border-radius: 1.7px; background: #fff; transition: width .8s var(--ease); }
.gv .hero-art.fade { transition: opacity .4s ease-out; }

/* Hero responsive */
@media (max-width: 1199px) {
  .gv .hero { height: auto; padding: 56px 0 72px; margin-top: 0; }
  .gv .hero-dots { left: auto; right: -200px; }
  .gv .hero-copy { position: relative; left: auto; top: auto; width: min(580px, calc(100% - 48px)); margin: 0 auto; }
  .gv .hero-h1 { width: auto; }
  .gv .hero-art-box { position: relative; width: min(461px, calc(100% - 48px)); margin: 56px auto 0; aspect-ratio: 461 / 616; }
  .gv .hero-art { position: absolute; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--s, 1)); }
}
@media (min-width: 1200px) { .gv .hero-art-box { position: static; } .gv .nav-sheet { display: none; } }
@media (max-width: 767px) {
  .gv .hero { padding: 32px 0 56px; }
  .gv .hero-copy { width: calc(100% - 32px); }
  .gv .hero-h1 { font-size: 38px; line-height: 44px; letter-spacing: -1.2px; }
  .gv .hero-links { flex-direction: column; gap: 20px; align-items: flex-start; }
  .gv .hero-clients { height: auto; flex-direction: column; gap: 12px; }
  .gv .hero-clients p br { display: none; }
  .gv .hero-art-box { width: calc(100% - 32px); margin-top: 40px; }
}

/* ---------- Clients strip (sheet overlaps hero bottom) ---------- */
.gv .clients { margin-top: -64px; z-index: 2; background: #fff; border-radius: 30px 30px 0 0; padding: 64px 0 0; max-width: 1440px; margin-left: auto; margin-right: auto; }
.gv .clients-eyebrow { text-align: center; font-size: 13px; line-height: 20px; letter-spacing: 1.3px; color: rgba(25,25,25,.6); }
.gv .marquee { position: relative; width: min(1150px, calc(100% - 48px)); height: 64px; margin: 36px auto 0; overflow: hidden; }
.gv .marquee-track { position: absolute; left: 0; top: 0; height: 64px; display: flex; align-items: center; gap: 96px; padding-right: 96px; width: max-content; animation: gvMarq 30s linear infinite; }
.gv .marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes gvMarq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gv .marquee .lg { position: relative; flex: 0 0 auto; display: block; }
.gv .marquee .lg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .3s ease; }
.gv .marquee .lg .g { opacity: .5; }
.gv .marquee .lg .c { opacity: 0; }
.gv .marquee .lg:hover .g { opacity: 0; }
.gv .marquee .lg:hover .c { opacity: 1; }
.gv .marquee .mq-fade { position: absolute; top: 0; width: 160px; height: 64px; pointer-events: none; z-index: 1; }
.gv .marquee .mq-fade.l { left: 0; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); }
.gv .marquee .mq-fade.r { right: 0; background: linear-gradient(90deg, rgba(255,255,255,0), #fff); }

/* ---------- Stats / proof ---------- */
.gv .stats { padding: 160px 0 160px; }
.gv .stats-grid { margin-top: 80px; display: grid; grid-template-columns: 565px 565px; gap: 20px; justify-content: space-between; }
.gv .panel-grad, .gv .panel-refs { position: relative; height: 600px; border-radius: 30px; overflow: hidden; }
.gv .panel-grad { background: linear-gradient(180deg, #ff4002 0%, #a03ebb 100%); color: #fff; }
.gv .panel-grad .glow { position: absolute; pointer-events: none; }
.gv .panel-grad .g1 { left: 140px; top: -240px; width: 660px; height: 660px; }
.gv .panel-grad .g2 { left: -240px; top: 180px; width: 600px; height: 600px; }
.gv .pt { position: absolute; left: 40px; top: 40px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 30px; line-height: 36px; white-space: nowrap; }
.gv .ps { position: absolute; left: 40px; top: 88px; width: 420px; font-size: 16px; line-height: 26px; }
.gv .panel-grad .ps { left: 39px; color: rgba(255,255,255,.9); }
.gv .panel-refs { background: var(--lilac); }
.gv .panel-refs .ps { color: rgba(25,25,25,.7); }
.gv .panel-grad .big { position: absolute; left: 36px; top: 250px; font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 150px; line-height: 150px; white-space: nowrap; }
.gv .panel-grad .bigcap { position: absolute; left: 42px; top: 404px; font-size: 20px; line-height: 28px; color: rgba(255,255,255,.95); white-space: nowrap; }
.gv .panel-grad .div { position: absolute; left: 40px; top: 458px; width: 485px; height: 1px; background: rgba(255,255,255,.25); }
.gv .panel-grad .mini > div { position: absolute; top: 480px; }
.gv .panel-grad .mini > div:nth-child(1) { left: 40px; }
.gv .panel-grad .mini > div:nth-child(2) { left: 226px; }
.gv .panel-grad .mini > div:nth-child(3) { left: 440px; }
.gv .panel-grad .mn { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 32px; line-height: 38px; white-space: nowrap; }
.gv .panel-grad .ml { margin-top: 4px; font-size: 12px; line-height: 19px; color: rgba(255,255,255,.85); white-space: nowrap; }

.gv .refs { position: absolute; left: 40px; top: 200px; width: 560px; height: 440px; background: #fff; border-radius: 20px; box-shadow: 0 15px 40px rgba(25,25,25,.08); overflow: hidden; }
.gv .refs .rh { position: absolute; top: 26px; font-weight: 400; font-size: 12px; color: rgba(25,25,25,.5); white-space: nowrap; }
.gv .refs .hr { position: absolute; left: 28px; top: 60px; width: 504px; height: 1px; background: rgba(25,25,25,.07); }
.gv .refs .win { position: absolute; left: 0; top: 61px; width: 560px; height: 379px; overflow: hidden; }
.gv .refs .list { position: absolute; left: 0; top: 0; width: 560px; transition: transform .5s cubic-bezier(.42,0,.58,1); }
.gv .refs .r { position: relative; height: 66px; }
.gv .refs .r::after { content: ""; position: absolute; left: 28px; top: 65px; width: 504px; height: 1px; background: rgba(25,25,25,.07); }
.gv .refs .chip { position: absolute; left: 28px; top: 11px; width: 76px; height: 44px; border-radius: 12px; background: #f7f5fa; }
.gv .refs .chip img { position: absolute; left: 8px; top: 8px; width: 60px; height: 28px; object-fit: contain; }
.gv .refs .cn { position: absolute; left: 116px; top: 22px; font-weight: 400; font-size: 14px; white-space: nowrap; }
.gv .refs .cs { position: absolute; left: 272px; top: 23px; font-size: 14px; color: rgba(25,25,25,.65); white-space: nowrap; }
.gv .refs .vf { position: absolute; left: 420px; top: 20px; width: 96px; height: 26px; border-radius: 13px; background: rgba(255,64,2,.1); color: var(--or); font-weight: 400; font-size: 12px; line-height: 26px; padding-left: 32px; white-space: nowrap; }
.gv .refs .vf img { position: absolute; left: 8px; top: 5px; width: 16px; height: 16px; }
.gv .refs .fadeb { position: absolute; left: 0; top: 309px; width: 560px; height: 70px; background: linear-gradient(180deg, rgba(255,255,255,0), #fff); pointer-events: none; }

@media (max-width: 1199px) {
  .gv .stats { padding: 112px 0; }
  .gv .stats-grid { grid-template-columns: 1fr; max-width: 565px; margin-left: auto; margin-right: auto; margin-top: 56px; }
}
@media (max-width: 767px) {
  .gv .clients { margin-top: 0; padding-top: 48px; }
  .gv .marquee { width: 100%; margin-top: 24px; }
  .gv .marquee .mq-fade { width: 64px; }
  .gv .stats { padding: 80px 0; }
  .gv .stats-grid { margin-top: 40px; }
  .gv .panel-grad, .gv .panel-refs { height: auto; min-height: 0; border-radius: 24px; padding: 28px 24px; }
  .gv .pt, .gv .ps, .gv .panel-grad .big, .gv .panel-grad .bigcap, .gv .panel-grad .div, .gv .panel-grad .mini > div { position: relative; left: auto !important; top: auto; width: auto; white-space: normal; }
  .gv .pt { font-size: 24px; line-height: 30px; }
  .gv .ps { margin-top: 12px; font-size: 15px; line-height: 24px; }
  .gv .panel-grad .big { margin-top: 72px; font-size: 96px; line-height: 96px; }
  .gv .panel-grad .bigcap { margin-top: 8px; font-size: 16px; line-height: 24px; }
  .gv .panel-grad .div { margin: 24px 0 20px; width: 100%; }
  .gv .panel-grad .mini { display: flex; justify-content: space-between; gap: 12px; }
  .gv .panel-grad .mn { font-size: 26px; line-height: 32px; }
  .gv .panel-refs { padding-bottom: 0; }
  .gv .refs { position: relative; left: auto; top: auto; margin-top: 28px; margin-right: -24px; width: auto; height: 380px; border-radius: 16px 0 0 0; }
  .gv .refs .rh:nth-of-type(3) { display: none; }
  .gv .refs .vf { display: none; }
  .gv .refs .rh:nth-of-type(2) { display: none; }
  .gv .refs .cn { top: 12px; }
  .gv .refs .cs { left: 116px; top: 34px; font-size: 12px; line-height: 18px; }
  .gv .panel-grad .ml { white-space: normal; font-size: 11px; line-height: 16px; }
}
/* Pooja 5 Nov: the logo strip keeps moving even with Reduce Motion on (slow, gentle scroll) */
@media (prefers-reduced-motion: reduce) { .gv .marquee-track { animation-duration: 30s !important; animation-iteration-count: infinite !important; } }

/* ---------- Before and after slider ---------- */
.gv .ba { padding: 0 0 0; }
.gv .ba .sh { margin-bottom: 46px; }
.gv .ba-box { position: relative; width: 100%; height: calc(620px * var(--s, 1)); }
.gv .ba-stage { position: absolute; left: 0; top: 0; width: 1150px; height: 620px; border-radius: 30px; overflow: hidden; transform-origin: 0 0; transform: scale(var(--s, 1)); user-select: none; -webkit-user-select: none; touch-action: pan-y; cursor: ew-resize; background: #fff; isolation: isolate; }
.gv .ba-scene { position: absolute; left: 0; top: 0; width: 1150px; height: 620px; border-radius: 30px; overflow: hidden; background: #fff; }
.gv .ba-photo { position: absolute; left: -40px; top: -40px; width: 1230px; height: 700px; object-fit: cover; filter: blur(4px); pointer-events: none; }
.gv .ba-clip { position: absolute; top: 0; height: 620px; overflow: hidden; left: 989px; width: 161px; }
.gv .ba-clip .ba-scene { left: -989px; }
.gv .ba-divider { position: absolute; top: 0; left: 988px; width: 1px; height: 620px; background: #fff; pointer-events: none; z-index: 5; }
.gv .ba-handle { position: absolute; top: 237px; left: 961px; width: 56px; height: 56px; z-index: 6; cursor: grab; touch-action: none; border-radius: 50%; }
.gv .ba-handle:active { cursor: grabbing; }
.gv .ba-handle img { position: absolute; left: -40px; top: -28px; width: 136px; height: 136px; pointer-events: none; }
.gv .ba-hint { position: absolute; top: 305px; left: 909px; height: 30px; width: 132px; border-radius: 15px; background: #fff; box-shadow: 0 6px 20px rgba(51,13,51,.14); font-weight: 400; font-size: 12px; line-height: 30px; padding-left: 14px; white-space: nowrap; opacity: 0; transition: opacity .3s; z-index: 6; pointer-events: none; }
.gv .ba-stage:hover .ba-hint { opacity: 1; }
.gv .ba-stage.dragging .ba-hint { opacity: 0; }
.gv .ba-stage.anim .ba-clip, .gv .ba-stage.anim .ba-clip .ba-scene, .gv .ba-stage.anim .ba-divider, .gv .ba-stage.anim .ba-handle, .gv .ba-stage.anim .ba-hint { transition: left .8s cubic-bezier(.42,0,.58,1), width .8s cubic-bezier(.42,0,.58,1), opacity .3s; }

.gv .ba-pill { position: absolute; top: 24px; height: 30px; padding: 0 14px; border-radius: 15px; background: #fff; filter: drop-shadow(0 6px 10px rgba(51,13,51,.1)); font-weight: 400; font-size: 12px; line-height: 30px; white-space: nowrap; z-index: 3; }

.gv .ba-after .ba-pill { background: #ff4002; color: #fff; }

/* Notifications */
.gv .nt { position: absolute; width: 270px; height: 64px; border-radius: 16px; background: #fff; filter: drop-shadow(0 6px 10px rgba(51,13,51,.1)); }
.gv .nt-tile { position: absolute; left: 14px; top: 16px; width: 32px; height: 32px; border-radius: 9px; background: #f7f4f8; }
.gv .nt-tile img { position: absolute; left: 7px; top: 7px; width: 18px; height: 18px; }
.gv .nt-t { position: absolute; left: 58px; top: 12px; width: 164px; height: 20px; font-size: 13px; line-height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gv .nt-s { position: absolute; left: 58px; top: 32px; width: 196px; height: 18px; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.65); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gv .nt-time { position: absolute; right: 14px; top: 12px; width: 40px; text-align: right; font-size: 11px; line-height: 18px; color: rgba(25,25,25,.45); }
.gv .nt.aft .nt-time { color: var(--or); }

/* Dock */
.gv .dock-wrap { position: absolute; left: 366px; top: 469px; }
.gv .dock { position: relative; width: 418px; height: 68px; border-radius: 22px; background: #fff; filter: drop-shadow(0 6px 10px rgba(51,13,51,.1)); }
.gv .dk-tile { position: absolute; top: 14px; width: 40px; height: 40px; border-radius: 11px; background: #f7f4f8; }
.gv .dk-tile img { position: absolute; left: 9px; top: 9px; width: 22px; height: 22px; }
.gv .dk-b { position: absolute; top: 8px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: 8px; background: #e52d27; color: #fff; font-weight: 400; font-size: 9px; line-height: 16px; text-align: center; transition: transform .4s cubic-bezier(.3,1.4,.5,1); }
.gv .dk-b.bump { transform: scale(1.18); }

/* Monday cards */
.gv .mc { position: absolute; left: 385px; top: 84px; width: 380px; padding: 22px 24px 12px; border-radius: 20px; background: #fff; box-shadow: 0 16px 40px rgba(26,26,26,.14); }
.gv .mc-head { display: flex; gap: 8px; align-items: center; padding-bottom: 14px; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .mc-head img { width: 7px; height: 7px; }
.gv .mc-title { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 30px; line-height: 36px; white-space: nowrap; }
.gv .mc-sub { font-size: 14px; line-height: 22px; color: rgba(25,25,25,.6); }
.gv .mc-sp { display: block; height: 10px; }
.gv .mc-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-top: 1px solid rgba(25,25,25,.08); }
.gv .mc-l { font-size: 14px; line-height: 20px; color: rgba(25,25,25,.75); white-space: nowrap; }
.gv .mc-odoo .mc-l { color: rgba(25,25,25,.8); }
.gv .mc-p { padding: 3px 10px; border-radius: 20px; font-weight: 400; font-size: 12px; line-height: 18px; white-space: nowrap; transition: background-color .4s, color .4s; }
.gv .mc-p.a { background: rgba(106,104,103,.1); color: #6a6867; }
.gv .mc-p.b { background: rgba(114,112,111,.1); color: #72706f; }
.gv .mc-p.red { background: rgba(217,48,37,.1); color: #d93025; }
.gv .mc-p.w { background: #f1eff3; color: rgba(25,25,25,.45); transition: background-color .35s ease-out, color .35s ease-out; }
.gv .mc-p.pu { background: rgba(160,62,187,.12); color: var(--pu); }
.gv .mc-p.or { background: rgba(255,64,2,.12); color: var(--or); }
.gv .hw { position: absolute; left: 279px; top: 22px; display: flex; flex-direction: column; align-items: center; gap: 1px; text-align: center; white-space: nowrap; }
.gv .hw1 { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 19px; line-height: 20px; }
.gv .hw2 { font-size: 6.5px; line-height: 9px; letter-spacing: 2.08px; }
.gv .mc-before .hw { color: #9e9e99; }
.gv .mc-odoo .hw1 { color: #2f4a3a; }
.gv .mc-odoo .hw2 { color: rgba(47,74,58,.6); }
.gv [data-gv-before] .mc-title, .gv [data-gv-before] .mc-p, .gv .dock .dk-b { transition: opacity .4s ease, background-color .4s, color .4s, transform .4s; }
.gv .dissolve { animation: gvDissolve .3s ease-out; }
@keyframes gvDissolve { from { opacity: .2; } to { opacity: 1; } }

/* Phone: show the middle 520px of the scene (cards + dock), notifications off-stage */
@media (max-width: 767px) {
  .gv .ba .sh { margin-bottom: 32px; }
  .gv .ba-box { height: calc(620px * var(--s, 1)); }
  .gv .ba-stage { width: 520px; border-radius: 24px; }
  .gv .ba-stage .ba-scene { left: -315px; }
  .gv .ba-stage .ba-clip .ba-scene { left: calc(-315px - var(--cx, 0px)); }
  .gv .ba-stage .ba-before .ba-pill { left: 331px !important; }
  .gv .ba-stage .ba-after .ba-pill { left: auto !important; right: 331px; }
  .gv .ba-stage .nt { display: none; } /* side notifications would be cut off at phone width */
}

/* ---------- Five systems (sound familiar) ---------- */
.gv .fs { padding: 160px 0; }
.gv .fs .sh .h2 { max-width: 560px; }
.gv .fs-points { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 80px; }
.gv .fs-pt { border-top: 1px solid rgba(25,25,25,.12); padding-top: 20px; }
.gv .fs-n { display: block; color: var(--or); font-weight: 300; font-size: 13px; line-height: 20px; letter-spacing: 1.3px; margin-bottom: 12px; }
.gv .fs-pt p { margin: 0; max-width: 250px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }
.gv .fs-box { position: relative; margin-top: 64px; width: 100%; height: calc(466px * var(--s, 1)); }
.gv .fs-stage { position: absolute; left: 0; top: 0; width: 1150px; height: 466px; border-radius: 30px; overflow: hidden; background: #ff4002; transform-origin: 0 0; transform: scale(var(--s, 1)); isolation: isolate; }
.gv .fs-mesh { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.gv .fs-win { position: absolute; left: 40px; top: 40px; width: 1070px; height: 386px; border-radius: 20px; background: #fff; box-shadow: 0 16px 40px rgba(60,20,70,.1); }
.gv .fs-dots { position: absolute; left: 32px; top: 24px; display: flex; gap: 6px; }
.gv .fs-dots i { width: 8px; height: 8px; border-radius: 50%; background: rgba(25,25,25,.12); }
.gv .fs-title { position: absolute; left: 32px; top: 56px; margin: 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 22px; line-height: 28px; white-space: nowrap; }
.gv .fs-pill { position: absolute; left: 181px; top: 57px; padding: 4px 12px; border-radius: 20px; background: rgba(160,62,187,.1); color: #a03ebb; font-weight: 400; font-size: 12px; line-height: 18px; white-space: nowrap; transition: background-color .45s, color .45s; }
.gv .fs-pill.ok { background: rgba(255,64,2,.1); color: #ff4002; }
.gv .fs-cust { position: absolute; right: 32px; top: 60px; margin: 0; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .fs-sub { position: absolute; left: 32px; top: 92px; margin: 0; font-weight: 300; font-size: 14px; line-height: 22px; color: rgba(25,25,25,.6); }
.gv .fs-rule { position: absolute; left: 0; right: 0; top: 144px; height: 1px; background: rgba(25,25,25,.08); }
.gv .fs-track { position: absolute; left: 56px; top: 200px; width: 839px; height: 2px; border-radius: 1px; background: rgba(25,25,25,.08); }
.gv .fs-done { position: absolute; left: 0; top: 0; height: 100%; border-radius: 1px; background: #ff4002; width: var(--w, 0px); transition: width .45s, height .45s cubic-bezier(.42,0,.58,1); }
.gv .fs-list { position: absolute; inset: 0; }
.gv .fs-team { position: absolute; top: 176px; width: 173.2px; }
.gv .fs-node { position: absolute; left: 0; top: 0; width: 48px; height: 48px; box-sizing: border-box; border-radius: 14px; border: 1px solid rgba(25,25,25,.1); background: #fff; }
.gv .fs-node img { position: absolute; left: 8.69px; top: 8.69px; width: 28.625px; height: 28.625px; opacity: .35; transition: opacity .45s; }
.gv .fs-tick { position: absolute; left: 36px; top: -8px; width: 20px; height: 20px; opacity: 0; transform: scale(.6); transition: opacity .45s, transform .45s cubic-bezier(.3,1.4,.5,1); }
.gv .fs-l { position: absolute; left: 0; top: 72px; margin: 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 18px; line-height: 24px; color: rgba(25,25,25,.4); white-space: nowrap; transition: color .45s; }
.gv .fs-d { position: absolute; left: 0; top: 104px; width: 173.2px; margin: 0; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.3); transition: color .45s; }
.gv .fs-s { position: absolute; left: 0; top: 160px; margin: 0; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.35); white-space: nowrap; transition: color .45s; }
.gv .fs-team.on .fs-node img { opacity: 1; }
.gv .fs-team.on .fs-tick { opacity: 1; transform: scale(1); }
.gv .fs-team.on .fs-l { color: #191919; }
.gv .fs-team.on .fs-d { color: rgba(25,25,25,.6); }
.gv .fs-team.on .fs-s { color: #ff4002; }

@media (max-width: 1199px) {
  .gv .fs-points { grid-template-columns: repeat(2, 1fr); row-gap: 36px; }
  .gv .fs-pt p { max-width: none; }
}
@media (max-width: 767px) {
  .gv .fs { padding: 96px 0; }
  .gv .fs-points { grid-template-columns: 1fr; gap: 24px; margin-top: 40px; }
  .gv .fs-box { margin-top: 48px; height: auto !important; }
  /* Phone: the order window restacks vertically so it stays readable */
  .gv .fs-stage { position: relative; width: 100%; height: auto; padding: 16px; box-sizing: border-box; transform: none; border-radius: 24px; }
  .gv .fs-mesh { object-fit: cover; }
  .gv .fs-win { position: relative; left: 0; top: 0; width: auto; height: auto; padding: 48px 20px 8px; border-radius: 16px; }
  .gv .fs-dots { left: 20px; top: 20px; }
  .gv .fs-title, .gv .fs-cust, .gv .fs-sub { position: static; white-space: normal; }
  .gv .fs-pill { left: auto; right: 20px; top: 50px; }
  .gv .fs-cust { margin-top: 4px; font-size: 13px; }
  .gv .fs-sub { font-size: 13px; line-height: 20px; }
  .gv .fs-rule { position: static; display: block; margin: 16px -20px 20px; }
  .gv .fs-list { position: relative; inset: auto; }
  .gv .fs-track { left: 23px; top: 24px; bottom: 44px; width: 2px; height: auto; }
  .gv .fs-done { width: 100%; height: calc(100% * var(--p, 0)); transition: height .45s cubic-bezier(.42,0,.58,1); }
  .gv .fs-team { position: relative; left: 0 !important; top: 0; width: auto; min-height: 48px; padding: 0 0 20px 64px; }
  .gv .fs-l, .gv .fs-d, .gv .fs-s { position: static; width: auto; white-space: normal; }
  .gv .fs-l { font-size: 16px; line-height: 22px; padding-top: 2px; }
  .gv .fs-d { margin-top: 2px; }
  .gv .fs-s { margin-top: 4px; }
}

/* ---------- Image break + Odoo users counter ---------- */
.gv .ib-box { position: relative; height: 493px; border-radius: 30px; overflow: hidden; }
.gv .ib-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center bottom; border-radius: 30px; }
.gv .ib-cap { position: absolute; left: 24px; bottom: 20px; margin: 0; display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px 8px 14px; border-radius: 100px; background: #ff4002; box-shadow: 0 4px 16px rgba(26,13,38,.12); color: #fff; font-weight: 300; font-size: 14px; line-height: 20px; white-space: nowrap; }
.gv .ib-cap i { width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.gv .ib-card { position: absolute; left: 778px; top: 163px; width: 348px; box-sizing: border-box; padding: 22px 24px 20px; border-radius: 24px; background: #fff; box-shadow: 0 16px 24px rgba(31,13,46,.14); }
.gv .ib-head { display: flex; align-items: center; gap: 6px; }
.gv .ib-head > i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.gv .ib-ht { flex: 1; min-width: 0; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .ib-live { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border-radius: 100px; background: rgba(255,64,2,.1); color: #ff4002; font-weight: 400; font-size: 13px; line-height: 20px; }
.gv .ib-pulse { position: relative; width: 12px; height: 12px; }
.gv .ib-pulse::before, .gv .ib-pulse::after { content: ""; position: absolute; left: 3px; top: 3px; width: 6px; height: 6px; border-radius: 50%; background: #ff4002; }
.gv .ib-pulse::before { opacity: .7; animation: gvLivePulse 1.6s ease-out infinite; }
@keyframes gvLivePulse { from { transform: scale(1); opacity: .7; } to { transform: scale(2.2); opacity: 0; } }
.gv .ib-num { margin: 14px 0 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 52px; line-height: 58px; letter-spacing: -1.8px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gv .ib-sub { margin: 0; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); opacity: 0; transition: opacity .4s ease-in-out; }
.gv .ib-line { position: relative; margin-top: 12px; width: 300px; height: 56px; }
.gv .ib-line img { position: absolute; left: -1px; top: 8px; width: 293px; height: 46px; }
.gv .ib-halo { position: absolute; left: 287px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: rgba(160,62,187,.35); transition: transform .4s ease-in-out; }
.gv .ib-halo.big { transform: scale(1.8); }
.gv .ib-dot { position: absolute; left: 288px; top: 4px; width: 8px; height: 8px; box-sizing: border-box; border-radius: 50%; background: #a03ebb; border: 2px solid #fff; }
.gv .ib-axis { display: flex; justify-content: space-between; padding-top: 6px; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.4); }
.gv .ib-div { display: block; height: 1px; margin: 14px 0; background: rgba(25,25,25,.08); }
.gv .ib-foot { display: flex; align-items: center; justify-content: space-between; opacity: 0; transition: opacity .4s ease-in-out; }
.gv .ib-on .ib-sub, .gv .ib-on .ib-foot { opacity: 1; }
.gv .ib-src { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.5); }
.gv .ib-lnk { gap: 2px; }
.gv .ib-lnk .lnk-row { gap: 10px; font-size: 13px; line-height: 20px; }
.gv .ib-lnk .lnk-row img { width: 11.375px; height: 11.375px; }

@media (max-width: 1199px) {
  .gv .ib-card { left: auto; right: 24px; }
}
@media (max-width: 767px) {
  .gv .ib-box { height: auto; overflow: visible; }
  .gv .ib-photo { position: relative; display: block; height: 360px; }
  .gv .ib-cap { top: 16px; bottom: auto; left: 50%; transform: translateX(-50%); font-size: 12px; }
  .gv .ib-card { position: relative; left: auto; right: auto; top: auto; width: auto; max-width: 348px; margin: -24px auto 0; }
  .gv .ib-num { font-size: 44px; line-height: 52px; letter-spacing: -1.5px; }
  .gv .ib-line { width: 100%; }
  .gv .ib-line img { width: calc(100% - 7px); }
  .gv .ib-halo { left: auto; right: 3px; }
  .gv .ib-dot { left: auto; right: 4px; }
}

/* ---------- What we do · accordion (Figma 1183:4309, smart animate .45s ease-out) ---------- */
.gv .wd { padding: 160px 0; }
.gv .wd-grid { display: grid; grid-template-columns: 560px 530px; justify-content: space-between; align-items: start; margin-top: 88px; }
.gv .wd-row { border-top: 1px solid rgba(25,25,25,.1); }
.gv .wd-row:last-child { border-bottom: 1px solid rgba(25,25,25,.1); }
.gv .wd-btn { display: block; width: 100%; padding: 31px 0 33px; margin: 0; border: 0; background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.gv .wd-row.on .wd-btn { cursor: default; padding-bottom: 0; }
.gv .wd-eb { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .45s cubic-bezier(0,0,.58,1), opacity .45s cubic-bezier(0,0,.58,1); }
.gv .wd-eb > span { overflow: hidden; display: block; padding-left: 40px; color: #ff4002; font-weight: 300; font-size: 12px; line-height: 18px; letter-spacing: 1.2px; white-space: nowrap; }
.gv .wd-row.on .wd-eb { grid-template-rows: 1fr; opacity: 1; }
.gv .wd-row.on .wd-eb > span { padding-bottom: 6px; }
.gv .wd-tl { position: relative; display: block; padding: 0 40px; }
.gv .wd-t { display: block; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 24px; line-height: 30px; color: rgba(25,25,25,.45); transition: color .45s cubic-bezier(0,0,.58,1); }
.gv .wd-btn:hover .wd-t { color: rgba(25,25,25,.7); }
.gv .wd-row.on .wd-t { color: #191919; }
.gv .wd-ic { position: absolute; left: 0; top: 3px; width: 24px; height: 24px; background: rgba(25,25,25,.55); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; transition: background-color .45s; }
.gv .wd-row.on .wd-ic { background: #ff4002; }
.gv .wd-pm { position: absolute; right: 0; top: 7px; width: 16px; height: 16px; }
.gv .wd-pm::before, .gv .wd-pm::after { content: ""; position: absolute; left: 2px; top: 7.5px; width: 12px; height: 1px; background: rgba(25,25,25,.6); transition: transform .45s cubic-bezier(0,0,.58,1); }
.gv .wd-pm::after { transform: rotate(90deg); }
.gv .wd-row.on .wd-pm::after { transform: rotate(0deg); }
.gv .wd-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s cubic-bezier(0,0,.58,1); }
.gv .wd-body > div { overflow: hidden; }
.gv .wd-body p { margin: 0; padding: 12px 0 33px 40px; max-width: 480px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); opacity: 0; transition: opacity .45s cubic-bezier(0,0,.58,1); }
.gv .wd-row.on .wd-body { grid-template-rows: 1fr; }
.gv .wd-row.on .wd-body p { opacity: 1; }

.gv .wd-panel { position: relative; height: 516px; border-radius: 30px; overflow: hidden; background: #ff4002; isolation: isolate; }
.gv .wd-e { position: absolute; border-radius: 50%; filter: blur(120px); pointer-events: none; }
.gv .wd-e.e1 { left: -160px; top: -120px; width: 520px; height: 520px; background: rgba(255,194,168,.9); }
.gv .wd-e.e2 { left: 260px; top: 420px; width: 520px; height: 520px; background: rgba(255,64,2,.85); }
.gv .wd-e.e3 { left: -120px; top: 640px; width: 420px; height: 420px; background: rgba(255,217,199,.9); }
.gv .wd-e.e4 { left: 300px; top: -200px; width: 360px; height: 360px; background: rgba(226,184,236,.9); }
.gv .wd-e.e5 { left: 140px; top: 260px; width: 200px; height: 200px; background: rgba(255,255,255,.7); }
.gv .wd-grid-dots { position: absolute; left: 0; top: 0; width: 508.5px; height: 577.5px; pointer-events: none; }
.gv .wd-card { position: absolute; left: 55px; top: 54px; width: 420px; border-radius: 20px; background: #fff; box-shadow: 0 16px 40px rgba(51,13,51,.12); overflow: hidden; opacity: 0; transition: opacity .45s cubic-bezier(0,0,.58,1); pointer-events: none; }
.gv .wd-card.on { opacity: 1; pointer-events: auto; }
.gv .wd-ch { margin: 0; padding: 18px 24px; border-bottom: 1px solid rgba(25,25,25,.08); font-weight: 400; font-size: 14px; line-height: 20px; color: #191919; white-space: nowrap; }
.gv .wd-cb { padding: 24px 24px 20px; display: flex; flex-direction: column; gap: 22px; }
.gv .wd-stats { display: flex; gap: 20px; }
.gv .wd-stats > div { flex: 1 0 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gv .wd-stats p { margin: 0; }
.gv .wd-n { font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 38px; line-height: 44px; color: #191919; white-space: nowrap; }
.gv .wd-n.pu { color: #a03ebb; }
.gv .wd-sl { font-weight: 400; font-size: 13px; line-height: 20px; color: #191919; }
.gv .wd-ss { font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.55); }
.gv .wd-tr { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.75); white-space: nowrap; }
.gv .wd-th { color: rgba(25,25,25,.5); }
.gv .wd-th span + span { font-weight: 400; }
.gv .wd-chip { padding: 2px 10px; border-radius: 12px; font-weight: 400; font-size: 11px; line-height: 18px; }
.gv .wd-chip.or { background: rgba(255,64,2,.1); color: #ff4002; }
.gv .wd-chip.pu { background: rgba(160,62,187,.1); color: #a03ebb; }

@media (max-width: 1199px) {
  .gv .wd-grid { grid-template-columns: 1fr; row-gap: 48px; }
  .gv .wd-panel { max-width: 560px; width: 100%; }
}
@media (max-width: 767px) {
  .gv .wd { padding: 96px 0; }
  .gv .wd-grid { margin-top: 48px; }
  .gv .wd-t { font-size: 20px; line-height: 26px; }
  .gv .wd-btn { padding: 24px 0 26px; }
  .gv .wd-body p { padding-bottom: 26px; font-size: 15px; line-height: 24px; }
  /* Phone: panel hugs the card with the same space on every side */
  .gv .wd-panel { height: auto; display: grid; padding: 24px; }
  .gv .wd-card { position: relative; grid-area: 1 / 1; left: auto; right: auto; top: auto; width: auto; }
  .gv .wd-cb { padding: 20px 18px 16px; }
  .gv .wd-n { font-size: 32px; line-height: 38px; }
}

/* ---------- Dashboards · Monday morning (Figma 1183:1467, set 991:961) ---------- */
.gv .db { position: relative; overflow: hidden; padding: 160px 0; background: #ff4002; color: #fff; isolation: isolate; }
.gv .db-mesh { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; pointer-events: none; }
.gv .db .eyebrow { color: rgba(255,255,255,.85); }
.gv .db .h2 { color: #fff; }
.gv .db .intro { color: rgba(255,255,255,.9); }
.gv .db-ui { margin-top: 80px; }
.gv .db-tabs { position: relative; display: grid; grid-template-columns: repeat(4, 272px); justify-content: space-between; height: 76px; }
.gv .db-tabs::after { content: ""; position: absolute; left: 0; right: 0; top: 75px; height: 1px; background: rgba(255,255,255,.25); }
.gv .db-tab { position: relative; height: 76px; padding: 0; margin: 0; border: 0; background: none; text-align: left; color: #fff; font: inherit; cursor: pointer; opacity: .6; transition: opacity .45s cubic-bezier(.42,0,.58,1); }
.gv .db-tab:hover { opacity: .85; }
.gv .db-tab.on { opacity: 1; cursor: default; }
.gv .db-ti { position: absolute; left: 0; top: 10px; width: 44px; height: 44px; border-radius: 12px; background: #fff; }
.gv .db-ti img { position: absolute; left: 7.69px; top: 7.69px; width: 28.625px; height: 28.625px; }
.gv .db-tn { position: absolute; left: 58px; top: 14px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 18px; line-height: 24px; white-space: nowrap; }
.gv .db-ts { position: absolute; left: 58px; top: 40px; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(255,255,255,.85); white-space: nowrap; }
.gv .db-bar { position: absolute; left: 0; top: 75px; width: 272px; height: 1px; background: #fff; z-index: 1; transition: transform .45s cubic-bezier(.42,0,.58,1), width .45s cubic-bezier(.42,0,.58,1); }
.gv .db-box { position: relative; margin-top: 24px; width: 100%; height: calc(540px * var(--s, 1)); }
.gv .db-win { position: absolute; left: 0; top: 0; width: 1150px; height: 540px; border-radius: 20px; background: #fff; box-shadow: 0 24px 60px rgba(60,20,70,.18); overflow: hidden; color: #191919; transform-origin: 0 0; transform: scale(var(--s, 1)); }
.gv .db-win p { margin: 0; }
.gv .db-win > span, .gv .db-v > * { position: absolute; }
.gv .db-dot { top: 28px; width: 8px; height: 8px; border-radius: 50%; }
.gv .db-live { left: 1066px; top: 20px; padding: 3px 10px; border-radius: 20px; background: rgba(160,62,187,.1); color: #a03ebb; font-weight: 300; font-size: 12px; line-height: 18px; white-space: nowrap; }
.gv .db-hr { left: 0; width: 1150px; height: 1px; background: rgba(25,25,25,.06); }
.gv .db-vr { top: 88px; width: 1px; height: 110px; background: rgba(25,25,25,.06); }
.gv .db-vr2 { left: 824px; top: 222px; width: 1px; height: 318px; background: rgba(25,25,25,.06); }
.gv .db-v { position: absolute; inset: 0; opacity: 0; transition: opacity .45s cubic-bezier(.42,0,.58,1); pointer-events: none; }
.gv .db-v.on { opacity: 1; }
.gv .db-title { left: 90px; top: 21px; font-weight: 300; font-size: 15px; line-height: 22px; color: rgba(25,25,25,.8); white-space: nowrap; }
.gv .db-range { left: 864px; top: 18px; display: flex; gap: 2px; padding: 3px; border-radius: 20px; background: rgba(25,25,25,.04); }
.gv .db-range span { padding: 3px 12px; border-radius: 16px; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.5); }
.gv .db-range span.on { background: #fff; color: rgba(25,25,25,.9); box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.gv .db-kl { top: 90px; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .db-kb { top: 114px; font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 48px; line-height: 56px; letter-spacing: -1.5px; white-space: nowrap; }
.gv .db-kp { top: 176px; padding: 3px 10px; border-radius: 20px; background: rgba(255,64,2,.1); color: #ff4002; font-weight: 300; font-size: 12px; line-height: 18px; white-space: nowrap; }
.gv .db-kn { top: 120px; font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 36px; line-height: 44px; letter-spacing: -1px; white-space: nowrap; }
.gv .db-ks { top: 170px; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.45); white-space: nowrap; }
.gv .db-ks.up { color: #ff4002; }
.gv .db-ct { left: 32px; top: 252px; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.8); white-space: nowrap; }
.gv .db-gl { left: 32px; width: 760px; height: 1px; background: rgba(25,25,25,.05); }
.gv .db-area { left: 32px; width: 760px; }
.gv .db-line { left: 31px; width: 762px; }
.gv .db-cur { left: 792px; width: 1px; background: rgba(160,62,187,.3); }
.gv .db-pt { left: 786px; width: 12px; height: 12px; box-sizing: border-box; border-radius: 50%; background: #a03ebb; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(160,62,187,.2); }
.gv .db-tip { padding: 5px 10px; border-radius: 10px; background: #191919; color: #fff; font-weight: 400; font-size: 12px; line-height: 16px; white-space: nowrap; }
.gv .db-wk { top: 478px; width: 40px; margin-left: -20px; text-align: center; font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
.gv .db-wk:nth-of-type(1) { }
.gv .db-b { bottom: 74px; width: 96px; border-radius: 6px 6px 0 0; background: rgba(160,62,187,.14); transform-origin: bottom; }
.gv .db-b.hi { background: #a03ebb; }
.gv .db-bn { width: 96px; text-align: center; font-weight: 300; font-size: 13px; line-height: 18px; color: rgba(25,25,25,.6); }
.gv .db-bn.hi { font-weight: 400; color: rgba(25,25,25,.9); }
.gv .db-bd { top: 478px; width: 96px; text-align: center; font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
.gv .db-wt { left: 32px; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.8); white-space: nowrap; }
.gv .db-wc { right: 418px; padding: 3px 10px; border-radius: 20px; background: rgba(160,62,187,.1); color: #a03ebb; font-weight: 300; font-size: 12px; line-height: 18px; white-space: nowrap; }
.gv .db-wp { left: 748px; width: 44px; text-align: right; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); }
.gv .db-wb { left: 32px; width: 760px; height: 6px; border-radius: 3px; background: rgba(160,62,187,.1); overflow: hidden; }
.gv .db-wb i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #ff4002, #a03ebb); transition: width .8s cubic-bezier(.42,0,.58,1); }
.gv .db-v:not(.on) .db-wb i { width: 0 !important; }
.gv .db-jn { left: 850px; top: 252px; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.8); }
.gv .db-tk { left: 850px; width: 18px; height: 18px; }
.gv .db-ft { left: 880px; width: 240px; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.85); }
.gv .db-fm { left: 880px; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.45); }
.gv .db-fl { left: 858.5px; width: 1px; height: 22px; background: rgba(25,25,25,.1); }
.gv .db-note { margin: 12px 0 0; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(255,255,255,.7); }

@media (max-width: 1199px) {
  .gv .db-tabs { grid-template-columns: repeat(4, 1fr); column-gap: 16px; }
  .gv .db-ts { display: none; }
  .gv .db-tn { top: 20px; }
}
@media (max-width: 767px) {
  .gv .db { padding: 96px 0; }
  .gv .db-ui { margin-top: 48px; }
  .gv .db-tabs { grid-template-columns: 1fr 1fr; row-gap: 8px; height: auto; }
  .gv .db-tabs::after, .gv .db-bar { display: none; }
  .gv .db-tab { height: 60px; border-radius: 14px; padding: 0; }
  .gv .db-tab.on { background: rgba(255,255,255,.18); }
  .gv .db-ti { left: 8px; top: 8px; }
  .gv .db-tn { left: 62px; top: 18px; font-size: 16px; }
  .gv .db-box { margin-top: 16px; }
}

/* Phone dashboard card (built by JS from the desktop window) */
.gv .db-m { display: none; }
@media (max-width: 767px) {
  .gv .db-box { display: none; }
  .gv .db-m { display: grid; margin-top: 16px; }
  .gv .db-m p { margin: 0; }
  .gv .db-mv { grid-area: 1 / 1; background: #fff; color: #191919; border-radius: 20px; box-shadow: 0 24px 60px rgba(60,20,70,.18); padding: 18px 16px 20px; opacity: 0; visibility: hidden; transition: opacity .45s cubic-bezier(.42,0,.58,1), visibility 0s .45s; }
  .gv .db-mv.on { opacity: 1; visibility: visible; transition: opacity .45s cubic-bezier(.42,0,.58,1); }
  .gv .db-mh { display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid rgba(25,25,25,.06); }
  .gv .db-md { display: flex; gap: 6px; } .gv .db-md i { width: 8px; height: 8px; border-radius: 50%; }
  .gv .db-mt { flex: 1; min-width: 0; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.8); }
  .gv .db-ml { padding: 3px 10px; border-radius: 20px; background: rgba(160,62,187,.1); color: #a03ebb; font-weight: 300; font-size: 12px; line-height: 18px; white-space: nowrap; }
  .gv .db-mk { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid rgba(25,25,25,.06); }
  .gv .db-mkc { padding: 14px 0 16px; min-width: 0; }
  .gv .db-mkc:nth-child(even) { padding-left: 14px; border-left: 1px solid rgba(25,25,25,.06); }
  .gv .db-mkc:nth-child(-n+2) { border-bottom: 1px solid rgba(25,25,25,.06); }
  .gv .db-mkl { font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.6); }
  .gv .db-mkn { margin-top: 4px !important; font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 28px; line-height: 34px; letter-spacing: -.8px; }
  .gv .db-mks { margin-top: 4px !important; font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
  .gv .db-mks.up { color: #ff4002; }
  .gv .db-mks.pill { display: inline-block; padding: 3px 8px; border-radius: 10px; background: rgba(255,64,2,.1); color: #ff4002; }
  .gv .db-mch { position: relative; padding: 16px 0; border-bottom: 1px solid rgba(25,25,25,.06); }
  .gv .db-mct { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.8); margin-bottom: 14px !important; }
  .gv .db-mtip { position: absolute; right: 0; top: 14px; padding: 3px 8px; border-radius: 8px; background: #191919; color: #fff; font-size: 11px; line-height: 16px; }
  .gv .db-mfit { position: relative; width: 100%; }
  .gv .db-mclip { position: absolute; left: 0; top: 0; width: 776px; height: 196px; overflow: hidden; transform-origin: 0 0; transform: scale(var(--s, 1)); }
  .gv .db-mclip .db-mcv { inset: auto; left: -24px; top: -284px; width: 1150px; height: 540px; opacity: 1; }
  .gv .db-maxis { display: flex; justify-content: space-between; margin-top: 8px; font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
  .gv .db-mbars { display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; }
  .gv .db-mbc { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
  .gv .db-mb { width: 100%; max-width: 44px; border-radius: 6px 6px 0 0; background: rgba(160,62,187,.14); }
  .gv .db-mbc.hi .db-mb { background: #a03ebb; }
  .gv .db-mbn { font-weight: 300; font-size: 12px; line-height: 16px; color: rgba(25,25,25,.6); }
  .gv .db-mbc.hi .db-mbn { color: rgba(25,25,25,.9); font-weight: 400; }
  .gv .db-mbd { font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
  .gv .db-mwo { display: grid; gap: 6px; }
  .gv .db-mwo + .db-mwo { margin-top: 14px; }
  .gv .db-mwr { display: flex; justify-content: space-between; gap: 12px; }
  .gv .db-mwr p { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.8); }
  .gv .db-mwp { font-weight: 300; font-size: 12px; line-height: 20px; color: rgba(25,25,25,.6); }
  .gv .db-mwc { justify-self: start; padding: 2px 8px; border-radius: 20px; background: rgba(160,62,187,.1); color: #a03ebb; font-weight: 300; font-size: 11px; line-height: 16px; }
  .gv .db-mwb { display: block; height: 6px; border-radius: 3px; background: rgba(160,62,187,.1); overflow: hidden; }
  .gv .db-mwb i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #ff4002, #a03ebb); }
  .gv .db-mf { padding-top: 16px; }
  .gv .db-mfi { display: grid; grid-template-columns: 18px 1fr auto; column-gap: 10px; align-items: center; }
  .gv .db-mfi + .db-mfi { margin-top: 10px; }
  .gv .db-mfi img { width: 18px; height: 18px; }
  .gv .db-mfi p { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.85); }
  .gv .db-mfi span { font-weight: 300; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.45); }
}

/* ---------- Industries (Figma 1183:1479, set 1183:4727) ---------- */
.gv .sec-ind { padding: 160px 0; }
.gv .in-ui { margin-top: 80px; padding-left: 2px; }
.gv .in-tabs { position: relative; display: inline-flex; gap: 48px; padding-bottom: 10px; border-bottom: .83px solid rgba(25,25,25,.12); }
.gv .in-tab { padding: 0; margin: 0; border: 0; background: none; font: inherit; font-weight: 300; font-size: 16px; line-height: 24px; color: rgba(25,25,25,.6); white-space: nowrap; cursor: pointer; transition: color .45s cubic-bezier(.42,0,.58,1); }
.gv .in-tab:hover { color: rgba(25,25,25,.85); }
.gv .in-tab.on { color: #191919; font-weight: 400; cursor: default; }
.gv .in-bar { position: absolute; left: 0; bottom: -.83px; height: 1px; width: 118px; background: linear-gradient(90deg, #ff4002, #a03ebb); transition: transform .45s cubic-bezier(.42,0,.58,1), width .45s cubic-bezier(.42,0,.58,1); }
.gv .in-stack { display: none; }
.gv .in-body { display: grid; grid-template-columns: 373px 772px; margin-top: 62px; }
.gv .in-copy { position: relative; display: grid; padding-top: 111.4px; }
.gv .in-c { grid-area: 1 / 1; width: 380px; opacity: 0; visibility: hidden; transition: opacity .45s cubic-bezier(.42,0,.58,1), visibility 0s .45s; }
.gv .in-c.on { opacity: 1; visibility: visible; transition: opacity .45s cubic-bezier(.42,0,.58,1), visibility 0s; }
.gv .in-eb { margin: 0; font-weight: 300; font-size: 13px; line-height: 20px; letter-spacing: 1.3px; color: rgba(25,25,25,.6); }
.gv .in-h { margin: 16px 0 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 30px; line-height: 36px; letter-spacing: -.5px; color: #191919; }
.gv .in-pts { list-style: none; margin: 36px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.gv .in-pts li { position: relative; padding-left: 24px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }
.gv .in-pts li::before { content: ""; position: absolute; left: 0; top: 12.5px; width: 12px; height: 1px; background: #ff4002; }
.gv .in-vbox { position: relative; width: 100%; height: calc(544px * var(--s, 1)); }
.gv .in-vis { position: absolute; left: 0; top: 0; width: 772px; height: 544px; transform-origin: 0 0; transform: scale(var(--s, 1)); }
.gv .in-v { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .45s cubic-bezier(.42,0,.58,1), visibility 0s .45s; }
.gv .in-v.on { opacity: 1; visibility: visible; transition: opacity .45s cubic-bezier(.42,0,.58,1), visibility 0s; }
.gv .in-ph { position: absolute; top: 0; object-fit: cover; }
.gv .in-card { position: absolute; background: #fff; border-radius: 16px; box-shadow: 0 15.16px 37.89px rgba(25,25,25,.08); overflow: hidden; color: #191919; }
.gv .in-card > * { position: absolute; margin: 0; white-space: nowrap; font-weight: 300; }
.gv .in-card .tm { font-family: 'Tomorrow', sans-serif; font-weight: 300; }
.gv .in-card .chip { border-radius: 631px; background: rgba(160,62,187,.1); color: #a03ebb; }
.gv .in-card .bar { width: 22.76px; border-radius: 4.98px 4.98px 1.66px 1.66px; background: rgba(160,62,187,.14); }
.gv .in-card .bar.hi { background: #ff4002; }
.gv .in-card .dl { top: 260.52px; font-size: 9.13px; line-height: 11.62px; color: rgba(25,25,25,.5); }
.gv .in-card .rule { height: 1px; background: rgba(25,25,25,.08); }
.gv .in-card.pc .rule { height: .63px; }
.gv .in-card .b { font-weight: 400; font-size: 11px; line-height: 15px; }
.gv .in-card .s { font-size: 9px; line-height: 13px; }
.gv .in-card .m { font-size: 10px; line-height: 14px; color: rgba(25,25,25,.75); }
.gv .in-card .m.r { color: #191919; text-align: right; }
.gv .in-card .ck { width: 12px; height: 12px; border-radius: 50%; background: #ff4002; }
.gv .in-card .ck::after { content: ""; position: absolute; left: 4px; top: 2.5px; width: 3px; height: 5px; border: solid #fff; border-width: 0 1.2px 1.2px 0; transform: rotate(45deg); }
.gv .in-card .tag { padding: 3px 8px; border-radius: 999px; background: rgba(255,64,2,.1); color: #ff4002; font-size: 9px; line-height: 14px; }
.gv .in-card .av { left: 18px; width: 30px; height: 30px; border-radius: 50%; font-weight: 400; font-size: 10px; line-height: 30px; text-align: center; }
.gv .in-card .av.or { background: rgba(255,64,2,.12); color: #ff4002; }
.gv .in-card .av.pu { background: rgba(160,62,187,.15); color: #a03ebb; }
.gv .in-card .trk { left: 58px; width: 139px; height: 4px; border-radius: 2px; background: rgba(160,62,187,.1); overflow: hidden; }
.gv .in-card .trk b { display: block; height: 100%; border-radius: 2px; background: linear-gradient(90deg, #ff4002, #a03ebb); }

@media (max-width: 1199px) {
  .gv .in-body { grid-template-columns: 1fr; row-gap: 48px; margin-top: 40px; }
  .gv .in-copy { padding-top: 0; }
  .gv .in-vbox { max-width: 772px; }
}
/* Phone and tablet: industries one after another, with jump pills one per line.
   Space above the pills (48) = space below them (56 gap - 8). */
@media (max-width: 1199px) {
  .gv .in-ui { margin-top: 48px; padding-left: 0; }
  .gv .in-tabs, .gv .in-body { display: none; }
  .gv .in-stack { display: flex; flex-direction: column; gap: 56px; }
  .gv .in-si .in-vbox { margin-top: 28px; max-width: 772px; }
  .gv .in-jump { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: -8px; }
  .gv .in-jump a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid rgba(25,25,25,.16); border-radius: 100px; color: #191919; font-weight: 300; font-size: 14px; line-height: 20px; text-decoration: none; transition: border-color .3s, color .3s; }
  .gv .in-jump a:active, .gv .in-jump a:hover { border-color: #ff4002; color: #ff4002; }
  .gv .in-jump a span { font-size: 12px; }
  .gv .in-c { width: auto; }
}
@media (max-width: 767px) {
  .gv .sec-ind { padding: 96px 0; }
  .gv .in-h { font-size: 26px; line-height: 32px; }
  .gv .in-pts { margin-top: 24px; }
  .gv .in-pts li { font-size: 15px; line-height: 24px; }
}

/* ---------- Full-width image break · warehouse (Figma 1183:1491) ---------- */
.gv .wh { position: relative; height: 873px; overflow: hidden; }
.gv .wh-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gv .wh .wrap { padding-top: 92px; }
.gv .wh-box { position: relative; width: 388px; max-width: 100%; height: calc(687px * var(--s, 1)); }
.gv .wh-st { position: absolute; left: 0; top: 0; width: 388px; height: 687px; transform-origin: 0 0; transform: scale(var(--s, 1)); }
.gv .wh-st p { margin: 0; white-space: nowrap; }
.gv .wh-c { position: absolute; left: 0; background: #fff; border-radius: 20px; box-shadow: 0 24px 60px -14px rgba(61,20,69,.22); }
.gv .wh-acc { display: flex; align-items: center; gap: 28px; padding: 26px 28px; }
.gv .wh-acc > div { display: flex; flex-direction: column; gap: 4px; }
.gv .wh-l { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); }
.gv .wh-big { font-family: 'Tomorrow', sans-serif; font-weight: 300; font-size: 64px; line-height: 68px; color: #191919; }
.gv .wh-arc { transition: stroke-dashoffset 1.2s cubic-bezier(.42,0,.58,1); }
.gv .wh-tag { position: absolute; left: 0; display: flex; align-items: center; gap: 8px; padding: 9px 16px 9px 14px; border-radius: 20px; background: #ff4002; color: #fff; font-weight: 300; font-size: 13px; line-height: 20px; }
.gv .wh-van { display: flex; align-items: center; gap: 14px; padding: 12px 24px 12px 12px; border-radius: 40px; }
.gv .wh-t { font-weight: 400; font-size: 14px; line-height: 20px; color: #191919; }
.gv .wh-s { font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.6); }
.gv .wh-del { width: 388px; box-sizing: border-box; padding: 22px 24px; }
.gv .wh-hd { display: flex; justify-content: space-between; align-items: center; }
.gv .wh-n { font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.6); }
.gv .wh-rt { position: relative; margin-top: 16px; width: 340px; height: 64px; }
.gv .wh-rt > * { position: absolute; }
.gv .wh-tr { left: 7px; top: 8px; width: 326px; height: 1px; background: rgba(25,25,25,.12); }
.gv .wh-done { left: 7px; top: 8px; width: 0; height: 1px; background: #ff4002; transition: width .9s cubic-bezier(.42,0,.58,1); }
.gv .wh-pt { top: 1px; width: 14px; height: 14px; box-sizing: border-box; border-radius: 50%; border: 1px solid #ff4002; background: #fff; transition: background-color .9s cubic-bezier(.42,0,.58,1); }
.gv .wh-pt.on { background: #ff4002; }
.gv .wh-sn { top: 24px; font-weight: 400; font-size: 13px; line-height: 20px; color: #191919; }
.gv .wh-ss { top: 44px; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.6); }
.gv .wh-stk { width: 300px; box-sizing: border-box; padding: 22px 24px; display: flex; flex-direction: column; gap: 16px; }
.gv .wh-row { display: flex; flex-direction: column; gap: 8px; }
.gv .wh-row p { display: flex; justify-content: space-between; align-items: center; font-weight: 300; font-size: 13px; line-height: 20px; }
.gv .wh-row span { color: rgba(25,25,25,.7); }
.gv .wh-row p b { font-weight: 300; color: #191919; }
.gv .wh-row em { font-style: normal; padding: 3px 10px; border-radius: 12px; background: rgba(255,64,2,.1); color: #ff4002; font-weight: 400; font-size: 11px; line-height: 16px; }
.gv .wh-row i { display: block; height: 4px; border-radius: 2px; background: rgba(160,62,187,.12); overflow: hidden; }
.gv .wh-row i b { display: block; height: 4px; border-radius: 2px; background: #a03ebb; }

@media (max-width: 767px) {
  .gv .wh { height: auto; background: #f6f0f8; }
  .gv .wh-bg { position: relative; display: block; height: 420px; object-position: 72% center; }
  .gv .wh .wrap { padding: 0 0 48px; margin-top: -120px; }
  .gv .wh-box { margin: 0 auto; }
}

/* ---------- Partnerships · ecosystem hub (Figma 1183:1543) ---------- */
.gv .eco { position: relative; overflow: hidden; padding: 160px 0; background: #ff4002; isolation: isolate; }
.gv .pt-mesh { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; pointer-events: none; }
.gv .eco .eyebrow { color: rgba(255,255,255,.85); }
.gv .eco .h2 { color: #fff; }
.gv .eco .intro { color: rgba(255,255,255,.9); }
.gv .pt-hub { position: relative; width: 1150px; height: 983px; margin: 80px auto 0; }
.gv .pt-lines { position: absolute; left: 0; top: 0; pointer-events: none; }
.gv .pt-node { position: absolute; width: 9px; height: 9px; }
.gv .pt-sig { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px rgba(255,255,255,.9); transition: transform 1.6s cubic-bezier(.42,0,.58,1); z-index: 1; }
.gv .pt-card { position: absolute; left: var(--x); top: var(--y); width: 360px; height: 309px; box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 26px 28px 24px; border-radius: 20px; background: #fff; filter: drop-shadow(0 15px 20px rgba(41,20,64,.12)); }
.gv .pt-lr { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 34px; }
.gv .pt-logo { display: block; }
.gv .pt-tag { padding: 4px 12px; border-radius: 100px; font-weight: 300; font-size: 12px; line-height: 18px; letter-spacing: .96px; text-transform: uppercase; white-space: nowrap; }
.gv .pt-ol { display: flex; align-items: center; gap: 8px; font-weight: 400; font-size: 19px; line-height: 24px; color: #191919; }
.gv .pt-pro { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 24px; line-height: 28px; color: #191919; }
.gv .pt-d { margin: 0; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }
.gv .pt-art { position: relative; width: 100%; height: 84px; flex: none; border-radius: 14px; overflow: hidden; }
.gv .pt-art > * { position: absolute; }
.gv .pt-art b, .gv .pt-art small { display: block; white-space: nowrap; }
.gv .pt-pill { display: inline-block; padding: 3px 8px; border-radius: 99px; background: #fff; font-style: normal; font-weight: 500; font-size: 10px; line-height: 15px; white-space: nowrap; }
.gv .pt-apps { left: 50px; top: 15px; display: flex; gap: 14px; }
.gv .pt-apps span { display: flex; flex-direction: column; align-items: center; gap: 5px; font-size: 10px; line-height: 15px; color: rgba(25,25,25,.7); }
.gv .pt-apps img { width: 34px; height: 34px; }
.gv .pt-cfg { left: 20px; top: 13px; display: flex; flex-direction: column; gap: 8px; }
.gv .pt-cfg b, .gv .pt-prog b, .gv .pt-call b, .gv .pt-sku b { font-weight: 500; font-size: 11px; line-height: 16px; color: rgba(25,25,25,.8); }
.gv .pt-prog { left: 20px; top: 14px; display: flex; flex-direction: column; gap: 7px; }
.gv .pt-prog p { margin: 0; display: flex; align-items: center; gap: 6px; }
.gv .pt-prog small { font-size: 10px; line-height: 15px; color: rgba(25,25,25,.6); }
.gv .pt-prog i { display: block; width: 264px; height: 6px; border-radius: 3px; background: #fff; overflow: hidden; }
.gv .pt-prog s { display: block; width: 216px; height: 6px; border-radius: 3px; background: #3fa34d; }
.gv .pt-call { left: 75px; top: 12px; display: flex; align-items: center; gap: 10px; }
.gv .pt-call > span { width: 34px; height: 34px; border-radius: 17px; background: #27c4d0; color: #fff; font-weight: 600; font-size: 11px; line-height: 34px; text-align: center; }
.gv .pt-call > div { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.gv .pt-call small { font-size: 10px; line-height: 15px; color: rgba(25,25,25,.6); }
.gv .pt-edi { left: 20px; top: 20px; width: 264px; display: flex; align-items: center; justify-content: space-between; }
.gv .pt-edi span { padding: 7px 8px; border-radius: 8px; background: #fff; display: flex; flex-direction: column; gap: 1px; }
.gv .pt-edi b { font-weight: 600; font-size: 10px; line-height: 15px; letter-spacing: .6px; color: #3d3fb0; }
.gv .pt-edi small { font-size: 9px; line-height: 13px; color: rgba(25,25,25,.55); }
.gv .pt-edi i { font-style: normal; font-weight: 300; font-size: 13px; color: #3d3fb0; }
.gv .pt-bc { left: 43px; top: 20px; width: 96px; height: 44px; overflow: hidden; }
.gv .pt-bc i { position: absolute; top: 0; height: 44px; background: rgba(25,25,25,.85); }
.gv .pt-scan { left: 37px; top: 41px; width: 108px; height: 2px; background: rgba(255,64,2,.9); }
.gv .pt-sku { left: 163px; top: 21px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.gv .pt-card .lnk { margin-top: auto; padding-top: 6px; }
.gv .pt-centre { position: absolute; left: 450px; top: 385px; width: 250px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 32px 28px; border: 1px solid rgba(160,62,187,.12); border-radius: 30px; background: #fff; filter: drop-shadow(0 30px 30px rgba(41,20,64,.16)); }
.gv .pt-centre p { margin: 0; text-align: center; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }

@media (max-width: 1199px) {
  .gv .pt-hub { width: 100%; height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 360px)); justify-content: center; gap: 24px; }
  .gv .pt-lines, .gv .pt-node, .gv .pt-sig { display: none; }
  .gv .pt-card, .gv .pt-centre { position: relative; left: auto; top: auto; }
  .gv .pt-card { width: 100%; }
  .gv .pt-centre { grid-column: 1 / -1; grid-row: 1; justify-self: center; width: 100%; max-width: 360px; }
}
@media (max-width: 767px) {
  .gv .eco { padding: 96px 0; }
  .gv .pt-hub { grid-template-columns: minmax(0, 360px); margin-top: 48px; gap: 16px; }
  .gv .pt-card { height: auto; min-height: 309px; }
  .gv .pt-apps { left: 50%; transform: translateX(-50%); }
  .gv .pt-call { left: 20px; }
}

/* ---------- Team (Figma 1183:1790, card set 1183:5201: hover dissolve .3s) ---------- */
.gv .sec-team { padding: 160px 0; }
.gv .tm-grid { display: grid; grid-template-columns: repeat(4, 282px); column-gap: 11.67px; row-gap: 40px; margin-top: 88px; }
.gv .tm-card { position: relative; outline: none; }
.gv .tm-ph { position: relative; height: 360px; border-radius: 20px; overflow: hidden; isolation: isolate; }
.gv .tm-ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gv .tm-hov { position: absolute; inset: 0; opacity: 0; transition: opacity .3s ease-out; overflow: hidden; }
.gv .tm-card:hover .tm-hov, .gv .tm-card:focus-within .tm-hov, .gv .tm-card.on .tm-hov { opacity: 1; }
.gv .tm-mesh i { position: absolute; border-radius: 50%; filter: blur(60px); }
.gv .tm-hov p { position: absolute; left: 28px; margin: 0; color: #191919; }
.gv .tm-hn { top: 22px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 24px; line-height: 29px; white-space: nowrap; }
.gv .tm-hr { top: 55px; width: 226px; font-weight: 300; font-size: 14px; line-height: 21px; color: rgba(25,25,25,.7) !important; }
.gv .tm-loc { top: 192px; font-weight: 300; font-size: 12px; line-height: 18px; color: rgba(25,25,25,.6) !important; white-space: pre; }
.gv .tm-li { position: absolute; left: 236px; top: 189px; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; }
.gv .tm-li img { width: 12px; height: 12px; transition: transform .2s; }
.gv .tm-li:hover img { transform: scale(1.15); }
.gv .tm-rule { position: absolute; left: 28px; top: 224px; width: 226px; height: 1px; background: rgba(25,25,25,.15); }
.gv .tm-bio { top: 244px; width: 212px; font-weight: 300; font-size: 14px; line-height: 22px; color: rgba(25,25,25,.8) !important; }
.gv .tm-n { margin: 20px 0 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 22px; line-height: 28px; color: #191919; }
.gv .tm-r { margin: 4px 0 0; font-weight: 300; font-size: 15px; line-height: 22px; color: rgba(25,25,25,.6); }
.gv .tm-stats { width: 269px; height: 360px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; padding: 32px 28px; border-radius: 20px; background: #ff4002; color: #fff; }
.gv .tm-stats p { margin: 0; }
.gv .tm-stats > div { display: flex; flex-direction: column; gap: 6px; }
.gv .tm-sn { font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 64px; line-height: 68px; }
.gv .tm-sl { font-weight: 300; font-size: 16px; line-height: 26px; }
.gv .tm-stats > i { display: block; height: 1px; background: #e9e1ec; }

@media (max-width: 1199px) {
  .gv .tm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 16px; }
  .gv .tm-ph { height: auto; aspect-ratio: 282 / 360; }
  .gv .tm-stats { width: 100%; height: auto; aspect-ratio: 282 / 360; }
  /* hover card: scale the 282x360 layout to fit the smaller photo */
  .gv .tm-hov { width: 282px; height: 360px; inset: auto; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--ts, .58)); }
}
@media (max-width: 767px) {
  .gv .sec-team { padding: 96px 0; }
  .gv .tm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; row-gap: 28px; margin-top: 48px; }
  .gv .tm-n { margin-top: 12px; font-size: 17px; line-height: 22px; }
  .gv .tm-r { font-size: 13px; line-height: 18px; }
  .gv .tm-stats { padding: 20px 16px; }
  .gv .tm-sn { font-size: 40px; line-height: 44px; }
  .gv .tm-sl { font-size: 13px; line-height: 19px; }
}

/* ---------- Client journey film (Figma 1183:1832) ---------- */
.gv .cj { padding: 56px 0 20px; }
.gv .cj-film { margin-top: 80px; aspect-ratio: 1150 / 647; border-radius: 30px; overflow: hidden; background: #f3e6f7; isolation: isolate; }
.gv .cj-film video { display: block; width: 100%; height: 100%; object-fit: cover; }
.gv .cj-lnk { margin-top: 52px; }
@media (max-width: 767px) {
  .gv .cj { padding-top: 40px; }
  .gv .cj-film { margin-top: 40px; border-radius: 20px; }
}

/* ---------- Promise (Figma 1183:1856, chip set 1366:533) ---------- */
.gv .pr { padding: 140px 0 160px; }
.gv .pr-grid { display: grid; grid-template-columns: 560px 526px; justify-content: space-between; margin-top: 80px; }
.gv .pr-photo { position: relative; height: 600px; border-radius: 30px; overflow: hidden; }
.gv .pr-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gv .pr-chip { position: absolute; left: 32px; bottom: 32px; width: 270px; height: 100px; border-radius: 20px; background: #fff; filter: drop-shadow(0 12px 16px rgba(26,26,26,.12)); }
.gv .pr-chip.dissolve { animation: gvDissolve .3s ease-out; }
.gv .pr-seal { position: absolute; left: 16px; top: 20px; width: 28px; height: 28px; border-radius: 50%; background: #ff4002; }
.gv .pr-seal i { position: absolute; left: 10px; top: 7px; width: 5px; height: 9px; border: solid #fff; border-width: 0 1.7px 1.7px 0; transform: rotate(45deg); opacity: 0; transition: opacity .3s ease-out; }
.gv .pr-chip.s3 .pr-seal i { opacity: 1; }
.gv .pr-ct { position: absolute; left: 56px; top: 14px; margin: 0; font-weight: 400; font-size: 14px; line-height: 20px; color: #191919; white-space: nowrap; }
.gv .pr-cs { position: absolute; left: 56px; top: 36px; margin: 0; font-weight: 300; font-size: 13px; line-height: 18px; color: rgba(25,25,25,.6); white-space: nowrap; }
.gv .pr-sig { position: absolute; left: 56px; top: 54px; width: 1px; height: 38px; overflow: hidden; opacity: 0; transition: width 1.2s cubic-bezier(.42,0,.58,1), opacity 1.2s cubic-bezier(.42,0,.58,1); }
.gv .pr-sig img { position: absolute; left: 0; top: 6px; max-width: none; }
.gv .pr-chip.s2 .pr-sig, .gv .pr-chip.s3 .pr-sig { width: 140px; opacity: 1; }
.gv .pr-list { list-style: none; margin: 0; padding: 0; height: 600px; display: flex; flex-direction: column; justify-content: space-between; }
.gv .pr-list li { display: flex; gap: 28px; padding: 30px 0; border-bottom: 1px solid rgba(25,25,25,.1); }
.gv .pr-list li:first-child { padding-top: 0; }
.gv .pr-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.gv .pr-list li > img { flex: none; margin: 6px; }
.gv .pr-list h3 { margin: 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 30px; line-height: 36px; letter-spacing: -.5px; color: #191919; }
.gv .pr-list p { margin: 8px 0 0; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }

@media (max-width: 1199px) {
  .gv .pr-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .gv .pr-list { height: auto; gap: 0; }
  .gv .pr-list h3 { font-size: 24px; line-height: 30px; }
}
@media (max-width: 767px) {
  .gv .pr { padding: 96px 0; }
  .gv .pr-grid { grid-template-columns: 1fr; margin-top: 48px; }
  .gv .pr-photo { height: auto; aspect-ratio: 560 / 600; }
  .gv .pr-chip { left: 16px; bottom: 16px; }
  .gv .pr-list li { gap: 16px; padding: 24px 0; }
  .gv .pr-list li > img { margin: 4px 0; }
}

/* ---------- FAQs chat (Figma 1183:2213, set 900:1873) ---------- */
.gv .fq { padding: 160px 0; }
.gv .fq-panel { display: flex; align-items: center; gap: 70px; padding: 80px 56px; border-radius: 30px; background: linear-gradient(180deg, rgba(255,64,2,.07), rgba(160,62,187,.07)); }
.gv .fq-ask { width: 388px; flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.gv .fq-ask .eyebrow, .gv .fq-ask .h2, .gv .fq-ask .intro { margin: 0; padding: 0; }
.gv .fq-chat { width: 580px; height: 669px; box-sizing: border-box; flex: none; display: flex; flex-direction: column; gap: 18px; padding: 32px; border-radius: 20px; background: #fff; box-shadow: 0 20px 50px rgba(26,26,26,.06); overflow: hidden; }
.gv .fq-msgs { flex: 1; display: flex; flex-direction: column; gap: 18px; }
.gv .fq-q { align-self: flex-end; max-width: 440px; padding: 14px 20px; border-radius: 20px 20px 4px 20px; background: #f4f1f5; font-weight: 300; font-size: 16px; line-height: 25px; color: #191919; }
.gv .fq-a { display: flex; gap: 14px; align-items: flex-start; }
.gv .fq-av { flex: none; width: 36px; height: 36px; border-radius: 10px; background: #fde9e1; color: #ff4002; font-family: 'Tomorrow', sans-serif; font-size: 16px; line-height: 36px; text-align: center; }
.gv .fq-ab { width: 400px; padding: 16px 20px; border: 1px solid #ece6ee; border-radius: 20px 20px 20px 4px; font-weight: 300; font-size: 16px; line-height: 25px; color: #191919; }
.gv .fq-typing { display: flex; gap: 5px; padding: 15px 18px; border: 1px solid #ece6ee; border-radius: 20px 20px 20px 4px; }
.gv .fq-typing i { width: 6px; height: 6px; border-radius: 50%; background: rgba(25,25,25,.3); animation: gvType 1s ease-in-out infinite; }
.gv .fq-typing i:nth-child(2) { animation-delay: .15s; } .gv .fq-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes gvType { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
.gv .fq-in { animation: gvFqIn .25s ease-out; }
@keyframes gvFqIn { from { opacity: 0; } to { opacity: 1; } }
.gv .fq-pick { margin: 0; font-weight: 300; font-size: 13px; line-height: 18px; color: #6b6b6b; }
.gv .fq-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.gv .fq-chip { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; margin: 0; border: 0; border-radius: 999px; background: #f7f5f8; font: inherit; font-weight: 300; font-size: 15px; line-height: 20px; color: #191919; cursor: pointer; white-space: nowrap; transition: background-color .25s ease-out, color .25s ease-out; }
.gv .fq-chip:hover { background: #f1ecf3; }
.gv .fq-chip.on { background: rgba(255,64,2,.1); color: #ff4002; }

@media (max-width: 1199px) {
  .gv .fq-panel { flex-direction: column; align-items: stretch; gap: 40px; padding: 56px 32px; }
  .gv .fq-ask { width: auto; }
  .gv .fq-chat { width: 100%; height: auto; min-height: 669px; }
  .gv .fq-ab { width: auto; flex: 1; }
}
@media (max-width: 767px) {
  .gv .fq { padding: 96px 0; }
  .gv .fq-panel { padding: 40px 16px; border-radius: 24px; }
  .gv .fq-chat { padding: 20px 16px; min-height: 620px; }
  .gv .fq-q, .gv .fq-ab { font-size: 15px; line-height: 23px; }
  .gv .fq-a { gap: 10px; }
  .gv .fq-chip { padding: 10px 14px; font-size: 14px; }
}

/* ---------- Contact form (Figma 1183:2224) ---------- */
.gv .ct { padding: 160px 0; }
.gv .ct-grid { display: grid; grid-template-columns: 460px 560px; justify-content: space-between; align-items: start; }
.gv .ct-left .eyebrow { margin-bottom: 20px; }
.gv .ct-intro { margin: 54px 0 0; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }
.gv .ct-pts { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.gv .ct-pts li { position: relative; padding-left: 24px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }
.gv .ct-pts li::before { content: ""; position: absolute; left: 0; top: 12.5px; width: 12px; height: 1px; background: #ff4002; }
.gv .ct-team { width: 420px; max-width: 100%; box-sizing: border-box; margin-top: 32px; padding: 22px 24px; border-radius: 20px; background: #f6f0f8; }
.gv .ct-avs { position: relative; width: 184px; height: 56px; margin-bottom: 12px; }
.gv .ct-avs img { position: absolute; top: 0; }
.gv .ct-avs img.r { left: 0; width: 62px; height: 62px; margin: -3px; }
.gv .ct-avs img.b { width: 56px; height: 56px; box-sizing: border-box; border: 3px solid #f6f0f8; border-radius: 28px; object-fit: cover; }
.gv .ct-team p { margin: 0; }
.gv .ct-tn { font-weight: 400; font-size: 16px; line-height: 24px; color: #191919; }
.gv .ct-ts { margin-top: 2px !important; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.62); }
.gv .ct-rule { display: block; height: 1px; margin: 18px 0; background: rgba(25,25,25,.08); }
.gv .ct-reply { display: flex; align-items: center; gap: 10px; font-weight: 300; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.7); }

.gv .ct-form { position: relative; display: flex; flex-direction: column; gap: 20px; padding: 44px 48px; border-radius: 30px; background: #fff; box-shadow: 0 24px 60px rgba(122,44,144,.08); }
.gv .ct-fh { margin: 0; font-weight: 400; font-size: 20px; line-height: 30px; color: #191919; }
.gv .ct-row { display: flex; gap: 16px; }
.gv .ct-row .ct-f { flex: 1 0 0; min-width: 0; }
.gv .ct-f { position: relative; display: flex; flex-direction: column; gap: 8px; margin: 0; }
.gv .ct-f > span { font-weight: 400; font-size: 14px; line-height: 20px; color: rgba(25,25,25,.75); }
.gv .ct-f input, .gv .ct-f select, .gv .ct-f textarea { width: 100%; box-sizing: border-box; height: 52px; margin: 0; padding: 0 18px; border: 1px solid #e4e4e4; border-radius: 12px; background: #fff; font-family: 'Poppins', sans-serif; font-weight: 300; font-size: 14px; line-height: 20px; color: #191919; outline: none; box-shadow: none; transition: border-color .2s; -webkit-appearance: none; appearance: none; }
.gv .ct-f textarea { height: 120px; padding: 16px 18px; resize: vertical; }
.gv .ct-f ::placeholder { color: rgba(25,25,25,.4); opacity: 1; }
.gv .ct-f select:invalid { color: rgba(25,25,25,.4); }
.gv .ct-f input:focus, .gv .ct-f select:focus, .gv .ct-f textarea:focus { border-color: #a03ebb; }
.gv .ct-f.err input, .gv .ct-f.err select { border-color: #e52d27; }
.gv .ct-sel > img { position: absolute; right: 18px; bottom: 23px; pointer-events: none; }
.gv .ct-sel select { padding-right: 44px; cursor: pointer; }
.gv .ct-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 1px; }
.gv .ct-legal { margin: 0; width: 300px; font-weight: 300; font-size: 13px; line-height: 20px; color: rgba(25,25,25,.55); }
.gv .ct-legal a { color: inherit; text-decoration: none; }
.gv .ct-legal a:hover { text-decoration: underline; }
.gv .ct-submit { padding: 0; margin: 0; border: 0; background: none; font: inherit; }
.gv .ct-submit[disabled] { opacity: .5; cursor: wait; }
.gv .ct-msg { margin: -8px 0 0; min-height: 0; font-weight: 300; font-size: 13px; line-height: 20px; color: #e52d27; }
.gv .ct-msg:empty { display: none; }
.gv .ct-done { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 48px; border-radius: 30px; background: #fff; animation: gvDissolve .3s ease-out; }
.gv .ct-done[hidden] { display: none; }
.gv .ct-dh { margin: 0; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 30px; line-height: 36px; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gv .ct-ds { margin: 12px 0 0; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.7); }

@media (max-width: 1199px) {
  .gv .ct-grid { grid-template-columns: minmax(0, 1fr); row-gap: 48px; }
  .gv .ct-left, .gv .ct-form { min-width: 0; }
  .gv .ct-left { max-width: 560px; }
  .gv .ct-form { max-width: 560px; }
}
@media (max-width: 767px) {
  .gv .ct { padding: 96px 0; }
  .gv .ct-intro { margin-top: 24px; }
  .gv .ct-form { padding: 28px 20px; border-radius: 24px; }
  .gv .ct-row { flex-direction: column; gap: 20px; }
  .gv .ct-foot { flex-direction: column; align-items: flex-start; }
  .gv .ct-legal { width: auto; }
  .gv .ct-f input, .gv .ct-f select, .gv .ct-f textarea { font-size: 16px; } /* stops iPhone zooming on focus */
}

/* ---------- Other partners logo carousel (Figma 1183:2300, 230px every 3s linear) ---------- */
.gv .op { padding: 64px 0 95px; }
.gv .op-eb { margin: 0 0 36px; text-align: center; }
.gv .op-car { position: relative; height: 64px; overflow: hidden; }
.gv .op-car::before, .gv .op-car::after { content: ""; position: absolute; top: 0; z-index: 1; width: 120px; height: 64px; pointer-events: none; }
.gv .op-car::before { left: 0; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); }
.gv .op-car::after { right: 0; background: linear-gradient(90deg, rgba(255,255,255,0), #fff); }
.gv .op-track { display: flex; width: 2760px; height: 64px; animation: gvOp 18s linear infinite; }
.gv .op-car:hover .op-track { animation-play-state: paused; }
@keyframes gvOp { from { transform: translateX(0); } to { transform: translateX(-1380px); } }
.gv .op-i { position: relative; flex: none; width: 230px; height: 64px; }
.gv .op-i > img { position: absolute; }
.gv .op-ol { position: absolute; left: 43px; top: 17px; display: flex; align-items: center; gap: 10px; font-weight: 400; font-size: 23.75px; line-height: 30px; color: #191919; white-space: nowrap; }
.gv .op-pr { position: absolute; left: 67px; top: 19px; font-family: 'Tomorrow', sans-serif; font-weight: 400; font-size: 22.29px; line-height: 26px; color: #191919; white-space: nowrap; }
@media (max-width: 767px) {
  .gv .op { padding: 48px 0 64px; }
  .gv .op-car::before, .gv .op-car::after { width: 48px; }
}
@media (prefers-reduced-motion: reduce) { .gv .op-track { animation: none; } }

/* ---------- Footer · white floating card (Figma 1183:2320) ---------- */
.gv .ft { padding: 48px 48px 48px; }
.gv .ft-card { max-width: 1344px; margin: 0 auto; border-radius: 30px; background: #fff; filter: drop-shadow(0 24px 30px rgba(112,43,140,.1)); }
.gv .ft-in { width: min(1150px, calc(100% - 48px)); margin: 0 auto; padding: 96px 0 54px; }
.gv .ft-in p { margin: 0; }
.gv .ft-top { display: flex; justify-content: space-between; gap: 40px; min-height: 224px; padding-bottom: 96px; border-bottom: 1px solid rgba(25,25,25,.12); }
.gv .ft-brand { width: 340px; flex: none; }
.gv .ft-lr { display: flex; align-items: center; gap: 20px; }
.gv .ft-lr img { display: block; }
.gv .ft-pill { padding: 7px 16px; border-radius: 16px; background: #f1e2f6; color: #8a2fa3; font-weight: 400; font-size: 12px; line-height: 18px; white-space: nowrap; }
.gv .ft-desc { margin-top: 38px !important; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.85); }
.gv .ft-brand .lnk { margin-top: 24px; }
.gv .ft-brand .lnk img { transform: none; }
.gv .ft-cols { display: grid; grid-template-columns: 200px 200px 160px 151px; padding-left: 0; }
.gv .ft-cols > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.gv .ft-h { margin-top: 4px !important; margin-bottom: 8px !important; font-weight: 300; font-size: 13px; line-height: 20px; letter-spacing: 1.3px; color: rgba(25,25,25,.6); }
.gv .ft-cols a, .gv .ft-addr { font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.85); text-decoration: none; white-space: nowrap; transition: color .2s; }
.gv .ft-cols a:hover, .gv .ft-legal a:hover { color: #ff4002; }
.gv .ft-uk { font-weight: 300; font-size: 16px; line-height: 26px; color: #ff4002; margin-bottom: -6px !important; }
.gv .ft-addr { white-space: nowrap; margin-top: -2px !important; }
.gv .ft-bot { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 31px; }
.gv .ft-copy { display: flex; align-items: center; gap: 8px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.85); }
.gv .ft-copy i { width: 8px; height: 8px; border-radius: 50%; background: #ff4002; }
.gv .ft-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 0 12px; font-weight: 300; font-size: 16px; line-height: 26px; color: rgba(25,25,25,.85); }
.gv .ft-legal a { color: inherit; text-decoration: none; transition: color .2s; }

@media (max-width: 1199px) {
  .gv .ft { padding: 24px; }
  .gv .ft-top { flex-direction: column; padding-bottom: 48px; }
  .gv .ft-in { padding-top: 64px; }
  .gv .ft-cols { grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 24px; }
}
@media (max-width: 767px) {
  .gv .ft { padding: 16px; }
  .gv .ft-card { border-radius: 24px; }
  .gv .ft-in { width: calc(100% - 40px); padding-top: 40px; }
  .gv .ft-brand { width: auto; }
  .gv .ft-lr { flex-wrap: wrap; gap: 12px; }
  .gv .ft-desc { margin-top: 24px !important; }
  .gv .ft-cols { grid-template-columns: 1fr; row-gap: 32px; }
  .gv .ft-bot { flex-direction: column; align-items: flex-start; }
  .gv .ft-legal { font-size: 14px; }
}

/* Phone: one even gap between every section (Pooja, 5 Nov: no big gaps) */
@media (max-width: 767px) {
  .gv > section.stats, .gv > section.ba, .gv > section.fs, .gv > section.ib, .gv > section.wd,
  .gv > section.sec-ind, .gv > section.sec-team, .gv > section.cj, .gv > section.pr,
  .gv > section.fq, .gv > section.ct, .gv > section.op { padding-top: 0; padding-bottom: 0; margin-top: 72px; }
  .gv > section.stats { margin-top: 64px; }
  .gv > section.db, .gv > section.eco { padding-top: 64px; padding-bottom: 64px; margin-top: 72px; }
  .gv > section.wh { margin-top: 72px; }
  .gv > footer.ft { margin-top: 72px; }
}
/* Phone: the warehouse band (lilac) runs straight into the partners band (orange), no white strip */
@media (max-width: 767px) { .gv > section.wh + section.eco { margin-top: 0; } }
